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

下载本文档

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

文档简介

1、项目二项目二数据模型的规划与设计 项目知识要点单词学习1Entity:实体 2Characteristic:特征3Attribute:属性 4Relationship:联系5Primary Key:主键 6Foreign Key:外键7Domain:域 8Tuple:元组9Relation:关系 10Normal Form:范式本项目目标了解设计数据库的步骤掌握如何绘制数据库的E-R图理解数据库的规范化三大范式概念模型的基本元素 实体(Entity) 实体的特征(Entity Characteristic) 实体集(Entity Set)联系(Relationship) 属性(Attribut

2、e) 主码(Primary Key)和候选码(Candidate Key) 域(Domain) 为什么需要设计数据库修建茅屋需要设计吗?修建茅屋需要设计吗?修建大厦需要设计吗?修建大厦需要设计吗?结论:当数据库比较复杂时我们需要设计数据库结论:当数据库比较复杂时我们需要设计数据库 数据库设计就是将数据库中的数据对象以及这些数据库设计就是将数据库中的数据对象以及这些数据对象之间关系进行规划和结构化的过程数据对象之间关系进行规划和结构化的过程为什么需要设计数据库良好的数据库设计节省数据的存储空间能够保证数据的完整性方便进行数据库应用系统的开发糟糕的数据库设计:糟糕的数据库设计:数据冗余、存储空间浪

3、费数据冗余、存储空间浪费内存空间浪费内存空间浪费数据更新和插入的异常数据更新和插入的异常软件项目开发周期需求分析阶段:分析客户的业务和数据处理需求;概要设计阶段:设计数据库的E-R模型图,确认需求信息的正确和完整;详细设计阶段:将E-R图转换为多张表,进行逻辑设计,并应用数据库设计的三大范式进行审核;代码编写阶段:选择具体数据库进行物理实现,并编写 代码实现前端应用;软件测试阶段:安装部署:现实世界现实世界建模建模信息世界信息世界模型转换模型转换 规范化规范化数据库世界数据库世界设计数据库的步骤收集信息: 与该系统有关人员进行交流、坐谈,充分理解数据库需要完成的任务标识对象(实体Entity)

4、 标识数据库要管理的关键对象或实体 标识每个实体的属性(Attribute)标识对象之间的关系(Relationship)ER模型 三个世界 概念模型:把现实世界转换为信息世界的模型,E-R模型实施模型:把信息世界转化为数据世界使用的模型,关系模型事物类事物性质实体集实体属性文件记录数据项现实世界信息世界数据世界E-R模型的组成要素及表示方法 1E-R图的组成要素及其画法实体名联系名属性名实体表示属性表示联系表示绘制E-R图映射基数一对一一对一X X X X Y Y Y Y X X X X Y Y Y Y 一对多一对多X X X X Y Y Y 多对一多对一X X X X Y Y Y Y 多对

5、多多对多 M N 1 NE-R模型的组成要素及表示方法 2实体间不同联系情况的E-R图表示法联系分为:一对一(1:1)、一对多(1:n)、多对多(m:n)例:两个实体集之间的一对一的联系的绘制方法。假设某学院有若干个系,每个系只有一个主任。则 主任和系之间是一对一的关系。 主任和系的属性分别如下: 主任编号,姓名,年龄,学历; 系系编号,系名 主任和系之间是一个管理关系 解:描述主任和系之间的E-R图可如下图: 1主任系管理1姓名年龄学历编号系编号系名任职时间例:两个实体集之间的一对多的联系的绘制方法。 假设在某仓库管理系统中,有两个实体集:仓库和商品。仓库用来存放商品,且规定一类商品只能存放

6、在一个仓库中,一个仓库可以存放多件商品。仓库和商品之间是一对多的联系。仓库和商品的属性分别如下: 仓库仓库号,地点,面积联单 商品商品号,商品名,价格 在存放联系中要反映出存放商品的数量。 解:描述仓库和商品之间的E-R图可如下图所示 1仓库商品存放n地点面积仓库号商品号价格数量商品名两个实体集之间的多对多的联系的绘制方法。 假设在某教务管理系统中,一个教师可以上多门课,一门课也可以由多个老师去上。教师和课程之间是多对多的联系。教师和课程可用以下属性来描述: 教师教师号,教师名,职称 课程课程号,课程名,班级 在“讲授”联系中应能反映出教师的授课质量。 解:描述教师和课程之间的E-R图可如下图

7、所示。 m教师课程讲授n教师名职称教师号课程号班级质量课程名ER图的设计方法 E-R图通常都应经过以下两个阶段: (1)针对每一用户画出该用户信息的局部ER图,确定该用户视图的实体、属性和联系。需注意的是:能作为属性的就不要作为实体,这有利于ER图的简化。 (2)综合局部ER图,生成总体ER图。在综合过程中,同名实体只能出现一次,还要去掉不必要的联系,以便消除冗余。一般来说,从总体ER图必须能导出原来的所有局部视图,包括实体、属性和联系。 例:某田径运动会组委会需要一套运动会管理系统,现提出如下需求:(1)运动队方面运动队:队编号、队名、教练姓名运动员:编号、姓名、性别、项目其中,一个运动队有

8、多个队员,一个队员仅属于一个运动队,一个队一般有一个教练,一个队员可参加多个项目(2)运动会方面运动队:队编号、队名、教练姓名项目:项目编号,项目名、参加运动队编号、场地 其中,一个项目可由多个队参加,一个运动队可参加多个项目,一个项目一个比赛场地。现要求分别设计运动队方面和运动会方面的两个局部E-R图。 局部E-R图 运动会局部E-R图 运动队局部运动队局部E-R图图 运动会局部运动会局部E-R图图 全局E-R图 合并的全局合并的全局E-R图图 合并后的全局E-R图存在如下冲突:(1)命名冲突:“项目”、“项目名称”异名同义,统一命名为“项目名”;(2)结构冲突:“项目”在两个局部E-R图中

9、,一个做属性,一个作实体,删除作为属性的项目,保留作为实体的项目;运动队在两个局部图里的属性结构不一致,需要进行统一。修改后的结果修改后的结果 关系模型的基本术语 关系(Relation)元组(Tuple) 属性(Attribute)、主属性(Prime Attribute)和非主属性(Non-Key Attribute) 主键(Primary Key) 外键(Foreign Key,FK) 关系模式(Relation Mode) 关系(Relation)一个关系对应通常说的一张表。元组(Tuple)表中的一行即为一个元组。属性(Attribute)表中的一列即为一个属性,给每一个属性起一个名

10、称,即属性名。主码(Key)(主键)表中的某个属性组,它可以唯一确定一个元表中的某个属性组,它可以唯一确定一个元组。组。域(Domain)属性的取值范围。属性的取值范围。分量元组中的一个属性值。元组中的一个属性值。关系模式对关系的描述对关系的描述关系名(属性关系名(属性1 1,属性,属性2 2,属性,属性n n)例如:学生(学号,姓名,年龄,性别,系,例如:学生(学号,姓名,年龄,性别,系,年级)年级)学学 号号姓姓 名名性性 别别出出 生生 时时 间间专专 业业总总 学学 分分备备 注注081101王林王林男男1990-02-10计算机计算机50081103王燕王燕女女1989-10-06计

11、算机计算机50081108林一帆林一帆男男1989-08-05计算机计算机52已提前修完一门课已提前修完一门课081202王林王林男男1989-01-29通信工程通信工程40有一门课不及格,待补考有一门课不及格,待补考081204马琳琳马琳琳女女1989-02-10通信工程通信工程42ER模型到关系模型的转换 把E-R图转换为关系模型可遵循如下原则 : (1)对于ER图中每个实体集,都应转换为一个关系,该关系应包括对应实体的全部属性,并应根据关系所表达的语义确定哪个属性或哪几个属性组作为“主关键字”,主关键字用来标识实体。 (2)对于ER图中的联系,情况比较复杂,要根据实体联系方式的不同,采取

12、不同的手段加以实现。下面着重讨论联系的转换方法。 两实体集间1:n联系 两实体集间1:n联系,可将“一方”实体的主关键字纳入“n方”实体集对应的关系中作为“外部关键字”,同时把联系的属性也一并纳入“n方”对应的关系中。BJB(班级编号,院系,专业,人数)XSB (学号,姓名,性别,出生时间,专业,总学分,备注)SYB (学号,班级编号)BJB(班级编号,院系,专业,人数)XSB (学号,姓名,性别,出生时间,专业,总学分,备注,班级编号)两实体集间m:n联系 对于两实体集间m:n联系,必须对“联系”单独建立一个关系,用来联系双方实体集。该关系的属性中至少要包括被它所联系的双方实体集的“主关键字

13、”,并且如果联系有属性,也要归入这个关系中。XSB(学号,姓名,性别,出生时间,专业,总学分,备注)KCB(课程号,课程名称,开课学期,学时,学分)CJB(学号,课程号,成绩)假设A实体集与B实体集是1:1的联系,联系的转换有三种方法: 把A实体集的主关键字加入到B实体集对应的关系中,如果联系有属性也一并加入; 把B实体集的主关键字加入到A实体集对应的关系中,如果联系有属性也一并加入; 建立第三个关系,关系中包含两个实体集的主关键字,如果联系有属性也一并加入。 BJB(班级编号,院系,专业,人数 )BZB(学号,姓名)SYB(学号,班级编号)BJB(班级编号,院系,专业,人数)BZB(学号,姓

14、名,班级编号)或者BJB(班级编号,院系,专业,人数,学号)BZB(学号,姓名)数据依赖对关系模式的影响我们的任务是研究模式设计,研究设计一个“好”的(没有“毛病”的)关系模式的办法。 这里通过一个例子来说明一个“不好”的模式会有些什么毛病,分析他们产生的原因,从中找出设计一个“好”的关系模式的办法。例1建立一个描述学校教务的数据库:学生的学号(Sno)、所在系(Sdept)系主任姓名(Mname)、课程名(Cname)成绩(Grade)单一的关系模式 : Student U Sno, Sdept, Mname, Cname, Grade 数据依赖对关系模式的影响(续) 属性组U上的一组函数依

15、赖F: F Sno Sdept, Sdept Mname, (Sno, Cname) Grade SnoCnameSdeptMnameGrade关系模式Student中存在的问题1. 数据冗余太大2. 更新异常(Update Anomalies)3. 插入异常(Insertion Anomalies)4. 删除异常(Deletion Anomalies) SnoCnameSdeptMnameGrade数据依赖对关系模式的影响(续)结论:nStudent关系模式不是一个好的模式。n“好”的模式:不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少原因:由存在于模式中的某些数据依赖引起的解决方

16、法:通过分解关系模式来消除其中不合适 的数据依赖数据规范化 仅有好的RDBMS并不足以避免数据冗余,必须在数据库的设计中创建好的表结构Dr E.F.codd 最初定义了规范化的三个级别,范式是具有最小冗余的表结构。这些范式是:第一范式(1st NF First Normal Fromate)第二范式(2nd NFSecond Normal Fromate)第三范式(3rd NF Third Normal Fromate)第一范式 (1st NF)第一范式的目标是确保每列的原子性如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)BuyerID Country C

17、ity1142中国中国中国中国日本日本美国美国北京北京北京北京东京东京纽约纽约BuyerIDAddress1234中国北京市中国北京市 美国纽约市美国纽约市英国利物浦英国利物浦日本东京市日本东京市 2NF1NF的定义如果一个关系模式R的所有属性都是不可分的基本数据项,则R1NF第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库但是满足第一范式的关系模式并不一定是一个好的关系模式2NF(续)例4 关系模式 S-L-C(Sno, Sdept, Sloc, Cno, Grade) Sloc为学生住处,假设每个系的学生住在同一个地方函数依赖包括: (Sno, Cno) F

18、 Grade Sno Sdept (Sno, Cno) P Sdept Sno Sloc (Sno, Cno) P Sloc Sdept Sloc 2NF(续)S-L-C的码为(Sno, Cno)S-L-C满足第一范式。非主属性Sdept和Sloc部分函数依赖于码(Sno, Cno)SnoCnoGradeSdeptSlocS-L-CS-L-C不是一个好的关系模式(续)(1) 插入异常(2) 删除异常(3) 数据冗余度大(4) 修改复杂S-L-C不是一个好的关系模式(续)原因 Sdept、 Sloc部分函数依赖于码。解决方法 S-L-C分解为两个关系模式,以消除这些部分函数依赖 SC(Sno,

19、Cno, Grade) S-L(Sno, Sdept, Sloc)2NF(续)函数依赖图:SnoCnoGradeSCS-LSnoSdeptSlocv关系模式SC的码为(Sno,Cno)v关系模式S-L的码为Snov这样非主属性对码都是完全函数依赖 SnoCnoGradeSdeptSlocS-L-C 2NF(续)2NF的定义 定义6.6 若R1NF,且每一个非主属性完全函数依赖于码,则R2NF。例:S-L-C(Sno, Sdept, Sloc, Cno, Grade) 1NF S-L-C(Sno, Sdept, Sloc, Cno, Grade) 2NF SC(Sno, Cno, Grade)

20、2NF S-L(Sno, Sdept, Sloc) 2NF 6.2.5 3NF3NF的定义定义6.7 关系模式R 中若不存在这样的码X、属性组Y及非主属性Z(Z Y), 使得XY,YZ成立, Y X,则称R 3NF。n若R3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。 3NF(续)例:2NF关系模式S-L(Sno, Sdept, Sloc)中函数依赖: SnoSdept Sdept Sno SdeptSloc 可得: SnoSloc,即S-L中存在非主属性对码的传递函数依 赖,S-L 3NF传递 3NF(续)函数依赖图:S-LSnoSdeptSloc3NF(续)解决方法 采用投影分

21、解法,把S-L分解为两个关系模式,以消除传递函数依赖: S-D(Sno, Sdept) D-L(Sdept,Sloc)S-D的码为Sno, D-L的码为Sdept。n分解后的关系模式S-D与D-L中不再存在传递依赖 3NF(续)S-D的码为Sno, D-L的码为SdeptSnoSdeptS-DSdeptSlocD-Lv S-L(Sno, Sdept, Sloc) 2NF S-L(Sno, Sdept, Sloc) 3NF S-D(Sno,Sdept) 3NFD-L(Sdept, Sloc) 3NFS-LSnoSdeptSloc3NF(续)采用投影分解法将一个2NF的关系分解为多个3NF的关系,

22、可以在一定程度上解决原2NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。 将一个2NF关系分解为多个3NF的关系后,仍然不能完全消除关系模式中的各种异常情况和数据冗余。规范化实例假设某建筑公司要设计一个数据库。公司的业务规则概括说明如下:公司承担多个工程项目,每一项工程有:工程号、工程名称、施工人员等公司有多名职工,每一名职工有:职工号、姓名、性别、职务(工程师、技术员)等公司按照工时和小时工资率支付工资,小时工资率由职工的职务决定(例如,技术员的小时工资率与工程师不同)公司定期制定一个工资报表,如图-1所示规范化实例工程号工程号工程名称工程名称职工号职工号姓名姓名职务职务小

23、时工资率小时工资率工时工时实发工资实发工资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 某公司的工资表某公司的工资表规范化实例工程号工程号工程名称工程名称

24、职工号职工号姓名姓名职务职务小时工资率小时工资率工时工时A1花园大厦花园大厦1001齐光明齐光明工程师工程师6513A1花园大厦花园大厦1002李思岐李思岐技术员技术员6016A1花园大厦花园大厦1001齐光明齐光明工程师工程师6513A1花园大厦花园大厦1003鞠明亮鞠明亮工人工人5517A3临江饭店临江饭店1002李思岐李思岐技术员技术员6018A3临江饭店临江饭店1004葛宇洪葛宇洪技术员技术员6014图图-2 某公司的项目工时表某公司的项目工时表规范化实例表中包含大量的冗余,可能会导致数据异常:更新异常 例如,修改职工号=1001的职务,则必须修改所有职工号=1001的行添加异常 若要增加一个新的职工时,首先必须给这名职工分配一个工程。或者为了添加一名新职工的数据,先给这名职工分配一个虚拟的工程。(因为主关键字不能为空)删除异常 例如,1001号职工要辞职,则必须删

温馨提示

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

评论

0/150

提交评论