
- •2.3 Базы данных [5-7] тебеньков е.С.
- •1 .Проектирование базы данных с помощью нормализации
- •2. Операция «соединения» и ее свойства.
- •3. Разложение без потерь. Теорема. Примеры
- •4. Полностью соединимые отношения. Примеры
- •5. Операторы описания данных в sql
- •6. Операторы манипулирования данными в sql
- •7. Управление транзакциями
- •1. Запуск транзакции
- •2. Завершение транзакции
- •8. Технологии «клиент-сервер»
- •1 Вариант - файловый сервер.
- •2 Вариант – удаленный доступ.
- •3 Вариант – сервер Базы Данных.
- •4 Вариант – сервер приложений.
- •9. Оператор Select
- •10. Индексация. Достоинства и недостатки. Примеры
3. Разложение без потерь. Теорема. Примеры
Реляционная алгебра.
Реляционная алгебра представляет собой основу доступа к реляционным данным. Основная цель алгебры – обеспечить запись выражений.
Реляционная алгебра, определенная Коддом состоит из 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}
Условие разложения без потерь.
q
(R,S)
r=
s=
r s= =q’
q’
q(R,S)
т.е.
q’ есть
надмножество q
Если q’=q, то это разложение без потерь.
Пример:
R(X,Y,Z) r1(X,Y) r2(X,Z) r1 r2 = (X,Y,Z)
123 12 13 123
323 32 33 127
117 11 17 122
132 13 12 323
417 41 47 113
117
112
133
137
132
417
то есть это разложение с потерями.
Рассмотрим другое измерение:
r3(X,Y) r4(Y,Z) r3 r4 = (X,Y,Z)
12 23 123
32 17 323
11 32 117
13 132
417
это разложение без потерь.
Альтернативное доказательство!!!
Теорема Хита.
Пусть
задано отношение r {A, B, C} (A, B и C,
в общем случае, являются составными
атрибутами) и выполняется FD A
B.
Рис. 1. Результат естественного соединения отношений СЛУЖ и ЗАРП_ПРО
Тогда r = (r PROJECT {A, B}) NATURAL JOIN (r PROJECT {A, C}).
Доказательство.
Прежде всего, докажем, что в теле
результата естественного соединения
(обозначим этот результат через r1)
содержатся все кортежи тела отношения r.
Действительно, пусть кортеж {a, b,
c}
r.
Тогда по определению операции взятия
проекции {a, b}
(r
PROJECT {A, B}) и {a, с}
(r
PROJECT {A, С}). Следовательно, {a, b, c}
r1.
Теперь докажем, что в теле результата
естественного соединения нет лишних
кортежей, т. е. что если кортеж {a, b,
c}
r1,
то {a, b, c}
r.
Если {a, b, c}
r1,
то существуют {a, b}
(r
PROJECT {A, B}) и {a, с}
(r
PROJECT {A, С}). Последнее условие может
выполняться в том и только в том случае,
когда существует кортеж {a, b*, c}
r.
Но поскольку выполняется FD A
B,
то b = b* и, следовательно, {a, b, c}
= {a, b*, c}.Конец
доказательства.
Для иллюстрации общего случая применения теоремы Хита рассмотрим отношение СЛУЖАЩИЕ_ОТДЕЛЫ_ПРОЕКТЫ {СЛУ_НОМ, СЛУ_ОТД, ПРО_НОМ} (рис 2). Атрибут СЛУ_ОТД содержит номера отделов, в которых работают служащие, а ПРО_НОМ – номера проектов, в которых служащие принимают участие. Каждый служащий работает только в одном отделе, т. е. имеется FD СЛУ_НОМ СЛУ_ОТД, но один служащий может участвовать в нескольких проектах.
Рис. 2. Декомпозиция без потерь по теореме Хита. В отношении СЛУЖАЩИЕ_ОТДЕЛЫ_ПРОЕКТЫ атрибут СЛУ_НОМ не является возможным ключом, но, как показано на рис 2., наличия FD СЛУ_НОМ СЛУ_ОТД оказывается достаточно для декомпозиции этого отношения без потерь.