数据模型
一、两类数据模型
二、概念模型
三、层次模型
四、网状模型
五、关系模型
六、数据库系统的结构
七、数据库系统的组成
数据模型也是一种模型,它是对现实世界数据特征的抽象。数据模型是数据库系统的核心和基础。
一、两类数据模型
第一类是概念模型,第二类是逻辑模型和物理模型。
-
概念模型 也称信息模型。按用户的观点来对数据和信息建模,主要用于数据库设计。 -
逻辑模型 主要包括层次模型、网状模型、关系模型、面向对象数据模型、和对象关系数据模型、半结构化数据模型等。 它是按照计算机系统的观点来对数据建模主要用户数据库管理系统的实现。 -
物理模型 物理模型是对数据最底层的抽象,它描述数据在系统内部的表示方式和存取方式,或在磁带、磁盘上的存储方式或存取方法,是面向计算机系统的。 物理模型的具体实现是数据库管理系统的任务数据库设计人员要了解和选择物理模型,用户不必考虑物理级的细节。
为了把实现世界中的具体事物抽象、组织为某一数据库管理系统支持的数据模型,首先将现实世界抽象为信息世界,然后将信息世界转换为机器世界。这一过程如下图:
二、概念模型
1.信息世界中的基本概念:
-
实体 客观存在并可以相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。例如:一个学生、学生的一次选课、老师与院系的工作关系等。 -
属性 实体具有的某一特性称为属性。一个实体可以由若干个属性来刻画。例如:学生实体可以由姓名、性别、年龄、出生日期、所在院系、班级、学号等属性组成。属性组合则表征了一个学生。 -
码 唯一标识实体的属性集称为码。例如学号是学生实体的码。 -
实体型 用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。例如:学生(姓名、性别、年龄、出生日期、所在院系、班级、学号)就是一个实体型。 -
实体集 同一类型实体的集合称为实体集。例如:全体学生就是一个实体集。 -
联系 实体(型)内部之间的联系和实体(型)之间的联系。实体之间的联系通常是指不同实体之间的联系。 实体之间的联系有一对一、一对多和多对多等多种类型。 2.概念模型的一种表示方式:实体—联系方式(E-R图) 3.基本层次联系 基本层次联系是指两个记录以及他们之间的一对多(包括一对一)的联系。如下图
2.数据模型的组成要素
数据模型通常由数据结构、数据操作和数据的完整性约束条件三部分组成。
3.基本层次关系
基本层次关系是指两个记录以及它们之间的一对多(包括一对一)的联系。
三、层次模型
层次模型是数据库系统中最早出现的数据模型,层次数据库系统采用层次模型作为数据的组织方式。
1. 层次模型的数据结构
(1)在数据库中定义满足一下两个条件的基本层次联系的集合称为层次模型:
-
有且只有一个结点,没有双亲结点,这个节点称为根结点 -
根节点以外的其他结点有且只有一个根节点 在层次模型中,每个节点表示一个记录类型,每个记录类型可以包含若干个字段。记录类型描述的是实体,字段描述实体的属性。 每个记录类型及其字段都必须命名。各个记录类型、同一记录类型中各个字段不能重名。每个记录类型可以定义一个排序字段(称为码字段),如果定义该排序字段的排序字段的值是惟一的,则它能唯一标识一个记录值。 (2)在层次模型中,同一双亲的子女结点称为兄弟结点,没有子女结点的结点称为叶结点。 层次模型像一颗倒立的树,结点的双亲结点是唯一的。
(3)层次模型的一个基本特点
任何一个给定的记录值只能按其层次路径查看,没有一个子女记录值能够脱离双亲记录值而独立存在。
(4)
- 该层次模型有4个记录类型。记录类型系是根节点,由系编号、系名、办公地点三个字段组成。
- 它有两个子女结点教研室和学生。记录类型教研室是系的子女结点,同时又是教员的双亲结点。
- 记录类型学生和教员是叶子结点,他们没有子女结点。
- 系对教研室、系对学生、教研室对教员均是一对多的关系。
2.层次模型的数据操纵与完整性约束
层次模型的数据操纵主要有查询、插入、删除和更新。进行查询、插入、删除和更新操作时要满足层次模型的完整性约束条件。
进行插入操作时,没有相应地双亲结点值就不能插入它的子女结点值。
进行删除操作时,如果删除双亲结点值,相应的子女结点值也将同时被删除。
3. 层次模型的优缺点
优点:
- 层次模型的数据结构比较清晰
- 层次数据库的查询效率高
- 层次模型提供了良好的完整性支持
缺点:
- 现实世界中很多关系都是非层次性的,如结点之间具有多对多的联系,不适合用层次模型表示
- 如果一个节点具有双亲结点,只能通过引入冗余数据(易产生不一致性)或创建非自然的数据结构(引入虚拟结点)来解决。
- 查询子女结点必须通过双亲结点
- 由于结构严密,层次命令趋于程序化
四、网状模型
网状模型是一种比层次模型更具有普遍性的结构。
1. 网状模型的数据结构
(1)在数据库中,满足以下两个条件的基本层次联系集合称为网状模型:
- 只允许一个以上的结点无双亲
- 一个节点可以有多余一个的双亲
网状模型中一个结点表示一个记录类型(实体),每个记录类型可以包含若干个字段(实体的属性),节点间的连线表示记录类型(实体)之间一对多的父子联系。
(2)层次模型中子女结点与双亲结点的联系是唯一的,网状模型中这种联系可以不是唯一的。
2.网状模型的数据操纵与完整性约束
3.网状模型的优缺点
优点:
- 能够更为直接地描述现实世界。如一个节点可以有多个双亲,结点之间可以由多种联系
- 具有良好的性能,存取效率高
缺点:
- 结构比较复杂,而且随着应用坏境的扩大,数据库的结构变得越来越复杂,不利于最终用户掌握
- 由于记录之间的联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径,因此用户必须了解系统结构的细节,加重了编写应用程序的负担
五、关系模型
关系模型是最重要的一种数据模型。关系数据库系统采用关系模型作为数据的组织方式。
1. 关系模型的数据结构
关系模型有一组数据组成。每个关系的数据结构是一张规范的二维表。
-
关系 一个关系对应通常说的一张表(如下图这张学生登记表) -
元组 表中的一行即为一个元组 -
属性 表中的一列即为一个属性,给每个属性起一个名字即为属性名(如下图表中的6列对应6个属性:学号、姓名、年龄、性别、系名、年级) -
码(码键) 表中的某个属性组,可以唯一确定一个元组(如下图表学号可以唯一确定一个学生) -
域 一组具有相同数据类型的值的集合。属性的取值范围来自某个域(如人性别的域是男、女。系名的域是一个学校所有系名的集合) -
分量 元组中的一个属性值 -
关系模式 对关系的描述,一般表示为:关系名(属性1,属性2,……) 如下图表的关系模式:学生(学号,姓名,年龄,性别,系名,年级) 关系模型要求关系必须是规范化的,关系的每一个分量必须是一个不可分的数据项,也就是说不允许表中还有表。
2. 关系模型的数据操纵与完整性约束
关系模型的数据操纵主要包括:查询、插入、删除和更新数据。这些操作必须满足关系的完整性约束条件。关系的完整性约束包括三大类:完整性、参照完整性和用户定义的完整性。
3.关系模型的优缺点
优点:
- 关系模型与格式化模型不同,它是建立在严格的数学概念的基础上的
- 关系模型的概念单一。无论实体还是实体之间的联系都用关系来表示。对数据的检索和更新结构也是关系。所以其数据结构简单、清晰、用户易懂易用
- 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作
缺点:
- 由于存取路径对用户数隐蔽的,所以查询效率不如格式化数据模型。
六、数据库系统的结构
从数据库应用开发人员的角度看,数据库系统通常采用三级结构,这是数据库的系统结构。
从数据库最终用户来看,数据库的系统的结构分为单用户结构、主从式结构、分布式结构、客户-服务器、浏览器-应用服务器/数据库服务器多层结构等。这是数据库系统外部的体系结构。
1.数据库系统模式的概念 数据模式中有“型”和“值”的概念。
型:对某一类数据的结构和属性的说明。
值:型的一个具体赋值。
模式:数据库中全体数据的逻辑结构和特征的描述。模式的一个具体值称为模式的一个实例,同一个模式有很多个实例。
模式是相对稳定的,实例是相对变动的。因为数据库中的数据是在不断更新的,模式反应的是数据库的数据结构和关系,实例反应的是数据库某一时刻的状态。
2.数据库系统的三级模式结构
数据库系统的三级模式结构是指数据库系统是由外模式、模式、内模式三级构成。
(1)模式
模式实际上是数据库数据在逻辑上的视图。一个数据库只有一个模式。
(2)外模式
外模式通常是模式的子集。一个数据库可以有多个外模式。同一个外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。
(3)内模式
内模式也称存储模式,一个数据库只有一个内模式。
3.数据库的二级映像功能与数据独立性
数据库的三级模式是数据的三个抽象级别。
(1)外模式/模式映像
当模式改变时,由数据库管理员对各个外模式/模式映像做相应改变,可以使外模式保持不变。
应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
(2)模式/内模式映像
当数据库的存储结构改变时,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性。
七、数据库系统的组成
-
硬件平台及数据库 -
软件 -
人员
-
数据库管理员 -
系统分析员和数据库设计人员 -
应用程序员 -
用户(偶然用户、简单用户、复杂用户)
|