что такое универсальное отношение бд

Универсальное отношение

Предположим, что проектирование базы данных «Питание» (рис. 3.2) начинается с выявления атрибутов и подбора данных, образец которых (часть блюд изготовленных и реализованных 1/9/94 г.) показан на рис. 4.1.

Этот вариант таблицы «Питание» не является отношением, так как большинство ее строк не атомарны. Атомарными являются лишь значения полей Блюдо, Вид, Рецепт (хотя он и большой), Порций и Дата_Р остальные же поля таблицы рис. 4.1 – множественные. Для придания таким данным формы отношения необходимо реконструировать таблицу. Наиболее просто это сделать с помощью простого процесса вставки, результат которой показан на рис. 4.2. Однако такое преобразование приводит к возникновению большого объема избыточных данных.

БлюдоВидРецептПорцийДата РПродуктКалорийностьВес (г)ПоставщикГородСтранаВес (кг)Цена ($)Дата П
ЛобиоЗакускаЛом.1/9/94Фасоль«Хуанхэ»ПекинКитай0.3724/8/94
Лук«Наталка»КиевУкраина0.5227/8/94
Масло«Лайма»РигаЛатвия1.5530/8/94
Зелень«Даугава»РигаЛатвия0.9930/8/94
ХарчоСуп.1/9/94Мясо«Наталка»КиевУкраина2.1827/8/94
Лук«Наталка»КиевУкраина0.5227/8/94
Томаты«Полесье»КиевУкраина0.4527/8/94
Рис«Хуанхэ»ПекинКитай0.4424/8/94
Масло«Полесье»КиевУкраина1.6227/8/94
Зелень«Наталка»КиевУкраина0.8827/8/94
ШашлыкГорячее.1/9/94Мясо«Юрмала»РигаЛатвия2.0530/8/94
Лук«Полесье»КиевУкраина0.6127/8/94
Томаты«Полесье»КиевУкраина0.4527/8/94
Зелень«Даугава»РигаЛатвия0.9930/8/94
КофеДесерт.1/9/94Кофе«Хуанхэ»ПекинКитай2.8724/8/94

Рис. 4.1. Данные, необходимые для создания базы данных «Питание»

Таблица на рис. 4.2 представляет собой экземпляр корректного отношения. Его называют универсальным отношением проектируемой БД. В одно универсальное отношение включаются все представляющие интерес атрибуты, и оно может содержать все данные, которые предполагается размещать в БД в будущем. Для малых БД (включающих не более 15 атрибутов) универсальное отношение может использоваться в качестве отправной точки при проектировании БД.

БлюдоВидРецептПорцийДата РПродуктКалорийностьВес (г)ПоставщикГородСтранаВес (кг)Цена ($)Дата П
ЛобиоЗакускаЛом.1/9/94Фасоль«Хуанхэ»ПекинКитай0.3724/8/94
ЛобиоЗакускаЛом1/9/94Лук«Наталка»КиевУкраина0.5227/8/94
ЛобиоЗакускаЛом1/9/94Масло«Лайма»РигаЛатвия1.5530/8/94
ЛобиоЗакускаЛом1/9/94Зелень«Даугава»РигаЛатвия0.9930/8/94
ХарчоСуп.1/9/94Мясо«Наталка»КиевУкраина2.1827/8/94
ХарчоСуп.1/9/94Лук«Наталка»КиевУкраина0.5227/8/94
ХарчоСуп.1/9/94Томаты«Полесье»КиевУкраина0.4527/8/94
ХарчоСуп.1/9/94Рис«Хуанхэ»ПекинКитай0.4424/8/94
ХарчоСуп.1/9/94Масло«Полесье»КиевУкраина1.6227/8/94
ХарчоСуп.1/9/94Зелень«Наталка»КиевУкраина0.8827/8/94
ШашлыкГорячее.1/9/94Мясо«Юрмала»РигаЛатвия2.0530/8/94
ШашлыкГорячее.1/9/94Лук«Полесье»КиевУкраина0.6127/8/94
ШашлыкГорячее.1/9/94Томаты«Полесье»КиевУкраина0.4527/8/94
ШашлыкГорячее.1/9/94Зелень«Даугава»РигаЛатвия0.9930/8/94
КофеДесерт.1/9/94Кофе«Хуанхэ»ПекинКитай2.8724/8/94

Рис. 4.2. Универсальное отношение «Питание»

4.3. Почему проект БД может быть плохим?

Начинающий проектировщик будет использовать отношение «Питание» (рис. 4.2) в качестве завершенной БД. Действительно, зачем разбивать отношение «Питание» на несколько более мелких отношений (см. например, рис. 3.2), если оно заключает в себе все данные? А разбивать надо потому, что при использовании универсального отношения возникает несколько проблем:

что такое универсальное отношение бд. Смотреть фото что такое универсальное отношение бд. Смотреть картинку что такое универсальное отношение бд. Картинка про что такое универсальное отношение бд. Фото что такое универсальное отношение бд

1. Избыточность. Данные практически всех столбцов многократно повторяются. Повторяются и некоторые наборы данных (Блюдо-Вид-Рецепт, Продукт-Калорийность, Поставщик-Город-Страна). Нежелательно повторение рецептов, некоторые из которых намного больше рецепта «Лобио» (см. рис. 2.3). И уж совсем плохо, что все данные о блюде (включая рецепт) повторяются каждый раз, когда это блюдо включается в меню.

2. Потенциальная противоречивость (аномалии обновления). Вследствие избыточности можно обновить адрес поставщика в одной строке, оставляя его неизменным в других. Если поставщик кофе сообщил о своем переезде в Харбин и была обновлена строка с продуктом кофе, то у поставщика «Хуанхэ» появляется два адреса, один из которых не актуален. Следовательно, при обновлениях необходимо просматривать всю таблицу для нахождения и изменения всех подходящих строк.

3. Аномалии включения. В БД не может быть записан новый поставщик («Няринга», Вильнюс, Литва), если поставляемый им продукт (Огурцы) не используется ни в одном блюде. Можно, конечно, поместить неопределенные значения в столбцы Блюдо, Вид, Порций и Вес (г) для этого поставщика. Но если появится блюдо, в котором используется этот продукт, не забудем ли мы удалить строку с неопределенными значениями?

По аналогичным причинам нельзя ввести и новый продукт (например, Баклажаны), который предлагает существующий поставщик (например, «Полесье»). А как ввести новое блюдо, если в нем используется новый продукт (Крабы)?

4. Аномалии удаления. Обратная проблема возникает при необходимости удаления всех продуктов, поставляемых данным поставщиком или всех блюд, использующих эти продукты. При таких удалениях будут утрачены сведения о таком поставщике.

Многие проблемы этого примера исчезнут, если выделить в отдельные таблицы сведения о блюдах, рецептах, расходе блюд, продуктах и их поставщиках, а также создать связующие таблицы «Состав» и «Поставки» (рис. 4.3).

Источник

Универсальное отношение

что такое универсальное отношение бд. Смотреть фото что такое универсальное отношение бд. Смотреть картинку что такое универсальное отношение бд. Картинка про что такое универсальное отношение бд. Фото что такое универсальное отношение бд что такое универсальное отношение бд. Смотреть фото что такое универсальное отношение бд. Смотреть картинку что такое универсальное отношение бд. Картинка про что такое универсальное отношение бд. Фото что такое универсальное отношение бд что такое универсальное отношение бд. Смотреть фото что такое универсальное отношение бд. Смотреть картинку что такое универсальное отношение бд. Картинка про что такое универсальное отношение бд. Фото что такое универсальное отношение бд что такое универсальное отношение бд. Смотреть фото что такое универсальное отношение бд. Смотреть картинку что такое универсальное отношение бд. Картинка про что такое универсальное отношение бд. Фото что такое универсальное отношение бд

что такое универсальное отношение бд. Смотреть фото что такое универсальное отношение бд. Смотреть картинку что такое универсальное отношение бд. Картинка про что такое универсальное отношение бд. Фото что такое универсальное отношение бд

что такое универсальное отношение бд. Смотреть фото что такое универсальное отношение бд. Смотреть картинку что такое универсальное отношение бд. Картинка про что такое универсальное отношение бд. Фото что такое универсальное отношение бд

Рассмотрим задачу проектирования БД на базе следующей таблицы:

Таблица «Сессия»

ФИО студентаСеместрДисциплинаФорма отчетностиОценкаКоличество часовФИО преподавателяДолжность
Иванов В.П.Английский языкЗачетЦветкова А.Ю.Доцент
Математический анализЗачетРыбин К.К.Ст. преп.
Математический анализЭкзаменРаков И.И.Проф.
ПрограммированиеЗачетНезабудкина З.П.Преп.
ПрограммированиеЭкзаменЗайчиков А.А.Доцент
Линейная алгебраЗачетВолков Г.И.Преп.
Линейная алгебраЭкзаменВолков Г.И.Преп.

ФИО студентаСеместрДисциплинаФорма отчетностиОценкаКоличество часовФИО преподавателяДолжность
Петрова А.П.Английский языкЗачетЦветкова А.Ю.Доцент
Математический анализЗачетРыбин К.К.Ст. преп.
Математический анализЭкзаменРаков И.И.Проф.
ПрограммированиеЗачетНезабудкина З.П.Преп.
ПрограммированиеЭкзаменЗайчиков А.А.Доцент
Линейная алгебраЗачетВолков Г.И.Преп.
Линейная алгебраЭкзаменВолков Г.И.Преп.

Шкала оценок: 0 – незачет, 1 – зачет, 2, 3, 4, 5 – оценки.

Этот вариант таблицы «Сессия» не является отношением, т.к. большинство ее столбцов не атомарны. Значение любого атрибута реляционной таблицы является атомарным, если само это значение, в свою очередь, не является реляционной таблицей (отношением). Атомарными являются значения столбцов ФИО СТУДЕНТА, СЕМЕСТР. Остальные столбцы таблицы – множественные.

Эта таблица называется таблицей в ненормализованной форме (ННФ) или ненормализованной таблицей, т. к. содержит одну или несколько повторяющихся групп данных.

Для преобразования данных в отношение необходимо реконструировать таблицу, например, с помощью процесса вставки. Результат имеет вид:

Универсальное отношение «СЕССИЯ»

ФИО студентаСеместрДисциплинаФорма отчетностиОценкаКоличество часовФИО преподавателяДолжность
Иванов В.П.Английский языкЗачетЦветкова А.Ю.Доцент
Иванов В.П.Математический анализЗачетРыбин К.К.Ст. преп.
Иванов В.П.Математический анализЭкзаменРаков И.И.Проф.
Иванов В.П.ПрограммированиеЗачетНезабудкина З.П.Преп.
Иванов В.П.ПрограммированиеЭкзаменЗайчиков А.А.Доцент
Иванов В.П.Линейная алгебраЗачетВолков Г.И.Преп.
Иванов В.П.Линейная алгебраЭкзаменВолков Г.И.Преп.
Петрова А.П.Английский языкЗачетЦветкова А.Ю.Доцент
Петрова А.П.Математический анализЗачетРыбин К.К.Ст. преп.
Петрова А.П.Математический анализЭкзаменРаков И.И.Проф.
Петрова А.П.ПрограммированиеЗачетНезабудкина З.П.Преп.
Петрова А.П.ПрограммированиеЭкзаменЗайчиков А.А.Доцент
Петрова А.П.Линейная алгебраЗачетВолков Г.И.Преп.
Петрова А.П.Линейная алгебраЭкзаменВолков Г.И.Преп.

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

Однако при использовании универсального отношения возникают следующие проблемы:

1. Избыточность данных. Значения столбцов таблицы многократно повторяются. Повторяются также и некоторые наборы значений столбцов, например, данные о дисциплине.

2. Потенциальная противоречивость. Если при вводе данных, например, количества часов для дисциплины АНГЛИЙСКИЙ ЯЗЫК, была допущена ошибка, то для ее исправления необходимо найти все строки, содержащие сведения об этой дисциплине, и во всех этих строках произвести изменения. Также при заполнении такой таблицы могут быть использованы различные формы записи одного и того же значения, например: АНГЛ. ЯЗЫК и АНГЛИЙСКИЙ ЯЗЫК, МАТ. АНАЛИЗ и МАТЕМАТИЧЕСКИЙ АНАЛИЗ.

что такое универсальное отношение бд. Смотреть фото что такое универсальное отношение бд. Смотреть картинку что такое универсальное отношение бд. Картинка про что такое универсальное отношение бд. Фото что такое универсальное отношение бд

3. Аномалии модификации:

a. аномалии вставки. В БД не может быть записан новый преподаватель, если он не ведет ни одну дисциплину по данному учебному плану. По аналогичным причинам нельзя ввести и новую дисциплину, если она не изучается в рамках данного учебного плана.

b. аномалии удаления. Обратная проблема возникает при необходимости удаления записей, содержащих информацию об успеваемости всех студентов по конкретной дисциплине. При таком удалении будут утрачены и сведения о преподавателе, ведущем данную дисциплину.

c. аномалии обновления. При попытке изменения одного из атрибутов для некоторого преподавателя, например, номера телефона, необходимо обновить соответствующие значения в строках для всех студентов, которых обучает этот преподаватель. Если такой модификации будут подвергнуты не все требуемые строки, то в этом случае БД будет содержать противоречивые сведения.

Решение этих проблем состоит в разделении данных и связей (или декомпозиции), т.е. в выделении в отдельные таблицы сведений о студентах, преподавателях, дисциплинах и результатах сдачи экзаменов:

СтудентыПреподавателиДисциплины
ФИО студентаФИО преподавателяДисциплина
1.Иванов В.П.1.Волков Г.И.1.Алгоритмы и структуры данных
2.Петрова А.П.2.Зайчиков А.А.2.Английский язык
3.Сидоров К.К.3.Карпов К.Ю.3.Линейная алгебра
4.Незабудкина З.П.4.Математический анализ
5.Раков И.И.5.Операционные системы, среды и оболочки
6.Рыбин К.К.6.Программирование
7.Соболев И.Г.7.Теория вероятности и математическая статистика
8.Цветкова А.Ю.
Учебный план
ДисциплинаСеместрКоличество часовФорма отчетностиПреподавательДолжность
зачетЦветкова А.Ю.Доцент
зачетВолков Г.И.Преп.
экзаменВолков Г.И.Преп.
зачетРыбин К.К.Ст. преп.
экзаменРаков И.И.Проф.
зачетНезабудкина З.П.Преп.
экзаменЗайчиков А.А.Доцент
зачетЦветкова А.Ю.Доцент
зачетКарпов К.Ю.Преп.
экзаменРаков И.И.Проф.
экзаменЗайчиков А.А.Доцент
экзаменСоболев И.Г.Доцент
зачетНезабудкина З.П.Преп.
экзаменНезабудкина З.П.Преп.

Результаты сессии
СтудентУчебный планОценка

В таблицах РЕЗУЛЬТАТЫ СЕССИИ и УЧЕБНЫЙ ПЛАН конкретные значения заменены на их номера в других таблицах. Это значительно упрощает процедуру модификации текстовых значений.

Важность нормализации состоит в том, что она позволяет разбить большие отношения, как правило, содержащие большую избыточность информации, на более мелкие логические единицы, группирующие только данные, объединенные «по природе».

После применения правил нормализации логические группы данных располагаются не более чем в одной таблице. Это дает следующие преимущества:

— данные легко обновлять или удалять;

— исключается возможность рассогласования копий данных;

— уменьшается возможность введения некорректных данных.

Источник

4.2. Универсальное отношение

Предположим, что проектирование базы данных «Питание» (рис. 3.2) начинается с выявления атрибутов и подбора данных, образец которых (часть блюд изготовленных и реализованных 1/9/94 г.) показан на рис. 4.1.

Этот вариант таблицы «Питание» не является отношением, так как большинство ее строк не атомарны. Атомарными являются лишь значения полей Блюдо, Вид, Рецепт (хотя он и большой), Порций и Дата_Р остальные же поля таблицы рис. 4.1 – множественные. Для придания таким данным формы отношения необходимо реконструировать таблицу. Наиболее просто это сделать с помощью простого процесса вставки, результат которой показан на рис. 4.2. Однако такое преобразование приводит к возникновению большого объема избыточных данных.

БлюдоВидРецептПорцийДата РПродуктКалорийностьВес (г)ПоставщикГородСтранаВес (кг)Цена ($)Дата П
ЛобиоЗакускаЛом.1581/9/94Фасоль3070200«Хуанхэ»ПекинКитай2500.3724/8/94
Лук45040«Наталка»КиевУкраина1000.5227/8/94
Масло742030«Лайма»РигаЛатвия701.5530/8/94
Зелень18010«Даугава»РигаЛатвия150.9930/8/94
ХарчоСуп.1441/9/94Мясо166080«Наталка»КиевУкраина1002.1827/8/94
Лук45030«Наталка»КиевУкраина1000.5227/8/94
Томаты24040«Полесье»КиевУкраина1200.4527/8/94
Рис334050«Хуанхэ»ПекинКитай750.4424/8/94
Масло742015«Полесье»КиевУкраина501.6227/8/94
Зелень18015«Наталка»КиевУкраина100.8827/8/94
ШашлыкГорячее.2071/9/94Мясо1660180«Юрмала»РигаЛатвия2002.0530/8/94
Лук45040«Полесье»КиевУкраина500.6127/8/94
Томаты240100«Полесье»КиевУкраина1200.4527/8/94
Зелень18020«Даугава»РигаЛатвия150.9930/8/94
КофеДесерт.2351/9/94Кофе27508«Хуанхэ»ПекинКитай402.8724/8/94

Рис. 4.1. Данные, необходимые для создания базы данных «Питание»

Таблица на рис. 4.2 представляет собой экземпляр корректного отношения. Его называют универсальным отношением проектируемой БД. В одно универсальное отношение включаются все представляющие интерес атрибуты, и оно может содержать все данные, которые предполагается размещать в БД в будущем. Для малых БД (включающих не более 15 атрибутов) универсальное отношение может использоваться в качестве отправной точки при проектировании БД.

БлюдоВидРецептПорцийДата РПродуктКалорийностьВес (г)ПоставщикГородСтранаВес (кг)Цена ($)Дата П
ЛобиоЗакускаЛом.1581/9/94Фасоль3070200«Хуанхэ»ПекинКитай2500.3724/8/94
ЛобиоЗакускаЛом1081/9/94Лук45040«Наталка»КиевУкраина1000.5227/8/94
ЛобиоЗакускаЛом1081/9/94Масло742030«Лайма»РигаЛатвия701.5530/8/94
ЛобиоЗакускаЛом1081/9/94Зелень18010«Даугава»РигаЛатвия150.9930/8/94
ХарчоСуп.1441/9/94Мясо166080«Наталка»КиевУкраина1002.1827/8/94
ХарчоСуп.1441/9/94Лук45030«Наталка»КиевУкраина1000.5227/8/94
ХарчоСуп.1441/9/94Томаты24040«Полесье»КиевУкраина1200.4527/8/94
ХарчоСуп.1441/9/94Рис334050«Хуанхэ»ПекинКитай750.4424/8/94
ХарчоСуп.1441/9/94Масло742015«Полесье»КиевУкраина501.6227/8/94
ХарчоСуп.1441/9/94Зелень18015«Наталка»КиевУкраина100.8827/8/94
ШашлыкГорячее.2071/9/94Мясо1660180«Юрмала»РигаЛатвия2002.0530/8/94
ШашлыкГорячее.2071/9/94Лук45040«Полесье»КиевУкраина500.6127/8/94
ШашлыкГорячее.2071/9/94Томаты240100«Полесье»КиевУкраина1200.4527/8/94
ШашлыкГорячее.2071/9/94Зелень18020«Даугава»РигаЛатвия150.9930/8/94
КофеДесерт.2351/9/94Кофе27508«Хуанхэ»ПекинКитай402.8724/8/94

Рис. 4.2. Универсальное отношение «Питание»

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *