




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库自学札记(2)ER图、对象联系图和类图的特征与比较第一部分:简述ER图,对象联系图和类图的基本概念和特点ER图:ER图是用来表示实体联系模型(Entity Relationship Model)的方式,这个模型可以直接从现实世界中抽象出实体类型和实体间的联系。举个例子来说。下面对上述例子做一个说明,同时给出ER图的约定表示方法。(1) 矩形框,表示实体类型(即考虑问题的对象)(2) 菱形框,表示联系类型(即实体间的联系)(3) 椭圆形框,表示实体类型和联系类型的属性(对于键的属性,在属性下面划一条横线)(4) 直线,联系类型与其涉及的实体类型之间用直线相连,用来表示他们之间的联系,在直线端部标注联系的种类(1:1,1:N,M:N)再通过一个例子来说明用ER图表示现实世界的特点:1) 考虑零件和工程的关系,零件可以服务于不同的工程,一个工程也需要各种不同的零件,因此,建模的时候零件和工程是一个多对多的联系。a) 首先确定实体类型,这个例子中,实体只有两个,就是工程和零件b) 再确定联系类型,正如前面所述,工程和零件的关系是M:N的关系c) 把实体类型和联系类型组合成ER图(见图1)d) 确定实体类型和联系类型的属性。在这个例子中,project的属性有项目号J#、项目名称JNAME、项目开工日期DATE;而part的属性有零件号P#、零件名PNAME、零件颜色COLOR以及零件重量WEIGHT。联系类型P_P的属性是项目需要的零件数量TOTLE。JNAMEJ#DATEPROJECTPARTP#PNAMEWEIGHTCOLORP_PTOTALMN图1 工程和零件的ER图从上面的可以看出,ER图作为对现实世界的抽象,可以很方便的表示出现实中实体以及实体间的联系,不同形状的框代表不同的概念,让读者一目了然哪些是实体,哪些是联系,哪些是属性。实体间的数量对应关系也通过连线两端的数字记号体现出来了。可以说,ER图是一种简洁的模拟现实世界的符号方法。对象联系图:使用类型构造图的思想,可以把ER图扩充成为对象联系图。对象联系图可以完整地揭示数据间的联系。对象联系图有一下几个基本成分:(1) 椭圆,表示对象类型(相当于ER图中的实体类型)(2) 小圆圈,表示属性是基本数据类型(例如整型、实型、字符串型等)(3) 椭圆之间的边,表示对象之间的嵌套或引用(4) 单箭头()表示属性值是单值(属性可以是基本数据类型,也可以是另一个对象类型,即元组类型)(5) 双箭头()表示属性是多值(属性可以是基本数据类型,也可以是另一个对象类型,即关系类型)(6) 双线箭头()表示对象类型之间的超类与子类联系(从子类指向超类)(7) 双向箭头()表示两个属性之间的联系为逆联系。下面通过一个例子来看一看对象联系图的表示方法和特点:2)关于大学、教师和上课教材的一个关系模型,我们可以画出如下的对象联系图:UniversityunounamecityFacultyCoursetextfnofnameagesalarycnametextnameeditortescherteachpresidentworks_forstaff图2 一个对象联系图实例这里面有三个对象:学校、教师和教材,他们分别具有的属性可以分为两种,一种是基本数据类型的属性,比如University的学校编号uno、校名uname和学校所在城市city,另一种是引用类型的属性(这是ER图所不能刻画的),如University的staff、president等。实体之间的联系通过椭圆之间的边表示,由于在这个例子中联系本身没有自己的属性,所以并没有出现联系对象。可以发现,对象联系图相对ER图来说略显复杂一些,因为它引入了引用类型的属性,但是这也使得它的表现力强于ER图,能更好地描述现实的情况。图的符号表示方面,一方面秉承了ER图简明的风格,另一方面为了满足关系表述的要求,添加了几个新的符号,比如在表现数据的概化与特化的时候,用到了“”符号(如图3所示)。FacultyStudentPersonagenamesonfonsalary图3 带概化边的对象联系图类图:基于面向对象技术UML(统一建模语言)的类图可以描述系统的静态结构,包括类和类之间的联系。类图和前面所说的ER图及对象联系图有着许多相似的地方,但是所用的术语和符号不同。下面的是ER图中术语和类图中术语的一个对照:类图中的基本成分是类和关联:(1) 类被表示为由三个部分组成的方框a) 上面部分给出了类的名称b) 中间部分给出了该类的单个对象的属性c) 下面部分给出了一些可以应用到这些对象的操作(2) 关联是对类的实例之间联系的命名,相当于ER模型中的联系类型。与联系有关的内容有:a) 关联元数(degree):与关联有关的类的个数,亦称为度数b) 关联角色(role):关联的端部,也就是与关联相连的类。角色名可以重新命名,也可以默认类的名字作为角色名c) 重复度(multiplicity):就是在一个给定的联系中有多少对象参与,即关联角色的重复度下面通过和上面对象联系图一样的例子来进一步说明类图的特征:PersonnameageUniversityunounamecitynum_staffFacultyfnosalarynum_teach 01 president 01 1 staff 0*Coursetextcnametextname 11 11 Teach 0* Edit 0* 图4 一个类图实例同前面的实体联系图比较,同一个问题,很明显,类图和实体联系图风格大不一样,可以看到图给人的感觉更加紧凑,属性被封装在类的方框里面,同时提供了类内部的操作(如University类中的num_staff)。在类之间的联系的表现方面,用“xy”的形式表达一个类的对象数目的取值范围(即上面所说的重复度),例如0*就表示取值可以从0到无穷大,关联线的两端都给出这样的表示,就可以说明类之间的联系是1:N or N:1 or M:N。用类图表达关联类:上面的那些关联并没有提及属性。和ER图中联系可以有属性一样,类图中关联本身也可以有属性或者自己的操作,这个时候就不能单纯地用上面的直线来表示关联了,而应该把关联模拟成“关联类”。举个例子来说:在ER模型中,学生与课程是一个多对多联系,其选课联系有一个属性“成绩”。我们也可以用类图来描述这样的实体和联系,如下图所示:RegistrationtermgradecheckEligibility()ComputerAccountacctIDpasswordserveSpaceStudentsnosnameagesexCoursecnocnameteacher * * Issues * 01 图5 用类图表达关联类图中,学生Student和课程Course表示成两个类,Student和Course之间的关联Registration因为也有自己的属性term和grade以及操作checkEligibility,所以也把它表示成一个类,这就是“关联类”,用虚线与关联类相连。用类图表达概化/特化假设职员有三种:计时制职员、月薪制职员和顾问,他们的共享特征在Employee超类中,自己的特有特征存储在相应的子类中,我们用类图来表示这样的联系,可以得到下面的一张图:EmployeeempNameempNoaddressConsultantcontractNobillingRate Emp emp emp disjoint,imcomplete Type type type HourlyEmphourlyRateSalariedEmpannualSalarystockOption 图6 用类图表达概化/特化 用类图表达聚合聚合表达了成分对象和聚合对象之间的“is part of”的联系。在类图中聚合的一端用空的菱形表示。给出下面一个例子:下图表示大学的聚合结构,University由AdminnistrativeUnit和School聚合而成。在building和room之间联系的一端处的菱形不是空心的,它表示一种较强形式的聚合,称为“复合”,复合中,一部分对象只属于一个整体对象,与整体对象共存亡。University 1.*1.*SchoolBuildingAdminstrativeUnit1 Housed in 1120.*1* part ofConsists ofRoomDepartment 图 7 用类图表达聚合第二部分:比较3种图的优点和缺点,给出自己认为比较好的一种表示方法在数据库技术中,概念建模走了一条“ER图对象联系图类图”的发展历程。作为ER图,它有连个明显的优点:一是接近于人的思维,容易被人所理解;二是与计算机无关,用户容易接受。ER图很好地表述了现实世界中的实体和实体间的联系,它能够将实体的静态属性明确地表示出来,另一方面又可以将实体间联系的动态属性表示出来,并且通过连接实体和联系的直线两端的联系种类(即1:N,N:1,M:N)来表述实体间联系的维度。但是,ER图也有其固有的弱点,它不能用来表示实体之间的嵌套和引用关系,也就是说,它不能表达递归结构。为了使我们的概化模型具有更强的表现力和灵活性,随后提出了“嵌套关系模型”和“引用类型”这样的概念,进而提出了“对象关系图”。因此,可以说,对象关系图是ER图的一个扩充,是面向对象数据结构的一种重要图例表示方法。对象联系图使用了对象标识符,使得嵌套和递归成为可能。因此对现实世界的描述方面比ER图更加的灵活。从对象联系图所用的符号来说,也是非常简明扼要,秉承了ER图友善易懂的特点,对每一个对象分别建模,给出他们的属性,并且通过各种有向箭头指出对象之间的联系和联系类型,单双箭头的不同表示也很方便地取代了原来ER图中略显繁琐的M:N表达方法。当然,更主要的是对象联系图引入了面向对象的思想,支持数据的概化和特化,对象类型分为子类型和超类型,所以说,对象联系图不仅完整地揭示了数据之间地联系,也把查询地层次观点表现得一清二楚。这些都是ER图所不具备的性质。UML类图可以说是对象联系图的进一步发展,用面向对象的类的概念和类之间的联系来描述现实世界。和面向对象程序设计有很多的共同点,有自己的类名,有类中的属性以及相关的操作。类图可以用一种更简洁的方式清晰地表示现实世界中对象的属性,而不必像ER图和实体联系图那样在实体或对象的外面另外附加若干属性框,这样,使得图形更加紧凑明了。类图提供对概化和特化的很好的支持,并能表达聚合,这是前两类图所不具备的性质。所以说类图为我们提供了一个强大而完善的表示现实世界的途径。所以,我认为,从完备性和灵活性来说,类图是三种图中最好的用来模拟现实世界的方法,因为现实世界往往不是实体以及实体间联系的简单堆加,实体间的联系可能是多种多样的,有的实体间有着非常紧密的联系(比如一个是另一个的衍生),这个时候如果用ER图表示,可能会引起冗余,而利用类图中继承的概念,可以非常方便的建模并且暗示这种关系。然而,或许,在一些简单的事务抽象中,我们没有必要去对问题作类图的抽象,用ER图反而可以简明扼要地把问题马上表述清楚,所以我认为,对大型的复杂的现实抽象建模时,用类图比较合适,对一些非常简单的小型问题抽象建模时,也许用ER图更加经济一点。第三部分:综述ER图、对象联系图和类图都是模拟现实世界的有力工具,他们的特点各不相同
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年时事政治考试题库带解析及参考答案
- 2025年辅警招聘公安基础知识考试题库及参考答案
- (2025)国家公务员考试时事政治必考试题库及参考答案
- 监听器故障预测模型-洞察及研究
- 2025年大学生国家安全知识竞赛考试试题及答案解析
- 2025年中国小型高清多格式放像机数据监测研究报告
- 2025年中国汽车车蜡数据监测报告
- 2025年中国翻卷机数据监测报告
- 2025年中国鼓式制动器数据监测报告
- 2025年5G网络对城市交通流量的影响
- 护理工作中的冲突与管理
- 北京地区建筑地基基础勘察设计准则
- 《社区调查报告》课件
- 2025-2025学年外研版七年级英语上册教学计划
- 《胸腔穿刺术》课件
- 《人才选用育留》课件
- 农村土地使用权转让协议书
- 任务1 混合动力汽车动力系统基本组成与原理
- 富血小板血浆(PRP)临床实践与病例分享课件
- 华为HCSA-Presales-IT售前认证备考试题及答案
- DB34-T 4860-2024 农贸市场建设规范
评论
0/150
提交评论