数据库——(6)关系和范式

来源:互联网 发布:阿里云 搭建云流量 编辑:程序博客网 时间:2024/06/02 19:30

关系:将实体与实体的关系,反应到最终数据库表的设计上来。将关系分为三种:一对一、一对多、多对多。
所有的关系都指的是表与表之间的关系

范式:Nomal Format,是一种离散数学中的知识,是为了解决一种数据的存储与优化的问题:保存数据的存储之后,凡是能通过关系寻找出来的数据,坚持2重复存储:终极目标是为了减少数据的冗余。
范式是一种分层结构的规范,分为6层:每一层都比上一层更加严格:若要满足下一层范式,前提是满足上一层范式。
六层范式:1NF,2NF……….6NF,1NF是最底层。
数据库不单是要解决空间问题,要保证效率问题,但范式只为解决空间问题。

1NF
第一范式:要求字段的数据具有原子性,不可再分。即数据取出来就能用。
2NF
第二范式:在数据表设计的过程中,如果有复合主键(多字段主键),且表中有字段并不是由整个主键来确定,而是依赖主键中的某一个字段(主键的部分):存在字段依赖主键的部分问题,称为部分依赖。第二范式解决部分依赖。
解决方案1:将部分依赖单独成表。
解决方案2:取消复合主键,使用逻辑主键。
3NF
第三范式:理论上讲,一张表中的所有字段都应该直接依赖主键(逻辑主键:代表的是业务主键)。如果表设计中存在一个字段,并不直接依赖主键,而是通过某个非主键字段依赖,最终实现依赖主键:把这种不是直接依赖主键而是依赖非主键字段的依赖关系称为传递依赖。第三范式解决传递依赖的问题。
解决方案:将存在传递依赖的字段,以及依赖的字段本身单独取出,形成一个单独的表,然后在需要对应的信息的时候,使用对应的实体表的主键加进来。