1.3.3. Дополнительные операции с отношениями
Одной из самых частых операций над отношениями при обработке данных является группировка.
Группировка представляет собой такое обобщение исходного отношения, при котором происходит объединение кортежей значениями атрибутов группировки, а по другим атрибутам рассчитывается какое-либо арифметическое выражение, позволяющее оценить значение группы кортежей. Это может быть сумма, среднее значение, минимум, максимум и др.
Пример:
Информация о продаваемых товарах собирается в отношении R20.
R20
Дата операции |
Покупатель |
Наименование товара |
Количество |
Цена, руб |
Сумма |
04.05.2003 |
ООО "ОРИОН" |
Товар 1 |
5 000 |
7,5 |
37 500 |
04.05.2003 |
ООО "ОРИОН" |
Товар 2 |
12 000 |
6 |
72 000 |
04.05.2003 |
ООО "ОРИОН" |
Товар 3 |
2 000 |
20 |
40 000 |
08.05.2003 |
ООО "Дельта" |
Товар 2 |
2 000 |
6 |
12 000 |
Дата операции |
Покупатель |
Наименование товара |
Количество |
Цена, руб |
Сумма |
08.05.2003 |
ООО "Дельта" |
Товар 3 |
30 000 |
20 |
600 000 |
11.05.2003 |
ООО "Пингвин" |
Товар 3 |
1 600 |
20 |
32 000 |
11.05.2003 |
ООО "Пингвин" |
Товар 1 |
5 000 |
7,5 |
37 500 |
18.05.2003 |
ООО "Дельта" |
Товар 1 |
5 000 |
7,5 |
37 500 |
18.05.2003 |
ООО "Дельта" |
Товар 3 |
30 000 |
20 |
600 000 |
Тогда группировка по атрибуту «Покупатель» будет означать объединение кортежей (строк).
R21 = группировка по атрибуту «Покупатель» (R20)
В результате получим из отношения R20 список покупателей продукции.
R21
Покупатель |
ООО "ОРИОН" |
ООО "Дельта" |
ООО "Пингвин" |
Рассмотренная выше операция группировки является простой и может использоваться только для получения множества значений одного или нескольких атрибутов.
Например, если необходимо получить не только список покупателей продукции, а список покупателей с указанием товара, который они покупали, необходимо выполнить следующую операцию:
R22 = группировка по атрибуту «Покупатель» и атрибуту «Товар» ( R20 )
В результате получим новое отношение R22 на основе исходного отношения R20 путем объединения строк таблицы, у которых значения атрибутов «Покупатель» и «Товар» являются одинаковыми.
R22
Покупатель |
Товар |
ООО "Дельта" |
Товар 1 |
ООО "Дельта" |
Товар 2 |
ООО "Дельта" |
Товар 3 |
ООО "ОРИОН" |
Товар 1 |
ООО "ОРИОН" |
Товар 2 |
ООО "ОРИОН" |
Товар 3 |
ООО "Пингвин" |
Товар 1 |
ООО "Пингвин" |
Товар 3 |
Как следует из приведенного выше определения операции группировки, ее применение не ограничивается только лишь получением различного рода списков – по остальным полям могут рассчитываться арифметические выражения (сумма, среднее значение, количество значений и т.п.). При этом арифметическое выражение рассчитывается для каждой группы записей, имеющих одинаковые значения полей группировки.
Предположим, необходимо на основе отношения R20 получить объемы продаж по каждому товару. Операцию группировки запишем в следующем виде:
R23 = группировка по атрибуту «Покупатель» (R20)
|
Контрольные вопросы |
В чем заключается цель настоящей практической работы?
Что такое модель данных? Какие модели данных Вы знаете?
Дайте определение реляционной модели данных. Для чего используется реляционная модель данных?
Опишите какая структура данных является основной в реляционной модели данных?
Дайте определения понятиям: «отношение», «атрибут отношения», «кортеж», «домен», «степень отношения».
Приведите пример n-арного отношения.
Назовите фундаментальные свойства отношений и кратко опишите каждое свойство.
Что такое «первичный ключ отношения»?
Дайте определение понятию «схема отношения».
Что такое «реляционная алгебра» и какую роль она играет в теории баз данных?
Приведите классификацию операций реляционной алгебры. Перечислите и кратко опишите основные операции.
Перечислите теоретико-множественные операции реляционной алгебры и приведите примеры их использования.
Перечислите специальные операции реляционной алгебры и приведите примеры их использования.
Что такое «универсум»? Какая операция реляционной алгебры используется для получения универсума?
|
Порядок выполнения работы |
Изучить теоретический материал, разбирая все представленные в нем примеры решения типовых задач.
Для каждого из пунктов варианта задания определить результирующее отношение (структуру таблицы).
Определить место расположения исходных данных, необходимых для получения требуемого в варианте задания результата.
Составить последовательность шагов, которые необходимо выполнить для получения результирующего отношения.
Выбрать операции реляционной алгебры, обеспечивающие выполнение каждого шага.
Применить операции реляционной алгебры к исходным отношениям на каждом шаге.
Оформить результаты выполнения операций реляционной алгебры каждого шага в виде результирующего отношения.
1СУБД – это программное обеспечение для создания, ведения и обслуживания баз данных.
2SQL– язык построения запросов к данным.