1.规范化问题的提出
1.1规范化理论的主要内容
针对一个实际的应用业务,如何构造合适的关系模式,应构造几个关系模式,每个关系模式由那些属性组成等,这些都是关系数据库的逻辑设计问题。逻辑设计的好坏决定了整个系统的运行效率,也是数据库成败的关键。
需要从理论出发,使用关系数据库的规范化理论,讨论如何判断一个关系模式是否是好的关系模式,以及如何将不好的关系模式转换成好的关系模式。
规范化理论:函数依赖、范式和模式设计
1.2不合理的关系存在的异常问题
存在问题:
1、数据冗余问题
2、数据更新异常:学生转系时
3、数据插入异常:系新成立,系还未招生
4、数据删除异常:学生只选一门课,之后放弃了。
原因:关系模型没有设计好,关系包罗万象,内容过于全面,根本原因时存在不良的依赖关系。
2.函数依赖
2.1基本概念
概念:
Y=f(X)
给定一个X的值,都会有一个Y值与它对应。即称为X函数决定Y,Y函数依赖于X。
关系模式的函数依赖:
对于关系模式R(A1,A2,...,An),X和Y为{A1,A2,...,An}的子集,如果对关系R中的任意一个X值,都只有一个Y值与之对应,则称为X函数决定Y,或Y函数依赖于X。
下函数依赖关系:
sno→sname sno→sdept sno→sage
2.2一些术语和符号
(1)如果X→Y,但Y不包含于X,则称X→Y是非平凡的函数依赖
(2)如果X→Y,但Y包含于,X则称X→Y是平凡的函数依赖
若无特别声明,我们讨论的都是非平凡的函数依赖。
(3)如果X→Y,则X称为决定因子
2.3函数依赖的推理规则
从已知的函数依赖可以推导出另一些新的函数依赖,这需要一个系列推理规则,因此称这些规则为Armstrong公里(74年)。
①自反律(Reflexivity)
②增广律(Augmentation)
③传递律(Transitivity)
...7个规则