26
Часть I Теория баз данных
при слиянии одного кортежа первого отношения и одного корте-
жа второго отношения. Тут же возникает вторая проблема, свя-
занная с получением корректно сформированного заголовка ре-
зультирующего отношения. Это приводит к необходимости ввода
понятия совместимости отношений по взятию расширенного
прямого произведения. Два отношения совместимы по взятию
прямого произведения в том и только в том случае, если множе-
ства имен атрибутов этих отношений не пересекаются. Любые
два отношения могут быть преобразованы к совместимому виду
по взятию прямого произведения путем применения операции
переименования к одному из этих отношений.
Операция выборки требует наличия двух отношений: перво-
начального отношения-операнда и простого условия ограниче-
ния. В результате выполнения операции выборки производится
отношение, заголовок которого совпадает с заголовком отноше-
ния-операнда, а в тело входят те кортежи отношения-операнда,
которые удовлетворяют значениям условия ограничения.
Введем ряд операторов. Пусть UNION обозначает операцию
объединения, INTERSECT - операцию пересечения, a MINUS -
операцию вычитания. Для обозначения операции выборки будем
использовать конструкцию A WHERE В, где А - отношение-
операнд, а В - простое условие сравнения. Пусть С1 и С2 - два
простых условия выборки. Тогда по определению:
A WHERE Cl AMD C2 обозначает то же самое,
что и (A WHERE Cl) INTERSECT (A WHERE C2)
A WHERE Cl OR C2 обозначает то же.самое, что
и (A WHERE Cl) UNION (A WHERE C2)
A WHERE NOT Cl обозначает то же самое, что и
A MINUS (A WHERE Cl) .
С использованием этих определений можно реализовать опе-
рации выборки, в которых условием выборки является произ-
вольное булевское выражение, составленное из простых условий
с использованием логических связок AND (логическое И), OR
(логическое ИЛИ), NOT (логическое НЕ) и скобок.
Операция взятия проекции также требует наличия двух
операндов - проецируемого отношения А и списка имен
атрибутов, входящих в заголовок отношения А.
Результатом проекции отношения А по списку атрибутов а,,
а
;
, ..., а„ будет отношение, заголовком которого является множе-
ство атрибутов a
h
;-a
2l
..".., К- Тело результата будет состоять из
кортежей, для которых в отношении А имеется кортеж, атрибут
Глава 1.2. Реляционная модель базы данных
27
a
t
которого имеет значение v,, атрибут а
2
имеет значение v
2
, • ••,
атрибут а„ имеет значение v
n
. До сути, при выполнении операции
проекции определяется "вертикальная" вырезка отношения-
операнда с удалением возникающих кортежей-дубликатов.
Операция соединения, называемая иногда соединением по ус-
ловию, требует наличия двух операндов - соединяемых отноше-
ний и третьего операнда - простого условия. Пусть соединяются
отношения А и В. Как и в случае операции выборки, условие со-
единения С имеет вид либо (a comp-op b), либо (а сотр-ор const),
где а и b - имена атрибутов отношений А и В, const - литерально
заданная константа, а сотр-ор - допустимая в данном контексте
операция сравнения. Тогда по определению результатом опера-
'нии соединения является отношение, получаемое путем выпол-
нения операции ограничения по условию С прямого произведе-
ния отношений А и В.
*]' Имеется важный частный случай соединения - естествен-
нее соединение. Операция соединения называется операцией
естественного соединения, если условие соединения имеет вид
(а = Ь), где а и b - атрибуты разных операндов соединения.
Этот случай важен потому, что он особо часто встречается на
практике и для него существуют эффективные алгоритмы реа-
лизации в СУБД. Операция естественного соединения приме-
няется к паре отношений А и В, обладающих общим атрибу-
том R. то есть атрибутом с одним и тем же именем и опреде-
ленным на одном и том же домене. Пусть ab обозначает объе-
динение заголовков отношений А и В. Тогда естественное со-
единение А и В - это спроектированный на ab результат со-
единения А и В. Операция естественного соединения не вклю-
чается прямо в состав набора операций реляционной алгебры,
но она имеет очень важное практическое значение.
Операция деления отношений нуждается в более подробном
объяснении, поскольку наиболее трудная для понимания. Пусть
заданы два отношения - А с заголовком {ai, а
2
,.... a,,, b
b
\h,...... Ь„,}
и В с заголовком {Ь
ь
Ьг, ..., b
m
}. Будем полагать, что атрибут Ь,
отношения А и атрибут Ь, отношения В обладают одним и тем же
именем и определены на одном и том же домене. Назовем мно-
жество атрибутов {aj} составным атрибутом а, множество атри-
бутов {bj} - составным атрибутом Ь. После этого будем говорить
о реляционном делении бинарного отношения А(а,Ь) на унарное
отношение В(Ь).
Результатом деления А на В является унарное отношение
С(а), состоящее из таких кортежей v, что в отношении А имеются