第2章 数据模型与概念模型_1_
- 格式:pdf
- 大小:425.72 KB
- 文档页数:11
第2章 数据模型与概念模型
一、教学目的
1、使学生了解信息世界的描述方法、常见的三种数据模型。
2、使学生掌握概念模型的表示方法。 二、教学重点及难点
概念模型的表示方法。 三、教学时数
2h 四、教学内容
2.1 信息的三种世界及其描述
在数据库中存储和管理的数握,都来自客观事物,那么怎样把现实世界中的客观事物抽象为能用计
算机存储和处理的数据呢?这有一个逐步转化的过程,一般讲,它分为3个阶段,又称为三个世界,即
现实世界、信息世界及计算机世界。 一、信息的三个世界
1、现实世界
现实世界即客观存在的世界。在现实世界中客观存在着各种运动着的物质,即各种事物及事物之间
的联系。客观世界中的事物都有一些特征,人们正是利用这些特征来区分事物。现实世界通过实体、特
征、实体集及联系进行划分和认识。
⑴ 实体
现实世界中存在的可以相互区分的事物或概念称为实体(Entity)。实体可以分为事物实体和概念实
体,例如,一个学生、一个工人、一台机器、一部汽车等是事物实体,一门课、一个班级等称为概念实
体。
⑵ 实体的特征
每个实体都有自己的特征,利用实体的特征(Entity Characteristic)可以区别不同的实体。例如学生通
过“学号”、“姓名”、“年龄”、“性别”、“所在系”几个特征来描述自己。
⑶ 实体集及实体集之间的联系
具有相同特征或能用同样特征描述的实体的集合称为实体集(Entity Set)。例如学生、课程等都是实
体集。实体集不是孤立存在的,实体集之间有着各种各样的联系,例如学生和课程之间有“选课”联系。
2、信息世界
对现实世界中的事物及其联系进行整理、归类等综合分析,就进入信息世界。信息世界一般通过实
体联系模型(E-R图)。“学生”和“课程”两个实体集及这两个实体集之间的联系用实体联系模型表示
见图2.1所示。
3、计算机世界
信息世界中的信息,经过数字化处理形成计算机能够处理的数据,就进入了计算机世界。计算机世
界也叫机器世界或数据世界。也就是将信息世界的实体联系模型转换为符合DBMS所要求的数据模型。
在计算机世界中用到下列术语。
⑴ 数据项
数据项(Item)是对象属性的数据表示。数据项有型和值之分,数据项的型是对数据特性的表示,它通过数据项的名称、数据类型、数据宽度和值域等来描述;数据项的值是其具体取值。
图2.1 “学生”、“课程”及“联系”的实体联系模型 ⑵ 记录
记录(Record)是实例的数据表示。记录有型和值之分:记录的型是结构,由数扮项的型构成;记录
的值表示对象中的一个实例,它的分量是数据项值。
⑶ 文件
文件(File)是对象的数据表示,是同类记录的集合。即同一个文件中的记录类型应是一样的。
⑷ 数据模型
现实世界中的事物反映到计算机世界中就形成了文件的记录结构和记录,事物之间的相互联系就形
成了不同文件间的记录的联系。记录结构及其记录联系的数据化的结果就是数据模型(Data Model)。 二、现实世界、信息世界和计算机世界的关系
现实世界、信息世界和计算机世界的转换关系可以用图2.2表示。
图2.2 信息的三个世界的转换关系 这三个领域之间的术语对应关系如表2.1所示。
表2.1三个领域之间的术语对应关系 2.2 概念模型及其表示
概念模型是对信息世界的实体集、属性及联系等信息的描述形式,即数据库的逻辑模型,通常用实
体联系模型表示。概念模型不依赖计算机及DBMS,它是现实世界的真实全面反映。 一、概念模型的基本概念
1、概念模型涉及的基本概念
⑴ 对象和实例
对象(Object)实体集按其实体型抽象的结果。现实世界中,具有相同性质、服从相同规则的一类事
物(或概念,即实体)的抽象称为对象,对象是实体集信息化(数据化)的结果。对象中的每一个具体的实
体的抽象为该对象的实例(Instance)。以“学生”为例说明。
⑵ 属性
属性(Attribute)为实体的某一方面特征的抽象表示。以“学生”为例说明。
⑶ 主码和次码
码也称关键字(Key),它能够惟一标识一个实体。码可以是属性或属性组,如果码是属性组,则其
中不能含有多余的属性。以“学生”和“课程”为例说明。
实体集中不能惟一标识实体属性的叫次码(Secondary Key)。以“学生”为例说明。
⑷ 域
属性的取值范围称为属性的域(Domain)。如成绩的数据域为[0,100]。
2、实体联系的类型
⑴ 两个实体集之间的联系
① 一对一联系(1:1)
一对一联系如图2.3所示。
图2.3 一对一联系 例如,实体集“企业”和实体集“法人”之间是一对一联系。
② 一对多联系(1:n)
一对多联系如图2.4所示。
例如,实体集“学校”和实体集“学生” 之间是一对多联系。
③ 多对多联系(m:n)
多对多联系如图2.5所示。
例如,实体集“学生”和“课程”之间是多对多联系。
⑵ 多实体集之间的联系
两个以上的实体集之间也会存在有联系,其联系类型为:一对一、一对多、多对多3种。
① 多实体集之间的一对多联系
图2.4 一对多联系
图2.5 多对多联系 设实体集E1,E2,…,En,如果Ej (j=1,2,…,n)与其他实体集E1,E2,…,Ej-l,Ej+l,…,En
之间存在有一对多的联系,则:对于Ej中的一个给定实体,可以与其他实体集Ei (i≠j)中的一个或多
个实体联系,而实体集Ei (i≠j)中的一个实体最多只能与Ej中的一个实体联系,则称Ej与E1,E2,…,
Ej-l,Ej+l,…,En之间的联系是一对多的。
例如,实体集“课程”与实体集“教师”、实体集“教材” 之间的联系是一对多的。一门课程可以
有若干教师讲授,一个教师只讲授一门课程;一门课程使用若干本参考书,每一本参考书只供一门课程
使用。
② 多实体集之间的多对多联系
在两个以上的多个实体集之间,当一个实体集与其他实体集之间均存在多对多联系,而其他实体集
之间没有联系时,这种联系称为多实体集间的多对多联系。
例如,有三个实体集:供应商、项目、零件,一个供应商可以供给多个项目多种零件;每个项目可
以使用多个供应商供应的零件;每种零件可由不同供应商供给。因此,供应商、项目、零件三个实体型
之间是多对多的联系。
⑶ 实体集内部的联系
在一个实体集的实体之间也可以存在一对多或多对多的联系。例如,职工是一个实体集,职工中有
领导,而领导自身也是职工。职工实体集内部具有领导与被领导的联系,即某一个职工领导若干名职工,
而一个职工仅被一个领导所管,这种联系是一对多的联系。 二、概念模型的表示方法
概念模型常用E-R图表示,E-R图中实体集、属性、联系的表示符号如图2.6
所示。 图2.6 E-R图中的符号 注意的是,在联系的两端必须标明联系的的类型。
例如,实体集“学生”和“课程”之间是多对多联系,用E-R图表示如图2.7所示。
图2.7实体集“学生”和“课程”之间是多对多联系 上述讲的其它联系类型的例子如图2.8所示,图中将各个实体集的属性省略了。
图2.8 上述讲的其它联系类型的例子
2.3 常见的三种数据模型
数据库系统中最常使用的数据模型是层次模型、网状模型和关系模型。 一、数据模型概述
一个数据模型应当描述数据对象的3个方面的特性:数据结构、数据操作和完整性约束条件。
1、数据结构 数据结构是所研究的对象类型的集合,它描述数据对象的数据类型、内容、属性,以及数据对象之
间联系。例如,关系模型中的关系和属性。
在数据库系统中,通常按照数据结构的类型晥命名数据模型,例如层次结构、网状结构和关系结构
的数据模型分别被命名为层次模型、网状模型和关系模型。
2、数据操作
数据操作是指对数据库中各种数据对象允许执行的操作集合。数据操作包括操作对象和有关的操作
规则两部分。数据库中的数据操作主要有数据检索和数据更新(即插入、删除或修改数据的操作)两大类
操作。
数据模型必须对数据库中的全部数据操作进行定义,指明每项数据操作的确切含义、操作对象、操
作符号、操作规则以及对操作的语言约束等。
3、完整性约束条件
数据的完整性约束条件是数据完整性规则的集合。它是对数据及数据之间关系的制约和依存规则,
用于保证数据库的完整性和一致性。 二、常见的数据模型
1、层次模型
⑴ 层次模型的数据结构
① 层次模型的定义
在数据结构中,定义满足下面两个条件的基本层次联系的集合为层次模型:
1)有且仅有一个结点没有双亲结点,这个结点称为根结点。
2)除根结点之外的其他结点有且只有一个双亲结点。
② 层次模型的数据表示方法
在层次模型中,实体集使用记录表示, 记录型包含若干个字段,字段用于描述实体的属性;每个记
录定义一个码字段,确定记录的顺序,码字段是惟一的;记录用结点表示;记录之间的联系用结点之间
的连线表示。例如,在教学管理系统中,教学院系、教研室、教师、学生之间的关系可以一个层次模型
表示,如图2.9所示,为教学管理系统的层次模型的型,如图2.10所示,为教学管理系统的层次模型
在图2.9这个型下的值。
图2.9 教学管理系统的层次模型
图2.10 教学管理系统的层次模型的一个实例 ③ 层次模型的特点
对于任何一个给定的记录值 , 只有按其路径查看 , 才能显示出它的全部意义 , 没有一个子女记
录值能够脱离双亲记录值而独立存在。例如对于图 2 .10 中 的学生记录值 (92003, 许明 ,数据库),
如果不指出它的双亲结点 , 就不知道它是哪个教研室,哪个院系的教师。
⑵ 层次模型中多对多联系的表示
层次模型只能表示一对多(包括一对一)的联系 , 而不能直接地表示多对多的联系。当有多对多
联系需要在层次模型中表示时,应采用分解的方法,即将多对多的联系分解成一对多的联系,使用多个
一对多联系来表示一个多对多联系。分解方法主要有两种:冗余结点法和虚拟结点法。
① 冗余结点法
冗余结点分解法通过增加冗余结点的方法将多对多的联系转换成一对多的联系。例如,产品和供应
商之间的供应联系是多对多的联系,如图2.11所示。要设计两组产品和供应商记录 : 一组表示一种产
品可由多个的供应商供应的1:n 联系;另一组表示一个供应商可供应多种产品的 1:n 联系 , 其基本
层次联系如图 2.12 所示。
图2.11 产品和供应商之间的多对多的联系