数据库系统原理:范式理论

  • 准备知识
    • 候选码:可以唯一确定一个元组的属性,可以是联合属性,候选码可以有多个。
      • 如:在学生表中,学号可以唯一确定一个学生,那么学号就是候选码
      • 如:再学生选课表中,学号不能唯一确定一个选课关系,而是学号和课号共同确定一个选课关系,所以学号和课号的组合是候选码。
      • 如:在学生表中加入身份证属性,那么学号和身份证号都是候选码,这时是分别做候选码,有两个候选码。
    • 主码:主码是人为规定的,从候选码中选一个
      • 如:在学生表中加入身份证属性,那么学号和身份证号都是候选码,这时人为的规定学号为主码(主键)
    • 主属性:主属性是单个属性,不存在多个,就是一个单独的属性。包含在候选键中的属性就是主属性。
      • 如:在选课关系表中,学号和课号联合起来做主键,当然主键也是候选键,所以学号和课号都是主属性。
    • 非主属性:不是主属性的属性
    • 主关系键:候选键
    • 函数依赖
      • 函数依赖是关系模式中属性之间的一种逻辑依赖关系。
      • eg:在学生关系中,学号决定一个学生的姓名,就说姓名函数依赖于学号。
    • 部分函数依赖
      • eg:学生表(学号,课程号,成绩,姓名)
        • 学号和课程号组合做主键,所以学号和课程号的组合决定所以其他属性
        • 但是姓名只需要学号就可以决定了
        • 所以姓名部分函数依赖于(学号,课程号)
    • 传递函数依赖
      • eg:学生表(学号,姓名,院系,院长)
        • 学号是主键,可以决定其他所以属性
        • 院系不能决定学生学号却可以决定院长是谁
        • 所以院长传递依赖于学号
  • 第一范式
    • 每一列要保持原子特征。列是基本数据项,不能再进行拆分,否则设计成一对多的关系。
    • 不满足第一范式就不能称为关系型数据库。
  • 第二范式
    • 每个非主属性都完全函数依赖于R的主关系键
  • 第三范式
    • 每个非主属性都不传递函数依赖R的主关系键
      image
原文地址:https://www.cnblogs.com/xiaobaizzz/p/12305819.html