关系数据库是以关系模型为基础的数据库。关系模型由关系数据结构、关系操作和数据完整性约束三部分组成。
关系模型的数据结构
关系:也称为表,一个关系对应一张二维表。
元组:也称为记录,表中的一行即为一个元组,相对完整地描述了一个实体。
属性:也称为列,表中的一列即为一个属性。
码:也称为关键字或键,表中能唯一标识元组的最小属性集合。其中若不止一个码,这些码都称为候选码,用户从中选一个作为主码。
域:属性的取值范围。
分量:元组中的一个属性值。
关系模式:实体以及实体间的联系都是用关系来表示的。表中的任意两个元组的值不能完全相同,即不允许有重复的行,行在表中的顺序可以任意交换。不允许表中包含表。
关系的完整性约束
关系完整性约束包括域完整性、实体完整性、参照完整性和用户定义的完整性。
实体完整性
实体完整性是指关系中的元组在组成主关键字的属性上不能由空值,而且主关键字的值不能相同。关系模型中以主关键字作为唯一性标识。
参照完整性
学生(学号,姓名,性别,专业号,年龄)
专业(专业号,专业名)
这里,“专业号”在学生关系中成为外关键字(也称为外码或外键)。学生关系成为参照关系(也称为外表),专业关系成为被参照关系(也称为主表)。
注意:外关键字不一定要与相应的主关键字同名。
若参照关系R的外关键字与被参照关系S的主关键字相对应,则对于R的每个元组在外关键字上的值必须是以下二者之一:
1)取空值
2)等于S中某个元组的主关键字值。
关系操作
插入、删除、修改、查找
关系代数
关系运算
传统的集合运算
以元组为单位,在行的方向上进行。
并、交、差、广义笛卡尔积
广义笛卡尔积:两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合,R有k1个元组,S有k2个元组,则集合有k1*k2个元组。
专门的关系运算
主要是从列的角度进行的的,但是有时对行也会有影响。
选择:在关系汇总选择满足条件的元组,,即在表中选择满足某些条件的行。
投影:在关系中选择出若干属性列成新的关系。取消了某些属性列后,就可能出现重复行,应该取消这些完全相同的行。
连接:从两个关系的笛卡尔积中选取属性中满足一定条件的元组。两种最为重要的最为常用的连接,是等值连接和自然连接。等值连接是从两个关系中选取两个属性相等的元组;自然连接是特殊的等值连接,要求两个关系中进行比较的分量必须是相等的属性组,并且要在结果中把重复的属性去掉。