2020年11月5日:
范式
表之间的关系:
- 一对一的关系:身份证号码、人
- 一对多(多对一)的关系:一个部门有多个员工
- 多对多的关系:学生和课程之间的关系
实现关系:
-
一对多的关系实现
在多的一方建立外键,志向一的一方。
-
多对多的关系实现
需要借助于一张中间表,中间表至少包含两个字段,这两个字段作为第三张表的外键分别指向两张表的主键。
-
一对一关系的实现
可以在任意的一方添加唯一外键,指向另一方的主键,关键是外键唯一。
范式
概念:在设计关系型数据库时需要遵循的一些规范,得以设计出合理的数据库。目前关系数据库有6种范式:第一范式、第二范式、第三范式、巴斯-科德范式、第四范式、第五范式。要遵循后面的范式,那么就首先要遵循前面的范式,也就是严格性是一次增加的。
函数依赖:A--->B,如果通过A属性的值,可以唯一确定B属性的值,则称B依赖于A
完全函数依赖:A--->B,如果A是一个属性组,则B属性值的确定需要依赖全部A这个属性组的所有的属性值
部分函数依赖:A---> B,如果A是一个属性书,则B属性值的确定需要依赖全部A这个属性组的部分属性值
传递函数依赖:A---> B,B --->C, 如果通过A属性的值,可以唯一确定B属性的值,通过B属性的值,可以唯一确定C属性的值,则称C传递函数依赖于A
码:在一张表中,如果一个属性或者属性组,被其他所有的属性所完全依赖,则称这个属性或者属性组是该表的码
- 主属性:码属性组中的所有属性
- 非主属性:除了码属性组的属性
- 第一范式:每一列都是不可分割的院子数据项
- 1NF的问题:
- 存在着非常严重的数据冗余
- 数据添加存在问题,
- 删除数据也存在问题,
- 1NF的问题:
- 第二范式:在第一范式的基础上,非码属性必须完全依赖于候选码
- 第三范式:在第二范式的基础上,任何非主属性不依赖于其他任何非主属性