五章节关系数据库理论.ppt
《五章节关系数据库理论.ppt》由会员分享,可在线阅读,更多相关《五章节关系数据库理论.ppt(43页珍藏版)》请在三一文库上搜索。
1、2005-9-4,1,第五章 关系数据库理论,2005-9-4,2,关系数据库设计中存在的问题,示例: 考虑为管理职工的工资信息而设计一个关系模式。,2005-9-4,3,存在的问题分类,插入异常 如果没有职工具有8级工资,则8级工资的工资数额就难以插入。 删除异常 如果仅有职工赵明具有4级工资,如果将赵明删除,则有关4级工资的工资数额信息也随之删除了。 数据冗余 职工很多,工资级别有限,每一级别的工资数额反复存储多次。 更新异常 如果将5级工资的工资数额调为620,则需要找到每个具有5级工资的职工,逐一修改。,2005-9-4,4,关系数据库设计中存在的问题,解决之道:模式分解,2005-9
2、-4,5,有关学生的关系模式S(S# , SN , SD , DEAN , C# , G),问题:它有哪些数据冗余? 问题:它有哪些不良的数据依赖?,2005-9-4,6,讨论关系数据库逻辑设计问题: 针对一个具体问题,应该 如何构造一个适合于它的数据库模式? 即应该构造几个关系模式? 每个关系由哪些属性组成?,2005-9-4,7,下面首先回顾一下关系模型的形式化定义。,一个关系模式应当是一个五元组 R(U, D, DOM, F) 说明: 关系名R,它是符号化的元组语义; 一组属性U; 属性组U中属性所来自的域D; 属性到域的映射DOM; 属性组U上的一组数据依赖F。 由于D和DOM对模式设
3、计关系不大,因此我们在本章中把关系模式看作是一个三元组:RU,F 当且仅当U上的一个关系r满足F时,r称为关系模式RU,F的一个关系。,2005-9-4,8,第一范式 关系,作为一张二维表,我们对它有一个最起码的要求:每一个分量必须是不可分的数据项。满足了这个条件的关系模式就属于第一范式(1NF)。 我们的任务是研究模式设计,研究设计一个“好”的(没有“毛病”的)关系模式的办法。 数据依赖 数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系。它是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。 现在人们已经提出了许多种类型的数据依赖,其中最重要的是函数依赖(Fu
4、nctional Dependency简记为FD)和多值依赖(Multivalued Dependency简记为MVD)。 比如描述一个学生的关系,可以有学号(SNO),姓名(SNAME),系名(SDEPT)等几个属性。由于一个学号只对应一个学生,一个学生只在一个系学习。 因而当“学号”值确定之后,姓名和该生所在系的值也就被唯一地确定了。就象自变量x确定之后,相应的函数值f(x)也就唯一地确定了一样,我们说SNO函数决定SNAME和SDEPT,或者说SNAME,SDEPT函数依赖于SNO,记为SNOSNAME,SNOSDEPT。,2005-9-4,9,建立一个描述学生的数据库,分析: 面临的对
5、象有 学生(用学号SNO描述) 系(用系名SDEPT描述) 系负责人(用其姓名MN描述) 课程(用课程名CNAME描述) 成绩(G)。 现实世界的已知事实告诉我们 1一个系有若干学生,但一个学生只属于一个系; 2一个系只有一名(正职)负责人; 3一个学生可以选修多门课程,每门课程有若干学生选修; 4每个学生学习每一门课程有一个成绩;,2005-9-4,10,如果只考虑函数依赖这一种数据依赖,我们就得到了一个描述学校的数据库模式SU,F,它由一个单一的关系模式构成: U = SNO,SDEPT,MN,CNAME,G F = SNOSDEPT,SDEPTMN,(SNO,CNAME)G 这组函数依赖
6、如图5.l所示。,2005-9-4,11,前面的学生模式有下述三个“毛病”:,1.插入异常 如果一个系刚成立尚无学生,或者虽然有了学生但尚未安排课程。那么我们就无法把这个系及其负责人的信息存入数据库。 2.删除异常 反过来,如果某个系的学生全部毕业了,我们在删除该系学生选修课程的同时,把这个系及其负责人的信息也丢掉了。 3.冗余太大 比如,每一个系负责人的姓名要与该系每一个学生的每一门功课的成绩出现的次数一样多。这样,一方面浪费存储,另一方面系统耍付出很大的代价来维护数据库的完整性。比如某系负责人更换后,就必须逐一修改有关的每一个元组。,2005-9-4,12,为什么会发生插入异常和删除异常呢
7、 ?,这是因为这个模式中的函数依赖存在某些不好的性质。假如我们把这个单一的模式改造一下,分成三个关系模式: S(SNO,SDEPT, SNOSDEPT); SG(SNO,CNAME,G, (SNO,CNAME)G); DEPT(SDEPT,MN, SDEPTMN); 这三个模式都不会发生插入异常、删除异常的毛病,数据的冗佘也得到了控制。 一个模式的函数依赖会有哪些不好的性质,如何改造一个不好的模式,这就是下一节规范化理论讨论的内容。,2005-9-4,13,定义5.1函数依赖,定义5.1 设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两
8、个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作XY。,例如: 每个学生有且只有一个专业,即“学号”决定“专业” 。 因此,“专业”函数依赖于“学号”。学号专业 注意,AB时,A和B的关系通常是N:1。即有许多学生选修同一个专业,但一个人只能有一个专业。 函数依赖可包含属性组,如,(学号,课程名)成绩 区别情况: 若X(Y,Z),则XY,XZ。 比如,学号(姓名,专业),则学号姓名,学号专业 若(X,Y)Z,一般情况下,XZ和YZ都不成立 比如, (学号,课程名)成绩,但“学号”或“课程名”本身都不能单独决定“成绩”,2005-9-4,14,函数依赖:设R
9、(U)是属性集U上的关系模式,X , Y U, r是R(U) 上的任意一个关系,如果成立对t , s r,若tX = sX,则tY = sY,那么称“X函数决定Y”,或“Y函数依赖于X”,记作XY。称X为决定因素。 如:S# SN, (S#,C#) G 如果X Y,但Y X,则称其为非平凡的函数依赖,否则称为平凡的函数依赖。 如(S#,SN) SN是平凡的函数依赖,2005-9-4,15,定义5.2 完全函数依赖,定义5.2 在R(U)中,如果XY,且对于任意X的真子集X,都有XY ,则称Y对X完全函数依赖, 记作X Y ,否则称为Y对X部分函数依赖,记作X Y。 例如:(S#,C#) Gra
10、de 找出S中的另一部分函数依赖。 U = SNO,SDEPT,MN,CNAME,G F = SNOSDEPT,SDEPTMN,(SNO,CNAME)G ,2005-9-4,16,定义5.3 传递函数依赖,定义5.3 在R(U)中,如果XY,(Y X),Y X,YZ,则称Z对X传递函数依赖。 加上条件YX,是因为如果YX,则XY,实际上是直接函数依赖而不是传递函数依赖。 例如: S(SNO,SDEPT, SNOSDEPT); SG(SNO,CNAME,G, (SNO,CNAME)G); DEPT(SDEPT,MN, SDEPTMN) 则,SNO SDEPT,SDEPT MN 想一想还有没有别的
11、例子?,2005-9-4,17,检验:AC?CA?ABD? 辨识: 满足依赖的关系: 依赖在模式的某个关系实例上成立。 模式上成立的依赖: 依赖在模式的所有关系实例上都成立。,2005-9-4,18,练习,找出可能的函数依赖。,2005-9-4,19,定义码,定义5.4 设K为RU,F中的属性或属性组合,若K U则K为R的候选码(Candidate key)。若候选码多于一个,则选定其中的一个为主码(Primary key)。 包含在任何一个候选码中的属性,叫做主属性(Prime attribute)。不包含在任何码中的属性称为非主属性(Nonprime attribute)或非码属性(Non
12、-key attribute)。最简单的情况,单个属性是码。最极端的情况,整个属性组是码,称为全码(All-key)。 例如; 关系模式R(P,W,A),属性P表示演奏者,W表示作品,A表示听众。假设一个演奏者可以演奏多个作品,某一作品可被多个演奏者演奏。听众也可以欣赏不同演奏者的不同作品,这个关系模式的码为(P,W,A),即All-key。,2005-9-4,20,定义5.5 外码,定义5.5 关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称 X是R的外部码(Foreign key)也称外码。 主码与外部码提供了一个表示关系间联系的手段。 主码:若R(U , F)有多个候
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 章节 关系 数据库 理论
链接地址:https://www.31doc.com/p-3229051.html