数据库范式学习和ER模型

第一范式(1NF)

:强调的是字段的原子性,即一个字段不能够再分成其他几个字段。

           

说明:这种表结构设计就没有达到 1NF,要符合 1NF 我们只需把字段拆分,即:把 contact 字段拆分成 name 、tel、addr 等字段。

第二范式(2NF)

满足 1NF的基础上另外包含两部分内容:一是表必须有主键。 二是非主键字段必须完全依赖于主键,而不能只依赖于主键的一部分。

举例:OrderDetail表中的主键为OrderID(订单ID)和ProductID(产品ID),UnitPrice(单价)受ProductId(产品ID)约束,属于部分依赖于主键。同样ProductName(商品名称)受UnitPrice(订单ID)约束,属于部分依赖于主键,因此不满足第二范式要求。

修改后:

可以看出两个表中的红框为主键,非主键字段全部依赖于主键字段。满足二范式。

第三范式(3NF)

第三范式(3NF): 满足 2NF,另外非主键字段必须直接依赖于主键,不能存在传递依赖。即不能存在:非主键字段 A 依赖于非主键字段 B,非主键字段 B 依赖于主键的情况。

举例:在Order表中OrderID为主键,其余字段都是直接依赖于主键,满足第二范式。通过观察,发现CustomerName(用户名称)、用户地址字段都是直接依赖于用CustomerID(用户ID),从而间接的依赖于主键。不满足第三范式。

修改后:

所有非主键字段都是直接依赖于主键字段。

ER模型

                               

猜你喜欢

转载自blog.csdn.net/qq_39197555/article/details/113920563