Реляционная алгебра
Вы здесь: > Каталог статей > Программирование > Базы данных > Реляционная алгебра
В заметке краткое описание реляционной алгебры.
Добавлена: 2008-02-08 Просмотров:325 | Рейтинг:0.00

Отношения

В реляционной алгебре в качестве операндов выступают отношения, а основными операциями, выполняемыми над отношениями, являются:

 
 

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

 

 

ОБЪЕДИНЕНИЕ (R U S) отношений R и S представляет собой множество кортежей, которые принадлежат R или S, либо им обоим. Операция объединения выполняется над двумя совместимыми отношениями.

 

ПЕРЕСЕЧЕНИЕ. Результат пересечения R и S содержит только те кортежи первого отношения R, которое есть во втором S.

   

РАЗНОСТЬ. Результат вычитания (R-S) включает только те кортежи первого отношения R, которых нет во втором S.

 

 

ДЕКАРТОВО ПРОИЗВЕДЕНИЕ (R x T). Здесь операнды-отношения R и T могут иметь разные схемы: Степень результирующего отношения (R x T) равна сумме степеней отношений операндов (R и T), а мощность — произведение их мощностей.

 

ДЕЛЕНИЕ (R ? T). Операция в некотором смысле обратна операции "декартово произведение". Отношение "делимое" (R) должно содержать подмножество атрибутов отношения "делитель" (T). Результирующее отношение (R ? T) содержит только те атрибуты делимого, которых нет в делителе. В него включают только те кортежи, декартово произведение которых с делителем содержатся в делимом.

 

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

 

СОЕДИНЕНИЕ. Операция соединения выполняется над двумя отношениями (R и S). В каждом отношении выделяется атрибут, по которому будет производиться соединение. В качестве атрибута для соединения выберем атрибут B. Результирующее отношение включает все атрибуты первого отношения (R) и второго отношения (S):

 

ВЫБОР. Операция выполняется над одним отношением (R). Результирующее отношение (OB=b(R)) содержит подмножества кортежей, выбранных по некоторому условию (B = b).

 

Реляционное исчисление

 

Реляционное исчисление базируется на теоретических основах исчисления предикатов. Предикатом Р(х1, х2, ..., хn) называется функция, принимающая значения "true" ("истина") или "false" ("ложь") от аргументов х1, х2, ..., хn, определенных в областях D1, D2, ..., Dn.

 

При построении высказываний используются логические связки, называемые соответственно конъюнкцией, дизъюнкцией, отрицанием, импликацией и эквивалентностью. Кроме того, применяются термы сравнения, имеющие вид x * X , где * — символ операции сравнения (=, =>, <=, <> Выражение х * X (f(x) > a) означает, что среди элементов множества X найдется, по крайней мере, один, при котором оказывается истинным неравенство, заключенное в скобки.

 

х * Х (f(x) > a) означает, что для всех элементов множества Х функция f(x) больше заданного значения а. Неравенство (f(x) > a) представляет собой предикат: "функция от х больше константы а". Предикат принимает значение "истина" ("1") или "ложь" ("0").

 

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

 

х Р(х) Р(b1) P(b2) ... P(bm); х P(x) P(b1) P(b2) ... P(bm); где {b1, b2, ..., bm} = X. В реляционной исчислении принято связывать с отношением R(A1, ..., An) некоторый предикат P(x1, x2, ..., xn), аргументы которых имеют одинаковые области определения, таким образом, что если Р(а1, ..., аn) = 1, то кортеж <a1, ..., an> принадлежит отношению R (ai Ai).

 

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

 

Пример построения отношения. Задано отношение R1(A1, A2) = {<5, 1>, <10, 4>, <7, 2>, <9, 8>} Поставим отношению R1 в соответствие предикат Р1:

 

R1(F1, A2) P1(x1, x2), где переменные х1 и х2 имеют области определения А1 и А2. Тогда предикат Р21) х2 Р11, х2) (х2 > 2) формирует новое отношение R2(A3), в которое войдут лишь те значения х1, для которых соответствующие значения х2 в отношении R1 оказались больше 2.

 

R2(A3) = {<10>, <9>} Предикат Р2 однозначно определяет отношение R2.

 

Оператор построения нового отношения: СОЗДАТЬ R(...): L — создать отношение R (с атрибутами), такое что L — некоторое высказывание относительно используемых отношений, значений атрибутов, их взаимозависимости.

 

Оператор принадлежности

 

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

 

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

 

В алгебраическом решении, напротив, указывается каким образом можно построить результат. Таким образом, по сравнению с реляционным исчислением реляционная алгебра обеспечивает большую процедурность. По своей выразительной силе реляционное исчисление и реляционная алгебра эквивалентны.

Рейтинг@Mail.ru Rambler's Top100