Естественное соединение

Определение 10. Пусть даны отношения и , имеющие одинаковые атрибуты (т.е. атрибуты с одинаковыми именами и определенные на одинаковых доменах).

Тогда естественным соединением отношений и называется отношение с заголовком и телом, содержащим множество кортежей , таких, что и .

Естественное соединение настолько важно, что для него используют специальный синтаксис:

Замечание. В синтаксисе естественного соединения не указываются, по каким атрибутам производится соединение. Естественное соединение производится по всем одинаковым атрибутам.

Замечание. Естественное соединение эквивалентно следующей последовательности реляционных операций:

  1. Переименовать одинаковые атрибуты в отношениях
  2. Выполнить декартово произведение отношений
  3. Выполнить выборку по совпадающим значениям атрибутов, имевших одинаковые имена
  4. Выполнить проекцию, удалив повторяющиеся атрибуты
  5. Переименовать атрибуты, вернув им первоначальные имена.

 

68. Цели проектирования БД и универсальное отношение. Нормализация, функциональные и многозначные зависимости.

 

Все БД подразделяют на 2 вида:

1) прикладные – объединяют все данные, необходимые для решения одной или нескольких задач;

2) предметные – объединяют все данные, относящиеся к одной предметной области.

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

Чистый проект БД (каждый факт в одном месте) можно создать, используя нормализацию отношений.

 

Блюдо Вид Порций Дата Р Продукт Калорийность Вес (г) Поставщик Город Вес (кг) Цена ($) Дата П
Лобио Закуска   1/9/94 Фасоль     "Хуанхэ" Пекин   0.37 24/8/94
Лобио Закуска   1/9/94 Лук     "Наталка" Киев   0.52 27/8/94
Лобио Закуска   1/9/94 Масло     "Лайма" Рига   1.55 30/8/94
Лобио Закуска   1/9/94 Зелень     "Даугава" Рига   0.99 30/8/94
Харчо Суп   1/9/94 Мясо     "Наталка" Киев   2.18 27/8/94
Харчо Суп   1/9/94 Лук     "Наталка" Киев   0.52 27/8/94
Харчо Суп   1/9/94 Томаты     "Полесье" Киев   0.45 27/8/94
Харчо Суп   1/9/94 Рис     "Хуанхэ" Пекин   0.44 24/8/94
Харчо Суп   1/9/94 Масло     "Полесье" Киев   1.62 27/8/94
Харчо Суп   1/9/94 Зелень     "Наталка" Киев   0.88 27/8/94
Шашлык Горячее   1/9/94 Мясо     "Юрмала" Рига   2.05 30/8/94
Шашлык Горячее   1/9/94 Лук     "Полесье" Киев   0.61 27/8/94
Шашлык Горячее   1/9/94 Томаты     "Полесье" Киев   0.45 27/8/94
Шашлык Горячее   1/9/94 Зелень     "Даугава" Рига   0.99 30/8/94
Кофе Десерт   1/9/94 Кофе     "Хуанхэ" Пекин   2.87 24/8/94

Рис. 22. Универсальное отношение "Питание"

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

При использовании универсального отношения возникает несколько проблем:

1. Избыточность. Данные практически всех столбцов многократно повторяются.

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

3. Аномалии включения. В БД не может быть записан новый поставщик, если поставляемый им продукт не используется ни в одном блюде.

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

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: