数据模型.ppt
《数据模型.ppt》由会员分享,可在线阅读,更多相关《数据模型.ppt(77页珍藏版)》请在三一办公上搜索。
1、第2章 数据模型,本章主要内容,本章将着重介绍一下概念模型、层次模型、网状模型、关系模型、面向对象模型等数据库系统的数据模型的基本概念和设计方法,为后面的数据库设计打下基础。(1)数据描述 概念设计、逻辑设计和物理设计等各阶段中数据描述的术语,概念设计中实体间二元联系的描述(1:1,1:N,M:N)。(2)数据模型 数据模型的定义,两类数据模型,逻辑模型的形式定义,ER模型,层次模型、网状模型、关系模型和面向对象模型的数据结构以及联系的实现方式。,数据模型,2.1 数据模型概述2.2 ER数据模型 2.3 层次数据模型 2.4 网状数据模型 2.5 关系数据模型 2.6 面向对象数据模型本章小
2、结,2.1 数据模型概述,数据模型(Data Model)是对现实世界数据特征的抽象,是用来描述数据的一组概念和定义。现实世界中的客观对象抽象为概念模型;然后把概念模型转换为DBMS支持的数据模型。其转换过程如右图。数据模型的分类:概念数据模型(又称概念模型)逻辑数据模型(又称数据模型),2.1.1 数据模型的基本组成,数据模型是现实世界中的事物及其间联系的一种抽象表示,是一种形式化描述数据、数据间联系以及有关语义约束规则的方法。它通常由以下三个部分组成:(1)数据结构 它是指对实体类型和实体间联系的表达实现。它是数据模型最基本的组织部分,规定了数据模型的静态特性。(2)数据操作 是指对数据库
3、进行的检索和更新两类操作。(3)数据的约束条件 数据的约束条件是一组完整性规则的集合。它定义了给定数据模型中数据及其联系应具有的制约和依赖规则。,2.1.2 数据模型的发展,20世纪60年代后期,在文件系统基础上发展起来的层次模型、网状模型和关系模型等传统数据模型;20世纪70年代后期产生的ER数据模型;20世纪80年代以来又相继推出面向对象数据模型、基于逻辑的数据模型等新的模型。,2.2 ER数据模型,2.2.1 基本概念2.2.2 ER图 2.2.3 扩充ER数据模型,2.2.1 基本概念,ER数据模型(即Entity-Relationship data model,实体联系数据模型)是P
4、.Chen(Peter Pin-Shan Chen)于1976年提出的一种语义数据模型。E-R数据模型不同于传统数据模型,它不是面向实现,而是面向现实世界。1)实体(Entity)实体是客观存在的且可以区别的事物。2)联系(Relationship)实体与实体间的关系抽象为联系。(1)二元联系 只有两个实体参与的联系称为二元联系。在二元联系中,ER数据模型又把联系区分为一对一(1:1)、一对多(1:n)、和多对多(m:n)三种。,一对一(1:1)联系 若两个实体集中E1、E2中的每一个实体至多和另一个实体集中的一个实体有联系,则称E1和E2是一对一的联系,记为1:1。例如,学校实体集与校长实体
5、集间的联系是一对一联系。一对多(1:n)联系 设两个实体集E1、E2,若E1中每一个实体与E2中任意个实体(包括零个)相联系,而E2中每个实体至多和E1中一个实体有联系,则称E1和E2是一对多的联系,记为1:n。多对多(m:n)联系 设两个实体集E1、E2,若E1中每一个实体都和另一个实体集中任意个实体(包括零个)有联系,则称E1和E2是多对多的联系,记为m:n。它们三者之间是包含关系。如右图所示。,二元联系,数据联系的描述,(1:1)联系,(1:n)联系,(m:n)联系,多元联系与自反联系,(2)多元联系 在ER数据模型中,二元联系这种表示方法还可推广到多元联系,即参与联系的实体个数n3。例
6、如,三元联系也可区分1:1:1、1:1:p、1:n:p、m:n:p等联系。(3)自反联系 表示同一个实体集两部分实体之间的联系,是一种特殊的二元联系。这两部分实体之间的联系也可以区分为1:1、1:n和m:n三种。例如,在“人”这个实体集中存在夫妻之间的1:1联系;教师实体集中为了描述领导与被领导关系,可用1:n联系描述;在课程实体集中存在一门课程与另外一门或几门课程之间的预选课联系。,3)属性,实体或联系所具有的特征称为属性。实体是由特征来表征和区分的,通常一个实体可以由多个属性来描述。例如,学生具有姓名、学号等属性。一个实体可以有若干个属性,但在数据库设计中通常只选择部分数据管理需要的属性。
7、属性往往是不可再细分的原子属性,如姓名、性别等。属性有型和值的区别。例如,学生实体中的学号、姓名等属性名是属性型,而“021231142”、“李定”等具体数据称为属性值。每个属性值都有一定的变化范围,通常称属性取值的变化范围为属性值的域。例如,性别属性域是男、女,年龄属性域是1200。能唯一标识实体集中某一实体的属性或属性组称为实体集的标识关键字或称关键字。,2.2.2 ER图,ER图是ER数据模型的图形表示法,是一种直观表示现实世界的有力工具,目前E-R图已用于数据库的概念设计。1)ER图的表示方法,实体集名,联系,属性,上述提到的几种联系的ER简图如下:,2)ER图的构成规则,(1)画出实
8、体集及它们之间的联系 如果实体集A中实体之间有联系AA,则实体间联系如下图:,如果实体集A和实体集B之间有联系AB,则实体间联系如下图:,如果三个上实体集A、B、C之间有联系A-B-C,则实体间联系如下图:,(2)画出实体集及联系的属性,用无向边把属性框连向与其相关的实体集或联系。例如学校和教师实体集间存在聘任联系,联系有“聘任日期”属性,则一个描述学校和教师实体集及其联系的ER图如下图所示。,2.2.3 扩充ER数据模型,1)依赖联系和弱实体集 在现实世界中,某些实体集间还存在一种特殊的联系依赖联系。,例如,在人事管理数据库中存放的职工实体集及其家庭成员实体集,前者以后者的存在为前提,家庭成
9、员实体集依赖于职工实体集。这种依赖另一个实体集的存在而存在的实体集称为弱实体集,它们与其他实体集间的联系称为依赖联系,如右图所示。,2)子类和超类,为了进一步描述一个实体集中某些实体的不同特征,从该实体集中取出一部分实体构成一个(或多个)新的实体集,称这个新实体集是原实体集的子类,而原实体集是新实体集的超类。例如,一个系部的职工实体集,为区分他们不同的工作特点,可分为教师、教辅人员及管理人员三个子类实体集。其EER数据模型实例如下图所示。,3)聚集,在EER数据模型中,将联系视为参与联系的实体集组合而成新实体集,其属性为参与联系的实体的属性和联系的属性的并。这种新实体集称为聚集。这样联系也能以
10、聚集的形式参与联系。下图是应用聚集的例子。,4)范畴,在描述现实世界时,有时要用到不同类型的实体组成的实体集,引入了范畴这一抽象概念。设E1、E2、En是n个不同类型的实体集,则范畴T可定义为:其中:E1、E2、En称为T的超实体集。例如,“银行账户”这个实体集的成员可能是单位,也可能是个人。,几个ER事例,部门ER,医院病房 管理ER,系,2.3 层次数据模型,2.3.1 基本概念和结构 2.3.2 数据操作 2.3.3 数据约束 2.3.4 层次数据模型的优缺点,2.3.1 基本概念和结构,层次模型是按照层次结构的形式组织数据库数据的数据模型,即用树型结构表示实体集与实体集之间的联系。其中
11、用结点表示实体集,结点之间联系的基本方式是1:n。1)记录和字段 记录是用来描述某个事物或事物间关系的命名的数据单位,也是存储的数据单位。它包含若干字段。每个字段也是命名的,字段只能是简单的数据类型,例如整数、实数、字符串等。,例如:图(a)是一个名为系的记录。图(b)是其一个实例。,2)双亲子女关系(简称PCR),这是层次数据模型中最基本的数据关系。它代表了两个记录型之间一对多关系(1:n)。例如,一个系有多个班,就构成了如图(a)所示的双亲子女关系(即PCR型),在“1”方的记录型称为双亲记录,在“n”方的记录型称为子女记录。图(b)是其一个实例。,3)层次数据模式,利用PCR可以构成层次
12、数据模式。右图是一个层次数据模式的例子。下图是层次数据模式的一个实例。,层次数据模式是一棵树,其数据结构特点为:在每棵树仅有根结点无双亲。除根结点外的任何结点有且有一个双亲结点,但可以有任意个子女结点。树中无子女的结点称为叶结点。,4)层次序列和层次路径,(1)层次序列 由于存储器是线性的,层次数据模型采用树的先序遍历的次序(即从上向下、自左到右)作为存储次序。这样所生成的序列称为层次序列。上例中的层次数据模式的实例的层次序列如下图所示。,(2)层次路径层次路径是用来指明从层次数据模式的根结点到目标结点的一条查询路径,通常用从根结点到目标结点路径上每个记录值的排序关键字表示。,2.3.2 数据
13、操作,1)数据查询 在层次数据模型中,若要查找一个记录,须从根结点开始,按给定条件沿一个层次路径查找所需要的记录。,下面介绍3个查询操作命令。(1)GU(Get Unique)格式:GU查询条件该命令执行的结果是查找出满足条件的第一个条件。例如,GU 系(系名计算机系),班(班名计科0202),学生;(2)GNP(Get Next within Parent)在当前记录的双亲下,按层次序列查找下一个满足条件的记录。例如,查找计科0202班所有学生的记录的查询操作命令如下:GU 系(系名计算机系),班(班名计科0202),学生;/*找到记录王五*/While not fail do GNP 学生
14、;/*找到当前记录王五的双亲计科0202班的所有学生记录*/,(3)GN(Get Next)从当前记录位置开始,按照层次序列,不受同一双亲的限制,查找当前记录的下一个满足条件的记录。,可以看出,GNP和GN命令通常跟在GU命令后面使用,先由GU命令定位到层次模型中的某个记录,再用GNP和GN命令查询所需记录。,例如,查找计科0202班和计教0201班的所有学生记录的查询操作命令如下:GU 系(系名计算机系),班(班名计科0202),学生;While not fail do GNP 学生;/*找到计科0202班的所有学生记录*/GN 学生;/*找到计教0201班的第一个学生记录,即学生赵山*/W
15、hile not fail do GNP 学生;/*找到计教0201班的所有学生记录*/,2)更新操作,(1)数据插入(INSERT)插入操作可先将插入数据写入系统I/O区,然后指定一个由根记录开始的插入层次路径,完成数据的插入操作。(2)数据删除(DELETE)删除操作是先用查询命令将待删除的记录定位为当前记录,再DELETE命令完成删除任务。当删除一个记录时,则其所从属的所有子女记录都被删除。(3)数据修改(REPLACE)先用查询语句将要修改的记录定位为当前记录,并将该记录读到I/O区,在I/O区对数据进行修改,然后用REPLACE命令可将修改后的记录值写回到数据库中。,2.3.3 数据
16、约束,层次数据模型的数据约束主要是由层次结构的约束造成的。(1)除了根结点外,任何其他结点不能离开其双亲结点而孤立存在。这条约束表明了在插入一个子女记录时,必须与一个约束双亲记录相联系,否则不能插入;在删除一个记录时,其子女记录也将自动被删除。这一约束为数据操作造成了不便。(2)层次数据模型所体现的记录之间的联系只限于二元1:n或1:1的联系,这一约束了用层次模型描述现实世界的能力。对于现实世界中存在的二元m:n联系和多元m:n:p等复杂联系,就不能用层次模型直接进行表达了。通常采用下列的分解法或虚拟记录法来解决这一问题。,分解法,例如,学生记录型和课程记录型是一个m:n联系,将无法用层次模型
17、直接表达学生与课程之间的多对多联系。可以采用分解的方法,把一个二元m:n联系分解成两个二元1:n联系。,虚拟记录法,由上可以看出,这种分解法会导致大量的存储数据冗余。为了减少分解所带来的数据冗余,可以采用虚拟记录法(IMS系统所采用的方法)。,虚拟记录法是在数据库中,如果有一个记录x要在多处被引用,则只存储一份这样的记录,其他需要引用的地方用其指针代替。这种用指针代替的记录称为虚拟记录,记为V.x。右图表示学生和课程间的m:n联系。,(3)由于层次结构中的全部记录都是以有序树的形式组织起来,当对某些层次结构进行修改时,不允许改变原数据库中记录类型之间的双亲子女联系,这使得数据库的适应能力受到限
18、制。(4)虚拟记录的指针必须指向一个实际存在的记录。有虚拟记录指向的记录不得删除。(5)虚拟记录不能为根记录。,2.3.4 层次数据模型的优缺点,层次数据模型的优点主要有:层次模型结构简单、层次分明,便于在计算机内实现。在层次结构中,从根结点到树中任一结点均存在一条唯一的层次路径,这为有效地进行数据操纵提供了条件。在层次结构中除根结点外所有结点有且只有一个双亲结点,故实体集之间的联系可用双亲结点唯一地表示,因此层次模型DBMS对层次结构的数据有较高的处理效率。层次数据模型提供了良好的完整性支持。,层次数据模型的缺点主要有:层次数据模型缺乏直接表达现实世界中非层次型结构的复杂联系,如多对多联系。
19、对插入或删除操作有较多的限制。查询子女结点必须通过双亲结点。,2.4 网状数据模型,2.4.1 基本概念和结构 2.4.2 数据操作 2.4.3 数据约束 2.4.4 网状数据模型的优缺点,2.4.1 基本概念和结构,为了克服层次模型结构描述非层次型事物的局限,20世纪60年代末美国CODASYL委员会提出了网状数据模型。1)记录与数据项(Data Items)与层次数据模型类似,在网状数据模型中,也是以记录为数据的存储单位。记录包含若干数据项,数据项相当于字段。但与层次数据模型中的字段不同,网状数据模型中的数据项不一定是简单的数据类型,也可以是多值的和复合的数据。2)系(Set)在网状数据模
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据模型
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5362303.html