1.关系模型
关系模型三要素
-
基本结构
-
基本操作
-
完整性约束
2.什么是关系?
(1)“表”的基本构成元素
(2)“表”的严格定义----关系?
首先定义“列”的取值范围“域(Domain)”。
2.1 域(Domain)
-
一组值的集合,这组值具有相同的数据类型。如整数的集合,字符串的集合,全体学生的集合。
-
集合中元素的个数称为域的基数(Cardinality)例:
2.2笛卡尔积(Cartesian Product)
-
一组域D1,D2,…Dn的笛卡尔积为:D1 X D2 X … XDn = {(d1,d2,…,dn) | di∈Di,i=1,…,n}
-
笛卡尔积的每个元素(d1,d2,…,dn)标做一个n-元组(n-tuple)1.元组(d1,d2,…,dn)的每一个值di叫做一个分量。2.元组(d1,d2,…,dn)是从每一个域任取一个值所形成的一个组合,笛卡尔积是所有这种可能的组合的集合。即:笛卡尔积是由n个域形成的所有可能的n-元组的集合。3.若Di的基数为mi,则笛卡尔的基数,即元组的个数为:m1xm2x…xmn
2.3关系(Relation)
-
一组域D1,D2,...,Dn笛卡儿积的子集。
-
笛卡尔积中具有某一方面的意义的那些元组被称为一个关系。
-
由于关系的不同列可能来自一个域,为区分,需要为每一列起一个名字,该名字即为属性名。
2.4关系的特性
1.列要是统一数据类型。
2.不同列要来自同一个域,称其中的每一个列为一个属性。
3.属性不可再分:被称为关系第一范式
2.4.1 候选码(Candidate Key) / 候选键
关系中的一个属性组,其值能唯一标示一个元组,若从该属性组中去掉任何一个属性,他就不具有这一性质了,这样的属性组称为候选码。(就是一个元组中可以去区分与其他元组不同的。)
例:
2.4.2 主码(Primary Key),主键
1.当有多个候选码时,可以选定一个作为主码。
2.DBMS以主码为主要线索管理关系中的各个元组。
例:
2.4.3 主属性,非主属性
包含在任何一个候选码中的属性被称为主属性,而其他属性被称为非主属性。
2.4.4 外码,外键
关系R中的一个属性值,他不是R的候选码,但他与另一个关系S的候选码相对应,则称这个属性组为R的外码或外键。
2.4.5关系和表的区别:
关系的元组不能相同,表可以相同。
2.4 关系完整性
2.4.1 实体完整性
1.关系的主码中的属性值不能为空值;
2.空值:不知道或无意义的值(用‘?’表示);
2.4.2 参照完整性
如果关系R1的外码Fk与关系R2的主码R2的主码Pk相对应,则R1中的每一个元组的Fk值或者等于R2中某个元组的·Pk值,或者为空值。
意义:若第一个关系的元组参照第二个元组,则第二个元组必须存在。
2.4.3 用户自定义完整性
用户针对具体的应用环境定义完整性约束条件。
总结:
3.关系代数概述
3.1 关系代数运算的特点:
基于集合,提供了一系列的关系代数操作:并,差,笛卡尔积,选择,投影,更名等基本操作。
以及,交,连接和关系除等扩展操作,是一种集合思维的操作语言。
3.2 关系代数运算的基本操作:
(1)集合操作
(2)纯关系操作
3.3 为什么要提出关系代数
4.关系代数之基本操作
3.1 关系代数运算的约束
某些关系代数操作,如并,差,交等,需满足“并相容性”
并相容性
1.参加运算的两个关系及其相关属性之间有一定的相对性,可比性或意义关联性
2.定义:关系R与关系S存在相容性,当且仅当:
(1)关系R和关系S的属性数目必须相同;
(2)对应任意i,关系R的第i个属性的于必须和关系的第i个属性的域相同
3.2 “并”操作
3.3 “差”操作
假设关系R和关系S时并相容的,那么关系R与关系S的差运算结果也是一个关系,记作:R-S,代表R中的元组减去与S相同的元组,所剩下的元组即使R-S;
3.4 广义笛卡尔积