数据库设计基础----关系与3NF

Posted Java_xb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库设计基础----关系与3NF相关的知识,希望对你有一定的参考价值。

一、关系

  表与表之间的关系,有三种:

  一对一:A表的一条记录只能与B表的一条记录相对应,反之亦然。

  一对多(多对一):A表的一条记录能与B表的多条记录相对应,B表的一条记录只能与A表的一条记录相对应。

  多对多:A表的一条记录能与B表的多条记录相对应,B表的一条记录也能与A表的多条记录相对应。

 

二、范式 Normal Format

  范式有6层(1NF, 2NF, ...6NF),第一层都比上一层更严格,若要满足下一层,必须要先满足上一层,它的目的是为了减少数据的冗余,不考虑效率。

  但是数据库设计不只要考虑节省空间,还要考虑效率问题,所以一般设计数据库时,最多只用到3NF。

  1NF: 要求字段的数据具有原子性(不可再分解, 拿出来就可以使用);

  2NF: 当表中存在复合主键时,所有数据不能出现部分依赖,即需要依赖整个复合主键,而不能只依赖复合主键的其中一部分。

  3NF: 要求所有字段不能出现传递依赖(不直接依赖主键,而是间接依赖,如A依赖B,B依赖主键)。

以上是关于数据库设计基础----关系与3NF的主要内容,如果未能解决你的问题,请参考以下文章

数据库中的1NF、2NF、3NF、BCNF、4NF、5NF是怎么回事?

如何将关系模式分解到BCNF(3NF)

数据库设计三大范式

表结构的设计

关系型数据库设计:三大范式的通俗理解

数据库范式