关系数据库

在关系数据库中,关系的定义为:给定一组域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:如果关系模式 R R R中的属性或属性组非该关系的码,但它是其他关系的码,那么该属性集对关系模式 R R R而言是外码
  8. 全码 all key:关系模型的所有属性组是这个关系模式的候选码,称为全码。

D 1 , D 2 , D 3 , ⋯   , D n D_1,D_2,D_3,\cdots,D_n D1,D2,D3,,Dn为任意集合,定义 D 1 , D 2 , D 3 , ⋯   , D n D_1,D_2,D_3,\cdots,D_n D1,D2,D3,,Dn的笛卡儿积为:
D 1 × D 2 × D 3 × ⋯ × D n = { ( d 1 , d 2 , d 3 , ⋯   , d n ) ∣ d i ∈ D i , 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}
其中集合中的每一个元素 ( d 1 , d 2 , d 3 , ⋯   , d n ) (d_1,d_2,d_3,\cdots,d_n) (d1,d2,d3,,dn)叫做一个 n n n元组( n n n-tuple,即 n n n个属性的元组),元组中的每一个值 d i d_i di叫做元组一个分量。若 D i ( i = 1 , 2 , 3 , ⋯   , n ) D_i(i=1,2,3,\cdots,n) Di(i=1,2,3,,n)为有限集,其基数(Cardinal Number,元组的个数)为 m i ( i = 1 , 2 , 3 , ⋯   , n ) m_i(i=1,2,3,\cdots,n) mi(i=1,2,3,,n),则 D 1 × D 2 × D 3 × ⋯ × D n D_1 \times D_2 \times D_3 \times \cdots \times D_n D1×D2×D3××Dn的基数 M M M为: M = ∏ i = 1 n m i M=\prod\limits_{i=1}^nm_i M=i=1nmi

D 1 × D 2 × D 3 × ⋯ × D n D_1 \times D_2 \times D_3 \times \cdots \times D_n D1×D2×D3××Dn的子集叫做在域 D 1 , D 2 , D 3 , ⋯   , D n D_1,D_2,D_3,\cdots,D_n D1,D2,D3,,Dn上的关系,记为 R ( D 1 , D 2 , D 3 , ⋯   , D n ) R(D_1,D_2,D_3,\cdots,D_n) R(D1,D2,D3,,Dn),称关系 R R R n n n元关系。
关系中属性的个数称为元数,元组的个数称为基数。

关系的描述称为关系模式,可以形式化地表示为:
R ( U , D , d o m , F ) R(U,D,dom,F) R(U,D,dom,F)
其中 R R R表示关系名, U U U是组成该关系的属性名集合, D D D是属性的域, d o m dom dom是属性向域的映像集合, F F F为属性间数据的依赖关系集合。
通常将关系模式简记为:
R ( U ) 或 R ( A 1 , A 2 , A 3 , ⋯   , A n ) R(U)或R(A_1,A_2,A_3,\cdots,A_n) R(U)R(A1,A2,A3,,An)
其中, R R R为关系名, A 1 , A 2 , A 3 , ⋯   , A n A_1,A_2,A_3,\cdots,A_n A1,A2,A3,,An为属性名或域名,属性向域的映像常常直接说明属性的类型、长度。通常在关系模式主属性加下划线表示该属性为主码属性。

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

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

五种基本的关系代数运算

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

1. 并 Union

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

2. 差 Difference

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

3. 广义笛卡儿积 Extended Cartesian Product

两个元素分别为 n n n目和 m m m目的关系 R R R S S S的广义笛卡儿积是一个 ( n + m ) (n+m) (n+m)列的元组的集合,元组的前 n n n列是关系 R R R的一个元组,后 m m m列是关系 S S S的一个元组,记作 R × S R \times S R×S,其形式定义如下:
R × S = { t ∣ t = < t n , t m > ∧ t n ∈ R ∧ t m ∈ 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}
< t n , t m > < t^n,t^m> <tn,tm>意为元组 t n t^n tn t m t^m tm拼接成的一个元组。

4. 投影 Projection

投影运算是从关系的垂直方向进行运算,在关系 R R R中选择出若干属性列 A A A组成新的关系,记作 π 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

选择运算是从关系的水平方向进行运算,是从关系 R R R中选择满足给定条件的诸元组,记作 σ F ( R ) \sigma_F(R) σF(R),其形式定义如下:
σ F ( R ) = { t ∣ t ∈ R ∧ F ( t ) = T r u e } \sigma_F(R)=\{t|t \in R \wedge F(t) = True\} σF(R)={ttRF(t)=True}
其中, F F F中的运算对象是属性名(或列的序号)或常数,运算符、算术比较运算符和逻辑运算符。
σ 1 ≥ 6 ( R ) \sigma_{1 \geq 6}(R) σ16(R)表示选取 R R R关系中第一个属性值大于第六个属性值的元组;
σ 1 ≥ ′ 6 ′ ( R ) \sigma_{1 \geq '6'}(R) σ16(R)表示选取 R R R关系中第一个属性值大于6的元组;

6. 交 Intersection

关系 R R R S S S具有相同的关系模式,关系 R R R S S S的交是由属于 R R R同时又属于 S S S的元组构成的集合,关系 R R R S S S的交记作 R ∩ S R \cap S RS,其形式定义如下:
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 θ连接、等值连接及自然连接三种。连接运算是从两个关系 R R R S S S的笛卡儿积中选取满足条件的元组。因此,可以认为笛卡儿积是无条件连接,其他的连接操作认为是有条件连接。

  1. θ \theta θ连接
    θ \theta θ连接是从 R R R S S S的笛卡儿积中选取属性间满足一定条件的元组。其形式定义如下:
    R ⋈ X θ Y S = { t ∣ t = < t n , t m > ∧ t n ∈ R ∧ t m ∈ S ∧ t n [ X ] θ t m [ 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 θ是比较运算符, X X X Y Y Y分别为 R R R S S S上度数相等,且可比的属性组。 t n [ X ] t^n[X] tn[X]表示 R R R t n t^n tn元组的相应于属性 X X X的一个分量。 t m [ Y ] t^m[Y] tm[Y]表示 S S S t m t^m tm的相应于属性 Y Y Y的一个分量。需要说明的是:
    θ \theta θ连接也可以表示为:
    R ⋈ i θ j S = { t ∣ t = < t n , t m > ∧ t n ∈ R ∧ t m ∈ S ∧ t n [ i ] θ t m [ 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 , ⋯   , m i=1,2,3\cdots,n,j=1,2,3,\cdots,m i=1,2,3,n,j=1,2,3,,m ′ i θ j ′ 'i \theta j' iθj的含义为从两个关系 R R R S S S中选取 R R R的第 i i i列和 S S S的第 j j j列满足 θ \theta θ运算的元组进行连接。
    θ \theta θ连接可以由基本的关系运算笛卡儿积和选取 运算导数。因此 θ \theta θ连接可表示为:
    R ⋈ X θ Y S = σ 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 = Y S R \mathop {\bowtie}\limits_{X = Y} S RX=YS。其形式定义如下:
    R ⋈ X = Y S = { t ∣ t = < t n , t m > ∧ t n ∈ R ∧ t m ∈ S ∧ t n [ X ] = t m [ 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
    自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果集中将重复属性列去掉。
    t n t^n tn表示 R R R关系的元组变量, t m t^m tm表示 S S S关系的元组变量; R R R S S S具有相同的属性组 B B B,且 B = ( B 1 , B 2 , ⋯   , B k ) B=(B_1,B_2,\cdots,B_k) B=(B1,B2,,Bk);并假定 R R R关系的属性为 A 1 , A 2 , ⋯   , A n − k , B 1 , B 2 , ⋯   , B k A_1,A_2,\cdots,A_{n-k},B_1,B_2,\cdots,B_k A1,A2,,Ank,B1,B2,,Bk S S S关系的属性为 B 1 , B 2 , ⋯   , B k , B k + 1 , B k + 2 , ⋯   , B m B_1,B_2,\cdots,B_k,B_{k+1},B_{k+2},\cdots,B_m B1,B2,,Bk,Bk+1,Bk+2,,Bm;为 S S S的元组变量 t m t^m tm去掉重复属性 B B B所组成的新元组变量为 t m ∗ t^{m^*} tm。自然连接可以记为 R ⋈ S R \bowtie S RS, 其形式定义如下:
    R ⋈ S = { t ∣ t = < t n , t m ∗ > ∧ t n ∈ R ∧ t m ∈ S ∧ R . B 1 = S . B 1 ∧ R . B 2 = S . B 2 ∧ ⋯ ∧ R . B n = S . B n } 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 = ∏ A 1 , A 2 , ⋯   , A n − k , R . B 1 , R . B 2 , ⋯   , R . B k , B k + 1 , B k + 2 , ⋯   , B m ( σ R . B 1 = S . B 1 ∧ R . B 2 = S . B 2 ∧ ⋯ ∧ R . B k = S . B k ( 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)是属性集 U U U上的关系模式, X 、 Y X、Y XY U U U的子集。若对 R ( U ) R(U) R(U)中的任何一个可能的关系 r r r r r r中不可能存在两个元组在 X X X上的属性值相等,而在 Y Y Y上的属性值不等,则称 X X X函数决定 Y Y Y Y Y Y函数依赖于 X X X,记作: X → Y X \rightarrow Y XY

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

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

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

R ( U , F ) R(U,F) R(U,F)中,如果 X → Y , Y ⊈ X , Y ↛ X , Y → Z X \rightarrow Y, Y \not \subseteq X, Y \not \rightarrow X, Y \rightarrow Z XY,YX,YX,YZ,则称 Z Z Z X X X传递依赖。

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

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

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

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

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

2NF 第二范式

若关系模式 R ∈ 1 N F R \in 1NF R1NF,且每一个非主属性完全依赖于码,则关系模式 R ∈ R \in R 2NF。换句话说,当1NF消除了非主属性对码的部分函数依赖,则成为2NF。
包含在任何一个候选码中的属性叫做主属性,否则叫做非主属性。

3NF 第三范式

若关系模式 R ( U , F ) R(U,F) R(U,F)中若不存在这样的码 X X X,属性组 Y Y Y及非主属性 Z ( Z ⊈ Y ) Z(Z \not \subseteq Y) Z(ZY)使得 X → Y , ( Y ↛ X ) Y → Z X \rightarrow Y,(Y \not \rightarrow X)Y \rightarrow Z XY,(YX)YZ成立,则关系模式 R ∈ R \in R 3NF。
即当2NF消除了非主属性对码的传递函数依赖,则称为3NF。

BCNF 巴克斯范式

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

  1. 所有非主属性对每一个码都是完全函数依赖;
  2. 所有非主属性对每一个不好含它的码,也是不完全函数依赖;
  3. 没有任何属性完全函数依赖于非码的任何一组属性。
4NF 第四范式
机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集,个人经导师指导并认可通过的高分设计项目,评审分99分,代码完整确保可以运,小白也可以亲自搞定,主要针对计算机相关专业的正在做大作业的学生和需要项目实战练习的学习者,可作为毕业设计、课程设计、期末大作业。 机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+文档报告+数据集机器学习作业,机器学习和深度学习方法实现的入侵检测源代码+
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值