Я правильно ответил на это?

Вчера я сдал экзамен по базе данных, и вопрос о нормализации был странным. У нас была таблица R(ABCDEFG) и функциональные зависимости G->B, C->DG, CF->E, FA. Какие ключи-кандидаты на R? Я нашел только одну: CF. Тогда R1(DFG), какие ключи-кандидаты на R1? Я только нашел один: DFG. Укажите правильную нормировку 3NF для R. Я указал ((C,F), E), ((G, B)), ((F), A), ((C), D)

и затем была добавлена ​​функциональная зависимость GDF->C. Какова теперь правильная 3NF нормализация R? Я сказал ((G, D, F, C)), ((G), B), ((F,); A), ((C), D), ((C, F), E)

Правильно ли я решил?

Затем, что еще более странно, мы должны указать, что к чему, когда перечислено следующее:

  • Код товара
  • Порядковый номер
  • Пользовательский ИД
  • Количество
  • Имя покупателя
  • Наименование товара
  • Дата

Я пришел к выводу

G= Product ID
C= Order number
F= Customer ID
D= Quantity
A= Customer name
B= Product name
E= Date

Это правильно? Что означает FD GDF->C на простом английском языке?

1 ответ

Решение

"Вчера я сдал экзамен по базе данных, и вопрос о нормализации был странным. У нас была таблица R(ABCDEFG) и функциональные зависимости G->B, C->DG, CF->E, FA. Какие ключи-кандидаты для R? Я нашел только одну: CF.

Это кажется хорошо.

Тогда R1(DFG), какие ключи-кандидаты на R1? Я только нашел один: DFG.

С тем же набором FD??? С ФД вообще??? Во всяком случае, этот тоже кажется правильным.

Укажите правильную нормировку 3NF для R. Я указал ((C, F), E), ((G, B)), ((F), A), ((C), D)

((G), B) вместо ((G, B)) было бы больше похоже на это.

((C), DG) вместо ((C), D) было бы больше похоже на это.

и затем была добавлена ​​функциональная зависимость GDF->C. Какова теперь правильная 3NF нормализация R? Я сказал ((G, D, F, C)), ((G), B), ((F,); A), ((C), D), ((C, F), E)

Добавление этого FD (/ ограничение) не изменяет форму 3NF. Все зависимости, которые могут быть выражены в дизайне 3NF, по-прежнему "из полных ключей". Тот факт, что эта дополнительная зависимость не может быть сохранена при разложении, не понижает нормальную форму. Это проблема сохранения зависимостей, а не нормальная проблема формы.

Правильно ли я решил?

Лучший вариант - спросить учителей.

"Тогда, что еще более странно, мы должны заявить, что к чему, когда перечислено следующее:"

Глупость Сам вопрос заставляет вас делать предположения. Дата. Какая дата это? Дата рождения клиента, разместившего заказ? Дата, когда заказанному товару было присвоено его текущее название? Или, возможно, Дата, когда заказ был размещен? Предположительно так, но дело в том, что это должно быть четко прописано в спецификациях, и проектировщиков баз данных действительно следует учить НИКОГДА НЕ ПРИЗНАВАТЬ ЧТО-ТО О СПЕКАХ. Предположение является матерью всех провалов.

Что означает FD GDF->C на простом английском языке?

Простым английским языком, и, исходя из вашего ответа, это означает, что после того, как определенная комбинация {идентификатор клиента, идентификатор продукта и количество} была использована в заказе, больше не может появиться второй заказ (с другим идентификатором заказа) с очень же {идентификатор клиента, идентификатор продукта и количество}. Или, iow: каждый клиент может заказать определенное количество определенного продукта только один раз.

Другие вопросы по тегам