目录
数据模型是对现实世界数据特征的抽象,也就是说数据模型是用来描述数据、组织数据和对数据进行操作的。数据模型是数据库系统的核心和基础。
1.1两类数据模型
数据模型需要满足三方面要求:
能比较真实地模拟现实世界
容易为人所理解
便于在计算机上实现
跟据模型应用的不同目的,将这些模型可以分为两大类,第一类是概念模型,第二类是逻辑模型和物理模型。
-
概念模型(conceptual model),也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据设计。
-
逻辑模型主要包括层次模型、网状模型、关系模型、面向对象数据模型、和对象关系数据模型、半结构化数据模型等。它主要用于数据库管理系统的实现。
1.2概念模型
在了解概念模型之前我们需要了解一些信息世界的概念。
(1)实体(entity)
客观存在并可互相区别的事物称为实体。实体可以是人、物或者抽象的概念或联系。例如,一个教师,一个部门,教师与部门的工作关系等都是实体。
(2)属性(attribute)
实体所具有的某一特性称为属性。例如,一个学生的学号、姓名、性别、出生年月等特征都表示该学生的属性。
(3)码(key)
唯一标识实体的属性集称为码。例如学号就是学生实体的码。
(4)实体型(entity type)
用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。例如,学生(学号,姓名,性别,出生年月)就是一个实体型。
(5)实体集(entity set)
同一类实体的集合称为实体集。例如全体学生就是一个实体集。
(6)联系(relationship)
实体之间的联系通常是指不同实体集之间的联系。实体之间的联系有一对一、一对多、多对多等多种类型。
概念模型的一种表示方法:实体—联系方法(Entity-Relationship approach)简称E-R方法,也被称为E-R模型。
1.3数据模型的组成要素
数据模型通常由数据结构、数据操作和数据的完整性约束条件三部分组成。
-
数据结构
数据结构描述数据库的组成对象以及对象之间的联系,是对系统静态特征的描述。
-
数据操作
数据操作是对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。例如操作有检索、插入、删除和修改,操作规则有优先级别等,数据操作是对系统动态特性的描述。
-
数据的完整性约束条件
数据的约束条件是一组完整性规则的集合。也就是说,对于具体的应用数据必须遵循特定的语义约束条件,以保证数据的正确、有效和相容。例如某单位人事管理中,要求在职的“男”职工的年龄必须大于18岁小于60岁,工程师的基本工资不能低于1500元,这些要求可以通过建立数据的约束条件来实现。
1.4常见数据模型
层次模型
层次模型数据结构
(1)有且只有一个节点没有双亲节点,我们把这个节点称为根节点;
(2)除根节点以外,其他的节点都只有一个双亲节点。
层次模型就像一棵倒立的树,节点的双亲都是唯一的。
层次模型的优点:
层次模型的数据结构比较简单清晰。
层次数据库的查询效率高。
层次数据模型提供了良好的完整性支持。
层次模型的缺点:
现实世界中很多联系都是非层次性的,如节点之间具有多对多联系,不适合用层次模型表达。
如果一个节点具有多个双亲节点,使用层次模型表示就会显得很笨拙。
要查询子女节点必须通过双亲节点才可以。
由于结构严密,层次命令趋于程序化。
网状模型
网状数据库系统采用网状模型作为数据的组织方式,网状数据模型的典型代表是DBTG系统,也叫做CODASYL系统。
网状模型数据结构
(1)允许一个以上的节点无双亲。
(2)一个节点可以有多于一个的双亲。
在层次模型中子女节点与双亲节点的联系是唯一的,而在网状模型中这种联系可以不唯一。
网状模型的优点:
能够更为直接地描述现实世界,比如一个节点有多个双亲的情况。
具有良好的性能,存取效率较高。
网状模型的缺点:
结构比较复杂,而且随着应用环境的扩大,数据库的结构会变的越来越复杂。
网状模型的DDL、DML复杂,并且要嵌入某一种高级语言中,用户不容易掌握,不容易使用。
由于记录之间的联系是通过存取路径实现的,应用程序在访问数据时必须选择合适的存取路径,因此用户必须了解系统结构的细节,加重了编写应用程序的负担。
关系模型
关系模型数据结构
关系模型与以往的模型不同,关系模型由一组关系组成,每个关系的数据结构是一张规范的二维表。如下图所示。
接下来介绍一下关系模型中的相关术语:
关系:一个关系通常来说对应一张表。
元组:表中的一行即为一个元组。
属性:表中的一列即为一个属性,每个属性的名称即为属性名。
码:也称为键码。表中的某个属性组,它可以唯一确定一个元组。
域:域是一组具有相同数据类型的值的集合。例如学生的分数在0~100。
分量:元组中的一个属性值。
关系模型的优点:
关系模型与格式化模型不同,它是建立在严格的数学概念的基础上的。
关系模型的概念单一。
关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。
关系模型的缺点
由于存取路径对用户是隐蔽的,查询效率往往不如格式化数据模型。
为了提高性能,数据库管理系统必须对用户的查询请求进行优化,因此增加了开发数据库管理系统的难度。