Базы данных Операции реляционной алгебры
Язык SQL основан на операциях реляционной алгебры (РА). Операции РА применяются к отношениям и в результате применения операций РА получаются отношения (таблицы). Различают унарные и бинарные операции РА: унарные применяются к одному отношению (таблице), бинарные – к двум. Существует пять основных операций РА: селекция; проекция; декартово произведение; объединение; разность; и три вспомогательных операции РА, которые могут быть выражены через основные: пересечение; соединение; деление.
Унарные операции реляционной алгебры Проекция (project). Это унарная операция (выполняемая над одним отношением), служащая для выбора подмножества атрибутов из отношения R. Она уменьшает арность отношения и может уменьшить мощность отношения за счёт исключения одинаковых кортежей. Отношение R Проекция A,C (R) ABCAC abcac cadcd cbd
Унарные операции реляционной алгебры Селекция (select). Это унарная операция, результатом которой является подмножество кортежей исходного отношения, соответствующих условиям, которые накладываются на значения определённых атрибутов. Отношение RСелекция C=d (R) ABCABC abccad cadcbd cbd
Бинарные операции реляционной алгебры Бинарные операции РА: разносхемные – применяются к любым двум отношениям. односхемные – применяются к односхемным отношениям. Исходные отношения должны иметь одинаковое количество столбцов одинаковых (или сравнимых) типов. Сравнимыми считаются типы, относящиеся к одному и тому же семейству данных (в таблице полужирным шрифтом выделены базовые типы). Семейства типов данных Oracle: Числовые: DEC, DECIMAL, DOUBLE PRECISION, FLOAT, INT, INTEGER, NUMBER, NUMERIC, REAL, SMALLINT Символьные: CHAR, CHARACTER, LONG, LONG RAW RAW, ROWID, STRING, VARCHAR, VARCHAR2 Календарные: DATE
Разносхемная основная операция РА Декартово произведение (cartesian product). Это бинарная операция над разносхемными отношениями, соответствующая определению декартова произведения для РМД: в результате получается отношение, схема которого включает все атрибуты исходных отношений. Результирующее отношение содержит все возможные комбинации кортежей исходных отношений. Отношение R Отношение S Декартово произведение R S ABCDEABCDE 14gha14gha 25abc14abc 3625gha 25abc 36gha 36abc
Бинарные односхемные операции РА Объединение (union). Объединением двух односхемных отношений R и S называется отношение T = R U S, которое включает в себя все кортежи исходных отношений без повторов. Отношение R Отношение S Объединение R U S ABC ABC ABC abc gha abc cad abc cad chc hdd chc gha hdd
Бинарные односхемные операции РА Разность (except). Разностью односхемных отношений R и S называется множество кортежей R, не входящих в S. Отношение R Отношение S Разность R–S ABCABCABC abcghacad cadabcchc chchdd
Бинарные односхемные операции РА Пересечение (intersect). Пересечение двух односхемных отношений R и S есть подмножество кортежей, принадлежащих обоим отношениям. Это можно выразить через разность: R S = R – (R – S). Отношение R Отношение S Пересечение R–S ABCABCABC abcghaabc cadabccad chccad drtguv
Разносхемные операции РА: соединение Соединение (join). Эта операция определяет подмножество декартова произведения двух разносхемных отношений. Кортеж декартова произведения входит в результирующее отношение, если для атрибутов разных исходных отношений выполняется некоторое условие F. Соединение может быть выражено так: R S = F (R S) F Если условием является равенство значений двух атрибутов исходных отношений, такая операция называется эквисоединением. Естественным называется эквисоединение по одинаковым атрибутам исходных отношений. Отношение RОтношение SСоединение R S ABCADEABCDE abcghacadbc cadcbcchcbc chchddgbdha gbd
Операция деления Деление (division). Пусть отношение R содержит атрибуты {r1,r2,...,rk, rk+1,...,rn}, а отношение S – атрибуты {rk+1,...,rn}. Тогда результирующее отношение содержит атрибуты {r1,r2,...,rk}. Кортеж отношения R включается в результирующее отношение, если его декартово произведение с отношением S входит в R. Деление может быть выражено так: R / S = r1,…,rk (R) – r1,…,rk (( r1,…,rk (R) S) – R). Отношение RОтношение SЧастное R/S ABCDCDAB abcbcbab abghghcf cfgh cfcb avcb cvgh