搞清楚数据库中的关系模型

最开始比较模糊,现在是有很大的感触。第一范式是没有重复的列,即列不可分割。第二范式是存在关键字,区分每一行。第三范式是确保表不存在子表,例如关键字学号-------学院--------学院地点-----学院电话。存在一个子表,关键字学院-------地点---------电话。用官方话说就是非关键字之间不存在传递依赖。这里的非关键字就有学院,地点,电话。所谓的bcnf范式,即鲍依斯科德范式。不存在关键字决定关键字的情况。

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

   (仓库ID, 存储物品ID) →(管理员ID, 数量) 
   (管理员ID, 存储物品ID) → (仓库ID, 数量) 
   所以,(仓库ID, 存储物品ID)和(管理员ID, 存储物品ID)都是StorehouseManage的候选关键字,表中的唯一非关键字段为数量,它是符合第三范式的。但是,由于存在如下决定关系: 
   (仓库ID) → (管理员ID) 
   (管理员ID) → (仓库ID) 
   即存在关键字段决定关键字段的情况,所以其不符合BCNF范式。它会出现如下异常情况: 
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值