数据库规范化2NF和3NF

时间:2018-04-10 18:10:15

标签: database-normalization 3nf

假设关系Appliance(model, year, price, manufacturer, color){model, year}作为关键字并跟随FD:

model -> manufacturer
model, year -> price
manufacturer -> color

查找2NF和3NF。

我的解决方案是: 由于model -> manufacturer因部分依赖而违反2NF,因此我按以下方式分解了设备:

R1(model, manufacturer)
R2(model, year, price)
R3(manufacturer, color)

同样,由于传递依赖性,model -> manufacturermanufacturer -> color违反了3NF,因此我按以下方式分解了设备:

R1(model, manufacturer)
R2(model, year, price)
R3(model, color)

我的问题是我的规范化出了什么问题?

1 个答案:

答案 0 :(得分:1)

您对2NF的标准化是正确的。您可能想要更加思考关系是否违反2NF或3NF,或功能依赖是否违反2NF或3NF。你说两个。

在2NF分解中,R1,R2和R3为5NF。 (因此,根据定义,它们也是3NF和2NF。)

对于3NF,您丢失了FD manufacturer -> color。这是错的。

在现实世界中,将“设备”之类的关系规范化可能会导致多个5NF分解。