normal form


规范化

规范化是将属性分配给一个实体的过程,用以减少数据冗余和减少更新异常。这个过程实际上就是将一个低一级范式的关系模式,通过模式分解转换为若干个高一级范式的关系模式的集合的过程

数据库设计中的异常

  • 数据冗余
  • 修改复杂:
    • 更改表所对应的某个实体实例或者关系实例的单个属性时,需要进行多次更新
  • 插入异常:
    • 因缺少某些属性的值,导致无法插入某个实体实例
  • 删除异常:
    • 删除表的某一个实体实例或关系实例时,导致丢失另一个不同实体实例或关系实例的信息

例子:

喵喵喵

上述关系中存在:

  • 借多本书时,学生信息存在冗余
  • 学生转系时,修改复杂
  • 新生注册但是未借书,插入异常
  • 还了所有的书,删除异常

函数依赖

  • 设 $X$, $Y$ 是关系 $R$ 的两个属性集合,当任何时刻 $R$ 中的任意两个元组中的 $X$ 属性值相同时,则它们的 $Y$ 属性值也相同,则称 $X$ 函数决定 $Y$ ,或 $Y$ 函数依赖于 $X$
  • 函数依赖与属性间的关系:
    • 若 $X$, $Y$ 是 $1-1$ 关系:
      • 则 $X \rightarrow Y$,且 $Y \rightarrow X$
    • 若 $X, Y$ 是 $m-1$ 关系:
      • 则 $X \rightarrow Y$,但 $Y \nrightarrow X$
    • 若 $X, Y$ 是 $m-n$ 关系:
      • 则不存在函数依赖
  • 非平凡函数依赖:$X \rightarrow Y$ 并且 $Y \nsubseteq X$
  • 平凡函数依赖:$X \rightarrow Y$ 并且 $Y \subseteq X$

完全函数依赖 $(full \; dependency)$

  • 如果 $X \rightarrow Y$,并且对于 $X$ 的任何真子集 $X’$,都有 $X’ \nrightarrow Y$
    • 记作 $X \stackrel{f}{\rightarrow} Y$
  • 若 $X$ 为单属性,则一定是完全函数依赖

部分函数依赖 $(partial \; dependency)$

  • 如果 $X \rightarrow Y$,并且存在 $X$ 的真子集 $X’$,使得 $X’ \rightarrow Y$
    • 记作 $X \stackrel{p}{\rightarrow} Y$
  • 若 $X$ 为多属性,则取其真子集,检查是否能够决定右部属性

传递函数依赖 $(transitive \; dependency)$

  • 如果 $X \rightarrow Y$,$Y \nsubseteq X$,$Y \nrightarrow X$,且 $Y \rightarrow Z$
    • 记作 $X \stackrel{t}{\rightarrow} Z$

函数依赖与候选键

  • 若 $X \stackrel{f}{\rightarrow} U$,则 $X$ 称为 $R$ 的候选键
    • $U$ 代表关系 $R$ 的所有属性
  • 主属性:包含在任何一个候选码中的属性
  • 非主属性:不包含在任何一个候选码中的属性
  • 全码:整个属性组为码

范式

  • 第一范式:属性不可再分

    • 关系型数据库的最基本要求
  • 第二范式:每一个非主属性完全函数依赖于码

  • 第三范式:每一个非主属性不传递函数依赖于码

  • BCNF:每一个非主属性和主属性不传递函数依赖于码

    • 即所有的函数依赖左部必须包含
  • 4NF

  • 5NF


文章作者: qiufeng
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 qiufeng !
评论
 上一篇
eval eval
对于一些含有 BN 层和 Dropout 层的模型来说,训练时的 forward 和测试时的 forward 是不同的,因此在前向传播的过程中需要指定是在训练还是在测试 document.querySelectorAll(
2020-05-04
下一篇 
group group
群 群由一个非空集合和在该集合上的二元运算构成,并且具有封闭性、结合律、单位元、可逆元 满足交换律的群称为交换群或Abel群 子群 假设 $(G, *)$ 是一个群,$H$ 是 $G$ 的一个非空子集,则当 $H$ 对于二元运算 $*
2020-05-02
  目录