1.2 数据模型

1.2.1 数据模型的概念

数据模型(Data Model)是数据库系统的核心与基础,是现实世界数据特征的抽象,是站在计算机的角度,用模型的方法来描述数据、组织数据、处理数据的方法。

数据模型由数据结构、数据操作、数据约束三部分组成。

(1)数据结构:描述系统的静态特征,描述对象包括数据的类型、内容、性质以及数据间的联系等。

数据结构是数据模型的基础,数据操作和约束都基本建立在数据结构上。不同的数据结构具有不同的操作和约束。

(2)数据操作:描述系统的动态特征,指对数据模型中各种对象允许执行的操作的集合,包括操作及有关的操作关系。

(3)数据约束:描述系统中数据间的语法、词义联系、它们之间的制约和依存关系,以及数据动态变化的规则等的集合,以保证数据的正确和有效。

1.2.2 常见的数据模型

常见的数据库模型主要有层次模型、网状模型和关系模型。

1.层次模型

层次模型是指用一棵“有向树”的数据结构来表示各类实体以及实体间的联系,树中每一个结点代表一个记录类型,树状结构表示实体型之间的联系。如图1.5所示,计算机系就是树根,各专业和班级就是树结点。

层次模型的数据结构主要有以下两个特征:

(1)每棵树有且只有一个无双亲结点,称为根。

(2)树中除了根结点外所有结点有且只有一个双亲。

2.网状模型

网状模型是用有向图结构表示实体类型及实体间联系的数据结构模型。图1.6所示为4名同学的参加社团情况。

网状模型的数据结构主要有以下两个特征:

(1)允许有一个以上的结点无双亲。

(2)至少有一个结点可以有多于一个的双亲。

图1.5 计算机系组成结构图

图1.6 学生社团关系图

3.关系模型

关系模型是指用二维表形式表示实体和实体间联系的数据模型。表1.1所示的学生表是以二维表形式显示学生信息的示例。

表1.1 学生信息表

关系模型的基本概念如下:

(1)关系(Relation):一个关系对应着一个二维表,二维表就是关系名。

(2)元组(Tuple):在二维表中的一行称为一个元组。

(3)属性(Attribute):在二维表中的列称为属性。属性的个数称为关系的元或度。列的值称为属性值。

(4)域(Domain):属性值的取值范围称为域。

(5)键(Key):如果在一个关系中存在唯一标识一个实体的一个属性或属性集,则称之为键。

(6)主键/主码(Primary Key):在一个关系中指定的一个用来唯一标识该关系的元组。每一个关系都有并且只有一个主键。例如,学生表中的学号。

关系模型的数据约束如下:

(1)实体完整性约束:约束关系中的每一行在表中是唯一的实体。

(2)域完整性约束:约束关系中的列必须满足某种特定的数据类型约束,其中约束包括属性具有正确的数据类型、格式和有效的数据范围。

(3)参照完整性约束:维护被参照表和参照表之间的数据一致性。

(4)用户定义的完整性:针对某个特定关系数据库的约束条件,它反映具体应用数据必须满足的语义要求。