规范化理论
被考次数: 27次
被考频率: 高频率
答错率:    51%
知识难度:
考试要求: 掌握     
知识路径:  > 计算机系统综合知识  > 数据库系统  > 数据库管理系统的类型、结构和性能评价  > 数据模型


本知识点历年真题试卷分布
>> 试题列表    
 

 
       设有一个关系模式R(SNAME、CNAME、TNAME TADDRESS),其属性分别表示学生姓名、选修的课程名、任课教师姓名和任课教师地址。仔细分析一下,就会发现这个模式存在下列存储异常的问题。
       (1)数据冗余:如果某门课程有100个学生选修,那么在R的关系中就要出现100个元组,这门课程的任课教师姓名和地址也随之重复出现100次。
       (2)修改异常:由于上述冗余问题,当需要修改这个教师的地址时,就要修改100个元组中的地址值;否则就会出现地址值不一致的现象。
       (3)插入异常:如果不知道听课学生名单,这个教师的任课情况和家庭地址就无法进入数据库;否则就要在学生姓名处插入空值。
       (4)删除异常:如果某门课程的任课教师要更改,那么原来任课教师的地址将随之丢失。
       因此,关系模式R虽然只有四个属性,但却是性能很差的模式。如果把R分解成下列两个关系模式:R1(SNAME, CNAME)和R2(CNAME, TNAME, TADDRESS),则能消除上述的存储异常现象。
       为什么会产生这些异常呢?与关系模式属性值之间的联系直接有关。在模式R中,学生与课程有直接联系,教师与课程有直接联系,而教师与学生无直接联系,这就产生了模式R的存储异常。因此,模式设计强调“每个联系单独表达”是一条重要的设计原则,把R分解成R1R2是符合这条原则的。
       函数依赖
       设RU)是属性U上的一个关系模式,XYU的子集,rR的任一关系,如果对于r中的任意两个元组uv,只要有u[X]=v[X],就有u[Y]=v[Y],则称X函数决定Y,或称Y函数依赖于X,记为XY
       从函数依赖的定义可以看出,如果有XU在关系模式RU)上成立,并且不存在X的任一真子集X′使X′→U成立,那么称XR的一个候选键。也就是X值唯一决定关系中的元组。由此可见,函数依赖是键概念的推广,键是一种特殊的函数依赖。
       在RU)中,如果XY,并且对于X的任何一个真子集X′,都有X′→Y不成立,则称YX完全函数依赖。若XY,但Y不完全函数依赖于X,则称YX部分函数依赖。
       在RU)中,如果XYY不是X的真子集),且YX不成立,YZ,则称ZX传递函数依赖。
       设U是关系模式R的属性集,FR上成立的只涉及U中属性的FD集,则有以下三条推理规则:
       (1)自反性:若Y?X?U,则XYR上成立;
       (2)增广性:若XYR上成立,且Z?U,则XZYZR上成立;
       (3)传递性:若XYYZR上成立,则XZR上成立。
       这里XZYZ等写法表示XZYZ。上述三条推理规则是函数依赖的一个正确的和完备的推理系统。根据上述三条规则还可以推出其他三条常用的推理规则:
       (1)并规则:若XYXZR上成立,则XYZR上成立;
       (2)分解规则:若XYR上成立,且Z?Y,则XZR上成立;
       (3)伪传递规则:若XYWYZR上成立,则WXZR上成立。
       在关系模式RUF)中为F所逻辑蕴含的函数依赖全体叫做F的闭包,记作F+
       设F为属性集U上的一组函数依赖,XU的子集,那么相对于F属性集X的闭包用X+表示,它是一个从F集使用推理规则推出的所有满足XA的属性A的集合:
       X+={属性A|XAF+中}
       如果G+=F+,就说函数依赖集F覆盖GFG的覆盖,或GF的覆盖),或FG等价。
       如果函数依赖集F满足下列条件,则称F为一个极小函数依赖集,也称为最小依赖集或最小覆盖。
       (1)F中任一函数依赖的右部仅含有一个属性;
       (2)F中不存在这样的函数依赖XA,使得FF-{XA}等价;
       (3)F中不存在这样的函数依赖XAX有真子集Z使得F-{XA}∨{ZA}与F等价。
       范式
       (1)第一范式(1NF):如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是第一范式的模式,r是规范化的关系。关系数据库研究的关系都是规范化的关系。
       (2)第二范式(2NF):若关系模式R是1NF,且每个非主属性完全函数依赖于候选键,那么称R是2NF模式。
       (3)第三范式(3NF):如果关系模式R是1NF,且每个非主属性都不传递依赖于R的候选码,则称R是3NF。
       (4)BC范式(BCNF):若关系模式R是1NF,且每个属性都不传递依赖于R的候选键,那么称R是BCNF模式。
       上述四种范式之间有如下联系:1NF?2NF?3NF?BCNF。
       关系模式分解
       如果某关系模式存在存储异常问题,则可通过分解该关系模式来解决问题。把一个关系模式分解成几个子关系模式,需要考虑的是该分解是否保持函数依赖,是否是无损联接。
       无损联接分解的形式定义如下:设R是一个关系模式,FR上的一个函数依赖(FD)集。R分解成数据库模式δ={R1,…,RK}。如果对R中每一个满足F的关系r都有下式成立:
       
       那么称分解δ相对于F是无损联接分解,否则称为损失联接分解。
       下面是一个很有用的无损联接分解判定定理。
       设ρ={R1R2)是R的一个分解,FR上的FD集,那么分解ρ相对于F是无损分解的充分必要条件是:(R1R2)→(R1-R2)或(R1R2)→(R2-R1)。
       这两个条件只要有任意一个条件成立就可以了。
       设数据库模式δ={R1,…,RK}是关系模式R的一个分解,FR上的FD集,δ中每个模式Ri上的FD集是Fi。如果{F1F2,…,Fk}与F是等价的(即相互逻辑蕴涵),那么我们称分解δ保持FD。如果分解不能保持FD,那么δ的实例上的值就可能有违反FD的现象。
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2025 All Rights Reserved
软考在线版权所有