9.1 关系模式设计的问题
(1)数据冗余问题;
(2)数据更新问题;
(3)数据插入问题;
(4)数据删除问题。
解决上述种种问题的方法就是进行模式分解。
9.2 函数依赖
9.2.1 基本概念
如果有一个关系模式R(,
,...,
),X和Y为(
,
,...,
)的子集,r是R的任一具体关系,那么对于关系r中的任意一个X值,都只有一个Y值与之对应,则称X函数决定Y或Y函数依赖于X表示为:X——>Y(X为候选键)。
9.2.2 一些术语和符号
(1)如果X——>Y,但Y不包含于X,则称X——>Y是非平凡的函数依赖;如果X——>Y,但Y包含于X,则称X——>Y是平凡的函数依赖。
(2)如果X——>Y,则称X为决定因子。
(3)如果X——>Y,并且Y——>X,则记作X<——>Y。
(4)如果X——>Y,并且对于X的一个任意真子集X’都有X’
Y,则称Y完全函数依赖于X,记作X
Y;如果X’——>Y,则称Y部分函数依赖于X,记作X
Y。(候选键为单属性为完全函数依赖;候选键为属性组部分为部分函数依赖,部分为完全函数依赖)
(5)如果X——>Y(非平凡函数依赖,并且Y
X)、Y——>Z,则称Z传递函数依赖于X。
9.2.3 函数依赖的推理规则
(1)自反律:若Y
X
U,则X——>Y在R上成立。即一组属性函数决定它的所有子集。
(2)增广律:若X——>Y在R上成立,且Z
U,则XZ——>YZ在R上也成立。
(3)传递律:若X——>Y和Y——>Z在R上成立,则X——>Z在R上也成立。
(4)合并规则:若X——>Y和X——>Z在R上成立,则X——>YZ在R上也成立。
(5)分解规则:若X——>Y和Z
Y在R上成立,则X——>Z在R上也成立。
(6)为传递规则:若X——>Y和YW——>Z在R上成立,则XW——>YZ在R上也成立。
(7)复合规则:若X——>Y和W——>Z在R上成立,则XW——>YZ在R上也成立。
本文探讨了数据库设计中遇到的数据冗余、更新、插入和删除等问题,指出这些问题可以通过模式分解来解决。深入介绍了函数依赖的概念,包括非平凡和平凡函数依赖、决定因子、完全和部分函数依赖等。还阐述了函数依赖的推理规则,如自反律、增广律、传递律等,这些规则在数据库规范化和模式优化中起着关键作用。
5582

被折叠的 条评论
为什么被折叠?



