2017-01-25 12 views
1

Я пытаюсь объяснить, как данные mock artist/soundtrack (первое изображение ниже) можно нормализовать от 1NF до 2NF до 3NF, шаг за шагом, чтобы получить результат, который я думаю лучше всего подходит для базы данных. Это похоже на то, что нормализация мешает тому, что я хочу сделать, но я просто не понимаю что-то в процессе нормализации? Я определенно могу видеть, как эти макетные данные могут быть нормализованы до 1NF, делая каждую строку уникальной и удаляя дубликаты, но на каком этапе, например, мы сказали назначить ID Composer в качестве внешнего ключа для таблицы треков или таблицы фильмов? Это то, что мы делаем из опыта? Нет ли правильного или неправильного?Таблицы базы данных по нормализации vs Experience/Opinion

Короче говоря, мой вопрос, может кто-нибудь показать или объяснить, как фиктивные данные здесь ...

enter image description here превратился в это, используя все первые 3 этапа нормализации?

enter image description here

+1

Нормализация не вводит новые атрибуты, такие как «Composer ID». Это также не означает, что вы можете нормализовать отношение к 2NF * и не выше *, затем до 3NF * и не выше *. –

+1

Также никто не нормализуется, пройдя более низкие нормальные формы, чтобы добраться до более высоких. Также нормализация к более высоким нормальным формам зависит от * функциональных зависимостей *. Поскольку вы не упоминаете их, вы, похоже, даже не понимаете, что такое нормализация. Какую ссылку вы используете? PS Предполагая, что вы хотите, чтобы ваш 1NF имел трек с типом дорожки, при разумных предположениях FD это уже в 5NF. – philipxy

+0

@philipxy Я предполагаю, что при нормализации я имею в виду сокращение избыточности, так что, например, если бы нам дали два значения в ячейке в первой таблице, мы могли бы найти способ, посредством нормализации, правильно настроить данные в таблицах. Я просто ищу совет о том, как мы могли бы взять таблицу данных, такую ​​как макет одного шоу, и превратить его в набор функциональных таблиц в базе данных. –

ответ

1

Ну ваш 1NF будет иметь четкую запись для каждого имени дорожки так по существу Ложные данных с первой записью разделен на 2 ...

2НФА вывезти повторяющиеся ключи который, на мой взгляд, является тем, что вы отображали в виде трех отдельных таблиц, и, возможно, это может быть настолько далеко, насколько вам нужно.

Вы можете добавить дополнительную таблицу, чтобы трек мог работать более чем в одном фильме, т. Е. Создать таблицу треков фильмов, ссылающуюся на идентификатор дорожки и идентификатор фильма соответственно (и удаление идентификатора фильма из таблицы треков).

Кроме того, вы могли бы пойти на крайность позволяя совместные композиции также имея таблицу треков композиторов, но это, вероятно, не достаточно общее, чтобы сделать усилие стоящего

Нормализации является то, что, безусловно, становится легче с опытом и могут быть приняты настолько, насколько это подходит для целей данных, как видно из примера.

+0

Спасибо, Дейв! Это помогает –

+0

@VictorEliasRodriguez Этот ответ путается в понятиях и плохой письменности. «Повторные клавиши» ничего не значит. (Автор показывает, что они знают это через «по существу» и «...».) «Разделить на два» неясно. Нормализация до более высоких NF не приводит к идентификаторам. Нынешний дизайн уже позволяет «для того, чтобы трек отображался в более чем одном фильме» и «совместная композиция». «достаточно распространенный» не имеет значения, он либо никогда, либо никогда. – philipxy