E―R图的精细设计_第1页
E―R图的精细设计_第2页
E―R图的精细设计_第3页
E―R图的精细设计_第4页
E―R图的精细设计_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、E R图的精细设计摘要:E-R图设计是数据库设计的关键,目前诸多流 行的数据库原理教材,对 E-R图设计部分的讨论均显得不够 精细。针对这一现状,文章通过分析不同应用环境下实体之 间的联系,提出E-R图的精细设计方案,说明 E-R图的正确 设计方法。关键词:数据库设计;E-R图;实体;联系0.引言数据库原理是计算机相关专业的一门专业主干课,目的是使学生掌握数据库的基本概念、基本理论和基本操作方法, 理解数据库作为目前最有效的数据管理手段,在信息系统中 的基础地位和重要作用,学会用数据库对大量数据进行有效 的组织、存储和管理。因此,针对一个具体的应用环境,设 计一个结构良好的数据库就成为该门课程

2、的教学重点之一。数据库设计人员设计的数据库结构能否真正符合应用环境和普通用户的要求,需要由普通用户来进行评判,这就 要求在设计数据库的逻辑结构和物理结构之前,先设计一个 普通用户也能够理解的、更加抽象的概念结构,通过概念结 构使普通用户能够积极地参与到数据库设计中来,以保证整 个数据库系统的最终成功运行。因此,概念结构设计是数据库设计的关键,最常用来描述概念结构的工具就是E-R 图。然而,目前诸多流行的数据库原理教材对E-R图设计部分的讨论均不够精细,实际教学也大都跟随教材浮于表面, 从而使学生难以设计正确反映应用环境实际语义的E-R图,造成随后转换得到的关系模式码不正确、数据冗余度大、规 范

3、化程度低等问题。1.E-R图的设计E-R图设计的正确与否取决于数据库设计人员能否真正把握应用环境的业务流程以及在该业务流程中所涉及的各 个客观对象和他们之间发生的活动,这需要作准确深入的用 户需求分析。 这些客观对象如果需要记录的话, 就抽象为 E-R 图中的实体(描述实体的众多相关数据就抽象为实体的属性, 将具有相同属性的众多实体抽象为实体型) o 它们之间发生 的活动如果也需要记录的话,就抽象为E-R图中的联系,这是E-R图设计的重点。以高校学生选课系统为例,假设学校只有一种类型的学 生,每名学生有唯一的一个学号,还有姓名、性别、年龄和 班级信息;学校开设了多门课程,每门课程有唯一的一个课

4、 程号,还有课程名、学分、先行课和课程简介信息。由于一 门课程同时可以由多个教师讲授,因此,在上一学期末进行 选课的时候,每名学生可以根据主讲教师(有唯一的教师编 号)的姓名、性别、年龄和职称信息,有选择地选修由某些 教师讲授的某些课程。每个教师同时可以讲授多门课程,每 门课程可以供多名学生选修,如果由某个教师讲授的某门课 程没有学生选修,则取消由这个教师讲授的这门课程。主讲 教师会在学期末将自己所教学生的所有课程成绩输入到数 据库中,以供学生在网上进行查询。首先,我们根据用户需求,分析潜在的实体。实体通常 是需求文档中的中心名词,主要活动都是围绕它们开展的。 显然,该系统存在学生、课程和教师

5、这 3 类客观对象,每一 类客观对象都有很多数据需要记录,这就构成了该系统需要 记录的第一部分主要数据;此外,该系统中的主要活动一一 课程的选修与讲授以及成绩的输入与查询,都是围绕这 3 类 客观对象开展的。因此,这 3类客观对象就抽象为 E-R图中 的3个实体型,描述这 3个实体型的E-R图如图1所示(带 有下划线的属性为码) 。其次,根据用户需求,确定实体之间的联系。实体之间 的联系通常是需求文档中的中心动词,表示实体之间发生的 活动或隶属关系。在该系统中,这 3个实体型之间发生的主 要活动包括学生选修教师的课程(或教师给学生讲授课程) 、 教师输入成绩和学生查询成绩。由于一名学生可以有选

6、择地 选修由不同教师讲授的不同课程,一个教师可以给不同学生 讲授不同课程,一门课程可以由不同教师给不同学生讲授。因此,选修(或讲授)活动涉及这 3 个实体型,是这 3 个实 体型之间的一个多对多联系(在这种情况下,选修和讲授是 同一个联系)。将该活动抽象为 E-R图中的一个联系,是因为 系统需要记录这样的活动,即哪名学生选修了哪个教师讲授 的哪门课程,以及由此活动产生的数据一一成绩(抽象为该 联系的一个属性) ,这就构成了该系统需要记录的另外一部 分主要数据。该系统还有两个活动:教师输入成绩和学生查 询成绩,由于它们都只是对成绩属性的数据操作,系统并不 需要对这样的数据操作也进行记录,因此,它

7、们并不抽象为 E-R图中的联系。该E-R图如图2所示。很多教材都将图 2 中的选修联系看成是学生和课程这 2 个实体型之间的一个多对多联系(如图 3所示) ,但这只有 在学生只管选课而无需考虑主讲教师的情况下是正确的。在 这种情况下,为了确定成绩最终由哪个主讲教师向数据库中 输入(在图 2 所示的情况下,这是很直接的) ,一个教师只 能被指定为某一个或几个班级讲授课程,如图 4 所示,这样 才可以根据学生所在的班级及其选修的课程来综合确定哪 个教师是其主讲教师,负责为其输人成绩。因此,E-R图的设计应该具体情况具体分析,要根据应用环境的业务流程有 针对性地进行设计。2.E-R图的精细设计图 2

8、 和图 4 还存在一定的问题。虽然学生(在图 4 中为 班级)、课程和教师之间是多对多联系,但一名学生(在图 4 中为班级)选修了一门课程,只会有一个主讲教师,这在图2 和图 4 中是反映不出来的。此外,根据E-R图向关系模型的转换原则一一 “3个或3 个以上实体间的一个多元联系可以转换成一个关系模式,各 实体的码组成关系的码或关系码的一部分” ,图 2 中的选修 联系和图 4 中的讲授联系分别转换为:选修(学号,课程号,教师编号,成绩)和讲授(班号,课程号,教师编号) (班号为班级实体的 码)。然而, 根据上述语义, 存在函数依赖 “(学号, 课程号) -教师编号”和“ (班号,课程号) -

9、教师编号”,因此,这 2 个关系模式的码并不正确,应改为:选修(学号,课程号,教师编号,成绩)和 讲授(班号,课程号,教师编号) 。 然而,这与转换原则相悖。为解决这个问题,我们对以上 E-R图进行更加精细的设 计,引入教学班实体型,选修同一个教师、同一门课程的所 有学生组成一个教学班(这也是很多高校的实际做法) 。一 名学生参加了一个教学班,就意味着选修了某个教师讲授的 某门课程,因此,教师、课程和学生之间是通过教学班联系 起来的(如图 5 所示)。再举一个例子。一般的销售系统都存在顾客浏览和订购 商品这样的主要活动,其中,顾客浏览商品只能算是一个数 据操作,顾客订购商品需要系统记录相应的数

10、据,包括哪个 顾客订购了哪些商品及其订购数量、 订购时间、 收货地址等, 因此需要抽象为 E-R图中的一个联系,如图 6所示。然而,图 6 还存在一定的问题,一个顾客一次订购了多 种商品,它们的订购时间和收货地址是完全相同的,其后果 就是由图 6 转换得到的关系模式“订购(顾客编号、商品编 号、订购数量、订购时间、收货地址) ”(顾客编号和商品编 号分别为顾客和商品这 2 个实体型的码)存在大量的数据冗 余。事实上,顾客订购商品是通过订单体现的,订购时间和 收货地址只是订单实体型的 2个属性,因此,图 6应修正为 图 7 。现在很多销售系统都会进行打折,以实现提高顾客忠诚 度和促销商品的双重目

11、的,为此,E-R图中需要增加一个折扣规则实体型,以存放这些打折信息,但不同系统进行打折 的方法是不同的,相应的 E-R图自然也要有所区别。有的系统会根据顾客的等级进行打折,而不考虑该顾客 购买的是哪些商品,这样的系统主要为提高顾客忠诚度,这 种情况下的E-R图就应该如图8所示。有的系统只是对商品进行打折,而不考虑是哪些顾客购 买了该商品, 这样的系统主要为促销商品, 这种情况下的 E-R 图就应该如图 9 所示。然而, 在实际应用中, 如果系统足够复杂, 为了简化 E-R 图,上述的参照联系也可以不用画出来。3.结语针对目前流行的数据库原理教材对E-R图设计部分讨论不够精细,从而使学生难以准确掌握E.R图设计的问题,我们给出了一些E-R图精细设计的案例,从中可以理解E-R图

温馨提示

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

评论

0/150

提交评论