数据库技术及应用 机械工业出版社 2019/7/24.

Slides:



Advertisements
Similar presentations
2.6 隐函数微分法 第二章 第二章 二、高阶导数 一、隐式定义的函数 三、可微函数的有理幂. 一、隐函数的导数 若由方程 可确定 y 是 x 的函数, 由 表示的函数, 称为显函数. 例如, 可确定显函数 可确定 y 是 x 的函数, 但此隐函数不能显化. 函数为隐函数. 则称此 隐函数求导方法.
Advertisements

全微分 教学目的:全微分的有关概念和意义 教学重点:全微分的计算和应用 教学难点:全微分应用于近似计算.
§3.4 空间直线的方程.
圆的一般方程 (x-a)2 +(y-b)2=r2 x2+y2+Dx+Ey+F=0 Ax2+Bxy+Cy2+Dx+Ey+ F=0.
第五章 二次型. 第五章 二次型 知识点1---二次型及其矩阵表示 二次型的基本概念 1. 线性变换与合同矩阵 2.
第6章 关系数据理论 6.1关系模式的设计的问题 6.2 数据依赖的推理规则 6.3规范化 6.4模式分解.
第三章 函数逼近 — 最佳平方逼近.
第七章:数据库设计理论基础.
第六章 关系数据理论 内容出处: 1.Abraham Silberschatz《数据库系统概念》第七章.
河北化工医药职业技术学院 数据库原理及应用教案.
第4章 关系数据库设计理论 本章内容 4.1 问题的提出 4.2 规范化 4.3 数据依赖的公理系统* 4.4 小结 习 题.
《高等数学》(理学) 常数项级数的概念 袁安锋
§1 线性空间的定义与性质 ★线性空间的定义 ★线性空间的性质 ★线性空间的子空间 线性空间是线性代数的高等部分,是代数学
常用逻辑用语复习课 李娟.
第六章 关系数据理论 6.1 问题的提出 6.2 规范化 6.3 数据依赖的公理系统 *6.4 模式的分解.
An Introduction to Database System
Database Principles & Applications
一、原函数与不定积分 二、不定积分的几何意义 三、基本积分公式及积分法则 四、牛顿—莱布尼兹公式 五、小结
第四章 定积分及其应用 4.3 定积分的概念与性质 微积分基本公式 定积分的换元积分法与分部积分法 4.5 广义积分
第四章 函数的积分学 第六节 微积分的基本公式 一、变上限定积分 二、微积分的基本公式.
第5章 定积分及其应用 基本要求 5.1 定积分的概念与性质 5.2 微积分基本公式 5.3 定积分的换元积分法与分部积分法
第三节 格林公式及其应用(2) 一、曲线积分与路径无关的定义 二、曲线积分与路径无关的条件 三、二元函数的全微分的求积 四、小结.
2-7、函数的微分 教学要求 教学要点.
第7章 关系数据库规范化理论 7.1 函数依赖 7.2 关系规范化 7.3 关系模式的分解准则.
初中数学八年级下册 (苏科版) 10.4 探索三角形 相似的条件(2).
An Introduction to Database System An Introduction To Database System
An Introduction to Database System An Introduction to Database System
第5章 §5.3 定积分的积分法 换元积分法 不定积分 分部积分法 换元积分法 定积分 分部积分法.
第四章 关系数据理论 4.1 关系模式的设计问题 4.2 关系模式的规范化 4.3 数据依赖的公理系统 4.4 关系模式的分解 本章小结.
第5章 关系模式的规范化设计 冯万利.
第四章关系数据库设计理论 4.1 数据依赖 4.2 范式 4.3 关系模式的规范化.
第六章 关系数据理论 6.1 问题的提出 6.2 规范化 6.3 数据依赖的公理系统 *6.4 模式的分解 6.5 小结 管理科学与工程学院.
Thanks for the Slides from Renmin U
第五章 关系数据理论 关系模型有严格的数学理论基础,也是目前应用最广泛的数据模型,关系规范化是指导数据库设计的重要理论。一个好的关系数据库是应该既可以供人们方便地获取信息,而又不产生过多的不必要的重复存储问题。可以说,规范化理论是数据模型优化的理论基础,对其他数据库的逻辑设计同样具有理论上的意义。 2018年12月6日7时18分.
人教版数学四年级(下) 乘法分配律 单击页面即可演示.
Principle and Application of Database
28.1 锐角三角函数(2) ——余弦、正切.
第一章 函数与极限.
第6章 关系数据库规范化理论 教学目标:通过本章学习,了解不规范的关系模式存在的问题;理解函数依赖及关系规范化的相关概念,熟悉关系模式的形式化定义;掌握第一范式(1NF)、第二范式(2NF)、第三范式(3NF)及BCNF的定义及相关术语的含义;了解多值依赖及第四范式(4NF)的定义;理解函数依赖公理的内容,掌握属性闭包的定义及求解算法,能够正确判断关系模式的候选码及规范化程度;了解最小函数依赖集的定义及算法,了解对模式分解后无损连接性和函数依赖保持性的判断。
概 率 统 计 主讲教师 叶宏 山东大学数学院.
⑴当∠MBN绕点B旋转到AE=CF时(如图1),比较AE+CF与EF的大小关系,并证明你的结论。
复习.
正切函数的图象和性质 周期函数定义: 一般地,对于函数 (x),如果存在一个非零常数T,使得当x取定义域内的每一个值时,都有
定理21.9(可满足性定理)设A是P(Y)的协调子集,则存在P(Y)的解释域U和项解释,使得赋值函数v(A){1}。
第16讲 相似矩阵与方阵的对角化 主要内容: 1.相似矩阵 2. 方阵的对角化.
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
3.1.2 空间向量的数量积运算 1.了解空间向量夹角的概念及表示方法. 2.掌握空间向量数量积的计算方法及应用.
1.把下面的关系模式转化为E-R图 1)系(系号,系名,电话) 2)教师(工号,姓名,性别,年龄,系号)
1.2 子集、补集、全集习题课.
1.设A和B是集合,证明:A=B当且仅当A∩B=A∪B
第三章 函数的微分学 第二节 导数的四则运算法则 一、导数的四则运算 二、偏导数的求法.
线段 射线 直线.
学习任务三 偏导数 结合一元函数的导数学习二元函数的偏导数是非常有用的. 要求了解二元函数的偏导数的定义, 掌握二元函数偏导数的计算.
上杭二中 曾庆华 上杭二中 曾庆华 上杭二中 曾庆华.
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
第五章关系数据库设计理论 5.1 数据依赖 5.2 范式 5.3 关系模式的规范化.
An Introduction to Database System
第3章 关系数据库的规范化理论 本章导读: 关系规范化理论研究的是关系模式中各属性之间的依赖关系及其对关系模式性能的影响,探讨“好”的关系模式应该具备的性质,以及达到“好”的关系模式提供的方法。关系规范化理论提供了判断关系逻辑模式优劣的理论标准,是数据库设计的理论基础和关系模式算法工具,用于帮助数据库设计工程师预测和优化模式可能出现的问题。
高中数学必修 平面向量的基本定理.
§2 方阵的特征值与特征向量.
連比 連比例式的應用 自我評量.
9.5空间向量及其运算 2.共线向量与共面向量 淮北矿业集团公司中学 纪迎春.
第五章关系数据库设计理论 5.1 数据依赖 5.2 范式 5.3 关系模式的规范化.
锐角三角函数(1) ——正 弦.
定义5 把矩阵 A 的行换成同序数的列得到的矩阵,
第四节 向量的乘积 一、两向量的数量积 二、两向量的向量积.
第四章 函数的 积分学 第七节 定积分的换元积分法     与分部积分法 一、定积分的换元积分法 二、定积分的分部积分法.
§2 自由代数 定义19.7:设X是集合,G是一个T-代数,为X到G的函数,若对每个T-代数A和X到A的函数,都存在唯一的G到A的同态映射,使得=,则称G(更严格的说是(G,))是生成集X上的自由T-代数。X中的元素称为生成元。 A变, 变 变, 也变 对给定的 和A,是唯一的.
大綱: 比例線段定義 平行線截比例線段性質 顧震宇 台灣數位學習科技股份有限公司
1.2.2 充要条件 高二数学 选修 1-1 第一章 常用逻辑用语.
Presentation transcript:

数据库技术及应用 机械工业出版社 2019/7/24

第7章 关系数据库理论 7.1 关系数据模式的规范化理论 7.1.1 关系模式规范化的必要性 7.2 关系模式的分解算法 第7章 关系数据库理论 7.1 关系数据模式的规范化理论 7.1.1 关系模式规范化的必要性 7.1.2 函数依赖及其关系的范式 7.1.3 多值依赖及关系的第四范式 7.2 关系模式的分解算法 7.2.1 关系模式分解的算法基础 7.2.3 判定分解服从规范的方法 7.2.4 关系模式的分解方法

7.1 关系数据模式的规范化理论 范式(Normal Form)是指规范化的关系模式。由满足最基本规范化的关系模式叫第一范式,第一范式的关系模式再满足另外一些约束条件就产生了第二范式、第三范式、BC范式等等。一个低一级的关系范式通过模式分解可以转换成若干高一级范式的关系模式的集合,这种过程叫关系模式的规范化。

7.1.1 关系模式规范化的必要性 1. 关系模式应满足的基本要求 1) 元组的每个分量必须是不可分的数据项。 2) 数据库中的数据冗余应尽可能少。 3) 关系数据库不能因为数据更新操作而引起数据不一致问题。 4) 当执行数据插入操作时,数据库中的数据不能产生插入异常现象。 5) 数据库中的数据不能在执行删除操作时产生删除异常问题。 6) 数据库设计应考虑查询要求,数据组织应合理。

2. 关系规范化可能出现的问题 数据冗余大。 插入异常。 删除异常。 更新异常。 学号 姓名 年龄 性别 系名 系主任 课程名 成绩 98001 李华 20 男 计算机系 王民 程序设计 88 数据结构 74 数据库 82 电路 65 98002 张平 21 女 92 78 83 98003 陈兵 数学系 赵敏 高等数学 72 94 离散数学 87

3. 模式分解是关系规范化的主要方法 上述的关系模式: 教学(学号,姓名,年龄,性别,系名,系主任,课程名, 成绩). 可以按“一事一地”的原则分解成“学生”、“教学系”和“选课”三个关系,其关系模式为: 学生(学号,姓名,年龄,性别,系名称); 教学系(系名,系主任); 选课(学号,课程名,成绩).

7.1.2 函数依赖及其关系的范式 1. 关系模式的简化表示法 关系模式的完整表示是一个五元组: R〈U,D,Dom,F〉. 其中:R为关系名;U为关系的属性集合;D为属性集U中属性的数据域;Dom为属性到域的映射;F为属性集U的数据依赖集。 关系模式可以用三元组来为: R〈U,F〉.

2. 函数依赖的概念 1) 设R〈U〉是属性集U上的关系模式,X、Y是U的子集。若对于R〈U〉的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而Y上的属性值不等,则称X函数确定Y函数,或Y函数依赖于X函数,记作X→Y。 例如,对于教学关系模式:教学〈U,F〉; U={学号,姓名,年龄,性别,系名,系主任,课程名,成绩}; F={学号→姓名,学号→年龄,学号→性别,学号→系名,系名→系主任,(学号,课程名)→成绩}. ① X→Y,但Y X,则称X→Y是非平凡的函数依赖。若不特别声明,总是讨论非平凡的函数依赖。 ② X→Y,但YX,则称X→Y是平凡的函数依赖。 ③ 若X→Y,则X叫做决定因素(Determinant),Y叫做依赖因素(Dependent)。 ④ 若X→Y,Y→X,则记作X↔Y。 ⑤ 若Y不函数依赖于X,则记作X Y。

完全函数依赖、传递函数依赖 2) 在R〈U〉中,如果X→Y,并且对于X的任何一个真子集X‘,都有X‘ Y,则称Y对X完全函数依赖,记作:X→Y;若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作: X→Y。 例如,在教学关系模式:(学号,课程名)→成绩,(学号,课程名)→姓名 3) 在R〈U〉中,如果X→Y,(YX),Y X,Y→Z,则称Z对X传递函数依赖。传递函数依赖记作X → Z。 传递例如,在教学模式中,因为:学号→系名,系名→系主任;所以:学号 → 系主任。 F P F P 传递 传递

3. 1NF的定义、 2NF的定义 如果关系模式R,其所有的属性均为简单属性,即每个属性都是不可再分的,则称R属于第一范式,记作R1NF。 若R1NF,且每一个非主属性完全依赖于码,则R2NF。 在教学模式中: 属性集={学号,姓名,年龄,系名,系主任,课程名,成绩}. 函数依赖集={学号→姓名,学号→年龄,学号→性别,学号→系名, 系名→系主任,(学号,课程名)→成绩}. 主码=(学号,课程名). F 非主属性=(姓名,年龄,系名,系主任,成绩)。 非主属性对码的函数依赖: {(学号,课程名)→姓名,(学号,课程名)→年龄,(学号,课程号)→性别 , (学号,课程名)→系名,(学号,课程名)→系主任;(学号,课程名)→成绩}. 显然,教学模式不服从2NF,即:教学2NF。 P P P P P

5. 3NF的定义 关系模式R〈U,F〉中若不存在这样的码X、属性组Y及非主属性Z(ZY)使得X→Y、Y X、Y→Z成立,则称R〈U,F〉3NF。 可以证明,若R3NF,则每一个非主属性既不部分函数依赖于码,也不传递函数依赖于码。 考查学生_系关系,由于存在:学号→系名,系名→系主任。 则: 学号 → 系主任。所以学生_系3NF。 如果分解为: 学生(学号,姓名,年龄,性别,系名); 教学系(系名,系主任). 显然分解后的各子模式均属于3NF。 传递

6. BCNF的定义 关系模式R〈U,F〉1NF。若X→Y且YX时X必含有码,则R〈U,F〉BCNF。 也就是说,关系模式R〈U,F〉中,若每一个决定因素都包含码,则R〈U,F〉BCNF。由BCNF的定义可以得到结论,一个满足BCNF的关系模式有: 1) 所有非主属性对每一个码都是完全函数依赖。 2) 所有的主属性对每一个不包含它的码,也是完全依赖。 3) 没有任何属性完全函数依赖于非码的任何一组属性。

7. BCNF和3NF的比较 1) BCNF不仅强调其他属性对码的完全的直接的依赖,而且强调主属性对码的完全的直接的依赖,它包括3NF,即RBCNF,则R一定属于3NF。 2) 3NF只强调非主属性对码的完全直接依赖,这样就可能出现主属性对码的部分依赖和传递依赖。 例如,关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示课程。语义为:每一教师只能讲授一门课程,每门课程由若干教师讲授;每个学生选修某门课程就对应一个固定的教师。由语义可以得到STJ模式的函数依赖为: F={(S,J)→T,T→J} 显然:(S,J)和(T,S)都是关系的码;关系的主属性集为{S,T,J},非主属性为(空集)。 P由于STJ模式中无非主属性,所以它属于3NF;但因为存在T→J,由于T不是码,故STJBCNF。

7.1.3 多值依赖及关系的第四范式 1. 研究多值依赖的必要性 例如,给定一个关系模式JPW(产品,零件,工序),其中每种产品由多种零件构成,每个零件在装配时需要多道工序。设产品电视机需要的零件和工序如图所示。 显像管 电视机 开关 电源 焊接 调试 测试 装配

2. 多值依赖的定义和性质 设有关系模式R〈U〉,U是属性集,X、Y是U的子集。如果R的任一关系,对于X的一个确定值,都存在Y的一组值与之对应,且Y的这组值又与Z=U-X-Y中的属性值不相关,此时称Y多值依赖于X,或X多值决定Y,记为X→→Y。 多值依赖具有以下性质: 1) 多值依赖具有对称性。即若X→→Y,则X→→Z,其中Z=U-X-Y。 2) 函数依赖可以看作是多值依赖的特殊情况。即若X→Y,则X→→Y。这是因为当X→Y时,对X的每一个值x,Y有一个确定的值y与之对应,所以X→→Y。 3) 在多值依赖中,若X→→Y且Z=U-X-Y≠φ,则称X→→Y为非平凡的多值依赖,否则称为平凡的多值依赖。

7.2 关系模式的分解算法 7.2.1 关系模式分解的算法基础 7.2 关系模式的分解算法 7.2.1 关系模式分解的算法基础 1. 函数依赖的逻辑蕴含 设F是模式R〈U〉的函数依赖集,X和Y是属性集U的子集。如果从F中的函数依赖能推出X→Y,则称F逻辑蕴含X→Y,或称X→Y是F的逻辑蕴含。 2. Armstrong公理系统 (1) Armstrong公理系统 设U为属性集,F是U上的函数依赖集,于是有关系模式R〈U,F〉。对R〈U,F〉来说,有以下的推理规则。 1) 自反律:若YXU,则X→Y为F所蕴含。 2) 增广律:若X→Y为F所蕴含,且ZU,则XZ→YZ为F所蕴含。 3) 传递律:若X→Y及Y→Z为F所蕴含,则X→Z为F所蕴含。 (2) Armstrong公理的三个推理 1) 合并规则:由X→Y,X→Z,有X→YZ。 2) 伪传递规则:由X→Y,WY→Z,有XW→Z。 3) 分解规则:由X→Y及ZY,有X→Z。

3. 函数依赖集闭包F+和属性集闭包XF+ (1) 函数依赖集闭包F+和属性集闭包XF+的定义 定义:在关系模式R〈U,F〉中,为F所逻辑蕴含的函数依赖的全体叫做F的闭包,记作F+。 定义:设有关系模式R〈U,F〉,X是U的子集,称所有从F推出的函数依赖集X→Ai中Ai的属性集为X的属性闭包,记作XF+。即: XF+={ Ai | Ai∈U,X→Ai∈F+} (2) 属性集闭包XF+的求法 1) 选X作为闭包XF+的初值XF(0)。 2) XF(i+1)是由XF(i)并上集合A所组成,其中A为F中存在的函数依赖Y→Z,而AZ,YXF(i)。 3) 重复步骤2)。一旦发现XF(i)= XF(i+1),则XF(i)为所求XF+。

例子 【例7-1】已知关系R〈U,F〉,其中U={A,B,C,D,E},F={AB→C,B→D,C→E,EC→B,AC→B},求(AB)F+。 设X=AB ∵ XF(0)=AB XF(1)=ABCD XF(2)=ABCDE XF(3)= XF(2)=ABCDE ∴ (AB)F+=ABCDE={A,B,C,D,E}

4. 函数依赖集的最小化 (1) 最小函数依赖集的定义 如果函数依赖集F满足下列条件,则称F为一个极小函数依赖集。亦称为最小依赖集或最小覆盖。 1) F中任一函数依赖的右部仅含有一个属性。 2) F中不存在这样的函数依赖X→A,使得F与F-{X→A}等价。 3) F中不存在这样的函数依赖X→A,X有真子集Z使得F-{X→A}∪{Z-A}与F等价。 (2) 最小函数依赖集的求法 1) 逐一检查F中各函数依赖X→Y,若Y=A1A2…Ak,k≥2,则用{X→Aj|j=1,2,…k}来取代X→Y。 2) 逐一检查F中各函数依赖X→A,令G=F-{X→A},若A∈XG+,则从F中去掉此函数依赖。 3) 逐一取出F中各函数依赖X→A,设X=B1B2…Bm,逐一检查Bi(i=1,2,…,m),如果A∈(X-Bi)F+,则以X-Bi取代X。

【例7-2】设F={A→BC,B→AC,C→A},对F进行极小化处理。 解: 1) 根据分解规则把F中的函数依赖转换成右部都是单属性的函数依赖集合,分解后的函数依赖集仍用F表示。 F={A→B,A→C,B→A,B→C,C→A} 2) 去掉F中冗余的函数依赖。 判断A→B。设:G1={ A→C,B→A,B→C,C→A}, 得:AG1+=AC ∵ BAG1+ ∴ A→B不冗余 判断A→C。设:G2={ A→B,B→A,B→C,C→A}, 得:AG2+=ABC ∵ CAG2+ ∴ A→C冗余 判断B→A。设:G3={ A→B,B→C,C→A}, 得:BG3+=BCA ∵ ABG3+ ∴ B→A冗余 判断B→C。设:G4={ A→B,C→A}, 得:BG4+=B ∵ CBG4+ ∴ B→C不冗余 判断C→A。设:G5={ A→B,B→C }, 得:CG5+=C ∵ ACG5+ ∴ C→A不冗余 Fm={ A→B,B→C,C→A}

【例7-3】求F={AB→C,A→B,B→A}的最小函数依赖集Fm。 解:(1)去掉F中冗余的函数依赖。 判断AB→C是否冗余。设:G1={ A→B,B→A}, 得:(AB)G1+=AB ∵ C (AB)G1+ ∴ AB→C不冗余 判断A→B是否冗余。设:G2={ AB→C,B→A}, 得:AG2+=A ∵ BABG2+ ∴ A→B不冗余 判断B→A是否冗余。设:G3={ AB→C,A→B }, 得:BG3+=B ∵ ABG3+ ∴B→A不冗余 经过检验后的函数依赖集仍然为F={AB→C,A→B,B→A}。 (2) 去掉各函数依赖左部冗余的属性。 本题只需考虑AB→C的情况。 方法1:在决定因素中去掉B,若CAF+,则以A→C代替AB→C。 求得:AF+=ABC ∵ CAF+ ∴ 以A→C代替AB→C 故:Fm={A→C,A→B,B→A} 方法2:在决定因素中去掉A,若CBF+,则以B→C代替AB→C。 求得:BF+=ABC ∵ CBF+ ∴ 以B→C代替AB→C 故:Fm={B→C,A→B,B→A}

7.2.3 判定分解服从规范的方法 1. 关系分解的无损连接性 7.2.3 判定分解服从规范的方法 1. 关系分解的无损连接性 设关系模式R,如果把它分解为两个(或多个)子模式R1和R2,相应一个R关系中的数据就要被分成R1 、R2两个(或多个)子表。假如将这些子表自然连接,即进行R1R2操作,得到的结果与原来关系中的数据一致,信息并没有丢失,则称该分解具有无损连接性,否则如果R≠R1R2,则称该分解不具有无损连接性。 2. 判断分解成两个关系具有无损连接性的方法 定理:R〈U,F〉的一个分解={ R1〈U1,F1〉,R2〈U2,F2〉}具有无损连接性的充分必要条件是: U1∩U2→U1-U2∈F+. 或 U1∩U2→U2-U1∈F+. 3. 判断分解保持函数依赖的方法 设R〈U,F〉的分解={R1〈U1,F1〉,R1〈U2,F2〉,…Rk〈UK,FK〉},若F+=(∪Fi)+,则称分解保持函数依赖。

例子 【例7-5】关系模式R={CITY,ST,ZIP},其中CITY为城市,ST为街道,ZIP为邮政编码,F={(CITY,ST)→ZIP,ZIP→CITY}。如果将R分解成R1和R2,R1={ST,ZIP},R2={CITY,ZIP},检查分解是否具有无损连接和保持函数依赖。 解:1) 检查无损连接性。 求得:R1∩R2={ZIP};R2-R1={CITY}. ∵ (ZIP→CITY)∈F+. ∴ 分解具有无损连接性 2) 检查分解是否保持函数依赖 求得:πR1(F)=Ф;πR2(F)={ ZIP→CITY}. ∵ πR1(F)∪πR2(F)={ ZIP→CITY}≠F+. ∴ 该分解不保持函数依赖。

7.2.4 关系模式的分解方法 1. 将关系模式转化为3NF的保持函数依赖的分解 1) 对R〈U,F〉中的F进行极小化处理。处理后的函数依赖集仍用F表示。 2) 找出不再在F中出现的属性,把这样的属性构成一个关系模式,并把这些属性从U中去掉。 3) 如果F中有一个函数依赖涉及R的全部属性,则R不能再分解。 4) 如果F中含有X→A,则分解应包含模式XA,如果X→A1,X→A2,…X→An均属于F,则分解应包含模式XA1A2…An。 【例7-6】设关系模式R〈U,F〉,U={C,T,H,R,S,G,X,Y,Z},F={C→T,CS→G,HR→C,HS→R,TH→R,C→X},将R分解为3NF,且保持函数依赖。 解:设该函数依赖集已经是最小化的,则分解为: ={YZ,CTX,CSG,HRC,HSR,THR}.

2. 将关系转化为3NF、且既具有无损连接性又能保持函数依赖的分解 对于给定的关系模式R〈U,F〉,将其转换为3NF,且既具有无损连接性又能保持函数依赖的分解算法为: 1) 设X是R〈U,F〉的码,R〈U,F〉先进行保持函数依赖的分解,结果为={ R1〈U1,F1〉,R2〈U2,F2〉,…,Rk〈Uk,Fk〉},令τ=∪{R*〈X,Fx〉}。 2) 若有某个Ui,X Ui,将R*〈X,Fx〉从τ中去掉,τ就是所求的分解。 【例7-7】有关系模式R〈U,F〉,U={C,T,H,R,S,G},F={C→T,CS→G,HR→C,HS→R,TH→R},将R分解为3NF,且既具有无损连接性又能保持函数依赖。 解:求得关系模式R的码为HS,它的一个保持函数依赖的3NF为: ={CT,CSG,HRC,HSR,THR}. ∵ HSHSR ∴ τ=={ CT,CSG,HRC,HSR,THR}为满足要求的分解。

3. 将关系模式转换为BCNF的无损连接的分解 1) 令= R〈U,F〉。 2) 检查中各关系模式是否均属于BCNF。若是,则算法终止。 3) 假设中Ri〈Ui,Fi〉不属于BCNF,那么必定有X→AFi+,(AX),且X非Ri的码。对Ri进行分解:σ={S1,S2},US1=XA,US2= Ui-{A},以σ代替Ri〈Ui,Fi〉,返回第2)步。

例子 【例7-8】关系模式R〈U,F〉,U=CTHRSG,F={ C→T,HR→C, HT→R,CS→G,HS→R},把R分解成具有无损连接的BCNF。 解:令= CTHRSG 1) 由于R的码为HS,选择CS→G分解。得出:={S1,S2}. 其中:S1=CSG, F1={ CS→G}; S2=CTHRS, F2={ C→T,HR→C,HT→R,HS→R}. S2不服从BCNF,需要继续分解。 2) 对S2分解。S2的码为HS,选择C→T分解。得出:={ S1,S3,S4}. 其中:S3=CT, F3={ C→T}; S4=CHRS, F4={ HR→C,HS→R}. S4不服从BCNF,还需要继续分解。 3) 对S4分解。码为HS,选择HR→C分解:={ S1,S3,S5,S6}. 其中:S5=HRC, F5={ HR→C}; S6=HRS, F6={HS→R}. 4) 最后的分解为:={CSG,CT,HRC,HRS}.

本章结束 谢谢