《第02章数据模型与概念模型优秀课件.ppt》由会员分享,可在线阅读,更多相关《第02章数据模型与概念模型优秀课件.ppt(70页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第02章数据模型与概念模型1第1页,本讲稿共70页本章基本概念v实体、属性、实体集、实例、对象、数据项、文件;v概念模型、码、域、实体联系(1:1、1:N、M:N)、E-R模型;v数据模型(层次模型、网状模型、关系模型)重点:概念模型、数据模型、数据模型的三要素2第2页,本讲稿共70页2.1 信息的三种世界及描述信息的三种世界:现实世界 信息世界(概念模型)计算机世界(数据世界)(数据模型)现实世界信息世界(概念模型)计算机世界(数据模型)认识抽象转换3第3页,本讲稿共70页数据模型v模型:模型:是现实世界特征的模拟和抽象。地图、航模飞机。v在数据库中用数据模型这个工具来抽象、表示和处理抽象、
2、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世界的模拟。v数据模型应满足三方面要求能比较能比较真实真实地模拟现实世界地模拟现实世界容容易易为人所为人所理解理解便于在计算机上便于在计算机上实现实现4第4页,本讲稿共70页v客观对象的抽象过程-两步抽象现实世界中的客观对象抽象为概念模型;现实世界中的客观对象抽象为概念模型;把概念模型转换为某一把概念模型转换为某一DBMS支持的数据模型。支持的数据模型。概念模型是现实世界到机器世界的一个中间层次。5第5页,本讲稿共70页2.1.1 现实与信息世界的数据描述v实体(实体(entity):):客观存在,可以相互区别的事物称为实体。v实体集(
3、实体集(entity set):):性质相同的同类实体的集合,称为实体集。v属性(属性(attribute):):实体有很多特性,每一个特性称为属性。每一个属性有一个值域,其类型可以是整数型、实数型、字符串型等。v实体标识符(实体标识符(identifier):):能惟一标识实体的属性或属性集,称为实体标识符。有时也称为关键码(key),或简称为键。6第6页,本讲稿共70页2.1.2 计算机世界的数据描述(一)v字段(字段(field):):标记实体属性的命名单位称为字段,或数据项。它是可以命名的最小信息单位,所以又称为数据元素或初等项。v记录(记录(record):):字段的有序集合称为记录
4、。是实例的具体表示。v文件(文件(file):):同一类记录的集合称为文件。v关键码(关键码(key):):能惟一标识文件中每个记录的字段或字段集,称为记录的关键码(简称为键)。7第7页,本讲稿共70页v 术语的对应关系术语的对应关系 现实世界信息世界计算机世界实体 实例记录特征 属性字段(数据项)实体集 对象或实体型数据或文件实体标识符关键码实体间的联系对象间的联系数据间的联系概念模型数据模型8第8页,本讲稿共70页2.2.1概念模型及表示v1.1.概念模型:概念模型:也称信息模型,它是按用户的观点来对数据和信息建模。是对现实世界的真实反映。概念模型用于信息世界的建模。概念模型不依赖于某一个
5、DBMS支持的数据模型。概念模型可以转换为计算机上某一DBMS支持的特定数据模型。9第9页,本讲稿共70页v概念模型的特点:(1)具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识。(2)应该简单、清晰、易于用户理解,是用户与数据库设计人员之间进行交流的语言。v通常,用E-R图来描述现实世界的概念模型。10第10页,本讲稿共70页2.2.2 数据联系的描述(一)v联系(联系(relationship)是实体之间的相互关系。与一个联系有关的实体集个数,称为联系的元数。v二元联系有以下三种类型:二元联系有以下三种类型:一对一联系:一对一联系:如果实体集E1中每个实体至多和实体集E2中
6、的一个实体有联系,反之亦然,那么实体集E1和E2的联系称为“一对一联系”,记为“1:1”。例如,一个班而一个班长也只在一个班中任职。一对多联系:一对多联系:如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体间有联系,而E2中每个实体至多和E1中一个实体有联系,那么称E1对E2的联系是“一对多联系”,记为“1:N”。多对多联系:多对多联系:如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么称E1和E2的联系是“多对多联系”,记为“M:N”。11第11页,本讲稿共70页2.2.2 数据联系的描述(一)v例例1.1 实体集E1 实体集E2座位E1
7、乘客E2 实体集E1 实体集E2E1E2车间工人实体集E1 实体集E2E1E2学生课程12第12页,本讲稿共70页E-R途中联系的表示方法实体型实体型1联系名联系名实体型实体型2111:1联系联系实体型实体型1联系名联系名实体型实体型2mnm:n联系联系实体型实体型1联系名联系名实体型实体型21n1:n联系联系13第13页,本讲稿共70页班级班长任职11 1:1联系班级学生隶属1n 1:n联系课程学生选课mn m:n联系员工领导1 n同一实体1:n联系学生课程教学教室三个实体联系例例1.2 ER图表示图表示14第14页,本讲稿共70页1.3.4 数据联系的描述(二)v例例1.3 15第15页,
8、本讲稿共70页联系的表示方法(续)实体型实体型1联系名联系名mn同一实体型内同一实体型内部的部的m:n联系联系实体型实体型1联系名联系名实体型实体型21m多个实体型间的多个实体型间的1:n联系联系实体型实体型3n16第16页,本讲稿共70页联系的表示方法示例(续)职工职工领导领导1n同一实体型内同一实体型内部的部的1:n联系联系课程课程讲授讲授教师教师1m多个实体型间的多个实体型间的1:n联系联系参考书参考书n17第17页,本讲稿共70页2.2.3 实体联系模型(一)v表示概念模型的实体联系方法(表示概念模型的实体联系方法(Entity-RelationshipApproach,E-R方法)方
9、法)vER图有三个基本成分:图有三个基本成分:矩形框,用于表示实体类型(考虑问题的对象)。菱形框,用于表示联系类型(实体间联系)。椭圆形框,用于表示实体类型和联系类型的属性。18第18页,本讲稿共70页v实体型:用矩形表示,矩形框内写明实体名。v属性:用椭圆形表示,并用无向边将其与相应的实体连接起来 v联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)。v联系也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。19第19页,本讲稿共70页2.2.3 实体联系模型(二)v例1.4 首先确定实体类型
10、。本问题有三个实体类型:零件PART,工程项目PROJECT,零件供应商SUPPLIER。确定联系类型。PROJECT和PART之间是M:N联系,PART和SUPPLIER之间也是M:N联系,分别命名为P_P和P_S.把实体类型和联系类型组合成ER图。确定实体类型和联系类型的属性。确定实体类型的键,在ER图中属于码的属性名下画一条横线。20第20页,本讲稿共70页实体联系模型(三)21第21页,本讲稿共70页实体联系模型(四)v例1.5 22第22页,本讲稿共70页实体及其属性图学号姓名性别出生年月学生1n员工部门工作编号姓名职务生日部门编号名称参加工作时间部门领导实体及其联系图例1.623第
11、23页,本讲稿共70页2.3.1 数据模型的定义 v数据模型的简单定义数据模型的简单定义:数据模型用来抽象、表示和处理现实世界数据模型用来抽象、表示和处理现实世界中的数据和信息。即数据模型就是现实世界的模拟。中的数据和信息。即数据模型就是现实世界的模拟。数数据据模模型型应应满满足足三三个个方方面面的的要要求求:比比较较真真实实的的模模拟拟现现实实世世界界;容易为人们理解;便于计算机表达。容易为人们理解;便于计算机表达。v数据模型应包含数据模型应包含数据结构、数据操作和数据完整性约束数据结构、数据操作和数据完整性约束三个部三个部分:分:数据结构是指对实体类型和实体间联系的表达和实现;数据操作是指
12、对数据库的检索和更新(包括插入、删除和修改)两类操作;数据完整性约束给出数据及其联系应具有的制约和依赖规则。24第24页,本讲稿共70页2.3.2 层次模型v用树型(层次)结构表示实体类型及实体间联系的数据模型称为层次模型(hierarchical model)。v层次模型的特点是记录之间的联系通过指针来实现,查询效率较高。与文件系统的数据管理方式相比,层次模型是一个飞跃,用户和设计者面对的是逻辑数据而不是物理数据,用户不必花费大量的精力考虑数据的物理细节。逻辑数据与物理数据之间的转换由DBMS完成。25第25页,本讲稿共70页1.层次数据模型的数据结构v层次模型 满足下面两个条件的基本层次联
13、系的集合为层次模型。满足下面两个条件的基本层次联系的集合为层次模型。1.有且只有一个结点没有双亲结点,这个结点称为根有且只有一个结点没有双亲结点,这个结点称为根 结点结点2.根以外的其它结点有且只有一个双亲结点根以外的其它结点有且只有一个双亲结点v层次模型中的几个术语根结点,双亲结点,兄弟结点,叶结点根结点,双亲结点,兄弟结点,叶结点26第26页,本讲稿共70页层次数据模型的数据结构(续)1 根结点根结点 2 兄弟结点兄弟结点 3 叶结点叶结点 4 兄弟结点兄弟结点 5 叶结点叶结点 叶结点叶结点27第27页,本讲稿共70页层次数据模型的数据结构(续)v表示方法实体型实体型:用记录类型描述。:
14、用记录类型描述。每个结点表示一个记录类型。每个结点表示一个记录类型。属性属性:用字段描述。每个记录类型可包含若干个字段。:用字段描述。每个记录类型可包含若干个字段。联系联系:用结点之间的连线表示记录(类)型之间的:用结点之间的连线表示记录(类)型之间的 一对多的联系一对多的联系实例:实例:教员教员-学生数据模型(学生数据模型(P28)28第28页,本讲稿共70页层次数据模型的数据结构(续)v特点结点的双亲是唯一的结点的双亲是唯一的只能直接处理一对多的实体联系只能直接处理一对多的实体联系每个记录类型定义一个排序字段,也称为码字段每个记录类型定义一个排序字段,也称为码字段任何记录值只有按其路径查看
15、时,才能显出它的全部意义任何记录值只有按其路径查看时,才能显出它的全部意义没有一个子女记录值能够脱离双亲记录值而独立存在没有一个子女记录值能够脱离双亲记录值而独立存在29第29页,本讲稿共70页层次数据模型的数据结构(续)v多对多联系在层次模型中的表示用层次模型用层次模型间接间接表示多对多联系表示多对多联系方法方法将多对多联系将多对多联系分解分解成一对多联系成一对多联系分解方法分解方法v冗余结点法冗余结点法v虚拟结点法虚拟结点法30第30页,本讲稿共70页2.层次模型的数据操纵v 查询v 插入v 删除v 更新31第31页,本讲稿共70页3.层次模型的完整性约束v无相应的双亲结点值就不能插入子女
16、结点值无相应的双亲结点值就不能插入子女结点值v如果删除双亲结点值,则相应的子女结点值如果删除双亲结点值,则相应的子女结点值也被同时删除也被同时删除v更新操作时,应更新所有相应记录,以保证更新操作时,应更新所有相应记录,以保证数据的一致性数据的一致性32第32页,本讲稿共70页4.层次数据模型的存储结构v邻接法按照层次树前序遍历的顺序把所有记录值依次邻接存按照层次树前序遍历的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序放,即通过物理空间的位置相邻来实现层次顺序v链接法用指引元来反映数据之间的层次联系用指引元来反映数据之间的层次联系子女兄弟链接法子女兄弟链接法 P31层次序
17、列链接法层次序列链接法 P3133第33页,本讲稿共70页5.层次模型的优缺点v优点层层次次数数据据模模型型简简单单,对对具具有有一一对对多多的的层层次次关关系系的的部部门门描描述述自自然、直观,容易理解然、直观,容易理解性能优于关系模型,不低于网状模型性能优于关系模型,不低于网状模型层次数据模型提供了良好的完整性支持层次数据模型提供了良好的完整性支持v缺点多对多联系表示不自然多对多联系表示不自然对插入和删除操作的限制多对插入和删除操作的限制多查询子女结点必须通过双亲结点查询子女结点必须通过双亲结点层次命令趋于程序化层次命令趋于程序化34第34页,本讲稿共70页6.典型的层次数据库系统IMS数
18、据库管理系统第一个大型商用第一个大型商用DBMS1968年推出年推出IBM公司研制公司研制35第35页,本讲稿共70页2.3.3 网状模型v用有向图结构表示实体类型及实体间联系的数据模型称为网状模型(network model)。v网状模型的特点是记录之间联系通过指针实现,M:N联系也容易实现(一个M:N联系可拆成两个1:N联系),查询效率较高。v网状模型的缺点是数据结构复杂和编程复杂。36第36页,本讲稿共70页1.网状数据模型的数据结构v网状模型满满足足下下面面两两个个条条件件的的基基本本层层次次联联系系的的集集合合为为网状模型。网状模型。1.允许一个以上的结点无双亲;允许一个以上的结点无
19、双亲;2.一个结点可以有多于一个的双亲一个结点可以有多于一个的双亲。37第37页,本讲稿共70页网状数据模型的数据结构 1 2 R3 L1 L2 R1 R1 R2R2 L3L3 L1 L2 L1 L2 R3R3 L4L4 R4 R4 R5R5 38第38页,本讲稿共70页网状数据模型的数据结构(续)v表示方法(与层次数据模型相同)实体型实体型:用记录类型描述。:用记录类型描述。每个结点表示一个记录类型。每个结点表示一个记录类型。属性属性:用字段描述。:用字段描述。每个记录类型可包含若干个字段。每个记录类型可包含若干个字段。联系联系:用结点之间的连线表示记录(类)型之:用结点之间的连线表示记录(
20、类)型之 间的间的一对多的父子联系一对多的父子联系。39第39页,本讲稿共70页网状数据模型的数据结构(续)v网状模型与层次模型的区别网状模型允许多个结点没有双亲结点网状模型允许多个结点没有双亲结点网状模型允许结点有多个双亲结点网状模型允许结点有多个双亲结点网状模型允许两个结点之间有多种联系(复网状模型允许两个结点之间有多种联系(复合联系)合联系)网状模型可以更直接地去描述现实世界网状模型可以更直接地去描述现实世界层次模型实际上是网状模型的一个特例层次模型实际上是网状模型的一个特例40第40页,本讲稿共70页网状数据模型的数据结构(续)1 2 R3 L1 L2 R1 R1 R2R2 L3L3
21、L1 L2 L1 L2 R3R3 L4L4 R4 R4 R5R5 41第41页,本讲稿共70页网状数据模型的数据结构(续)1 L1 L2 R242第42页,本讲稿共70页网状数据模型的数据结构(续)学生宿舍学生宿舍学生学生教研室教研室系系教师教师43第43页,本讲稿共70页网状数据模型的数据结构(续)父母父母人人子女子女树树种种植植砍砍伐伐养养育育赡赡养养44第44页,本讲稿共70页网状数据模型的数据结构(续)多对多联系在网状模型中的表示用网状模型用网状模型间接间接表示多对多联系表示多对多联系方法方法 将多对多联系将多对多联系直接直接分解成一对多联系分解成一对多联系45第45页,本讲稿共70页
22、2.网状模型的数据操纵l查询l插入l删除l更新46第46页,本讲稿共70页3.网状数据模型的完整性约束网状数据库系统(如DBTG)对数据操纵加了一些限制,提供了一定的完整性约束码码双亲结点与子女结点之间是一对多联系双亲结点与子女结点之间是一对多联系属籍类别属籍类别v加入类别加入类别(自动的,手工的自动的,手工的)v移出类别移出类别(固定的,必须固定的,必须 的,随意的的,随意的)47第47页,本讲稿共70页3.网状数据模型的完整性约束 v完整性约束条件允许插入尚未确定双亲结点值的子女结点值允许插入尚未确定双亲结点值的子女结点值允许只删除双亲结点值允许只删除双亲结点值48第48页,本讲稿共70页
23、4.网状数据模型的存储结构v关键实现记录之间的联系实现记录之间的联系v常用方法单向链接单向链接双向链接双向链接环状链接环状链接向首链接向首链接49第49页,本讲稿共70页5.网状模型的优缺点v优点能能够够更更为为直直接接地地描描述述现现实实世世界界,如如一一个个结结点点可可以以有有多多个个双双亲亲具有良好的性能,存取效率较高具有良好的性能,存取效率较高v缺点结构比较复杂,而且随着应用环境的扩大,数据库的结构就结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握变得越来越复杂,不利于最终用户掌握DDL、DML语言复杂,用户不容易使用语言复杂,用户不容易使用50第
24、50页,本讲稿共70页6.典型的网状数据库系统vDBTG系统,亦称CODASYL系统由由DBTG提出的一个系统方案提出的一个系统方案奠定了数据库系统的基本概念、方法和技术奠定了数据库系统的基本概念、方法和技术70年代推出年代推出v实际系统Cullinet Software Inc.公司的公司的 IDMSUnivac公司的公司的 DMS1100Honeywell公司的公司的IDS/2HP公司的公司的IMAGE51第51页,本讲稿共70页2.3.4关系模型(一)v关系模型(relational model)的主要特征是用二维表格表达实体集。v与前两种模型相比,数据结构简单,容易为初学者理解。v关系
25、模型是由若干个关系模式组成的集合。v关系模式相当于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。52第52页,本讲稿共70页关系模型v最重要的一种数据模型。也是目前主要采用的数据模型v1970年由美国IBM公司San Jose研究室的研究员E.F.Codd提出v本课程的重点53第53页,本讲稿共70页关系数据模型的数据结构 v在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。54第54页,本讲稿共70页关系模型的基本概念关系(Relation)一个关系对应通常说的一张表。元组(Tuple)表中的一行即为一个元组。属性(Attribute)表中的一列即为一
26、个属性,给每一个属性起一个名称即属性名。55第55页,本讲稿共70页关系模型的基本概念主码(Key)表中的某个属性组,它可以唯一确定一个元组。域(Domain)属性的取值范围。分量元组中的一个属性值。关系模式对关系的描述关系名(属性1,属性2,属性n)学生(学号,姓名,年龄,性别,系,年级)56第56页,本讲稿共70页1.关系数据模型的数据结构(续)v实体及实体间的联系的表示方法实体型实体型:直接用关系(表)表示。:直接用关系(表)表示。属性属性:用属性名表示。:用属性名表示。一对一联系一对一联系:隐含在实体对应的关系中。:隐含在实体对应的关系中。一对多联系一对多联系:隐含在实体对应的关系中。
27、:隐含在实体对应的关系中。多对多联系多对多联系:直接用关系表示:直接用关系表示。57第57页,本讲稿共70页关系数据模型的数据结构(续)例1学生、系、系与学生之间的一对多联系:学生(学号,姓名,年龄,性别,系号,年级)学生(学号,姓名,年龄,性别,系号,年级)系系(系号,系名,办公地点系号,系名,办公地点)例2系、系主任、系与系主任间的一对一联系58第58页,本讲稿共70页关系数据模型的数据结构(续)例3学生、课程、学生与课程之间的多对多联系:学生(学号,姓名,年龄,性别,系号,年级)学生(学号,姓名,年龄,性别,系号,年级)课程(课程号,课程名,学分)课程(课程号,课程名,学分)选修(学号,
28、课程号,成绩)选修(学号,课程号,成绩)59第59页,本讲稿共70页关系数据模型的数据结构(续)v关系必须是规范化的,满足一定的规范条件最基本的规范条件:关系的每一个分量必须是一个不最基本的规范条件:关系的每一个分量必须是一个不可分的数据项。可分的数据项。60第60页,本讲稿共70页2.关系模型的数据操纵v查询、插入、删除、更新v数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合v存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明“怎么干”61第61页,本讲稿共70页3.关系模型的完整性约束v实体完整性v参照完整性v用户定义的完整性62第62页,本讲稿共70页4.关系数据模
29、型的存储结构v表以文件形式存储v有的DBMS一个表对应一个操作系统文件v有的DBMS自己设计文件结构63第63页,本讲稿共70页5.关系模型的优缺点v优点建立在严格的数学概念的基础上建立在严格的数学概念的基础上概念单一。数据结构简单、清晰,用户易懂易用概念单一。数据结构简单、清晰,用户易懂易用v实体和各类联系都用关系来表示。实体和各类联系都用关系来表示。v对数据的检索结果也是关系。对数据的检索结果也是关系。关系模型的存取路径对用户透明v具有更高的数据独立性,更好的安全保密性具有更高的数据独立性,更好的安全保密性v简化了程序员的工作和数据库开发建立的工作简化了程序员的工作和数据库开发建立的工作6
30、4第64页,本讲稿共70页关系模型的优缺点(续)v缺点存取路径对用户透明导致查询效率往往不如非存取路径对用户透明导致查询效率往往不如非关系数据模型关系数据模型为提高性能,必须对用户的为提高性能,必须对用户的查询请求进行优化查询请求进行优化增加了开发数据库管理系统的难度增加了开发数据库管理系统的难度65第65页,本讲稿共70页6.典型的关系数据库系统ORACLESYBASEINFORMIXDB/2COBASEPBASEEasyBaseDM/2OpenBase66第66页,本讲稿共70页2.3.5 对象模型(一)v对象(object)是现实世界中实体的模型化,与实体概念相仿,但远比实体复杂。v将属
31、性集和方法集相同的所有对象组合在一起,构成了一个类(class)。67第67页,本讲稿共70页1.4.6 对象模型(二)层次模型网状模型关系模型面向对象模型创始1968年IBM公司的IMS系统1969年CODASYL的DBTG报告(71年通过)1970年F.Codd提出关系模型20世纪80年代数据结构复杂(树结构)复杂(有向图结构)简单(二维表)复杂(嵌套递归)数据联系通过指针通过指针通过表间的公共属性通过对象标识查询语言过程性语言过程性语言非过程性语言面向对象语言典型产品IMSIDS/IMAGE/3000IDMSTOTALOracleSybaseDB2SQL ServerInformixONTOS DB盛行期20世纪70年代70年代至80年代中期80年代至现在90年代至现在68第68页,本讲稿共70页小 结v数据模型是对现实世界进行抽象的工具,用于描述现实世界的数据、数据联系、数据语义和数据约束等方面内容。数据模型分成概念模型和结构模型两大类。前者的代表是实体联系模型,后者的代表是层次、网状、关系和面向对象模型。关系模型是当今的主流模型,面向对象模型是今后发展的方向。69第69页,本讲稿共70页本章的重点 v数据模型数据模型的三要素概念模型,E-R 模型三种主要数据模型70第70页,本讲稿共70页
限制150内