数据库范式理解例题

上传人:人*** 文档编号:431482578 上传时间:2023-09-10 格式:DOC 页数:15 大小:569KB
返回 下载 相关 举报
数据库范式理解例题_第1页
第1页 / 共15页
数据库范式理解例题_第2页
第2页 / 共15页
数据库范式理解例题_第3页
第3页 / 共15页
数据库范式理解例题_第4页
第4页 / 共15页
数据库范式理解例题_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《数据库范式理解例题》由会员分享,可在线阅读,更多相关《数据库范式理解例题(15页珍藏版)》请在金锄头文库上搜索。

1、范式分解主属性:包含在任一候选关键字中的属性称主属性。非主属性:不包含在主码中的属性称为非主属性。函数依赖:是指关系中一个或一组属性的值可以决定其它属性的值。函数依赖正象一个函数y = f(x)一样, x 的值给定后, y 的值也就唯一地确定了。如果属性集合Y 中每个属性的值构成的集合唯一地决定了属性集合 X 中每个属性的值构成的集合,则属性集合 X 函数依赖于属性集合 Y,计为: Y X。属性集合Y 中的属性有时也称作函数依赖 Y X 的决定因素 ( determinant)。例:身份证号姓名。部分函数依赖:设 X,Y 是关系 R的两个属性集合,存在 XY,若 X是 X 的真子集,存在 X

2、Y,则称 Y 部分函数依赖于 X。完全函数依赖:在 R(U)中,如果 Y 函数依赖于 X, 并且对于 X 的任何一个真子集X ,都有 Y 不函数依赖于X , 则称 Y 对 X 完全函数依赖。否则称 Y 对 X 部分函数依赖。【例】;举个例子就明白了。假设一个学生有几个属性SNO 学号SNAME 姓名SDEPT系SAGE年龄 CNO 班级号G成绩对于 (SNO,SNAME,SDEPT,SAGE,CNO,G)来说, G 完全依赖于(SNO, CNO), 因为 (SNO,CNO)可以决定G,而 SNO和 CNO都不能单独决定 G。而 SAGE部分函数依赖于 (SNO,CNO),因为 (SNO,CNO

3、)可以决定 SAGE,而单独的 SNO也可以决定 SAGE。传递函数依赖:设 R(U)是属性集 U上的关系, x、y、 z 是 U的子集,在 R(U)中,若 xy,但 yx,若 y z,则 x z,称 z 传递函数依赖于x,记作 X TZ。如果 X-Y, Y-Z,则称 Z 对 X 传递函数依赖。计算 X+(属性的闭包 )算法:a. 初始化,令X+=X;b. 在 F 中依次查找每个没有被标记的函数依赖,若“左边属性集”包含于X+,则令X+=X+“右边属性集” ,并为访问过的函数依赖设置标记。c. 反复执行 b 直到 X+不改变为止。检验给定的任意函数依赖A1A2.An-B是否蕴含于依赖集S:分析

4、:根据属性集闭包的定义,可知A1A2.An-A1,A2,.,An+蕴含于 S。只要证明B 在 A1, A2, .,An+中,那么函数依赖A1A2.An-B肯定蕴含于依赖集S 中求解过程:( 1) 利用依赖集计算闭包( 2) 如果 B 在闭包中,则函数依赖 A1A2.An-B 是否蕴含于依赖集 S,否则不蕴含于S【例】总结:判定函数依赖XY是否能由F导出的问题,可转化为求X+并判定 Y 是否是 X+子集的问题。即求 F 闭包的问题可转化为求属性集闭包的问题。函数依赖的闭包:定义:若 F 为关系模式 R(U)的函数依赖集,我们把 F 以及所有被 F 逻辑蕴涵的函数依赖的集合 称为 F 的闭包,记为

5、 F+求函数依赖闭包,基于函数依赖推理规则函数依赖推理规则:若 XY-Z,则 X-Z,Y-z (错)正确的:若 X-Y, 则 XZ-YZ若 X-Y,X-Z ,则 X-YZ若 X-Y,Z 属于 Y,则 X-Z 若 X-Y,Y-Z,则 X-Z若 X-YZ,则 X-Y,X-Z / 可以把每个函数依赖的右边的属性分解,从而使其右边只出现一个属性伪传递率:若 A-B,BC-D, 则 AC-D范式第一范式( 1NF):属性,属性值,字段不可分就是无重复的列不满足 1NF的数据库就不是关系数据库【例】:第二范式 ( 2NF):符合 1NF,每一个非主属性完全依赖 于码,不能存在部分依赖,有主键,非主键字段依

6、赖主键;唯一性一个表只说明一个事物;【例】:不符合第二范式的例子:表:学号, 姓名, 年龄, 课程名称 , 成绩, 学分;这个表明显说明了两个事务 : 学生信息 , 课程信息 ; 存在问题 :数据冗余,每条记录都含有相同信息;删除异常:删除所有学生成绩,就把课程信息全删除了;插入异常:学生未选课,无法记录进数据库;更新异常:调整课程学分,所有行都调整。修正 :学生: Student( 学号 ,姓名 ,年龄 ) ;课程: Course( 课程名称 ,学分 ) ;选课关系: SelectCourse(学号 ,课程名称 ,成绩 ) 。满足第 2 范式只消除了插入异常。第三范式( 3NF):符合 2N

7、F,并且,消除传递依赖,非主键字段不能相互依赖 ; 每列都与主键有直接关系, 不存在传递依赖 ;若所有的属性都是主属性,则属于第三范式要求一个数据库表中不包含已在其它表中已包含的非主关键字信息【例】:不符合第三范式的例子:学号 , 姓名 , 年龄 , 所在学院 , 学院联系电话,关键字为单一关键字 学号 ;存在依赖传递 :(学号)( 所在学院 ) ( 学院地点 ,学院电话 )存在问题 :数据冗余 : 有重复值;更新异常:有重复的冗余信息,修改时需要同时修改多条记录,否则会出现数据不一致的情况删除异常修正:学生: (学号,姓名,年龄,所在学院 );学院: (学院,地点,电话)。总结: 1nf:

8、不可分2nf:一个表说明一个事物,唯一性3nf:对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。bcnf: 是 3NF的改进形式BCNF意味着在关系模式中每一个决定因素 都包含候选键 ,也就是说,只要属性或属性组 A 能够决定任何一个属性 B,则 A 的子集中必须有候选键。 BCNF范式排除了任何属性对候选键的传递依赖与部分依赖。满足 BCNF条件1 所有非主属性对每一个候选键都是完全函数依赖;2 所有的主属性对每一个不包含它的候选键,也是完全函数依赖;3 没有任何属性完全函数依赖于非候选键的任何一组属性。候选键 ( 又称候选码,候选关键字, 码 , candidat

9、e key)设 K 是一个 R(U) 中的属性或属性集合 ( 注意可以是属性集合,也即多个属性的组合 ) ,若 K 完全函数确定 U,则 K 为R 的候选键 (Candidate key);通俗地说就是, 能够确定全部属性的某个属性或某组属性,称为候选键 。若候选键多于一个,则选定其中一个作为主键。* 在所有依赖关系 右边没有出现的属性一定是 候选键的成员 。BCNF范式排除了任何属性对候选键 的传递依赖与部分依赖。【例 1】【例 2】【例 3】【例 4】设有关系模式R( A, B, C,D, E,G)上的函数依赖集为:F=A B, BC,ADG, DE。求解:31求关系模式R的所有侯选键。解

10、 :求出侯选键 AD。( 2 分)首先在F 中函数依赖右边不出现的属性必在侯选键中, 即 AD(1分 ) ;由于(AD)+=ABCDEG, 即 AD 能函数决定所有的属性,所以侯选键只有一个AD(1分)。AD+=AD BEG C32分别求属性集G、AD、CD、 BC的闭包。G+=G(1分) ;(AD)+=ABCDEG(1分 ) ;(CD)+=CDE(1分) ;(BC)+=BC(1 分 )33将关系模式R保持依赖地且无损地分解成3NF,要求写出分解过程。解: F=AB,BC,AD G, D EF 是最小依赖集,所有属性在 F 中出现,将 F 中是每个函数依赖组成一个关系模式得保持函数依赖的分解: AB,BC,ADG, DE (2 分) ; 并上一个侯选键 AD 得无损分解:AB, BC,ADG, DE AD=AB, BC,ADG, DE (2 分)F=AB,BC,ADG,DE34将关系模式R无损地分解成BCNF,要求写出分解过程。解:根据转换为BCNF的无损连接分解算法1)由于候选键为F 中存在不符合BCNF要求的函数依赖,所以R不是 BCNF,AD,选 AB 分解为: R1=AB, R

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 幼儿/小学教育 > 幼儿教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号