数据库关系模型基础:从域、关系到关系代数的完整解析
一.与关系相关的名词
1.域:具有相同类型值的集合
例:整数,实数,介于某一个取值范围的整数,指定长度的字符串集合等。
2.笛卡尔积
(1)元组:笛卡尔积中每一个元素的(d1,d2,d3)称为一个n元组,简称元组。
(2)分量:笛卡尔积元素中的每一个值都可以称为分量。
(3)笛卡尔积的表示方法:笛卡尔积可以表示成一个二维表,表中每一行表示一个元组,每一列 对应一个域。
注:笛卡尔积的结果不一定都有意义。(一个导师只可以教一个专业)
3.基数:域中的可能取值数量。
若D i (i = 1,2...,n)为有限集,它的基数为m i (i = 1,2...,n),则D1*D2*...D n的基数为: M = m1*m2*...m n。
其中Di指的是域。
二.关系
1.关系:D1*D2*...*D n的子集称作在域D1,D2...D n上的关系,表示为:关系名称(属性1,属性 2...属性n)。
其中n称为关系的目或者度,n目关系必有n个属性。
n取一时称为单元关系,n取二时称二元关系。
例:学生信息(学号,姓名...)
2.元组:关系中的每个元素是关系中的元组,通常用t表示。
3.码:(码是一个属性)
(1)候选码:能够唯一确定一个元组的属性组。
注:候选码可以包含多个属性。
(2)全码:最极端的情况,关系模型中的所有属性组是这个关系的候选码。
(3)主码:从候选码中选择一个作为主码。
(4)主属性:候选码中的属性都称为主属性。
(5)非主属性:不是主属性的属性。
4.三类关系(表)
(1)基本关系(基本表.基表):实际存在的表,实际存储数据,在数据库里真实存在。
(2)查询表:查询结果对应的表。
(3)视图表:由基本表或者其他视图表导出的表,虚表,不对应实际存储的数据。
5.基本关系的性质
(1)列是同质的,即有相同的性质。
(2)不同列可以出自相同的域,每一列称为一个属性,不同属性应给予不同名称。
(3)列和行的顺序无所谓。
(4)任意两个元组的候选码不可以相同。
(5)分量必须取原子值。
三.关系模式
1.定义:表的框架结构(列名、数据类型、约束等),是对于关系的描述。
2.表示方法:R(U,D,DOM,F)
R:关系名
U:组成该关系的属性名集合
D:域(取值范围)
DOM:取值范围和属性之间的映象
F:属性中的数据依赖关系集合
3.关系模型的三类完整性约束。
(1)实体完整性:若属性A为关系的主属性,则A不能取空。
(2)参照完整性:各个表中的数据必须能够对上。
注:关系R与S不一定相同;外码不一定与相应的主码同名。
(3)用户定义完整性:用户根据现实生活需要来定义。
4.关系模式与关系
(1)关系模式是静态的,稳定的。
(2)关系随着时间不断变化。
四.关系代数
1.并:关系R与关系S有相同的目,R U S = { t | t ∈ R V 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)
4.笛卡尔积(广义的笛卡尔积)
R:n目关系,k1个元组;S:m目关系,k2个元组。
5.选择:选择符合条件的行
x1与y1之间用比较运算符连接,x1,y1为属性名,或常量,亦或简单函数;也可以用编号来表示属性。
6.投影:从R中选择若干属性列组成新的关系
A 表示R中的属性列
7.连接:表示从两个关系的笛卡尔积中选取属性之间满足一定关系的元组
A,B分别为R与S上面度数相等并且可比的属性组
(1)等值连接:A,B用等于关系连接
(2)自然连接:一种特殊的等值连接,两个关系进行比较的必须是相同属性,在结果中把相同的属性列去掉(行与列角度同时进行计算)
悬浮元组:在R,S进行自然连接时被舍弃的元组
外连接:将舍弃的元组也保存在结果关系中,其他属性填写空值
左外连接:只保留左边关系R的悬浮元组
右外连接:只保留右边关系S的悬浮元组
8.除:给定两个关系 R(X, Y) 和 S(Y, Z),其中 X、Y、Z 是属性组,R 与 S 的除运算结果是一个新关系 P(X),其元组满足:在 R 中,这些元组在 X 上的分量值 x 所对应的 Y 值集合(称为“象集”),必须完全包含 S 在 Y 上的投影集合。
五.关系数据库
1.定义:在给定的一个应用领域中,所有的关系的集合构成一个关系数据库。
2.关系数据库的型与值
(1)关系数据库的型:规定了每一列从哪一个域取值。
(2)关系数据库模式:所有关系数据库的型的集合。
(3)关系数据库的值:带着具体数据的二维表。
3.常用关系操作:增,删,改,查。
查询:选择,投影,连接,除,交,并,差。
