1
大学信息技术基础教程
1.2.6.2.4 6.2.4 关系数据模型简介

6.2.4 关系数据模型简介

1)关系数据数据模型的数据结构

(1)关系数据模型的基本数据结构

关系数据模型的基本数据结构是二维表,由行和列组成。二维表又称“关系”,因此以二维表为基本结构所建立的模型称为“关系模型”。

(2)关系模型的基本术语

①关系(relation):即二维表。

②元组(tuple):二维表中的一行即一个元组,表示一个记录。

③属性(attribute):二维表中的一列即一个属性,表示实体集的一个特征。在同一关系中属性不能同名。

④键(key):二维表中可以唯一确定一个元组的最小属性集。一个表可能有多个键,称为候选键,一般选定其中一个作为主键。

⑤域(domain):属性的取值范围,如性别的域是{男,女}。

⑥分量:元组中的一个属性值。

⑦关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,...,属性n),即关系名和关系属性的集。n是R的属性的个数,称为关系的“目”(degree)。

例如,描述大学生的关系模式为:

Student(姓名,学号,性别,出生年月,籍贯,系别,入学年份)

<李敏,01081135,女,1984,江苏,计算机系,2001>是其中的一个元组。

(3)对关系模型中的二维表的限制条件

①同一个表中的属性名必须各不相同,但次序可以任意改变;

②同一个表中的元组必须均不相同,但元组的次序可以任意改变;

③表中每一分量必须是不可分割的基本数据项,这是关系模式必须满足的最基本条件。

2)关系数据模型的操纵

关系数据模型的操纵主要包括查询和更新两大类,其中更新操作又分为插入、删除和修改三种。关系数据模型中的数据操作是集合操作,具有严格的数学理论基础,其操作对象和操作结果都是关系,即若干元组的集合。

3)关系数据模型的完整性约束

关系数据模型的完整性规则是对关系的某种约束条件。关系数据模型中有三类完整性约束,分别是实体完整性、参照完整性和用户定义的完整性。其中,实体完整性和参照完整性是关系模型必须满足的完整性约束条件,称为关系的两个不变性,必须由关系系统自动支持。

(1)实体完整性

实体完整性的含义是指应该使关系中的每个实体都能被识别和区分,因为现实世界中的实体是可区分的,具有唯一性标识。相应地,在关系模型中以主键来唯一地标识每个实体,而且作为唯一性标识的主键不能取空值,因为空值是指“不知道”或“无意义”的值,取空值则说明存在某个不可识别的实体,这与现实世界是互相矛盾的,所以这个实体一定不是一个完整的实体。因此,关系模型必须保证每个实体都是完整的,都要遵守实体完整性规则,即关系中主键的所有属性都不能取空值。

(2)参照完整性

参照完整性又称“引用完整性”。由于现实世界中的实体之间一般都存在着某种联系,而在关系模式中实体及实体间的联系都是用关系来描述的,因此就存在关系和关系间的引用。例如,以下学生和专业两个关系就存在互相引用的情况:

学生(学号,姓名,性别,专业号,年龄)

专业(专业号,专业名)

在这两个关系中,学生关系引用了专业关系的主键“专业号”。因而学生关系中的专业号值必须是专业关系中有记录的专业号,即学生关系中的“专业号”这个属性的值必须引用专业关系中的属性值。

设F是基本关系R的一个或一组属性,但不是关系R的主键,如果F与基本关系S的主键Ks相对应,则称F是基本关系R的外键(Foreign Key)。即F不是R的主键,但是S的主键,则称F是关系R的外键。

基本关系R为参照关系(Referencing Relation),基本关系S为被参照关系(Referenced Relation)或目标关系(Target Relation)。

参照完整性规则内容:若属性(或属性组)F是基本关系R的外键,它与基本关系S的主键Ks相对应,则R中每个元组在F上的值必须为:

①或者取空值(F的每个属性值均为空值);

②或者等于S中某个元组的主键值。

例如,对于本例,学生关系中的每个元组的“专业号”属性只能取以下两类值:

①空值,表示尚未给该学生分配专业;

②非空值,这时学生关系中的专业号值必须是专业关系中存在的某个专业号值,即被参照关系“专业”中一定存在一个元组,其主键值等于该参照关系“学生”中的外键值。

(3)用户定义的完整性

用户定义的完整性是用户针对某一具体关系数据库定义的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。例如,可以规定某个属性必须取唯一值,某个非主属性不能取空值,某个属性的取值范围必须在0~100之间等。