数据库系统概论——关系数据理论
关系数据库逻辑设计
针对一个具体的问题,应如何构造一个适合于它的数据模式,即构造几个关系,每个关系由哪个属性组成
可能出现的问题
一个好的关系模式,不会产生插入异常、删除异常、更新异常的问题,数据冗余应尽量少
数据冗余度太大
一个关系表中的相同外码可能重复出现造成存储空间的浪费
更新异常
数据冗余,在更新数据时,维护数据完整性的代价太大
插入异常
该插入的数据插入不进去
删除异常
删除了不该删除的数据
出现问题的原因
由于模式中的某些数据依赖引起的
解决方案
将单一关系模式分成多个关系模式,用规范化理论造成关系模式,消除其中不合适的数据依赖
数据依赖
定义
数据以来通过一个关系中属性间的值相等与否体现出来的数据间的相互关系,是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现
完整性约束的一种表现形式
-
限定属性取值范围
-
定义属性值间的相互关联,通过属性间值的相等与否来描述
-
数据依赖是数据库模式设计的关键
数据依赖的主要类型
-
函数依赖(
Functional Dependency, FD
) -
多值依赖(
Multivalued Depency, MVD
) -
连接依赖
数据依赖对关系模式的影响
不合适的数据依赖可能造成插入异常、删除异常、更新异常和数据冗余问题
关系模式的简化表示
关系模式的形式化定义
R(U, D, DOM, F)
R:关系名,是符号化元组的定义
U:该关系的属性集合
D:属性组U中属性所来自的域
DOM:属性向域的映像集合
F:属性间数据的依赖关系集合
关系模式的简化表示
由于影响数据库设计的主要是U
和F
,即属性集合和属性间数据依赖关系集合会影响数据库设计,可以将其简化为下列三元组
R<U,F>
当且仅当U
上的一个关系r
满足F
时,r
称为关系模式R(U, F)
的一个关系
规范化
规范化理论旨在找出并消除关系模式中不合适的数据依赖,使得模式中的各关系模式达到某种程度的分离,这样可以在不同程度上解决插入异常、删除异常、更新异常和数据冗余等问题,尽量让一个关系只描述一个实体或一个实体中的一个联系,规范化实质是概念的单一化
鸣谢
最后
- 由于博主水平有限,不免有疏漏之处,欢迎读者随时批评指正,以免造成不必要的误解