其他分享
首页 > 其他分享> > 范式设计

范式设计

作者:互联网

范式设计在关系型数据库中其实就是指的表结构设计,在 MongoDB 中指文档模型设计。 schema 设计需要根据业务场景,满足合理的范式等级。

关系和关系模型

关系模型:关系模型可以理解为具象表结构,是一张没有数据的表。

关系:关系是关系模型的实体,比如表中的一条记录(文档),字段是实体的属性。

MongoDB 不像 MySQL 一样需要事先定义关系模型,但这并不意味着不需要范式设计。

第一范式:符合1NF 的关系中的每个属性都不可再分割。要确保每列的原子性,要求每列(或每个属性值)都是不可再分的最小数据单元(也称为最小的原子单元)

第二范式:2NF 在 1NF 的基础上更进一层,要求表中的每列都和主键相关,即要求实体的唯一性。如果一个表满足第一范式,并且除了主键以外的其他列全部都依赖于该主键,那么该表满足第二范式。中的字段必须完全依赖于全部主键而非部分主键

第三范式:3NF 在 2NF 的基础上更进一层,3NF 是确保每列都和主键列直接相关,而不是间接相关,即限制列的冗余性。如果一个关系满足第二范式,并且除了主键以外的其他列都依赖于主键列,列和列之间不存在相互依赖关系,则满足第三范式。3NF 的目的就是要消除冗余,非主键外的所有字段必须互不依赖。

实体之间的关系无非就是:

(1)一对一 :1-1

(2)一对多 :1-N

(3)多对多 :N-N

关系模型就是维护实体之间的关系,是实体的集合形式。在 schema 和 schemaless 的设计理念中,实体关系的表现形式较为不同。

标签:关系,范式,模型,实体,每列,设计,主键
来源: https://www.cnblogs.com/notes201432273/p/15230486.html