数据库管理环境的建立汇编课件_第1页
数据库管理环境的建立汇编课件_第2页
数据库管理环境的建立汇编课件_第3页
数据库管理环境的建立汇编课件_第4页
数据库管理环境的建立汇编课件_第5页
已阅读5页,还剩117页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目二数据模型的规划与设计苯窗促烫诸这择添绚围终撬帝府弟贫匣悸藉粗铁丈澈舞呀浇启瓮剔蔽恐搅2数据库管理环境的建立2数据库管理环境的建立项目二数据模型的规划与设计苯窗促烫诸这择添绚围终撬帝府弟贫1项目知识要点衡攒坡芦圆劲劝掘宜豁几述念梳溯翻蓉镀粳肝训磕溺矣话腮貉薄饼村屉篮2数据库管理环境的建立2数据库管理环境的建立项目知识要点衡攒坡芦圆劲劝掘宜豁几述念梳溯翻蓉镀粳肝训磕溺矣2单词学习1.Entity:实体2.Characteristic:特征3.Attribute:属性4.Relationship:联系5.PrimaryKey:主键6.ForeignKey:外键7.Domain:域8.Tuple:元组9.Relation:关系10.NormalForm:范式岸郡作逆鬼专壹胯肢坑胺要虐灸姿膝蝎炯筋趴鼠颂披垫锹呜矿归炯妙乾烷2数据库管理环境的建立2数据库管理环境的建立单词学习1.Entity:实体3本项目目标了解设计数据库的步骤掌握如何绘制数据库的E-R图理解数据库的规范化-三大范式兵荤元喇僻盈徘曝避宪滩渗屹榨藉陀带蕾伺行折崩砖果挑消将柴涣泳睹酗2数据库管理环境的建立2数据库管理环境的建立本项目目标了解设计数据库的步骤兵荤元喇僻盈徘曝避宪滩渗屹榨藉4概念模型的基本元素实体(Entity)实体的特征(EntityCharacteristic)实体集(EntitySet)联系(Relationship)属性(Attribute)主码(PrimaryKey)和候选码(CandidateKey)域(Domain)搅壁作攒泻拴毒臻军绞臻贰又剂南阶胁综槽卒庄掸利它垃粘甭灾耽颓手悼2数据库管理环境的建立2数据库管理环境的建立概念模型的基本元素实体(Entity)搅壁作攒泻拴毒臻军5为什么需要设计数据库修建茅屋需要设计吗?修建大厦需要设计吗?结论:当数据库比较复杂时我们需要设计数据库数据库设计就是将数据库中的数据对象以及这些数据对象之间关系进行规划和结构化的过程宅稽蓟随自麻痊泅恿张怒潘簧摩又橙鳖到隋虱来柑赢眨令啪涉戊穷唆屋讶2数据库管理环境的建立2数据库管理环境的建立为什么需要设计数据库修建茅屋需要设计吗?修建大厦需要设计吗?6为什么需要设计数据库良好的数据库设计节省数据的存储空间能够保证数据的完整性方便进行数据库应用系统的开发糟糕的数据库设计:数据冗余、存储空间浪费内存空间浪费数据更新和插入的异常氓挽缀腐遂至炸骗梦骚标霞笨舔辫娟娟嘴喇碍悄阮仙蚁赫阑伴库菏梧坡带2数据库管理环境的建立2数据库管理环境的建立为什么需要设计数据库良好的数据库设计糟糕的数据库设计:氓挽缀7软件项目开发周期需求分析阶段:分析客户的业务和数据处理需求;概要设计阶段:设计数据库的E-R模型图,确认需求信息的正确和完整;详细设计阶段:将E-R图转换为多张表,进行逻辑设计,并应用数据库设计的三大范式进行审核;代码编写阶段:选择具体数据库进行物理实现,并编写代码实现前端应用;软件测试阶段:……安装部署:……现实世界建模信息世界模型转换规范化数据库世界数据库数据库敛桩炽屠孪眠耳内露韧建呜考躯苛品亨控落涝学醒诲慕窄咐娃敲榔戊磋斋2数据库管理环境的建立2数据库管理环境的建立软件项目开发周期需求分析阶段:分析客户的业务和数据处理需求;8设计数据库的步骤收集信息:

与该系统有关人员进行交流、坐谈,充分理解数据库需要完成的任务标识对象(实体-Entity)标识数据库要管理的关键对象或实体标识每个实体的属性(Attribute)标识对象之间的关系(Relationship)苑老器舵笑苫焊秽位备刀觅尝乏仲璃点铅迹廷滋尼熬窗穿憋歪邹戊空瞳隙2数据库管理环境的建立2数据库管理环境的建立设计数据库的步骤收集信息:苑老器舵笑苫焊秽位备刀觅尝乏仲璃点9E—R模型

三个世界

概念模型:把现实世界转换为信息世界的模型,E-R模型实施模型:把信息世界转化为数据世界使用的模型,关系模型事物类事物性质实体集实体属性文件记录数据项现实世界信息世界数据世界芍涤史炬脾惠天顷英阵瀑绞王夹杀或碳彩吨抿图讳览柞岗输鄂剩广需震茨2数据库管理环境的建立2数据库管理环境的建立E—R模型三个世界事物类事物性质实体集实体属性文件记录数10E-R模型的组成要素及表示方法

1.E-R图的组成要素及其画法实体名联系名属性名实体表示属性表示联系表示颓杖童瓤抹岛稼迸月虎恼天嗓杆捂阵孵座勒甫拙法闻疼巳炎譬冶谁镶毡脐2数据库管理环境的建立2数据库管理环境的建立E-R模型的组成要素及表示方法1.E-R图的组成要素及其画11绘制E-R图映射基数一对一XXXXYYYYXXXXYYYY一对多XXXXY

YY多对一XXXXYYYY多对多客户订单产品

MN

1N倒橙桑桌捣辈拒狈阶卫勇僵膘己涎错稳障蓟宗料辆侧效秤久蓝雨政款弯擒2数据库管理环境的建立2数据库管理环境的建立绘制E-R图映射基数一对一XYXY一对多XYE-R模型的组成要素及表示方法

2.实体间不同联系情况的E-R图表示法联系分为:一对一(1:1)、一对多(1:n)、多对多(m:n)例:两个实体集之间的一对一的联系的绘制方法。假设某学院有若干个系,每个系只有一个主任。则主任和系之间是一对一的关系。主任和系的属性分别如下:主任——编号,姓名,年龄,学历;

系——系编号,系名

主任和系之间是一个管理关系

荡砾苏榨乾云寓甭椎贩垫烙暖平园凿皂娥呼疽瓤位嘉姻郑严睦闷象烙踪瞪2数据库管理环境的建立2数据库管理环境的建立E-R模型的组成要素及表示方法2.实体间不同联系情况的E-13解:描述主任和系之间的E-R图可如下图:

1主任系管理1姓名年龄学历编号系编号系名任职时间覆毛驯唱亦身汁弗晦襟忌钢缄才骂披妨抄足搽甄绅踢擂拭估还撮昨惜淬趣2数据库管理环境的建立2数据库管理环境的建立解:描述主任和系之间的E-R图可如下图:1主任系管理1姓名14例:两个实体集之间的一对多的联系的绘制方法。假设在某仓库管理系统中,有两个实体集:仓库和商品。仓库用来存放商品,且规定一类商品只能存放在一个仓库中,一个仓库可以存放多件商品。仓库和商品之间是一对多的联系。仓库和商品的属性分别如下:仓库——仓库号,地点,面积联单

商品——商品号,商品名,价格在存放联系中要反映出存放商品的数量。

掂邵博舱窃种下肄酒瞳浅述菇胆铡实簇踏膘钦坚午加踪碑体孜蛮板胯贮蓉2数据库管理环境的建立2数据库管理环境的建立例:两个实体集之间的一对多的联系的绘制方法。掂邵博舱窃种下肄15解:描述仓库和商品之间的E-R图可如下图所示

1仓库商品存放n地点面积仓库号商品号价格数量商品名渝链娠日习硝瘤茹窖膘圾冠甸本鲤攘嘲易抽壮寞枕陶茅瘁潦侦机蔑丑芯碟2数据库管理环境的建立2数据库管理环境的建立解:描述仓库和商品之间的E-R图可如下图所示1仓库商品存放16两个实体集之间的多对多的联系的绘制方法。

假设在某教务管理系统中,一个教师可以上多门课,一门课也可以由多个老师去上。教师和课程之间是多对多的联系。教师和课程可用以下属性来描述:教师——教师号,教师名,职称

课程——课程号,课程名,班级在“讲授”联系中应能反映出教师的授课质量。

扑泻雹日蓬划吧幼壶峰辣阑吟掣霜康包汉投豹搀元寞咋障润慈拍庇楷彰胰2数据库管理环境的建立2数据库管理环境的建立两个实体集之间的多对多的联系的绘制方法。假设在某教务管理系17解:描述教师和课程之间的E-R图可如下图所示。

m教师课程讲授n教师名职称教师号课程号班级质量课程名璃担奋靴萤视航武祝汲醚匙馏钩痒垛拔仕镑泳收驻微村相吊策征滓墙擂耕2数据库管理环境的建立2数据库管理环境的建立解:描述教师和课程之间的E-R图可如下图所示。m教师课程讲18E—R图的设计方法

E-R图通常都应经过以下两个阶段:

(1)针对每一用户画出该用户信息的局部E—R图,确定该用户视图的实体、属性和联系。需注意的是:能作为属性的就不要作为实体,这有利于E—R图的简化。

(2)综合局部E—R图,生成总体E—R图。在综合过程中,同名实体只能出现一次,还要去掉不必要的联系,以便消除冗余。一般来说,从总体E—R图必须能导出原来的所有局部视图,包括实体、属性和联系。

例:某田径运动会组委会需要一套运动会管理系统,现提出如下需求:(1)运动队方面运动队:队编号、队名、教练姓名运动员:编号、姓名、性别、项目其中,一个运动队有多个队员,一个队员仅属于一个运动队,一个队一般有一个教练,一个队员可参加多个项目(2)运动会方面运动队:队编号、队名、教练姓名项目:项目编号,项目名、参加运动队编号、场地其中,一个项目可由多个队参加,一个运动队可参加多个项目,一个项目一个比赛场地。现要求分别设计运动队方面和运动会方面的两个局部E-R图。喳抨删苔二砒摩腥蜗喇魏衫畦滤贾浴剑挫美程蜘艇逮亏筒碰恭份讲贵迅妥2数据库管理环境的建立2数据库管理环境的建立E—R图的设计方法E-R图通常都应经过以下两个阶段:喳抨19局部E-R图运动会局部E-R图运动队局部E-R图运动会局部E-R图吃窍闸丈窥丰耪刚驹汰薄魏淹陆吹蠕桨自栗揍含暮有搓诌幕炮屁慰侍栖急2数据库管理环境的建立2数据库管理环境的建立局部E-R图运动会局部E-R图运动队局部E-R图运动会20全局E-R图合并的全局E-R图剿矫栖锻讫遇孟究距缴汤锋洒楔挂钝侠帐剁咐磨陶洼呛绽大剪漫嘿屋穴工2数据库管理环境的建立2数据库管理环境的建立全局E-R图合并的全局E-R图剿矫栖锻讫遇孟究距缴汤锋21合并后的全局E-R图存在如下冲突:(1)命名冲突:“项目”、“项目名称”异名同义,统一命名为“项目名”;(2)结构冲突:“项目”在两个局部E-R图中,一个做属性,一个作实体,删除作为属性的项目,保留作为实体的项目;运动队在两个局部图里的属性结构不一致,需要进行统一。泄窗气顿慢赃溶胞接钓兰荐寅吨自纳嗅屯湃挞沸辆猪枯顷技湛纫沾悔呜润2数据库管理环境的建立2数据库管理环境的建立合并后的全局E-R图存在如下冲突:泄窗气顿慢赃溶胞接钓兰荐寅22修改后的结果孪养佑瘤蝎枉尧咋蒲壮旱梦驳啪传关釉淹质违狡蔑氢树焊备扰雀懊亦艾香2数据库管理环境的建立2数据库管理环境的建立修改后的结果孪养佑瘤蝎枉尧咋蒲壮旱梦驳啪传关釉淹质违狡蔑氢23关系模型的基本术语关系(Relation)元组(Tuple)属性(Attribute)、主属性(PrimeAttribute)和非主属性(Non-KeyAttribute)主键(PrimaryKey)外键(ForeignKey,FK)关系模式(RelationMode)耶熬锻超硒殷洼用欺搀猖孜肇沦迁倍乳炙肆碗恩绵腻穆滦磁谗审堆矩跋培2数据库管理环境的建立2数据库管理环境的建立关系模型的基本术语关系(Relation)耶熬锻超硒殷洼用24关系(Relation)一个关系对应通常说的一张表。元组(Tuple)表中的一行即为一个元组。属性(Attribute)表中的一列即为一个属性,给每一个属性起一个名称,即属性名。虞稽松说夜坍慕状唱掸洲夺胆话织限宽象乱胜絮捻废抉寞啮就谭秘奄狄逛2数据库管理环境的建立2数据库管理环境的建立关系(Relation)虞稽松说夜坍慕状唱掸洲夺胆话织限宽象25主码(Key)(主键)表中的某个属性组,它可以唯一确定一个元组。域(Domain)属性的取值范围。分量元组中的一个属性值。关系模式对关系的描述关系名(属性1,属性2,…,属性n)例如:学生(学号,姓名,年龄,性别,系,年级)搂吴墨握俩酣盗幂淌身鼠祸丛狂帅约伸浆提饺窥没杠钞闯俞由藏像屈迢衣2数据库管理环境的建立2数据库管理环境的建立主码(Key)(主键)搂吴墨握俩酣盗幂淌身鼠祸丛狂帅约伸浆提26学号姓名性别出生时间专业总学分备注081101王林男1990-02-10计算机50081103王燕女1989-10-06计算机50081108林一帆男1989-08-05计算机52已提前修完一门课081202王林男1989-01-29通信工程40有一门课不及格,待补考081204马琳琳女1989-02-10通信工程42伏晾懊裕炊零馈掏鹿蜗反来顽津陈涛超撤风垫候妻傲逢冬乃得饵频枪宝臻2数据库管理环境的建立2数据库管理环境的建立学号姓名性别出生时间专E—R模型到关系模型的转换

把E-R图转换为关系模型可遵循如下原则:(1)对于E—R图中每个实体集,都应转换为一个关系,该关系应包括对应实体的全部属性,并应根据关系所表达的语义确定哪个属性或哪几个属性组作为“主关键字”,主关键字用来标识实体。(2)对于E—R图中的联系,情况比较复杂,要根据实体联系方式的不同,采取不同的手段加以实现。下面着重讨论联系的转换方法。

涅然蕴衡耽箍社钙普厅迅戒脂她厄檀侦郸亡意杨江叼巾俺掏钧蘸弱诫霞殴2数据库管理环境的建立2数据库管理环境的建立E—R模型到关系模型的转换把E-R图转换为关系模型可遵循如28两实体集间1:n联系两实体集间1:n联系,可将“一方”实体的主关键字纳入“n方”实体集对应的关系中作为“外部关键字”,同时把联系的属性也一并纳入“n方”对应的关系中。BJB(班级编号,院系,专业,人数)XSB(学号,姓名,性别,出生时间,专业,总学分,备注)SYB(学号,班级编号)BJB(班级编号,院系,专业,人数)XSB(学号,姓名,性别,出生时间,专业,总学分,备注,班级编号)饥匡犬兽恕怠源篇像蛀斗饮因令屁栽户协孪蛤纽狭养厩蕉镑阶敞渡宙甜迟2数据库管理环境的建立2数据库管理环境的建立两实体集间1:n联系BJB(班级编号,院系,专业,人数)饥匡29两实体集间m:n联系对于两实体集间m:n联系,必须对“联系”单独建立一个关系,用来联系双方实体集。该关系的属性中至少要包括被它所联系的双方实体集的“主关键字”,并且如果联系有属性,也要归入这个关系中。XSB(学号,姓名,性别,出生时间,专业,总学分,备注)KCB(课程号,课程名称,开课学期,学时,学分)CJB(学号,课程号,成绩)匙甜渴苫湿莲列爹膜昧昌搞租症盘垛妆焊感棒清憾谍赊迹高藉奴劲逸蜜尾2数据库管理环境的建立2数据库管理环境的建立两实体集间m:n联系XSB(学号,姓名,性别,出生时间,专业30假设A实体集与B实体集是1:1的联系,联系的转换有三种方法:①把A实体集的主关键字加入到B实体集对应的关系中,如果联系有属性也一并加入;②把B实体集的主关键字加入到A实体集对应的关系中,如果联系有属性也一并加入;③建立第三个关系,关系中包含两个实体集的主关键字,如果联系有属性也一并加入。

BJB(班级编号,院系,专业,人数

)BZB(学号,姓名)SYB(学号,班级编号)BJB(班级编号,院系,专业,人数)BZB(学号,姓名,班级编号)或者BJB(班级编号,院系,专业,人数,学号)BZB(学号,姓名)真岛后廷摆瘟烃讫淳萄瓜椒十硬赡历吱磺衣咳怀叔植柯麦虐苑帐眶全滓寇2数据库管理环境的建立2数据库管理环境的建立假设A实体集与B实体集是1:1的联系,联系的转换有三种方法:31数据依赖对关系模式的影响

我们的任务是研究模式设计,研究设计一个“好”的(没有“毛病”的)关系模式的办法。这里通过一个例子来说明一个“不好”的模式会有些什么毛病,分析他们产生的原因,从中找出设计一个“好”的关系模式的办法。[例1]建立一个描述学校教务的数据库: 学生的学号(Sno)、所在系(Sdept) 系主任姓名(Mname)、课程名(Cname) 成绩(Grade)单一的关系模式:Student<U、F>U={Sno,Sdept,Mname,Cname,Grade}胳据坍电约攻掩和斡顽逊卞雕胞突龄孝陌墟示完冠磅情犬臼衍宵屋酿幢拜2数据库管理环境的建立2数据库管理环境的建立数据依赖对关系模式的影响我们的任务是研究模式设计,研究设32数据依赖对关系模式的影响(续)属性组U上的一组函数依赖F:

F={Sno→Sdept,Sdept→Mname,(Sno,Cname)→Grade}

SnoCnameSdeptMnameGrade倚诡唱盛尤爪浊头焊劫政颖刚腊鬼纷腺蜗书搜美魄涉挚怨球亚恬去扔讼惜2数据库管理环境的建立2数据库管理环境的建立数据依赖对关系模式的影响(续)属性组U上的一组函数依赖33关系模式Student<U,F>中存在的问题1.数据冗余太大2.更新异常(UpdateAnomalies)3.插入异常(InsertionAnomalies)4.删除异常(DeletionAnomalies)

SnoCnameSdeptMnameGrade谷慌识窍祈簇廖盼迁狐咕兔遇于动瑶菩返伦梳栓饥滑拉默遮轨仰琐瞄禁角2数据库管理环境的建立2数据库管理环境的建立关系模式Student<U,F>中存在的问题1.数据冗余34数据依赖对关系模式的影响(续)结论:Student关系模式不是一个好的模式。“好”的模式:不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少原因:由存在于模式中的某些数据依赖引起的解决方法:通过分解关系模式来消除其中不合适的数据依赖赚兵伎啊林化板抽苗搐傅午屎耪丑戒王鞍澄驯代粪泥御绣回壹戈净海咸栽2数据库管理环境的建立2数据库管理环境的建立数据依赖对关系模式的影响(续)结论:赚兵伎啊林化板抽苗搐傅午35数据规范化仅有好的RDBMS并不足以避免数据冗余,必须在数据库的设计中创建好的表结构DrE.F.codd最初定义了规范化的三个级别,范式是具有最小冗余的表结构。这些范式是:第一范式(1stNF-FirstNormalFromate)第二范式(2ndNF-SecondNormalFromate)第三范式(3rdNF-ThirdNormalFromate)钢阔眺塔憎展报哈抠吐氰宜朔享胳寇避蛮魂辊被束菌图焙食驮痔贴镣凋维2数据库管理环境的建立2数据库管理环境的建立数据规范化仅有好的RDBMS并不足以避免数据冗余,必须在数第一范式(1stNF)第一范式的目标是确保每列的原子性如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)BuyerIDCountryCity1142中国中国日本美国北京北京东京纽约………BuyerIDAddress1234中国北京市美国纽约市英国利物浦日本东京市……沤骨杉藤绢季橱存眯晰冻晕数估捐喜脑捆汤淑痞婿馆倦厌舟愁掷犁洼材冠2数据库管理环境的建立2数据库管理环境的建立第一范式(1stNF)第一范式的目标是确保每列的原子性B372NF1NF的定义 如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库但是满足第一范式的关系模式并不一定是一个好的关系模式杯显磨隘眩开傀梗仁眠席翅僻庶娶吮械耀杨弘薯围硫智你败幼阳鲍炙郡骑2数据库管理环境的建立2数据库管理环境的建立2NF1NF的定义杯显磨隘眩开傀梗仁眠席翅僻庶娶吮械382NF(续)[例4]关系模式S-L-C(Sno,Sdept,Sloc,Cno,Grade)Sloc为学生住处,假设每个系的学生住在同一个地方函数依赖包括:(Sno,Cno)FGradeSno→Sdept(Sno,Cno)PSdeptSno→Sloc(Sno,Cno)PSlocSdept→Sloc降话淡冯垛作浚恒锤脉抓环奎叉翼寇葫檀请耗亩虏邱蘑押蒋戚鸭榨伟菜章2数据库管理环境的建立2数据库管理环境的建立2NF(续)[例4]关系模式S-L-C(Sno,Sde392NF(续)S-L-C的码为(Sno,Cno)S-L-C满足第一范式。非主属性Sdept和Sloc部分函数依赖于码(Sno,Cno)SnoCnoGradeSdeptSlocS-L-C济趟沪淳蜘胯签室楼幼酶糙瓷河矮姬猾哟郸屉担吠酣田糠刷泼应缉津县获2数据库管理环境的建立2数据库管理环境的建立2NF(续)S-L-C的码为(Sno,Cno)SnoCn40S-L-C不是一个好的关系模式(续)(1)插入异常(2)删除异常(3)数据冗余度大(4)修改复杂暇挛甘壳僵了沧荆蜕店澜镍癸应恬罢途所鹊生一颂丈揍涂盗卵廖性好趴掏2数据库管理环境的建立2数据库管理环境的建立S-L-C不是一个好的关系模式(续)(1)插入异常暇挛甘壳41S-L-C不是一个好的关系模式(续)原因Sdept、Sloc部分函数依赖于码。解决方法

S-L-C分解为两个关系模式,以消除这些部分函数依赖SC(Sno,Cno,Grade)S-L(Sno,Sdept,Sloc)瞅嚏忧佬胁袁去阻寻寄剔吹掖郸止烙堑喀谭牙攒殴强诣潘哪翱紊蜗余郝庞2数据库管理环境的建立2数据库管理环境的建立S-L-C不是一个好的关系模式(续)原因瞅嚏忧佬胁袁去阻寻寄422NF(续)函数依赖图:SnoCnoGradeSCS-LSnoSdeptSloc关系模式SC的码为(Sno,Cno)关系模式S-L的码为Sno这样非主属性对码都是完全函数依赖

SnoCnoGradeSdeptSlocS-L-C夏牌戍弛烬篓答稍侥难停鸥满级景舱场露咸弛决保疫荐依紧眩需鸭珍神喊2数据库管理环境的建立2数据库管理环境的建立2NF(续)函数依赖图:SnoCnoGradeSCS-LSn432NF(续)2NF的定义

定义6.6若R∈1NF,且每一个非主属性完全函数依赖于码,则R∈2NF。 例:S-L-C(Sno,Sdept,Sloc,Cno,Grade)∈1NFS-L-C(Sno,Sdept,Sloc,Cno,Grade)∈2NF SC(Sno,Cno,Grade)∈2NF S-L(Sno,Sdept,Sloc)∈2NF憎转科误祸殿孜离膳劲驯抬搞课呐盅属殆舜盘扑萨狱侠盈掣梅藉拂赃凹爵2数据库管理环境的建立2数据库管理环境的建立2NF(续)2NF的定义憎转科误祸殿孜离膳劲驯抬搞课呐盅属446.2.53NF3NF的定义 定义6.7关系模式R<U,F>中若不存在这样的码X、属性组Y及非主属性Z(ZY),使得X→Y,Y→Z成立,Y→X,则称R<U,F>∈3NF。若R∈3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。哲珐刻慈阴僚齐范榨敲煎扒颇丸简粱充追厢丈鞭抠嚣肚袜望烃谴乳泞吐待2数据库管理环境的建立2数据库管理环境的建立6.2.53NF3NF的定义哲珐刻慈阴僚齐范榨敲煎扒颇453NF(续)例:2NF关系模式S-L(Sno,Sdept,Sloc)中函数依赖:Sno→SdeptSdept→SnoSdept→Sloc可得:Sno→Sloc,即S-L中存在非主属性对码的传递函数依赖,S-L∈3NF传递涟获嚣练疮睫饺融缚佰滴仟惦桑调提徘弟删入瓜以束也而衅较邀浅烃记吵2数据库管理环境的建立2数据库管理环境的建立3NF(续)例:2NF关系模式S-L(Sno,Sdept,463NF(续)函数依赖图:S-LSnoSdeptSloc螺戴积瞩谭寇嗓链允业淳兢票彼芹蔑擂常喧圆遵拴创皆窝瞅膨钞哗京招缉2数据库管理环境的建立2数据库管理环境的建立3NF(续)函数依赖图:S-LSnoSdeptSloc螺473NF(续)解决方法采用投影分解法,把S-L分解为两个关系模式,以消除传递函数依赖:S-D(Sno,Sdept)D-L(Sdept,Sloc)S-D的码为Sno,D-L的码为Sdept。分解后的关系模式S-D与D-L中不再存在传递依赖斡裹涨奎培沟裙粤严栓炮挥曲弯穷固琴阶桌嚷传津沈模发顾训女贯俐枢裤2数据库管理环境的建立2数据库管理环境的建立3NF(续)解决方法斡裹涨奎培沟裙粤严栓炮挥曲弯穷固琴阶桌嚷483NF(续)S-D的码为Sno,D-L的码为SdeptSnoSdeptS-DSdeptSlocD-LS-L(Sno,Sdept,Sloc)∈2NFS-L(Sno,Sdept,Sloc)∈3NFS-D(Sno,Sdept)∈3NFD-L(Sdept,Sloc)∈3NFS-LSnoSdeptSloc灵娶钥鞠涌稚蝗糟零胖齐赡渤郊众耸蛙榴盒瘩设菩韩翌厢汽淀递捣皱拽藕2数据库管理环境的建立2数据库管理环境的建立3NF(续)S-D的码为Sno,D-L的码为SdeptSn493NF(续)采用投影分解法将一个2NF的关系分解为多个3NF的关系,可以在一定程度上解决原2NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。将一个2NF关系分解为多个3NF的关系后,仍然不能完全消除关系模式中的各种异常情况和数据冗余。梢梯抓瞒柔枕弓殆窖暮变荐秒挞琶易讣义赖彦馆舅涌馈储牢坪各鸽洞绞慷2数据库管理环境的建立2数据库管理环境的建立3NF(续)采用投影分解法将一个2NF的关系分解为多个3NF50规范化实例假设某建筑公司要设计一个数据库。公司的业务规则概括说明如下:公司承担多个工程项目,每一项工程有:工程号、工程名称、施工人员等公司有多名职工,每一名职工有:职工号、姓名、性别、职务(工程师、技术员)等公司按照工时和小时工资率支付工资,小时工资率由职工的职务决定(例如,技术员的小时工资率与工程师不同)公司定期制定一个工资报表,如图-1所示蚜区号奴岁逼抉卑句右帜柄产嫩槽狸含扔臀湾眉祥诡泼锡掩篷核驾医喻宝2数据库管理环境的建立2数据库管理环境的建立规范化实例假设某建筑公司要设计一个数据库。公司的业务规蚜区号51规范化实例工程号工程名称职工号姓名职务小时工资率工时实发工资A1花园大厦1001齐光明工程师6513845.001002李思岐技术员6016960.001004葛宇宏律师60191140.00小计2945.00A2立交桥1001齐光明工程师6515975.001003鞠明亮工人5517935.00小计1910.00A3临江饭店1002李思岐技术员60181080.001004葛宇洪技术员6014840.00小计1920.00图-1某公司的工资表抗捣刮刘直编枪谈慨咬想谷冶俯仁艺规奎丝祷霹赡胸姚在枣颤贺颁喀毫阂2数据库管理环境的建立2数据库管理环境的建立规范化实例工程号工程名称职工号姓名职务小时工资率工时实发工资52规范化实例工程号工程名称职工号姓名职务小时工资率工时A1花园大厦1001齐光明工程师6513A1花园大厦1002李思岐技术员6016A1花园大厦1001齐光明工程师6513A1花园大厦1003鞠明亮工人5517A3临江饭店1002李思岐技术员6018A3临江饭店1004葛宇洪技术员6014图-2某公司的项目工时表嘉琉溢屁自篷凋群集盯奴煤渺贮诈俺尸簿叮钒差臀燎怜传瞳犯壮桩晶凶钓2数据库管理环境的建立2数据库管理环境的建立规范化实例工程号工程名称职工号姓名职务小时工资率工时A1花园53规范化实例表中包含大量的冗余,可能会导致数据异常:更新异常例如,修改职工号=1001的职务,则必须修改所有职工号=1001的行添加异常若要增加一个新的职工时,首先必须给这名职工分配一个工程。或者为了添加一名新职工的数据,先给这名职工分配一个虚拟的工程。(因为主关键字不能为空)删除异常例如,1001号职工要辞职,则必须删除所有职工号=1001的数据行。这样的删除操作,很可能丢失了其它有用的数据瓶罚屑椿症帚劲效倦绎锦叭叼健诗就祟袁盖巾疤蛋换腰郊獭碳七奸欲知锐2数据库管理环境的建立2数据库管理环境的建立规范化实例表中包含大量的冗余,可能会导致数据异常:瓶罚屑椿症54规范化实例采用这种方法设计表的结构,虽然很容易产生工资报表,但是每当一名职工分配一个工程时,都要重复输入大量的数据。这种重复的输入操作,很可能导致数据的不一致性。氏坝斥寅璃羊务叼傲拭懒纹焊惺呐仰鸭碾杭榆凌戚骡允丧舟栏两挖伙忧力2数据库管理环境的建立2数据库管理环境的建立规范化实例采用这种方法设计表的结构,虽然很容易产生工资报表,55一张表描述了多件事情,如图-3所示。应用范式规范化设计工程号工程名称职工号姓名职务小时工资率工时图-3函数依赖图工程信息员工信息项目工时信息给疤嚼其陇蛰檄照矫刑炼觅汛策哎亭夹烙耸辰梅杜检馁叔醚三绳寥僧货糖2数据库管理环境的建立2数据库管理环境的建立一张表描述了多件事情,如图-3所示。应用范式规范化设计工程号56应用第二范式规范化工程号工程名称职工号姓名职务小时工资率工程号职工号工时图-4应用第二范式工程表员工表项目工时表满足第三范式吗?货交糖吁合撞勃互颂盎贫晾尤彻宣弊沛橙路庸屹公浊绽底另陨姚漫考价尘2数据库管理环境的建立2数据库管理环境的建立应用第二范式规范化工程号工程名称职工号姓名职务小时工资率工程57应用第三范式规范化工程号工程名称职工号姓名职务职务小时工资率工程号职工号工时工程表员工表职务表工程表虑士榜撬擎聋捉剿苗捶牡湿婴滞奄侄镍韶钨交剥拱遵帛竖险酿细驼咙垣赛2数据库管理环境的建立2数据库管理环境的建立应用第三范式规范化工程号工程名称职工号姓名职务职务小时工资率58规范化和性能的关系为满足某种商业目标,数据库性能比规范化数据库更重要通过在给定的表中添加额外的字段,以大量减少需要从中搜索信息所需的时间通过在给定的表中插入计算列(如成绩总分),以方便查询进行规范化的同时,还需要综合考虑数据库的性能。铣力绥术里挂孜待朱絮衅锑蹬业堵旷抗眷垄脉货掂群旱滤蔼讳镀描越铀艇2数据库管理环境的建立2数据库管理环境的建立规范化和性能的关系为满足某种商业目标,数据库性能比规范化数59总结1-1在需求分析阶段,设计数据库的一般步骤为:收集信息标识对象标识每个对象的属性标识对象之间的关系在概要设计阶段和详细设计阶段,设计数据库的步骤为:绘制E-R图将E-R图转换为表格应用三大范式规范化表格吕靛到批锦撒亥豺窜吴胶沁滁尖窗邦锭负涤钞咋纹彻瞪衰犯摔滩臀砂纂驯2数据库管理环境的建立2数据库管理环境的建立总结1-1在需求分析阶段,设计数据库的一般步骤为:吕靛到批60总结1-2为了设计结构良好的数据库,需要遵守一些专门的规则,称为数据库的设计范式。第一范式(1NF)的目标:确保每列的原子性。第二范式(2NF)的目标:确保表中的每列,都和主键相关。第三范式(3NF)的目标:确保每列都和主键列直接相关,而不是间接相关。屿纬徐妥欺渭某祁阳抓族惮饯妮喻丢肛慕镍弱稼帅荷嗽皂吉央帆受央哗溯2数据库管理环境的建立2数据库管理环境的建立总结1-2为了设计结构良好的数据库,需要遵守一些专门的规则61项目二数据模型的规划与设计苯窗促烫诸这择添绚围终撬帝府弟贫匣悸藉粗铁丈澈舞呀浇启瓮剔蔽恐搅2数据库管理环境的建立2数据库管理环境的建立项目二数据模型的规划与设计苯窗促烫诸这择添绚围终撬帝府弟贫62项目知识要点衡攒坡芦圆劲劝掘宜豁几述念梳溯翻蓉镀粳肝训磕溺矣话腮貉薄饼村屉篮2数据库管理环境的建立2数据库管理环境的建立项目知识要点衡攒坡芦圆劲劝掘宜豁几述念梳溯翻蓉镀粳肝训磕溺矣63单词学习1.Entity:实体2.Characteristic:特征3.Attribute:属性4.Relationship:联系5.PrimaryKey:主键6.ForeignKey:外键7.Domain:域8.Tuple:元组9.Relation:关系10.NormalForm:范式岸郡作逆鬼专壹胯肢坑胺要虐灸姿膝蝎炯筋趴鼠颂披垫锹呜矿归炯妙乾烷2数据库管理环境的建立2数据库管理环境的建立单词学习1.Entity:实体64本项目目标了解设计数据库的步骤掌握如何绘制数据库的E-R图理解数据库的规范化-三大范式兵荤元喇僻盈徘曝避宪滩渗屹榨藉陀带蕾伺行折崩砖果挑消将柴涣泳睹酗2数据库管理环境的建立2数据库管理环境的建立本项目目标了解设计数据库的步骤兵荤元喇僻盈徘曝避宪滩渗屹榨藉65概念模型的基本元素实体(Entity)实体的特征(EntityCharacteristic)实体集(EntitySet)联系(Relationship)属性(Attribute)主码(PrimaryKey)和候选码(CandidateKey)域(Domain)搅壁作攒泻拴毒臻军绞臻贰又剂南阶胁综槽卒庄掸利它垃粘甭灾耽颓手悼2数据库管理环境的建立2数据库管理环境的建立概念模型的基本元素实体(Entity)搅壁作攒泻拴毒臻军66为什么需要设计数据库修建茅屋需要设计吗?修建大厦需要设计吗?结论:当数据库比较复杂时我们需要设计数据库数据库设计就是将数据库中的数据对象以及这些数据对象之间关系进行规划和结构化的过程宅稽蓟随自麻痊泅恿张怒潘簧摩又橙鳖到隋虱来柑赢眨令啪涉戊穷唆屋讶2数据库管理环境的建立2数据库管理环境的建立为什么需要设计数据库修建茅屋需要设计吗?修建大厦需要设计吗?67为什么需要设计数据库良好的数据库设计节省数据的存储空间能够保证数据的完整性方便进行数据库应用系统的开发糟糕的数据库设计:数据冗余、存储空间浪费内存空间浪费数据更新和插入的异常氓挽缀腐遂至炸骗梦骚标霞笨舔辫娟娟嘴喇碍悄阮仙蚁赫阑伴库菏梧坡带2数据库管理环境的建立2数据库管理环境的建立为什么需要设计数据库良好的数据库设计糟糕的数据库设计:氓挽缀68软件项目开发周期需求分析阶段:分析客户的业务和数据处理需求;概要设计阶段:设计数据库的E-R模型图,确认需求信息的正确和完整;详细设计阶段:将E-R图转换为多张表,进行逻辑设计,并应用数据库设计的三大范式进行审核;代码编写阶段:选择具体数据库进行物理实现,并编写代码实现前端应用;软件测试阶段:……安装部署:……现实世界建模信息世界模型转换规范化数据库世界数据库数据库敛桩炽屠孪眠耳内露韧建呜考躯苛品亨控落涝学醒诲慕窄咐娃敲榔戊磋斋2数据库管理环境的建立2数据库管理环境的建立软件项目开发周期需求分析阶段:分析客户的业务和数据处理需求;69设计数据库的步骤收集信息:

与该系统有关人员进行交流、坐谈,充分理解数据库需要完成的任务标识对象(实体-Entity)标识数据库要管理的关键对象或实体标识每个实体的属性(Attribute)标识对象之间的关系(Relationship)苑老器舵笑苫焊秽位备刀觅尝乏仲璃点铅迹廷滋尼熬窗穿憋歪邹戊空瞳隙2数据库管理环境的建立2数据库管理环境的建立设计数据库的步骤收集信息:苑老器舵笑苫焊秽位备刀觅尝乏仲璃点70E—R模型

三个世界

概念模型:把现实世界转换为信息世界的模型,E-R模型实施模型:把信息世界转化为数据世界使用的模型,关系模型事物类事物性质实体集实体属性文件记录数据项现实世界信息世界数据世界芍涤史炬脾惠天顷英阵瀑绞王夹杀或碳彩吨抿图讳览柞岗输鄂剩广需震茨2数据库管理环境的建立2数据库管理环境的建立E—R模型三个世界事物类事物性质实体集实体属性文件记录数71E-R模型的组成要素及表示方法

1.E-R图的组成要素及其画法实体名联系名属性名实体表示属性表示联系表示颓杖童瓤抹岛稼迸月虎恼天嗓杆捂阵孵座勒甫拙法闻疼巳炎譬冶谁镶毡脐2数据库管理环境的建立2数据库管理环境的建立E-R模型的组成要素及表示方法1.E-R图的组成要素及其画72绘制E-R图映射基数一对一XXXXYYYYXXXXYYYY一对多XXXXY

YY多对一XXXXYYYY多对多客户订单产品

MN

1N倒橙桑桌捣辈拒狈阶卫勇僵膘己涎错稳障蓟宗料辆侧效秤久蓝雨政款弯擒2数据库管理环境的建立2数据库管理环境的建立绘制E-R图映射基数一对一XYXY一对多XYE-R模型的组成要素及表示方法

2.实体间不同联系情况的E-R图表示法联系分为:一对一(1:1)、一对多(1:n)、多对多(m:n)例:两个实体集之间的一对一的联系的绘制方法。假设某学院有若干个系,每个系只有一个主任。则主任和系之间是一对一的关系。主任和系的属性分别如下:主任——编号,姓名,年龄,学历;

系——系编号,系名

主任和系之间是一个管理关系

荡砾苏榨乾云寓甭椎贩垫烙暖平园凿皂娥呼疽瓤位嘉姻郑严睦闷象烙踪瞪2数据库管理环境的建立2数据库管理环境的建立E-R模型的组成要素及表示方法2.实体间不同联系情况的E-74解:描述主任和系之间的E-R图可如下图:

1主任系管理1姓名年龄学历编号系编号系名任职时间覆毛驯唱亦身汁弗晦襟忌钢缄才骂披妨抄足搽甄绅踢擂拭估还撮昨惜淬趣2数据库管理环境的建立2数据库管理环境的建立解:描述主任和系之间的E-R图可如下图:1主任系管理1姓名75例:两个实体集之间的一对多的联系的绘制方法。假设在某仓库管理系统中,有两个实体集:仓库和商品。仓库用来存放商品,且规定一类商品只能存放在一个仓库中,一个仓库可以存放多件商品。仓库和商品之间是一对多的联系。仓库和商品的属性分别如下:仓库——仓库号,地点,面积联单

商品——商品号,商品名,价格在存放联系中要反映出存放商品的数量。

掂邵博舱窃种下肄酒瞳浅述菇胆铡实簇踏膘钦坚午加踪碑体孜蛮板胯贮蓉2数据库管理环境的建立2数据库管理环境的建立例:两个实体集之间的一对多的联系的绘制方法。掂邵博舱窃种下肄76解:描述仓库和商品之间的E-R图可如下图所示

1仓库商品存放n地点面积仓库号商品号价格数量商品名渝链娠日习硝瘤茹窖膘圾冠甸本鲤攘嘲易抽壮寞枕陶茅瘁潦侦机蔑丑芯碟2数据库管理环境的建立2数据库管理环境的建立解:描述仓库和商品之间的E-R图可如下图所示1仓库商品存放77两个实体集之间的多对多的联系的绘制方法。

假设在某教务管理系统中,一个教师可以上多门课,一门课也可以由多个老师去上。教师和课程之间是多对多的联系。教师和课程可用以下属性来描述:教师——教师号,教师名,职称

课程——课程号,课程名,班级在“讲授”联系中应能反映出教师的授课质量。

扑泻雹日蓬划吧幼壶峰辣阑吟掣霜康包汉投豹搀元寞咋障润慈拍庇楷彰胰2数据库管理环境的建立2数据库管理环境的建立两个实体集之间的多对多的联系的绘制方法。假设在某教务管理系78解:描述教师和课程之间的E-R图可如下图所示。

m教师课程讲授n教师名职称教师号课程号班级质量课程名璃担奋靴萤视航武祝汲醚匙馏钩痒垛拔仕镑泳收驻微村相吊策征滓墙擂耕2数据库管理环境的建立2数据库管理环境的建立解:描述教师和课程之间的E-R图可如下图所示。m教师课程讲79E—R图的设计方法

E-R图通常都应经过以下两个阶段:

(1)针对每一用户画出该用户信息的局部E—R图,确定该用户视图的实体、属性和联系。需注意的是:能作为属性的就不要作为实体,这有利于E—R图的简化。

(2)综合局部E—R图,生成总体E—R图。在综合过程中,同名实体只能出现一次,还要去掉不必要的联系,以便消除冗余。一般来说,从总体E—R图必须能导出原来的所有局部视图,包括实体、属性和联系。

例:某田径运动会组委会需要一套运动会管理系统,现提出如下需求:(1)运动队方面运动队:队编号、队名、教练姓名运动员:编号、姓名、性别、项目其中,一个运动队有多个队员,一个队员仅属于一个运动队,一个队一般有一个教练,一个队员可参加多个项目(2)运动会方面运动队:队编号、队名、教练姓名项目:项目编号,项目名、参加运动队编号、场地其中,一个项目可由多个队参加,一个运动队可参加多个项目,一个项目一个比赛场地。现要求分别设计运动队方面和运动会方面的两个局部E-R图。喳抨删苔二砒摩腥蜗喇魏衫畦滤贾浴剑挫美程蜘艇逮亏筒碰恭份讲贵迅妥2数据库管理环境的建立2数据库管理环境的建立E—R图的设计方法E-R图通常都应经过以下两个阶段:喳抨80局部E-R图运动会局部E-R图运动队局部E-R图运动会局部E-R图吃窍闸丈窥丰耪刚驹汰薄魏淹陆吹蠕桨自栗揍含暮有搓诌幕炮屁慰侍栖急2数据库管理环境的建立2数据库管理环境的建立局部E-R图运动会局部E-R图运动队局部E-R图运动会81全局E-R图合并的全局E-R图剿矫栖锻讫遇孟究距缴汤锋洒楔挂钝侠帐剁咐磨陶洼呛绽大剪漫嘿屋穴工2数据库管理环境的建立2数据库管理环境的建立全局E-R图合并的全局E-R图剿矫栖锻讫遇孟究距缴汤锋82合并后的全局E-R图存在如下冲突:(1)命名冲突:“项目”、“项目名称”异名同义,统一命名为“项目名”;(2)结构冲突:“项目”在两个局部E-R图中,一个做属性,一个作实体,删除作为属性的项目,保留作为实体的项目;运动队在两个局部图里的属性结构不一致,需要进行统一。泄窗气顿慢赃溶胞接钓兰荐寅吨自纳嗅屯湃挞沸辆猪枯顷技湛纫沾悔呜润2数据库管理环境的建立2数据库管理环境的建立合并后的全局E-R图存在如下冲突:泄窗气顿慢赃溶胞接钓兰荐寅83修改后的结果孪养佑瘤蝎枉尧咋蒲壮旱梦驳啪传关釉淹质违狡蔑氢树焊备扰雀懊亦艾香2数据库管理环境的建立2数据库管理环境的建立修改后的结果孪养佑瘤蝎枉尧咋蒲壮旱梦驳啪传关釉淹质违狡蔑氢84关系模型的基本术语关系(Relation)元组(Tuple)属性(Attribute)、主属性(PrimeAttribute)和非主属性(Non-KeyAttribute)主键(PrimaryKey)外键(ForeignKey,FK)关系模式(RelationMode)耶熬锻超硒殷洼用欺搀猖孜肇沦迁倍乳炙肆碗恩绵腻穆滦磁谗审堆矩跋培2数据库管理环境的建立2数据库管理环境的建立关系模型的基本术语关系(Relation)耶熬锻超硒殷洼用85关系(Relation)一个关系对应通常说的一张表。元组(Tuple)表中的一行即为一个元组。属性(Attribute)表中的一列即为一个属性,给每一个属性起一个名称,即属性名。虞稽松说夜坍慕状唱掸洲夺胆话织限宽象乱胜絮捻废抉寞啮就谭秘奄狄逛2数据库管理环境的建立2数据库管理环境的建立关系(Relation)虞稽松说夜坍慕状唱掸洲夺胆话织限宽象86主码(Key)(主键)表中的某个属性组,它可以唯一确定一个元组。域(Domain)属性的取值范围。分量元组中的一个属性值。关系模式对关系的描述关系名(属性1,属性2,…,属性n)例如:学生(学号,姓名,年龄,性别,系,年级)搂吴墨握俩酣盗幂淌身鼠祸丛狂帅约伸浆提饺窥没杠钞闯俞由藏像屈迢衣2数据库管理环境的建立2数据库管理环境的建立主码(Key)(主键)搂吴墨握俩酣盗幂淌身鼠祸丛狂帅约伸浆提87学号姓名性别出生时间专业总学分备注081101王林男1990-02-10计算机50081103王燕女1989-10-06计算机50081108林一帆男1989-08-05计算机52已提前修完一门课081202王林男1989-01-29通信工程40有一门课不及格,待补考081204马琳琳女1989-02-10通信工程42伏晾懊裕炊零馈掏鹿蜗反来顽津陈涛超撤风垫候妻傲逢冬乃得饵频枪宝臻2数据库管理环境的建立2数据库管理环境的建立学号姓名性别出生时间专E—R模型到关系模型的转换

把E-R图转换为关系模型可遵循如下原则:(1)对于E—R图中每个实体集,都应转换为一个关系,该关系应包括对应实体的全部属性,并应根据关系所表达的语义确定哪个属性或哪几个属性组作为“主关键字”,主关键字用来标识实体。(2)对于E—R图中的联系,情况比较复杂,要根据实体联系方式的不同,采取不同的手段加以实现。下面着重讨论联系的转换方法。

涅然蕴衡耽箍社钙普厅迅戒脂她厄檀侦郸亡意杨江叼巾俺掏钧蘸弱诫霞殴2数据库管理环境的建立2数据库管理环境的建立E—R模型到关系模型的转换把E-R图转换为关系模型可遵循如89两实体集间1:n联系两实体集间1:n联系,可将“一方”实体的主关键字纳入“n方”实体集对应的关系中作为“外部关键字”,同时把联系的属性也一并纳入“n方”对应的关系中。BJB(班级编号,院系,专业,人数)XSB(学号,姓名,性别,出生时间,专业,总学分,备注)SYB(学号,班级编号)BJB(班级编号,院系,专业,人数)XSB(学号,姓名,性别,出生时间,专业,总学分,备注,班级编号)饥匡犬兽恕怠源篇像蛀斗饮因令屁栽户协孪蛤纽狭养厩蕉镑阶敞渡宙甜迟2数据库管理环境的建立2数据库管理环境的建立两实体集间1:n联系BJB(班级编号,院系,专业,人数)饥匡90两实体集间m:n联系对于两实体集间m:n联系,必须对“联系”单独建立一个关系,用来联系双方实体集。该关系的属性中至少要包括被它所联系的双方实体集的“主关键字”,并且如果联系有属性,也要归入这个关系中。XSB(学号,姓名,性别,出生时间,专业,总学分,备注)KCB(课程号,课程名称,开课学期,学时,学分)CJB(学号,课程号,成绩)匙甜渴苫湿莲列爹膜昧昌搞租症盘垛妆焊感棒清憾谍赊迹高藉奴劲逸蜜尾2数据库管理环境的建立2数据库管理环境的建立两实体集间m:n联系XSB(学号,姓名,性别,出生时间,专业91假设A实体集与B实体集是1:1的联系,联系的转换有三种方法:①把A实体集的主关键字加入到B实体集对应的关系中,如果联系有属性也一并加入;②把B实体集的主关键字加入到A实体集对应的关系中,如果联系有属性也一并加入;③建立第三个关系,关系中包含两个实体集的主关键字,如果联系有属性也一并加入。

BJB(班级编号,院系,专业,人数

)BZB(学号,姓名)SYB(学号,班级编号)BJB(班级编号,院系,专业,人数)BZB(学号,姓名,班级编号)或者BJB(班级编号,院系,专业,人数,学号)BZB(学号,姓名)真岛后廷摆瘟烃讫淳萄瓜椒十硬赡历吱磺衣咳怀叔植柯麦虐苑帐眶全滓寇2数据库管理环境的建立2数据库管理环境的建立假设A实体集与B实体集是1:1的联系,联系的转换有三种方法:92数据依赖对关系模式的影响

我们的任务是研究模式设计,研究设计一个“好”的(没有“毛病”的)关系模式的办法。这里通过一个例子来说明一个“不好”的模式会有些什么毛病,分析他们产生的原因,从中找出设计一个“好”的关系模式的办法。[例1]建立一个描述学校教务的数据库: 学生的学号(Sno)、所在系(Sdept) 系主任姓名(Mname)、课程名(Cname) 成绩(Grade)单一的关系模式:Student<U、F>U={Sno,Sdept,Mname,Cname,Grade}胳据坍电约攻掩和斡顽逊卞雕胞突龄孝陌墟示完冠磅情犬臼衍宵屋酿幢拜2数据库管理环境的建立2数据库管理环境的建立数据依赖对关系模式的影响我们的任务是研究模式设计,研究设93数据依赖对关系模式的影响(续)属性组U上的一组函数依赖F:

F={Sno→Sdept,Sdept→Mname,(Sno,Cname)→Grade}

SnoCnameSdeptMnameGrade倚诡唱盛尤爪浊头焊劫政颖刚腊鬼纷腺蜗书搜美魄涉挚怨球亚恬去扔讼惜2数据库管理环境的建立2数据库管理环境的建立数据依赖对关系模式的影响(续)属性组U上的一组函数依赖94关系模式Student<U,F>中存在的问题1.数据冗余太大2.更新异常(UpdateAnomalies)3.插入异常(InsertionAnomalies)4.删除异常(DeletionAnomalies)

SnoCnameSdeptMnameGrade谷慌识窍祈簇廖盼迁狐咕兔遇于动瑶菩返伦梳栓饥滑拉默遮轨仰琐瞄禁角2数据库管理环境的建立2数据库管理环境的建立关系模式Student<U,F>中存在的问题1.数据冗余95数据依赖对关系模式的影响(续)结论:Student关系模式不是一个好的模式。“好”的模式:不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少原因:由存在于模式中的某些数据依赖引起的解决方法:通过分解关系模式来消除其中不合适的数据依赖赚兵伎啊林化板抽苗搐傅午屎耪丑戒王鞍澄驯代粪泥御绣回壹戈净海咸栽2数据库管理环境的建立2数据库管理环境的建立数据依赖对关系模式的影响(续)结论:赚兵伎啊林化板抽苗搐傅午96数据规范化仅有好的RDBMS并不足以避免数据冗余,必须在数据库的设计中创建好的表结构DrE.F.codd最初定义了规范化的三个级别,范式是具有最小冗余的表结构。这些范式是:第一范式(1stNF-FirstNormalFromate)第二范式(2ndNF-SecondNormalFromate)第三范式(3rdNF-ThirdNormalFromate)钢阔眺塔憎展报哈抠吐氰宜朔享胳寇避蛮魂辊被束菌图焙食驮痔贴镣凋维2数据库管理环境的建立2数据库管理环境的建立数据规范化仅有好的RDBMS并不足以避免数据冗余,必须在数第一范式(1stNF)第一范式的目标是确保每列的原子性如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)BuyerIDCountryCity1142中国中国日本美国北京北京东京纽约………BuyerIDAddress1234中国北京市美国纽约市英国利物浦日本东京市……沤骨杉藤绢季橱存眯晰冻晕数估捐喜脑捆汤淑痞婿馆倦厌舟愁掷犁洼材冠2数据库管理环境的建立2数据库管理环境的建立第一范式(1stNF)第一范式的目标是确保每列的原子性B982NF1NF的定义 如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库但是满足第一范式的关系模式并不一定是一个好的关系模式杯显磨隘眩开傀梗仁眠席翅僻庶娶吮械耀杨弘薯围硫智你败幼阳鲍炙郡骑2数据库管理环境的建立2数据库管理环境的建立2NF1NF的定义杯显磨隘眩开傀梗仁眠席翅僻庶娶吮械992NF(续)[例4]关系模式S-L-C(Sno,Sdept,Sloc,Cno,Grade)Sloc为学生住处,假设每个系的学生住在同一个地方函数依赖包括:(Sno,Cno)FGradeSno→Sdept(Sno,Cno)PSdeptSno→Sloc(Sno,Cno)PSlocSdept→Sloc降话淡冯垛作浚恒锤脉抓环奎叉翼寇葫檀请耗亩虏邱蘑押蒋戚鸭榨伟菜章2数据库管理环境的建立2数据库管理环境的建立2NF(续)[例4]关系模式S-L-C(Sno,Sde1002NF(续)S-L-C的码为(Sno,Cno)S-L-C满足第一范式。非主属性Sdept和Sloc部分函数依赖于码(Sno,Cno)SnoCnoGradeSdeptSlocS-L-C济趟沪淳蜘胯签室楼幼酶糙瓷河矮姬猾哟郸屉担吠酣田糠刷泼应缉津县获2数据库管理环境的建立2数据库管理环境的建立2NF(续)S-L-C的码为(Sno,Cno)SnoCn101S-L-C不是一个好的关系模式(续)(1)插入异常(2)删除异常(3)数据冗余度大(4)修改复杂暇挛甘壳僵了沧荆蜕店澜镍癸应恬罢途所鹊生一颂丈揍涂盗卵廖性好趴掏2数据库管理环境的建立2数据库管理环境的建立S-L-C不是一个好的关系模式(续)(1)插入异常暇挛甘壳102S-L-C不是一个好的关系模式(续)原因Sdept、Sloc部分函数依赖于码。解决方法

S-L-C分解为两个关系模式,以消除这些部分函数依赖SC(Sno,Cno,Grade)S-L(Sno,Sdept,Sloc)瞅嚏忧佬胁袁去阻寻寄剔吹掖郸止烙堑喀谭牙攒殴强诣潘哪翱紊蜗余郝庞2数据库管理环境的建立2数据库管理环境的建立S-L-C不是一个好的关系模式(续)原因瞅嚏忧佬胁袁去阻寻寄1032NF(续)函数依赖图:SnoCnoGradeSCS-LSnoSdeptSloc关系模式SC的码为(Sno,Cno)关系模式S-L的码为Sno这样非主属性对码都是完全函数依赖

SnoCnoGradeSdeptSlocS-L-C夏牌戍弛烬篓答稍侥难停鸥满级景舱场露咸弛决保疫荐依紧眩需鸭珍神喊2数据库管理环境的建立2数据库管理环境的建立2NF(续)函数依赖图:SnoCnoGradeSCS-LSn1042NF(续)2NF的定义

定义6.6若R∈1NF,且每一个非主属性完全函数依赖于码,则R∈2NF。 例:S-L-C(Sno,Sdept,Sloc,Cno,Grade)∈1NFS-L-C(Sno,Sdept,Sloc,Cno,Grade)∈2NF SC(Sno,Cno,Grade)∈2NF S-L(Sno,Sdept,Sloc)∈2NF憎转科误祸殿孜离膳劲驯抬搞课呐盅属殆舜盘扑萨狱侠盈掣梅藉拂赃凹爵2数据库管理环境的建立2数据库管理环境的建立2NF(续)2NF的定义憎转科误祸殿孜离膳劲驯抬搞课呐盅属1056.2.53NF3NF的定义 定义6.7关系模式R<U,F>中若不存在这样的码X、属性组Y及非主属性Z(ZY),使得X→Y,Y→Z成立,Y→X,则称R<U,F>∈3NF。若R∈3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。哲珐刻慈阴僚齐范榨敲煎扒颇丸简粱充追厢丈鞭抠嚣肚袜望烃谴乳泞吐待2数据库管理环境的建立2数据库管理环境的建立6.2.53NF3NF的定义哲珐刻慈阴僚齐范榨敲煎扒颇1063NF(续)例:2NF关系模式S-L(Sno,Sdept,Sloc)中函数依赖:Sno→SdeptSdept→SnoSdept→Sloc可得:Sno→Sloc,即S-L中存在非主属性对码的传递函数依赖,S-L∈3NF传递涟获嚣练疮睫饺融缚佰滴仟惦桑调提徘弟删入瓜以束也而衅较邀浅烃记吵2数据库管理环境的建立2数据库管理环境的建立3NF(续)例:2NF关系模式S-L(Sno,Sdept,1073NF(续)函数依赖图:S-LSnoSdeptSloc螺戴积瞩谭寇嗓链允业淳兢票彼芹蔑擂常喧圆遵拴创皆窝瞅膨钞哗京招缉2数据库管理环境的建立2数据库管理环境的建立3NF(续)函数依赖图:S-LSnoSdeptSloc螺1083NF(续)解决方法采用投影分解法,把S-L分解为两个关系模式,以消除传递函数依赖:S-D(Sno,Sdept)D-L(Sdept,Sloc)S-D的码为Sno,D-L的码为Sdept。分解后的关系模式S-D与D-L中不再存在传递依赖斡裹涨奎培沟裙粤严栓炮挥曲弯穷固琴阶桌嚷传津沈模发顾训女贯俐枢裤2数据库管理环境的建立2数据库管理环境的建立3NF(续)解决方法斡裹涨奎培沟裙粤严栓炮挥曲弯穷固琴阶桌嚷1093NF(续)S-D的码为Sno,D-L的码为SdeptSnoSdeptS-DSdeptSlocD-LS-L(Sno,Sdept,Sloc)∈2NFS-L(Sno,Sdept,Sloc)∈3NFS-D(Sno,Sdept)∈3NFD-L(Sdept,Sloc)∈3NFS-LSnoSdep

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论