
- •3. Детализация реляционной модели данных
- •3.1. Определение и элементы реляционной модели
- •3.2 Связывание таблиц
- •3.2.1 Назначение и основные виды связывания таблиц
- •3.2.2 Межтабличная связь вида 1:1
- •3.2.3 Межтабличные связи вида 1:м и вида м:1
- •Межтабличная связь вида м:м
- •3.3 Контроль целостности связей
- •3.4 Теоретические языки запросов
- •3.5 Основы реляционной алгебры
- •3.5.1 Общая характеристика реляционной алгебры
- •3.5.2 Базовые теоретико-множественные операции реляционной алгебры Кодда
- •3.5.3 Специальные реляционные операции реляционной алгебры Кодда
- •3.5.4 Дополнительные операции реляционной алгебры
- •3.5.5Основные правила записи выраженийреляционной алгебры
- •3.6. Основы реляционного исчисления
- •3.6.1 Сущность реляционного исчисления и его соотношение с реляционной алгеброй
- •3.6.2 Реляционное исчисление, основанное на кортежах
- •3.6.3 Реляционное исчисление, основанное на доменах
- •3.7 Структурированный язык запросовSql
- •3.7.1 Общая характеристика и основные операторы языкаSql
- •3.7.2 Оператор создания таблицы
- •3.7.3 Оператор изменения структуры таблиц
- •3.7.4 Оператор удаления таблицы
- •3.7.5 Оператор создания индекса
- •3.7.6 Оператор удаления индекса
- •3.7.7Оператор создания представления
- •3.7.8 Оператор удаления представления
- •3.7.9 Оператор выборки записей
- •3.7.10 Оператор изменения записей
- •3.7.11 Оператор вставки новых записей
- •3.7.12 Оператор удаления записей
- •3.7.13 Некоторые важные функции sql
- •3.7.14 Триггеры, ограничения, правила и хранимые процедуры
- •3.7.14.1 Определения
- •3.7.14.2 Создание триггеров
- •3.7.14.3 Создание хранимых процедур
- •3.7.14.4 Создание правил и ограничений
3.5.2 Базовые теоретико-множественные операции реляционной алгебры Кодда
Объединением двух совместимых отношений R1 и R2 одинаковой размерности (RlUNIONR2) является отношениеR, содержащее все элементыисходных отношений (с исключением повторений).
Пример 1. Объединение отношений.
Пусть отношением R1 будет множество поставщиков из Москвы, а отношение R2 — множество поставщиков, которые поставляют деталь Р1. Тогда отношение R обозначает поставщиков, находящихся в Москве, или поставщиков, выпускающих деталь Р1, либо тех и других.
R1
п# |
Имя |
Статус |
Город_П |
S1 |
Сергей |
20 |
Москва |
S4 |
Николай |
20 |
Москва |
R2
п# |
Имя |
Статус |
Город_П |
S1 |
Сергей |
20 |
Москва |
S2 |
Иван |
10 |
Киев |
R(R1 UNION R2)
п# |
Имя |
Статус |
Город_П |
S1 |
Сергей |
20 |
Москва |
S2 |
Иван |
10 |
Киев |
S4 |
Николай |
20 |
Москва |
Вычитание совместимых отношений R1 и R2 одинаковой размерности (RlMINUSR2) есть отношение, тело которого состоит из множества кортежей, принадлежащихR1, но не принадлежащих отношениюR2. Для тех же отношенийR1 иR2 из предыдущего примера отношениеRбудет представлять собой множество поставщиков, находящихся в Лондоне, но не выпускающих деталь Р1, т. е.R={(S4, Николай, 20, Москва)}.
Заметим, что результат операции вычитания зависит от порядка следования операндов, т. е. RlMINUSR2 иR2MINUSRl— не одно и то же.
Пересечение двух совместимых отношений R1 и R2 одинаковой размерности (RlINTERSECTR2) порождает отношениеRс телом, включающим в себя кортежи, одновременно принадлежащие обоим исходным отношениям. Для отношенийR1 иR2 результирующее отношениеRбудет означать всех производителей из Лондона, выпускающих деталь Р1, Тело отношенияRсостоит из единственного элемента (S1, Сергей, 20, Москва).
Произведение отношения R1 степени к1 и отношения R2 степени к2 (RlTIMESR2), которые не имеют одинаковых имен атрибутов, есть такое отношениеRстепени (к1+к2), заголовок которого представляет сцеплениезаголовков отношений R1 и R2, а тело — имеет кортежи, такие, что первые к1 элементов кортежей принадлежат множеству R1, а последние к2 элементов — множеству R2. При необходимости получить произведение двух отношений, имеющих одинаковые имена одного или нескольких атрибутов, применяется операция переименованияRENAME, рассматриваемая далее.
Пример 2. Произведение отношений.
Пусть отношение R1 представляет собой множество номеров всех текущих поставщиков {SI, S2, S3, S4, S5}, а отношение R2 — множество номеров всех текущих деталей {Р1, Р2, РЗ, Р4, Р5, Р6}. Результатом операции R1 TIMES R2 является множество всех пар типа «поставщик — деталь», т. е. {(S1.P1), (S1.P2), (S1,P3), (S1,P4), (S1,P5), (S1,P6), (S2,P1), -, (S5,P6)}.
Заметим, что в теории множеств результатом операции прямого произведения является множество, каждый элемент которого является парой элементов, первый из которых принадлежитR1, а второй — принадлежит R2. Поэтому кортежами декартова произведения бинарных отношений будут кортежи вида: ((а, б), (в, г)), где кортеж (а, б) принадлежит отношениюR1, а кортеж (в, г) — принадлежит отношениюR2. В реляционной алгебре применяется расширенный вариант прямого произведения, при котором элементы кортежей двух исходных отношений сливаются, что при записи кортежей результирующего отношения означает удаление лишних скобок, т. е. (а, б, в, г).