- •Установочный модуль
- •Введение
- •Модуль 1
- •Реляционная алгебра
- •Отсутствующие данные
- •Пустые значения
- •Неопределенные значения
- •Интерпретации
- •Правила вычисления выражений
- •Следствия
- •Проверка условий
- •Реляционные объекты данных
- •Формальные определения
- •Домены и атрибуты
- •Схема отношения
- •Именованное значение атрибута
- •Кортеж
- •Отношение
- •Схема базы данных
- •База данных
- •Операции реляционной алгебры
- •Унарные операции
- •Бинарные операции
- •Варианты операции соединения
- •Производные операции
- •Пример построения выражения реляционной алгебры
- •Понятие базовых и виртуальных отношений
- •Понятие полноты реляционной алгебры
- •Формирование запросов на языке SQL
- •Металингвистические символы
- •Реализация операций реляционной алгебры
- •Пример использования подзапросов
- •Группирующие запросы
- •Упорядочение результатов
- •Вопросы для самоконтроля
- •Упражнения
- •Построение выражений реляционной алгебры
- •Модуль 2
- •Базовые и виртуальные отношения
- •Типы данных
- •Базовые типы данных
- •Типы данных, определяемые пользователем
- •Первичные и кандидатные ключи
- •Создание базовых отношений
- •Индексы
- •Модификация базовых отношений
- •Вставка строк
- •Обновление строк
- •Удаление строк
- •Целостность
- •Декларативная поддержка
- •Пример декларативной поддержки целостности
- •Транзакции и блокировки
- •Триггеры
- •Виртуальные отношения
- •Вопросы для самоконтроля
- •Упражнения
- •Декларативная поддержка целостности
- •Модуль 3
- •Нормальные формы
- •Функциональные зависимости (ФЗ)
- •Правила вывода Армстронга
- •Производные правила вывода
- •Независимость правил Армстронга
- •Полнота системы правил Армстронга
- •Нормальные формы
- •Первая нормальная форма (1NF)
- •Вторая нормальная форма (2NF)
- •Третья нормальная форма (3NF)
- •Нормальная форма Бойса-Кодда (Boyce, Codd; NFBC)
- •Пример построения нормализованных схем отношений
- •Вопросы для самоконтроля
- •Модуль 4
- •Проектирование схем баз данных
- •Уровни логической модели
- •Миграция ключей и виды связей
- •Классификация кластеров
- •Иерархическая рекурсия
- •Абстрактная схема
- •Обобщения
- •Пример реализации иерархической рекурсии
- •Сетевая рекурсия
- •Абстрактная схема
- •Сетевая реализация иерархической рекурсии
- •Обобщения
- •Пример реализации сетевой рекурсии
- •Ассоциация
- •Детализация связей многие-ко-многим
- •Обобщения
- •Пример реализации ассоциации
- •Обобщение
- •Абстрактная схема
- •Пример реализации обобщения
- •Композиция
- •Абстрактная схема
- •Пример реализации композиции
- •Агрегация
- •Абстрактная схема
- •Пример реализации агрегации
- •Унификация атрибутов
- •Вопросы для самоконтроля
- •Упражнения
- •Иерархическая рекурсия
- •Сетевая рекурсия
- •Ассоциация
- •Обобщение
- •Композиция
- •Агрегация
- •Дополнительные главы
- •Технологии баз данных
- •Информационные системы
- •Жизненный цикл ИС
- •СУБД и БД
- •Жизненный цикл БД и средства проектирования
- •Модели данных
- •Иерархическая модель данных
- •Сетевая модель данных
- •Реляционная модель данных
- •Постреляционная модель данных
- •Объектно-ориентированные модели данных
- •XML как модель данных
- •Многомерная модель данных (OLAP)
- •Основные функции СУБД
- •Управление данными во внешней памяти
- •Управление буферами оперативной памяти
- •Управление транзакциями
- •Журнализация и восстановление БД после сбоев
- •Поддержка языков баз данных
- •Типовая организация СУБД
- •Модели взаимодействия с БД
- •Модель с централизованной архитектурой
- •Модель с автономными персональными компьютерами
- •Архитектура «файл-сервер»
- •Архитектура «клиент-сервер»
- •Архитектура «клиент-сервер» трехзвенная
- •Распределенные базы данных
- •Технология тиражирования данных
- •Понятие «фрактал»
- •Геометрические фракталы
- •Алгебраические фракталы
- •Стохастические фракталы
- •Системы итерируемых функций
- •Вопросы для самоконтроля
- •Литература
- •Список иллюстраций
- •Список таблиц
Функциональная зависимость с совпадающими левой и правой частями называется рефлексивной. Согласно правилу рефлексивности, ограничение рефлексивной зависимости выполняется автоматически. Правило пополнения вводит избыточность в левую часть функциональной зависимости. Правило псевдотранзитивности обобщает правило транзитивности, соответствующее частному случаю W = ;:
ПВ3 X ! Y; Y ! Z ` X ! Z транзитивность
4.1.2. Производные правила вывода
Если из одних правил вывести другие, то новые правила, называемые производными, можно использовать наряду с исходными.
Теорема. Следующие правила являются производными от правил вывода Армстронга:
ПВТ. ` X [ Z ! X тривиальность
ПВА. X ! Y; X ! Z ` X ! Y [ Z аддитивность
ПВП. X ! Y [ Z ` X ! Y; X ! Z проективность (обращение аддитивности)
При построении цепочек вывода после формулировки посылок применяется правило рефлексивности с тем, чтобы ввести функциональную зависимость с правой частью, фигурирующей в заключении. В правой части цепочки даются ссылки на правила, посылки правил и шаги, обосновывающие шаг вывода.
Доказательство правила тривиальности:
1. |
X ! X |
ПВ1 |
|
|
2. |
X [ Z ! X |
ПВ2, 1 |
|
|
Доказательство правила аддитивности: |
||||
1. |
X ! Y |
|
посылка 1 ПВА |
|
2. |
X ! Z |
|
посылка 2 ПВА |
|
3. |
Y [ Z ! Y [ Z |
ПВ1 |
|
|
4. |
X [ Z ! Y [ Z |
ПВ3, 1, 3 |
||
5. |
X [ X ! Y [ Z |
ПВ3, 2, 4 |
||
6. |
X ! Y [ Z |
|
5 |
|
Доказательство правила проективности: |
||||
1. |
X ! Y [ Z |
X ! Y [ Z |
посылка ПВП |
|
2. |
Y ! Y |
Z ! Z |
ПВ1 |
|
3. |
Y [ Z ! Y |
Z [ Y ! Z |
ПВ2, 2 |
|
4. |
X ! Y |
X ! Z |
ПВ3 , 1, 3 |
Конец теоремы.
Функциональная зависимость с левой частью, являющейся надмножеством правой части, называется тривиальной. Согласно правилу тривиальной зависимости, ограничение тривиальной зависимости выполняется автоматически. Правило тривиальности является обобщением правила рефлексивности и, как и последнее, могло бы быть получено непосредственно из определения ограничения функциональной зависимости. Тот факт, что это правило является производным, не случаен и связан с полнотой системы правил Армстронга (о чем позже).
Правила аддитивности и проективности применительно к функциональным зависимостям с одинаковыми левыми частями позволяют объединять и расщеплять правые части зависимостей.
4.1.3. Независимость правил Армстронга
Теорема. Правила Армстронга образуют систему независимых правил вывода, то есть ни одно из правил рефлексивности, пополнения и псевдотранзитивности не является производным от двух других.
Доказательство основано на невозможности построения цепочки вывода, в которой, исходя из посылок рассматриваемого правила, путем применения других правил выводится его заключение.
Случай 1. Для правила рефлексивности цепочка вывода имела бы следующий вид:
... |
ПВ2, ПВ3 |
n.X ! X заключение ПВ1
Но правила пополнения и псевдотранзитивности требуют посылок. Следовательно, заключение вывести нельзя.
Случай 2. Для правила пополнения цепочка вывода в общем случае имела бы вид:
1. X ! Y |
посылка ПВ2 |
... |
ПВ1, ПВ3 |
n.X [ Z ! Y заключение ПВ2
Для доказательства достаточно рассмотреть частный случай Y = X, поскольку правило рефлексивности все равно породило бы произвольные рефлексивные зависимости:
1.X ! X посылка ПВ2 при Y = X
... |
ПВ1, ПВ3 |
n.X [ Z ! X заключение ПВ2
Для применения правила псевдотранзитивности требуется 2 посылки. Поэтому вначале следует применить один или несколько раз правило рефлексивности. Но применительно к рефлексивным зависимостям правило псевдотранзитивности также даст рефлексивную зависимость. Таким образом, в цепочке вывода заключению будут предшествовать рефлексивные зависимости. Следовательно, заключение вывести нельзя.
Случай 3. Для правила псевдотранзитивности аналогично предыдущему имеем
1.X ! Y посылка 1 ПВ3
2.Y [ W ! Z посылка 2 ПВ3
... |
ПВ1, ПВ2 |
n.X [ W ! Z заключение ПВ3
Частный случай выбирается таким образом, чтобы поглотить правило рефлексивности (Z = Y [X) и в противовес правилу пополнения уменьшить левую часть заключения (W = X):
1. |
X ! Y |
посылка 1 |
ПВ3 при Z = Y [ X; W = X |
2. |
Y [ X ! Y [ X |
посылка 2 |
ПВ3 |
... |
X ! Y [ X |
ПВ1, ПВ2 |
|
n. |
заключение ПВ3 |
Поэтому в цепочке вывода заключению будут предшествовать тривиальные зависимости и зависимости, полученные пополнением левой части первой посылки. Следовательно, заключение вывести нельзя.