Нормализация к 3nf и функциональные зависимости два

Мне нужно определить функциональные зависимости и нормализовать следующие таблицы до 3NF. Я все еще не понимаю всех зависимостей.

Если у меня есть зависимости, я помещаю их в другие таблицы?

Магазин видеозаписей

Таблица клиентов

customerNo | customername | address | phone | numberofbooking
  • Номер клиента – уникальный номер, связанный с клиентом.
  • Имя клиента — имя клиента.
  • Адрес — адрес клиента.
  • Телефон — номер телефона клиента.
  • Количество прокатов — текущее количество прокатов, которые есть у клиента.

customerno — мой первичный ключ, все, кроме numberofbooking, зависит от customerno?

таблица видео

SerielNo | CopyNumber | title | yearmade | director | origen
  • SerialCode – уникальный серийный код на обратной стороне DVD.
  • CopyNumber — номер копии этого видео. Например, у видео может быть несколько копий в магазине, это используется для различения каждой копии.
  • Название — название фильма.
  • Год создания — год выхода фильма.
  • Режиссер — режиссер фильма.
  • Происхождение — страна, в которой был снят фильм.

Поскольку serielno не уникален, я был или номер копии, я собирался добавить уникальный videoId к каждому видео, так как серийный номер может иметь много копий.

таблица аренды

title | customerName
  • title — название видео, взятого напрокат.
  • имя_клиента – имя клиента, взявшего фильм напрокат.

Не знаю, что здесь делать.


person Mary Byrne    schedule 21.06.2012    source источник
comment
На время забудьте об аренде. Мне не хватает материала/названия -> издание -> средство -> копия/экземпляр. Далее: что взять напрокат, название или копию?   -  person wildplasser    schedule 22.06.2012


Ответы (2)


  • Удалите поле NumberOfBooking из таблицы клиентов. Это избыточно и может быть легко рассчитано из таблицы арендной платы.

  • Рассмотрите возможность разделения таблицы видео на две таблицы, где одна содержит информацию об уникальном видео, а другая содержит информацию о копиях каждого видео.

  • Рассмотрите возможность добавления идентификатора для идентификации копий видео, это проще в использовании, чем комбинация серийного номера и номера копии видео.

  • Рассмотрите возможность добавления таблицы режиссеров, так как некоторые режиссеры сняли несколько видео.

  • Подумайте о том, чтобы добавить таблицу стран, так как многие видео будут из одной и той же страны.

  • Используйте номер клиента в таблице аренды, а не имя клиента. Имя клиента может быть не уникальным.

  • Используйте идентификатор копии видео в таблице проката, а не название видео.

person Guffa    schedule 22.06.2012

Из того, что вы перечислили, я бы...

  • удалите столбец numberOfBooking (позже его можно будет аккуратно вычислить с помощью подзапроса из таблицы rentals).
  • Director, вероятно, должна быть отдельной таблицей, а затем создать ссылку внешнего ключа из Video, если требуется эта связь.
  • замените столбец customerName в таблице «Аренда» ссылкой внешнего ключа на таблицу «Клиенты».

Удачи!

person Tahbaza    schedule 22.06.2012