我开始学习数据库和规范化。我目前要解决的练习有一个未标准化的表格,我必须概述从未标准化到1FN,2FN,3FN的步骤。
这是我到目前为止所做的:
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,是否消除了部分依赖关系?
答案 0 :(得分:0)
您可以选择:
1:使用称为“功能依赖分析”(FDA)的复杂“方法”
2:使用对象角色建模方法将表转换为一组正式的事实类型(加上任何约束)。 (ORM)
例如:
学生(.id)具有姓氏()
学生(.id)具有名字()
学生(.id)生于Date()
以此类推。...
对象角色模型是形式模型,因此您可以使用数学变换从模型“自动”生成完全标准化的架构。
有些人似乎认为FDA是“进行”标准化的唯一方法。 他们错了!
参考:
信息建模和关系数据库,第二版,Halpin和Morgan,2008年。
Dr Terry Halpin's website。