关系型数据库的设计理论(异常、函数依赖、范式)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013617791/article/details/83041560

文章目录

异常

  • 数据冗余大:某个属性的值重复次数过多
  • 插入异常:没有主键属性的时候,其他属性无法插入
  • 删除异常:因删除某个属性所在的行而连带彻底删除了某些其他属性
  • 更新异常:属性的某个值发生改变时,因处理不当而没有完成该值对应的所有元组的修改

函数依赖

  • 数据依赖: 同一个关系中,属性间的相互依赖和相互制约。包括函数依赖、多值依赖、连接依赖。
  • 函数依赖: 指属性或属性之间一一对应的关系。关系R(U)是属性集U上的关系模式,X,Y时U的子集。若对于R(U)上任意关系r的任意两个元组,X相同则Y必相同(X可以决定Y),则称X函数确定Y函数,或Y函数依赖于X函数,记作:X→Y。X叫做决定因素,Y叫做依赖因素
    • 平凡的函数依赖
      X→Y,其中,Y是X的子集。(必定成立)
    • 非平凡的函数依赖
      X→Y,且Y不是X的子集。不特别声明,总是讨论非平凡依赖。
    • 完全函数依赖部分函数依赖
      对于 X→Y,如果能找到 X 的真子集 X’,使得 X’→ Y,那么 X->Y 就是部分函数依赖,否则就是完全函数依赖
    • 传递函数依赖
      如果X→Y,Y不是X的子集,Y→X不成立(为了排除直接X函数决定Z),Y→Z,则称Z对X传递函数依赖

范式

  • 概念
    • 第一范式(1NF): 数据表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。(不满足第一范式的不是关系模式
    • 第二范式(2NF): 在第一范式的基础上,数据表中所有非关键字段完全依赖任意一组候选关键字
    • 第三范式(3NF): 在第二范式的基础上,数据表中所有非关键字段不传递依赖任意一组候选关键字。(一般企业都要求满足
    • BCNF范式:也叫作扩充的第三范式,或修正的第三范式。消除了插入和删除异常。

猜你喜欢

转载自blog.csdn.net/u013617791/article/details/83041560