




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第4章建立数据模型,4.1建立实体联系模型4.2ER模型的设计方法4.3ER模型向关系模型的转化4.4数据模型与数据库系统的发展,2,4.1建立实体联系模型,信息世界是对现实世界的抽象。信息世界中的数据模型又称为概念模型。,现实世界,信息世界,数据世界,关系模式数据模型,事物及联系原型,实体及联系概念模型,3,概念模型是从现实世界到数据模型转换的中间模型。概念模型不考虑数据的操作,而只是用比较有效的、自然的方式描述现实世界的事物(数据)及其联系。在设计概念模型时,最著名、最实用的是P.S.Chen于1976年提出的“实体联系模型”(EntityRelationshipModel,简称ER模型)。,4,陈品山博士来自中国台湾,1968年台湾大学电机系毕业,1973年获得哈佛大学计算机科学和应用数学博士学位。曾在美国麻省理工斯隆(Sloan)管理学院(1974-1978)及加州大学洛杉矶分校管理学院(1978-1984)任教。现在为路易斯安纳州立大学计算机系M.J.Foster杰出首席教授(DistinguishedChairProfessor)。,著名文章TheEntity-RelationshipModel-TowardaUnifiedViewofData是计算机科学发展史上引用频率最高的文章之一,5,实体联系(ER)模型中的三个主要概念:实体集、联系集和属性。实体集是具有相同类型及相同性质(属性)的实体集合。联系集是指同类联系的集合。实体集用矩形框表示,实体名写在矩形框里。属性用椭圆表示,属性名写在椭圆里;实体的主码用下划线表示(也可用#表示)。实体集之间的联系集用菱形表示,并用无向边与相关实体集连接,联系名写在菱形里,联系集的类型写在无向边的旁边。,4.1.1实体联系模型的基本构成,6,图41实体集职工的ER模型表示,图42部门和职工的一对多联系,7,企业中每一个职工有一份工资单,而每一份工资单也只属于一个职工,所以职工和工资实体集之间的关系为一对一关系,简记为11。一个职工可参加多个项目,一个项目也由多个职工来参加,所以职工和项目实体集之间的联系是多对多的,简记为:mn。,图43职工和工资的一对一联系,图44职工和项目的多对多联系,8,在ER模型中,可以表示两个以上实体集之间的联系,称为多元联系。一个多元联系集总可以用多个不同的二元联系集来替代。,4.1.2多元联系,图45演员、电影和制片公司之间的三元联系,9,联系也具有单独的属性。,4.1.3联系的属性,图46联系可具有属性,学生,选课,m,n,课程,成绩,10,在一个联系中,一个实体集可以出现两次或多次,扮演多个不同角色,此种情况称为实体集的自身联系。一个实体集在联系中出现多少次我们就从联系到这个实体集画多少条线,到实体集的每条线代表该实体集所扮演的不同角色。,4.1.4自身联系,职工,领导,1,n,图47一个自身连接的例子,11,实体集A属于另一实体集B,但A中的实体有特殊的属性,这些特殊属性对B中其它实体无意义。在ER模型中,称A是B的子类,或B是A的父类。两类实体之间存在一种层次联系Is-a(属于)。如果A和B存在Is-a联系,则A中的每个实体a只和B中的一个实体b相联系,而B中的每一个实体最多和A中的一个实体相联系。从这个意义上说,A和B存在一对一的联系。但事实上,a和b是同一事物。A可以继承B中的所有属性,又可以有自己特殊的属性说明。A的主码就是B的主码。,4.1.5子类和Is-a层次联系,12,图48具有Is-a联系的ER模型,Is-a,B,A,Is-a,职工,姓名,性别,年龄,任职时间,职工号,经理,(a),(b),13,4.2ER模型的设计方法,在设计ER模型时,首先必须根据需求分析,确认实体集、联系集和属性。,14,当设计一个较大型的企业或单位的ER模型时,一般按照先局部,后整体,最后优化的方法进行。,4.2.1ER模型的一般设计方法,确定局部应用范围设计局部ER模型,集成局部ER模型形成全局初步ER模型,消除冗余优化全局ER模型,15,15,图411局部ER模型的设计步骤,16,企业职工管理中,需要涉及的功能有:人事处对职工的档案和部门进行管理,包括职工基本情况,部门的基本情况以及各种职称职务的管理;财务处管理职工的工资情况;科研处管理项目、职工参加项目的情况。,4.2.2以企业职工管理系统为例进行说明,17,确定局部应用范围。三个子模块:人事管理、工资管理和项目管理。确认实体集。例如,人事管理中的实体集有:职工、部门、职称职务。确认实体集间(两两之间)的联系集。确认实体集的属性确认联系集的属性画出局部ER模型,确定局部应用范围,设计局部ER模型,18,图412人事管理局部ER模型,19,图413工资管理局部ER模型,20,图414项目管理局部ER模型,21,在集成全局ER模型时,一般采用两两集成的方法,即先将具有相同实体集的两个ER模型,以该相同实体集为基准进行集成。由于各个局部应用所面对的问题不同,且通常由不同的设计人员进行局部ER模型的设计,导致各个局部ER模型之间会存在不一致的地方,成为冲突。要求同一对象的抽象结果要求保持一致(一致原则)。解决冲突。命名冲突:同名异义、同义异名。属性冲突:属性值类型、取值范围、取值单位。结构冲突:同一对象的抽象结果不同(属性、联系),集成局部ER模型,形成全局初步ER模型,22,图415全局ER模型的设计步骤,23,图416合并后的全局初步ER模型,24,一个“好”的全局ER模型,除能反映用户功能需求外,还应该满足“简单原则”:实体、联系尽可能少;实体集所含属性尽可能少;实体集间联系无冗余。为使实体集尽可能少,有时需要合并相关的实体集,如11联系的两个实体集、具有相同码的实体集。消除冗余数据。所谓冗余数据是指重复存在或可由基本数据导出的数据。但有时为了提高效率,不得不以冗余数据为代价。,消除冗余,优化全局ER模型,25,4.3ER模型向关系模型的转化,ER模型是概念模型的表示。要使计算机能处理模型中的信息,首先必须将它转化为具体的DBMS能处理的数据模型。ER模型可以向现有的各种数据模型转换,而目前市场上的DBMS大部分是基于关系数据模型的,所以本节介绍ER模型向关系模型的转换方法。,26,关系模型的逻辑结构是一系列关系模式(表)的集合。将ER模型转化为关系模式主要需解决的问题是:如何用关系来表达实体集以及实体集间的联系。实体转换为关系联系转换为关系合并,27,图412人事管理局部ER模型,例4.2将图412所示人事管理局部ER模型向关系模型转换。,28,实体集的属性转换成关系的属性;实体集的码即对应关系的码。本例中将生成如下三个关系模式:职工(职工号,姓名,性别,年龄,工资)部门(部门号,名称,电话,负责人)职称职务(代号,名称,津贴,住房面积),将每一个实体集转换为一个关系模式,29,联系中单独的属性都转换为该关系的属性;联系中涉及到的每个实体集的码属性(集)转换为该关系的属性。确定关系的码:1:1联系:每个相关实体的码均可作为关系的码;1:n联系:关系的码为n端实体的码;m:n联系:关系的码为相关实体的码的集合。本例的联系转换成的关系模式为:分工(职工号,部门号)任职(职工号,代号,任职日期),将每个联系集转换成关系模式,30,具有相同码的不同关系模式,从本质上描述的是同一实体集,因此可以合并。合并后的关系包括两关系的所有属性,这样可以节省存储空间。本例中的职工关系和分工关系,可以合并为下面同一个关系模式:职工(职工号,姓名,性别,年龄,工资,部门号),根据具体情况,把具有相同码的多个关系模式合并成一个关系模式。,31,4.4数据模型与数据库系统的发展,第一代数据库系统:层次型、网状型第二代数据库系统:关系型第三代数据库系统:新的数据模型,4.4.1第一代数据库系统,在关系数据模型产生之前,数据库管理系统普遍使用的数据模型是层次和网状数据模型,它们又被称为非关系数据模型。第一代数据库系统包括层次数据库系统和网状数据库系统。层次模型和网状模型的数据结构都用图来表示。层次模型对应于一棵有根的定向树,网状模型对应于平面有向图。,32,33,33,概念模型中的实体型非关系数据模型的记录型。图的结点表示为记录型(实体),结点之间的连线弧(或有向边)表示为记录型之间的联系。每个记录型可包含若干个字段,对应于描述实体的属性。,图417一个基本层次联系,34,34,特点:有且仅有一个结点无父结点(称为根结点);非根结点都有且仅有一个父结点。在层次模型中,一个结点可以有几个子结点(称为兄弟结点),也可以没有子结点(称为叶结点),层次模型,图418学校层次数据库模型,35,35,图419学校层次数据库模型的一个实例,36,36,特点:可能有一个以上的结点无父结点;一个结点可以有一个以上的父结点;结点与其父结点之间的联系可以不止一个。,网状模型,图420网状模型的例子,37,网状数据模型中记录的概念类似于关系数据模型中关系的概念记录型关系模式记录关系的元组记录的字段关系的属性在非关系模型中,子女结点是不能脱离其父结点而独立存在的,任何一个记录只有按其路径查看时才有实际意义。用户必须提供父结点才能查询子结点。,37,38,层次模型和网状模型有许多共同的特征,如都支持三级模式结构;都用存取路径来表示数据之间的联系;用户对数据的存取,必须按照定义了的存取路径进行;必须清楚地了解数据在数据库中的位置;对数据的操作是一次一个记录导航式地进行;程序和数据都具有较高的物理独立性,但逻辑独立性较低。,39,支持关系数据模型的数据库系统是第二代数据库系统。支持非过程化语言(如SQL)操作数据。关系数据库语言的高度非过程化,将用户从对数据库的导航式编程中解脱出来,降低了编程难度。用户只要提出“做什么”,而无须指明“怎么做”,因此无需了解数据库的存取路径(存取路径的选择由系统自动完成)。这不但减轻了用户负担,而且有利于提高数据独立性。市场上的关系数据库产品包括:DB2、Oracle、SYBASE、Informix、MicrosoftSQLServer等。,4.4.2第二代数据库系统,40,由于数据库技术在商业领域的巨大成功,使得数据库应用领域越来越广。但是现实世界存在着许多含有更复杂数据结构的实际应用领域,例如计算机辅助设计/管理/集成制造(CAD/CAM/CIMS)、办公自动化系统(OAS)、地理信息系统(GIS)、多媒体数据库、超文本数据库等。这些应用有着与传统应用不同的行为特性和数据特性。面向对象技术与数据库技术相结合的系统称为第三代数据库系统。,4.4.3第三代数据库系统,41,对象:对象是现实世界中实体的模型化,与记录、元组的概念相似。是相关数据和代码的一个封装体。一个对象对应着E-R模型中的一个实体。对象和系统的其余部分都是通过消息来交换信息的。类:所有具有相同属性和方法集的对象构成了一个对象类。任何一个对象都是某个对象类的一个实例。一个类的所有对象共享着相同的定义,但是它们对同一个变量所赋予的值不同。,面向对象模型,42,42,继承:当且仅当类Y的每个对象都是类X的对象时,类X被称为类Y的一个父类,而类Y被称为类X的一个子类。继承也即常说的Is-a关系。子类可以从其父类中继承所有属性和方法。类继承可分为:单继承(即一个类只能有一个父类)和多重继承(即一个类可以有多个父类)。对象包含:一个(或一些)对象是另一个对象的组成成分称作对象包含。类之间的包含关系表现了现实事物的局部与整体的关系(组合关系)。包含其他对象的对象称为复合对象。对象标识:面向对象系统使用对象标识符(OID)来标识对象。对象标识符是唯一而且不变的,当创建一个对象时,系统会自动生成对象的标识符。,43,43,43,封装:每一个对象是状态(state)和行为的封装。对象的状态是该对象属性的集合。对象的行为是在该对象状态上操作的方法(程序代码)的集合。被封装的状态和行为在对象外部是看不到的,只能通过显示定义的消息传递来访问。,状态:属性值集合,行为:操作方法集合,对象,消息,面向对象数据模型的三个要素,数据组织结构:对象类层次结构。数据操作:使用对象查询语言进行多种对象操作。类的定义和操纵:定义(属性、操作特性、继承性、约束)、生成、存取、修改、撤销。对象的操作/方法的定义。对象的操纵:生成、存取、修改、删除。数据的完整性约束:唯一性约束:同一模式中,类名唯一;同一类中,属性和方法名唯一。,44,存在性约束:被引用的类必须被定义;被调用的方法必须被定义;被定义的方法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 配筋对钢筋混凝土结构热力场影响研究
- 安防设备采购合同范本
- 电子商务平台技术支持服务合同
- 酒店住宿服务预订合同
- 网络虚拟产品交易合同
- 食用菌销售合同
- 智能野生动物监测系统开发合同
- 房屋砌筑承包协议书
- 情侣亲亲合同协议书
- 担保公司收车协议书
- 儿童行为干预效果评估的机器学习方法-洞察阐释
- 区块链考试试题及答案
- 演讲口才考试试题及答案
- 2025-2030中国氟化工行业市场发展现状及发展趋势与投资前景研究报告
- 2025年湖北省武汉市高考地理调研试卷(2月份)
- 2025年保密观知识竞赛题库附答案(黄金题型)含答案详解
- 2024年呼和浩特市玉泉区消防救援大队招聘真题
- 2025年山东省青岛市莱西市中考一模英语试题(原卷版+解析版)
- 2025-2030中国传染病体外诊断行业市场现状供需分析及投资评估规划分析研究报告
- SL631水利水电工程单元工程施工质量验收标准第3部分:地基处理与基础工程
- 新22J01 工程做法图集
评论
0/150
提交评论