Операции реляционной алгебры. Язык манипулирования данными для реляционной модели
Операндами для операций реляционной алгебры являются реляционные отношения. Результатом выполнения операций РА также является отношение. Таким образом, механизм реляционной алгебры замкнут относительно понятия отношения. Это позволяет применять операции РА каскадно.
Использование операций РА накладывает на отношения два ограничения:
- порядок столбцов (полей) в отношении фиксирован;
- отношения конечны.
Существует пять основных операций реляционной алгебры – проекция, селекция, декартово произведение, разность, объединение, – и три вспомога-тельных: соединение, пересечение и деление. Вспомогательные операции могут быть выражены через основные, но в некоторых системах реализуются с помощью специальных команд (ключевых слов) для удобства пользователей.
1. Проекция (projection)
Это унарная операция (выполняемая над одним отношением), служащая для выбора подмножества атрибутов из отношения R. Она уменьшает арность отношения и может уменьшить мощность отношения за счёт исключения одинаковых кортежей.
Пример 1. Пусть имеется отношение R(A,B,C) (рис. 2.10,а).
Тогда проекция pA,C(R) будет такой, как показано на рис. 2.10,б.
|
|
Рис.2.10. Пример проекции отношения
2. Селекция (selection)
Это унарная операция, результатом которой является подмножество кортежей исходного отношения, соответствующих условиям, которые накладываются на значения определённых атрибутов.
Пример 2. Для отношения R(A,B,C) (рис. 2.11,а) селекция sC=d(R) (при условии "значение атрибута C равно d") будет такой (рис. 2.11,б):
|
|
Рис. 2.11. Пример селекции отношения
3. Декартово произведение (Cartesian product)
Это бинарная операция над разносхемными отношениями, соответст-вующая определению декартова произведения для РМД.
Пример 3. Пусть имеются отношение R(A,B) и отношение S(C,D,E) (рис. 2.12,а). Тогда декартово произведение R×S будет таким (рис. 2.12,б).
|
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
a) | б) |
Рис. 2.12. Пример декартова произведения отношений
4. Объединение (union).
Объединением двух односхемных отношений R и S называется отношение T = R ∪ S, которое включает в себя все кортежи обоих отношений без повторов.
5. Разность (minus).
Разностью односхемных отношений R и S называется множество кортежей R, не входящих в S.
Пример 4. Пусть имеются отношение R(A,B,C) и отношение S(A,B,C) (рис. 2.13,а). Тогда разность R–S будет такой (рис. 2.13,б):
|
|
| |||||||||||||||||||||||||||||||||||||||
a) | б) |
Рис. 2.13. Пример разности отношений
Следующие три операции являются вспомогательными операциями РА.
6. Пересечение(intersection).
Пересечение двух односхемных отношений R и S есть подмножество кортежей, принадлежащих обоим отношениям. Это можно выразить через разность:
R∩S=R - (R-S))
7. Соединение (join).
Эта операция определяет подмножество декартова произведения двух разносхемных отношений. Кортеж декартова произведения входит в результирующее отношение, если для атрибутов разных исходных отноше-ний выполняется некоторое условие F. Соединение может быть выражено так:
R><S=sF(R×S))
F
Если условием является равенство атрибутов исходных отношений, такая операция называется эквисоединением. Естественное соединение – это эквисоединение по одинаковым атрибутам исходных отношений.
Пример 5. Пусть имеются отношения R(A,B,C) и S(A,D,E) (рис. 2.14,а). Тогда естественное соединение R >< S будет таким, как показано на рис. 2.14,б.
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||
a) | б) |
Рис. 2.14. Пример естественного соединения отношений
8. Деление (division).
Пусть отношение R содержит атрибуты {r1,r2,...,rk, rk+1,...,rn}, а отношение S – атрибуты {rk+1,...,rn}. Тогда результирующее отношение содержит атрибуты {r1,r2,...,rk}. Кортеж отношения R включается в результирующее отношение, если его декартово произведение с отношением S входит в R
Пример 6. Пусть имеются отношения R(A,B,C) и S(A,B) (рис. 2.15,а). Тогда частное R/S будет таким как показано на рис. 2.15,б.
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
a) | б) |
Рис. 2.15. Пример операции деления
Языком обработки данных, основанным на реляционной алгебре, является SQL (основы этого языка изложены в [3]).
Другие модели данных
Всё возрастающая сложность приложений баз данных и ограниченность реляционной модели привели к развитию модели Кодда, которое сначала получило название расширенной реляционной модели, а позже получило свое развитие в объектно-реляционной модели данных [4]. Базы данных, основанные на этих моделях, принято относить к III-у поколению.