文档介绍:第四章关系数据库
关系模型的基本概念
数学定义
域(Domain)是值的集合.
给定一组域D1,D2,…,Dn,这些域中可以有相同的
D1,D2,…,Dn的笛卡尔积(Cartesian Product)为
D1×D2×…×Dn={(d1,d2,…,dn)│di∈Di,i=1,2,…,n}
其中每一个元素(d1,d2,…,dn)叫作一个n元组,或简称
为元素,元素中每一个值di叫做一个分量.
若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),
则D1×D2×…×Dn的基数为m=∏mi
n
i =1
D1×D2×…×Dn 的子集叫做在域D1,D2,…,Dn上的关系,
用R(D1,D2,…,Dn)表示,这里R表示关系的名字,n是关系的目或度.
当n=1时,称为单元关系.
当n=2时,称为二元关系.
关系是一张二维表,表的每一行对应一个元组,,为了加以区分,对每列取一个名字,.
在上述例子中取出笛卡尔积的一个子集来构造一个关系,这个关系的名字为FAMILY(家庭),属性名就取域名,即MAN,(MAN,WOMAN,CHILD).
MAN WOMAN CHILD
王兵丁梅王一
李平吴芳李一
李平吴芳李二
FAMILY
在关系数据库中,我们能否把关系FAMILY定义成如下的形式呢?
MAN WOMAN
CHILD
FIRST SECOND
王兵丁梅王一
李平吴芳李一李二
数据库中的关系有以下性质:
1、列是同性质的,即每一列中的分量是同一类型的数据,来自同一个域。
2、不同的列可出自同一个域,每一列称为属性,要给予不同的属性名。
3、列的顺序无所谓,即列的次序可以任意交换。
4、任意两个元组不能全同。
5、行的顺序无所谓,即行的次序可以任意交换。
6、每一分量必须是不可分的数据项。
关系模型
一、单一的数据结构——关系
1、码
(1). 候选码
(2). 主码、主属性
2、关系模式
关系的描述称为关系模式。通常记为:
R(A1,A2…,An)。R为关系名, A1,A2…,、长度。
3、关系数据库
(1).关系数据库的型
(2).关系数据库的值
二、关系操作
关系模型给出了关系操作的能力和特点,但不对DBMS的语言给出具体的语法要求。关系语言的特点是高度非过程化。
关系模型中,关系操作的能力可用关系代数来表示。常用的几种如下:
1. θ选择
2. 投影
3. θ连接
4. 除
5. 并
6. 交
7. 差
三、关系模型的三类完整性
实体完整性、参照完整性和用户定义的完整性。
1、实体完整性
设属性A是基本关系R的主码组成成分(主属性),则属性A不能取空值。
对实体完整性的4点说明:
2、参照完整性
若基本关系R中含有与另一个基本关系S的主码Ks相对应的属性组F,则对于R中每个元组在F上的值必须为:(1)取空值.(2)或者等于S中某个元组的主码值。
如职工关系EMP(ENO,ENAME,DNO)与
部门关系DEPT(DNO,DNAME)
3、用户定义完整性
关系数据语言概述
关系的数据操纵语言按照表达查询的方式可分为两大类:
1. 用对关系的运算来表达查询的方式,称为关系代数.
2. 用谓词来表达查询要求的方式,称为关系演算.
(1)元主关系演算
(2)域关系演算
关系代数和两种关系演算均是抽象的查询语言.
.
实际的查询语言除了提供关系代数的功能外,还提供了许多附加的功能,如库函数、关系赋值、算术运算等功能。
关系代数
一、关系代数的运算的分类
1. 传统的集合运算
2. 专门的关系运算
。
二、关系代数用到的运算符
(1)集合运算符: ∪(并),-(差),∩(交),×(广义笛卡尔积)
(2)专门的关系运算符: σ(选择),π(投影), (连接),÷(除)
(3)算术比较符θ={>,≥,<,≤,=,≠}
(4)逻辑运算符: ┐,∧, ∨
传统的集合运算
设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则可以定义四种运算如下:
1. 并(Union)
关系R和关系S的并记为R∪S, . R∩S
2. 差(Di