Управл_данными / 19-алгебра
.pdfУправление данными
Реляционная алгебра и Реляционное исчисление
Зудилин А.Э. 2012
Для управления реляционной базой данных Э. Ф. Кодд ввел реляционные языки обработки данных — реляционную алгебру и реляционное исчисление.
Эдгар Франк Кодд - британский учёный, работы которого заложили основы теории реляционных баз данных.
Реляционная алгебра — это процедурный язык обработки реляционных таблиц. Это означает, что в реляционной алгебре используется пошаговый подход.
Реляционное исчисление — непроцедурный язык.
Кодд доказал логическую эквивалентность реляционной алгебры и реляционного исчисления.
Это означает, что любой запрос, который можно сформулировать при помощи реляционного исчисления, также можно сформулировать, пользуясь реляционной алгеброй, и наоборот.
2
Реляционная алгебра
|
Мы уже рассматривали основные операции по обновлению |
|
информации в реляционной базе данных (Добавление, |
|
Модификация, Удаление). |
|
Данные операции обновления — это операции не над |
|
отношениями, а над кортежами отношения. |
|
Отношение – таблица реляционной БД. |
|
Кортеж – строка таблицы. |
|
Операторы реляционной алгебры применяются к |
|
целым отношениям. |
Операторы реляционной алгебры используют одно или два из существующих отношений для создания нового отношения, которое затем может быть использовано в качестве операнда для нового оператора.
Отношение A |
Операция |
Отношение B |
3
Операции реляционной алгебры
|
Алгеброй называется множество |
Реляционная алгебра |
|
|
объектов с заданной на нем |
определяет |
|
|
совокупностью операций, замкнутых |
||
|
относительно этого множества. |
|
следующие |
|
Реляционная алгебра (или алгебра |
операции: |
|
|
отношений) представляет собой |
|
|
|
совокупность операций высокого |
|
объединение; |
|
уровня над отношениями. |
||
|
|
|
|
|
Первые четыре операции взяты |
|
|
|
Коддом из математической теории |
|
пересечение; |
|
множеств и практически совпадают с |
|
|
|
операциями теории множеств. |
|
разность; |
|
Поскольку реляционные таблицы |
||
|
|
|
|
|
являются множествами, то к ним |
|
|
|
применимы операции над множествами. |
|
произведение; |
|
Следующие четыре — новые |
|
|
|
операции, относящиеся только к |
|
выбор; |
|
реляционной модели данных. |
|
|
создание проекций;
соединение;
Запрос
Выполнение всех перечисленных операций реляционной алгебры всегда направлено на реализацию запросов (аналог - SELECT).
Поэтому в ней отсутствуют любые конструкции, призванные объявлять, создавать или модифицировать данные.
Запрос — операция над отношениями, результатом которой является новое (чаще всего - виртуальное) отношение.
Запрос с использованием реляционной алгебры задает алгоритм преобразования отношений, приводящий к требуемому результату.
Используя сложные комбинации операций реляционной алгебры, можно генерировать любые запросы к БД.
5
Булевы операции
Два отношения с одной и той же схемой могут быть рассмотрены как множества одного и того же универсума — множество всех возможных кортежей с этой схемой.
Схемой отношения называется конечное множество имен атрибутов.
Заголовок столбцов отношения отражает его схему
К таким двум отношениям могут быть применены булевы операции.
К основным операциям относятся следующие булевы операции:
объединение, разность и декартово произведение.
6
Объединение (Union)
Пусть имеются отношения r и s, тогда отношение t называется объединением r и s, если каждый кортеж, принадлежащий t, принадлежит или r, или s, или им обоим.
Пример 1
Пусть имеются следующие экземпляры отношений г и s, имеющих одинаковые схемы:
7
Разность
Пусть имеются два отношения r и s, тогда отношение t называется разностью r и s, если каждый кортеж, принадлежащий t, принадлежит r, но не принадлежит s.
Операция применяется к отношениям одной степени (так же как и объединение).
Степень (ранг, арность) отношения определяется количеством атрибутов.
Отношение с одним атрибутом называется унарным, с двумя атрибутами – бинарными, с n атрибутами – n-арными.
Операция разности является несимметричной операцией, и ее результат будет различным для разного порядка аргументов.
8
Декартово произведение
Под декартовым произведением двух отношений понимается множество упорядоченных пар кортежей. Пусть имеются два отношения r и s, тогда отношение t арности k=k1+k2 , где k1
— арность r, a k2 — арность s, называется декартовым произведением r и s, если оно состоит из кортежей, первые k1 компонентов которых образуют кортежи из r, а остальные k2 — из s.
Т.е. все возможные сочетания строк r и строк s
Эта операция не накладывает никаких ограничений на схемы исходных отношений, и поэтому она допустима для любых двух отношений.
9
Декартово произведение можно считать симметричной операцией - ее результат не будет зависеть от порядка аргументов.
Данная операция используется в тех ситуациях, когда необходимо получить отношение, содержащее все возможные комбинации между элементами исходных отношений.
Оператор языка SQL: без указания условий связывания двух таблиц WHERE - дает декартово произведение:
SELECT * FROM r, s
10