目录
一:什么是数据模型
数据模型:计算机是不可能直接处理现实世界中的具体事物的,所以人们必须事先把具体事物转化为计算机能够处理的数据。因此数据模型是对现实世界数据特征的抽象,也即数据模型是用来描述数据、组织数据和对数据进行操作的。它应该满足下面三点要求
- 比较真实地模拟现实世界
- 容易被人理解
- 便于在计算机上实现
二:两类数据模型
就像在建筑设计和施工的不同阶段需要不同图纸一样,在开发实施数据库应用系统中也需要使用不同的数据模型,根据模型应用的不同目的,可分为两大类
- 概念模型(信息模型)
- 逻辑模型和物理模型
为了把现实世界中的具体事物抽象、组织为某一数据库管理系统支持的数据模型,人们常常首先将现实世界抽象为信息世界,然后将信息世界转换为机器世界。也就是说,首先把现实世界中的客观对象抽象为某一种信息结构,这种信息结构并不依赖于具体的计算机系统,不是某一个数据库管理系统支持的数据模型,而是概念级的模型:然后再把概念模型转换为计算机上某一数据库管理系统支持的数据模型
- 从现实世界到概念模型的转换是由数据库设计人员完成的
- 从概念模型到逻辑模型的转换可由数据库设计人员完成
- 从逻辑模型到物理模型的转换主要是由数据库管理系统完成
(1)概念模型(信息模型)
A:定义
概念模型:是按用户的观点来对数据和信息建模,用于数据库设计
B:相关术语
实体: 客观存在并可以相互区别的事物。实体可以是具体的人、事、物,也可以是抽象的概念或联系
- 比如职工、学生、学生的一次选课、教师与院系的工作关系
属性: 实体所具有的某一特性。一个实体可以由若干属性刻画
- 比如(201315121, 张山,男,199505, 计算机系,2013) 即表征了一个学生
码: 唯一标识实体的属性
- 比如人的身份证号
实体型:用实体名及其属性集合来抽象和刻画同类实体
- 比如学生(学号,姓名,性别,出生年月,所在院系)就是一个实体型
实体集:同一类型实体的集合
- 例如全体学生就是一个实体集
联系:在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体集之间的联系
- 实体之间的联系有一一对一、-对多和多对多 等多种类型
C:概念模型的一种表示方法:实体-联系方法
实体联系方法用E-R图来描述现实世界的概念模型,所刻画的某些也称为E-R模型
(2)逻辑模型和物理模型
逻辑模型:是按计算机系统的观点对数据建模,主要用于数据库管理系统的实现。主要包括
- 层次模型
- 网状模型
- 关系模型
- 面向对象数据模型
- 对象关系数据模型
- 半结构化数据模型
物理模型:是对数据最底层的抽象,它描述数据在系统内部的表示方式和存取方法,或在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。数据库设计人员需要了解和选择物理模型,但用户不需要考虑物理细节
三:数据模型的组成要素
数据结构:数据结构是所研究的对象类型的集合
数据操作:是指对数据库中各种对象(型)的实例(值)允许执行的操作及有关的操作规则
- 查询
- 更新
数据的完整性约束条件:数据的完整性约束条件是一组完整性规则的集合,规定数据库状态及状态变化所应满足的条件,以保证数据的正确性、有效性和相容性
- 实体完整性
- 参照完整性
四:层次模型、网状模型和关系模型
层次模型和网状模型逐渐已被关系模型取代,所以对于前两个重点掌握概念即可,关系模型是重点,同时关系模型对应的关系数据库将在第二章重点介绍
(1)层次模型
A:层次模型的数据结构(二叉树)
在数据库中定义满足下面两个条件的基本层次联系的集合就为层次模型
- 有且只有一个结点没有双亲结点,此结点为根节点
- 根结点以外的所有结点有且只有一个双亲结点
在层次模型中每个结点表示一个记录类型,记录类型之间的联系用结点之间的连线(有向边)表示,这种联系是父子之间的一对多的联系
例如
B:层次模型优缺点(了解)
优点
- 层次模型的数据结构较为简单清晰
- 层次模型的查询效率高
- 层次模型提供了良好的完整性支持
缺点
- 层次模型不能很好的表示多对多联系
- 插入,删除麻烦,编写程序复杂
- 查询子女结点必须通过双亲结点
- 由于结构严密,层次命令趋于程序化
(2)网状模型
A:网状模型的数据结构(图)
在数据库中定义满足下面两个条件的基本层次联系的集合就为网状模型
- 允许一个以上的结点无双亲
- 一个结点可以有多于一个的双亲
例如
B:网状模型的优缺点(了解)
优点
- 能够更为直接地描述现实世界
- 具有良好的性能,存取效率较高
缺点
- 结构复杂,不利于用户掌握
- 其DDL、DML复杂,嵌入高级语言中也难以让用户掌握
- 用户需要了解结构细节,加重了编写程序的负担
(3)关系模型
A:关系模型的数据结构
关系不同于上面的两种模型,它是建立在严格的数学概念上的(更严格的定义在二章给出)。
从用户的角度看,关系模型由一组关系组成,每个关系的数据结构是一张规范化的二维表
涉及术语如下
关系:一个关系对应一张表
元组:表中一行或者是一条记录叫做一个元组
属性:表中一列叫做一个属性,给每一个属性起一个名称叫做属性名
码:用于唯一确定一个元组
域:属性的取值范围
分量:元组的每一个属性值,关系的每一个分量都不可以再分
关系模式:对关系的描述,必须是规范化的
- 关系名(属性1,属性2,... ,属性n)
B:关系模型的优缺点
优点
- 建立在严格的数学概念的基础上
- 关系模型的概念单一,无论实体还是联系都用关系表示,对数据的检索和更新结果也是关系。因此简单、清晰,易用
- 关系模型的存取路径对用户透明
缺点
- 查询效率往往不如格式化数据模型
- 开发相应数据库管理系统难度大