数据库复习之——重要基本概念总结

一、关系模型的基本概念

1、围绕关系的相关概念

  1. 三级模式

    • 外模式(External Schema):用户能看到和处理的数据的结构描述;
    • (概念)模式(Concentual Schema):从全局角度理解和管理的数据的结构描述,含有相应的关联约束;
    • 内模式(Internal Schema):存储在物理介质上的数据的结构描述,含存储路径、存储方式、索引方式;
  2. 两层映像

    • E-C映像(E-C Mapping):将外模式映射为概念模式,从而支持实现数据概念视图向外部视图的转换;便于用户观察使用;
    • C-I映像(C-I Mapping):将概念模式映射为内模式,从而支持实现数据概念视图向内部视图的转换;便于计算机进行存储和处理;
  3. 两个独立性

    • 逻辑数据独立性:当概念模式变化时,可不改变外部模式(只需改变E-C映像),从而无需改变应用程序;
    • 物理数据独立性:当内部模式变化时,可不改变概念模式(只需改变C-I映像),从而无需改变外部模式;
  4. 模式与数据模型

    • 模式:是对数据本身结构形式的抽象
    • 数据模型:是对模式本身结构的抽象;它规定了模式的统一描述方式,包括:数据结构、操作、约束;
    • 关系模型是一种数据模型:
      • 其所有的模式可抽象为Table的形式**[数据结构]**,而每个具体的模式有不同的列名和表名;
      • 对这种表形式的数据有哪些 [操作][约束]
  5. 三大经典数据模型

    • 关系模型:的形式来组织数据
    • 层次模型:的形式来组织数据
    • 网状模型:的形式来组织数据
  6. 一个关系就是一个Table

  7. 关系模型就是处理Table的,由三个部分组成(三要素):

    • 描述DB各种数据的基本结构形式(Table \ Relation)
    • 描述Table和Table之间各种操作的(关系运算)
      • 基本操作: ∪ \cup (并:Union)、 − - (差:Difference)、x(广义积:Product)、 σ \sigma σ(选择:Selection)、 π \pi π(投影:Projection)
      • 扩展操作: ∩ \cap (交:Intersection)、 ⋈ \bowtie (连接:Join)、 ÷ \div ÷(除:Division)
    • 描述这些操作应该遵循的约束条件(完整性约束)
      • 实体完整性、参照完整性、用户自定义完整性
  8. 关系运算:关系代数和关系演算 ;关系演算:元组演算和域演算

    • 关系代数:基于集合的运算( π 姓 名 , 课 程 ( σ 课 程 号 = c 2 ( R ⋈ S ) ) \pi_{姓名,课程}(\sigma_{课程号=c_2}(R \bowtie S)) π,(σ=c2(RS))
    • 元组演算:基于逻辑的运算 t ∣ ( ∃ u ) ( R ( t ) ∧ W ( u ) ∧ t [ 3 ] < u [ 1 ] ) { t | (\exist u)(R(t) \land W(u) \land t[3] < u[1] ) } t(u)(R(t)W(u)t[3]<u[1])
    • 域演算:基于示例的演算 { t 1 , t 2 , t 3 ∣ S ( t 1 , t 2 , t 3 ) ∧ R ( t 1 , t 2 , t 3 ) ∧ t 1 < 20 ∧ t 2 > 30 } \{ t_1,t_2,t_3 | S(t_1,t_2,t_3) \land R(t_1,t_2,t_3) \land t1<20 \land t2>30 \} {t1,t2,t3S(t1,t2,t3)R(t1,t2,t3)t1<20t2>30}
  9. 关系\关系模式:

    • 一组域的笛卡尔积的子集;笛卡尔积中具有某种意义的那些元组被称作一个关系
      • 因为关系的不同列可能来自通过一个域,那么为区分,为每个列取一个名字(属性名\列名)
    • 关系可用 R ( A 1 : D 1 , A 2 : D 2 , . . . , A n : D n ) R(A_1:D_1, A_2:D_2,...,A_n:D_n) R(A1:D1,A2:D2,...,An:Dn) 来表示,简记为 R ( A 1 , A 2 , . . . , A n ) R(A_1, A_2,...,A_n) R(A1,A2,...,An) ,这种描述即关系模式
      • R R R 表示关系名
      • A i A_i Ai 表示属性;
      • D i D_i Di 表示属性的域;(在定义表的时候,像char(20)、varchar等啊都是表示域)
      • n n n 是关系的度或者目;
      • 关系中元组的数目称为关系的基数
    • 关系与关系模式两者间的关系
      • 同一个关系模式下,可有很多的关系;
      • 关系模式是关系的结构,关系则是关系模式在某一时刻的数据;
      • 关系模式是稳定的;而关系是在关系模式在某一刻的值,是随着时间变化的;
  10. 候选码\候选键

    • 关系的一个属性组,其值能唯一的标识一个元组,若从该属性组中去掉任意一个属性,他就不再具备该特性,这样的属性组为候选码;
  11. 主键\主码

    • 当由多个候选码的时候,可选定一个作为主码;
    • DBMS是以主码为主要的线索来管理整个关系中的各个元组的;
  12. 主属性\非主属性

    • 包含在任何一个候选码中的属性被称作主属性;而其他属性被称作非主属性;
  13. 外码\外键

    • 关系R的一个属性组并非是R的候选码,但却是与关系S的候选码相对应,那么这个属性组为R的外码\外键;
  14. 三个完整性约束:

    • 实体完整性:关系中的主码属性不可为空;(主键不可为空)
    • 参照完整性:关系 R 1 R_1 R1 的外码 F k F_k Fk 与关系 R 2 R_2 R2 的主码 P k P_k Pk 相对应,那么 R 1 R_1 R1 的每个元组的 F k F_k Fk 值要么等于 P k P_k Pk 的值要么为空值(NULL);(某个表的外键的值,必须要么存在于另一个表的主键值之中,要么为空)
    • User根据具体的应用环境定义完整性约束条件;(如年龄必须在150以下等等)

2、关系代数运算

a. 基本操作

    • 定义:关系R与关系S是并相容的,R与S并运算的结果也是一个关系,记作: R ∪ S R\cup S RS,它由或者出现在R中,或者出现在S中的元组构成;(或者…或者…)
    • 数学语言描述: R ∪ S = { t ∣ t ∈ R ∨ t ∈ S } R \cup S = \{t |t \in R \lor t \in S \} RS={ttRtS}, 其中t是元组;
    • 定义:关系R与关系S是并相容的,R与S差运算的结果也是一个关系,记作: R − S R - S RS,它由出现在R中,但是不出现在S中的元组构成;(在…而不在… \ 是…但不含…)
    • 数学语言描述: R − S = { t ∣ t ∈ R ∧ t ∉ S } R - S = \{t |t \in R \land t \notin S \} RS={ttRt/S}, 其中t是元组;
  1. 广义笛卡尔积
    • 定义:关系 R ( < a 1 , a 2 , . . . , a m > ) R(<a_1,a_2,...,a_m>) R(<a1,a2,...,am>)与关系 S ( < b 1 , b 2 , . . . , b n > ) S(<b_1,b_2,...,b_n>) S(<b1,b2,...,bn>)的广义笛卡尔积运算结果也是一个关系,记作: R × S R \times S R×S,它由**出现在R中的元组与出现在S中的元组进行所有可能的拼接(或串接)**所构成;()
    • 数学语言描述: R × S = { < a 1 , a 2 , . . . , a m , b 1 , b 2 , . . . , b n > ∣ < a 1 , a 2 , . . . a m > ∈ R ∧ < b 1 , b 2 , . . . , b n > ∈ S } R \times S = \{<a_1,a_2,...,a_m,b_1,b_2,...,b_n> |<a_1,a_2,...a_m> \in R \land <b_1,b_2,...,b_n> \in S \} R×S={<a1,a2,...,am,b1,b2,...,bn><a1,a2,...am>R<b1,b2,...,bn>S}, 其中t是元组;
    • R R R m m m 度关系, S S S n n n 度关系;笛卡尔积 R × S R \times S R×S 的属性个数 = m + n m + n m+n
    • R R R x x x 个元组, S S S y y y 个元组;笛卡尔积 R × S R \times S R×S 的元组个数 = x × y x \times y x×y
  2. 选择(Select)
    • 定义:选择运算的结果也是一个关系,记作 σ c o n d ( R ) \sigma_{cond}(R) σcond(R),它由从关系 R R R 中选择满足条件 c o n d cond cond 的元组构成;
    • 数学语言描述: σ c o n d ( R ) = { t ∣ t ∈ R ∧ c o n d ( t ) = ′ 真 ′ } \sigma_{cond}(R) = \{t| t \in R \land cond(t) = '真' \} σcond(R)={ttRcond(t)=}
  3. 投影(Projection)
    • 定义:投影运算也是一个关系,记作 π A ( R ) \pi_{A}(R) πA(R)。它由从关系 R R R 中选出属性包含在 A 中的列构成;
    • 数学语言描述: Π A i 1 , A i 2 , . . . , A i k ( R ) = { < t [ A i 1 ] , t [ A i 2 ] , . . . , t [ A i k ] > ∣ t ∈ R } \Pi_{A_{i1},A_{i2},...,A_{ik}}(R) = \{ < t[A_{i1}],t[A_{i2}],...,t[A_{ik}]> | t \in R\} ΠAi1,Ai2,...,Aik(R)={<t[Ai1],t[Ai2],...,t[Aik]>tR}

b. 扩展操作

    • 定义:关系R与关系S是并相容的,R与S的交运算结果也是一个关系,记作: R ∩ S R\cap S RS,它由出现在R中同时出现在S中的元组构成;(即…又… \ 并且)
    • 数学语言描述: R ∩ S = { t ∣ t ∈ R ∧ t ∈ S } R\cap S = \{t |t \in R \land t \in S \} RS={ttRtS}, 其中t是元组;
    • 通过差运算来实现交运算: R ∩ S = R − ( R − S ) = S − ( S − R ) R\cap S = R - (R-S) = S - (S - R) RS=R(RS)=S(SR)
  1. $\theta $ 连接操作
    • 定义:R与S的 θ \theta θ 连接运算结果也是一个关系,记作: R ⋈ A θ B S R\bowtie_{A\theta B} S RAθBS,它由在R与S的笛卡尔积中,选择R中属性A与S中属性B之间满足 θ \theta θ 条件的元组构成;()
    • 数学语言描述: R ⋈ A θ B S = σ t [ A ] θ t [ B ] ( R × S ) R\bowtie_{A\theta B} S = \sigma_{t[A] \theta t[B]}(R \times S) RAθBS=σt[A]θt[B](R×S)
    • 操作步骤:
      • 对两个表进行笛卡尔积(在DBMS中并不会进行笛卡尔积操作,这里只是为了便于理解)
      • 从笛卡尔积中选择符合 A θ B A\theta B AθB 条件的元组
      • 在所需投影字段上进行投影,得到最终结果
    • 等值连接是一种特殊的 θ \theta θ连接,而自然连接又是一种特殊的等值连接

c. 复杂扩展操作

  1. 除操作
    • 求解 “查询…全部的\所有的…” ;
    • 前提条件:关系 R ( < A 1 , A 2 , . . . , A n > ) R(<A_1, A_2,...,A_n>) R(<A1,A2,...,An>)是n度关系,关系 S ( < B 1 , B 2 , . . . , B m > ) S(<B_1, B_2,...,B_m>) S(<B1,B2,...,Bm>)是m度关系,只有在S的属性集是R的属性集的真子集的时候,才可进行 R ÷ S R\div S R÷S操作;
    • R ÷ S R \div S R÷S的属性集以及元组的形成方式:
      • 结果的属性集 { C 1 , . . . , C k } = { A 1 , A 2 , . . . , A n } − { B 1 , B 2 , . . . , B m } \{C_1,...,C_k\} = \{A_1, A_2,...,A_n\} - \{B_1,B_2,...,B_m\} {C1,...,Ck}={A1,A2,...,An}{B1,B2,...,Bm},那么有k = n-m,即 R ÷ S R\div S R÷S是k度关系;
      • 结果的元组满足的条件:它与S的每个元组 < B 1 , B 2 , . . . , B m > <B_1,B_2,...,B_m> <B1,B2,...,Bm>组合形成的新元组都是R的某个元组;
    • 数学语言描述: R ÷ S = { t ∣ t ∈ Π R − S ( R ) ∧ ∀ u ∈ S ( t u ∈ R ) } = Π R − S ( R ) − Π R − S ( ( Π R − S ( R ) × S ) − R ) R \div S = \{ t | t \in \Pi_{R-S}(R) \land \forall u \in S(tu \in R) \} = \Pi_{R-S}(R) - \Pi_{R-S}((\Pi_{R-S}(R) \times S) - R) R÷S={ttΠRS(R)uS(tuR)}=ΠRS(R)ΠRS((ΠRS(R)×S)R)
  2. 外连接
    • 外连接 = 自然连接(或者 θ \theta θ连接) + 失配的元组(与全空元组形成的连接)
    • 外连接的三种形式:
      • 左外连接 = 自然连接(或者 θ \theta θ连接)+ 左侧表中失配的元组( A ⟕ B A ⟕ B AB)【保留左边的失配元组,右边的用?表示】
      • 右外连接 = 自然连接(或者 θ \theta θ连接)+ 右侧表中失配的元组( A ⟖ B A ⟖ B AB)【保留右边的失配元组,左边的用?表示】
      • 全外连接 = 自然连接(或者 θ \theta θ连接)+ 两侧表中失配的元组( A ⟗ B A⟗B AB)【保留两边的失配元组】

d. 实际应用

  1. 书写关系代数表达式的基本思路:
    • 查看涉及的表的数量,如果是一个表,直接进行并、交、差、选择、投影等运算;
    • 如果涉及多个表,检查:
      • 能否进行自然连接,将多个表连接起来;
      • 不能自然连接,看看能不能进行等值连或者 θ \theta θ连接
      • 如若还是不能,那么使用笛卡尔积,并写明相关条件;
    • 连接完成后,针对聚合到的结果集,再次进行选择、投影等操作;

3、完整性约束

(1)数据库完整性指的是:DBMS应保证的DB的一种特性——在任何情况下的正确性、有效性、一致性;

  • 广义完整性:语义完整性、并发控制、安全控制、DB故障恢复等
  • 狭义完整性:专指语义完整性;(在数据库原理中只对狭义完整性进行讨论学习)

(2)**完整性约束条件(完整性约束规则)**的一般形式: I n t e g r i t y    C o n s t r a i n t : : = ( O , P , A , R ) Integrity \; Constraint ::= (O, P, A, R) IntegrityConstraint::=(O,P,A,R)

  • O:数据集合(约束的对象)
  • P:谓词条件(什么样的约束)
  • A:触发条件(何时检查)
  • R:响应动作(不满足约束时该怎么办)

(3)完整性约束分类

  • 按约束对象分类:域完整性约束条件、关系完整性约束条件;
  • 按约束来源分类:
    • 结构约束:如函数依赖、主键约束(实体完整性)、外键约束(参照完整性),只关心数值相等与否、是否允许空值等;
    • 内容约束:用户自定义完整性,关心元组或者属性的取值范围;
  • 按约束状态分类:
    • 静态约束:要求DB在任何时候都要满足的约束;(如 age 应该小于 150岁)
      • 列完整性——域完整性约束
      • 表完整性——关系完整性约束
    • 动态约束:要求DB从一状态变为另一状态的时候,需要满足的约束;(如工资只能升不能降)
      • 触发器

二、数据建模

1、数据建模思想与方法

  1. 数据模型与概念模型(抽象)
    在这里插入图片描述

2、IDEF1X图

  1. IDEF1X图的重要概念

    • 实体:

      • 独立实体——强实体:

        • 一个实体的实例被唯一的标识而不决定于它与其他实体的联系

        • 独立实体的关键字属性是自身拥有的属性
          在这里插入图片描述

      • 从属实体——弱实体:

        • 一个实体的实例的唯一标识需要依赖于该实体于其他实体间的联系

        • 从属实体需要从其他实体继承属性作为关键字的一部分

        • 从属实体的主关键字包含了继承自其他实体的属性

          在这里插入图片描述

    • 联系:联系分为连接联系分类联系不确定联系

      (1)连接联系又称父子联系,可进一步分为标定联系非标定联系

      • 标定联系:子实体的实例都是由它与父实体的联系而确定的。父实体的主关键字是子实体主关键字的一部分;
        在这里插入图片描述
        可标定联系表达了子父类关系,关系的图形为一条实线;要写上联系名;实点的一端在子类那边;

      • 非标定联系:子类实体的实例可唯一被标识,无需依赖与其他实体的联系;父类实体的关键字也不是子类实体的主关键字;

        在这里插入图片描述

        关系的图形为一条虚线;另外需要在联系的图像边写上联系名

      (2)分类联系:一个实体实例是由一个一般实体实例和多个分类实体实例构成;

      • 一个一般实体是若干具体实体的类

      • 分类实体与一般实体有相同的关键字

      • 不同的分类实体除了具有一般实体的特征外,各自还可能有不同的属性特征;

        在这里插入图片描述

        完全分类的图形是 = = = ;而非完全分类的图形是 − -

      (3)非确定联系:即实体之间多对多的联系

      • 非确定联系必须分解为若干个一对多的联系;

      • 通过引入相关实体 / 相交实体来将非确定联系拆解为若干一对多的联系;

        在这里插入图片描述

        其中借阅表为相交实体;

      【确定联系通过属性继承来实现两实体间的联系;】

      【非确定联系通过引入相交实体实现两实体间的联系;】

    • 属性\关键字:

      • 属性:表示一类现实或者抽象事物的一种特征或性质;
      • 关键字:能唯一确定实体每个实例的属性或属性组;
        • 主关键字\主码——主属性
        • 次关键字\候选码
      • 外来关键字\外键——外来属性:其他实体的关键字;

3、数据库设计过程

数据库设计的四个过程:需求分析、概念数据库设计、逻辑数据库设计、物理数据库设计;
在这里插入图片描述

(1)需求分析

  • 要在需求分析中,明确以下内容:
    • 企业的部门-岗位划分:不同岗位负责的各种日常管理信息表\报表
    • 形成各种报表的基础数据表
    • 各种数据表之间的处理关系;(What—How)
    • 围绕数据表的业务处理关系;(Who—When—Where)
    • 尚未实施但未来可能实施的需求;
  • 可结合数据流图辅助分析与理解
  • 最终形成需求分析报告

(2)概念数据库设计

  • 要在概念数据库设计中,明确以下内容:

    • 各种实体的发现、划分、定义;
    • 各种实体属性的发现、划分、定义;
    • 各种实体联系的发现、划分、定义;
    • 外部视图(模式)和概念视图(模式)的定义;
  • 最终形成IDEF1X模型图;

  • 概念数据库设计的两种设计思路:

    • 先局部后全局:

      在这里插入图片描述

    • 先全局后局部:

      在这里插入图片描述

(3)逻辑数据库设计

  • 要明确以下内容:
    • 将E-R / IDEF1X 图转换成逻辑模式;
    • 遵循关系范式的设计原则;
    • 注意折中,但折中处理的时候需要提示应用开发者或使用者可能存在的问题;
    • 外模式和概念模式的定义
  • 用关系、层次、网状模型来描述设计的模式(关系)
  • 数据库设计的理论(数据库设计中应遵循的原则):
    • 数据依赖理论
    • 关系范式理论
    • 模式分解理论

(4)物理数据库设计

  • 要明确以下内容:
    • DBMS选型
    • 确定数据库的存储结构,文件类型:如定长文件、不定长文件;堆文件、散列文件或B+Tree文件;
    • 使用触发器,设计一系列的完整性控制约束
    • 确定数据库的搞笑访问方式(索引访问、直接访问等)
    • 评估和设置磁盘空间需求;
    • 设置用户视图和访问控制规则,进行安全性控制;
    • 建立索引;
    • 设计使数据库运行达到最大效率的一些措施
    • 设计备份Backup和恢复Recovery

4、函数依赖

1. 定义

设 R(U) 是属性集合 U = { A 1 , A 2 , . . . , A n } U=\{A_1, A_2, ..., A_n\} U={A1,A2,...,An} 上的一个关系模式,X和Y是U上的两个子集,若对R(U)的任意一个可能的关系 r,r 中不可能有两个元组满足在X中的属性值相等而在Y中的属性值不等,则称 ”X函数决定Y“ 或 ”Y函数依赖于X“, 记作 X → Y;

从本质上讲,函数依赖是对属性之间取值的一种约束,是一种数据依赖;

2. 分类

a. 部分\全部函数依赖:在 R ( U ) R(U) R(U) 中,若 X → Y X→Y XY 并且对 X X X 的任何真子集 X ′ X' X ,都有 X ′ X' X 不能决定 Y Y Y,则称 Y Y Y 完全函数依赖 X X X ,记作 X ⟶ f Y X \stackrel{f}{\longrightarrow} Y XfY;否则称 Y Y Y 部分函数依赖 X X X,记作: X ⟶ p Y X \stackrel{p}{\longrightarrow}Y XpY

b. 传递函数依赖:在 R ( U ) R(U) R(U) 中,若 X → Y X \rightarrow Y XY Y → Z Y \rightarrow Z YZ ,且 Y ⊄ X , Z ⊄ Y , Z ⊄ X , Y ↛ X Y \not\subset X,Z \not\subset Y, Z \not\sub X, Y \not\rightarrow X YX,ZY,ZX,YX,则称Z传递依赖于X。

3. 几个重要概念

a. 候选键: 设 K 为 R(U) 中的属性活或属性组合,若 K ⟶ f U K \stackrel{f}{\longrightarrow}U KfU,则称K为 R(U) 上的候选键;

b. 外来键: 若 R(U) 中的属性或属性组合 X 并非 R 的候选键,但 X 确实另一个关系的候选键,则称 X 为 R 的外来键,简称外键。

c. 逻辑蕴含: 设 F 是关系模式 R(U) 中的一个函数依赖集合,X,Y 是 R 的属性子集,如果从 F 中的函数依赖能推导出 X → Y,则称 F 逻辑蕴含 X → Y,或者称 X → Y 是 F 的逻辑蕴含。

d. 闭包: 被 F 逻辑蕴含的所有函数依赖集合称为 F 的闭包, 记作 F + F^+ F+

4. 函数依赖的公理与定理

5. 函数依赖集的最小覆盖

5、关系范式

1. 1NF

若关系模式 R ( U ) R(U) R(U) 中关系的每个分量都是不可分的数据项(值、原子),则称 R ( U ) R(U) R(U) 属于第一范式是,记作 R ( U ) ∈ 1 N F R(U) \in 1NF R(U)1NF

第一范式要求关系中不可有符合属性、多值属性及其组合;

2. 2NF

R ( U ) ∈ 1 N F R(U) \in 1NF R(U)1NF,却 U U U 中的每一个非主属性完全函数依赖于候选键,则称 R ( U ) R(U) R(U) 属于第二范式,记作 R ( U ) ∈ 2 N F R(U) \in 2NF R(U)2NF

第二范式消除了关系的非主属性对候选键的部分函数依赖;

3. 3NF

R ( U ) ∈ 2 N F R(U) \in 2NF R(U)2NF,且 R R R 中不存在这样的情况:候选键 X,属性组 Y ⊆ U Y \sube U YU 和非主属性A,且 A ∉ X , A ∉ Y , Y ⊄ X , Y ↛ X A \notin X, A \notin Y, Y \not\sub X,Y \not\rightarrow X A/X,A/Y,YX,YX,使得 X → Y , Y → A X \rightarrow Y, Y \rightarrow A XY,YA成立。满足以上条件则称 R(U) 属于第三范式,记作: R ( U ) ∈ 3 N F R(U) \in 3NF R(U)3NF

第三范式消除了非主属性对候选键的传递函数依赖;

关系模式的设计中,如果满足了第三范式,就一定能满足第二范式;反之不然;

将关系模式分解成3NF

  • 将每个函数依赖单独组成一个关系,此时每个模式都满足第三范式;
  • 将一些模式进行合并;

4. BCNF

R ( U ) ∈ 1 N F R(U) \in 1NF R(U)1NF,若对任何 X → Y ∈ F ( 或 X → A ∈ F ) X \rightarrow Y \in F(或X \rightarrow A \in F) XYF(XAF),当 Y ⊄ X ( 或 A ∉ X ) Y \not\sub X(或A \notin X) YX(A/X)时, X比含有候选键,则称 R(U) 属于Boyee-Codd范式,记作: R ( U ) ∈ B C N F R(U) \in BCNF R(U)BCNF

将关系模式分解成BCNF

  • 将左侧不含候选键的函数依赖单独写成一个关系,将包含候选键的组成一个关系;
  • 将部分模式进行合并;

5. 4NF

R ( U ) ∈ 1 N F R(U) \in 1NF R(U)1NF,D是其上的一组依赖(函数依赖,多值依赖),对任意 X → → Y ∈ D X \rightarrow\rightarrow Y \in D XYD,若 Y ≠ ∅ Y \not= \empty Y= Y ⊄ X , X Y ≠ U Y\not\sub X, XY \not= U YX,XY=U, 则必有X为超键,则称 R(U) 属于第四范式,记作: R ( U ) ∈ 4 N F R(U) \in 4NF R(U)4NF

6. 多值依赖及其公理

6、模式分解

关系模式 R ( U ) R(U) R(U) 的分解:即用 $ R$ 的一组子集 p = { R 1 ( U 1 ) , . . . , R k ( U k ) } p = \{R_1(U_1),...,R_k(U_k)\} p={R1(U1),...,Rk(Uk)} 来代替 R R R ;其中 U = U 1 ∪ U 2 ∪ . . . ∪ U k U = U_1 \cup U_2 \cup ... \cup U_k U=U1U2...Uk

  1. 无损连接分解和保持依赖分解的概念
    无损连接分解即 R R R p p p 在数据内容方面是不是等价的;
    保持依赖分解即 R R R p p p 在数据依赖方面是不是等价的;

  2. 如何进行无损连接分解和保持依赖分解
    判断算法:
    a. 判断是不是无损连接;
    b. 判断是不是保持依赖

  3. 五个算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zhang L.R.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值