1.关系的完整性约束
关系模型中由类完整性约束:实体完整性约束,参照完整性和用户定义的完整性。其中实体完整性约束和参照完整性是关系模型中必须满足的完整性约束条件,被称为关系的两个不变性,一般由关系型数据库管理系统自动支持。用户定义是应用领域需要遵循的约束条件。
(1)实体完整性
约束规则:若属性A是关系R的主属性,则属性A的值不能为空值。
(2)参照完整性
约束规则:若属性(或属性集)F是关系R的外键,它与关系S的主键Ks对应,则对于R中元组在F上的取值只有两种可能:一种取空值,另一种取等于S中某个元组的ks值。
(3)用户定义的完整性
一个自定义的完整性约束可以是关于数据库的任意谓词。
(4)完整性控制机制
该机制包括三个功能:
(1)定义功能,即提供定义完整性约束条件的机制。
(2)检查功能,即检查用户发出的操作请求,看其是否违背了完整性约束。
(3)保护功能,即监视数据操作的整个过程,如果发现违背了完整性约束条件的情况,则采取一定的动作来保护数据的完整性。
2.关系操作
关系操作可以用关系查询语言来表达。
关系查询语言定义了一组运算集,这些运算看作业于关系上,并输出关系作为结果。
关系操作可以分为传统的集合运算和专门的关系运算,传统的集合运算主要包括并,差,交,广义笛卡儿积,专门的运算包括投影,选择,连接,除。其中选择,投影,并,差,广义笛卡儿积是五种基本操作,其他操作是可以用基本操作来定义和导出的。
3.传统的集合运算
(1)并运算(R U S)
R U S={ t | t属于R或t属于S}
(2)差运算 (R - S)
R - S = { t | t 属于R且t不属于S }
(3)交运算(R 交 S)
R 交 S = { t | t属于R 且 t属于s}
关系的交运算可以用差 运算来实现:
R 交 S = R- (R - S)
或
R 交 S = S - (S - R)
(4)广义笛卡儿积
关系的笛卡儿积运算可以将任意的两个关系的信息组合在一起。 关系R 和关系S的广义笛卡儿积是一个有序对的集合,有序对的第一个元素是关系R中的任何一个一个元组,第二个元组是关系S中的任何一个元组,表示为RxS.
R x S = {TrTs | Tr属于R 且 Ts属于S }