@nrailgun
2017-03-11T15:44:19.000000Z
字数 675
阅读 1311
程序设计
属性不可拆分:列必须具有原子性,不可分。
完全函数依赖:表必须具有主键;非主键中列必须完全依赖于主键(而不是主键的一部分)。
表 (OrderID, ProductID, ProductName, Price, Discount)
,主键为 (OrderID, ProductID)
,但是 ProductName
和 Price
仅仅依赖于 ProductID
,不符合第二范式,存在冗余。
消除传递依赖:不允许存在传递依赖。
(OrderID, OrderDate, CustomerID, CustomerName, CustomerAddr, CustomerCity)
主键是 OrderID
。
其中 OrderDate
等非主键列都完全依赖于主键。不过 CustomerName, CustomerAddr, CustomerCity
直接依赖的是 CustomerID
(非主键列),通过传递依赖于主键,而不是直接依赖主键,不符合 3NF。