数据库基本概念

数据库范式

范式为了设计合适的数据模型,消除数据冗余.;消除更新异常;消除插入异常 ;消除删除异常.

https://blog.csdn.net/whoamiyang/article/details/51832918
第一范式:无重复的属性(列)
实体中的某个属性不能有多个值
例如一张学生表Student(stuNo,stuName,age,age,sex)是不符合第一范式的,因为有重复列age属性。去除重复列age以后的Student(stuNo,stuName,age,sex)是符合第一范式的。

第二范式:属性完全依赖主键(唯一属性列)
满足第二范式必须满足第一范式,不存在仅依赖主关键字一部分的属性。
例如 score依赖于学号和课程分数->分成三个表
这里写图片描述
这里写图片描述

第三范式:属性不依赖于其它非主属性(消除传递依赖)
第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息
例如dept_name,dept_info这两个属性也可以由dept_id这个非主属性决定->分成两个表
这里写图片描述
这里写图片描述

BC范式(BCNF):所有主属性对每一个不包含它的主属性都是完全函数依赖
例如(仓库ID,存储物品ID,管理员ID,数量).
这个数据库表存在如下决定关系:
(仓库ID,存储物品ID)—->(管理员ID,数量)
(管理员ID,存储物品ID)—>(仓库ID,数量)
主属性:仓库ID,存储物品ID,管理员ID. 非主属性:数量.
(管理员ID,存储物品ID)—->(仓库ID);看这个关系,三个属性都是主属性,但是(管理员ID就能唯一确定仓库ID),所以仓库ID对(管理员ID,存储物品ID)存在部分函数依赖. 因此分解表得到:
仓库:(仓库ID,管理员ID);
物品:(仓库ID,存储物品ID,数量);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值