4.2. Универсальное отношение
Предположим, что проектирование базы данных "Питание" (рис. 3.2) начинается с выявления атрибутов и подбора данных, образец которых (часть блюд изготовленных и реализованных 1/9/94 г.) показан на рис. 4.1.
Этот вариант таблицы "Питание" не является отношением, так как большинство ее строк не атомарны. Атомарными являются лишь значения полей Блюдо, Вид, Рецепт (хотя он и большой), Порций и Дата_Р остальные же поля таблицы рис. 4.1 – множественные. Для придания таким данным формы отношения необходимо реконструировать таблицу. Наиболее просто это сделать с помощью простого процесса вставки, результат которой показан на рис. 4.2. Однако такое преобразование приводит к возникновению большого объема избыточных данных.
Блюдо | Вид | Рецепт | Порций | Дата Р | Продукт | Калорийность | Вес (г) | Поставщик | Город | Страна | Вес (кг) | Цена ($) | Дата П |
Лобио | Закуска | Лом. | 158 | 1/9/94 | Фасоль | 3070 | 200 | "Хуанхэ" | Пекин | Китай | 250 | 0.37 | 24/8/94 |
| | | | | Лук | 450 | 40 | "Наталка" | Киев | Украина | 100 | 0.52 | 27/8/94 |
| | | | | Масло | 7420 | 30 | "Лайма" | Рига | Латвия | 70 | 1.55 | 30/8/94 |
| | | | | Зелень | 180 | 10 | "Даугава" | Рига | Латвия | 15 | 0.99 | 30/8/94 |
Харчо | Суп | ... | 144 | 1/9/94 | Мясо | 1660 | 80 | "Наталка" | Киев | Украина | 100 | 2.18 | 27/8/94 |
| | | | | Лук | 450 | 30 | "Наталка" | Киев | Украина | 100 | 0.52 | 27/8/94 |
| | | | | Томаты | 240 | 40 | "Полесье" | Киев | Украина | 120 | 0.45 | 27/8/94 |
| | | | | Рис | 3340 | 50 | "Хуанхэ" | Пекин | Китай | 75 | 0.44 | 24/8/94 |
| | | | | Масло | 7420 | 15 | "Полесье" | Киев | Украина | 50 | 1.62 | 27/8/94 |
| | | | | Зелень | 180 | 15 | "Наталка" | Киев | Украина | 10 | 0.88 | 27/8/94 |
Шашлык | Горячее | ... | 207 | 1/9/94 | Мясо | 1660 | 180 | "Юрмала" | Рига | Латвия | 200 | 2.05 | 30/8/94 |
| | | | | Лук | 450 | 40 | "Полесье" | Киев | Украина | 50 | 0.61 | 27/8/94 |
| | | | | Томаты | 240 | 100 | "Полесье" | Киев | Украина | 120 | 0.45 | 27/8/94 |
| | | | | Зелень | 180 | 20 | "Даугава" | Рига | Латвия | 15 | 0.99 | 30/8/94 |
Кофе | Десерт | ... | 235 | 1/9/94 | Кофе | 2750 | 8 | "Хуанхэ" | Пекин | Китай | 40 | 2.87 | 24/8/94 |
Рис. 4.1. Данные, необходимые для создания базы данных "Питание"
Таблица на рис. 4.2 представляет собой экземпляр корректного отношения. Его называют универсальным отношением проектируемой БД. В одно универсальное отношение включаются все представляющие интерес атрибуты, и оно может содержать все данные, которые предполагается размещать в БД в будущем. Для малых БД (включающих не более 15 атрибутов) универсальное отношение может использоваться в качестве отправной точки при проектировании БД.
Блюдо | Вид | Рецепт | Порций | Дата Р | Продукт | Калорийность | Вес (г) | Поставщик | Город | Страна | Вес (кг) | Цена ($) | Дата П |
Лобио | Закуска | Лом. | 158 | 1/9/94 | Фасоль | 3070 | 200 | "Хуанхэ" | Пекин | Китай | 250 | 0.37 | 24/8/94 |
Лобио | Закуска | Лом | 108 | 1/9/94 | Лук | 450 | 40 | "Наталка" | Киев | Украина | 100 | 0.52 | 27/8/94 |
Лобио | Закуска | Лом | 108 | 1/9/94 | Масло | 7420 | 30 | "Лайма" | Рига | Латвия | 70 | 1.55 | 30/8/94 |
Лобио | Закуска | Лом | 108 | 1/9/94 | Зелень | 180 | 10 | "Даугава" | Рига | Латвия | 15 | 0.99 | 30/8/94 |
Харчо | Суп | ... | 144 | 1/9/94 | Мясо | 1660 | 80 | "Наталка" | Киев | Украина | 100 | 2.18 | 27/8/94 |
Харчо | Суп | ... | 144 | 1/9/94 | Лук | 450 | 30 | "Наталка" | Киев | Украина | 100 | 0.52 | 27/8/94 |
Харчо | Суп | ... | 144 | 1/9/94 | Томаты | 240 | 40 | "Полесье" | Киев | Украина | 120 | 0.45 | 27/8/94 |
Харчо | Суп | ... | 144 | 1/9/94 | Рис | 3340 | 50 | "Хуанхэ" | Пекин | Китай | 75 | 0.44 | 24/8/94 |
Харчо | Суп | ... | 144 | 1/9/94 | Масло | 7420 | 15 | "Полесье" | Киев | Украина | 50 | 1.62 | 27/8/94 |
Харчо | Суп | ... | 144 | 1/9/94 | Зелень | 180 | 15 | "Наталка" | Киев | Украина | 10 | 0.88 | 27/8/94 |
Шашлык | Горячее | ... | 207 | 1/9/94 | Мясо | 1660 | 180 | "Юрмала" | Рига | Латвия | 200 | 2.05 | 30/8/94 |
Шашлык | Горячее | ... | 207 | 1/9/94 | Лук | 450 | 40 | "Полесье" | Киев | Украина | 50 | 0.61 | 27/8/94 |
Шашлык | Горячее | ... | 207 | 1/9/94 | Томаты | 240 | 100 | "Полесье" | Киев | Украина | 120 | 0.45 | 27/8/94 |
Шашлык | Горячее | ... | 207 | 1/9/94 | Зелень | 180 | 20 | "Даугава" | Рига | Латвия | 15 | 0.99 | 30/8/94 |
Кофе | Десерт | ... | 235 | 1/9/94 | Кофе | 2750 | 8 | "Хуанхэ" | Пекин | Китай | 40 | 2.87 | 24/8/94 |
Рис. 4.2. Универсальное отношение "Питание"
Содержание