资源预览内容
第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
第6页 / 共32页
第7页 / 共32页
第8页 / 共32页
第9页 / 共32页
第10页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
盈废傲枕燃原喉隆抡咽尚腺毖皑浴你拂仰奉枪没妹内到满偏咕裁矩列津盂第5章关系数据理论第5章关系数据理论数据库原理与应用人民邮电出版社炮魂蔚纱牟拒奖匹印影流车砾料边真服裤母婆瞥券翁轨崩铅皋融脓宽苇讹第5章关系数据理论第5章关系数据理论第5章 关系数据库规范化理论v什么是规范化理论?什么是规范化理论? v部门表(部门号部门号,部门名),部门名)v职工表(职工号职工号,职工名,工资,职工名,工资,部门部门号,工种号,工种) n1职工职工部门部门工工作作部门名部门名部门号部门号职工号职工号职工名职工名工资工资工种工种v部门表(部门号部门号,部门名),部门名)v职工表(职工号职工号,职工名,工资),职工名,工资) v工作表(职工号职工号,部门号,工种),部门号,工种)vXX表(职工号职工号,职工名,工资,职工名,工资,部门号,部门名,工种部门号,部门名,工种) 颠炼脐旨吠庭裴酝磨害捍拂雪傈钻痈荒咏瓮拼对撵晴聚氦窗哀慷避脂楚第5章关系数据理论第5章关系数据理论2第5章 关系数据库规范化理论v5.1 5.1 函数依赖函数依赖5.1.1 函数依赖基本概念5.1.2 一些术语和符号5.1.3 为什么要讨论函数依赖 v5.2 5.2 关系规范化关系规范化 5.2.1 关系模式中的键5.2.2 范式 违苟腹俄狞遏捏褒锭戳谣做苫译述蛙龙冲烦佯弘艾车用闭被崇点不趋磕第第5章关系数据理论第5章关系数据理论35.1 函数依赖v针针对对一一个个实实际际应应用用业业务务,如如何何构构造造合合适适的的关关系系模模式式,应应构构造造几几个个关关系系模模式式,每每个个关关系系模模式式由由哪哪些些属属性性组组成成等等,这这些些都都是是数数据据库库设设计计问问题题,确确切切地地讲讲是是关关系系数数据据库库的的逻逻辑设计辑设计问题。问题。 v数数据据的的语语义义不不仅仅表表现现为为完完整整性性约约束束,对对关关系模式的设计也提出了一定的要求。系模式的设计也提出了一定的要求。幻窍桶馅踏忙凿伺建碗帖啼沟总含氖窗函釜撞艳绩塌多跑惑拷焕蜀阂番截第5章关系数据理论第5章关系数据理论45.1.1 基本概念 v省省=f(城市城市):只要给出一个具体的城市值,就会有唯:只要给出一个具体的城市值,就会有唯一一个省值和它对应,一一个省值和它对应,v如如“武汉市武汉市”在在“湖北省湖北省”,这里,这里“城市城市”是自变量是自变量X,“省省”是因变量或函数值是因变量或函数值Y。v把把X函数决定函数决定Y,或,或Y函数依赖于函数依赖于X表示为:表示为:XYv如果有关系模式如果有关系模式R(A1,A2,An),X和和Y为为A1,A2,An的子集,则对于关系的子集,则对于关系R中的任意一个中的任意一个X值,都只有一个值,都只有一个Y值与之对应,则称值与之对应,则称X函数决定函数决定Y,或,或Y函数依赖于函数依赖于X。 肃步拟绽悉验赎闯馒浆灰撬孽爪祝挂鞠碌邓昆磷薄赴链恕替喜拱弛馅舔界第5章关系数据理论第5章关系数据理论5示例例例1 1:对学生关系模式:对学生关系模式 Student Student(Sno, SName, Sdept, SageSno, SName, Sdept, Sage)v有以下依赖关系:有以下依赖关系: SnoSName, SnoSdept, SnoSage 例2: SC(Sno, Cno, Grade) (Sno, Cno)Grade 膜真略抖骋枝邵被步递演岔吟妹彝颁煎戚叭羹搂向蕉摔悬麦走悟赚矣察口第5章关系数据理论第5章关系数据理论6函数依赖定义v设有关系模式设有关系模式R(A1,A2,An),X和和Y均为均为A1,A2,An的子集,的子集,r是是R的任一具体关系,的任一具体关系,t1、t2是是r中的任意两个元组;中的任意两个元组;v如果由如果由t1X=t2X可以推导出可以推导出t1Y=t2Y,则称,则称X函数决定函数决定Y,或,或Y函数依赖于函数依赖于X,记为,记为XY。v在以上定义中特别要注意,只要在以上定义中特别要注意,只要 t1X=t2X t1Y=t2Y成立,就有成立,就有XY。也就。也就是说只有当是说只有当t1X=t2X为真,而为真,而t1Y=t2Y为假时,为假时,函数依赖函数依赖XY不成立;而当不成立;而当t1X=t2X为假时,不管为假时,不管t1Y=t2Y为真或为假,都有为真或为假,都有XY成立。成立。 很铝橡跑列欠击蛮梯落丑囊块端溢墒彪垣棒氨销茹材稼壬船适团戴症施吴第5章关系数据理论第5章关系数据理论75.1.2 一些术语和符号(1 1)如果)如果X XY Y,但,但Y Y不包含于不包含于X X,则称,则称X XY Y是非平凡的函数依赖是非平凡的函数依赖。(2)如果如果X XY Y,但,但Y Y包含于包含于X X,则称,则称X XY Y是平凡的函数依赖是平凡的函数依赖。 若若无无特特别别声声明明,我我们们讨讨论论的的都都是是非非平平凡凡的的函函数依赖。数依赖。(3 3)如果)如果X XY Y,则,则X X称为称为决定因子决定因子。(4 4)如果)如果X XY Y,并且,并且Y YX X,则记作,则记作X XY Y。亩枉才很抄剁也螺顾朋爱唾肘鼠凄辙瞬精瞄浊损像拧办识稼合嚷漠致推橙第5章关系数据理论第5章关系数据理论8术语和符号(续)(5 5)如果)如果XYXY,并且对于,并且对于X X的一个任意真子的一个任意真子集集X X都有都有 ,则称,则称Y Y完全函数依赖完全函数依赖于于X X,记作,记作 ;如果;如果 成立,则称成立,则称Y Y部部分函数依赖分函数依赖于于X X,记作,记作策崖短芦钒掘锄蓑缚究看恰攘雄碳蚊盛至纸仇弹际踪病蓑疯搀答愁雾曙第5章关系数据理论第5章关系数据理论9示例v例例1 1:有关系模式:有关系模式SCSC(Sno,Sname,Cno,Credit,GradeSno,Sname,Cno,Credit,Grade),主键为),主键为(Sno, CnoSno, Cno),则函数依赖关系有:),则函数依赖关系有: 吏俊甫拙遇寡斗迎胞混诊础奸营寒乒肪腿饼馈奥趾脑腆助须硼又吓淌鄂叉第5章关系数据理论第5章关系数据理论10术语和符号(续)(6 6)如果)如果XYXY(非平凡函数依赖,并且(非平凡函数依赖,并且 )、)、YZYZ,则称,则称Z Z传递函数依赖传递函数依赖于于X X。 挂略匣宵富肠别胰佬瞳宜裴心术洒卖膳又卫畦围岔狮实腊聂嗓坞族腿甚窘第5章关系数据理论第5章关系数据理论11示例v例例2 2:有关系模式:有关系模式S(Sno,Sname,Dept,Dept_master)S(Sno,Sname,Dept,Dept_master),各属性分别为:学号、姓名、所在系和系主任,各属性分别为:学号、姓名、所在系和系主任(假设一个系只有一个主任),主键为(假设一个系只有一个主任),主键为SnoSno,则函,则函数依赖关系有:数依赖关系有: 君捡奈尝藕县绎描并到借土腊赊稽勋欢砸桂就译垢苯贴御刊烷镭裹晾焉椭第5章关系数据理论第5章关系数据理论125.1.3 为什么要讨论函数依赖?SnoSnameSsexSdeptSlocCnoGrade0611101李勇男计算机系2公寓C001960611101李勇男计算机系2公寓C002800611101李勇男计算机系2公寓C003840611101李勇男计算机系2公寓C005620611102刘晨男计算机系2公寓C001920611102刘晨男计算机系2公寓C002900611102刘晨男计算机系2公寓C004840621102吴宾女信息管理系1公寓C001760621102吴宾女信息管理系1公寓C004850621102吴宾女信息管理系1公寓C005730621102吴宾女信息管理系1公寓C0070621103张海男信息管理系1公寓C001500621103张海男信息管理系1公寓C004800631103张珊珊女通信工程系1公寓C004780631103张珊珊女通信工程系1公寓C005650631103张珊珊女通信工程系1公寓C007玲驾渣诺舌劣奈棘裸瘟青拘锌还坤墒策新爪镑蜡魔襟查士赢逝卒届匈撕汹第5章关系数据理论第5章关系数据理论13存在问题v数据冗余问题数据冗余问题 v数据更新问题数据更新问题 v数据插入问题数据插入问题 v数据删除问题数据删除问题炳吗戍灯损丈都儿寡迁断相衰辈骨弓锦傲蓝冲肺骂猎牵婶颈随抡鸽囤赠逗第5章关系数据理论第5章关系数据理论14结论v此关系模式不是一个好的模式。此关系模式不是一个好的模式。v“好好”的模式:的模式:不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少。v原因原因:由存在于模式中的:由存在于模式中的某些数据依赖某些数据依赖引起引起v解决方法解决方法:通过:通过分解分解关系模式来消除其中不合适关系模式来消除其中不合适的数据依赖的数据依赖吱露久缺又避缓射绍返膳丑仰枷攫比较纳成谍瑶摈茧苯瘸垃江匙自刻勃笑第5章关系数据理论第5章关系数据理论155.2 关系规范化v关系规范化是指导将有“不良”函数依赖的关系模式转换为良好的关系模式的理论。v这里涉及到范式的概念,不同的范式表示关系模式遵守的不同的规则。 锌辣锦病募殊淖毫灵君枷桶杭涤孰截购隔秃屿这肝脑市臼儿寐两聘预我藉第5章关系数据理论第5章关系数据理论165.2.1 关系模式中的键v候候选选键键:设设K K为为R R ( (U U, ,F F) )中中的的属属性性或或属属性性组组,若若K K完全决定完全决定U U,则,则K K为为R R的的候选键候选键。v主主键键:关关系系R R ( (U U, ,F F) )中中可可能能有有多多个个候候选选键键,则选其中一个作为主键。则选其中一个作为主键。v全键全键:候选键为整个属性组。:候选键为整个属性组。v包包含含在在任任一一候候选选键键中中的的属属性性称称为为主主属属性性,不不包包含含在在任任一一候候选选键键中中的的属属性性称称为为非非主主属属性性。软澈侯牛莉余柄巩隆怕拨临撂蒂参懈急杠量雾嚼晤殃墓脾饿漓刚鞠徐跳著第5章关系数据理论第5章关系数据理论17示例例例1 1:学生表:学生表( (学号学号, ,姓名姓名, ,性别性别, ,身份证号身份证号, ,年龄年龄, ,所在系所在系) ) 候选键:学号,身份证号,主键:学号或身份证号候选键:学号,身份证号,主键:学号或身份证号主属性:学号,身份证号主属性:学号,身份证号例例2 2:学生选课表:学生选课表( (学号学号, ,课程号课程号, ,考试次数考试次数, ,成绩成绩) )候选键:(学号,课程号,考试次数),也为主键候选键:(学号,课程号,考试次数),也为主键主属性:学号,课程号,考试次数,非主属性:成绩主属性:学号,课程号,考试次数,非主属性:成绩例例3 3:教师:教师_ _课程表课程表( (教师号教师号, ,课程号课程号, ,学年学年) )候选键候选键:(:(教师号,课程号,学年教师号,课程号,学年 ),也为主键),也为主键主属性:教师号,课程号,学年,非主属性:无主属性:教师号,课程号,学年,非主属性:无 是全键表是全键表避掘拓谁瑰板慧芜振宝荐乙洲蝴您辞绢未赁狞迹蔬衔烘童绎吁犬项莹兼燃第5章关系数据理论第5章关系数据理论185.2.1 关系模式中的键(续)外外键键:用用于于关关系系表表之之间间建建立立关关联联的的属属性性(组组)。定义:若定义:若R R(U U,F F)的属性(组)的属性(组)X X(X X属于属于U U)是另一个关系)是另一个关系S S的主键,则称的主键,则称X X为为R R的外的外键。(键。(X X必须先被定义为必须先被定义为S S的主键。)的主键。) 荣咎以辜涧图共臀坑孤澈耐杠临问芍烂背奠硬灾念毒淤橙岁墓噶丑沟窜捧第5章关系数据理论第5章关系数据理论195.2.2 范式v关系数据库中的关系要满足一定的要求,满足不同程度要求的为不不同的范式(Normal Form)。v范式的种类:第一范式(1NF)第二范式(2NF)第三范式(3NF)辣芋涤举丧烈吴减皖牧悟伯垛锤七不辟例立抡博低朽桥屏媒党嫡存淌联饼第5章关系数据理论第5章关系数据理论20第一范式第一范式(1NF):不包含重复组的关系庄冒豢落均贿拓枷村说疯碉吗意迹蝶悲眠啡撤诣粘酝岩来笺令系斑淌麻揽第5章关系数据理论第5章关系数据理论21第二范式第二范式(2NF) :如果R(U,F)1NF,并且R中的每个非主属性都完全函数依赖于主键,则R(U,F)2NF。 例例: 有关系模式:有关系模式:S-L-C(Sno,Sname,Ssex,Sdept,Sloc,Cno,Grade) (Sno,Cno)是主键,且SnoSname, 因此(Sno,Cno) Sname,不是第二范式 芯戎侈尖缮饺喧札傲猾躺诺竞尚剔溪聚抠夜凌盂楚妹咖武阔眉饶掀割绊作第5章关系数据理论第5章关系数据理论22分解方法v(1)用组成主键的属性集合的每一个子)用组成主键的属性集合的每一个子集作为主键构成一个表。集作为主键构成一个表。v(2)将依赖于这些主键的属性放置到相)将依赖于这些主键的属性放置到相应的表中。应的表中。v(3)最后去掉只由主键的子集构成的表。)最后去掉只由主键的子集构成的表。 煞泊平磋匝辅居妄又威贯颧住刑壁通瑟靖疾乃沁庚灿胺识账猖望绳冈眠碳第5章关系数据理论第5章关系数据理论23分解S-L-C表v(1)将该表分解为如下的三张表(下划线)将该表分解为如下的三张表(下划线部分表示主键):部分表示主键):S-L(Sno,)C(Cno,)S-C(Sno, Cno,)例例: 对于上面的关系模式对于上面的关系模式S-L-C(Sno,Sname,Ssex,Sdept,Sloc,Cno,Grade) 萎粮吠酸布恐蜜八渍响思拜九染做左睁各撮背聘块潜芒足启吟任惦屿衣泰第5章关系数据理论第5章关系数据理论24分解S-L-C表(续)v(2)将依赖于这些主键的属性放置到相应)将依赖于这些主键的属性放置到相应的表中,形成如下三张表:的表中,形成如下三张表:S-L(Sno,Sname, Ssex, Sdept, Sloc)C(Cno)S-C(Sno, Cno, Grade)v(3)去掉只由主键的子集构成的表,也就)去掉只由主键的子集构成的表,也就是去掉是去掉C(Cno)表。)表。S-L-C关系模式最终关系模式最终被分解的形式为:被分解的形式为:S-L(Sno, Sname, Ssex, Sdept, Sloc)S-C(Sno, Cno, Grade)洗绽终衍肿章叭呈库塞僚麦姨咆京攒矿赎锦带哆锯菌摹崔棍放挺滦胺候第5章关系数据理论第5章关系数据理论25分解后的函数依赖关系v分解后的关系模式的函数依赖关系:分解后的关系模式的函数依赖关系:vS-L:SnoSdept,Sno Sname SnoSsex, SnoSLOC 是2NFvS-C:(Sno, Cno)Grade:是2NFfffff继芍括镜刨荷痈辈再蕉卡玻诲辖痈匠沤镰碰撒苛竞食求毋痈蓖朔磊会互郊第5章关系数据理论第5章关系数据理论26S-L关系模式存在问题SnoSnameSsexSdeptSloc0611101李勇男计算机系2公寓0611102刘晨男计算机系2公寓0621102吴宾女信息管理系1公寓0621103张海男信息管理系1公寓0631103张珊珊女通信工程系1公寓害淤婿伞叭薛完惊调票鲸锭却网洒闪哀百箭筹掺冠奢嫩共怕冒毡皂渍枫卡第5章关系数据理论第5章关系数据理论27第三范式第三范式(3NF):如果R(U,F )2NF,并且所有非主属性都不传递依赖于主键,则R(U,F )3NF。 v对对S-L(Sno,Sname,Ssex,Sdept,SLOC)vSnoSdept,SdeptSloc v Sno传递SLOC, 不是3NF衔策翔习唁赐言聋酞耸亢绎殿讼滋闪谋携丘盐磕年彼铰浚莹谤艘傻您布堵第5章关系数据理论第5章关系数据理论28分解方法v(1)对于不是候选键的每个决定因子,)对于不是候选键的每个决定因子,从表中删去依赖于它的所有属性。从表中删去依赖于它的所有属性。v(2)新建一个表,新表中包含原表中所)新建一个表,新表中包含原表中所有依赖于该决定因子的属性。有依赖于该决定因子的属性。v(3)将决定因子作为新表的主键。)将决定因子作为新表的主键。查诌突狂捍雹通厢昧贷侵街眉哪减阔腐袒冕嫂嗓许脏险里洛洞涡疗飞巍琶第5章关系数据理论第5章关系数据理论29分解S-L关系模式vS-L分解后的关系模式如下:vS-D( Sno, Sname, Ssex, Sdept),主键为Sno。vS-L( Sdept, Sloc),主键为Sdept。S-L(Sno,Sname,Ssex,Sdept,SLOC)哮胸狙缝蹋颊脱熟柠治玲铡看穴贸捷乃包也扶赊隘映西湍造播斋阻钒尸佳第5章关系数据理论第5章关系数据理论30小结v规范化的过程实际上是通过把范式程度低规范化的过程实际上是通过把范式程度低的关系模式分解为若干个范式程度高的关的关系模式分解为若干个范式程度高的关系模式来实现的。系模式来实现的。v分解的最终目的是使每个规范化的关系只分解的最终目的是使每个规范化的关系只描述一个主题。描述一个主题。v如果某个关系描述了两个或多个主题,则如果某个关系描述了两个或多个主题,则它就应该被分解为多个关系,使每个关系它就应该被分解为多个关系,使每个关系只描述一个主题。只描述一个主题。士汁谚钨惧研轨谋簇趁赘客瞬勤碱芋始抓投寸寡谎赤而偶廊鄂悠障凛钒挥第5章关系数据理论第5章关系数据理论31小结(续)v规范化的方法是进行模式分解,且确保分规范化的方法是进行模式分解,且确保分解后产生的模式与原模式等价,解后产生的模式与原模式等价,v即模式分解不能破坏原来的语义,同时还即模式分解不能破坏原来的语义,同时还要保证不丢失原来的函数依赖关系。要保证不丢失原来的函数依赖关系。邀样刑馏驴刺罪竣鞭并捞剃镭炊贤屁圭尸汛川乙诛稳昆瓷纫春磁功诺酱楚第5章关系数据理论第5章关系数据理论32
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号