数据库规范化步骤

时间:2019-03-15 12:15:02

标签: database database-normalization

我开始学习数据库和规范化。我目前要解决的练习有一个未标准化的表格,我必须概述从未标准化到1FN,2FN,3FN的步骤。 table

这是我到目前为止所做的:

1FN(按定义1FN应该消除重复的组-因此我添加了行以消除一个字段中的多个值)

StudentAssoc(StudentID(PK),LastName,FirstName,DOB,Assoc-Name(PK),MaxMem,DateJoined)

2FN(按定义2FN应该消除部分依赖关系-因此我创建了两个单独的表-一个用于学生实体,一个用于协会实体)

学生(StudentID-PK,LastName,FirstName,DOB,Assoc-Name-FK)

协会(Assoc-Name-PK,MaxMem,DateJoined,StudentID-FK)

我的疑问是,如果我在两个实体中都有FK,是否消除了部分依赖关系?

1 个答案:

答案 0 :(得分:0)

您可以选择:

1:使用称为“功能依赖分析”(FDA)的复杂“方法”

2:使用对象角色建模方法将表转换为一组正式的事实类型(加上任何约束)。 (ORM)

例如:

学生(.id)具有姓氏()

学生(.id)具有名字()

学生(.id)生于Date()

以此类推。...

对象角色模型是形式模型,因此您可以使用数学变换从模型“自动”生成完全标准化的架构。

有些人似乎认为FDA是“进行”标准化的唯一方法。 他们错了!

参考: 信息建模和关系数据库,第二版,Halpin和Morgan,2008年。
Dr Terry Halpin's website