第2章 数数据模型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网状模型的数据操纵主要包括查询、插入、删 除和修改数据。
(1)插入操作允许插入尚未确定双亲结点值的子女结点 值。 (2)删除操作允许只删除双亲结点值。 (3)更新操作只需要更新指定记录即可。 (4)查询操作可以有多种方法,可根据具体情况选用。
它没有像层次数据库那样有严格的完整性约束 条件,只提供一定的完整性约束。
信息世界 (Information World)
现实世界在人们头脑中的反映,又称概念世界
数据世界 (Data World)
信息世界中的信息数据化后对应的产物
返回
5
现实世界 认识抽象 信息世界 计算机世界
图2.1 数据处理的抽象和转换过程
返回
6
2.2 概念模型
在信息世界中,常用的主要概念如下: 1. 实体(Entity) 客观存在并且可以相互区别的“事物”称为实 体。 实体可以是可触及的对象,如一个学生,一本 书,一辆汽车;也可以是抽象的事件,如一堂 课,一次比赛等。 2. 属性(Attributes) 实体的某一特性称为属性。
T1 T2 T3 T4 T5
47 28 30 51 39
1500 800 900 1600 1300
返回
30
S(学生表)
SNO 学号 SN 姓名 SEX 性别 AGE 年龄 DEPT 系别
S1
S2 S3
赵亦
钱尔 孙珊
女
男 女
17
18 20
计算机
信息 信息
S4
S5 S6
李思
周武 吴丽
男
男 女
21
E-R模型的图形表示称为E-R图
用矩形表示实体,在框内写上实体名。 用椭圆形表示实体的属性,并用无向边把实体和属 性连接起来。 用菱形表示实体间的联系,在菱形框内写上联系名, 用无向边分别把菱形框与有关实体连接起来,在无 向边旁注明联系的类型。 返回
13
例如:学生实体和班级实体的联系的E-R图。
如学生实体有学号、姓名、年龄、性别、系等方面的 属性。 返回
7
3. 实体型(Entity Type)
若干个属性型组成的集合可以表示一个实体的类型, 简称实体型。
如学生(学号,姓名,年龄,性别,系)就是一个实体型。
4. 实体集(Entity Set)
同型实体的集合称为实体集。
如所有的学生、所有的课程等。
A a1 a2 a3 a4 B b1 b2 b3 b4 A a1 a2 a3 B A a1 a2 a3 a4 B b1 b2 b3 b4
b1 b2 b3 b4 b4
图2.2 不同实体集实体之间的联系
返回
10
2.2.2 实体-联系模型
E-R(Entity-Relationship)模型
直接从现实世界中抽象出实体类型及实体间的联系, 是对现实世界的一种抽象,它的主要成分是实体、 联系和属性。
关系模型中每个二维表又可称为关系,所以关 系模型是“关系框架”的集合。 关系模型与层次模型、网状模型不同,它是建 立在严格的数学概念之上的。 图2.7给出了教学数据库的关系模型及其实例, 包含五个关系:教师关系T、学生关系S、课程 关系C、选课关系SC和授课关系TC,分别对 应五张表。
返回
返回
18
图2.4是层次模型有向树的示意图。结点 A为根结点,D,F,G为叶结点,B,D为兄 结点……
A B C
D
E
F
图2.4 层次模型有向树的示意图
返回
19
1. 层次模型的特征
(1)只有一个结点没有双亲结点,称为根结点。 (2)根结点以外的其他结点有且只有一个双亲结点。
例如:以下是一个层次模型的例子,如图2.5所 示。
返回
16
数据结构
数据结构是对计算机的数据组织方式和数据之间联系进行框 架性描述的集合,是对数据库静态特征的描述。
数据操作
数据操作是指数据库中各记录允许执行的操作的集合,包括 操作方法及有关的操作规则等,例如插入、删除、修改、检 索、更新等操作,是对数据库动态特征的描述。
数据的完整性约束
学号
姓名 n 属于
班级名
性别
学生
1
班级 班主任
出生日期
班级
返回
14
例如:有一个高等学校信息数据库系统,包含学生、教 师、专业、教科书和课程五个实体,实体联系的E-R图
1
所属 课程名
N
N
课程号
学分
职工号 教学
N
教科书
书号 书名
M
订购
N
专业
1
开课
课程
M
M
教师
姓名 性别
出版社
专业号
专业名
1
N
选修
N
成绩 民族
19 20
自动化
计算机 自动化
返回
31
C(课程表)
CNO 课程号 C1 C2 CN 课程名 程序设计 微机原理 CT 课时 60 80
C3
C4 C5 C6 C7
数字逻辑
数据结构 数据库 编译原理 操作系统
60
80 60 60 60
返回
32
SC(选课表)
SNO 学号 S1 S1 CNO 课程号 C1 C2 SCORE 成绩 90 85
返回
27Fra Baidu bibliotek
2.3.3 关系模型
关系模型是发展较晚的一种模型 关系数据库已成为目前应用最广泛的数据库系 统,如现在广泛使用的小型数据库系统Foxpro、 Acess,大型数据库系统Oracle、Informix、 Sybase、SQL Server等都是关系数据库系统。
返回
28
1. 关系模型的基本概念
属于
学生
学号
姓名
性别
年龄 15
返回
2.3 数据模型
数据模型是对客观事物及联系的数据描述,是 概念模型的数据化 数据模型的选择,是设计数据库的首要任务。 数据模型通常由数据结构、数据操作和数据的 完整性约束三部分组成 目前最常用的数据模型有
层次模型(Hierarchical Model) 网状模型(Network Model) 关系模型(Relational Model)
返回
24
网状模型的特征
(1)有一个以上的结点没有双亲; (2)至少有一个结点可以有多于一个双亲。 如:学生和课程间的关系。一个学生可以选修 多门课程,一门课程可以由多个学生选修。如 图2.6所示
学生1 学生2 学生3 学生4 学生5
课程1
课程2
课程3
图2.6 学生与课程的网状模型 返回
25
2. 网状模型的数据操纵与完整性约束
TS
学校
D#
DN DL
学院1 学院2 学院3
教研室R
R#
RN
学生S
S#
SN
SS
系1 系2 教研室2
T#
TN TD
教研室1
图2.5 TS数据库模型 返回
20
2. 层次模型的数据操纵与数据完整性约束
层次模型的数据操纵主要有查询、插入、删除和修改, 进行插入、删除和修改操作时要满足层次模型的完整 性约束条件。
如:班级与学生、公司与职员、省与市。
(3)多对多(m:n) 实体集A中的一个实体与实体集B中的多个实体相对应, 反之,实体集B中的一个实体与实体集A中的多个实体 相对应。记作(m:n)。
如:教师与学生,学生与课程,工厂与产品。
返回
9
实际上,一对一联系是一对多联系的特例,而 一对多联系又是多对多联系的特例。 可以用图形来表示两个实体型之间的这三类联 系,如图书 2.2所示。
返回
23
2.3.2 网状模型
现实世界中事物之间的联系更多的是非层次关 系的,用层次模型表示这种关系很不直观, 网状模型克服了这一弊病,可以清晰的表示这 种非层次关系。 网状模型取消了层次模型的两个限制,两个或 两个以上的结点都可以有多个双亲结点,则此 时有向树变成了有向图,该有向图描述了网状 模型。
(1)一对一联系(1:1) 实体集A中的一个实体至多与实体集B中的一个实体相 对应,反之亦然,则称实体集A与实体集B为一对一的 联系。记作1:1。
如:班级与班长,观众与座位,病人与床位。
(2)一对多联系(1:n) 实体集A中的一个实体与实体集B中的多个实体相对应, 反之,实体集B中的一个实体至多与实体集A中的一个 实体相对应。记作1:n。
返回
26
3. 网状模型的优缺点
网状模型的优点主要有: (1)能更为直接地描述客观世界,可表示实体 间的多种复杂联系。 (2)具有良好的性能和存储效率 网状模型的缺点主要有 (1)结构复杂,其DDL语言极其复杂。 (2)数据独立性差,由于实体间的联系本质上 是通过存取路径表示的,因此应用程序在访问 数据时要指定存取路径。
5. 码(Key)
能唯一标识一个实体的属性或属性集称为实体的码。
如学生的学号,学生的姓名可能有重名,不能作为学生实体 的码。
6. 联系(Relationship)
在现实世界中,事物内部以及事物之间是有联系的, 这些联系同样也要抽象和反映到信息世界中来 返回
8
两个实体型之间的联系有如下三种类型:
返回
34
(5)候选关键字或候选码
29
T(教师表)
TNO 教师号 TN 姓名 李力 王平 刘伟 张雪 张兰 SEX 性别 男 女 男 女 女 AGE 年龄 PROF 职称 教授 讲师 讲师 教授 副教授 SAL 工资 COMM 岗位津 贴 3000 1200 1200 3000 2000 DEPT 系别 计算机 信息 计算机 自动化 信息
返回
33
(1)关系(Relation) 一个关系对应一张二维表,上图的五张表对应五个关 系。 (2)元组(Tuple) 表格中的一行,如S表中的一个学生记录即为一个元组。 (3)属性(Attribute) 表格中的一列,相当于记录中的一个字段,如S表中有 五个属性(学号,姓名,性别,年龄,系别)。 (4)关键字(Key) 可唯一标识元组的属性或属性集,也称为关系键或主 码,如S表中学号可以唯一确定一个学生,为学生关系 的主码
在数据库中用数据模型来抽象、表示和处理 现实世界中的数据。
首先将现实世界的事物及联系抽象成信息世界的 信息模型, 然后再抽象成计算机世界的数据模型。
数据加工经历了现实世界、信息世界和计算 机世界三个不同的世界,经历了两级抽象和 转换。
返回
4
三种世界
现实世界(Real World)
存在于人脑之外的客观世界
TC(授课表)
TNO 教师号 T1 T1 CNO 课程号 C1 C4
S2
S2 S2 S2 S3 S3 S3 S4 S4 S4 S5
C5
C6 C7 C5 C1 C2 C4 C1 C2 C3 C2
57
80
T2
T3 T3
C5
C1 C5 C2 C3 C5 C7
70 0 70 85 93 85 83 89
T4 T4 T5 T5
第2章 数据模型
返回
1
内 容
本章主要介绍信息的三种世界、概念模 型的基本概念和E-R图的画法以及最常 见的三种数据模型。
2.1 信息的三种世界 2.2 概念模型 2.3 数据模型
返回
2
在数据库系统的形式化结构 中如何抽象、表示、处理现 实世界中的信息和数据呢?
返回
3
2.1 信息的三种世界
进行插入操作时,如果没有相应的双亲结点值就不能插入子 女结点值; 进行删除操作时,如果删除双亲结点值,则相应的子女结点 值也被同时删除; 修改操作时,应修改所有相应的记录,以保证数据的一致性。
返回
21
3. 层次模型的优缺点
层次模型的优点主要有: (1)比较简单,只需很少几条命令就能操纵数 据库,比较容易使用。 (2)结构清晰,结点间联系简单,只要知道每 个结点的双亲结点,就可知道整个模型结构。 现实世界中许多实体间的联系本来就呈现出一 种很自然的层次关系,
数据的约束条件是关于数据状态和状态变化的一组完整性约 束规则的集合,以保证数据的正确性、有效性和一致性。
其中层次模型和网状模型是早期的数据模型,统称为 非关系模型。 这三种数据模型的根区别在于数据结构不同,即数据 之间联系的表示方式不同。
返回
17
2.3.1 层次模型
层次模型是数据库系统中最早出现的数据模型, IBM 公 司 的 IMS ( Information Management System)数据库管理系统是典型代表。 现实世界中,许多实体之间的联系都表现出一 种很自然的层次关系,如家族关系,行政机构 等。 层次模型用一棵“有向树”的数据结构来表示 各类实体以及实体间的联系。
如表示行政层次,家族关系很方便。
(3)它提供了良好的数据完整性支持。
返回
22
层次模型的缺点主要有: (1)不能直接表示两个以上的实体型间的复杂 的联系和实体型间的多对多联系,只能通过引 入冗余数据或创建虚拟结点的方法来解决,易 产生不一致性。 (2)对数据的插入和删除的操作限制太多。 (3)查询子女结点必须通过双亲结点。
(1)插入操作允许插入尚未确定双亲结点值的子女结点 值。 (2)删除操作允许只删除双亲结点值。 (3)更新操作只需要更新指定记录即可。 (4)查询操作可以有多种方法,可根据具体情况选用。
它没有像层次数据库那样有严格的完整性约束 条件,只提供一定的完整性约束。
信息世界 (Information World)
现实世界在人们头脑中的反映,又称概念世界
数据世界 (Data World)
信息世界中的信息数据化后对应的产物
返回
5
现实世界 认识抽象 信息世界 计算机世界
图2.1 数据处理的抽象和转换过程
返回
6
2.2 概念模型
在信息世界中,常用的主要概念如下: 1. 实体(Entity) 客观存在并且可以相互区别的“事物”称为实 体。 实体可以是可触及的对象,如一个学生,一本 书,一辆汽车;也可以是抽象的事件,如一堂 课,一次比赛等。 2. 属性(Attributes) 实体的某一特性称为属性。
T1 T2 T3 T4 T5
47 28 30 51 39
1500 800 900 1600 1300
返回
30
S(学生表)
SNO 学号 SN 姓名 SEX 性别 AGE 年龄 DEPT 系别
S1
S2 S3
赵亦
钱尔 孙珊
女
男 女
17
18 20
计算机
信息 信息
S4
S5 S6
李思
周武 吴丽
男
男 女
21
E-R模型的图形表示称为E-R图
用矩形表示实体,在框内写上实体名。 用椭圆形表示实体的属性,并用无向边把实体和属 性连接起来。 用菱形表示实体间的联系,在菱形框内写上联系名, 用无向边分别把菱形框与有关实体连接起来,在无 向边旁注明联系的类型。 返回
13
例如:学生实体和班级实体的联系的E-R图。
如学生实体有学号、姓名、年龄、性别、系等方面的 属性。 返回
7
3. 实体型(Entity Type)
若干个属性型组成的集合可以表示一个实体的类型, 简称实体型。
如学生(学号,姓名,年龄,性别,系)就是一个实体型。
4. 实体集(Entity Set)
同型实体的集合称为实体集。
如所有的学生、所有的课程等。
A a1 a2 a3 a4 B b1 b2 b3 b4 A a1 a2 a3 B A a1 a2 a3 a4 B b1 b2 b3 b4
b1 b2 b3 b4 b4
图2.2 不同实体集实体之间的联系
返回
10
2.2.2 实体-联系模型
E-R(Entity-Relationship)模型
直接从现实世界中抽象出实体类型及实体间的联系, 是对现实世界的一种抽象,它的主要成分是实体、 联系和属性。
关系模型中每个二维表又可称为关系,所以关 系模型是“关系框架”的集合。 关系模型与层次模型、网状模型不同,它是建 立在严格的数学概念之上的。 图2.7给出了教学数据库的关系模型及其实例, 包含五个关系:教师关系T、学生关系S、课程 关系C、选课关系SC和授课关系TC,分别对 应五张表。
返回
返回
18
图2.4是层次模型有向树的示意图。结点 A为根结点,D,F,G为叶结点,B,D为兄 结点……
A B C
D
E
F
图2.4 层次模型有向树的示意图
返回
19
1. 层次模型的特征
(1)只有一个结点没有双亲结点,称为根结点。 (2)根结点以外的其他结点有且只有一个双亲结点。
例如:以下是一个层次模型的例子,如图2.5所 示。
返回
16
数据结构
数据结构是对计算机的数据组织方式和数据之间联系进行框 架性描述的集合,是对数据库静态特征的描述。
数据操作
数据操作是指数据库中各记录允许执行的操作的集合,包括 操作方法及有关的操作规则等,例如插入、删除、修改、检 索、更新等操作,是对数据库动态特征的描述。
数据的完整性约束
学号
姓名 n 属于
班级名
性别
学生
1
班级 班主任
出生日期
班级
返回
14
例如:有一个高等学校信息数据库系统,包含学生、教 师、专业、教科书和课程五个实体,实体联系的E-R图
1
所属 课程名
N
N
课程号
学分
职工号 教学
N
教科书
书号 书名
M
订购
N
专业
1
开课
课程
M
M
教师
姓名 性别
出版社
专业号
专业名
1
N
选修
N
成绩 民族
19 20
自动化
计算机 自动化
返回
31
C(课程表)
CNO 课程号 C1 C2 CN 课程名 程序设计 微机原理 CT 课时 60 80
C3
C4 C5 C6 C7
数字逻辑
数据结构 数据库 编译原理 操作系统
60
80 60 60 60
返回
32
SC(选课表)
SNO 学号 S1 S1 CNO 课程号 C1 C2 SCORE 成绩 90 85
返回
27Fra Baidu bibliotek
2.3.3 关系模型
关系模型是发展较晚的一种模型 关系数据库已成为目前应用最广泛的数据库系 统,如现在广泛使用的小型数据库系统Foxpro、 Acess,大型数据库系统Oracle、Informix、 Sybase、SQL Server等都是关系数据库系统。
返回
28
1. 关系模型的基本概念
属于
学生
学号
姓名
性别
年龄 15
返回
2.3 数据模型
数据模型是对客观事物及联系的数据描述,是 概念模型的数据化 数据模型的选择,是设计数据库的首要任务。 数据模型通常由数据结构、数据操作和数据的 完整性约束三部分组成 目前最常用的数据模型有
层次模型(Hierarchical Model) 网状模型(Network Model) 关系模型(Relational Model)
返回
24
网状模型的特征
(1)有一个以上的结点没有双亲; (2)至少有一个结点可以有多于一个双亲。 如:学生和课程间的关系。一个学生可以选修 多门课程,一门课程可以由多个学生选修。如 图2.6所示
学生1 学生2 学生3 学生4 学生5
课程1
课程2
课程3
图2.6 学生与课程的网状模型 返回
25
2. 网状模型的数据操纵与完整性约束
TS
学校
D#
DN DL
学院1 学院2 学院3
教研室R
R#
RN
学生S
S#
SN
SS
系1 系2 教研室2
T#
TN TD
教研室1
图2.5 TS数据库模型 返回
20
2. 层次模型的数据操纵与数据完整性约束
层次模型的数据操纵主要有查询、插入、删除和修改, 进行插入、删除和修改操作时要满足层次模型的完整 性约束条件。
如:班级与学生、公司与职员、省与市。
(3)多对多(m:n) 实体集A中的一个实体与实体集B中的多个实体相对应, 反之,实体集B中的一个实体与实体集A中的多个实体 相对应。记作(m:n)。
如:教师与学生,学生与课程,工厂与产品。
返回
9
实际上,一对一联系是一对多联系的特例,而 一对多联系又是多对多联系的特例。 可以用图形来表示两个实体型之间的这三类联 系,如图书 2.2所示。
返回
23
2.3.2 网状模型
现实世界中事物之间的联系更多的是非层次关 系的,用层次模型表示这种关系很不直观, 网状模型克服了这一弊病,可以清晰的表示这 种非层次关系。 网状模型取消了层次模型的两个限制,两个或 两个以上的结点都可以有多个双亲结点,则此 时有向树变成了有向图,该有向图描述了网状 模型。
(1)一对一联系(1:1) 实体集A中的一个实体至多与实体集B中的一个实体相 对应,反之亦然,则称实体集A与实体集B为一对一的 联系。记作1:1。
如:班级与班长,观众与座位,病人与床位。
(2)一对多联系(1:n) 实体集A中的一个实体与实体集B中的多个实体相对应, 反之,实体集B中的一个实体至多与实体集A中的一个 实体相对应。记作1:n。
返回
26
3. 网状模型的优缺点
网状模型的优点主要有: (1)能更为直接地描述客观世界,可表示实体 间的多种复杂联系。 (2)具有良好的性能和存储效率 网状模型的缺点主要有 (1)结构复杂,其DDL语言极其复杂。 (2)数据独立性差,由于实体间的联系本质上 是通过存取路径表示的,因此应用程序在访问 数据时要指定存取路径。
5. 码(Key)
能唯一标识一个实体的属性或属性集称为实体的码。
如学生的学号,学生的姓名可能有重名,不能作为学生实体 的码。
6. 联系(Relationship)
在现实世界中,事物内部以及事物之间是有联系的, 这些联系同样也要抽象和反映到信息世界中来 返回
8
两个实体型之间的联系有如下三种类型:
返回
34
(5)候选关键字或候选码
29
T(教师表)
TNO 教师号 TN 姓名 李力 王平 刘伟 张雪 张兰 SEX 性别 男 女 男 女 女 AGE 年龄 PROF 职称 教授 讲师 讲师 教授 副教授 SAL 工资 COMM 岗位津 贴 3000 1200 1200 3000 2000 DEPT 系别 计算机 信息 计算机 自动化 信息
返回
33
(1)关系(Relation) 一个关系对应一张二维表,上图的五张表对应五个关 系。 (2)元组(Tuple) 表格中的一行,如S表中的一个学生记录即为一个元组。 (3)属性(Attribute) 表格中的一列,相当于记录中的一个字段,如S表中有 五个属性(学号,姓名,性别,年龄,系别)。 (4)关键字(Key) 可唯一标识元组的属性或属性集,也称为关系键或主 码,如S表中学号可以唯一确定一个学生,为学生关系 的主码
在数据库中用数据模型来抽象、表示和处理 现实世界中的数据。
首先将现实世界的事物及联系抽象成信息世界的 信息模型, 然后再抽象成计算机世界的数据模型。
数据加工经历了现实世界、信息世界和计算 机世界三个不同的世界,经历了两级抽象和 转换。
返回
4
三种世界
现实世界(Real World)
存在于人脑之外的客观世界
TC(授课表)
TNO 教师号 T1 T1 CNO 课程号 C1 C4
S2
S2 S2 S2 S3 S3 S3 S4 S4 S4 S5
C5
C6 C7 C5 C1 C2 C4 C1 C2 C3 C2
57
80
T2
T3 T3
C5
C1 C5 C2 C3 C5 C7
70 0 70 85 93 85 83 89
T4 T4 T5 T5
第2章 数据模型
返回
1
内 容
本章主要介绍信息的三种世界、概念模 型的基本概念和E-R图的画法以及最常 见的三种数据模型。
2.1 信息的三种世界 2.2 概念模型 2.3 数据模型
返回
2
在数据库系统的形式化结构 中如何抽象、表示、处理现 实世界中的信息和数据呢?
返回
3
2.1 信息的三种世界
进行插入操作时,如果没有相应的双亲结点值就不能插入子 女结点值; 进行删除操作时,如果删除双亲结点值,则相应的子女结点 值也被同时删除; 修改操作时,应修改所有相应的记录,以保证数据的一致性。
返回
21
3. 层次模型的优缺点
层次模型的优点主要有: (1)比较简单,只需很少几条命令就能操纵数 据库,比较容易使用。 (2)结构清晰,结点间联系简单,只要知道每 个结点的双亲结点,就可知道整个模型结构。 现实世界中许多实体间的联系本来就呈现出一 种很自然的层次关系,
数据的约束条件是关于数据状态和状态变化的一组完整性约 束规则的集合,以保证数据的正确性、有效性和一致性。
其中层次模型和网状模型是早期的数据模型,统称为 非关系模型。 这三种数据模型的根区别在于数据结构不同,即数据 之间联系的表示方式不同。
返回
17
2.3.1 层次模型
层次模型是数据库系统中最早出现的数据模型, IBM 公 司 的 IMS ( Information Management System)数据库管理系统是典型代表。 现实世界中,许多实体之间的联系都表现出一 种很自然的层次关系,如家族关系,行政机构 等。 层次模型用一棵“有向树”的数据结构来表示 各类实体以及实体间的联系。
如表示行政层次,家族关系很方便。
(3)它提供了良好的数据完整性支持。
返回
22
层次模型的缺点主要有: (1)不能直接表示两个以上的实体型间的复杂 的联系和实体型间的多对多联系,只能通过引 入冗余数据或创建虚拟结点的方法来解决,易 产生不一致性。 (2)对数据的插入和删除的操作限制太多。 (3)查询子女结点必须通过双亲结点。