第一节 问题的提出
关系数据库逻辑设计,针对具体问题,如何构造一个适合于它的数据模式,数据库逻辑设计的工具──
关系数据库的规范化理论。
关系模式的形式化定义和简化定义。什么是数据依赖?数据依赖对关系模式影响。关系:描述实体、属
性、实体间的联系。从形式上看,它是一张二维表,是所涉及属性的笛卡尔积的一个子集。关系模式:用来
定义关系。关系数据库:基于关系模型的数据库,利用关系来描述现实世界。从形式上看,它由一组关系组
成。关系数据库的模式:定义这组关系的关系模式的全体。
关系模式由五部分组成,即它是一个五元组:
R(U, D, DOM, F)
R:关系名;U:组成该关系的属性名集合;D:属性组U中属性所来自的域;DOM:属性向域的映象集合;
F:属性间数据的依赖关系集合。关系模式的简化表示:
简化为一个三元组:R(U, F)
当且仅当U上的一个关系r 满足F时,r称为关系模式 R(U, F)的一个关系。
什么是数据依赖?
1. 完整性约束的表现形式
限定属性取值范围:例,学生成绩须在0-100之间。定义属性值间的相互关连。
2. 数据依赖
通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,是现实世界属性间相互联系的抽象。
是数据内在的性质,是语义的体现。
3. 数据依赖的类型:函数依赖(Functional Dependency,简记为FD);多值依赖(Multivalued Dependency,简记为MVD)。关系模式Student<U, F>中存在的问题,数据冗余,浪费大量的存储空间。更新
异常(Update Anomalies),数据冗余 ,更新数据时,维护数据完整性代价大。插入异常(Insertion Anomalies),该插的数据插不进去。
例,如果一个系刚成立,尚无学生,无法把这个系及其系主任的信息存入数据库。
删除异常(Deletion Anomalies),不该删除的数据不得不删。
例,如果某个系的学生全部毕业了, 在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。
结论:Student关系模式不是一个好的模式。
“好”的模式:不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少。原因:由存在于模式中
的某些数据依赖引起的。解决方法:通过分解关系模式来消除其中不合适的数据依赖。
|