关系数据库

在关系数据库中,关系的定义为:给定一组域D1,D2,…,Dn,这些域中可以使相同的域。D1,D2,…,Dn的笛卡尔积D1×D2×…×Dn的子集叫做在域D1,D2,…,Dn上的关系,表示为R(D1,D2,…,Dn)。这里R表示关系的名字,n是关系的目或度。

  1. 属性 attribute
  2. 域 domain:每个属性的取值范围所对应一个值的集合,称为该属性的域。
  3. 目或度 degree
  4. 候选码 candidate key:若关系中的某一属性或属性组的值能唯一的标识一个元组,则称该属性或属性组为候选码。
  5. 主码 primary key :或称为主键,若一个关系有多个候选码,则选定其中一个为主码。
  6. 主属性 prime attribute:包含在任何候选码中的诸属性称为主属性。不包含在任何候选码中的属性称为非主属性。
  7. 外码 foreign key:如果关系模式RRR中的属性或属性组非该关系的码,但它是其他关系的码,那么该属性集对关系模式RRR而言是外码
  8. 全码 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)diDi,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=1nmi

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),称关系RRRnnn元关系。
关系中属性的个数称为元数,元组的个数称为基数。

关系的描述称为关系模式,可以形式化地表示为:
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为属性名或域名,属性向域的映像常常直接说明属性的类型、长度。通常在关系模式主属性加下划线表示该属性为主码属性。

关系的完整性约束共分为三类:实体完整性、参照完整性(也称引用完整性)和用户定义完整性。

  1. 实体完整性 entity integrity。规定基本关系RRR的主属性AAA不能取空值。
  2. 参照完整性 referential integrity。
  3. 用户定义完整性 user defined integrity。

五种基本的关系代数运算

五种基本的关系代数运算包括并、差、笛卡儿积、投影和选择。

1. 并 Union

关系RRRSSS具有相同的关系模式,即RRRSSS的元数相同(结构相同)。关系RRRSSS并由属于RRR或属于SSS的元组构成的集合组成,记作R∪SR\cup SRS,其形式定义如下:
R∪S={t∣t∈R∨t∈S}R\cup S=\{t|t \in R \vee t \in S\}RS={ttRtS}

2. 差 Difference

关系RRRSSS具有相同的关系模式,关系RRRSSS的差是由属于RRR但不属于SSS的元组构成的集合,记作R−SR-SRS,其形式定义如下:
R−S={t∣t∈R∧t∈S}R - S=\{t|t \in R \wedge t \in S\}RS={ttRtS}

3. 广义笛卡儿积 Extended Cartesian Product

两个元素分别为nnn目和mmm目的关系RRRSSS的广义笛卡儿积是一个(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={tt=<tn,tm>tnRtmS}
<tn,tm>< t^n,t^m> <tn,tm>意为元组tnt^ntntmt^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]tR}

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)={ttRF(t)=True}
其中,FFF中的运算对象是属性名(或列的序号)或常数,运算符、算术比较运算符和逻辑运算符。
σ1≥6(R)\sigma_{1 \geq 6}(R)σ16(R)表示选取RRR关系中第一个属性值大于第六个属性值的元组;
σ1≥′6′(R)\sigma_{1 \geq '6'}(R)σ16(R)表示选取RRR关系中第一个属性值大于6的元组;

6. 交 Intersection

关系RRRSSS具有相同的关系模式,关系RRRSSS的交是由属于RRR同时又属于SSS的元组构成的集合,关系RRRSSS的交记作R∩SR \cap SRS,其形式定义如下:
R∩S={t∣t∈R∧t∈S}R \cap S = \{t| t\in R \wedge t \in S\}RS={ttRtS}
R∩S=R−(R−S)R \cap S = R-(R-S)RS=R(RS)或者R∩S=S−(S−R)R \cap S = S - (S-R)RS=S(SR)

7. 连接 join

连接分为θ\thetaθ连接、等值连接及自然连接三种。连接运算是从两个关系RRRSSS的笛卡儿积中选取满足条件的元组。因此,可以认为笛卡儿积是无条件连接,其他的连接操作认为是有条件连接。

  1. θ\thetaθ连接
    θ\thetaθ连接是从RRRSSS的笛卡儿积中选取属性间满足一定条件的元组。其形式定义如下:
    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θYS={tt=<tn,tm>tnRtmStn[X]θtm[Y]}
    其中:′XθY′为连接的条件'X \theta Y'为连接的条件XθYθ\thetaθ是比较运算符,XXXYYY分别为RRRSSS上度数相等,且可比的属性组。tn[X]t^n[X]tn[X]表示RRRtnt^ntn元组的相应于属性XXX的一个分量。tm[Y]t^m[Y]tm[Y]表示SSStmt^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θjS={tt=<tn,tm>tnRtmStn[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的含义为从两个关系RRRSSS中选取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θYS=σXθY(R×S)Riθj=σiθ(i+j)(R×S)
  2. 等值连接 Equijoin
    θ\thetaθ为“===”时,称之为等值连接,记为R⋈X=YSR \mathop {\bowtie}\limits_{X = Y} SRX=YS。其形式定义如下:
    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=YS={tt=<tn,tm>tnRtmStn[X]=tm[Y]}
  3. 自然连接 Natural Join
    自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果集中将重复属性列去掉。
    tnt^ntn表示RRR关系的元组变量,tmt^mtm表示SSS关系的元组变量;RRRSSS具有相同的属性组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,,Ank,B1,B2,,BkSSS关系的属性为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 SRS, 其形式定义如下:
    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 \}RS={tt=<tn,tm>tnRtmSR.B1=S.B1R.B2=S.B2R.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))RS=A1,A2,,Ank,R.B1,R.B2,,R.Bk,Bk+1,Bk+2,,Bm(σR.B1=S.B1R.B2=S.B2R.Bk=S.Bk(R×S))
8. 除 Division
9.广义投影 Generalized Projection
10. 外连接 Outer Jion
11. 聚集函数

R(U)R(U)R(U)是属性集UUU上的关系模式,X、YX、YXYUUU的子集。若对R(U)R(U)R(U)中的任何一个可能的关系rrrrrr中不可能存在两个元组在XXX上的属性值相等,而在YYY上的属性值不等,则称XXX函数决定YYYYYY函数依赖于XXX,记作:X→YX \rightarrow YXY

如果X→YX \rightarrow YXY,但Y⊈XY \not \subseteq XYX,则称X→YX \rightarrow YXY是非平凡的函数依赖。
如果X→YX \rightarrow YXY,但Y⊆XY \subseteq XYX,则称X→YX \rightarrow YXY是平凡的函数依赖。

函数依赖是语义范畴的概念,我们只能根据语义确定函数依赖。

R(U)R(U)R(U)中,如果X→YX \rightarrow YXY,并且对于XXX的任何一个真子集X′X'X,都有X′X'X不能决定YYY,则称YYYXXX完全函数依赖,记作:X→fYX\overset f \rightarrow YXfY。如果X→YX \rightarrow YXY,但YYY不完全函数依赖于XXX,则称YYYXXX部分函数依赖,记作:X→pYX\overset p \rightarrow YXpY。部分函数依赖也称局部函数依赖。

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 ZXY,YX,YX,YZ,则称ZZZXXX传递依赖。

KKKR(U,F)R(U,F)R(U,F)中的属性组合,若K→UK \rightarrow UKU,且对于KKK的任何一个真子集K′K'K,都有K′K'K不能决定UUU,则KKKRRR的候选码,若有多个候选码,则选一个作为主码。

R(U)R(U)R(U)中的属性或属性组XXXRRR的码,但XXX是另一个关系的码,则称XXXRRR的外码或称外键。

若关系模式R(U)R(U)R(U)中,X、Y、ZX、Y、ZXYZUUU的子集,并且Z=U−X−YZ=U-X-YZ=UXY。当且仅当对R(U)R(U)R(U)中的任何一个关系rrr,给定一对(x,z)(x,z)(x,z)值,有一组YYY的值,这组值仅仅决定于xxx值而与zzz无关,则称”YYY多值依赖于XXX“或”XXX多值决定YYY“成立。记为:X→→YX \rightarrow \rightarrow YXY
多值依赖具有如下性质:

  • 多值依赖具有对称性。即若X→→YX \rightarrow \rightarrow YXY,则X→→ZX \rightarrow \rightarrow ZXZ,其中Z=U−X−YZ=U-X-YZ=UXY
  • 多值依赖的传递性。即若X→→Y,Y→→ZX \rightarrow \rightarrow Y,Y \rightarrow \rightarrow ZXY,YZ,则X→→Z−YX \rightarrow \rightarrow Z-YXZY
  • 函数依赖可以看成是多值依赖的特殊情况。
  • X→→Y,X→→ZX \rightarrow \rightarrow Y,X \rightarrow \rightarrow ZXY,XZ,则X→→YZX \rightarrow \rightarrow YZXYZ
  • X→→Y,X→→ZX \rightarrow \rightarrow Y,X \rightarrow \rightarrow ZXY,XZ,则X→→Y∩ZX \rightarrow \rightarrow Y \cap ZXYZ
  • X→→Y,X→→ZX \rightarrow \rightarrow Y,X \rightarrow \rightarrow ZXY,XZ,则X→→Z−YX \rightarrow \rightarrow Z-YXZY
1NF 第一范式

若关系模式RRR的每一个分量是不可再分的数据项,则关系模式RRR属于第一范式,记为R∈R \inR 1NF

2NF 第二范式

若关系模式R∈1NFR \in 1NFR1NF,且每一个非主属性完全依赖于码,则关系模式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(ZY)使得X→Y,(Y↛X)Y→ZX \rightarrow Y,(Y \not \rightarrow X)Y \rightarrow ZXY,(YX)YZ成立,则关系模式R∈R \inR 3NF。
即当2NF消除了非主属性对码的传递函数依赖,则称为3NF。

BCNF 巴克斯范式

关系模式R∈1NFR \in 1NFR1NF,若X→YX \rightarrow YXY,且Y⊈XY \not \subseteq XYXXXX必含有码,则关系模式R∈R \inR BCNF。
也就是说,当3NF消除了主属性对码的部分函数依赖和传递函数依赖,则称为BCNF。
一个满足BCNF的关系模式,应有如下性质:

  1. 所有非主属性对每一个码都是完全函数依赖;
  2. 所有非主属性对每一个不好含它的码,也是不完全函数依赖;
  3. 没有任何属性完全函数依赖于非码的任何一组属性。
4NF 第四范式
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值