【发布时间】:2016-10-30 04:12:44
【问题描述】:
我通过这种方式找到了关系 - CUSTOMER (NAME, STREET, CITY, STATE, ZIP)
对以下每种方式都使用缩写,
Name - N
STREET - R
CITY - C
STATE - T
ZIP - Z
并给出F = {N->RCT, RCT->Z, Z->CT}
问题分解为3NF 和BCNF。
我把它分解为3NF,在这里我考虑了实用的方法,
R1(N,R,Z)
R2(Z,C,T)
正确吗?
或者我是否必须只考虑给定的分解功能依赖项。如果我这样想,分解成3NF,那么答案就是
R1(N,R,C,T)
R2(R,C,T,Z)
请有人告诉我正确的方法。
【问题讨论】:
-
在您的第一次分解中,您如何处理 N->RCT?在您的第二个中,Z->CT 发生了什么?
-
@MikeSherrill'CatRecall' 在我的第一次分解中,我只考虑 N->RCT 和 Z->CT 依赖项,因为使用名称我可以获得街道、城市和州。如果我能得到城市和州,则使用 zip。然后我将 R2 关系创建为 R2(Z,C,T)。而这里的 R1(N,R,Z) 我认为 Z 是外键。
-
规范化不是要找到可导航的路径。规范化不会丢弃函数依赖。 (RCT->Z?)
-
您需要找到一个参考,说明在 3NF 或 BCNF 中的含义以及哪些算法将分解为它们(如果可能,无损)以及它们的输入和输出是什么。
标签: database database-normalization 3nf bcnf