模式的分解
- 格式:ppt
- 大小:233.50 KB
- 文档页数:32
2.保持FD (函数依赖)的分解定义1:设F 是属性集U 上的FD 集,Z 是U 的子集,F 在Z 上的投影用πZ (F)表示,定义为πZ (F)={X →Y|X →Y ∈F +,且XY ⊆Z}定义2. 设},...{1K R R =ρ 是R 的一个分解,F 是R 上的FD 集,如果有)(1F R i ki π=Y ╞ F ,那么称分解ρ保持函数依赖集F 。
根据定义1,测试一个分解是否保持FD ,比较可行的方法是逐步验证F 中的每个FD 是否被)(1F R i ki π=Y 逻辑蕴涵。
如果F 的投影不蕴涵F ,而我们又用},...{1K R R =ρ表达R ,很可能会找到一个数据库实例σ 满足投影后的依赖,但不满足F 。
对σ的更新也有可能使r 违反FD 。
案例1:R (T#,TITLE ,SALARY )。
如果规定每个教师只有一个职称,并且每个职称只有 一个工资数目,那么R 上的FD 有T#→TITLE 和TITLE →SALARY 。
如果R 分解成ρ={R 1,R 2},其中R 1={T#,TITLE},R 2={T#,SALARY }。
则该分解具有无损连接性,但未保持函数依赖,丢失了依赖TITLE →SALARY 。
习题1:设关系模式R (ABC ),ρ={AB ,AC}是R 的一个分解。
试分析分别在F 1={A →B};F 2={A →C ,B →C},F 3={B →A},F 4={C→B,B→A}情况下, 是否具有无损分解和保持FD的分解特性。
算法1:分解成2NF模式集的算法设关系模式R(U),主码是W,R上还存在FD X→Z,并且Z是非主属性和X⊂W,那么W→Z就是非主属性对码的部分依赖。
此时,应把R分解成两个关系模式:R1(XZ),主码是X;R2(Y),其中Y=U-Z,主码仍为W,外码是X(参照R1)利用外码和主码的连接可以从R1和R2重新得到R。
如果R1和R2还不是2NF,则重复上述过程,一直到数据库模式中的每个关系模式都是2NF为止。
关系模式的分解准则
关系模式的分解准则有:
(1)实体冗余(E-R)分解法。
根据E-R模式的规则,可以把一个实体分成多个实体,其中重要的实体可以多次出现。
(2)覆盖索引(CRC)分解法。
它考虑了实体约束和属性约束,用两个分解条件来分解关系模式,即冗余表分解(RD)和实体冗余分解(ERD)。
(3)非集中规范化(3NF)分解法。
它强调的是保持一般情况表的不可分割性,
其分解方法是根据实体与属性的约束,从模式中把出现在死关系中的属性拆分出来。
(4)最终规范化(BCNF)分解法。
这种分解方法更强调实体的约束,它是根据实体与实体之间的约束,把关系拆分成几个满足BCNF规范化要求的子集。
关系模式分解例题例1:现有如下关系模式:R(教师号,姓名,部门号,部门名称,科研项⽬编号,项⽬名称,项⽬经费,担任⼯作,完成时间)每名教师可以参加多项科研项⽬,每个项⽬可以有多名教师参加,教师参加科研⼯作包括担任⼯作及他完成所担任部分的完成时间。
(1)根据上述条件,写出关系模式R的关键码。
(2)R最⾼属于第⼏范式,为什么? (3)将R规范到3NF。
由关系模式可以得出(⾁眼凭经验看出):候选码:(教师号,部门号,科研项⽬编号)(教师号)→(姓名)(部门号)→(部门名称)(科研项⽬编号)→项⽬名称(科研项⽬编号)→项⽬经费由题⽬描述可以得出:(教师号,科研项⽬编号)→(担任⼯作)(教师号,科研项⽬编号)→(完成时间)(1)⾁眼看出候选码就是(教师号,部门号,科研项⽬编号)(2)第⼀范式,存在姓名依赖于教师号,⽽担任⼯作依赖于教师号和科研项⽬编号,这是个⾮主属性对码的部分函数依赖(3)教师(教师号,姓名)部门(部门号,部门名称)科研项⽬(科研项⽬编号,项⽬名称,项⽬经费)教师科研情况(教师号,科研项⽬编号,担任⼯作,完成时间)例2:现有关系模式如下:借阅(图书编号,书名,作者名,出版社,读者编号,读者姓名,借阅⽇期,归还⽇期)(1)读者编号是候选码吗请说明理由。
(2)写出该关系模式的主码。
(3)该关系模式中是否存在部分函数依赖如果存在,请写出两个。
(4)该关系模式最⾼满⾜第⼏范式并说明理由。
(5)如何分解该关系模式,使得分解后的关系模式均满⾜第三范式(3NF)由关系模式可以得出:候选码:(图书编号,读者编号,借阅⽇期)(图书编号)→(书名)(图书编号)→(作者名)(图书编号)→(出版社)(读者编号)→(读者姓名)归还⽇期不能依赖于借阅⽇期(1)不是,读者编号只能决定书名、作者名、出版社,不能决定所有的属性,因此该关系模式不能完全依赖于读者编号。
(2)(图书编号,读者编号,借阅⽇期)(3)偶上边写了5个XDDD(4)第⼀范式,因为存在⾮主属性对码的部分函数依赖,⽐如(图书编号,读者编号,借阅⽇期)→(书名),⽽(图书编号)→(书名)。
关系模式分解的两种主要准则关系模式分解的两种主要准则在数据库设计过程中,关系模式分解是一个重要的步骤,它将一个复杂的关系模式分解为多个简单的关系模式。
这个过程有助于提高数据库的性能和可维护性。
在关系模式分解过程中,有两种主要的准则,即函数依赖和多值依赖。
函数依赖函数依赖是关系模式分解的重要准则之一。
函数依赖描述了一个关系模式中的属性之间的关系。
在一个关系模式中,如果一个属性的值可以通过其他属性的值来确定,那么我们说这个属性依赖于其他属性。
这种依赖关系可以用函数依赖来表示。
具体来说,如果在一个关系模式R中,属性集X的值决定着属性集Y的值,我们可以表示为X->Y。
其中,X称为函数依赖的左侧,Y称为函数依赖的右侧。
函数依赖的左侧属性集称为决定因素,右侧属性集称为被决定因素。
在关系模式分解过程中,我们需要将函数依赖的左侧属性集作为一个新的关系模式的主键,并将函数依赖的右侧属性集作为新的关系模式的属性。
函数依赖的准则包括:完全依赖:如果函数依赖X->Y满足以下条件,我们称之为完全依赖:Y不包含X中的任何一个属性。
如果从X中移除任何一个属性,函数依赖不再成立。
部分依赖:如果函数依赖X->Y满足以下条件,我们称之为部分依赖:Y包含X中的某些属性。
如果从X中移除任何一个属性,函数依赖仍然成立。
通过分解满足完全依赖和部分依赖的关系模式,我们可以得到一个更规范、更高效的数据库设计。
多值依赖多值依赖是关系模式分解的另一个重要准则。
它描述了一个关系模式中两个属性之间的关系,其中一个属性的值可以确定另一个属性的多个值。
具体来说,如果在一个关系模式R中,属性集X的值决定着属性集Y的多个值,我们可以表示为X->>Y。
其中,X称为多值依赖的左侧,Y称为多值依赖的右侧。
在关系模式分解过程中,我们需要将多值依赖的左侧属性集作为一个新的关系模式的主键,并将多值依赖的右侧属性集作为新的关系模式的属性。
多值依赖的准则包括:非平凡多值依赖:如果一个多值依赖X->>Y满足以下条件,我们称之为非平凡多值依赖:X与Y没有公共属性。
第五章关系数据理论部门: xxx时间: xxx整理范文,仅供参考,可下载自行编辑第五章关系数据理论6.3 数据依赖的公理系统1. 逻辑蕴含定义6.11 对于满足一组函数依赖 F 的关系模式R <U,F>,其任何一个关系r,若函数依赖X→Y都成立, (即对于r中任意两个元组s,t,若s[X]=t[X],则s[Y]t[Y]>,则称F逻辑蕴含X→Y例如R(X, Y,Z>,F={X→Y, Y→Z}X→Z为了求得给定关系模式的码,为了从一组给定的函数依赖求得蕴涵的函数依赖,就需要一套推理规则。
这组推理规则是Armstrong于1974年提出的,所以称为Armstrong公理系统。
2. Armstrong公理系统一套推理规则,是模式分解算法的理论基础用途:求给定关系模式的码从一组函数依赖求得蕴含的函数依赖关系模式R <U,F >来说有以下的推理规则:Al.自反律<Reflexivity):若Y X U,则X →Y为F所蕴含。
(Sno,S name> →Sname注意:由自反律所得到的函数依赖均是平凡的函数依赖,自反律的使用并不依赖于FA2.增广律<Augmentation):若X→Y为F所蕴含,且Z→U,则XZ→YZ为F所蕴含。
A3.传递律<Transitivity):若X→Y及Y→Z为F所蕴含,则X→Z为F所蕴含。
定理 6.1 Armstrong推理规则是正确的<l)自反律:若Y X U,则X →Y为F所蕴含证: 设Y X U对R <U,F> 的任一关系r中的任意两个元组t,s:若t[X]=s[X],由于Y X,有t[y]=s[y],所以X→Y成立.自反律得证<2)增广律: 若X→Y为F所蕴含,且Z U,则XZ→YZ 为F 所蕴含。
证:设X→Y为F所蕴含,且Z U。
设R<U,F> 的任一关系r中任意的两个元组t,s;若t[XZ]=s[XZ],则有t[X]=s[X]和t[Z]=s[Z];由X→Y,于是有t[Y]=s[Y],所以t[YZ]=s[YZ],所以XZ→YZ为F所蕴含.增广律得证。