您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 第6章--关系数据库理论
第6章关系数据库理论6.1关系数据模式的规范化理论6.1.1关系模式规范化的必要性6.1.2函数依赖及其关系的范式6.1.3多值依赖及关系的第四范式6.2关系模式的分解算法6.2.1关系模式分解的算法基础6.2.3判定分解服从规范的方法6.2.4关系模式的分解方法6.3关系系统及查询优化技术概念回顾概念模型与数据模型:关系模型:关系:关系模式:关系数据库:第6章关系数据库理论关系数据库的理论是以数学理论为基础的,包括:1、数据库设计理论:关系规范化理论关系模式分解理论2、数据操作理论:关系数据的查询理论(8个关系运算)关系数据的查询优化理论6.1关系数据模式的规范化理论6.1.1关系模式规范化的必要性数据库的设计核心是数据模型的设计,数据模型最基本内容就是数据结构,关系数据模型的数据结构是通过各关系模式来描述的,只有每个关系模式设计规范,才可能让整个关系模型合理,建立起来的数据库才合理、科学。什么样的关系模式才比较规范的呢?首先它就要必须满足一些基本要求:1、关系模式应满足的基本要求1)元组的每个分量必须是不可分的数据项。2)数据库中的数据冗余应尽可能少。3)关系数据库不能因为数据更新操作而引起数据不一致问题。4)当执行数据插入操作时,数据库中的数据不能产生插入异常现象。5)数据库中的数据不能在执行删除操作时产生删除异常问题。6)数据库设计应考虑查询要求,数据组织应合理。学号姓名成绩政治语文英语1001陈丽8085701002张伟7580801003江华8774902.关系不规范可能出现的问题分析下面关系存在的问题:学号姓名年龄性别系名系主任课程名成绩98001李华20男计算机系王民程序设计8898001李华20男计算机系王民数据结构7498001李华20男计算机系王民数据库8298001李华20男计算机系王民电路6598003陈兵20男数学系赵敏高等数学7298003陈兵20男数学系赵敏数据结构9498003陈兵20男数学系赵敏数据库8398003陈兵20男数学系赵敏离散数学87冗余(1)数据冗余大:(2)更新异常:(3)插入异常:(4)删除异常:上述关系模式是不合理的,或者说是不很规范的,不符合关系数据模式的规范化基本要求。如某系换了系主任如成立新系,但还没招生某系所有学生已毕业,但还没招新生3.模式分解是关系规范化的主要方法可以将一个不规范或较低规范的关系模式通过模式分解的方法转换成若干较为规范的关系模式的集合,这种过程叫关系模式的规范化。上述的关系模式:教学(学号,姓名,年龄,性别,系名,系主任,课程名,成绩).可以按“一事一地”的原则分解成“学生”、“教学系”和“选课”三个关系,其关系模式为:学生(学号,姓名,年龄,性别,系名称);教学系(系名,系主任);选课(学号,课程名,成绩).学号姓名年龄性别系名系主任课程名成绩98001李华20男计算机系王民程序设计8898001李华20男计算机系王民数据结构7498001李华20男计算机系王民数据库8298001李华20男计算机系王民电路6598003陈兵20男数学系赵敏高等数学7298003陈兵20男数学系赵敏数据结构9498003陈兵20男数学系赵敏数据库8398003陈兵20男数学系赵敏离散数学87教学(学号,姓名,年龄,性别,系名,系主任,课程名,成绩).可以按“一事一地”的原则分解成“学生”、“教学系”和“选课”:教学系:系名系主任计算机系王民数学系赵敏学号姓名年龄性别系名称98001李华20男计算机系98003陈兵20男数学系学号课程名成绩98001程序设计8898001数据结构7498001数据库8298001电路6598003高等数学7298003数据结构9498003数据库8398003离散数学87学生:选课:1、关系模式的简化表示法对关系的描述称为关系模式,关系模式的完整表示是一个五元组:R〈U,D,Dom,F〉.其中:R为关系名;U为关系的属性集合;D为属性集U中属性的数据域(类型);Dom为属性到域的映射(长度)F为属性集U的数据依赖集。6.1.2函数依赖及其关系的范式学号课程名成绩98001程序设计8898001数据结构74……如选课关系:R:选课U:学号、课程名、成绩D:字符型、整型Dom:学号:字符型,长度5课程名:字符型,长度20成绩:整型F:(学号,课程名)→成绩,……数据依赖一般是指同一个关系中属性间的相互依赖和相互制约,包括函数依赖、多值依赖和连接依赖。数据依赖是关系模式规范化理论的基础,其中:函数依赖是1NF、2NF、3NF、BCNF的理论基础多值依赖是4NF的理论基础连接依赖是5NF的理论基础一般我们主要关心的是R、U、F,为简化问题,一般关系模式可以用三元组来为:R〈U,F〉2、函数依赖的概念1)定义:设R〈U〉是属性集U上的关系模式,X、Y是U的子集。若对于R〈U〉的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而Y上的属性值不等(X上值相同,则Y上值必相同),则称X函数确定Y函数,或Y函数依赖于X函数,记作X→Y。学号姓名年龄性别系名系主任课程名成绩98001李华20男计算机系王民程序设计8898001李华20男计算机系王民数据结构7498001李华20男计算机系王民数据库8298001李华20男计算机系王民电路6598003陈兵20男数学系赵敏高等数学7298003陈兵20男数学系赵敏数据结构9498003陈兵20男数学系赵敏数据库8398003陈兵20男数学系赵敏离散数学87如教学:教学关系模式:R〈U,F〉:R=U=F=教学{学号,姓名,年龄,性别,系名,系主任,课程名,成绩}{学号→姓名,学号→年龄,学号→性别,学号→系名,系名→系主任,(学号,课程名)→成绩}相关概念:①X→Y,但YX,则称X→Y是非平凡的函数依赖。若不特别声明,总是讨论非平凡的函数依赖。②X→Y,但YX,则称X→Y是平凡的函数依赖。③若X→Y,则X叫做决定因素(Determinant),Y叫做依赖因素(Dependent)。④若X→Y,Y→X,则记作X↔Y。⑤若Y不函数依赖于X,则记作XY。(学号,课程名)→成绩(学号,姓名)→学号2)完全函数依赖定义:在R〈U〉中,如果X→Y,并且对于X的任何一个真子集X‘,都有X‘Y,则称Y对X完全函数依赖,记作:X→Y;若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作:X→Y。PF部分:(学号,姓名)→年龄、(学号,课程名)→姓名FP学号姓名年龄性别系名系主任课程名成绩98001李华20男计算机系王民程序设计8898001李华20男计算机系王民数据结构7498001李华20男计算机系王民数据库8298001李华20男计算机系王民电路6598003陈兵20男数学系赵敏高等数学7298003陈兵20男数学系赵敏数据结构9498003陈兵20男数学系赵敏数据库8398003陈兵20男数学系赵敏离散数学87FF完全:学号→姓名、学号→年龄、(学号,课程名)→成绩P结论:决定因素是属性组时才有部分依赖如:学号→姓名,学号→年龄都是完全函数依赖在规范程度不高的关系中其它属性未必完全函数依赖于码。FF3)传递函数依赖定义:在R〈U〉中,如果X→Y,(YX),YX,Y→Z,则称Z对X传递函数依赖。传递函数依赖记作X→Z。例如,在教学模式中:因为:学号→系名,系名→系主任;所以:学号→系主任。传递传递3、范式:规范化的关系模式称为范式(NormalForm)。由满足最基本规范化条件的关系模式叫第一范式,第一范式的关系模式再满足另外一些约束条件就产生了第二范式、第三范式、BC范式等,分别记为:1NF、2NF、3NF、BCNF、4NF、5NF。一个可用的关系最低要满足3NF。(1)1NF的定义定义:如果关系模式R,其所有的属性均为简单属性,即每个属性都是不可再分的,则称R属于第一范式,记作R1NF。第一范式是最基本的范式,不满足第一范式条件就不能称为规范化关系,但仅满足第一范式的条件还不够,如教学关系:教学(学号,姓名,年龄,性别,系名,系主任,课程名,成绩)仍存在数据冗余度大、插入、删除和更新可能产生异常的现象,需进一步规范:学号姓名成绩政治语文英语1001陈丽8085701002张伟7580801003江华877490学号姓名政治语文英语1001陈丽8085701002张伟7580801003江华877490(2).2NF的定义(1)定义:若R1NF,且每一个非主属性完全依赖于码,则R2NF。{姓名,年龄,性别,系名,系主任,成绩}{学号,姓名,年龄,性别,系名,系主任,课程名,成绩}.属性集=主码=(学号,课程名).非主属性=例在教学模式中:F={(学号,课程名)→姓名,(学号,课程名)→年龄,(学号,课程号)→性别,(学号,课程名)→系名,(学号,课程名)→系主任,(学号,课程名)→成绩}PPPPPF显然,教学模式不服从2NF,即:教学2NF。非主属性对码的函数依赖:(2)关系模式分解,转化为第二范式:学生_系(学号,姓名,年龄,性别,系名,系主任)选课(学号,课程名,成绩)显然,学生_系∈2NF,选课∈2NF。学号姓名年龄性别系名称系主任98001李华20男计算机系王民98002张平21男计算机系王民98003陈兵20男数学系赵敏学号课程名成绩98001程序设计8898001数据结构74……学生_系关系仍然存在冗余度大,更新、插入、删除异常等问题(3).3NF的定义(1)定义:关系模式R〈U,F〉中若不存在这样的码X、属性组Y及非主属性Z(ZY)使得X→Y、YX、Y→Z成立,则称R〈U,F〉3NF。(2)含义:①每一个非主属性不部分函数依赖于码,所若R3NF,必有R2NF证明:反证法②每一个非主属性不传递函数依赖于码(由定义知)。换句话说:关系模式R〈U,F〉1NF,若X→Y且YX(Y是非主属性)时,X必含有码,则称R〈U,F〉3NF。即非主属性完全直接地依赖码。考查学生_系关系:学生_系(学号,姓名,年龄,性别,系名,系主任)码=主属性=非主属性=由于存在:学号→系名,系名→系主任。则:学号→系主任。所以学生_系3NF。传递{学号}{学号}{姓名,年龄,性别,系名,系主任}学号姓名年龄性别系名称系主任98001李华20男计算机系王民98002张平21男计算机系王民98003陈兵20男数学系赵敏如果学生_系关系分解为:学生(学号,姓名,年龄,性别,系名);教学系(系名,系主任)选课(学号,课程名,成绩)显然分解后的各子模式均属于3NF。结论:3NF是一个可用关系模应满足的最低范式系名系主任计算机系王民数学系赵敏学号姓名年龄性别系名称98001李华20男计算机系98003陈兵20男数学系学号课程名成绩98001程序设计8898001数据结构7498001数据库8298001电路6598003高等数学72(4).BCNF的定义(1)定义:关系模式R〈U,F〉1NF。若X→Y且YX时X必含有码,则R〈U,F〉BCNF。也就是说,关系模式R〈U,F〉中,若每一个决定因素都包含码,则R〈U,F〉BCNF。由BCNF的定义可以得到结论。3NF另一种定义:关系模式R〈U,F〉1NF,若X→Y且YX(Y是非主属性)时,X必含有码,则称R〈U,F〉3NF。与3NF定义的比较:两种范式定义不同点:BCNF要求每一个非平凡的函数依赖中,决定因素X都要含有码,依赖因素Y包括是主属性和非主属性两情况,而3NF只要求依赖因素Y是非主属性时,决定因素X都要含有码。BCNF和3NF的比较总结:1)3NF只强调非主属性对码的完全直接依赖,这样就可能出现主属性对码的部分依赖和传递依赖。2)BCNF不仅强调非主属性对码的完全的直接的依赖,而且强调主属性对码的完全的直接的依赖,它包括3NF,即RBCNF,则R一定属于3NF。所以BCNF比3NF的要求又进了一步,通常认为BCNF是修正的第三范式,有时也称为扩充的第三范式
本文标题:第6章--关系数据库理论
链接地址:https://www.777doc.com/doc-4329348 .html