数据库的前世今生10
|
[键入文档标题] [键入文档副标题] [在此处键入文档摘要。摘要通常为文档内容的简短概括。在此处键入文档摘要。摘要通常为文档内容的简短概括。] |
|
数据库的前世今生
关系数据库的规范化设计
[键入提要栏标题][键入提要栏内容。提要栏独立于主文档,是对主文档的补充。提要栏通常放置在页面的左侧或右侧,也可以放置在页面的顶端或底端。请使用“绘图工具”选项卡更改提要栏文本的格式。] |
² 关系模式的设计问题
1. 关系模式的外延和内涵
一个关系模式包含外延【Extension】
和内涵【Intersion】
1.1 外延关系,表,当前值,外延与时间有关,在时间的推移之下,不断发生变化。
1.2 内涵是与时间独立的,是对数据定义及数据完整性约束的定义,
对数据的定义:
包括关系,属性,域的定义和说明,
对数据约束性定义主要包括一下俩个方面:
1.2.1 静态约束
涉及数据之间的联系,主键和值域的设计
1.2.2 动态约束
定义各种操作(插入,删除,修改)对关系值的影响。
2. 关系模式的冗余和异常问题
数据多余是一个问题。简单来说就是一个数据在一个文件系统中多次储存,由于文件之中没有联系,引起一个数据在多个文件中出现。
但是,数据库系统克服了这个问题,
但是,对于数据多余这个问题,我们依然要注意,如果一个数据库设计的不好,那么,会有多个问题出现。
一般遇到的问题有:
1. 数据多余
关系模式有数据多余,就分解它。
2. 操作异常
2.1 修改异常
2.2 插入异常
2.3 删除异常
3. 关系模式的非形式化设计准则
考虑关系模式的质量:有四个非形式化的衡量标准。
标准1.
关系模式的设计尽可能:每一个关系模式对应一个实体类或者联系类型
标准2.
关系模式的设计尽可能: 使得相应的关系中不会下出现过插入,删除,修改的操作的异常,如果有,则要有明确的操作提示。确保数据库的操作正常的执行。
标准3.
关系模式的设计尽可能:对应的关系中有经常放置为NULL的属性。
标准4.
关系模式的设计尽可能:是对应的关系进行等值连接在主键和外键上进行操作,并且确保操作之后不会生成额外的元组。
4. 符号规定
单个的属性 : A,B,C……
属性集: ……U,V,W,X,Y,Z
关系模式: R
其关系: r
关系模式: ABC [属性名组合写法]
属性集: {A1,A2,……,An}
简写A1,A2,……,An;
属性集的并集: X∪Y,简写XY
X∪{A},简写 XA,AX
² 函数依赖
在数据依赖中,函数依赖最为最要
1. 函数依赖的定义
1.
2.如果X――>Y,与Y<――X同时成立,
则有: X<――>Y
也就是,在关系中,X,Y具有意义对应的关系
2. FD[Function Dependency]的逻辑蕴含
有关系R
F为R上的函数依赖集合
有一个函数依赖 X-->Y
If 对于每一个在F中的关系r,都满足XàY
So 称 F 逻辑蕴含 XàY. F|=XàY
F为函数依赖集,被F逻辑蕴含的函数依赖全体构成的集合,称为函数依赖集F的闭包(Closure),记为F+.
有: F+ = {XàY| F |= XàY}
3. FD的推理规则
大概就是在都说:由以知的FD 通过一下FD的推理规则,推导出另外的FD.
A1. 自反性 Y属于X属于U ; XàY
A2. 增广性 XàY and Z属于R ; XZ à YZ;
A3. 传递性 XàY and YàZ ; XàZ
A4. 合并性 Xà Y andXàZ ; x à YZ;
A5. 分解性 Xà Y andZ属于Y ; Xà Z
A6. 伪传递性 Xà Y andWY àZ ; WX à Z
A7. 复合性 Xà Y and Wà Z ; XW à YZ
A8. 通用一致性定理 Xà Y and Wà Z ; {X∪(W-Y)à YZ}
平凡的FD:
Y属于X
XàY
非平凡的FD:
4. FD和关键码的联系
R = {U} U为关系模式R上的属性集
X属于U ,X是U的子集
If {XàU}
X是R的一个超键
If{XàU&&(非X1àU)}
X是R的一个候选键
5. 属性集的闭包
F是(属性集U的)FD集
X属于U.X是U的子集
属性集X 的闭包用X+表示
X+ 是一个(Xà(属性)A)集合
XàY 能用推理规则推出 充分必要 Y属于X+
6. FD推理规则的完备性
推理规则的正确性:
使用FD集F 通过推理规则集推出的FD一定在F+中.
推理规则的晚辈性;
F+ 中的FD集都可以通过F集使用推理规则集推导而出
完备集保证了可以推出所有被蕴含的FD,保证了推到的有效性和可靠性
7. FD集的最小依赖集
If 关系模式R(U)有俩个函数依赖集:F,G.
有F+=G+. 称 : FG为等价的函数依赖集
函数依赖集F中的FD 很多,
去掉:平凡的FD,多余的FD,FD中的多余属性
求的:与F等价的最小依赖集.
最小依赖集G的定义:
1.G中的每一个FD的右边都是单属性
2.G中没有多余的FD,
3.G中的每一FD的左边没有多余的属性
如何求解关系模式的最小依赖集:
² 关系模式的分解特性
1. 模式分解问题
有关系模式R(U)
属性集U
U的子集有: R1,R2,R3,…,Rk
U = R1∪R2∪…∪Rk
关系模式R1,R2,…,Rk的集合用p表示,
P = {R1,R2,…,Rk}
用p 代替 R的过程 称为 关系模式的分解
.p : R 的一个分解,[数据库模式]
R à泛关系模式
.p à数据库模式
R à p {R1,R2…Rk}
.r à a<r1,r1,…,rk>
2. 无损分解
在五泛关系假设时,对俩个关系进行自然链接中丢失的元组被称为悬挂元组,
悬挂元组是造成俩个关系之间不存在泛关系的原因
悬挂元组是造成俩个关系不存在泛关系的原因
3. 模式分解的优缺点
模式分解的优点:
i. 模式分解可以消除,数据多余,操作异常的情况
ii. 在分解了的数据库中可以储存悬挂元组,储存泛关系中无法储存的信息
模式分解的缺点:
i. 分解后,检索操作需要做笛卡尔积或连接操作需要大的时间,
ii. 在有泛关系假设时,对数据库进行连接操作时,会产生寄生元组,即损失了信息,
iii. 在无泛关系假设时,由于数据库可能存在悬挂元组,就可能不存在泛关系
4. 无损分解的测试方法
在对关系R à P后,要看看她是不是无损分解,然后,有一个不知道交什么的人提出了一个追踪的方法,(Chase),来测试一个分解是否是一个无损分解。
但是,这是理论:
If (p ={R1,R2} 是关系模式R的一个分解)
{
If(F是R上成立的FD集)
{
If((R1∩R2)à(R1-R2)||(R1∩R2)à(R2-R1))
{
是无损分解的<=>条件
}
}
}
If (FD X—>Y在R上成立&&X∩Y!=☺)
{
.p= {R-Y,XY} 是一个无损分解
}
附录:关于如何判定一个分解是不是无损分解。
5. 保持函数依赖的分解
6. 模式分解与模式等价问题
² 关系模式的范式
第一范式
如果一个关系模式R中,每一个关系r的属性值都是不可分割的原子值,那么称R是第一范式的模式。
第二范式
如果一个关系模式中存在局部依赖,就不是一个好的模式,需要吧关系模式分解,以排除局部依赖,第二范式的三个重要定义:
第三范式BCNF
第三范式的三个重要定义:
分解成BCNF模式集的分解算法
分解成3NF模式集的合成
模式设计方法小结
²模式的进一步规范化处理
多值依赖的定义
关于FD和MVD的推理规则集
第四范式
嵌入多值依赖
连接依赖
第五范式