数据库系统概论——数据模型
数据库的发展实际上是数据模型为主线来推进的,数据模型是数据库系统的和核心和,是对现实世界数据特征的抽象,数据模型能够较为真实地描述现实世界、要易于人理解且便于在计算机上实现
两类数据模型
-
概念模型/信息模型
按照用户的观点对数据和信息建模,用于数据库设计
-
逻辑模型和物理模型
- 逻辑模型
逻辑模型按照计算机系统的观点对数据进行建模,用于
DBMS
的实现,包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型- 物理模型
物理模型描述数据在磁盘上的表示和存取方法,是对数据低层的抽象
概念模型
-
主要用于数据库设计
-
数据库设计人员和用户之间交流
-
实体
实体(
Entity
)是客观存在并可相互区分的事物 -
属性
属性(
Atrribute
)是指实体具有的某一特性称为属性 -
码
码(
Key
)是指唯一标识实体的属性集 -
实体型
实体型(
Entity Type
)是指实体名和属性名集合来抽象和刻画同类实体 -
实体集合
实体集(
Entity Set
)是指同一类型实体的集合 -
联系
联系(
Relationship
)分为实体内部和实体之间,实体内部联系组成实体个属性之间的联系,实体之间联系是指不同实体集之间的联系,实体之间有一对一、一对多、多对多等多种类型的联系 -
实体-联系方法
实体-联系方法(
Entity-Relationship Apporach
)是概念模型的一种表示方法,用E-R
图来描述现实世界的概念模型,也称为E-R
模型 -
数据模型的组成
由数据结构、数据操作、完整性约束
三部分组成,分别描述系统的静态特性、动态和完整性约束条件
-
数据结构的类型用来命名数据模型
-
数据操作对数据库中各种对象的实例允许执行的操作的集合,包括操作类型和操作语言
-
数据完整性约束条件是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态及状态的变化,以保证数据的正确、有效和相容
常用的数据模型
格式化模型
-
层次模型(
Hierarchical Model
) -
网状模型(
Network Model
)
关系模型
- 关系模型(
Relation Model
)
对象模型
-
面向对象数据模型(
Object Oriented Data Model
) -
对象关系数据模型(
Object Relational Data Model
)
其他
-
半结构化数据模型(
Semi-structure Data Model
,如XML
) -
非结构化数据模型
-
图模型
层次模型
层次模型用树形结构来表示各类实体以实体间的类型
-
表示方法
- 实体型
用记录类型描述,每个结点表示一个记录类型
- 属性
用字段描述,每个记录类型可包含多个字段
- 联系
用结点之间的连线表示记录类型之间的一对多的联系
-
定义
层次模型是指满足有只有由根节点没有双亲结点且根以外的结点有且只有一个双亲结点
这两个条件的基本层次联系的集合
-
特点
-
结点双亲唯一
-
只能直接处理一对多的是实体联系
-
任何记录只能按路径查找
-
没有一个子女记录值可以脱离双亲记录而独立存在
-
-
数据操纵
增删改查
-
完整性约束条件
-
无相应双亲值不能插入子女结点值
-
删除双亲必须删除结点
-
更新操作应更新所有相应记录,保持数据一致性
-
-
优点
-
数据结构简单清晰
-
查询效率高,性能在关系模型和网状模型之间
-
提供了良好的完整性支持
-
-
缺点
-
结点多对多表示不自然
-
插入和删除限制多
-
查询子女必须通过双亲
-
命令趋于程序化,编程复杂
-
网状模型
网状模型用网状结构来表示各类实体以实体间的类型
-
表示方法(与层次模型相同)
- 实体型
用记录类型描述,每个结点表示一个记录类型
- 属性
用字段描述,每个记录类型可包含多个字段
- 联系
用结点之间的连线表示记录类型之间的一对多的联系
-
定义
满足允许一个以上结点无双亲且一个结点可以有多于一个双亲
这两个条件的基本层次联系的集合
-
特点
-
允许多个结点没有双亲
-
允许一个结点有多个双亲
-
允许两个结点间有多种联系
-
要为每个联系命名并指出与该联系有关的双亲记录和子女记录
-
-
多对多联系的表示
间接表示多对多联系,将多对多联系分解成一对多联系
- 数据操纵
导航式的增删改查
-
完整性约束条件
-
允许插入尚未确定双亲结点的子女结点值
-
允许只删除双亲结点值
-
支持码的概念
-
保证一个联系中双亲与子女之间是一对多的联系
-
定义双亲与子女记录之间的某些约束条件
-
-
优点
-
更好描述多对多的联系
-
良好的性能,存取效率高
-
-
缺点
-
结构复杂,数据规模越大结构越复杂
-
DDL、DML语言发咋
-
记录之间的联系通过存取路径实现,程序需要选择路径,增程序员负担
-
关系模型
-
数据结构
-
关系(
Relationship
)指的是一张表 -
元组(
Tuple
)指的是表中一行 -
属性(
Attribute
)指的是表中的一列 -
主码(
Key
)指的是某个可以唯一确定一个元组的属性集 -
域(
Domain
) 指的是一组具有相同数据类型的值的集合,属性取值范围来自某个域 -
分量指的是元组中的一个属性的值
-
关系模式(
Relational Schema
)指的是对关系的描述
-
-
关系模型必须是规范化的
-
数据操纵
数据操作是集合操作,增删改查,操作对象和结果都是关系
-
完整约束条件
-
实体完整性
-
参照完整性
-
用户定义的完整性
-
-
优点
-
建立在严格的数学概念上
-
概念单一
-
存取路径对用户透明,用户不必关心存取路径
-
-
缺点
-
存取路径对用户透明导致查询效率不如格式化数据
-
为提高性能,必须对用户查询请求进行优化,增加开发数据库管理系统的难度
-
鸣谢
最后
- 由于博主水平有限,不免有疏漏之处,欢迎读者随时批评指正,以免造成不必要的误解