文档介绍:第二章关系数据库
关系模型概述
关系数据结构及形式化定义
关系的完整性
关系代数
关系演算
1
关系模型概述
(1)单一的数据结构——关系
(2)关系操作
(3)关系的三类完整性约束
关系操作的特点:一次一集合方式
非关系操作的特点:一次一记录方式
关系数据语言
关系代数语言
关系演算语言
元组关系演算语言
域关系演算语言
具有关系代数和关系演算双重特点的语言SQL
实体完整性
参照完整性
用户定义的完整性
关系模型的操作包括:查询和更新
2
定义:域是一组具有相同数据类型的值的集合。
例如:自然数
{1,2,3……n}
实数
{‘A’,‘B’}
小于100的正整数
{1,2,3,……100}
2. 笛卡尔积
定义:给定一组域D1,D2,……,Dn,这些域中可以
有相同的。 D1,D2,……,Dn的笛卡尔积为:
D1×D2 ×……×Dn={(d1,d2,…,dn) |diDi,i=1,2,…,n}
元组
分量
域的基数:集合的元素个数。
3
笛卡尔积的基数:若Di(i=1,2,……n)为有限集,其基数为
mi(i=1,2,……,n),则 D1×D2 ×……×Dn的基数M为:
笛卡尔积
一个二维表
元组
表的行
域
表的列
例:D1={‘A’, ‘ B’}
D2={3,5,9}
D1 ×D2 ={(‘A’,3), (‘A’,5) , (‘A’,9) , (‘B’,3) , (‘B’,5) , (‘B’,9) }
D1的基数为2; D2的基数为3; D1 ×D2的基数为6;
‘A’ 3
‘A’ 5
‘A’ 9
‘B’ 3
‘B’ 5
‘B’ 9
D1 D2
4
例子:
三个域: D1=supervisor={张清政,刘逸}
D2=speciality={计算机,信息}
D3=postgraduate={李勇,刘晨,王敏}
D1,D2,D3的笛卡积为:
D1×D2×D3=
{(张清政,计算机,李勇),( 张清政, 计算机, 刘晨),( 张清政,计算机,王敏),
(张清政, 信息, 李勇),( 张清政, 信息, 刘晨),( 张清政, 信息, 王敏),
(刘逸, 计算机, 李勇), ( 刘逸, 计算机, 刘晨), ( 刘逸,计算机,王敏),
(刘逸, 信息, 李勇),( 刘逸, 信息, 刘晨),( 刘逸, 信息, 王敏)}
该笛卡尔积的基数为:2 ×2 ×3=12
笛卡积
二维表
3列
12行
P49
该表的数据有
现实意义吗?
5
定义: D1×D2 ×…×Dn的子集称为在域D1,D2,…,Dn上
的关系,表示为 R(D1,D2,…,Dn)
关系的名字
关系的目或度
关系
二维表
属性
表的列
元组
表的行
属性
例子:。
这个关系名字为SAP,语义为:一个导师只有一个专业,一个专业可有多名导师;一个研究生只有一个专业,一个专业可有多名研究生;一个导师指导多名研究生,一名研究生只有一个导师。
6
这个关系可以表示为:
SAP(supervisor, speciality, postgraduate)
supervisor={张清政,刘逸}
speciality={计算机,信息}
postgraduate={李勇,刘晨,王敏}
关系SAP(supervisor, speciality, postgraduate)可包含三个元组:
postgraduate
supervisor
speciality
张清政
张清政
刘逸
信息
信息
信息
李勇
刘晨
王敏
postgraduate
7
候选码:若关系中的某一属性组能唯一地标识一个元组,
则称为该属性组为候选码。
主码:选定的一个候选码。
主属性:候选码的诸属性。
非主码属性:不包含在任何候选码中的属性。
8
例子1:
关系 S(S#,SN,SD,SA)
关系S的候选码:(S#) , (SN)
关系S的主码:(S#)
关系S的主属性:S#
关系S的非码属性:SD , SA
例子2:
关系SC(S#,C#,G)
关系SC的候选码:
关系SC的主码:
关系SC的主属性:
关系SC的非码属性:
(S#,C#)
(S#,C#)
S# , C#
G
例子3:
关系R(P,W,A)
关系R的候选码:(P,W,A)
关系R的主码:(P,W,A)
关系R的主属性:P ,W, A
关系R的非码属性:
全码
9
例子4:关系 SAP(supervisor,speci