В зависимости от характера математического аппарата, лежащего в основе языка, все языка манипулирования данными делятся на два класса:
1. Языки реляционной алгебры
2. Языки реляционного исчисления.
Реляционная алгебра - это процедурный язык обработки реляционных таблиц. То-есть используется пошаговое выполнение задачи.
В реляционном исчислении запрос создается путем определения результатов за один шаг. Реляционная алгебра и реляционная исчисления эквивалентны – любой запрос, который можно реализовать с помощью реляционной алгебры можно реализовать с помощью реляционного исчисления и наоборот.
Реляционная алгебра – набор объединений и операций над ними.
Реляционная алгебра состоит из девяти операций:
1. Объединение
2. Пересечение
3. Разность
4. Декартовое произведение
5. Выборка
6. Проекция
7. Соединения
8. Деление
9. Присвоение
При выполнении операций объединение, пересечения и разности, участвующие в них таблицы должны удовлетворять свойству совместимости.
Две таблицы совместимы, если имеют одинаковое количество столбцов и значение в каждой паре атрибутов из каждой таблицы, принадлежат одному и тому же домену.
1. Объединения двух совместимых таблиц R1 и R2 называется таблица R состоящая из всех строк принадлежащих хотя бы одной из таблиц R1 и R2.
2. Операция пересечения таблиц R1 и R2 называется таблица R, состоящая из строк, являющихся общими для таблицы R1 и R2.
3. Разностью таблицы R1 и R2 называется таблица R, состоящая из строк находящихся в таблице R1 и не находящихся в таблице R2.
R1 (ФИО, школа, паспорт) – первый раз
R2(––––) – второй раз
R3 (––––) - поступили
Найти список абитуриентов, которые поступали два раза и не поступили.
|
R=(R1 R2)-R3
Список абитуриентов, которые поступили с первого раза.
R3-(R1 R2)
Те, кто поступали один раз, но не поступили.
((R1-R2) (R2-R1))-R3
4. Под декартовым произведением двух таблиц R1 и R2, не обязательно совместимых, называется такая таблица R состоящая из строк, каждая из которых является конкатенаций по двух строк из R1 и R2.
Таблица будет состоять из всех столбцов обоих таблиц и всеми возможными комбинациями пар строк.
5. Операция выборки создает таблицу, которая состоит из всех строк, удовлетворяющих определенному условию.
6. Проекция – создает новую таблицу путем исключения столбцов из существующей таблицы.
7. Соединения состоит из декартового произведения и выборки по заданному условию (в общем случае).
У операции соединения есть несколько версий:
a. Естественное соединение – соединяет столбцы, имеющие общие значения – native join.
…
b. Внешнее соединение – расширяет обычное соединение, гарантируя, что каждая строка из исходных таблиц будет представлена в результирующей таблице хотя бы один раз.
…
c. При левом соединения, гарантированно поступают все строки из первой таблицы.
d. При правом соединении, гарантированно поступают все строки из второй таблицы.
…
8. Деление – создает новую таблицу путем выбора строк одной таблицы, соответствующих каждой строке другой таблицы.
Пусть A, B, и C реляционные таблицы. Нужно разделить A на B и получить C:
a. Столбцы B должны быть подмножеством столбцов A.
b. Столбцами C будут те столбцы B, которые не входят в А.
c. Строка помещается в таблицу C, если она входит в A с каждой строкой B.
Пример:
…
…
Пример:
…
…
…
…
…
18.10.12