关系模式的设计
按照一定的原则从数量众多而又相互关联的数据中,构造出一组既能较好地反映现实世界,而又有良好的操作性能的关系模式
●冗余度高 ●修改困难 ●插入问题 ●删除问题
★产生问题的原因
属性间约束关系(即数据间的依赖关系)太强
★解决问题的方法:分解关系
判断一个关系模式 R 是否是“好”模式
如果一个关系模式 R 不是“好”模式的话, 就将它分解成多个模式的集合 {R1, R2, ..., Rn} ,从而保证每个模式是“好”模式,并且分解是无损连接的
理论依据
数据依赖:函数依赖、多值依赖
范式(NF)
关系模式由五部分组成,即它是一个五元组: R(U, D, DOM, F)
R:关系名
U:组成该关系的属性名集合
D:属性组U中属性所来自的域
DOM:属性向域的映象集合
F:属性间数据的依赖关系集合
简化为一个三元组: R(U, F)
客观世界中事物间的联系:
实体与实体的联系——数据模型
实体内部属性间的联系——数据依赖
属性间的联系分为三类:
◆一对一 ◆ 一对多 ◆多对多
数据依赖:关系中属性值之间相互依赖相互制约的联系。
属性间的数据依赖类型主要有两种:
函数依赖
多值依赖
定义6.1 设R(U)是一个属性集U上的关系模式,X和Y是U的子集。
若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称 “X函数确定Y” 或 “Y函数依赖于X”,记作X→Y。
在关系模式R(U)中,对于U的子集X和Y,
范式是符合某一种级别的关系模式的集合
关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式
1NF的定义
如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF
第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库
但是满足第一范式的关系模式并不一定是一个好的关系模式