易学笔记-系统分析师考试-第5章 数据库系统/5.2 数据模型/5.2.3 规范化理论

  • 错误关系模式举例:关系模式R(学生姓名,选修的课程名,任课老师,任课老师地址)
  1. 数据冗余:不同学生的任课老师数据可能重复
  2. 修改异常:修改了一个一条记录的任课老师地址后,其它同一个老师的地址都要修改
  3. 插入异常:如果不知道学生姓名,那么任课老师的信息就无法插入数据库
  4. 删除异常:删除了一个学生信息后,任课老师的信息也会被删除
  • 函数依赖与键
  1. X函数决定Y:
    1. 如果R(U)是属性U上的一个关系模式,X和Y是U的子集(也即是X和Y是字段子集),对于任意的u[X]=v[X]都有u[Y]=v[Y]
    2. 举例:
    3. 完全函数依赖:在R(U)中,如果X→ Y,并且对于X的任意真子集Xn,都有Xn→ Y不成立,则Y对X完全函数依赖
    4. 部分函数依赖:在R(U)中,如果X→ Y,并且对于X的任意真子集Xn,可能Xn→ Y成立,则Y对X不完全函数依赖
  • 键(关键字)
  1. 候选键: 在R(U)中,如果X→ U,并且对于X的任意真子集Xn,都有Xn→ U不成立,则U对X完全函数依赖,则称X为R的一个候选键
  2. 主键:用户正在使用的候选键叫做主键
  3. 外键:如果两个关系拥有公共属性,并且公共属性是一个关系的主键,则称公共属性为另外一个键的外键
  4. 举例:
  5. 使用图示法求候选键
    1. 两个步骤
      1. 用关系模式的函数依赖关系用有向图表示,其中顶点表示属性,弧表示属性之间的依赖关系
      2. 找出入度为0的属性集,并以该属性集作为起点,如果能遍历完所有的节点,则表示该顶点为候选键;如果不能则继续合并其它顶点到属性集中再次遍历
      3. 举例:
  • 范式(NF:Normal Form)
  1. 第一范式(1NF)
    1. 概念: 如果关系模式R中,如果一个分量不可再分为其它数据项,则称R满足1NF
    2. 举例:
  2. 第二范式(2NF)
    1. 概念:如果关系模式R中,再满足1NF基础上,如果每个非键属性完全依赖于候选键时,则称R满足2NF
    2. 举例:
  3. 第三范式(3NF)
    1. 概念: 如果关系模式R中,再满足2NF基础上,如果R中没有非键属性传递依赖于候选键,则称R满足3NF
    2. 举例:
  4. BCNF
    1. 概念: 如果关系模式R中,再满足1NF基础上,如果R中没有属性传递依赖于候选键,则称R满足BCNF 
    2. 判断方法
      1. 找出所有候选键
      2. 所有的非键属性对于任何候选键都是完全依赖
      3. 所有的候选键对每一个不包含它的候选键都是完全依赖
      4. 每一个函数依赖的左边都必须包含候选键
    3. 举例:

第四范式(4NF)

多值依赖:对于关系R(U,F),X,Y是U的非空子集,Z = U- X - Y,Z也非空,从x∈X,z∈Z取值,如果(x,z)能决定y属于Y,并且这个决定与z无关,则称为Y多值依赖于X,记为X→ → Y

如果关系模式R中,在满足1NF基础上,若对于任何X→ → Y,X必包含R的候选键,则称R满足4NF

全码关系:如果关系R(U)中所有属性合在一起形成主键则称为全码关系

举例:

  • 关系模式分解

概念:将一个大的关系模式分解为小的关系模式

分解时考虑因素

函数保持依赖

是否无损联接

猜你喜欢

转载自blog.csdn.net/u011830122/article/details/84423648