
1.3 关系型数据库基础
了解关系型数据库的一些基本概念、特点和运算等
关系模型是在20世纪70年代初由美国IBM公司的E.F.Codd提出的,为数据库技术的发展奠定了理论基础。
1.3.1 关系型数据库中的一些基本概念
关系模型中数据的逻辑结构是一张二维表,它由行和列组成。下面分别介绍关系模型中的相关术语。
1.关系(Relation)
一个关系就是一张二维表,如图1-6所示,就是一个在Access 2016中的二维表,它展示了员工基本资料之间的关系。

图1-6 关系数据库中使用二维表表示关系
2.元组(Tuple)和分量(Component)
元组也称为记录,关系表中的每行对应一个元组,组成元组的元素称为分量。数据库中的一个实体或实体之间的一个联系均使用一个元组来表示。比如,在图1-6的表中,“0001,黄龙,男,销售部,业务员,1342569****”就是一个元组,该元组由6个分量组成。
3.属性(Attribute)
表中的一列即为一个属性,给每个属性取一个名称为属性名。比如,在图1-6的表中有6个属性(员工编号,姓名,性别,部门,职务,联系电话)。
属性具有型和值两层含义:属性的型指属性名和属性值域;属性的值是指属性具体的取值。关系中的属性名具有标识列的作用,所以在同一个关系中的属性名(列名)不能相同。一个关系中通常有个多个属性,属性用于表示实体的特征。
4.域(Domain)
域就是属性的取值范围,如图1-6中的性别属性的域是(男,女)。
5.候选码(Candidate key)
若关系中的某一属性或属性组的值能唯一标识一个元组,则称该属性或属性组为候选码,候选码简称为码。
6.主码(Primary key)
若一个关系中有多个候选码,则选定其中一个为主码。如图1-6所示的表中应该选择“员工编号”作为主码。
7.全码(All-key)
在最简单的情况下,候选码只包含一个属性;在最极端的情况下,关系模式的所有属性是这个关系模式的候选码,称为全码。全码是候选码的特例。
8.主属性(Prime attribute)和非主属性(Non-prime attribute)
在关系中,候选码中的属性称为主属性,不包含在任何候选码中的属性称为非主属性
1.3.2 关系的特点
关系用于存储数据库中的数据,它具有图1-7所示的几个特点。

图1-7 关系的特点
1.3.3 关系的运算
通过关系的运算,可以在关系表中查询所需的数据。按照关系运算的方法,可以将关系的运算分为两类:一类是传统的关系运算,如交、并、或、异或等;另一类是专门的关系运算,如选择、投影和联接等。
1.传统的关系运算
传统的关系运算又称为逻辑运算,两个结构相同的关系通过这样的运算,可以得到一个结构相同的新关系。
如图1-8所示,两个关系进行交运算,得到一个新的关系。

图1-8 交运算
2.专门的关系运算
◆选择:从关系中找出符合条件元组的操作称为选择,如图1-9所示。

图1-9 选择运算
◆投影:从关系中选取几个属性构成新关系的操作称为投影,如图1-10所示。

图1-10 投影运算
◆联接:将多个关系的属性组合成一个新的关系的操作称为联接,如图1-11所示。

图1-11 联接运算
◆自然联接:在联接运算中,按字段值相等执行的联接称为等值联接,去掉重复值的等值联接称为自然联接,如图1-12所示。

图1-12 自然联接运算
1.3.4 关系的完整性
关系的完整性指关系数据库中数据的正确性和可靠性。关系数据库管理系统的一个重要功能就是保证关系的完整性。关系完整性包括实体完整性、值域完整性、参照完整性和用户自定义完整性。
◆实体完整性:若属性A是基本关系R的主属性,则属性A不能取空值。
◆值域完整性:元组每个分量的取值必须在其对应属性的域内。
◆参照完整性:相关数据表中的同一个数据必须一致,如果其在某个表中允许为空时,也可以为空,即一个为空一个不为空的情况是允许的。
◆自定义完整性:用户根据需要对属性设置的约束条件,如某个属性下的值不能为空,取值范围为0~100之间的整数等。