![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Операции реляционной алгебры определены на множестве отношений и являются замкнутыми относительно этого множества (образуют алгебру).
Набор основных алгебраических операций состоит из восьми операций, которые делятся на два класса - теоретико-множественные операции и специальные реляционные операции, дополненные некоторыми специальными операциями, специфичными для баз данных.
В состав теоретико-множественных операций входят традиционные операции над множествами:
§ объединение;
§ пересечение;
§ разность;
§ декартово произведение.
Специальные реляционные операции включают:
§ выборку;
§ проекцию;
§ естественное соединение;
§ деление.
Операции объединения, пересечения и разности применяются к отношениям совместимым по типу, или другими словами к отношениям с эквивалентными схемами.
Отношение R Отношение S
ID_NUM | NAME | CITY | AGE | ID_NUM | NAME | CITY | AGE | |
Иванов | Москва | Иванов | Москва | |||||
Петров | Нижний Новгород | Галкин | Иваново | |||||
Сидоров | Рязань |
Объединением двух совместимых по типу отношений R и S(R È S) называется отношение с тем же заголовком, как в отношениях R и S, и с телом, состоящим из множества кортежей t, принадлежащих R или S или обоим отношениям.
R È S
ID_NUM | NAME | CITY | AGE |
Иванов | Москва | ||
Петров | Нижний Новгород | ||
Сидоров | Рязань | ||
Галкин | Иваново |
При выполнении операции объединения двух отношений создается отношение, включающее кортежи, входящие хотя бы в одно из отношений-операндов. Обратите внимание, что повторяющиеся кортежи удаляются по определению отношения.
Пересечением двух совместимых по типу отношений R и S(R Ç S) называется отношение с тем же заголовком, как в отношениях R и S, и с телом, состоящим из множества кортежей t, принадлежащих одновременно обоим отношениямR и S.
R Ç S
ID_NUM | NAME | CITY | AGE |
Иванов | Москва |
Разностью двух совместимых по типу отношений R и S(R - S) называется отношение с тем же заголовком, как в отношениях R и S, и с телом, состоящим из множества кортежей t, принадлежащих отношениюR и не принадлежащих отношениюS.
R - S
ID_NUM | NAME | CITY | AGE |
Петров | Нижний Новгород | ||
Сидоров | Рязань |
Декартово произведение двух отношений R и S(R ´ S), определяется как отношение с заголовком, представляющим собой сцепление двух заголовков исходных отношений R и S, и телом, состоящим из множества кортежей t,таких, что первым является любой кортеж отношенияR, а вторым – любой кортеж, принадлежащий отношениюS.
Пусть отношение R – содержит имена всех текущих поставщиков, а отношениеB – номера всех текущих деталей. Тогда R ´ S – это все текущие пары поставщик – деталь и деталь – поставщик.
Отношение R Отношение S
S1 | P1 | |
S2 | P2 | |
S3 | P3 | |
P4 |
R ´ S
S1 | P1 | S2 | P1 | S3 | P1 | ||
S1 | P2 | S2 | P2 | S3 | P2 | ||
S1 | P3 | S2 | P3 | S3 | P3 | ||
S1 | P4 | S2 | P4 | S3 | P4 |
На практике явное использование операции декартово произведение требуется только для очень сложных запросов. Эта операция включена в реляционную алгебру по концептуальным соображениям: (декартово произведение требуется как промежуточный шаг при определении операции θ - соединения, которая используется довольно часто).
Выборка — это сокращенное название θ - выборки, где θ означает любой скалярный оператор сравнения ().
θ - выборкой, из отношения RпоатрибутамХ и Y( называется отношение, имеющее тот же заголовок, что и отношение R,и тело, содержащее множества кортежей tотношенияR, для которых проверка условия Х θ Y дает значение истина. Атрибуты XиY должны быть определены на одном и том же домене, а оператор должен иметь смысл для этого домена.
Операция выборка (или операция ограничение отношения) — создает новое отношение, содержащее только те строки отношения – операнда, которые удовлетворяют некоторому условию ограничения.
Отношение R.
ID_NUM | NAME | CITY | AGE |
Иванов | Москва | ||
Петров | Нижний Новгород | ||
Сидоров | Рязань | ||
Галкин | Москва |
ID_NUM | NAME | CITY | AGE |
Иванов | Москва | ||
Галкин | Москва |
ID_NUM | NAME | CITY | AGE |
Галкин | Москва |
Проекцией отношения R по атрибутам Х, Y,…,Z ( [X, Y,…Z](R)), где каждый из атрибутов принадлежит отношению R, называется отношение с заголовком {Х, Y,…,Z} и с телом, содержащим множество всех кортежей вида <Х:x, Y:y,..., Z:z> таких, что в отношении R имеется кортеж, атрибут Х которого имеет значение x, атрибут Y имеет значение y,..., атрибут Z имеет значение z. Тем самым, при выполнении операции проекции получается «вертикальное» подмножество данного отношения, то есть подмножество, получаемое исключением всех атрибутов, отношения-операнда с естественным уничтожением потенциально возникающих кортежей-дубликатов.
[NAME, CITY] (R)
[CITY] (R)
NAME | CITY | CITY | |
Иванов | Москва | Москва | |
Петров | Нижний Новгород | Нижний Новгород | |
Сидоров | Рязань | Рязань | |
Галкин | Москва |
Соединение отношений — создает новое отношение, каждый кортеж которого является результатом сцепления кортежей операндов (исходных отношений). Соединение имеет две разновидности: естественное соединение и соединение по условию (θ-соединение).
Пусть X={X1, X2, …, Xm}, Y={Y1, Y2, …, Yn}, Z={Z1, Z2, …, Zk}.
Естественным соединением отношений R(X,Y) и S(Y,Z) называется отношение с заголовком {Х, Y, Z} и с телом, содержащим множество всех кортежей вида <Х:x, Y:y, Z:z> таких, для которых в отношении R значение атрибута Х равно x, а значение атрибута Y равно y, и в отношении S значение атрибута Y равно y, а атрибута Z равно z. При естественном соединении производится сцепление строк операндов соединения по общим атрибутам при условии равенства общих атрибутов.
Замечание 1. Соединения не всегда выполняются по внешнему ключу и соответствующему первичному ключу, хотя такие соединения очень распространены и являются важным частным случаем.
Замечание 2. Если отношения R и S не имеют общих атрибутов, то выражение B эквивалентно R ´S.
Отношение R (поставщики) Отношение S (детали)
ID_NUM | NAME | CITY | STATUS | IP_NUM | NAMEN | CITY | WEIGHT | |
Иванов | Москва | Р123 | Болт | Москва | ||||
Петров | Нижний Новгород | Р896 | Гайка | Нижний Новгород | ||||
Сидоров | Рязань | Р432 | Шарнир | Москва |
ID_NUM | NAME | STATUS | CITY | IP_NUM | NAMEN | CITY | WEIGHT |
Иванов | Москва | Р123 | Болт | Москва | |||
Иванов | Москва | Р432 | Шарнир | Москва | |||
Петров | Нижний Новгород | Р896 | Гайка | Нижний Новгород |
θ–соединение Пусть отношения R и S не имеют общих имен атрибутов, и θ определяется так же, как в операции выборки. θ - соединением отношения R по атрибуту X с отношением R по атрибуту Y называется результат вычисления выражения
θ-соединение — это отношение с тем же заголовком, что и при декартовом произведении отношений R и S, и с телом, содержащим множество кортежей t Î R´S, таких, что вычисление условия X θ Y дает значение истина для данного кортежа. Атрибуты X и Y должны быть определены на одном и том же домене, а оператор должен иметь смысл для этого домена.
Отношение R (поставщики) Отношение S (поставки)
ID_NUM | NAME | CITY | STATUS | ID_NUM | IP_NUM | QTY | |
Иванов | Москва | Р123 | |||||
Петров | Нижний Новгород | Р896 | |||||
Сидоров | Рязань | Р432 | |||||
Р432 | |||||||
Р123 |
R.ID_NUM | NAME | CITY | STATUS | S.ID_NUM | IP_NUM | QTY |
Иванов | Москва | Р123 | ||||
Петров | Нижний Новгород | Р432 | ||||
Сидоров | Рязань | Р432 |
Операция деления
У операции реляционного деления два операнда - бинарное и унарное отношения. Пусть X={X1, X2, …, Xm}, Y={Y1, Y2, …, Yn}.
Делением отношений R (Х,Y) на S(Y) (R/S) называется отношение с заголовком {X} и телом, содержащим множество всех кортежей {X:x}, таких, что существует кортеж {X:x, Y:y}, который принадлежит отношению R для всех кортежей {Y:y}, принадлежащих отношению S.
Деление отношений — создает новое отношение, содержащее атрибуты первого отношения, отсутствующие во втором отношении и кортежи, которые при сцеплении с кортежами второго отношения, будут принадлежать первому отношению. Для выполнения этой операции второе отношения должно содержать лишь атрибуты, совпадающие с атрибутами первого.
Отношение А Отношение В Отношение В1 Отношение В2
S# | P# | P# | P# | P# | |||
S1 | P1 | P1 | P2 | P1 | |||
S1 | P2 | P3 | P2 | ||||
S1 | P3 | P3 | |||||
S1 | P4 | ||||||
S2 | P1 | A/B | A/В1 | A/B2 | |||
S2 | P3 | S1 | S1 | S1 | |||
S3 | P2 | S2 | S3 | ||||
S3 | P3 |
Замечание: Операция деления полезна тогда, когда запрос содержит слово «все».
Кроме рассмотренных выше операций в состав алгебры включаются:
· операция присваивания, позволяющая сохранить в БД результаты вычисления алгебраических выражений (A:= B),
· операция переименования атрибутов, дающая возможность корректно сформировать заголовок (схему) результирующего отношения.
Дата публикования: 2015-09-17; Прочитано: 422 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!