Шаги нормализации базы данных - PullRequest
0 голосов
/ 15 марта 2019

Я начинаю изучать базы данных и нормализацию. Упражнение, к которому я сейчас обращаюсь, содержит ненормализованную таблицу, и мне нужно наметить шаги для перехода от ненормализованного к 1FN, 2FN, 3FN. table

Вот что я сделал до сих пор:

1FN (согласно определению 1FN следует исключать повторяющиеся группы - поэтому я добавил строки, чтобы исключить множественные значения в одном поле)

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

2FN (В соответствии с определением 2FN следует исключить частичные зависимости - поэтому я создал две отдельные таблицы - одну для объекта Student и одну для объекта Association)

Студент (StudentID-PK, LastName, FirstName, DOB, Assoc-Name-FK)

Ассоциация (Assoc-Name-PK, MaxMem, DateJoined, StudentID-FK)

Я сомневаюсь, что я исключил частичные зависимости, если у меня есть FK в обеих сущностях?

1 Ответ

0 голосов
/ 16 апреля 2019

У вас есть выбор:

1: использовать сложный «метод», называемый «Анализ функциональной зависимости» (FDA)

2: преобразовать вашу таблицу в набор формальных типов фактов (+ любые ограничения), используя метод моделирования роли объекта. (ОРМ)

Например:

Студент (.id) имеет LastName ()

Студент (.id) имеет FirstName ()

Студент (.id) родился в день ()

И так далее ...

Объектно-ролевая модель - это формальная модель, поэтому вы можете использовать математическое преобразование для «автоматического» создания полностью нормализованной схемы из вашей модели.

Некоторые люди, кажется, думают, что FDA - единственный способ «сделать» нормализацию. Они не правы!

Ссылка: Информационное моделирование и реляционные базы данных, второе издание, Halpin & Morgan 2008.
Сайт доктора Терри Хэлпина .

...