Нормализуйте реляционную логическую моделя данных для задачи “Учет поставки товаров по договорам” (Таблица 1).
Таблица 1: “Учет поставки товаров по договорам”
Дата заключения договора | Код поставщика | Код товара | Колич. | Срок поставки | Дата фактич поставки | Нарушения | Меры | Название поставщика | Адрес | … | Название товара | Категория качества | … |
нет | 100 | 001 | 1000 | 1.11.99 | 1.11.99 | нет | нет | ИВП | Москва.. | Краска | 1 | ||
штраф | 200 | 001 | 2000 | 1.11.99 | 2.11.99 | да | штраф | Мера | С-П… | Краска | 1 | ||
2.10.99 | 100 | 002 | 500 | 1.11.99 | 1.11.99 | нет | нет | ИВП | Москва.. | Кирпич | 1 | ||
2.10.99 | 200 | 002 | 800 | 1.11.99 | 2.11.99 | да | штраф | Мера | С-П… | Кирпич | 1 | ||
3.10.99 | 100 | 003 | 700 | 1.11.99 | 1.11.99 | нет | нет | ИВП | Москва.. | Доски | 2 | ||
3.10.99 | 200 | 003 | 600 | 1.11.99 | 2.11.99 | да | штраф | Мера | С-П… | Доски | 2 |
Ответ:
Таблица 1 - 1 нормальная форма: в одной клеточке таблицы только одно значение не смотря на повторяющиеся данные.
В таб.1 необходимо определить ключ - состоит из трех столбцов: Дата заключения договора+ Код поставщика+ Код товара. А теперь определите какие столбцы зависят не от полного ключае, то есть сразу от всех трех столбцов. Название и адрес поставщика зависят только от кода поставщика, поэтому из таб.1 они исключаются и образуют нову таб.2 “Поставщики, где ключем будет Код поставщика. Аналогично и со столбцами Название товара и Категория качества товара – таб.3 “Товар”.
Итак, мы получили 2 нормальную форму, состоящую из таб. 2,3 и части таб.1.
Еще раз проанализируем таб.1. Между неключевым атрибутом Нарушение и неключевым атрибутом Меры есть зависимость. Исключим ее образовав таб.4 “Меры за нарушение, где ключем отношения будет столбец Нарушение.
Итак, мы получили 3 нормальную форму отношений, состоящую из таб.2,3,4 и части таб.1, которая представлена в таб.5. Тем самым нормализовали модель, то есть закончили проектирование реляционной логической модели, теперь она готова к реализации средствами выбранной СУБД.
Таблица 2: “ Поставщики”
Код поставщика |
Название |
Адрес |
Банковские реквизиты |
Руководитель |
Телефон |
100 | ИВП | Москва… | Комерч. Банк… | Иванов И.И. | (095)… |
200 | Мера | С-П… | Банк… | Петров П.П. | (812)… |
Таблица 3: “Товар”
Код товара |
Название |
Производитель |
Категория качества |
Единица измерения |
Цена |
001 | Краска | FGD | 1 | л | 100 |
002 | Кирпич | Завод… | 1 | шт | 20 |
003 | Доски | Фабрика… | 2 | кубом | 130 |
Таблица 4: “Меры за нарушение”
Нарушение |
Меры |
нет | - |
да | штраф |
Таблица 5: “Учет поставки товаров по договорам”
Дата заключения договора | Код поставщика | Код товара | Колич. | Срок поставки | Дата фактич поставки | Нaрушения |
нет | 100 | 001 | 1000 | 1.11.99 | 1.11.99 | нет |
штраф | 200 | 001 | 2000 | 1.11.99 | 2.11.99 | да |
2.10.99 | 100 | 002 | 500 | 1.11.99 | 1.11.99 | нет |
2.10.99 | 200 | 002 | 800 | 1.11.99 | 2.11.99 | да |
3.10.99 | 100 | 003 | 700 | 1.11.99 | 1.11.99 | нет |
3.10.99 | 200 | 003 | 600 | 1.11.99 | 2.11.99 | да |