范式的理解
一级范式(1NF),数据库表必须如实地展现“关系”,并且不允许有“重复列”出现。
姓名 |
年龄 |
课程1 |
课程2 |
孙玉玺 |
19 |
数据结构 |
数字逻辑 |
灵印 |
19 |
高数 |
Windows程序设计 |
假设姓名是唯一的,则对于选修课和必选课的出现,属于违反1NF的情况,因为课程1和课程2在概念上是一致的,属于重复列,如果我要添加课程3,则需要新建列,会对数据进行重复存储,解决办法是新建表:《课程表》
二级范式(2NF),不存在非主属性对任一候选键的部分函数依赖。每个属性描述的东西都必须针对整个键,即属性是依赖于单个候选键的全部属性
Superkey:主键,如果属性或属性组合能唯一标识一条记录,则它就是一个Superkey。
Candidate key:候选键,当Superkey只包含一个属性时,则它是一个候选键;当Superkey包含一组属性时,仅当这一组属性不包含另一Superkey时,它是一个候选键。换句话说,候选键是“纯净的”、最小化的Superkey。这句话也表明主键可以不是最简的属性组合。</