第三话:关系数据库
1. 关系模型
在关系数据库的世界里面无论是实体还是实体之间的关系都用关系来进行表示。
1.1 关系
域:单一属性的取值范围,实质上是某一种数据类型的值的集合
【域的笛卡尔积空间】
已知多个域
{
D
1
,
D
2
,
D
3
,
.
.
.
D
n
}
\{D_1,D_2,D_3,...D_n\}
{D1,D2,D3,...Dn} ,笛卡尔空间的意思是
D
1
X
D
2
X
D
3
X
.
.
.
X
D
n
=
{
(
d
1
,
,
d
2
,
.
.
d
n
)
∣
d
i
}
D_1XD_2XD_3X...XD_n=\{(d_1,,d_2,..d_n) | d_i\}
D1XD2XD3X...XDn={(d1,,d2,..dn)∣di},
d
i
d_i
di属于某个域的某个值
定义:所有域的元素任意组合
【基数】
域里元素的数量,对于域空间而言的基数则是:不同域的元素基数积。
举例:给出3个域,问 D1,D2,D3的笛卡尔积和基数?
- D1=导师集合SUPERVISOR={张清玫,刘逸}
- D2=专业集合SPECIALITY={计算机专业,信息专业}
- D3=研究生集合POSTGRADUATE={李勇,刘晨,王敏}
解:
D1×D2×D3={
- (张清玫,计算机专业,李勇),
- (张清玫,计算机专业,刘晨),
- (张清玫,计算机专业,王敏),
- (张清玫,信息专业,李勇),
- (张清玫,信息专业,刘晨),
- (张清玫,信息专业,王敏),
- (刘逸,计算机专业,李勇),
- (刘逸,计算机专业,刘晨),
- (刘逸,计算机专业,王敏),
- (刘逸,信息专业,李勇),
- (刘逸,信息专业,刘晨),
- (刘逸,信息专业,王敏) }
基数为2×2×3=12
【关系】
在数学上表示关系使用 R(D_1,D_2,D_3…D_n)
R:关系名
n:关系的目或者度(即元组元素的总数)
n目关系必有n个属性,因为一个D就是一个属性。
候选码(Candicate Key):某一个属性的D能唯一标识这个元组,则称该属性为候选码
全码(All-Key):最为极端的情况,该关系模式下的所有属性都是候选码
主码:如果有多个候选码,则选定其中一个作为主码(Primary Key)
被选为主码的属性不能取空值
单元关系(Unary relation):只有一个属性
双元关系(Binary relation):两个属性
1.2 关系模式
关系模式:Relation Schema
可以标识为:R(U,D,DOM,F)
R:关系名
U:属性名集合
D:U中属性所来自的域
DOM:属性向域的映像集合
F:属性间数据的依赖关系的集合