MySQl三范式 视图触发器存储过程简述
三范式
第一范式 原子性
表示每一项的信息都是不可再分的
比如 你一个字段中存放了 姓名和年龄 这就违反了原子性
第二范式 唯一性
消除数据之前的部分依赖 使一个表中的非主键部分完全依赖于主键
消除非主键部分依赖联合主键中的部分字段
需要实现每一 行数据具有唯一 可区分的特性,并不能有部分依赖关系。
通常,给一个表加主键(也是推荐做法),就可以做到“唯一可区分”。
第三范式 独立性
消除传递依赖
属性不依赖于其它非主属性
数据不能存在传递关系,即每个属性都跟主键有直接关系而不是间接关系。
视图
从一个或者多个表中根据用户的需要做成一个虚表
特点:
只是虚表 只存储视图的定义 没有存储数据
只在打开的一瞬间 通过定义从基表中查找到数据 并且展示给用户
与查询的区别:
视图是数据库设计的一部分 查询不是
查询可以排序 视图不行
更新限制的要求不一样
优点:
分割数据 简化观点
为数据提供一定的逻辑独立性
提供自动的安全保护功能 视图能像 基本表- 样授予或撤消访问许可权。
视图可以间接对表进行更新,因此视图的更新就是表的更新。
触发器
触发器(TRIGGER)是由事件来触发某个操作。这些事件包括INSERT语句、UPDATE语句和DELETE语句。当数据库系统执行这些事件时,会**促发其执行相应的操作。
存储过程
为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。
存储过程是可编程的函数,在数据库中创建并保存,可以由SQL语句和控制结构组成。
优点
增强SQL语言的功能和灵活性
较快的执行速度
作为一种安全机制来充分利
减少网络流量
DELIMITER //
CREATE PROCEDURE myproc(OUT s int)
BEGIN
SELECT COUNT(*) INTO s FROM students;
END
//
DELIMITER ;
上一篇: 很简单的PHP文件下传代码
下一篇: 视图,触发器,事务,存储过程,函数,索引
推荐阅读