Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дехтярь М.И. Основы дискретной математики Лекци...docx
Скачиваний:
11
Добавлен:
01.03.2025
Размер:
474 Кб
Скачать
☆

Реляционная алгебра

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

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

Теоретико-множественные операции

Первую группу реляционных операторов представляют теоретико-множественные операции:

  • Объединение

  • Пересечение

  • Вычитание

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

В лекции 1 мы рассматривали все эти операции для множеств. Особенности их использования в реляционной алгебре состоят в том, что объединение, пересечение и вычитание применяются к отношениям , имеющим одно и то же множество одинаково упорядоченных атрибутов. Пусть имеются два таких отношения R(A1, …, An) и S(A1, …, An). Тогда результат их объединенния - это отношение P1= R S, содержащее все кортежи отношения R и все кортежи отношения S (кортежи, содержащиеся и в R, и в S, входят в P в одном экземпляре). Это отношение представляется формулой P1(x1, … , xn)= R(x1, … , xn) S(x1, … , xn). Результат пересечения - это отношение P2 = R \cap S, которое содержит кортежи, входящие и в R и в S. Оно представляется формулой P2(x1, … , xn)= R(x1, … , xn) S(x1, … , xn). Результат разности P3= R - S включает кортежи из R, не входящие в S. Это отношение представляется формулой P3(x1, … , xn)= R(x1, … , xn) ¬ S(x1, … , xn). Декартово произведение P4= R × S отношений R(A1, …, An) и S(B1, …, Bm) содержит кортежи, которые составлены из кортежей отношения R, продолженных кортежами отношения S. Список атрибутов P4 включает все атрибуты отношений R и S: (A1, …, An, B1, …, Bm). Если у R и S имеются общие атрибуты, то они переименовываются. Обычно перед именем атрибута общего атрибута Ai=Bj помещается через точку имя его отношения, R.Ai и S.Bj. Результат декартового произведения задается формулой P4(x1, …, xn, y1, … , ym) = R(x1, … , xn) S(y1, … , ym) (мы предполагаем, что все переменные xi и yj разные)

Специальные реляционные операторы

К специальным реляционным операторам относятся:

  • Выбор

  • Проекция

  • Соединение

  • Деление

Оператор выбора, примененный к отношению R(A1, …, An), возвращает новое отношение P с тем же набором атрибутов, кортежи которого составляют подмножество кортежей отношения R, удовлетворяющих некоторому условию C. Это записывается как P = σC(R). Условие C представляет из себя булевскую формулу, которая построена из элементарных условий, включающих имена атрибутов R и константы. Примерами элементарных условий являются равенства вида Ai = Aj, Ai=a и неравенства вида Ai Aj, Ai a, Ai a. Тогда отношение P задается формулой P(x1, …, xn) = R(x1, …, xn) C', где формула C' получена из условия C заменой имен атрибутов Ai на имена соответствующих переменных xi.

Например, оператору выбора σоклад> 6000(Сотрудники), выбирающему сотрудников с окладом свыше 6000, соответствует формула Φ(n, f, o, d, z) = Сотрудники(n, f, o, d, z) (z > 6000), задающая отношение PΦ:

Номер

ФИО

Отдел

Должность

Оклад

1

Иванов А.А.

торговый

менеджер

7000

5

Горев С.В.

плановый

зав.отделом

10000

Оператор проекции, примененный к отношению R(A1, …, An), возвращает все кортежи этого отношения, из которых удалены значения атрибутов, не перечисленных в списке параметров этой операции. Отношение P, являющееся проекцией R на подмножество атрибутов , записывается как P = X(R). Пусть - это атрибуты отношения, не попавшие в X. Тогда проекция задается формулой .

Например, оператору проекции ФИО, оклад(Сотрудники), составляющему список окладов сотрудников, соответствует формула ( f, z) = n o d Сотрудники(n, f, o, d, z), задающая двуместное отношение P :

ФИО

Оклад

Иванов А.А.

7000

Сидоров Н.П.

5000

Сидорова М.И.

6000

Ольгина Н.А.

5500

Горев С.В.

10000

Оператор соединения применяется к двум отношениям и позволяет соединять попарно их кортежи, удовлетворяющие определенным условиям. В реляционной алгебре он представлен в нескольких формах. Пусть R и S - это отношения со схемами R(A1, …, An, B1, …, Bm) и S(B1, …, Bm, C1, …, Ck) с общими атрибутами B1, …, Bm. Тогда естественное соединение отношений R и S содержит кортежи, которые составлены из кортежей отношения R, продолженных кортежами отношения S. При этом соединяются лишь пары кортежей r R и s S, имеющих одинаковые значения всех общих атрибутов B1, …, Bm. Так как значения общих атрибутов совпадают они входят в схему P по одному разу, т.е. P имеет схему P(A1, …, An, B1, …, Bm, C1, …, Ck). Нетрудно понять, что естественному соединению соответствует формула P(x1, …, y1, …, ym, z1, …, zk)= R(x1, …, y1, …, ym) S(y1, …, ym, z1, …, zk).

Пусть в дополнение к отношениям Сотрудники и Комнаты в базу данных входит отношение Оборудование:

Оборудование

Этаж

НомерКомнаты

Название

2

17

компьютер

2

17

принтер

3

7

ксерокс

3

25

принтер

Тогда отношение определяет доступность тех или иных аппаратов сотрудникам в их комнатах. Оно имеет схему Доступ (НомерСотрудника, Этаж, НомерКомнаты, Название) и представлено в следующей таблице:

Доступ

НомерСотрудника

Этаж

НомерКомнаты

Название

3

2

17

компьютер

3

2

17

принтер

1

2

17

компьютер

1

2

17

принтер

5

3

7

ксерокс

Здесь соединение производится по двум общим атрибута м Этаж и НомерКомнаты. При этом в соединение не попали сведения о сотрудниках с номерами 2 и 7, в комнатах которых нет оборудования, и о принтере в комнате 25, так как в ней нет сотрудников. Соответствующая формула имеет вид: Доступ(n, e, k, o) = Комнаты(n, e, k) Оборудование(e, k, o).

Другой вариант оператора соединения - тета-соединение отношений R и S содержит кортежи, которые составлены из кортежей отношения R, продолженных кортежами отношенияS, удовлетворяющими условию C. Синтаксис этого условия такой же, как и у оператора выбора. Так как в C могут входить не только равенства атрибутов, то атрибуты R и S с одинаковыми именами входят в схему P1 дважды (обычно, как и в случае декартова произведения, перед ними помещается через точку имя отношения). Оператор тета-соединения выражается через операторы выбора и декартового произведения: . Ему соответствует формула P1(x1,…, xn, y1, …, ym, y1', …, ym', z1,…, zk)= R(x1,…, xn, y1, …, ym) S(y1', …, ym', z1,…, zk) C' , в которой C' - это формула C, где вместо имен атрибутов подставлены имена соответствующих переменных.

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

Результат его вычисления представлен в следующей таблице:

ФИО

Название

Иванов А.А.

компьютер

Иванов А.А.

принтер

Сидорова М.И

компьютер

Сидорова М.И

принтер

Горев С.В.

ксерокс

Ее строки соответствуют парам значений переменных f,c, на которых истинна формула F(f,c) = n o d z e k (Сотрудники(n,f,o,d,z) Комнаты(n, e, k) Оборудование( e, k, c)