
- •Введение
- •Моделирование данных
- •Модели концептуальной схемы
- •Основные понятия
- •Структура данных
- •Этапы концептуального моделирования
- •Диаграмма сущность-связь
- •IDEF
- •IDEF1 и IDEF1X
- •Диаграммы классов языка UML
- •Классы, атрибуты, операции
- •Категории связей
- •Связь-зависимость
- •Связи-обобщения и механизм наследования классов в UML
- •Связи-ассоциации: роли, кратность, агрегация
- •Лабораторная работа №1
- •Модели логической схемы
- •Основные понятия
- •Этапы логического моделирования
- •Реляционная модель
- •Реляционные языки
- •Реляционная алгебра
- •Выборка (или ограничение) Qпредикат(R)
- •Проекция Патр.1,...,атр.n(R)
- •Декартово произведение RxS
- •Объединение R U S
- •Разность R-S
- •Деление
- •Операции соединения
- •Teтa-соединение (Θ-join)
- •Естественное соединение
- •Внешнее соединение
- •Полусоединение
- •Лабораторная работа №2
- •Реляционные ключи
- •Реляционная целостность
- •Нормализация, функциональные и многозначные зависимости
- •Лабораторная работа №3
- •Литература

объединению. Отметим, что в некоторых случаях для получения двух совместимых по объединению отношений может быть использована операция проекции.
Пересечение R Ç S
Операция пересечения определяет отношение, которое содержит кортежи, присутствующие как в отношении R, так и в отношении S. Отношения R и S должны быть совместны по объединению.
Пересечение можно сформулировать и на основе оператора разности множеств:
R Ç S = R-(R-S)
A B
a1
Разность R-S
Разность двух отношений R и S состоит из кортежей, которые имеются в отношении R, но отсутствуют в отношении S. Причем отношения R и S должны быть совместимы по объединению.
Деление
Оператор деления может быть полезен в случае запросов особого типа, которые довольно часто встречаются в приложениях баз данных. Предположим, что отношение R определено на множестве атрибутов А, а отношение S
— на множестве атрибутов В, причем В Í А (т.е. В является подмножеством А). Пусть С=А-В, т.е. С является множеством атрибутов отношения R, которые не являются атрибутами отношения S. Тогда определение оператора деления будет выглядеть следующим образом.
R ÷ S Результатом оператора деления является набор кортежей отношения R, определенных на множестве атрибутов С, которые соответствуют комбинации всех кортежей отношения S.
Этот оператор можно сформулировать и на основе других основных операторов:
Т1 = ПС (R)
Т2 = ПС ((S´Т1)-R) Т = Т1 - Т2
Если возьмем результат из выше приведенного примера декартового произведения и поделим на S, то получим R.
Операции соединения
Как правило, пользователей интересует лишь некоторая часть всех ком-
- 23 -
бинаций кортежей декартового произведения, которая удовлетворяет заданному условию. Поэтому вместо декартового произведения обычно используется одна из самых важных операций реляционной алгебры — операция соединения. В результате ее выполнения на базе двух исходных отношений создается некоторое новое отношение. Операция соединения является производной от операции декартового произведения, так как она эквивалентна операции выборки из декартового произведения двух операндов-отношений тех кортежей, которые удовлетворяют условию, указанному в предикате соединения в качестве формулы выборки.
Ниже перечислены различные типы операций соединения, которые несколько отличаются друг от друга и могут быть в той или иной степени полезны.
●Тета-соединение (Θ-join).
●Соединение по эквивалентности (equi-join), которое является частным видом тета-соединения.
●Естественное соединение (natural join).
●Внешнее соединение (outer join).
●Полусоединение (semi-join).
Teтa-соединение (Θ-join)
Операция тета-соединения определяет отношение, которое содержит кортежи из декартового произведения отношений R и S, удовлетворяющие предикату F. Предикат F имеет вид R.aiΘS.bi, где вместо Θ может быть указан один из операторов сравнения (<, <=, >, >=, = или ~=).
Обозначение тета-соединения можно переписать на основе базовых операций выборки и декартового произведения так, как показано ниже.
R F S = QF(RxS)
Степенью тета-соединения называется сумма степеней операндов-отно- шений R и S. Если предикат F содержит только оператор равенства (=), то соединение называется соединением по эквивалентности (equi-join).
R R.B>S.B S=
R.A |
R.B |
S.B |
S.C |
|
|
|
|
a |
1 |
1 |
aa |
|
|
|
|
a |
1 |
2 |
bb |
|
|
|
|
b |
2 |
1 |
aa |
|
|
|
|
b |
2 |
2 |
bb |
|
|
|
|
c |
3 |
1 |
aa |
|
|
|
|
c |
3 |
2 |
aa |
|
|
|
|
R.A |
R.B |
S.B |
S.C |
|
|
|
|
a |
1 |
2 |
bb |
|
|
|
|
b |
2 |
1 |
aa |
|
|
|
|
c |
3 |
1 |
aa |
|
|
|
|
c |
3 |
2 |
aa |
|
|
|
|
- 24 -
Естественное соединение
Естественным соединением называется соединение по эквивалентности двух отношений R и S, выполненное по всем общим атрибутам х, из результатов которого исключается по одному экземпляру каждого общего атрибута.
Степенью естественного соединения называется сумма степеней опе- рандов-отношений R и S минус количество атрибутов х.
R S=
R.A |
R.B |
S.B |
S.C |
|
|
|
|
a |
1 |
1 |
aa |
|
|
|
|
a |
1 |
2 |
bb |
|
|
|
|
b |
2 |
1 |
aa |
|
|
|
|
b |
2 |
2 |
bb |
|
|
|
|
c |
3 |
1 |
aa |
|
|
|
|
c |
3 |
2 |
aa |
|
|
|
|
Внешнее соединение
R.A |
R.B |
S.C |
|
|
|
a |
1 |
aa |
|
|
|
b |
2 |
bb |
|
|
|
Левым внешним соединением называется соединение, при котором кортежи отношения R, не имеющие совпадающих значений в общих столбцах отношения S, также включаются в результирующее отношение.
Для обозначения отсутствующих значений во втором отношении используется определитель NULL. Преимуществом внешнего соединения является то, что при таком соединении сохраняется исходная информация, т.е. внешнее соединение сохраняет кортежи, которые были бы утрачены при использовании других типов соединения.
R É S=
R.A |
R.B |
S.B |
S.C |
|
|
|
|
a |
1 |
1 |
aa |
|
|
|
|
a |
1 |
2 |
bb |
|
|
|
|
b |
2 |
1 |
aa |
|
|
|
|
b |
2 |
2 |
bb |
|
|
|
|
c |
3 |
1 |
aa |
|
|
|
|
c |
3 |
2 |
Aa |
|
|
|
|
c |
3 |
null |
null |
|
|
|
|
R.A |
R.B |
S.B |
S.C |
|
|
|
|
a |
1 |
1 |
aa |
|
|
|
|
b |
2 |
2 |
bb |
|
|
|
|
c |
3 |
null |
null |
|
|
|
|
Существует также правое внешнее соединение, называемое так потому, что в результирующем отношении содержатся все кортежи правого отношения. Кроме того, существует и полное внешнее соединение, в результирую-
- 25 -