版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 数据库设计与ER模型 5.1 数据库设计概述(理解) 5.2 数据库设计的全过程(理解) 5.3 ER模型(掌握) 5.4 ER模型到关系模型的转换(掌握) 5.5 ER模型转换实例分析(实践) 5.6 ER模型的扩充(掌握) 小结1*5.1 数据库设计概述数据库设计 在具备了计算机硬件环境、操作系统、系统软件、数据库系统后,如何使用这个环境表达用户的需求,构造最优的数据库模型,然后据此建立数据库及其应用系统,这个过程称为数据库设计。 我们主要从软件工程的角度剖析数据库设计的全过程。软件工程(Software Engineering)产生背景,主要是在20世纪60年代中后期出现的“软件
2、危机”,主要表现在以下4个方面: (1) 开发过程往往无法控制,常常一再拖延; (2) 缺乏科学的指导原则和管理方法,软件产品质量低劣,达不到规定的要求; (3) 由于产品质量低劣,维护任务十分繁重;2*5.1 数据库设计概述(续1)软件工程产生背景: (4) 软件开发费用急剧上升,常常超出预算,使应用部门与开发部门无法负担。含义:是用工程化方法指导软件开发过程,以提高软件质量和开发效率,降低开发成本。软件工程的重要概念软件生存期(Software Life Cycle) 软件生存期是指从软件的规划、研制、实现、测试、投入运行后的维护,直到它被新的软件所取代而停止使用的整个期间。 软件生存期通
3、常分为6个阶段。数据库工程(Database Engineering)含义:用软件工程方法学分析数据库设计的全过程。3*5.1 数据库设计概述(续2)数据库工程数据库系统生存期(DBS Life Cycle) 数据库应用系统从开始规划、设计、实现、测试、运行中的维护到最后被新的系统取代而停止使用的整个期间,称为数据库系统生存期。 数据库系统生存期一般可分为7个阶段。4*规划阶段需求分析阶段设计阶段程序编制阶段调试阶段 运行维护阶段 软件生存期返回规划阶段需求分析阶段概念设计阶段物理设计阶段数据库实现阶段 运行维护阶段 数据库生存期逻辑设计阶段5*规划阶段需求分析阶段概念设计阶段物理设计阶段数据
4、库实现阶段 运行维护阶段 数据库生存期逻辑设计阶段 常用的概念模型:ER模型。 常用的逻辑模型:层次模型、网状模型、关系模型、对象模型。概念模型信息世界逻辑模型现实世界认识抽象转换存储物理模型机器世界数据库的三级模式现实世界的三级抽象外模式模式内模式6*5.2 数据库设计的全过程 5.2.1 规划阶段 5.2.2 需求分析阶段 5.2.3 概念设计阶段 5.2.4 逻辑设计阶段 5.2.5 物理设计阶段 5.2.6 数据库实现阶段 5.2.7 数据库的运行与维护阶段7*5.2.1 规划阶段当一个企业/公司/单位提出建立数据库应用系统时,规划阶段主要为立项作准备工作,具体分为三个步骤: (1)
5、系统调查 对企业/公司/单位作全面的调查,画出组织结构图,以了解企业/公司/单位的组织机构。 (2) 可行性分析 从技术、经济、效益、法律等诸方面对建立数据库的可行性进行分析;写出可行性分析报告;组织专家讨论其可行性。 (3) 确定数据库系统的总目标和制订项目开发计划。在得到决策部门批准后,就正式进行数据库系统的开发工作。5.2 数据库设计的全过程8*5.2.2 需求分析阶段这一阶段由计算机人员和用户双方共同收集数据库所需要的信息内容和用户对处理的需求,并以需求说明书的形式确定下来,作为后面系统开发的指南和系统验收的依据。需求分析的工作具体分为四个步骤: (1) 分析用户活动,产生业务流程图。
6、 了解用户当前的业务活动和职能,搞清其业务流程。如果一个业务比较复杂,应分解成若干个子业务,使每个业务功能明确、界面清楚,然后画出用户的业务流程图。 (2) 确定系统范围,产生系统范围图。 在和用户充分讨论的基础上,确定计算机所能处理的业务范围,确定哪些业务由人工完成、哪些业务由计算机系统完成。5.2 数据库设计的全过程9*5.2.2 需求分析阶段(续1) (3) 分析用户活动涉及的数据,产生数据流图。 深入分析业务流程图涉及的数据,以数据流图(Data Flow Diagram,简记为DFD)形式表示出数据的流向和对数据进行了哪些处理。 (4) 分析系统数据,产生数据字典。 分析数据流图涉及
7、的数据类型,将各种数据类型的描述信息(称为元数据Metadata)存入数据字典,主要包括系统数据类型和用户自定义数据类型。5.2 数据库设计的全过程10*5.2.3 概念设计阶段概念设计是利用前一阶段获取的业务流程图、数据流图等反映企业/公司/单位需求的相关信息建立信息世界的概念模型(即对现实世界的第一级抽象)。 概念模型是从用户的角度进行建模,与机器世界无关;常用的方法是ER模型,即用ER图表示概念模型。概念设计的主要步骤包括:(1) 设计局部概念模型;(2) 将局部概念模型合并成全局概念模型;(3) 评审。 (1) 设计局部概念模型 从个别用户的需求出发,为每个用户或每一组对数据使用方式相
8、似的用户建立一个相应的局部概念模型。 在建立局部概念模型时,要对需求分析的结果进行细化、补充和修改,如:有的数据项要分为若干子项,有的数据定义要重新核实等。5.2 数据库设计的全过程11*5.2.3 概念设计阶段(续1) (2) 将局部概念模型合并成全局概念模型 合并各局部概念模型即可得到反映所有用户需求的全局概念模型。 在合并过程中,主要处理各局部模型对各种对象定义的不一致问题,包括同名异义、异名同义、同一事物在不同模型中代表不同类型的对象(如:有的代表实体,有的又作为属性)等问题;另外,合并时还需处理冗余问题。 (3) 评审 完成全局模型后,可将其提交评审。评审分为用户评审、DBA与应用开
9、发人员评审两部分。 用户评审的目的是确认全局概念模型是否准确、完整地反映了用户的信息需求。5.2 数据库设计的全过程12*5.2.3 概念设计阶段(续2) (3) 评审 DBA与应用开发人员评审则侧重于全局模型是否完整,各种成分划分是否合理,是否存在不一致性,以及各种文档是否齐全等。 文档应包括局部概念模型描述、全局概念模型描述、修改后的数据清单、业务活动清单等。5.2 数据库设计的全过程13*5.2.4 逻辑设计阶段逻辑设计的目的是把前一阶段设计好的全局概念模型转换为选定的商业数据库系统所支持的逻辑数据模型(即数据库模式和外模式)。例如:转换为关系模型。逻辑设计具体包括五步: (1) 初始模
10、式形成 (2) 子模式设计 (3) 应用程序设计草图 (4) 模式评价 (5) 模式修正5.2 数据库设计的全过程14*5.2 数据库设计的全过程图5.3 逻辑设计流程初始模式形成概念模型子模式设计应用程序设计草图模式评价模式修正进入物理设计阶段返回到前面阶段是 是 否否处理结束模式需要修正15*5.2.4 逻辑设计阶段(续2) (1) 初始模式形成 这一步是形成初始的数据库模式,具体是将ER模型中的实体和联系转换成逻辑数据模型;在转换过程中,实体或联系可能需进行分裂或合并。 ER模型转换成关系模型将在后面5.4节中详细介绍。 (2) 子模式设计 子模式即外模式。子模式设计是设计不同权限、不同
11、级别用户或用户组可以访问的数据库模式子集。 (3) 应用程序设计草图 对每个应用程序应设计出数据存取功能的梗概,提供程序上的逻辑接口。5.2 数据库设计的全过程返回16*5.2.4 逻辑设计阶段(续3) (4) 模式评价 这一步的工作是对数据库模式进行评价。评价方法包括定量分析和性能测量等。 定量分析有两个参数:处理频率和数据容量。处理频率是在数据库运行期间应用程序的使用次数;数据容量是数据库中记录的个数。 性能测量包括逻辑记录的访问数目、一个应用程序单位时间内传输的总字节数,以预测物理数据库的性能。5.2 数据库设计的全过程返回17*5.2.4 逻辑设计阶段(续4) (5) 模式修正 若模式
12、不满足需求分析说明书或概念模型的要求,需对其进行修正。 若模式修正仍不能达到要求,则可能是需求分析或概念模型有问题,应停止模式修正,返回到前面的需求分析阶段或概念设计阶段进行检查。5.2 数据库设计的全过程返回18*对于设计好的逻辑数据模型选取一个最适合应用环境的物理结构的过程,称为物理设计。数据库的物理结构主要指存储记录格式,存储位置安排和存取方法。存储记录格式:包括存储记录的组成、数据项的类型、长度,以及逻辑记录到存储记录的映射。存储位置安排和存取方法:指定主文件存储位置和路径,辅助文件存储位置和路径。物理设计的特点 物理设计完全依赖于给定的数据库产品。对于关系数据库来说,物理设计比较简单
13、。5.2.5 物理设计阶段5.2 数据库设计的全过程19*5.2.6 数据库实现阶段5.2 数据库设计的全过程物理设计完成后就进入数据库实现阶段。数据库实现主要包括:(1) 定义数据库结构;(2) 数据装载;(3) 编制和调试应用程序;(4) 数据库试运行。 (1) 定义数据库结构 使用DBMS提供的数据定义语言(DDL)创建数据库、表、属性列、索引等。 (2) 数据装载 数据装载分为两种情况:对于数据量不大的小型系统,可用人工方式完成数据入库;对于数据量极大的中大型系统,可编制数据输入程序、用计算机辅助方式完成入库。 上述两种入库方式的具体步骤如下:20*5.2.6 数据库实现阶段(续1)5
14、.2 数据库设计的全过程 (2) 数据装载 筛选数据。需要装入数据库的数据通常分布在各个部门的数据文件或原始凭证中,因此首先必须把需要入库的数据筛选出来。 转换数据格式。筛选出来的需要入库的数据,其格式往往不符合数据库要求,需要进行转换。 输入数据。使用人工方式或计算机辅助方式完成数据入库。 检验数据。检查输入的数据是否有误。 综合数据。将检验好的数据进一步综合为满足数据库要求的数据。 (3) 编制和调试应用程序21*5.2.6 数据库实现阶段(续2)5.2 数据库设计的全过程 (3) 编制和调试应用程序 在组织数据入库时,应同时开始编制和调试数据库的应用程序。调试应用程序时由于数据入库尚未完
15、成,可先使用模拟数据。 (4) 数据库试运行 应用程序调试完成,并且已有一小部分数据入库后,就可以开始数据库的试运行。其主要工作包括: 功能测试。即实际运行应用程序,执行对数据库的各种操作,测试应用程序的各种功能。 性能测试。即测试数据库的各项时间、空间性能指标,分析是否符合设计要求。 测试符合要求后,再装载大批量数据入库。22*5.2.7 数据库的运行与维护阶段在数据库试运行符合设计目标后,数据库就进入正式运行阶段。数据库投入运行标志开发任务的基本完成和维护工作的开始。维护工作主要由DBA完成,包括以下内容: (1) 数据库的转储和恢复 这是正式运行阶段最重要的维护工作之一。DBA要定期对数
16、据库文件和日志文件进行备份,以保证一旦发生故障,能尽快利用备份对数据库进行恢复。 (2) 数据库安全性、完整性控制 DBA要根据用户的实际需要授予不同的操作权限。另外,在运行过程中,随着应用环境的变化,安全性要求、完整性约束条件都会发生变化,DBA要根据实际情况不断调整和修正,以满足用户需要。5.2 数据库设计的全过程23*5.2.7 数据库的运行与维护阶段(续1) (3) 数据库性能的监督、分析和改进 DBA可以利用DBMS提供的系统性能监测工具,判断当前系统是否处于最佳运行状态;如果不是,则需要通过调整某些参数改进数据库性能。 (4) 数据库的重组织和重构造 数据库运行一段时间后,由于记录
17、的不断增、删、改,会使数据库的性能下降。 这时,DBA可利用DBMS提供的功能,对数据库进行重组织或部分重组织,如:删除空值元组等;或对数据库的模式和内模式重新构造,如:增加一些关系模式,或改变存储位置等。5.2 数据库设计的全过程24*5.3 ER模型 ER模型是被广泛采用的概念模型表示方法,最初由Peter Chen于1976年提出。 5.3.1 ER模型的基本元素 5.3.2 属性的分类 5.3.3 与联系相关的概念 5.3.4 ER模式的操作 5.3.5 采用ER模型的概念设计阶段25*ER模式的基本元素:实体、联系和属性。实体(Entity):客观存在并可相互区别的事物称为实体。实体
18、类型或实体型(Entity Type):用实体名及其属性集来抽象和刻画同类实体,称为实体型。实体集(Entity Set):同型实体的集合称为实体集。ER模型中提到的实体往往是指实体集。在ER模型中,实体用矩形表示,矩形框内写明实体的名字。建议:实体名在需求分析和概念设计阶段用中文表示,以利于开发人员和用户之间的交流;在逻辑设计阶段,再转成其他表示形式。5.3.1 ER模型的基本元素5.3 ER模型26*联系(Relationship):一个或多个实体之间的关联关系称为联系。在ER模型中,联系用菱形表示,菱形框内写明联系的名字,并用无向边将其与相关实体连接起来,同时在无向边旁标上联系的类型。建
19、议:联系名在需求分析和概念设计阶段用汉语动词表示,如:“选修”、“工作”、“参加”、“入库”等;在逻辑设计阶段,再转成其他表示形式。属性(Attribute):实体所具有的某一特性称为属性。实体标识符(Identifier):唯一识别实体的属性或属性集称为实体标识码。值域(Domain):属性的取值范围称为值域,也称为属性域。5.3.1 ER模型的基本元素(续1)5.3 ER模型27*属性(Attribute)在ER模型中,属性用椭圆表示,椭圆形内写明属性的名字,并用无向边将其与相应的实体连接起来,其中作为实体标识符的属性用下划线标出。建议:属性名在需求分析和概念设计阶段用中文表示;在逻辑设计
20、阶段,再转成其他形式。联系也可以有属性,用于描述联系的特征,如:参加工作时间、入库数量等。5.3.1 ER模型的基本元素(续2)5.3 ER模型28*5.3.2 属性的分类根据属性类别可分为基本属性和复合属性:基本属性(Simple Attribute)是不可再分的属性。如:性别、年龄等。复合属性(Composite Attribute)是可再分解为其他属性的属性。 【例】5.3 ER模型邮政编码省(市)名地 址区 名街 道街道名门牌号码复合属性29*5.3.2 属性的分类(续1)根据属性取值特点又可分为单值属性和多值属性:单值属性(Single-valued Attribute)是只能取一个
21、值的属性。如:年龄是单值属性。多值属性(Multivalued Attribute)是可能取多个值的属性,多值属性用双线椭圆表示。 【例】零件的销售价格是一个多值属性(经销、代销、批发、零售)。 注:多值属性可看作复合属性。5.3 ER模型零件编码零 件零件名供应商规 格进货价格销售价格30*5.3.2 属性的分类(续2)多值属性和复合属性的处理方法(以多值属性说明): (1) 将原来的多值属性用几个单值属性来代替; 【例】 (2) 将原来的多值属性用一个新的实体来代替。 【例】5.3 ER模型零件编码零 件零件名供应商规 格进货价格经销价格代销价格批发价格零售价格零件编码零 件零件名供应商规
22、 格进货价格销售性质价 格销售价格存 在1N31*5.3.2 属性的分类(续3)多值属性和复合属性的处理方法(以多值属性说明): (2) 将原来的多值属性用一个新的实体来代替。 【例】 这个新实体和原来的实体之间是1:N联系;新实体依赖于原实体而存在,称为弱实体。 在ER模型中,弱实体用双线矩阵表示;与弱实体相关的联系,用双线菱形表示。5.3 ER模型零件编码零 件零件名供应商规 格进货价格销售性质价 格销售价格存 在1N32*5.3.2 属性的分类(续4)导出属性(Derived Attribute) 可利用其他属性推导出来的属性称为导出属性。导出属性用虚线椭圆与实体相连。【例】实发工资可从
23、基本工资、奖金、房租等属性推导出来。空值(Null) 当实体在某个属性上没有值、或值不知道、或值无法确定时应使用空值,即空值可能会有不同的含义。5.3 ER模型工 号职 工姓 名基本工资奖 金房 租实发工资33*5.3.2 属性的分类(续5)空值(Null)【例】若一个员工的属性“配偶姓名”为Null,则可能的含义有多种: 若该员工没有结婚,则Null代表没有值; 若该员工已结婚,但配偶姓名还未掌握,则Null代表值不知道; 若无法知道该员工是否结婚,则Null代表值不确定。5.3 ER模型34*5.3.3 与联系相关的概念与联系相关的概念包括:联系的元数、联系的连通词、实体的基数。联系的元数
24、 一个联系涉及到的实体集个数,称为该联系的元数或度数(Degree)。 一个实体集内部的联系称为一元联系;两个实体集之间的联系称为二元联系;三个实体集之间的联系称为三元联系;。联系的连通词 联系的类型称为联系的连通词(Connectivity)。 一元联系和二元联系的连通词有:1:1,1:n,m:n;三元联系的连通词有:1:1:1,1:1:n,1:m:n和m:n:p。5.3 ER模型35*5.3.3 与联系相关的概念(续1)实体的基数 设两个实体集E1和E2,对于E1中的每个实体,与其有联系的E2实体的最小数目min和最大数目max,称为E1的基数,用(min, max)表示。 【例】对于学生
25、课程,规定:每个学生至少选修一门课、最多选修六门课,每个课程最多可以有50人选修、最少可以没人选修。 则学生的基数为(1, 6), 课程的基数为(0, 50)。5.3 ER模型学 生课 程选课M (1, 6)N (0, 50)36*5.3.3 与联系相关的概念(续2)【例】对于教师课程,有: 说明: 一个教师最多可以上三门课,最少可以不上课; 一个课程只能有一个教师上课。5.3 ER模型教 师课 程讲授1 (0, 3)N (1, 1)37*5.3.4 ER模式的操作ER模型的操作包括实体、联系和属性的分裂、合并、增删等操作。【例】实体的分裂。5.3 ER模型教师号姓名出生日期职务工资奖金教 师
26、教师号姓名出生日期教师不变信息职务工资奖金教师号教师变动信息38*5.3.4 ER模式的操作(续1)【例】联系的分裂。5.3 ER模型教师课程担任MN教师课程主讲辅导1MNN39*5.3.5 采用ER模型的概念设计阶段采用ER模型对概念设计阶段的概念模型进行建模时,可分为三个步骤: (1) 首先考虑不同用户的需求,设计各局部ER模型; (2) 将各局部ER模型合并成一个全局ER模型; (3) 最后对全局ER模型进行优化,得到最终的ER模型。5.3 ER模型40*5.3.5 采用ER模型的概念设计阶段(续1)(1) 设计局部ER模型需求分析结果划分各局部ER模型的范围实体定义联系定义属性分配有无
27、还有局部模型待分析每个局部ER模型进入全局ER模型设计例子41*5.3.5 采用ER模型的概念设计阶段(续2)划分各局部ER模型的范围主要有两种方式:依据部门进行划分。 【例】对一个企业,可按销售、生产、技术、服务等不同部门进行划分,分别建立ER模型。 【例】对一个大学,可按各教学院、各机关处等不同二级单位进行划分,分别建立ER模型。依据服务进行划分。 【例】对一个大学,可分为学生情况查询服务(教务处、学生处、教学院等二级单位需要)、教师情况查询服务(人事处、科研处、教学院等二级单位需要)等。5.3 ER模型42*5.3.5 采用ER模型的概念设计阶段(续3)划分各局部ER模型范围的基本原则:
28、范围的划分要自然,便于管理;范围之间的界面要清晰,相互影响要小;范围的大小要适度。太小,则局部模型过多,设计繁琐、合并困难;太大,则容易造成内部结构复杂,不便分析。实体定义:就是确定局部ER模型中每个实体的属性和键。联系定义:就是确定不同实体之间的关联关系。 常用方法:对于局部模型中的任意两个实体,依据需求分析的结果,考察它们之间是否存在联系;若有联系,再进一步确定是1:1、1:n、还是m:n。(即穷举法) 另外,还要注意一个实体内部是否存在联系(一元联系),多个实体之间是否存在联系(多元联系)。5.3 ER模型返回43*5.3.5 采用ER模型的概念设计阶段(续4)属性分配的两个任务:确定属
29、性(确定哪些可以作为属性,哪些不能作为属性) 原则:属性应该是不可再分解的最小语义单位;实体与属性之间的关系只能是1:n;不同实体的属性之间应无直接关联关系。 另外,还应确定联系的属性。 分配属性(确定属性应分配给哪个实体) 原则:当多个实体用到同一属性时,一般把属性分配给那些使用频率最高的实体,或分配给实体值少的实体。5.3 ER模型返回44*5.3 ER模型大学教学管理系统之局部模型1教师管理局部ER模型45*5.3 ER模型大学教学管理系统之局部模型2学生管理局部ER模型46*5.3 ER模型大学教学管理系统之局部模型3课程管理局部ER模型47*5.3.5 采用ER模型的概念设计阶段(续
30、8)(2) 将各局部ER模型合并成一个全局ER模型例子无 得到各局部ER模型确定公共实体类型合并两个局部ER模型检查并消除冲突有有还有冲突吗还有未合并的局部模型吗48*5.3.5 采用ER模型的概念设计阶段(续9)检查并消除冲突 属性冲突 属性值的类型、取值范围、计量单位的冲突等。如:重量单位有的用公斤,有的用克。 结构冲突 同一实体在不同局部ER模型中属性组成和个数不同的冲突,实体之间的联系在不同局部ER模型中呈现不同类型的冲突等。 命名冲突 属性名、实体名、联系名之间的同名异义或异名同义冲突。 说明:上述冲突的解决应由数据库开发人员与用户协商解决。5.3 ER模型返回49*5.3 ER模型
31、大学教学管理系统之全局ER模型50*5.3.5 采用ER模型的概念设计阶段(续11)(3) 最后对全局ER模型进行优化,得到最终的ER模型。 实体的合并 可以将1:1联系的两个实体合并;具有相同键的实体也可考虑合并。 冗余属性的消除 同时出现在多个实体中的同一个非键属性应消除冗余;可以由其他属性导出的属性(即导出属性)也应消除。 冗余联系的消除 利用规范化理论中函数依赖的推理规则消除冗余联系。 5.3 ER模型返回51*5.4 ER模型到关系模型的转换 5.4.1 ER模型转换成关系模式的规则 5.4.2 采用ER方法的逻辑设计步骤52*5.4.1 ER模型转换成关系模式的规则实体的转换规则:
32、将每个实体转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键。一元、二元、三元联系的转换规则二元联系的转换规则: 若实体间联系是1:1,可以在两个实体类型转换成的两个关系模式中任意一个关系模式的属性中加入另一个关系模式的键和联系的属性。 若实体间联系是1:N,则在N端实体类型转换成的关系模式中加入1端实体类型的键和联系的属性。 若实体间联系是M:N,则将联系也转换成关系模式,其属性为两端实体类型的键加上联系自己的属性,而联系关系模式的键为两端实体键的组合。5.4 ER模型到关系模型的转换53*5.4.1 ER模型转换成关系模式的规则(续1)一元、二元、三元联系的转换规
33、则:二元联系的转换规则一元联系的转换规则:同二元联系的转换规则。 三元联系的转换规则: 不管三元联系是哪种类型(1:1:1,1:1:n,1:m:n 和m:n:p),总是将三元联系也转换成关系模式,其属性为三端实体类型的键加上联系自己的属性,而联系关系模式的键为三端实体键的组合。 5.4 ER模型到关系模型的转换54*5.4.1 ER模型转换成关系模式的规则(续2)【例】一元联系的转换例子。 1:1联系:运动员根据得分来排定名次。在名次排列中,排在一个运动员前面的只有一个人。5.4 ER模型到关系模型的转换运动员编号姓名性别名次顺序11 运动员(编号, 姓名, 性别, 名次, 上一名次编号)或
34、运动员(编号, 姓名, 性别, 名次, 下一名次编号)55*5.4.1 ER模型转换成关系模式的规则(续3)【例】一元联系的转换例子。 1:N联系:职工之间的上下级关系。一个职工可以领导多名职工;一个职工只能有一个领导。5.4 ER模型到关系模型的转换职 工工号姓名年龄性别领导1N 职工(工号, 姓名, 年龄 ,性别, 领导工号)56*5.4.1 ER模型转换成关系模式的规则(续4)【例】一元联系的转换例子。 M:N联系:零件之间的组成关系。一个零件可以由多个零件组成;一个零件(作为子零件)也可以包括在多个零件中。5.4 ER模型到关系模型的转换 零件(零件号, 零件名, 规格)零 件零件号规
35、格组成MN零件名数量 组成(零件号, 子零件号, 数量)57*5.4.1 ER模型转换成关系模式的规则(续5)【例】三元联系的转换例子。 项目零件供应商之间的M:N:P联系。 项目(项目编号, 项目名称, 开工日期) 零件(零件号, 零件名, 规格) 供应商(供应商编号, 供应商名称, 供应商地址)项 目项目编号规格供应MN零件名数量项目名称开工日期零 件零件号供应商供应商编号供应商名称供应商地址P供应(项目编号, 零件号, 供应商编号, 数量)58*5.4.2 采用ER方法的逻辑设计步骤5.4 ER模型到关系模型的转换关系模式规范划处理 (1) 确定范式的级别,常用的范式是3NF和BCNF;
36、 (2) 依据确定的范式,对关系模式进行分解。 注:要注意保持无损分解特性和函数依赖特性。模式评价(从用户的角度) 主要是检查规范化后的关系模式集是否完全满足用户的功能要求;是否具有较高的效率。关系模式规范化处理模式评价将ER模型转换成初始关系模式集概念设计阶段 进入物理设计阶段是否模式修正是否需要修正59*5.5 ER模型转换实例分析 5.5.1 库存销售的ER模型及转换 5.5.2 公司车队的ER模型及转换 5.5.3 人事管理的ER模型及转换 5.5.4 旅游管理的ER模型及转换60*实体的属性: 车间(车间号,车间名,主任名) 产品(产品号,产品名,单价) 仓位(仓位号,地址,主任名)
37、 客户(客户号,客户名,联系人,电话,地址,税号,账号) 销售员(销售员号,姓名,性别,学历,业绩)联系的属性: 入库(入库单号,入库量,入库日期,经手人) 存储(核对日期,核对员,存储量) 出库(出库单号,出库量,出库日期,经手人) 订单(订单号,数量,折扣,总价,订单日期) 5.5.1 库存销售的ER模型及转换P仓位销售员MNMPMNPMNN入库出库订单存储车间产品客户61* 订单(订单号,数量,折扣,总价,订单日期,产品号,客户号, 销售员号)5.5.1 库存销售的ER模型及转换(续1)5.5 ER模型转换实例分析关系模式: 车间(车间号,车间名,主任名) 产品(产品号,产品名,单价)
38、仓位(仓位号,地址,主任名) 客户(客户号,客户名,联系人,电话,地址,税号,账号) 销售员(销售员号,姓名,性别,学历,业绩) 入库(入库单号,入库量,入库日期,经手人,车间号,仓位号, 产品号) 存储(仓位号,产品号,核对日期,核对员,存储量) 出库(出库单号,出库量,出库日期,经手人,仓位号,产品号, 客户号)返回62*实体的属性: 部门(部门号,名称,负责人) 车队(车队号,名称,地址) 司机(司机号,姓名,执照号,电话,工资) 车辆(车牌号,车型,颜色,载重) 保险公司(保险公司号,名称,地址) 维修公司(维修公司号,名称,地址) 开销(顺序号,费用类型,费用,日期,经手人)联系的属
39、性:另外四个联系“聘用”、 “拥有”、“报销”、“维修” 没有属性。 调用(出车编号,出车日期,车程,费用,车辆数目) 保险1(投保日期,保险种类,费用) 保险2(投保日期,保险种类,费用)5.5.2 公司车队的ER模型及转换1N1N车队保险公司N1N1N1N报销聘用保险1拥有部门车辆司机保险21调用开销MN维修维修公司63*关系模式: 部门(部门号,名称,负责人) 车队(车队号,名称,地址) 保险公司(保险公司号,名称,地址) 维修公司(维修公司号,名称,地址)5.5 ER模型转换实例分析5.5.2 公司车队的ER模型及转换(续1) 开销(顺序号,费用类型,费用,日期,经手人,车辆号) 司机
40、(司机号,姓名,执照号,电话,工资,车队号,保险公 司号,投保日期,保险种类,费用) 车辆(车牌号,车型,颜色,载重,车队号,维修公司号, 保险公司号,投保日期,保险种类,费用) 调用(出车编号,出车日期,车程,费用,车辆数目,部门 号,车队号)返回64*实体的属性: 职工(工号,姓名,性别,年龄,学历) 部门(部门号,部门名称,职能) 岗位(岗位编号,岗位名称,岗位等级) 技能(技能编号,技能名称,技能等级) 奖惩(序号,奖惩标志,项目,奖惩金额) 培训课程(课程号,课程名,教材,学时) 工资(工号,基本工资,级别工资,养老金,失业金,公积金,纳税)5.5.3 人事管理的ER模型及转换1M1
41、N技能N1NN1NM接受属于选课工资职工部门享有奖惩MM考核培训课程设置聘任岗位N联系的属性: 选课(时间,成绩) 设置(人数) 考核(时间,地点,级别) 接受(奖惩时间) 享有、属于、聘任无属性。 65* 设置(部门号,岗位编号,人数)关系模式: 奖惩(序号,奖惩标志,项目,奖惩金额) 培训课程(课程号,课程名,教材,学时) 技能(技能编号,技能名称,技能等级) 部门(部门号,部门名称,职能) 岗位(岗位编号,岗位名称,岗位等级)5.5 ER模型转换实例分析5.5.3 人事管理的ER模型及转换(续1)返回 考核(工号,技能编号,时间,地点,级别) 选课(工号,课程号,时间,成绩) 工资(工号,基本工资,级别工
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二四人力资源培训与招聘加盟合同正规范本3篇
- 2025年度5G通信网络建设施工合同范本6篇
- 2024蔬菜种植保险采购合同范本2篇
- 2024简单的购房合同范本
- 2025年度彩钢瓦屋顶安全性能评估与整改合同3篇
- 2025年度财务数据保密合规性审查合同范本3篇
- 2025年度离婚案件诉讼策略与执行服务合同3篇
- 二零二五壁画艺术教育合作合同3篇
- 二零二四年度「风力发电设备维修」合同
- 二零二五年版10千伏电力施工合同范本正规范修订版发布6篇
- 浅谈提高中学生历史学习兴趣的策略
- 2023-2024学年物理九年级第一学期期末复习检测模拟试题
- 教师培训课件信息技术与数字素养教育
- 外观专利授权协议书
- 全套消防管理记录本
- 浙大一院之江院区就诊指南
- 离婚协议书电子版下载
- 完整版供应商质量审核检查评分表(供应商审核表)
- 项目日程表模板
- 质量评估报告(光伏)
- 农村个人房屋抵押借款合同
评论
0/150
提交评论