Определение функциональных зависимостей отношений и их нормальных форм

StackOverflow https://stackoverflow.com/questions/6809110

Вопрос

Я учусь на тест на базу данных, и в руководстве по изучению есть некоторые (много) упражнений нормализации DB и функциональной зависимости, но учитель не выполнял никаких подобных упражнений, поэтому я хотел бы, чтобы кто -то помог мне понять это, чтобы атаковать остальные 16 проблем.

1) Учитывая следующую логическую схему: отношения Product_sales

POS     Zone     Agent   Product_Code   Qualification   Quantity_Sold
123-A   Zone-1   A-1     P1             8               80
123-A   Zone-1   A-1     P1             3               30
123-A   Zone-1   A-2     P2             3               30
456-B   Zona-1   A-3     P1             2               20
456-B   Zone-1   A-3     P3             5               50
789-C   Zone-2   A-4     P4             2               20

Предполагая, что: • Точки продажи сгруппированы в зону. • Каждая точка продажи есть агенты. • Каждый агент работает в одном POS. • Два агента одинаковых точек продажи не могут продавать тот же продукт. • Для каждого продукта, проданного агентом, ему присваивается квалификация в зависимости от продукта и проданного количества.

а) Укажите 4 присутствующие функциональные зависимости.
б) какова нормальная форма этой структуры.

Это было полезно?

Решение

Чтобы вы начали находить 4 функциональных зависимостей, подумайте о том, какие атрибуты зависеть На другом атрибуте:

Например: зависит ли зона от POS? (если так, POS -> зона) или POS зависит от зоны? (в таком случае Зона -> pos).

Четыре из ваших пяти утверждений рассказывают вам что -то о зависимости между атрибутами (или комбинациями нескольких атрибутов).


Что касается нормализации, есть (относительно) четкий учебник здесь. Анкет Фраза "Ключ, весь ключ и ничего, кроме ключа" Также хороший способ запомнить 1 -й, 2 -й и 3 -й нормальные формы.

Другие советы

В своем комментарии вы сказали

Что ж, согласно теории, которую я читал, я думаю, что это может быть, но у меня есть много сомнений: POS → Zone, {POS, агент} → Зона, агент → POS, {Agent, product_code, ucliote_sold} → квалификация - Квалификация -

Я думаю, что это хорошее усилие.

  1. Я думаю, что Pos-> Zone правильная.
  2. Я не думаю, что {pos, агент} → зона вполне правильная. Если вы посмотрите на образцы данных и немного подумаете об этом, я думаю, вы найдете этот агент-> POS, а также этот агент-> зона.
  3. Я не думаю, что {Agent, product_code, suctity_sold} → квалификация вполне правильная. Требование гласит: «Для каждого продукта, проданного агентом, ему присваивается квалификация в зависимости от продукта и проданного количества». Важной частью этого является «квалификация в зависимости от продукта и проданного количества». Квалификация зависит от продукта и количества, поэтому {product_code, количество}-> квалификация. (Ничто в требовании не предполагает, что квалификация может быть отличной для идентичных заказов от двух разных агентов.)

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

  • Pos-> Zone
  • Агент-> POS
  • Агент-> зона
  • Product_code, количество-> квалификация

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

Два агента одинаковых точек продажи не могут продавать тот же продукт.

Как вы выражаете функциональную зависимость, подразумеваемой в этом требовании?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top