
- •2.3 Базы данных [5-7] тебеньков е.С.
- •1 .Проектирование базы данных с помощью нормализации
- •2. Операция «соединения» и ее свойства.
- •3. Разложение без потерь. Теорема. Примеры
- •4. Полностью соединимые отношения. Примеры
- •5. Операторы описания данных в sql
- •6. Операторы манипулирования данными в sql
- •7. Управление транзакциями
- •1. Запуск транзакции
- •2. Завершение транзакции
- •8. Технологии «клиент-сервер»
- •1 Вариант - файловый сервер.
- •2 Вариант – удаленный доступ.
- •3 Вариант – сервер Базы Данных.
- •4 Вариант – сервер приложений.
- •9. Оператор Select
- •10. Индексация. Достоинства и недостатки. Примеры
- •13. Архитектуры бд
- •1.1.2. Архитектуры бд
- •Локальная
- •Архитектура "файл-сервер"
- •Архитектура удаленных бд ("клиент-сервер")
- •1.1.3. Достоинства и недостатки различных архитектур приложений бд
- •14. Управление правами доступа в sql
- •15. Модель Чена
- •16. Примеры бинарных связей
- •17. Правила Джексона для перехода от модели Чена к реляционной модели
- •18. Реляционная модель данных. 12 правил Кодда.
- •12 Правил Кодда.
- •19. Ограничения целостности в реляционной модели данных и их поддержка в sql
- •20. Восстановление данных в бд
2. Операция «соединения» и ее свойства.
Реляционная алгебра.
Реляционная алгебра представляет собой основу доступа к реляционным данным. Основная цель алгебры – обеспечить запись выражений.
Реляционная алгебра, определенная Коддом состоит из 8 операторов, составляющих 2 группы:
традиционные операции над множествами (объединение, пересечение, вычитание, декартово произведение);
специальные реляционные операции (выборка, проекция, соединение, деление).
В основе реляционной модели лежит понятие «отношение».
Отношение представляет собой подмножество декартова произведения доменов.
Доменом называется некоторое множество допустимых значений, которое может принимать некоторый атрибут объекта.
Декартовым произведением доменов D1, D2,...Dn называется
где
D1
= {d1.1,d1.2,...d1.k}
и т.д.
множество всех кортежей состоящих из k элементов - по одному из каждого домена.
Таким образом декартово произведение позволяет получить все возможные комбинации из элементов доменов.
Математически отношение записывается как
Кортежем называется элемент отношения.
Математическое отношение используется двояко:
Для представления набора объектов (набор объектов - это множество подобных объектов).
Для предоставления связей между наборами объектов.
Для представления набора объектов атрибуты соответствуют столбцами отношения. Множество допустимых значений атрибута соответствует соответствующему домену. Каждый кортеж отношения выполняет роль описания отдельного объекта из набора, при этом отношение выполняет роль описания всего набора объектов.
Схемой отношения называют список имен атрибутов отношения. Если отношение R, а его схема имеет атрибуты A1,A2,...Ak , то схема отношения записывается как
R(A1,A2,...Ak)
Краткий обзор операторов реляционной алгебры.
Выборка – возвращает отношение, которое содержит все кортежи определенного отношения, удовлетворяющие некоторым условиям. Операция выборки называется также операцией ограничения (restrict - ограничение, сейчас чаще принимается выборка - SELECT).
Проекция – возвращает отношение, содержащее все кортежи (т.е. - под кортежи) определенного отношения после исключения из него некоторых атрибутов.
Произведение – возвращает отношение, содержащее всевозможные кортежи, которые являются сочетанием двух кортежей, принадлежащих соответственно двум определенным отношениям.
Объединение – возвращает отношение, содержащее все кортежи, которые принадлежат или одному из двух определенных отношений, или обоим.
Пересечение – возвращает отношение, содержащее все кортежи, которые принадлежат одновременно двум определенным отношениям.
Вычитание – возвращает отношение, содержащее все кортежи, которые принадлежат первому из двух определенных отношений и не принадлежат второму.
Соединение (естественное) – возвращает отношение, кортежи которого - это сочетание двух кортежей (принадлежащих соответственно двум определенным отношениям), имеющих общее значение для одного или нескольких общих атрибутов этих двух отношений (и такие общие значения в результирующем кортеже появляются только один раз, а не дважды).
Деление – для двух отношений, бинарного и унарного, возвращает отношение, содержащее все значения одного атрибута бинарного отношения, которые соответствуют (в другом атрибуте) всем значениям в унарном отношении.
Договоримся, что малыми латинскими буквами мы будем обозначать таблицы, большими латинскими буквами – атрибуты и множества атрибутов. Например, r(R) – это таблица r со множеством атрибутов R.
R(A,B,C.D) – ключевые атрибуты подчеркиваются - R={A,B,C,D}.
Операция соединения (основная).
О
бозначение:
Join или .
Существует внутренняя операция соединения и внешняя, при этом внешняя делится на правую и левую.
Внутренняя
а) естественное соединение – осуществляется по равенству значений в одноименных столбцах. Одноименные столбцы имеют одно и тоже имя и определены на одних и тех же доменах. Для соединения используются две таблицы, в результате получаем третью таблицу, кортежи которой получаются комбинацией тех кортежей из исходных таблиц, которые имеют одинаковые значения в одноименных столбцах. Операция соединения коммутативна относительно операндов, т.е. от перестановки мест результат не изменяется.
r (A,B,C) s(A,B,D) = q(A,B,C,D)
11a 112a
11b 112b
123 42c 113a
113b
421c
операция соединения для таблиц с одинаковыми схемами равносильна операции пересечения:
r (A,B) s(A,B) = q(A,B)
11 11 11
12 42 42
14
42
Операция соединения для таблиц с разными схемами равносильна декартовому произведению:
r (A,B) s(C,D) = q(A,B,C,D)
11 cd 11cd
12 c1d 11c1d
14 12cd
42 12c1d
14cd
14c1d
42cd
42c1d
б)
Тета-соединение (
).
Это
соединение не обязательно по равенству,
операция соединения происходит по любой
операции сравнения(
=(эквивалентное
соединение),<>, <,>).
Тета-соединение осуществляется не обязательно по одноименным столбцам, а по разным тоже, но столбцы должны быть определены на одних и тех же доменах.
r (A,B,C) s(D,E) = q (A,B,C,D,E)
B=D
a1c 1e a1c1e
a12c 1e1 a1c1e1
a11c2 2e a2c2e
a13c 2e1 a12c2e1
a11c21e
a11c21e1
r (A,B,C) s(D,E) = q (A,B,C,D,E)
B>D
a1c 1e a12c1e
a12c 1e1 a12c1e1
a11c2 2e a13c1e1
a13c 2e1 a13c1e
a13c2e
a13c2e
Внешнее соединение. Рассмотрим на примере естественного соединения. тогда внешнее соединение выполняется по тем же правилам, что и естественное, но в ответ выписываются строки из левой таблицы, если соединение левое (из правой таблицы, если соединение правое).
Пример:
r (A,B,C) s(A,D) = q(A,B,C,D)
left
1ac 1d 1acd
2a1c 2d 1acd1
1ac1 1d1 2a1cd
3ac 1ac1d
4a1c 1ac1d1
3ac null
4a1c null
Свойства операции:
С помощью операции соединения можно выполнить операцию селекции, при этом операция селекции равносильна квантору существования. Если дано r (R) и необходимо выполнить операцию селекции
, то ее можно выполнить с помощью операции соединения
.
Операция соединения коммутативна.
Операция соединения ассоциативна:
=
Операция соединения дистрибутивна относительно операций пересечения, объединения и разности.
свойство идемпотентности: q
q=q; q r=q (q r)
свойство полусоединения:
.