Правильно ли я сделал этот вопрос о нормализации базы данных? - PullRequest
0 голосов
/ 19 января 2019

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

enter image description here

Вот мое решение: enter image description here

1 Ответ

0 голосов
/ 19 января 2019

Насколько мне известно, ваше решение не очень хорошее

Мое решение

Просто я изменяю ваши данные вот так

enter image description here

Теперь я вижу, что это отношение в 0-й нормальной форме

Удалите столбец имени и создайте новое отношение, как показано ниже

enter image description here

Теперь отношения с клиентами в

  • 1-я нормальная форма, потому что нет многозначного
  • 2-я нормальная форма, потому что нет частичных зависимостей
  • 3-я нормальная форма, потому что содержит только столбцы, которые нетранзитивно зависит от первичного ключа

Отношение покупателя такое же, но оно в 0-й нормальной форме enter image description here

Теперь я удаляю столбец купил_сайт из отношения покупателя и создаю новое отношение, как показано ниже enter image description here

Теперь купленное отношение находится в

  • 1-я нормальная форма, потому что нет многозначного
  • 2-я нормальная форма, потому что нет частичных зависимостей
  • 3-я нормальная форма, потому что содержит только столбцы, которые нетранзитивно зависимый

Так что теперь я обновляю отношения с покупателями, как показано ниже enter image description here

ID и Item_ID являются первичными ключами (составной первичный ключ)

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

Конечные отношения:

  • Клиент ( ID , Имя)
  • Закупленные_элементы ( Item_ID , Item_Name)
  • Покупатель ( Customer_ID, Item_ID )

Мое плохое, я забыл специально упомянуть, что при нормализации мы не можем добавить новый атрибут или удалить атрибуты . Так что здесь я просто изменяю ваше отношение к данным только на более понятное отношение. Спасибо @Mike Sherrill 'Cat Recall за указание на эту проблему.

...