Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к экзамену_2.docx
Скачиваний:
87
Добавлен:
28.06.2014
Размер:
478 Кб
Скачать
☆
  1. Средства манипулирования данными (ямд), основанные на реляционной алгебре. Теоретико-множественные операции. Примеры. Манипулирование реляционными данными

Предложив реляционную модель данных, Э.Ф. Кодд создал и инструмент для удобной работы с отношениями – реляционную алгебру. Алгеброй называется множество объектов с заданной на нем совокупностью операций, замкнутых относительно этого множества, называемого основным множеством. Основным множеством в реляционной алгебре является множество отношений. Всего Э.Ф. Коддом было предложено 8 операций. Каждая операция этой алгебры использует одну или несколько таблиц (отношений) в качестве ее операндов и продуцирует в результате новую таблицу, т.е. позволяет "разрезать" или "склеивать" таблицы (рис. 4.1). Все множество операций можно разделить на две группы: теоретико-множественные операции (в них входят 4 операции) и специальные операции. Три первые теоретико-множественные операции являются бинарными, т.е. в них участвуют два отношения и они требуют эквивалентных схем исходных отношений.

Рис. 4.1. Некоторые операции реляционной алгебры

С озданы языки манипулирования данными, позволяющие реализовать все операции реляционной алгебры и практически любые их сочетания. Среди них наиболее распространены SQL (Structured Query Language – структуризованный язык запросов) и QBE (Quere-By-Example – запросы по образцу). Оба относятся к языкам очень высокого уровня, с помощью которых пользователь указывает, какие данные необходимо получить, не уточняя процедуру их получения.

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

Основные операции над таблицами и их интерпретация Теоретико-множественные операции реляционной алгебры

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

Пусть заданы два отношения R1 = {r1}, R2 = {r2}, где r1 и r2 - соответственно кортежи отношений R1 и R2, то объединение R1  R2 = {r | r  R1 r  R2}. Здесь r - кортеж нового отношения,  - операция логического сложения “ИЛИ”.

Например, отношения R1, R2 перечни деталей, изготавливаемых соответственно на первом и втором участках цеха. Отношение R3 содержит общий перечень деталей, изготавливаемых в цеху (общая номенклатура цеха).

Отношение R1

Шифр детали

Название детали

00011073

Гайка М1

00011075

Гайка М2

00011076

Гайка М3

00011003

Болт М1

00011006

Болт М3

00013063

Шайба М1

00013066

Шайба М3

Отношение R2

Шифр детали

Название детали

00011073

Гайка М1

00011076

Гайка М3

00011077

Гайка М4

00011004

Болт М2

00011006

Болт М3

Отношение R3

Шифр детали

Название детали

00011073

Гайка М1

00011075

Гайка М2

00011076

Гайка М3

00011003

Болт М1

00011006

Болт М3

00013063

Шайба М1

00013066

Шайба М3

00011077

Гайка М4

00011004

Болт М2

Рис. 4.2. Объединение отношений R1 и R2

Совсем не обязательно, чтобы объединяемые таблицы, как и результирующая таблица, имели одинаковые названия атрибутов (в случае, если мы используем именованные атрибуты). Операция объединения позволяет собрать информацию из разных источников.

Например, если мы имеем отдельную таблицу со списком фирм-производителей товаров, и отдельную таблицу со списком фирм, которым мы поставляем некоторую продукцию, то, объединив эти две таблицы, мы можем получить список фирм-партнеров.

Таблица “Фирмы-производители”

Производитель

Адрес

Вологда

Домик в деревне

Ул.1

Ул.2 465

Таблица “Фирмы-потребители”

Потребитель

Адрес

АОО «Европа»

ОО «Мега»

Ул.4

Ул.3

Результирующая таблица “Фирмы-партнеры”

Партнер

Адрес

Вологда

Домик в деревне

АОО «Европа»

ОО «Мега»

Ул.1

Ул.2

Ул.4

Ул.3

Рис. 4.3. Объединение двух таблиц

Пересечением отношений называется отношение, которое содержит множество кортежей, принадлежащих одновременно и первому и второму отношениям. R1 и R2:

R3 = R1  R2 = {r | r  R1 r  R2}, здесь  - операция логического умножения (логическое “И”). В отношении R4 содержаться перечень деталей, которые выпускаются одновременно на двух участках цеха.

Отношение R4

Шифр детали

Название детали

00011073

Гайка М1

00011076

Гайка М3

00011006

Болт М3

Рис. 4.4. Результат пересечения двух отношений

Разностью отношений R1 и R2 называется отношение, содержащее множество кортежей, принадлежащих R1 и не принадлежащих R2: R5 = R1 \ R2 = {r | r R1 r R2}.

Отношение R5 содержит перечень деталей, изготавливаемых только на участке 1, отношение R6 содержит перечень деталей, изготавливаемых только на участке 2. R6 = R2 \ R1 = {r | r R2 r R1}.

Отношение R5

Шифр детали

Название детали

00011075

Гайка М2

00011003

Болт М1

00013063

Шайба М1

00013066

Шайба М3

Отношение R6

Шифр детали

Название детали

00011077

Гайка М4

00011004

Болт М2

Рис. 4.5. Пример разности двух отношений

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

Декартово произведение - операция, заключающаяся в построении нового отношения на основе двух других путем по парной комбинацией всех возможных записей из первого отношения и второго отношения. Расширенным декартовым произведением отношения R1 степени n (атрибутов) со схемой, SR1 = (A1, A2,…, An) и отношения R2 степени m со схемой SR2 = (B1, B2,…, Bm) называется отношение R3 степени n+m со схемой SR3 = (A1, A2,…, An, B1, B2,…, Bm), содержащее кортежи, полученные сцеплением каждого кортежа r отношения R1 с каждым кортежем q отношения R2. Т.е., если R1 = {r}, R2 = {q}

R1 R2 = {(r, q) | r  R1  q  R2}. В результирующей таблице будет r*q записей и n + m атрибутов, т.е. получим отношение, которое характеризует все возможные комбинации между элементами различных множеств.

Декартово произведение позволяет связать разные объекты, объединить информацию, описывающую разные типы сущностей или объектов предметной области. Например, если мы имеем отдельную таблицу со списком фирм-производителей, и отдельную таблицу со списком всевозможных товаров, то декартово произведение этих двух таблиц позволит построить всевозможные пары “товар-производитель”:

Таблица “Фирмы-производители”

Производитель

Адрес

Вологда

Домик в деревне

Ул.1

Ул.2

Таблица “Товары”

Товар

Кефир

Молоко

Результирующая таблица “Товар-производитель”

Товар

Производитель

Адрес

Кефир

Молоко

Кефир

Молоко

Вологда

Вологда

Домик в деревне

Домик в деревне

Ул.1

Ул.1

Ул.2

Ул.2

Рис. 4.6. Декартово произведение двух таблиц