《数据库课件6db关系数据库理论.ppt》由会员分享,可在线阅读,更多相关《数据库课件6db关系数据库理论.ppt(81页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第六章 关系数据理论n n任何一个二目关系模式任何一个二目关系模式RR(AA,BB)一定属于)一定属于BCNFBCNF吗吗?n n一个全是主属性的关系模式一定可以达到第几范一个全是主属性的关系模式一定可以达到第几范式?式?n n一个全码的关系模式一定可以达到第几范式?一个全码的关系模式一定可以达到第几范式?n n关系模式关系模式RR(AA,BB,CC),有函数依赖集),有函数依赖集FFAB AB C,BC A,C,BC A,则最高达到第几范式?则最高达到第几范式?n n 应用系统设计的共同问题:n n如何把现实世界表达成合适的数据库模式如何把现实世界表达成合适的数据库模式,即设计即设计数据库的
2、逻辑结构数据库的逻辑结构n n 以关系模型为背景讨论:n n针对一个具体问题针对一个具体问题,如何构造合适的数据模式如何构造合适的数据模式?n n构造几个关系构造几个关系?n n每个关系由哪些属性组成每个关系由哪些属性组成?n n等等。等等。n n这些直接决定数据库的运行效率这些直接决定数据库的运行效率n 关系DB设计理论(规范化理论)研究的是关系模式中各属性之间的数据依赖关系及其对关系模式性能的影响,探讨“好”的关系模式应该具备的性质,以及达到“好”的关系模式的设计算法。n 规范化理论-解决如何设计一个适合的关系数据库系统的问题n n判断关系模式优劣的理论标准判断关系模式优劣的理论标准n n
3、帮助我们预测可能出现的问题帮助我们预测可能出现的问题n n关系模型有严格的数学理论基础关系模型有严格的数学理论基础n n可以向其它模型转换可以向其它模型转换n n具有普遍理论意义具有普遍理论意义关系模式的形式化定义n n 关系模式由五部分组成,即它是一个五元组:n n R(U,D,DOM,F)n nRR:关系名关系名n nUU:组成该关系的属性名集合组成该关系的属性名集合n nDD:属性组属性组UU中属性所来自的域中属性所来自的域n nDOMDOM:属性向域的映象集合:属性向域的映象集合n nFF:属性间数据的依赖关系集合属性间数据的依赖关系集合6.1问题的提出 关系的规模 1.一个关系中信息
4、量与关系的列数成正比 信息量 列数 一个关系中的信息量多少才最合适,是不是属性越多越好?2.关系操作高效:关系运算、;单表低效:、;多表增加关系中的列数是不是可以减少联接操作,是不是属性越多越好?3.举例1:Class(clno,dept,major)S(sno,sname,sex,birthdate,clno,address)C(cno,cname,score,pcno)SC(sno,cno,p1,p2,p3)max(clno,dept,major sno,sname,sex,birthdate,address cno,cname,score,pcno,p1,p2,p3)共18个属性共15个
5、属性n 数据冗余设每个字段10 ByteS:有 50000个记录 50000603106 ByteClass:有1000个记录 1000303104 ByteC:有500个记录 500402104 ByteSC:有5000040个记录 500004050 1108 Byte共:31063104 2104 1108=10305104 1.0305108 max:5000040150300106 3108同一数据在DB中多次无控制冗余存放造成的。Max表存在的问题 Max表存在的问题(续)n 插入异常:合法数据无法入库。关系 max码:(sno,cno)一个新生入校时,已是学生,但没有选课,这时不
6、能入库,且查询学生时无法查到。n 删除异常:删除操作造成有效数据的丢失。如:有门课程只有一人选修,此人毕业时,将删除其所有选课程的信息。这时查询课程信息时将无法得到该课程。n 修改异常:一个数据的修改,引起数据库中多处数据的更新。将“数据库原理”课程的名称改为“数据库系统基础”时,将需修改多个记录n 这些异常现象在有四个表时不会发生,所以数据库结构不是属性越多越好。注意:n n 插入异常:n n 该插入的数据未插入该插入的数据未插入n n 不该插入的数据被插入不该插入的数据被插入n n 删除异常:n n 该删除的数据未删除该删除的数据未删除n n 不该删除的数据被删除不该删除的数据被删除n 4
7、 举例2考虑为管理职工的工资信息而设计一个关系模式,该模式有什么问题?n n插入异常插入异常:如果没有职工具有如果没有职工具有88级工资,则级工资,则88级工资的工资数额就级工资的工资数额就难以插入。难以插入。n n删除异常删除异常:如果仅有职工赵明具有如果仅有职工赵明具有44级工资,如果将赵明删除,级工资,如果将赵明删除,则有关则有关44级工资的工资数额信息也随之删除了。级工资的工资数额信息也随之删除了。n n数据冗余数据冗余:职工很多,工资级别有限,每一级别的工资数额反复职工很多,工资级别有限,每一级别的工资数额反复存储多次。存储多次。n n更新异常更新异常:如果将如果将55级工资的工资数
8、额调为级工资的工资数额调为620620,则需要找到每个,则需要找到每个具有具有55级工资的职工,逐一修改。级工资的职工,逐一修改。n n 结论:n n该关系模式不是一个好的模式。该关系模式不是一个好的模式。n n“好好”的模式:的模式:n n 不会发生插入异常、删除异常、更新异常,不会发生插入异常、删除异常、更新异常,n n 数据冗余应尽可能少。数据冗余应尽可能少。n n 原因:由存在于模式中的某些数据依赖引起的:工号姓名 工号级别 级别工资Max表存在问题原因分析可知:这与数据库文件的结构中各属性间的关系 有关。sno 决定 sname,sex,clno,address,dept,major
9、Clno 决定 dept,majorCno 决定 cname,score,pcnosno,cno 决定 p1 p2 p3愿望n 体现客观世界的信息 n 一个好的关系模式应冗余尽可能少;n 一个好的关系模式应避免插入、删除异常;n异常原因是关系模式中存在不合适的属性间联系;n解决策略是消去不合适联系;n 方法采用模式分解消去不合适的属性间联系。负面影响:需要通过表连接做相关信息查询,系统开销大!6.2 规范化n n 规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题,把不好的关系模式变成好的关系模式。数据依赖n n 数据依
10、赖n n函数依赖函数依赖(Functional Dependency,FD)(Functional Dependency,FD)n n多值依赖多值依赖(Multivalued Dependency,MVD)X(Multivalued Dependency,MVD)Xn n 数据依赖是针对数据模式,而不是特定的实例n n 是属性间的关联n n 是一种约束n n假设给定假设给定 X X 属性的值,就知道属性的值,就知道 Y Y的值,那么的值,那么 X X 函函数决定数决定 Y Y,记作,记作XYXY函数依赖 函数依赖的定义:若对于若对于R(U)R(U)的任意一个可能的关系的任意一个可能的关系rr,
11、rr中不可能中不可能存在两个元组在存在两个元组在XX上的属性值相等,上的属性值相等,而在而在YY上的属上的属性值不等,性值不等,则称则称“X“X函数确定函数确定Y”Y”或或“Y“Y函数函数依赖于依赖于X”X”,记作,记作XYXY。称X为决定因素。若若YY不函数依赖于不函数依赖于X,X,则记为则记为XYXY。函数依赖例如:SDC(SNO(学号),Sname(姓名),Sage(年龄),Sdept(系别),Dean(系主任),CNO(课程号),Grade(成绩)SDC中的函数依赖:SNO Sname SNO Sage SNOSDEPT,SDEPT DEAN,(SNO,CNO)GRADE说明n n 函
12、数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。n n 函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。例如“姓名年龄”这个函数依赖只有在不允许有同名人的条件下成立n n 函数依赖反映了一种语义完整性约束说明(续)函数依赖与属性间的联系类型有关关系内属性间的联系关系内属性间的联系n n1111(one to oneone to one)关系)关系 一一对应关系:一一对应关系:y=f(x)y=f(x)单值函数单值函数 例:例:sno:sname 1sno:sname 1:11(StudentsStudents)一个学号只对应一个学生
13、一个学号只对应一个学生(S)(S)n n11:nn(one to manyone to many)一对多的关系)一对多的关系 clno:sno 1 clno:sno 1:n n 一个班级内对应多个学生一个班级内对应多个学生(S)(S)n nmm:nn(many to manymany to many)多对多关系)多对多关系 在在sc sc 中中 sno:cno m sno:cno m:n n 多对多的关系多对多的关系(SCSC)根据函数依赖的定义,可找出下面规律:n 在一个关系模式中,如属性X,Y有1:1联系,则存在函数依赖XY、YX,可记作XYn X、Y是1:m联系,则存在YX,但XYn X
14、、Y是n:m联系,则X、Y之间不存在任何函数依赖说明(续)函数依赖函数依赖的导出 n n通过关系中各属性的实际意义直接定义通过关系中各属性的实际意义直接定义n n通过通过AmstrongAmstrong公理推导公理推导n n通过有代表性的关系值反推通过有代表性的关系值反推函数依赖举例n 检验:AC?CA?ABD?n 辨识:n 模式上成立的依赖:依赖在模式的所有关系实例上都成立A A B B C C D Da1 a1 b1 b1 c1 c1 d1 d1a1 a1 b2 b2 c1 c1 d2 d2a2 a2 b2 b2 c2 c2 d2 d2a2 a2 b3 b3 c2 c2 d3 d3a3 a
15、3 b3 b3 c2 c2 d4 d4AABBCC112233442233553333函数依赖练习AB,AC,BC A(B,C),(A,B)C关系模式上的函数依赖是语义范畴的概念,我们只能根据语义来确定函数依赖!函数依赖的分类n 平凡的函数依赖与非平凡的函数依赖n 如果XY,且YX,则称XY为平凡的函数依赖。即:如果对于函数依赖 A1A2An Ai,Ai是A中的一个,则该函数依赖就是平凡的函数依赖SNOSNO是平凡的函数依赖n 如果XY,且YX,则称XY为非平凡的函数依赖。如:snosname,sno sname 即:B中至少有一个属性不在A中说明:对任何R,一些平凡函数依赖总是成立的。函数依赖的分类nn完全函数依赖与部分函数依赖n n在关系模式在关系模式R(U)R(U)中,如果中,如果XYXY,并且对于,并且对于XX的任的任何一个真子集何一个真子集XX,都有,都有 X Y,X Y,则称则称YY完全函数依赖于完全函数依赖于XX,记作,记作X X FF Y Y。n n若若XYXY,但,但YY不完全函数依赖于不完全函数依赖于XX,则称,则称YY部分函部分函数依赖于数依赖于XX,记作,记作X X PP Y Y。