在关系数据库中,关系的定义为:给定一组域D1,D2,…,Dn,这些域中可以使相同的域。D1,D2,…,Dn的笛卡尔积D1×D2×…×Dn的子集叫做在域D1,D2,…,Dn上的关系,表示为R(D1,D2,…,Dn)。这里R表示关系的名字,n是关系的目或度。
- 属性 attribute
- 域 domain:每个属性的取值范围所对应一个值的集合,称为该属性的域。
- 目或度 degree
- 候选码 candidate key:若关系中的某一属性或属性组的值能唯一的标识一个元组,则称该属性或属性组为候选码。
- 主码 primary key :或称为主键,若一个关系有多个候选码,则选定其中一个为主码。
- 主属性 prime attribute:包含在任何候选码中的诸属性称为主属性。不包含在任何候选码中的属性称为非主属性。
- 外码 foreign key:如果关系模式RRR中的属性或属性组非该关系的码,但它是其他关系的码,那么该属性集对关系模式RRR而言是外码
- 全码 all key:关系模型的所有属性组是这个关系模式的候选码,称为全码。
设D1,D2,D3,⋯ ,DnD_1,D_2,D_3,\cdots,D_nD1,D2,D3,⋯,Dn为任意集合,定义D1,D2,D3,⋯ ,DnD_1,D_2,D_3,\cdots,D_nD1,D2,D3,⋯,Dn的笛卡儿积为:
D1×D2×D3×⋯×Dn={(d1,d2,d3,⋯ ,dn)∣di∈Di,i=1,2,3,⋯n}D_1 \times D_2 \times D_3 \times \cdots \times D_n = \{(d_1,d_2,d_3,\cdots,d_n)|d_i \in D_i,i=1,2,3,\cdots n\}D1×D2×D3×⋯×Dn={(d1,d2,d3,⋯,dn)∣di∈Di,i=1,2,3,⋯n}
其中集合中的每一个元素(d1,d2,d3,⋯ ,dn)(d_1,d_2,d_3,\cdots,d_n)(d1,d2,d3,⋯,dn)叫做一个nnn元组(nnn-tuple,即nnn个属性的元组),元组中的每一个值did_idi叫做元组一个分量。若Di(i=1,2,3,⋯ ,n)D_i(i=1,2,3,\cdots,n)Di(i=1,2,3,⋯,n)为有限集,其基数(Cardinal Number,元组的个数)为mi(i=1,2,3,⋯ ,n)m_i(i=1,2,3,\cdots,n)mi(i=1,2,3,⋯,n),则D1×D2×D3×⋯×DnD_1 \times D_2 \times D_3 \times \cdots \times D_nD1×D2×D3×⋯×Dn的基数MMM为:M=∏i=1nmiM=\prod\limits_{i=1}^nm_iM=i=1∏nmi。
D1×D2×D3×⋯×DnD_1 \times D_2 \times D_3 \times \cdots \times D_nD1×D2×D3×⋯×Dn的子集叫做在域D1,D2,D3,⋯ ,DnD_1,D_2,D_3,\cdots,D_nD1,D2,D3,⋯,Dn上的关系,记为R(D1,D2,D3,⋯ ,Dn)R(D_1,D_2,D_3,\cdots,D_n)R(D1,D2,D3,⋯,Dn),称关系RRR为nnn元关系。
关系中属性的个数称为元数,元组的个数称为基数。
关系的描述称为关系模式,可以形式化地表示为:
R(U,D,dom,F)R(U,D,dom,F)R(U,D,dom,F)
其中RRR表示关系名,UUU是组成该关系的属性名集合,DDD是属性的域,domdomdom是属性向域的映像集合,FFF为属性间数据的依赖关系集合。
通常将关系模式简记为:
R(U)或R(A1,A2,A3,⋯ ,An)R(U)或R(A_1,A_2,A_3,\cdots,A_n)R(U)或R(A1,A2,A3,⋯,An)
其中,RRR为关系名,A1,A2,A3,⋯ ,AnA_1,A_2,A_3,\cdots,A_nA1,A2,A3,⋯,An为属性名或域名,属性向域的映像常常直接说明属性的类型、长度。通常在关系模式主属性加下划线表示该属性为主码属性。
关系的完整性约束共分为三类:实体完整性、参照完整性(也称引用完整性)和用户定义完整性。
- 实体完整性 entity integrity。规定基本关系RRR的主属性AAA不能取空值。
- 参照完整性 referential integrity。
- 用户定义完整性 user defined integrity。
五种基本的关系代数运算
五种基本的关系代数运算包括并、差、笛卡儿积、投影和选择。
1. 并 Union
关系RRR与SSS具有相同的关系模式,即RRR与SSS的元数相同(结构相同)。关系RRR与SSS并由属于RRR或属于SSS的元组构成的集合组成,记作R∪SR\cup SR∪S,其形式定义如下:
R∪S={t∣t∈R∨t∈S}R\cup S=\{t|t \in R \vee t \in S\}R∪S={t∣t∈R∨t∈S}
2. 差 Difference
关系RRR与SSS具有相同的关系模式,关系RRR与SSS的差是由属于RRR但不属于SSS的元组构成的集合,记作R−SR-SR−S,其形式定义如下:
R−S={t∣t∈R∧t∈S}R - S=\{t|t \in R \wedge t \in S\}R−S={t∣t∈R∧t∈S}
3. 广义笛卡儿积 Extended Cartesian Product
两个元素分别为nnn目和mmm目的关系RRR和SSS的广义笛卡儿积是一个(n+m)(n+m)(n+m)列的元组的集合,元组的前nnn列是关系RRR的一个元组,后mmm列是关系SSS的一个元组,记作R×SR \times SR×S,其形式定义如下:
R×S={t∣t=<tn,tm>∧tn∈R∧tm∈S}R \times S = \{t|t=< t^n,t^m > \wedge t^n \in R \wedge t^m \in S\}R×S={t∣t=<tn,tm>∧tn∈R∧tm∈S}
<tn,tm>< t^n,t^m> <tn,tm>意为元组tnt^ntn和tmt^mtm拼接成的一个元组。
4. 投影 Projection
投影运算是从关系的垂直方向进行运算,在关系RRR中选择出若干属性列AAA组成新的关系,记作πA(R)\pi_A(R)πA(R),其形式定义如下:
πA(R)={t[A]∣t∈R}\pi_A(R)=\{t[A]|t \in R\}πA(R)={t[A]∣t∈R}
5. 选择 Selection
选择运算是从关系的水平方向进行运算,是从关系RRR中选择满足给定条件的诸元组,记作σF(R)\sigma_F(R)σF(R),其形式定义如下:
σF(R)={t∣t∈R∧F(t)=True}\sigma_F(R)=\{t|t \in R \wedge F(t) = True\}σF(R)={t∣t∈R∧F(t)=True}
其中,FFF中的运算对象是属性名(或列的序号)或常数,运算符、算术比较运算符和逻辑运算符。
σ1≥6(R)\sigma_{1 \geq 6}(R)σ1≥6(R)表示选取RRR关系中第一个属性值大于第六个属性值的元组;
σ1≥′6′(R)\sigma_{1 \geq '6'}(R)σ1≥′6′(R)表示选取RRR关系中第一个属性值大于6的元组;
6. 交 Intersection
关系RRR与SSS具有相同的关系模式,关系RRR与SSS的交是由属于RRR同时又属于SSS的元组构成的集合,关系RRR与SSS的交记作R∩SR \cap SR∩S,其形式定义如下:
R∩S={t∣t∈R∧t∈S}R \cap S = \{t| t\in R \wedge t \in S\}R∩S={t∣t∈R∧t∈S}
R∩S=R−(R−S)R \cap S = R-(R-S)R∩S=R−(R−S)或者R∩S=S−(S−R)R \cap S = S - (S-R)R∩S=S−(S−R)
7. 连接 join
连接分为θ\thetaθ连接、等值连接及自然连接三种。连接运算是从两个关系RRR和SSS的笛卡儿积中选取满足条件的元组。因此,可以认为笛卡儿积是无条件连接,其他的连接操作认为是有条件连接。
- θ\thetaθ连接
θ\thetaθ连接是从RRR与SSS的笛卡儿积中选取属性间满足一定条件的元组。其形式定义如下:
R⋈XθYS={t∣t=<tn,tm>∧tn∈R∧tm∈S∧tn[X]θtm[Y]}R \mathop {\bowtie}\limits_{X \theta Y} S = \{t|t=<t^n,t^m > \wedge t^n \in R \wedge t^m \in S \wedge t^n[X] \theta t^m[Y]\}RXθY⋈S={t∣t=<tn,tm>∧tn∈R∧tm∈S∧tn[X]θtm[Y]}
其中:′XθY′为连接的条件'X \theta Y'为连接的条件′XθY′为连接的条件,θ\thetaθ是比较运算符,XXX和YYY分别为RRR和SSS上度数相等,且可比的属性组。tn[X]t^n[X]tn[X]表示RRR中tnt^ntn元组的相应于属性XXX的一个分量。tm[Y]t^m[Y]tm[Y]表示SSS中tmt^mtm的相应于属性YYY的一个分量。需要说明的是:
θ\thetaθ连接也可以表示为:
R⋈iθjS={t∣t=<tn,tm>∧tn∈R∧tm∈S∧tn[i]θtm[j]}R \mathop {\bowtie}\limits_{i \theta j} S = \{t|t=<t^n,t^m > \wedge t^n \in R \wedge t^m \in S \wedge t^n[i] \theta t^m[j]\}Riθj⋈S={t∣t=<tn,tm>∧tn∈R∧tm∈S∧tn[i]θtm[j]}
其中:i=1,2,3⋯ ,n,j=1,2,3,⋯ ,mi=1,2,3\cdots,n,j=1,2,3,\cdots,mi=1,2,3⋯,n,j=1,2,3,⋯,m,′iθj′'i \theta j'′iθj′的含义为从两个关系RRR和SSS中选取RRR的第iii列和SSS的第jjj列满足θ\thetaθ运算的元组进行连接。
θ\thetaθ连接可以由基本的关系运算笛卡儿积和选取 运算导数。因此θ\thetaθ连接可表示为:
R⋈XθYS=σXθY(R×S)或R⋈iθj=σiθ(i+j)(R×S)R \mathop {\bowtie}\limits_{X \theta Y} S = \sigma_{X \theta Y } (R \times S) 或 R \mathop {\bowtie}\limits_{i \theta j} =\sigma_{i \theta (i+j) } (R \times S)RXθY⋈S=σXθY(R×S)或Riθj⋈=σiθ(i+j)(R×S) - 等值连接 Equijoin
当θ\thetaθ为“===”时,称之为等值连接,记为R⋈X=YSR \mathop {\bowtie}\limits_{X = Y} SRX=Y⋈S。其形式定义如下:
R⋈X=YS={t∣t=<tn,tm>∧tn∈R∧tm∈S∧tn[X]=tm[Y]}R \mathop {\bowtie}\limits_{X = Y} S = \{t|t=<t^n,t^m > \wedge t^n \in R \wedge t^m \in S \wedge t^n[X] = t^m[Y]\}RX=Y⋈S={t∣t=<tn,tm>∧tn∈R∧tm∈S∧tn[X]=tm[Y]} - 自然连接 Natural Join
自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果集中将重复属性列去掉。
若tnt^ntn表示RRR关系的元组变量,tmt^mtm表示SSS关系的元组变量;RRR和SSS具有相同的属性组BBB,且B=(B1,B2,⋯ ,Bk)B=(B_1,B_2,\cdots,B_k)B=(B1,B2,⋯,Bk);并假定RRR关系的属性为A1,A2,⋯ ,An−k,B1,B2,⋯ ,BkA_1,A_2,\cdots,A_{n-k},B_1,B_2,\cdots,B_kA1,A2,⋯,An−k,B1,B2,⋯,Bk,SSS关系的属性为B1,B2,⋯ ,Bk,Bk+1,Bk+2,⋯ ,BmB_1,B_2,\cdots,B_k,B_{k+1},B_{k+2},\cdots,B_mB1,B2,⋯,Bk,Bk+1,Bk+2,⋯,Bm;为SSS的元组变量tmt^mtm去掉重复属性BBB所组成的新元组变量为tm∗t^{m^*}tm∗。自然连接可以记为R⋈SR \bowtie SR⋈S, 其形式定义如下:
R⋈S={t∣t=<tn,tm∗>∧tn∈R∧tm∈S∧R.B1=S.B1∧R.B2=S.B2∧⋯∧R.Bn=S.Bn}R \bowtie S=\{t|t=<t^n,t^{m^*} > \wedge t^n \in R \wedge t^m \in S \wedge R.B_1 = S.B_1 \wedge R.B_2 = S.B_2 \wedge \cdots \wedge R.B_n = S.B_n \}R⋈S={t∣t=<tn,tm∗>∧tn∈R∧tm∈S∧R.B1=S.B1∧R.B2=S.B2∧⋯∧R.Bn=S.Bn}
自然连接可以由基本的关系元素笛卡儿积和选取运算导出,因此自然连接可表示为:
R⋈S=∏A1,A2,⋯ ,An−k,R.B1,R.B2,⋯ ,R.Bk,Bk+1,Bk+2,⋯ ,Bm(σR.B1=S.B1∧R.B2=S.B2∧⋯∧R.Bk=S.Bk(R×S))R \bowtie S=\prod_{A_1,A_2,\cdots,A_{n-k},R.B_1,R.B_2,\cdots,R.B_k,B_{k+1},B_{k+2},\cdots,B_m}(\sigma_{R.B_1 = S.B_1 \wedge R.B_2 = S.B_2 \wedge \cdots \wedge R.B_k = S.B_k}(R \times S))R⋈S=∏A1,A2,⋯,An−k,R.B1,R.B2,⋯,R.Bk,Bk+1,Bk+2,⋯,Bm(σR.B1=S.B1∧R.B2=S.B2∧⋯∧R.Bk=S.Bk(R×S))
8. 除 Division
9.广义投影 Generalized Projection
10. 外连接 Outer Jion
11. 聚集函数
设R(U)R(U)R(U)是属性集UUU上的关系模式,X、YX、YX、Y是UUU的子集。若对R(U)R(U)R(U)中的任何一个可能的关系rrr,rrr中不可能存在两个元组在XXX上的属性值相等,而在YYY上的属性值不等,则称XXX函数决定YYY或YYY函数依赖于XXX,记作:X→YX \rightarrow YX→Y。
如果X→YX \rightarrow YX→Y,但Y⊈XY \not \subseteq XY⊆X,则称X→YX \rightarrow YX→Y是非平凡的函数依赖。
如果X→YX \rightarrow YX→Y,但Y⊆XY \subseteq XY⊆X,则称X→YX \rightarrow YX→Y是平凡的函数依赖。
函数依赖是语义范畴的概念,我们只能根据语义确定函数依赖。
在R(U)R(U)R(U)中,如果X→YX \rightarrow YX→Y,并且对于XXX的任何一个真子集X′X'X′,都有X′X'X′不能决定YYY,则称YYY对XXX完全函数依赖,记作:X→fYX\overset f \rightarrow YX→fY。如果X→YX \rightarrow YX→Y,但YYY不完全函数依赖于XXX,则称YYY对XXX部分函数依赖,记作:X→pYX\overset p \rightarrow YX→pY。部分函数依赖也称局部函数依赖。
在R(U,F)R(U,F)R(U,F)中,如果X→Y,Y⊈X,Y↛X,Y→ZX \rightarrow Y, Y \not \subseteq X, Y \not \rightarrow X, Y \rightarrow ZX→Y,Y⊆X,Y→X,Y→Z,则称ZZZ对XXX传递依赖。
设KKK为R(U,F)R(U,F)R(U,F)中的属性组合,若K→UK \rightarrow UK→U,且对于KKK的任何一个真子集K′K'K′,都有K′K'K′不能决定UUU,则KKK为RRR的候选码,若有多个候选码,则选一个作为主码。
若R(U)R(U)R(U)中的属性或属性组XXX非RRR的码,但XXX是另一个关系的码,则称XXX是RRR的外码或称外键。
若关系模式R(U)R(U)R(U)中,X、Y、ZX、Y、ZX、Y、Z是UUU的子集,并且Z=U−X−YZ=U-X-YZ=U−X−Y。当且仅当对R(U)R(U)R(U)中的任何一个关系rrr,给定一对(x,z)(x,z)(x,z)值,有一组YYY的值,这组值仅仅决定于xxx值而与zzz无关,则称”YYY多值依赖于XXX“或”XXX多值决定YYY“成立。记为:X→→YX \rightarrow \rightarrow YX→→Y。
多值依赖具有如下性质:
- 多值依赖具有对称性。即若X→→YX \rightarrow \rightarrow YX→→Y,则X→→ZX \rightarrow \rightarrow ZX→→Z,其中Z=U−X−YZ=U-X-YZ=U−X−Y。
- 多值依赖的传递性。即若X→→Y,Y→→ZX \rightarrow \rightarrow Y,Y \rightarrow \rightarrow ZX→→Y,Y→→Z,则X→→Z−YX \rightarrow \rightarrow Z-YX→→Z−Y
- 函数依赖可以看成是多值依赖的特殊情况。
- 若X→→Y,X→→ZX \rightarrow \rightarrow Y,X \rightarrow \rightarrow ZX→→Y,X→→Z,则X→→YZX \rightarrow \rightarrow YZX→→YZ。
- 若X→→Y,X→→ZX \rightarrow \rightarrow Y,X \rightarrow \rightarrow ZX→→Y,X→→Z,则X→→Y∩ZX \rightarrow \rightarrow Y \cap ZX→→Y∩Z。
- 若X→→Y,X→→ZX \rightarrow \rightarrow Y,X \rightarrow \rightarrow ZX→→Y,X→→Z,则X→→Z−YX \rightarrow \rightarrow Z-YX→→Z−Y。
1NF 第一范式
若关系模式RRR的每一个分量是不可再分的数据项,则关系模式RRR属于第一范式,记为R∈R \inR∈ 1NF
2NF 第二范式
若关系模式R∈1NFR \in 1NFR∈1NF,且每一个非主属性完全依赖于码,则关系模式R∈R \inR∈ 2NF。换句话说,当1NF消除了非主属性对码的部分函数依赖,则成为2NF。
包含在任何一个候选码中的属性叫做主属性,否则叫做非主属性。
3NF 第三范式
若关系模式R(U,F)R(U,F)R(U,F)中若不存在这样的码XXX,属性组YYY及非主属性Z(Z⊈Y)Z(Z \not \subseteq Y)Z(Z⊆Y)使得X→Y,(Y↛X)Y→ZX \rightarrow Y,(Y \not \rightarrow X)Y \rightarrow ZX→Y,(Y→X)Y→Z成立,则关系模式R∈R \inR∈ 3NF。
即当2NF消除了非主属性对码的传递函数依赖,则称为3NF。
BCNF 巴克斯范式
关系模式R∈1NFR \in 1NFR∈1NF,若X→YX \rightarrow YX→Y,且Y⊈XY \not \subseteq XY⊆X,XXX必含有码,则关系模式R∈R \inR∈ BCNF。
也就是说,当3NF消除了主属性对码的部分函数依赖和传递函数依赖,则称为BCNF。
一个满足BCNF的关系模式,应有如下性质:
- 所有非主属性对每一个码都是完全函数依赖;
- 所有非主属性对每一个不好含它的码,也是不完全函数依赖;
- 没有任何属性完全函数依赖于非码的任何一组属性。
5793

被折叠的 条评论
为什么被折叠?



