Базы данных
Темы и контрольные вопросы лекции №4
Темы и контрольные вопросы лекции №4
Реляционная алгебра. Программирование баз данных в контексте реляционной модели
Пример схемы базы данных
Алгебра реляционных операций
Мультимножества
Основы реляционной алгебры
Основы реляционной алгебры
Теоретико-множественные операции над отношениями
Пример
Пример
Проекция
Проекция. Пример
Проекция. Пример
Выбор
Выбор. Пример
Декартово произведение
Декартово произведение.
Декартово произведение.
Естественное соединение
Естественное соединение.
Естественное соединение. Пример
Естественное соединение. Пример
Тета-соединение
Тета-соединение
Тета-соединение. Пример
Тета-соединение. Пример
Переименование атрибутов
Переименование атрибутов. Пример
Эквивалентные выражения и оптимизация запросов
Зависимые и независимые операции
Зависимые и независимые операции
Наборы операций и формирование запросов
Пример
Алгебраические выражения в линейном представлении
Алгебраические выражения в линейном представлении
Алгебраические выражения в линейном представлении
Реляционные операции над мультимножествами
Зачем нужны мультимножества
Объединение, пересечение и разность мультимножеств.
Пересечение и разность мультимножеств. Примеры
Разница в применении операций над множествами и мультимножествами
Алгебраические законы для мультимножеств
Выбор из мультимножеств
Декартово произведение мультимножеств
Операции соединения мультимножеств
Дополнительные операторы реляционной алгебры
Дополнительные операторы реляционной алгебры
Удаление дубликатов
Операторы агрегирования. Пример
Оператор группирования
Оператор группирования. Пример
Оператор расширенной проекции
Оператор расширенной проекции.
Оператор расширенной проекции. Пример
Оператор расширенной проекции. Пример
Оператор сортировки 
Оператор сортировки. Пример
Внешние соединения
Внешние соединения
Внешние соединения. Примеры
Внешние соединения. Примеры
Внешние тета-соединения.
Внешние тета-соединения. Примеры
Реляционная алгебра как язык описания ограничений
Ограничения ссылочной целостности
Ограничения ссылочной целостности. Пример
Резюме
Резюме
Резюме
Резюме
Резюме
Резюме
1.88M
Category: databasedatabase

Лекция №5_2026

1. Базы данных

Лекция №5

2. Темы и контрольные вопросы лекции №4

Тема 4.1 Алгебра реляционных операций
Реляционная алгебра: предназначение
Операторы и операнды реляционной алгебры
Операции реляционной алгебры
объединение (union), пересечение (intersection) и разность (difference)
операция выбора (selection), и операция проекции (projection)
операция Декартова произведения
естественное соединение
тета-соединение
операция переименования
Зависимые и независимые операции
Мультимножества
предназначение
объединение, пересечение и разность мультимножеств
алгебраические законы для мультимножеств

3. Темы и контрольные вопросы лекции №4

Дополнительные операторы реляционной алгебры
Оператор удаления кортежей-дубликатов
Операторы агрегирования
Оператора группирования
Оператор сортировки
Оператор проекции с расширенными полномочиями.
Оператор внешнего соединения
Реляционная алгебра как язык описания ограничений

4. Реляционная алгебра. Программирование баз данных в контексте реляционной модели

Реляционной алгеброй называют систему обозначений, принятую для
описания запросов к содержимому отношений.
Если ER-модель не предусматривает каких-либо способов манипулирования
информацией, то реляционная модель содержит конкретный набор
стандартных операторов, применяемых в контексте отношений.
Набор операторов реляционной модели не является функционально полным
по Тьюрингу, соответственно,
средствами реляционной алгебры могут быть описаны не все возможные
операции, НО
упрощение множества операторов позволяет существенно оптимизировать
выражения запросов к базе данных, которые могут быть в этом случае
написаны на высокоуровневых языках, подобных SQL

5. Пример схемы базы данных

Кинофильмы (
НАЗВАНИЕ: string
ГОД: integer
продолжительность: integer
тип пленки: string
киностудия: string
Id продюсера: integer)
Играют в:)
Выпускает(
имя : string
адрес: string
СЕРТИФИКАТ: integer
доход: integer)
Студия:(
НАЗВАНИЕ : string
адрес: string
Idпрезидента: integer)
НАЗВАНИЕ ФИЛЬМА: string
ГОД ВЫПУСКА: integer
ФИО АКТЕРА: string)
Актеры:)
ФИО АКТЕРА: string
адрес: string
пол : char
дата рождения : date)
❖ Схема охватывает 5 отношений
❖ Схема каждого из отношений
содержит перечень доменов, к
которым должны принадлежать
значения атрибутов
❖ Наименования ключевых атрибутов
набраны в верхнем регистре

6. Алгебра реляционных операций

Реляционная алгебра (relational algebra) служит для формального описания
способов конструирования новых отношений на основе заданных.
Заданные отношения хранят информацию, а вновь создаваемые содержат
ответы на запросы относительно тех или иных свойств такой информации
Изначально реляционная алгебра была разработана Э,Ф, Коддом (Codd) в виде
совокупности операторов, выполняемых над множествами кортежей (т, е.
отношениями) и обеспечивающих возможности выражения типичных запросов,
касающихся содержимого отношений.
Алгебра охватывала пять операций над множествами: объдинение (union),
разность (difference), Декартово произведение (Саrtesian product), а также
две нетрадиционные операции — выбор (selection) и проекция (projection).
Затем в нее вошли другие операции, которые можно выразить в терминах
операций из исходного набора (наиболее важными из них являются различные
варианты операции соединения — join).
В ходе развития коммерческих реляционных СУБД алгебру отношений
понадобилось пополнить целым рядом новых операций, наиболее важные из
которых связаны с выполнением функций агрегирования (aggregation), т,е,
нахождения суммарных, средних, максимальных, минимальных и иных
значений в определенном столбце таблицы-отношения.

7. Мультимножества

С появлением первых СУБД, основанных на реляционной модели,
операторы реляционной алгебры были реализованы в языках запросов
С целью повышения эффективности обработки запросов было принято
решение рассматривать отношения как мультимножества (bags)
кортежей, а не обычные множества, иными словами, если условие
удаления повторяющихся кортежей не оговаривается явно, в отношения
позволяется включать кортежи-дубликаты
Мультимножества более эффективны, нежели множества, поскольку модель
мультимножества способна увеличить степень эффективности реализации
СУБД.
Например, если выполняется объединение отношений, не предусматривающее
удаления кортежей-дубликатов, мы можем просто скопировать их содержимое
в одно итоговое отношение.
Если же результатом обязательно должно оказаться просто множество ( не
мультимножество), нам придется отсортировать данные или выполнить какуюлибо настолько же трудоемкую операцию, чтобы выявить совпадающие
кортежи отношений, подлежащих слиянию.

8. Основы реляционной алгебры

Некоторая алгебра, вообще говоря, состоит из набора операторов,
применяемых к атомарным операндам.
Например, в алгебре арифметики атомарные операнды представляют собой
переменные вида х и константы, подобные 15, а операторами служат
обычные арифметические операторы сложения, вычитания, умножения и
деления.
Любая алгебра позволяет создавать выражения (expressions) путем
применения операторов к операндам и/или другим выражениям,
допустимым в контексте этой алгебры.
Для группирования операторов и операндов обычно применяются круглые
скобки. В алгебре арифметики, скажем, вполне приемлемыми считаются
выражения, подобные таким, как (х + у) * : или ((х+ 7) (y —3) + х.
Реляционная алгебра — это просто еще одна частная разновидность алгебр.
В ней поддерживаются следующие виды атомарных операндов:
1.
переменные, обозначающие отношения;
2.
константы, являющиеся конечными отношениями.
В классической реляционной алгебре все операнды и результаты
вычисления выражений являются множествами.

9. Основы реляционной алгебры

Операции реляционной алгебры относятся к четырем классам:
Обычные операции над множествами — объединение (union), пересечение
(intersection) и разность (difference), — применяемые к отношениям.
Операции удаления частей отношения: операция выбора (selection)
приводит к отбрасыванию некоторых кортежей (строк), а операция
проекции (projection) — к устранению атрибутов (столбцов).
Операции сочетания кортежей двух отношений: например, операция
Декартова произведения (Cartesian product) позволяет совместить в
пределах кортежей итогового отношения все возможные комбинации
кортежей двух исходных отношений, а различные разновидности операции
соединения (join) применяются для избирательного слияния кортежей.
Операция переименования (renaming) атрибутов или отношения целиком
(операция не оказывает влияния на содержимое отношения, но изменяет
его схему).
Выражения реляционной алгебры принято называть запросами (queries).

10. Теоретико-множественные операции над отношениями

К числу наиболее известных и употребительных операций теории множеств
относятся объединение (union), пересечение (intersection) и разность (difference).
Если R и S представляют собой множества кортежей (отношения), они должны
удовлетворять следующим требованиям:
1. обладать схемами с идентичными наборами атрибутов, типы (домены) которых
обязаны попарно совпадать;
2. атрибуты (столбцы) должны следовать в одном и том же порядке.
Если приходится вычислять объединение, пересечение или разность отношений,
атрибуты которых относятся к совпадающим типам, но обладают различными
названиями, необходимо предварительно применить оператор переименования

11. Пример

Рассмотрим отношения R и S, представляющие собой экземпляры
отношения Актеры:
Отношение R
ФИО актера
Адрес
Пол
Дата рождения
Пересильд
Россия, Москва
ж
05.09.1984
Гармаш
Россия, Москва
м
01.09.1958
ФИО актера
Адрес
Пол
Дата рождения
Пересильд
Россия, Москва
ж
05.09.1984
Машков
Россия, Москва
м
25.11.1963
Отношение S

12. Пример

Результат объединения отношений R и S (R U S)
ФИО актера
Адрес
Пол
Дата рождения
Пересильд
Россия, Москва
ж
05.09.1984
Гармаш
Россия, Москва
м
01.09.1958
Машков
Россия, Москва
м
25.11.1963
➢ Результат пересечения отношений R и S (R S):
ФИО актера
Адрес
Пол
Дата рождения
Пересильд
Россия, Москва
ж
05.09.1984
➢ Результат разности отношений R и S (R - S):
ФИО актера
Адрес
Пол
Дата рождения
Гармаш
Россия, Москва
м
01.09.1958

13. Проекция

Оператор проекции (projection) применяется к отношению R с целью
получения нового отношения, которое содержит только некоторые из
атрибутов R.
Значением выражения А1, А2,.. Аn служит отношение, содержащее явно
перечисленные атрибуты А1, А2,.. Аn отношения R. Схема итогового
отношения охватывает множество атрибутов (А1, А2,.. Аn ), отображаемых
в указанном порядке.

14. Проекция. Пример

Рассмотрим отношение Кинофильмы. На рис. – экземпляр этого
отношения
Название
Год
Продолжительность
Тип
пленки
Киностудия
ID продюсера
Чебурашка
2022
150
цифра
Союзмульфильм
12345
Снежная Королева: Зазеркалье
2019
80
цифра
Союзмульфильм
67890
Белый Тигр
2012
104
цифра
Мосфильм
11113
Операция проекции отношения Кинофильмы в новое отношение, содержащие,
три первых атрибута отношения Кинофильмы записывается как
название,год,nпродолжительность(кинофильмы)
Результат проекции:
Название
Год
Продолжительность
Чебурашка
2022
150
Снежная Королева: Зазеркалье
2019
80
Белый Тигр
2012
104

15. Проекция. Пример

Результат проекции тип пленки (кинофильмы):
Тип
пленки
цифра
Присутствует только один кортеж, т.к. все 3 кортежа исходного отношения
имеют одинаковые значения компонентов для атрибута тип пленки, и по
правилам реляционной алгебры множеств кортежи-дубликаты удаляются

16. Выбор

Оператор выбора (selection), будучи примененным к отношению R, дает в
результате новое отношение, содержащее подмножество кортежей R,
удовлетворяющих некоторому заданному условию С, которое накладывается на
атрибуты отношения R.
Операцию выбора принято обозначать как c(R). Схемы итогового и исходного
отношений совпадают и порядок следования атрибутов в них сохраняется.
С — это условное выражение, подобное тем, которые применяются в
традиционных языках программирования.
Единственная особенность выражения С связана с тем, что его операндами
служат или константы, или названия атрибутов отношения R.
Выражение С вычисляется для каждого кортежа t отношения R путем замены
всех атрибутов А, вовлечённых в выражение С, содержимым соответствующих
компонентов кортежа t
Если после выполнения замены условие С становится истинным, тогда t
включается в итоговый набор кортежей отношения c(R); в противном случае
кортеж в результат не попадает.

17. Выбор. Пример

Рассмотрим отношение Кинофильмы
Название
Год
Продолжительность
Тип
пленки
Киностудия
ID продюсера
Чебурашка
2022
150
цифра
Союзмульфильм
12345
Снежная Королева: Зазеркалье
2019
80
цифра
Союзмульфильм
67890
Белый Тигр
2012
104
цифра
Мосфильм
11113
Результат вычисления выражения продолжительность>100(кинофильмы).
Название
Год
Продолжительность
Тип
пленки
Киностудия
ID продюсера
Чебурашка
2022
150
цифра
Союзмульфильм
12345
Белый Тигр
2012
104
цифра
Мосфильм
11113
Результат вычисления выражения продолжительность>100 AND киностудия=Союзмультфильм(кинофильмы).
Название
Чебурашка
Год
Продолжительность
Тип
пленки
2022
150
цифра
Киностудия
Союзмульфильм
ID продюсера
12345

18. Декартово произведение

Декартово произведение (Cartesian product) двух множеств R и S
представляет собой множество пар элементов, таких что первым
элементом пары является любой элемент множества R , а вторым —
любой элемент множества S
Операция обозначается так: RxS.
Когда в роли R и S выступают отношения, существо операции не
меняется, однако, поскольку членами R и S являются кортежи,
обычно состоящие более чем из одного компонента, результатом
сочетания кортежа отношения R с кортежем отношения S окажется
более длинный кортеж с компонентами, соответствующими
компонентам обоих исходных кортежей.
Порядок следования атрибутов в итоговом отношении таков: сначала
указываются атрибуты отношения R, а затем — отношения S

19. Декартово произведение.

Схема отношения-результата R х S является объединением схем
отношений R и S.
Если отношения R и S обладают одноименными атрибутами, необходимо
переименовать по меньшей мере один атрибут из каждой пары
одинаковых атрибутов,
Чтобы различить атрибуты А, присутствующие в схемах отношений R и S,
используется обозначение R.A для атрибута схемы R и S.A — для атрибута
схемы S.

20. Декартово произведение.

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

Полезность операции декартова произведения несомненна, но гораздо чаще
возникает потребность в соединении (join) двух отношений, т.е.
формировании пар таких их кортежей, которые удовлетворяют
определенному критерию.
Простейшая разновидность операции соединения двух отношений R и S,
которую называют естественным соединением (natural join) и обозначают
как
R
S
предусматривает включение в итоговое отношение тех кортежей из R и S,
которые совпадают в атрибутах, общих для схем R и S.
Обозначим как А1, А2,.. Аn , все атрибуты, которые определены
одновременно в схемах отношений R и S
Тогда кортежи из r из R и s из S допускают соединение, если и только если r
и s совпадают в каждом из атрибутов А1, А2,.. Аn

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

Если кортежи r и s успешно соединены,
результат представляет собой кортеж,
называемый соединенным кортежем
(joined tuple) и содержащий по одному
компоненту для каждого из атрибутов
схемы, полученной результате объединения
схем R и S.
Соединенный кортеж совпадает с кортежем
r каждом из атрибутов схемы R и с
кортежем s в каждом из атрибутов схемы S.
Поскольку r и s успешно соединены,
итоговый кортеж совпадает с обоими
исходными кортежами во всех их общих
атрибутах.

23. Естественное соединение. Пример

Результат операции естественного соединения отношений R и S
В этом примере не нашли отражения все ситуации, которые могут возникнуть
при выполнении естественного соединения:
ни один из кортежей отношения не допускал сочетания более чем с одним
кортежем другого отношения, и
отношения обладали только одним общим атрибутом.

24. Естественное соединение. Пример

Отношения, U и V обладают двумя общим атрибутами — В и С.
Один кортеж каждого отношения может быть соединен с несколькими кортежами
другого отношения.
Чтобы кортежи отношений U и V позволяли соединение, они должны совпадать и в
атрибуте В, и в атрибуте С; поэтому первый кортеж U успешно сочетается с двумя
первыми кортежами V, в то время как второй и третий кортежи U образуют пары с
третьим кортежем V.

25. Тета-соединение

Естественное соединение кортежей двух отношений основано на частном
условии равенства содержимого компонентов, которые соответствуют
атрибутам, общим для обоих отношений.
Хотя подобная ситуация, несомненно, является распространенной, подчас
желательно иметь возможность соединения кортежей отношений на
основе иных критериев.
И такая операция, называемая тета-соединением (theta-join),
действительно существует.
По традиции для обозначения произвольного условия используется
прописная буква (тета) греческого алфавита, но, для удобства, заменим
ее прописной латинской С.

26. Тета-соединение

Операция тета.соединения отношений R и S в соответствии с условием С
обозначается как
и выполняется следующим образом:
1. вычисляется декартово произведение R и S;
2. из результата произведения выбираются те кортежи, которые
удовлетворяют заданному условию С
Как и при выполнении операции декартова произведения, схема итогового
отношения представляет собой объединение схем отношений R и S
При необходимости наименование атрибута снабжается префиксом “R” или
“S”, указывающим на ” происхождение“ атрибута.

27. Тета-соединение. Пример

28. Тета-соединение. Пример

Отношение

29. Переименование атрибутов

В процессе конструирования отношений посредством применения
операторов реляционной алгебры часто возникает потребность в явном
задании имен отношений и их атрибутов.
Для переименования отношения R используется оператор S(А1, А2,.. Аn )(R)
Итоговое отношение обладает теми же кортежами, что и R, но получает
имя S, а его атрибуты — имена А1, А2,.. Аn в порядке слева направо.
Если необходимо изменить только имя отношения, сохранив за его
атрибутами прежние названия, заданные в схеме R, употребляется
сокращенная запись s(R)

30. Переименование атрибутов. Пример

Вычисление декартова произведения отношений с предварительным
переименованием атрибута одного из них

31. Эквивалентные выражения и оптимизация запросов

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

32. Зависимые и независимые операции

Шесть операций — объединения, разности, выбора,
проекции, декартова произведения и переименования
являются независимыми
Каждую из них нельзя выразить в терминах остальных
пяти.
Операции пересечения, тета-соединения,
естественного соединения возможно выразить в
терминах других операций

33. Зависимые и независимые операции

Например, операция пересечения допускает замену парой операций разности:

34. Наборы операций и формирование запросов

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

35. Пример

название, год
Рассмотрим отношение Кинофильмы (здесь мы назовем это
отношение как Фильмы21)
Пусть необходимо выяснить названия и даты выпуска кинофильмов
компании “Союзмультфильм", продолжительность воспроизведения
которых составляет не менее 100 минут. Один из способов
получения ответа на вопрос таков:
1. выбрать из отношения Фильмы те кортежи, которые удовлетворяют
условию «продолжительность >100»;
2. выбрать из отношения Фильмы те кортежи, которые удовлетворяют
условию Название студии = «Союзмультфильм»
3. вычислить пересечение множеств-отношений, полученных при
выполнении пп. 1, 2;
4. осуществить проекцию итогового отношения п. З на атрибуты «название
фильма» и «год»
Линейная формула для выражения данного запроса:
название,год,nпродолжительность(кинофильмы) = ( продолжительность>100(кинофильмы)
имя студии=союзмультфильм(кинофильмы))
Продолжительность>100
Название студии =
«Союзмультфильм»
Кинофильм
Кинофильм

36. Алгебраические выражения в линейном представлении

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

37. Алгебраические выражения в линейном представлении

Выражение присваивания состоит из следующих частей:
1.
имени отношения и списка имен его атрибутов, заключенного в
скобки;
имя Answer в соответствии с принятым соглашением используется для
обозначения итогового отношения, представляющего результат
выполнения всех операций и отвечающего корневой вершине дерева
2.
оператора присваивания :=
3.
любого выражения реляционной алгебры;
обычно присваиванию подлежит результат выполнения единственного
оператора, и в этом случае для каждой промежуточной вершины дерева
должно быть создано отдельное выражение присваивания;
в правой части выражения присваивания допустимо задавать комбинации
алгебраических операторов

38. Алгебраические выражения в линейном представлении

название, год
Продолжительность>100
Название студии =
«Союзмультфильм»
Кинофильм
Кинофильм
Последовательность выражений присваивания: ИЛИ
R(t,y,l,i,s,p) := продолжительность>100 (кинофильмы)
S(t,y,l,i,s,p) := имя студии=союзмультфильм(кинофильмы)
T(t,y,l,i,s,p) := R S
Answer (title, year) = ty(T)
R(t,y,l,i,s,p) := продолжительность>100 (кинофильмы)
S(t,y,l,i,s,p) := имя студии=союзмультфильм(кинофильмы)
Answer (title, year) = ty(R S)

39. Реляционные операции над мультимножествами

Во многих ситуациях отношениям — в том виде, как они представлены в реальных
базах данных, — позволяется хранить повторяющиеся кортежи
Напомним, что множество (set), допускающее наличие дубликатов элементов,
принято называть мультимножеством (bag)
Мультимножества кортежей позволяют многократное включение одного и того же
кортежа.
Множества кортежей – это отношения, не допускающие повторения кортежей
Мультимножества - могут содержать (хотя и не обязательно) кортежи-дубликаты.

40. Зачем нужны мультимножества

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

41. Объединение, пересечение и разность мультимножеств.

42. Пересечение и разность мультимножеств. Примеры

Отношение R
R S
Отношение S
R-S

43. Разница в применении операций над множествами и мультимножествами

Результаты операций пересечения и разности над множествами и
мультимножествами будет одинаков
Результат операции объединения – разным. Тут нужно явно указывать, над
множествами или мультимножествами проводится операция

44. Алгебраические законы для мультимножеств

Алгебраический закон — это тождество двух выражений (реляционной) алгебры;
аргументами таких выражений служат переменные, обозначающие отношения,
результатом вычисления выражений всегда служит одно и то же отношение, и
тождество выполняется независимо от того, какие именно частные экземпляры отношений
поставлены вместо переменных.
Есть законы, которые справедливы как для множеств, так и для мультимножеств,
пример:
коммутативный закон объединения множеств: R U S = S U R
Есть законы, которые справедливы для множеств, но не справедливы для
мультимножеств, пример:
дистрибутивный закон разности в применении к объединению множеств:
(R U S) -T = (R-T) U (S-T)
Для мультимножеств не выполняется, поскольку:
предположим, что отношения мультимножества R, S и T имеют по одной копии кортежа t.
Тогда выражение левой части будет содержать один экземпляр t, а выражение правой части —
ни одного.
Если трактовать R, S и T как множества, в отношениях, соответствующих левой и правой
частям выражения, кортежи t не будут присутствовать вовсе

45. Выбор из мультимножеств

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

46. Декартово произведение мультимножеств

Правило выполнения операции декартового произведения:
каждый кортеж одного отношения образует пару с каждым кортежем другого —
независимо от того, повторяются кортежи или нет.
если кортеж r присутствует в R m раз, а кортеж в S — n раз, тогда кортеж должен
быть включен в итоговое отношение R х S m*n раз.
Пример:

47. Операции соединения мультимножеств

Каждый кортеж одного отношения сопоставляется с каждым кортежем другого
отношения, и если кортежи способны образовать пару, такая пара создаётся и
включается в итоговое отношение.
Повторяющиеся кортежи из отношения-результата не удаляются.
Результат естественного соединения
Результат тета-соединения

48. Дополнительные операторы реляционной алгебры

1.
Оператор удаления кортежей-дубликатов (duplicate-elimination operator)
преобразует отношение-мультимножество в множество путем отбрасывания
всех копий каждого кортежа, за исключением одной.
2.
Операторы агрегирования (aggregation operators), предназначенные,
например, для нахождения суммарных, средних, максимальных и
минимальных значений в определенном столбце таблицы-отношения
3.
не относятся к компетенции реляционной алгебры как таковой
используются в контексте оператора группирования
Оператор агрегирования дает возможность формировать самые разные запросы,
которые нельзя выразить в рамках традиционной реляционной алгебры.
Оператор группирования (grouping) разбивает множество кортежей-строк
отношения на “группы“ в соответствии с содержимым одного или нескольких
компонентов.
Затем оператор агрегирования применяется к атрибутам-столбцам внутри каждой
группы,
Оператор группирования (grouping operator) сочетает в себе возможности
группирования и агрегирования.

49. Дополнительные операторы реляционной алгебры

4.
5.
Оператор сортировки (sorting operator) преобразует отношение в
список кортежей, упорядоченных в соответствии с некоторым критерием,
учитывающим содержимое одного или нескольких их компонентов.
Оператор следует применять осмотрительно, поскольку все другие операторы
реляционной алгебры способны обращаться только с множествами или
мультимножествами (но не со списками) кортежей.
Поэтому оператор может использоваться только на заключительной стадии
формирования выражения, состоящего из нескольких “вложенных“ операторов
Оператор проекции (projection operator) может быть наделен
расширенными полномочиями.
Помимо обычной проекции отношения на список атрибутов, оператор в его
общей форме способен выполнять дополнительные функции над атрибутамистолбцами отношения с целью получения новых атрибутов.
6.
Оператор внешнего соединения (0uterjoin operator) — это вариант
оператора соединения, позволяющий избежать потери висящих (dangling)
кортежей.
Висящие кортежи включаются в итоговое отношение, и соответствующие
компоненты их заполняются значениями null

50. Удаление дубликатов

Иногда возникает потребность в преобразовании отношения-мультимножества
в множество
Для выполнения подобной функции используется оператор (R), возвращающий
множество кортежей отношения R, в котором каждый различный кортеж представлен
не более чем одной копией.
Пример:
отношение R
отношение (R)

51.

52. Операторы агрегирования. Пример

53. Оператор группирования

54. Оператор группирования. Пример

Пусть задано отношение Играют в (название фильма,
год, ФИО актера)
Необходимо найти самый ранний фильм, в котором
снимался каждый актер, принимавший участие не
менее чем в 3-х фильмах.
Порядок действий:
1.
ФИО актера, MIN(год)
Число фильмов 3
Построим группу кортежей с атрибутом ФИО актера в
качестве группирующего. Для каждой группы:
▪
вычислим значение оператора агрегирования
MIN(год)
▪
Вычисляем значение оператора COUNT(название
фильма).
▪
Строим итоговое отношение из 3 столбцов (ФИО
актера, MIN(год), число фильмов – результат
COUNT). Третий столбец необходим для
определения числа фильмов, в которых снялся
актер)
2.
Определяем, какие группы удовлетворяют условию об
участии в не менее чем в 3-х фильмах
3.
Затем применяем оператор проекции и отвечаем на
запрос.
ФИО актера, MIN(год)
MIN(год)
Играют в
фильм
Число
фильмов

55. Оператор расширенной проекции

Оператор расширенной проекции предусматривает наряду с выбором
атрибутов возможность выполнения манипуляций с содержимым их
кортежей.
Пусть L – список некоторых атрибутов отношения R
Тогда в операторе расширенной проекции l(R) список L может содержать
элементы следующих типов:

56. Оператор расширенной проекции.

В процессе вычисления оператора расширенной проекции каждый
кортеж отношения R рассматривается отдельно.
Элементы списка L замещаются соответствующими значениями
компонентов кортежа и к последним применяются предусмотренные
списком арифметические и/или строковые операторы,
Результатом служит отношение с атрибутами, упомянутыми в списке L
(с учетом вариантов их переименования).
Каждому кортежу R отвечает кортеж итогового отношения.
Если R содержит повторяющиеся кортежи, соответствующие кортежидубликаты определенно появятся и в отношении-результате
Отношение, возвращаемое оператором расширенной проекции, может
содержать повторяющиеся кортежи даже тогда, когда в исходном
отношении R таковые отсутствуют.

57. Оператор расширенной проекции. Пример

58. Оператор расширенной проекции. Пример

59. Оператор сортировки 

Оператор сортировки

60. Оператор сортировки. Пример

61. Внешние соединения

Оператору соединения присуща способность оставлять некоторые
кортежи отношения ”висящими” (dangling), если они не совпадают в
атрибутах, общих для двух отношений, ни с одним кортежем другого
отношения.
Информация о висящих кортежей никак не отражается в отношении,
служащем результатом операции соединения, и поэтому оно
воспроизводит данные исходных отношений с недостаточной степенью
полноты.
В тех случаях, когда подобный исход нежелателен, применяется
специальная разновидность оператора соединения, называемая
внешним соединением (outerjoin), которая приобрела широкое
признание и поддерживается в большинстве коммерческих СУБД

62. Внешние соединения

63. Внешние соединения. Примеры

64. Внешние соединения. Примеры

65. Внешние тета-соединения.

66. Внешние тета-соединения. Примеры

67. Реляционная алгебра как язык описания ограничений

Реляционная алгебра позволяет выразить ограничения ссылочной
целостности, а также другие ограничения, например, в виде выражения
реляционной алгебры можно представить любую функциональную
зависимость

68. Ограничения ссылочной целостности

Ограничения одной широко употребительной разновидности, называемые
ограничениями ссылочной целостности (referential integrity constraints),
подразумевают, что если значение присутствует в одном контексте, оно
обязано присутствовать и в другом, связанном, контексте.
Как уже говорилось, ограничения ссылочной целостности помогают
”придать смысл“ связям между множествами сущностей, объектами или
отношениями.
Так, если объект А связан с объектом В, последний обязан существовать.
В реляционной модели ограничения ссылочной целостности выглядят
несколько иначе:
если v является значением определенного атрибута некоторого
кортежа отношения R, то, руководствуясь выбранным проектным
решением, мы вправе ожидать, что и u должно быть значением
определенного атрибута некоторого кортежа отношения S.

69. Ограничения ссылочной целостности. Пример

Любому кинофильму из отношения
Играют в (название фильма, год выпуска фильма, ФИО актера)
Должен соответствовать кортеж отношения
Кинофильмы (название, год, продолжительность, тип пленки, название
киностудии, ID продюсера)
Кинофильм в каждом из отношений представляется парой значений
«название год»
Формулировка ограничения ссылочной целостности:
название фильма,год выпуска фильма (Играют в) название,год (Кинофильмы)

70. Резюме

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

71. Резюме

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

72. Резюме

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

73. Резюме

Группирование и агрегирование
Операторы агрегирования позволяют вычислять различные общие
показатели, касающиеся содержимого того или иного столбца отношения:
суммы,
минимальные, максимальные и средние значения,
а также количества кортежей.
Оператор группирования
обеспечивает возможность разбиения множества кортежей на группы в
соответствии с содержимым тех или иных атрибутов и
обычно используется в сочетании с операторами агрегирования

74. Резюме

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

75. Резюме

Ограничения в форме выражений реляционной алгебры,
Ограничения самых различных типов (например,
функциональные зависимости или ограничения
ссылочной целостности)
могут быть оформлены в виде:
алгебраических выражений, представляющих
подмножество множества или
равенство некоторого значения пустому множеству.
English     Русский Rules