- 3
- 0
- 约3.93千字
- 约 33页
- 2019-02-20 发布于江苏
- 举报
分解方法 (1)对于不是候选码的每个决定因子,从表中删去依赖于它的所有属性; (2)新建一个表,新表中包含在原表中所有依赖于该决定因子的属性; (3)将决定因子作为新表的主码。 分解S-L关系模式 S-L分解后的关系模式为: S-D(Sno, Sdept) S-L(Sdept, Sloc) S-L-C( Sno,Sname,Ssex,Sdept,Sloc,Cno,Grade) 共分解为如下三个关系模式,每个关系模式都是3NF的。 S-D(Sno, Sname, Ssex, Sdept),Sdept为引用S-L关系模式的外码。 S-L( Sdept, Sloc),没有外码。 S-C(Sno, Cno, Grade),Sno为引用S-D关系模式的外码。 数据库原理与应用教程(第4版) 国家“十一五”规划教材 第6章 关系数据库规范化理论 6.1 函数依赖 6.1.1函数依赖基本概念 6.1.2一些术语和符号 6.1.3 为什么要讨论函数依赖 6.2 关系规范化 6.2.1 关系模式中的码 6.2.2 范式 6.1 一些数据语义问题 数据的语义不仅表现为完整性约束,对关系模式的设计也提出了一定的要求。 如何构造一个合适的关系模式,应构造几个关系模式,每个关系模式由哪些属性组成等,都是数据库设计问题,确切地讲是关系数据库的逻辑设计问题。 6.1.1函数依赖基本概念 省=f(城市):只要给出一个具体的城市值,就会有唯一一个省值和它对应, 如“武汉市”在“湖北省”,这里“城市”是自变量X,“省”是因变量或函数值Y。 把X函数决定Y,或Y函数依赖于X表示为: X→Y 如果有关系模式R(A1,A2,…,An),X和Y为{A1,A2,…,An}的子集,则对于关系R中的任意一个X值,都只有一个Y值与之对应,则称X函数决定Y,或Y函数依赖于X。 示例 例1:对学生关系模式 Student(Sno, Sname, Sdept, Sage) 有以下依赖关系: Sno→Sname, Sno→Sdept, Sno→Sage 例2: SC(Sno, Cno, Grade) (Sno, Cno)→Grade 函数依赖定义 设有关系模式R(A1,A2,…,An),X和Y均为{A1,A2,…,An}的子集,r是R的任一具体关系,t1、t2是r中的任意两个元组; 如果由t1[X]=t2[X]可以推导出t1[Y]=t2[Y],则称X函数决定Y,或Y函数依赖于X,记为X→Y。 在以上定义中特别要注意,只要 t1[X]=t2[X] t1[Y]=t2[Y] 成立,就有X→Y。也就是说只有当t1[X]=t2[X]为真,而t1[Y]=t2[Y]为假时,函数依赖X→Y不成立;而当t1[X]=t2[X]为假时,不管t1[Y]=t2[Y]为真或为假,都有X→Y成立。 6.1.2 一些术语和符号 1.?如果X→Y,但Y不包含于X,则称 X→Y是非平凡的函数依赖。 2 .?如果X→Y,但Y包含于X,则称 X→Y是平凡的函数依赖。 若无特别声明,我们讨论的都是非平凡的函数依赖。 术语和符号(续) 3.?如果X→Y,则X称为决定因子。 4. 如果X→Y,并且Y→X,则记作 X←→Y。 术语和符号(续) 如果X→Y,并且对于X的一个任意真子集X’ 都有X’—/→Y,则称Y完全函数依赖于X,并记作: 如果X→Y(非平凡函数依赖,并且Y—/→X)、Y→Z,则称Z传递函数依赖于X,记作: 如果X→Y成立,并且对于X的某个真子集X’ 有X’→Y成立,则称Y部分函数依赖于X,并记作: 示例 例1:有关系模式SC(Sno,Sname,Cno,Credit,Grade),主码为(Sno, Cno),则函数依赖关系有: 示例 例2:假设有关系模式S( Sno,Sname,Dept,Dept_master),其中各属性分别为:学号、姓名、所在系和系主任(假设一个系只有一个主任),主码为Sno,则函数依赖关系有: 6.1.3 为什么要讨论函数依赖? 有关系模式: S-L-C(Sno,Sdept,SLOC,Cno,Grade) Sno Sname Ssex Sdept Sloc Cno Grade 9512101 李勇 男 计算机系 2公寓 c01 90 9512101 李勇 男 计算机系 2公寓 c02 86 9512101 李勇 男 计算机系 2公寓 c06 NULL 9512102 刘晨 男 计算机系 2公寓 c02 78 9512102 刘晨 男 计算机系 2公寓 c04 66 9521102 吴宾 女 信息系 1公寓 c01 82 9521102 吴宾 女 信息系 1公寓 c02 75 9521102 吴宾
原创力文档

文档评论(0)