Требуется помощь по нормализации дизайна базы данных (5nf)

Ребята, можете ли вы показать мне, как получить этот ERD в 5-й нормальной форме? Вчера мы выполнили задание, в которое вошел реальный клиент и объяснил нам, в чем его нужда. Моя группа разработала эту модель. Я пытаюсь сделать шаг вперед и посмотреть, смогу ли я получить ее в 5-й нормальной форме, чтобы я Я могу понять это лучше, так как на следующей неделе мы будем делать еще одну групповую ERD, которая должна быть в 5nf, но я не знаю, с чего начать, и книга не доходит до меня. вы, ребята, можете мне помочь. Erd Model http://img534.imageshack.us/img534/2118/capturekk.jpg

New information "Fake Clients Needs"

У клиента есть 2 отдела "Lab 1, Лаборатория 2 ", которая заказывает медицинские товары из его, как перчатки и пи домашних животных и т.д .. отделы выросли, и он хочет следить за тем, что находится в инвентарь, что продают продавцы у кого лучшая цена и какая стоимость центр это пришло.

То, как он объяснил, что товар заказан в том, что человек идет к нему и просит поставки он затем записывает, что лаборатория человек от имени человека и какой центр затрат, чтобы выставить счет. но он также хочет отслеживать, что было куплена по дате и что есть в наличии и что нужно покупать. Он также привел пример, который хотят некоторые пользователи товары от конкретного поставщика, которые может не иметь лучшие цены, и он также получает некоторые каталоги в письма с ценами тоже, что он хочет трек.

Я прошу прощения, если он перепутался, но это все из памяти.

8
задан Bill the Lizard 18 September 2012 в 14:19
поделиться

2 ответа

Я собираюсь высунуть шею и сказать, что ваша текущая схема на самом деле не имеет права на 5NF. Взяв цитату из Википедии, там говорится, что большинство таблиц 4NF уже соответствуют 5NF:

Использование Только в редких случаях Таблица 4NF не соответствует 5NF. Эти ситуации, в которых сложный ограничение реального мира, управляющее допустимые комбинации значений атрибутов в таблице 4NF не подразумевается в структура этой таблицы. Если такой таблица не нормирована на 5НФ, бремя поддержания логического согласованность данных в стол должен частично переноситься приложение, ответственное за вставки, удаления и обновления в Это; и есть повышенный риск что данные в таблице будут становятся непоследовательными. Напротив, Конструкция 5НФ исключает возможность такие несоответствия.

http: //en.wikipedia.org / wiki / Fifth_normal_form

Возможно, цель не в том, чтобы сделать вашу базу данных 5NF, а в том, чтобы понять ее структуру по сравнению с 5NF и аргументировать, почему она уже может быть в 5NF.

Обновление: читая некоторую форму консенсуса из комментариев, кажется, что ваш дизайн уже может быть в 5NF, будь то намеренно или случайно из предыдущего прохода нормализации.

4
ответ дан 5 December 2019 в 23:13
поделиться

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

Хорошо, кое-что, что я видел в вашей схеме базы данных.

  1. Таблица МВЗ выглядит как таблица поиска и таблица связей. Итак, если у вас есть заданное количество центров затрат, допустим, например, 5, но 1000 пользователей, тогда в этой таблице будет 5000 записей, в которых будет храниться имя центра затрат (предполагается, что назначение центра затрат не является уникальным для каждого пользователя).Возможно, вы захотите выделить ассоциацию пользователей в отдельную таблицу, которая имеет собственные PK и FK для costcenterId и userId.
  2. В таблице инвентаризации, в которой, как я полагаю, хранится количество товара в наличии, должно быть только количество в наличии, но вы не знаете, для чего написано описание. Если описание не является уникальным для каждого инвентаря предмета, вы можете разделить его на собственную справочную таблицу и ссылаться на него в таблице инвентаря.
  3. Вы сохраняете "lineQuantity" в таблице поставщиков. Для чего предназначена эта колонка. Похоже, что это каким-то образом связано с конкретным заказом (количество приобретенных товаров?). Если да, вы захотите разделить его в отдельную таблицу и связать с заказом, а не с продавцом. не зная точно, что такое lineQuantity, хотя это предложение может быть совершенно неверным.
  4. Последнее предложение: не уверен, имеет ли это значение для вашего класса. Вы определяете все свои типы данных как CHAR (10), возможно, вы захотите изменить их, чтобы они были фактическими типами данных, которые вы будете использовать для базы данных.
1
ответ дан 5 December 2019 в 23:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: