数据库学习笔记——关系数据库
关系
定义1 域是一组具有相同数据类型的值的集合。
定义2 给定一组域\(D_1,D_2,\cdots,D_n\),允许其中某些域是相同的,\(D_1,D_2,\cdots,D_n\)的笛卡尔积定义为 \[
D_1 \times D_2 \times\cdots\times D_n=\{(d_1,d_2,\cdots,d_n)|d_i \in
D_i,i=1,2,\cdots,n\}
\] 其中,每一个元素\((d_1,d_2,\cdots,d_n)\)叫做一个n元组(n-tuple),或简称元组(tuple)。元素中每一个值\(d_i\)叫做一个分量(component)。
一个域中允许的不同取值的个数称为这个域的基数(cardinal number)。
若\(D_i(i=1,2,\cdots,n)\)为有限集,其基数为\(m_i(i=1,2,\cdots,n)\),则\(D_1\times D_2 \times\cdots\times
D_n\)的基数M为 \[
M=\mathop{\Pi}\limits_{i=1}^{n} m_i
\]
定义3 \(D_1 \times D_2 \times\cdots\times
D_n\)的子集叫做在域\(D_1,D_2,\cdots,D_n\)的关系,表示为\(R(D_1,D_2,\cdots,D_n)\)
这里R表示关系的名字,n表示关系的目或度(degree)。
若关系中某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码(candidate
key)。
候选码的诸属性称为主属性(prime
attribute)。不包含在候选码中的属性称为非主属性(non-prime
attribute)或非码属性(no-key attribute)。
若一个关系有多个候选码,则选定一个为主码(primary
key)。极端情况下,关系模式的所有属性是这个关系模式的候选码,称为全码。