学习关系的完整性是给定的关系模型中数据及其联系的所有制约和依存规则,用以限定数据库状态及状态变化,从而保证数据的正确、相容和有效。
对于关系型数据库的数据库操作语言分为查询和更新两类。而查询语言这块,又分为关系代数语言与关系演算语言。这里讲的就是关系代数。所以可以这样定义,关系代数就是为数据库操作语言进行查询的集合操作。需要从实际的例子来理解定义这样会便于理 解。对于基本的操作,并、交、差、笛卡尔积针对的都是两个不同的集合的操作。
一、关系的完整性
1、关系的三类完整性约束:实体完整性、参照完整性和用户定义的完整性。
2、实体完整性和参照完整性是关系模型必须满足的两个条件。(关系的两个不变性)
3、实体完整性规则:关系的主属性(主键的组成)不能是空值。
4、参照完整性规则:
- 外码不可以是所在基本关系的主码,对应被参照关系中的主码。
- 外码可以都取空值,或者在对应被参照关系已存在的主码中取值。(需要遵循实体完整性)
5、用户定义的完整性
用户可以根据实际状况自定义约束条件。
二、传统的关系运算
1、如果对R、S使用并、交、差运算,必须保证R和S有相同的目、属性域是相同的。
2、传统的关系运算:并、交、差、笛卡尔积。
举例示意:
并(Union):设关系R和S具有相同的关系模式,R和S的并是由属于R或属于S的元组构成的集合,记为R∪S。
交(Intersection):是从两个集合内找出既属于R有属于S集合的元素的集合。符号:∩。
差(Difference):设关系R和S具有相同的关系模式,R和S的差是由属于R但不属于S的元组构成的集合,记为R-S。.
笛卡尔积(Cartesian Product):设关系R和S的元数分别为r和s,定义R和S的笛卡儿积是一个(r+s)元的元组集合,每个元组的前 r个分量(属性值)来自R的一个元组,后s个分量来自S的一个元组,记为R×S。