关系型数据库的设计范式

  • 第一范式定义

1、数据组的每一个属性只可以包含一个值
2、关系中的每个数据必须包含相同数量的值
3、关系中的每个数组一定不能相同
即每一列都是不可分割的基本数据项

例:学生实体的所有属性信息都不可放在同一列中显示
 

  • 第二范式定义

要求实体的属性完全依赖主关键字,即不能存在仅依赖主关键字 一部分的属性,
如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。

例:“员工编号,岗位”组合关键字(复合主键),以下不是第二范式

(员工编号,岗位)-->(决定)(姓名、年龄、学历、基本工资、绩效工资、奖金)

(员工编号)-->(决定)(姓名、年龄、学历)

(岗位)-->(决定)(基本工资)

可改成三张表:1、员工档案表(员工编号、姓名、年龄、学历)

                         2、岗位工资表(岗位,基本工资)

                         3、员工工资表(员工编号,岗位,绩效工资,奖金)

  • 第三范式定义

关系表中不存在非关键字列对任意候选关键字列的传递函数依赖,也就是说
要求一个表中不包含已在其他表中以包含的非主关键组信息

传递函数依赖:关键字A决定非关键字B
          非关键字B决定非关键字C
    ====》非关键字C传递函数以来于关键字A

例:以下不符合第三范式

(员工编号)-->(决定)(员工姓名、年龄、部门编号、部门经理)

(员工编号)-->(决定)(部门编号)-->(决定)(部门经理)

可改成两张表:1、员工信息表(员工编号、员工姓名、年龄、部门编号)

                         2、部门信息表(部门编号、部门经理)

  • 范式意义

对于关系型数据库的设计目标:按照“规范化”原则存储数据,因为这样能够消除数据冗余跟新异常插入异常删除异常
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值