1
数据库原理与应用技术
1.2.2.2 1.2.2 数据模型
1.2.2 数据模型

数据模型是描述数据、数据联系、数据语义及一致性约束的概念工具的集合;或者,表示实体及实体之间联系的数据库的数据结构称为数据模型;或者,把数据库系统中所包含的所有记录,按照它们之间的联系组合在一起,构成一个整体,这个整体的结构就称为数据库的数据模型。

我们可以把数据模型分为概念数据模型和结构数据模型等两类。

1. 概念数据模型

概念数据模型也称为信息模型。信息模型就是人们为正确直观地反映客观事物及其联系,对所研究的信息世界建立的一种抽象的模型,是现实世界到信息世界的第一层抽象,是数据库设计人员和用户之间进行交流的语言。它是独立于计算机系统的模型,完全不涉及信息在系统中的描述,只是用于描述某个特定组织所关心的信息结构。

描述概念数据模型的方法有很多种,但最常用的方法是实体-联系方法(Entity- Relationship Approach,E-R方法)。该模型将在1.2.3节详述。

2. 结构数据模型

结构数据模型直接面向数据库的逻辑结构,是现实世界到信息世界的第二层抽象。这类模型涉及计算机系统和DBMS,所以称为结构数据模型。它主要包含层次模型、网状模型、关系模型。

1)层次模型

层次模型是用树形结构表示实体间联系的数据模型,是数据库系统中最早出现的数据模型。在这种树形结构中,树是由节点和连线组成的。层次模型通常用于描述家族结构、动植物的分类、行政机构的组织等层次分明的关系。学校中教师学生层次模型如图1-6所示。

层次模型有且只有一个根节点,根节点以外的其他节点有且只有一个双亲节点。层次模型对一对多的层次关系描述比较自然、直观且容易理解。

层次模型本身比较简单,而现实世界的很多联系是非层次性的,这时若还用层次模型表示这类联系,则显得笨拙,并且会产生大量的数据冗余。网状模型可以克服这一弊端。

2)网状模型

网状模型是用图结构表示实体类型及实体间联系的数据模型。网中节点之间的联系不受层次限制,可以任意发生联系。图1-7所示的为一种网状模型。

图1-6 教师学生层次模型

图1-7 网状模型

(1) 网状模型的特点如下。

①一个子节点可以有两个或多个父节点。

②在两个节点之间可以有两种或多种联系。

③可能有回路存在。

(2)网状模型的主要优点如下。

①能够更为直接地描述现实世界。

②有良好的性能,存取效率高。

(3)网状模型的主要缺点如下。

①结构复杂,不利于扩充。

②不容易实现。

关系模型可以克服上述层次模型和网状模型的缺点。

3)关系模型

关系模型是结构数据模型中最为重要的数据模型。关系模型由IBM公司的E. F. Codd于1970年首次提出,以关系模型为基础的DBMS,称为关系数据库系统(RDBMS)。关系数据库系统也是目前使用最为成熟的系统,所以本书的重点就是以关系模型为基础的关系数据库系统。本节的重点就是关系模型。

(1) 定义。

实体和联系均用二维表来表示的数据模型称为关系模型。其主要特征是用二维表结构表示实体集,用外键表示实体间的联系。

(2) 关系模型的性质。

关系中的每一列属性都是不能再分的基本字段,即不允许表中有表;各列均指定一个相异的名字;各行不允许重复;行、列次序无关紧要。

(3) 关系数据模型的相关概念。

①关系(Relation):对应于关系模型中的一张具体的表称为关系,又称为表(Table)。关系和表如图1-8所示。

图1-8 关系模型

②关系模式(Relation Scheme):二维表的表头称为关系模式,又称为表的框架或记录类型,用于对关系的描述。

关系模式可表示为关系模式名(属性名1,属性名2,…,属性名n)的形式。例如,学生(学号,姓名,性别,出生日期,籍贯)。图1-8所示的关系模式可以表示为Student (sno,sname,sex,age,department)。

③记录(Record):关系中的每一行称为关系的一个记录,又称为行(Row)或元组,如图1-8所示。

④属性(Attributes):关系中的每一列称为关系的一个属性,又称为列(Column)。给每个属性起一个名字即属性名。属性列和属性名如图1-8所示。

⑤变域(Domain):关系中的每个属性所对应的取值范围称为属性的变域,简称域。例如,sex的取值是男或女,那么{男,女}就是属性sex的域。

⑥主键(Primary Key):如果关系模型中的某个属性或某几个属性组成的属性组能唯一地标识对应于该关系模型中的任何一个记录,这样的属性或属性组为该关系模型及其对应关系的键。当这样的键有多个时,可以选取其中一个作为主键。如图1-8所示的关系模型中,属性sno和sname都可以唯一地标识student这个关系中的任何一个记录,所以这两个属性都可以作为键。在实际应用中通常选取sno作为主键,很少用sname作为主键,因为sname有重名的现象,起不到唯一标识元组的作用。

⑦外键(Foreign Key):如果关系R的某个属性或属性组不是该关系本身的主键,而是另一关系的主键,则称该属性或属性组是R的外键。

根据以上概念,关系模型与二维表之间的一一对应关系如图1-8所示。

(4) 关系模型的优缺点如下。

优点是,结构简单直观、用户易理解;有严格的设计理论;存取路径对用户透明,因而具有更高的独立性、更好的安全保密性,同时简化了程序员的工作,减少了数据库开发的工作量。

主要缺点是,由于存取路径对用户透明,故查询速度慢,效率低于非关系型模型的效率。