数据库原理(二)- 数据模型
- 数据模型是什么?
- 数据模型的分类
- 物理模型
- 概念模型
- 逻辑模型
- 层次模型
- 网状模型
- 关系模型
- 数据模型的组成要素
- 数据库原理目录
- 借鉴
数据模型是什么?
数据模型(Data Model)是一种模型,它是对现实世界数据特征的抽象。可以说数据模型是用来描述数据、组织数据和对数据进行操作的,是数据库系统的核心和基础。
数据模型的分类
数据模型应满足三方面要求,一是能比较真实地模拟现实世界,二是容易为人所理解,三是便于在计算机上实现,分别对应概念模型、逻辑模型和物理模型。通常分为两类数据模型,第一类是概念模型,第二类是逻辑模型和物理模型。
物理模型
物理模型是对数据最底层的抽象,它描述数据在系统内部的表示方式和存取方法,或在磁盘或磁带上的存储方式和存储方法,是面向计算机系统的
概念模型
由上图可以概念模型实际上是现实世界到机器世界的一个中间层次,用于信息世界的建模,是现实世界到信息世界的第一层抽象,在概念模型中有一些基本概念,如图所示:
逻辑模型
逻辑模型是按计算机系统的观点对数据建模,主要用于数据库管理系统的实现。常用的逻辑模型主要有层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型和半结构化数据模型,这里详细说一下前三种。
层次模型
层次模型是用树形结构来表示各类实体以及实体间的联系,如公司的行政系统、家族族谱等
层次模型的数据结构
- 有且只有一个结点没有双亲结点,这个结点称为根节点
- 根以外的其他结点有且只有一个双亲结点
层次模型的数据操纵与完整性约束
- 插入时,如果没有相应的双亲结点值就不能插入它的子女节点值
- 删除时,如果删除双亲结点值,则相应的子女结点值也将同时被删除
层次模型的优缺点
优点:
- 层次模型的数据结构比较简单清晰
- 层次模型库的查询效率高
- 层次数据模型提供了良好的完整性支持
缺点:
- 现实世界中很多联系是非层次性的,如节点之间具有多对多联系
- 查询子女结点必须通过双亲结点
- 层次模型中对插入、删除操作的限制比较多,因此应用程序的编写比较复杂
- 由于结构严密,层次命令趋于程序化
网状模型
层次模型是用图来表示各类实体以及实体间的联系,如公司的拓扑网络
网状模型的数据结构
- 允许一个以上的结点无双亲
- 一个结点可以有多于一个的双亲
网状模型的数据操纵与完整性约束
- 支持记录码的概念,码即唯一标识记录的数据项的集合
- 保证一个联系中双亲记录和子女记录之间是一对多的联系
- 可以支持双亲记录和子女记录之间的某些约束条件,例如层次模型中的约束
网状模型的优缺点
优点:
- 能够更为直接地描述现实世界,如多对多关系
- 具有良好的性能,存取效率较高
缺点:
- 结构比较复杂,不利于最终用户掌握
- 网状模型的DDL、DML复杂,并且要嵌入某一种高级语言(如COBOL、C)中
- 由于记录之间的联系是通过存取路径实现,增加了编写应用程序的负担
关系模型
关系模型是基于谓词逻辑和集合论的一种数据模型,可以如一张二维表一样
no | name | sex | Birthdate | site | Admission Date |
1 | 李明 | 男 | 199505 | 江苏省南京市 | 2013 |
关系模型的数据结构
- 关系,一个关系对应通常说的一张表,如上
- 元组,表中的一行即为一个元组
(1,李明,男,199505,江苏省南京市,2013)
- 属性,表中的一列即为一个属性
如no、name、sex、Birthdate、site、Admissiondate皆是属性
- 码,也称码键,是表的唯一标识符
如表中学号(no)即使唯一标识符
- 域,一组具有相同数据类型的值的集合
如性别字段的占用字符为1
- 分量,元组中的一个属性值
每一个分量都是一个不可再分的数据项
- 关系模式,对关系的描述
学生(学号,学生姓名,性别,出生年月,地址,入学年份)
关系模型的数据操纵和完整性约束
关系模型中的数据操纵有增删改查等操作,完整性约束包括实体完整性、参照完整性和用户自定义的完整性
关系模型的优缺点
优点:
- 关系模型与格式化模型不同,它是建立在严格的数据概念的基础上的
- 关系模型的概念单一,无论实体还是实体之间的联系都用关系来表示,操作对象和操作结构都是关系
- 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作
缺点:
- 由于存取路径对用户是透明的,查询效率往往不如格式化数据模型
- 为了提高性能,数据库管理系统必须对用户的查询请求进行优化,因此增加了开发数据库管理系统的难度
数据模型的组成要素
数据模型的组成要素主要包括数据结构、数据操作和数据的完整性约束条件
数据结构
数据结构描述数据库的组成对象以及对象之间的联系,是所描述的对象类型的集合,是对系统静态特性的描述
数据操作
数据操作是指数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则,是对系统动态特性的描述
数据的完整性约束条件
数据的完整性约束条件是一组完整性规则,包括实体完整性、参照完整性和用户自定义完整性
数据库原理目录
\