Основы реляционной алгебры
Фактически речь идет о том, что вместе с реляционной моделью была предложена реляционная алгебра. Под реляционной алгеброй понимают процедурный язык обработки реляционных таблиц. То есть операции реляционной алгебры манипулируют реляционными таблицами. Такая алгебра состоит из 9 операций:
1. Объединение. Позволяет комбинировать данные из двух таблиц, которые должны быть объединительно совместимыми – имена объединяемых колонок не обязательно должны быть одинаковыми, а вот типы данных, включая размер, если это строковое поле данных должны совпадать, иначе они в одну колонку не поместятся. В результате объединения двух таблиц получается третья таблица, в которой каждая строка появляется только один раз – дубли уничтожаются.
2. Пересечение. Позволяет определить строки, общие для двух объединительно совместимых таблиц. Результат такой операции – реляционная таблица, состоящая из всех строк, встречающихся в обеих исходных.
3. Разность. Позволяет определить е строки, которые есть в одной таблице, но отсутствуют в другой. Действие происходит над множеством колонок. Достаточно сложная реализация. Таблицы – объединительно совместимые.
4. Произведение. Создает декартовое произведение двух реляционных таблиц. Число строк в такой таблице равно произведению сводных строк число столбцов равно сумме столбцов. (Например, 2*2 и 3*3 = 6*5) Необязательно одного типа.
5. Выборка. Для создания реляционной таблицы из другой реляционной таблицы путем отбора только тех строк, которые удовлетворяют некоторому условию, т.е. выборка из общего числа строк одной таблицы выбирает некоторое число строк, удовлетворяющих условию Например, только тех, которые начинаются с определенных букв. Условие может быть разной сложности – операции «И» и т.д.
6. Проекция. Условно говоря, получение результирующей таблицы, из которой некоторые колонки исключены. Некоторые колонки убираются. Обычно особых условий здесь не бывает. Просто из общего числа колонок делают таблицу с меньшим числом колонок.
7. Соединение. Операция позволяет связать главную таблицу с подчиненной таблицей. Тут есть несколько разновидностей: естественное соединение, когда знак = ставится, то есть выбирается из главной таблицы родитель, из подчиненной – его дети. Если есть родители, у которых нет детей, такие родители не берутся. Есть дети – родителей нет – аналогично. Берутся записи полноценных родителей с полноценными детьми. Существует также ? –соединение, где, как правило, используются неравенство (<,>,? , ?, ?). Фактически, первый(естественное соединение) случай есть ?-соединение, основанное на знаке =. Существует несколько видов так называемых внешних соединений. Что касается внешнего соединения, то фактически считается, что из исходной таблицы каждая строка или каждый кортеж будет представлен хотя бы один раз в результирующей таблице. Это чуть «сильней», чем естественное соединение (“=”) – позволяет включать и «детей без родителей» или «холостяковые» записи в результирующую таблицу.
8. Деление. Создает новую таблицу, путем выбора строк одной таблицы, соответствующей каждой строке другой таблицы. Пусть, например, есть таблица заказов на товары и таблица продавцов этих товаров. Разделить одну таблицу на вторую значит создать таблицу, в которой было бы указано, какие товары продан, каким продавцом проданы. Деление таблицы товаров на таблицу продавцов – пример операции деления.
9. Присвоение. Дать имя таблице.