zoukankan      html  css  js  c++  java
  • 数据库范式

    1NF(无重复列)

    所有的域都应该是原子的,即每一列都是不可分割的数据项

    2NF(消除部分子函数依赖)

    假如:(学号,姓名,年龄,课程号,成绩,学分), primary key 为(学号, 课程号)

    所以存在(学号,课程号) → (姓名,年龄,成绩,学分)

    但该表不满足2NF,因为存在以下关系

    (课程名称) →  (学分)

    (学号) → (姓名,年龄)

    即存在组合关键字中的字段绝对非关键字

    3NF(消除传递依赖,非主属性)

    假定:(学号, 姓名, 年龄, 所在学院, 学院地点, 学院电话),关键字为单一关键字"学号",因为存在如下决定关系:

    (学号) → (姓名, 年龄, 所在学院, 学院地点, 学院电话)

    这个数据库是符合2NF的,但是不符合3NF,因为存在如下决定关系:

    (学号) → (所在学院) → (学院地点, 学院电话)

    即存在非关键字段"学院地点"、"学院电话"对关键字段"学号"的传递依赖。

    BCNF(消除候选关键字的传递依赖)

    假设:(仓库ID, 存储物品ID, 管理员ID, 数量),且有一个管理员只在一个仓库工作;一个仓库可以存储多种物品。这个数据库表中存在如下决定关系:

    (仓库ID, 存储物品ID) →(管理员ID, 数量)

    (管理员ID, 存储物品ID) → (仓库ID, 数量)

    所以,(仓库ID, 存储物品ID)和(管理员ID, 存储物品ID)都是的候选关键字,表中的唯一非关键字段为数量,它是符合第三范式的。但是,由于存在如下决定关系:

    (仓库ID) → (管理员ID)

    (管理员ID) → (仓库ID)

  • 相关阅读:
    某耳机厂商微信公众平台建设方案
    微信公众号订单好评红包返现系统
    LNMP的配置与优化
    微信公众号用户OpenID同步导出系统
    微信公众号无限定时群发系统
    小程序想要什么
    微信支付默认推荐关注规则
    微信小程序(应用号)资源汇总整理
    微信公众平台小程序开发教程
    微信应用号开发教程
  • 原文地址:https://www.cnblogs.com/MirAcle99/p/3822686.html
Copyright © 2011-2022 走看看