关系型数据库的设计范式

  • 第一范式定义

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

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

  • 第二范式定义

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

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

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

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

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

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

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

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

扫描二维码关注公众号,回复: 2277548 查看本文章
  • 第三范式定义

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

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

例:以下不符合第三范式

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

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

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

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

  • 范式意义

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

猜你喜欢

转载自blog.csdn.net/jinny_0019/article/details/81132774