[关闭]
@nrailgun 2017-03-11T15:44:19.000000Z 字数 675 阅读 1311

数据库设计范式

程序设计


第一范式

属性不可拆分:列必须具有原子性,不可分。

第二范式

完全函数依赖:表必须具有主键;非主键中列必须完全依赖于主键(而不是主键的一部分)。

(OrderID, ProductID, ProductName, Price, Discount),主键为 (OrderID, ProductID),但是 ProductNamePrice 仅仅依赖于 ProductID,不符合第二范式,存在冗余。

第三范式

消除传递依赖:不允许存在传递依赖。

(OrderID, OrderDate, CustomerID, CustomerName, CustomerAddr, CustomerCity) 主键是 OrderID
其中 OrderDate 等非主键列都完全依赖于主键。不过 CustomerName, CustomerAddr, CustomerCity 直接依赖的是 CustomerID(非主键列),通过传递依赖于主键,而不是直接依赖主键,不符合 3NF。

BCNF 范式

第四范式

违例

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注