数据库规范化步骤

问题描述 投票:-1回答:1

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

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

1FN(根据定义1FN应该消除重复组 - 所以我添加了行以消除一个字段内的多个值)

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

2FN(根据定义2FN应该消除部分依赖 - 所以我创建了两个单独的表 - 一个用于Student实体,一个用于Association实体)

学生(StudentID-PK,姓氏,名字,DOB,副名称-FK)

关联(Assoc-Name-PK,MaxMem,DateJoined,StudentID-FK)

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

database database-normalization
1个回答
0
投票

你有一个选择:

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

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

例如:

学生(.id)有LastName()

学生(.id)有FirstName()

学生(.id)出生于日期()

等等....

对象角色模型是一种形式模型,因此您可以使用数学变换从模型中“自动”生成完全规范化的模式。

有些人似乎认为FDA是“做”正常化的唯一方法。他们错了!

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

© www.soinside.com 2019 - 2024. All rights reserved.