Академический Документы
Профессиональный Документы
Культура Документы
1. Реляционная алгебра
Деление Соединение
а а
а в
а с а х
в в х
с а х с у
у
Операции могут выполняться над одним отношением или над двумя отношениями.
При выполнении бинарной операции отношения должны быть совместимыми по
структуре. Это означает совместимость имен атрибутов и типов соответствующих
доменов.
1. Объединение двух совместимых отношений R1 и R2 одинаковой размерности
является отношение К, содержащее все элементы исходных отношений (с
исключением повторений)
Пример 1. Пусть отношение R1 множество поставщиков из Лондона, а отношения
R2 – множество поставщиков, которые поставляют деталь Р1. Тогда отношение R (R1
UNION R2) означает поставщиков, находящихся в Лондоне, или поставщиков,
поставляющих деталь Р1, либо тех и других.
R1
П# Имя Статус Город_П
S1 Сергей 20 Москва
S4 Николай 20 Москва
R2
П# Имя Статус Город_П
S1 Сергей 20 Москва
S2 Иван 10 Краснодар
S5 Андрей 30 Минск
R (R1 UNION R2)
П# Имя Статус Город_П
S1 Сергей 20 Москва
S2 Иван 10 Краснодар
S4 Николай 20 Москва
S1 P4
S1 P5
S1 P6
S2 P1
S2 P2
S3 P2
S4 P2
S4 P4
S4 P5
S
П# Имя Статус Город_П
S1 Сергей 20 Москва
S2 Иван 10 Краснодар
S3 Борис 30 Краснодар
S4 Николай 20 Москва
S5 Андрей 30 Минск
P
Д# Название Тип Вес Город_Д
P1 гайка каленый 12 Москва
P2 болт мягкий 17 Краснодар
P3 винт твердый 17 Ростов
P4 винт каленый 14 Москва
P5 палец твердый 12 Краснодар
P6 шпилька каленый 19 Москва
Эквисоединение.
(S TIMES P) WHERE Город_П > Город_Д
П# Имя Статус Город_П Д# Название Тип Вес Город_Д
S2 Иван 10 Краснодар P1 гайка каленый 12 Москва
S2 Иван 10 Краснодар P4 винт каленый 14 Москва
S2 Иван 10 Краснодар P6 шпилька каленый 19 Москва
S1 Борис 30 Краснодар P1 гайка каленый 12 Москва
S1 Борис 30 Краснодар P4 винт каленый 14 Москва
S1 Борис 30 Краснодар P6 шпилька каленый 19 Москва
Замечание.
1. Пользуясь операцией расширения, можно выполнить переименование атрибута.
Для этого нужно в выражении указать имя атрибута, в конструкции AS
определить новое имя этого атрибута, затем выполнить проекцию полученного
отношения на множестве атрибутов, исключая старый атрибут. Таким образом,
запись (EXTEND S ADD Город_П AS Город) [П#, Имя, Статус, Город]
эквивалента конструкции S RENAME Город_П AS Город.
2. Подобно тому, как это сделано для операции переименования, Дейт определил
операцию множественного расширения, которая позволяет в одной
синтаксической конструкции вычислять несколько новых атрибутов.
<выражение_цель>:= <выражение_источник>,
где оба выражения задают совместимые (точнее, эквивалентные) по структуре
отношения. Типичный случай выражения: в левой части – имя отношения, а в
правой – некоторое выражение реляционной алгебры. Выполнение операции
присвоения сводится к замене предыдущего значения отношения на новое .
С помощью операции присвоения можно не только полностью заменить все
значения отношения_цельи, но и добавить или удалить кортежи.
Пример. В отношении Ы дописывается один кортеж:
S:=S UNION {{<П#:’S6’>, <Имя: 'Борис'>, <Статус:’50’>, <Город_П:'Мадрид'>}}
DRLETE <выражение_цель>,
где <выражение_цель> представляет собой реляционное выражение, описывающее
удаляемые кортежи.
Пример. DELETE S WHERE Статус<20
<выражение1> Q <выражени2>,
где оба выражения задают совместимые по структуре отношения, а Q – один из
следующих операторов сравнения: = (равно), ≠ (не равно), ≤ (собственное
подмножество), < (подмножество), ≥ (надмножество), > (собственное
надмножество).
Пример. S [Город_П] = P [Город_Д] сравнивает совпадают ли города поставщиков
и города хранения деталей.