- •Базы данных
- •Лекция 1 Хранение данных Данные, информация
- •Системы хранения данных на основе файлов
- •База данных
- •Требования к субд
- •Администратор бд (абд)
- •Лекция 2 Модели данных Независимость данных
- •Модель, схема
- •Лекция 3 Ранние модели Иерархическая модель
- •Сетевая модель
- •Лекция 4 Пример базы данных, построенной на сетевой модели Постановка задачи
- •Диаграмма
- •Описание на яод
- •Лекция 5 Реляционная модель Принципы
- •Уточнения
- •Лекция 6 Методы хранения данных и доступа к ним
- •Последовательный метод
- •Прямой метод
- •Индексные методы
- •Индексно-последовательный метод
- •Индексно-произвольный метод
- •Инвертированные списки
- •Хеширование
- •Лекция 7 Реляционная алгебра: определения, изменение отношений
- •Изменение отношений во времени.
- •Лекция 8 Операции реляционной алгебры
- •Булевы операции
- •Выбор; свойства выбора
- •Проекция; свойства проекции
- •Лекция 9 Операции реляционной алгебры (продолжение) Соединение
- •Свойства соединения
- •Лекция 10 Операции реляционной алгебры (продолжение)
- •Деление
- •Постоянные отношения. Переименование атрибутов
- •Эквисоединение, естественное и -соединение
- •Реляционная алгебра. Полнота ограниченного множества операторов
- •Операторы расщепления и фактора
- •Лекция 11 Язык структурных запросов sql
- •Начальные понятия
- •Стандарт ansi
- •Типы данных
- •Интерактивный и встроенный sql
- •Синтаксис
- •Подразделы sql
- •Простейшие действия
- •Функции агрегирования
- •Группировка
- •Возможности форматирования
- •Лекция 12 Язык структурных запросов sql (продолжение) Соединение
- •Вложенные запросы
- •Связанные запросы
- •Предикаты, определенные на подзапросах
- •Объединение
- •Изменение базы данных
- •Лекция 13 Понятие о нормальных формах
- •1 Нормальная форма (1нф)
- •2 Нормальная форма (2нф)
- •3 Нормальная форма (3нф)
- •Нормальная форма Бойса-Кодда (нфбк)
- •4 Нормальная форма (4нф)
- •5 Нормальная форма (5нф) – проекция/соединение
- •Лекция 13 Проектирование данных Процессы проектирования
- •Концептуальное проектирование
- •Логическое проектирование
- •Средства создания модели
- •Лекция 14 Функциональные зависимости
- •Аксиомы вывода
- •Ориентированный ациклический граф вывода
- •Определение реляционной базы данных
- •Представление множества функциональных зависимостей
- •Лекция 15 Покрытия функциональных зависимостей
- •Лемма об эквивалентности фз
- •Неизбыточные покрытия
- •Посторонние атрибуты
- •Канонические покрытия
- •Структура неизбыточных покрытий
- •Оптимальные покрытия
- •3 Нормальная форма
- •Нормализация через декомпозицию и посредством синтеза
- •Нормальная форма Бойса-Кодда
- •Литература
Аксиомы вывода
Для отношения r(R) в любой момент существует некоторое семейство ФЗ, которому оно удовлетворяет, причем, одно его состояние может удовлетворять данной ФЗ, другое – нет. Требуется выявить семейство ФЗ F, которому удовлетворяют все допустимые состояния r, то есть будем считать семейство F заданным на схеме R.
Множество ФЗ, применимых к r(R), конечно, поэтому можно найти все ФЗ, которым удовлетворяет r (например, применяя алгоритм, рассмотренный ранее). Но это достаточно долгий процесс. Иногда оказывается возможным по некоторому множеству ФЗ определить другие ФЗ.
Определение. Будем говорить, что множество ФЗ F влечет ФЗ X Y (F |= XY), если каждое отношение, удовлетворяющее всем зависимостям из F, удовлетворяет и X Y.
Аксиома вывода – правило, устанавливающее, что если отношение удовлетворяет какой-то ФЗ, то оно удовлетворяет и некоторой другой ФЗ. Рассмотрим следующее множество аксиом.
F1. Рефлексивность
X X
F2. Пополнение (расширение левой части)
(X Y) (XZ Y)
П
r (A B C D)
a1
b1
c1
d1
a2
b2
c1
d1
a1
b1
c1
d2
a3
b3
c2
d3
Здесь (A B) { ABB, ACB, ADB, ABCB, ABDB }
Конец примера
F3. Аддитивность
Позволяет объединить две ФЗ с одинаковыми левыми частями.
(XY, XZ) (XYZ)
Пример
Для предыдущего отношения: (AB, AC) (ABC)
Конец примера
F4. Проективность
В некоторой степени обратная F3.
(XYZ) (XY)
F5. Транзитивность
(XY, YZ) (XZ)
П
r (A B C D)
a1
b1
c2
d1
a2
b2
c1
d2
a3
b1
c2
d1
a4
b1
c2
d3
Здесь (AB, BC) (AC)
Конец примера
F6. Псевдотранзитивность
(XY, YZW) (XZW)
На самом деле, эта система избыточна. Например, F6 F5 (для Z=), (F1, F2, F3, F5) F6. Но она полна, то есть любая ФЗ, которая следует из F, может быть получена применением F1-F6.
Можно доказать [14], что {F1, F2, F6} – полное подмножество аксиом: (F1, F2, F6) F3, (F1, F2, F6) F4, F6 F5. Например, докажем F4. Пусть XYZ, тогда из (F1): YY и (F2): YZY. По (F6): XY. Утверждение доказано.
Подмножество независимых аксиом {F1, F2, F6} носит название аксиом Армстронга.
Определение. Пусть F – множество ФЗ для r(R). Замыкание F (обозначается F+) – это наименьшее множество, содержащее F, и такое, что при применении к нему аксиом Армстронга нельзя получить ни одной ФЗ, не принадлежащей F.
Определение. Два множества ФЗ F и G над одной и той же схемой называются эквивалентными, если F+ = G+, и обозначается это так: F G.
Если F |= XY, то либо XY F, либо её можно получить путём последовательного применения аксиом вывода к F. Эта последовательность аксиом называется выводом XY из F.
Определение. Последовательность P функциональных зависимостей называется последовательностью вывода на F, если каждая ФЗ из P либо принадлежит F, либо следует из предыдущих ФЗ в P после применения к ним одной из аксиом вывода.
Пример
F = {ABE, AGJ, BEI, EG, GIH}. Последовательность вывода определяется неоднозначно, например для ABGH она может выглядеть так (справа указана аксиома и предыдущий шаг, на котором выведена требуемая ФЗ):
1. ABE;
2. ABAB (F1: 1);
3. ABB (F4: 2);
4. ABBE (F3: 1, 2);
5. BEI;
6. ABI (F5: 4, 5);
7. EG;
8. ABG (F5:1, 7);
9. ABGI (F3: 6,8);
10. GIH;
11. ABH (F5: 9, 10);
12. ABGH (F3: 8, 11).
Очевидно, что эта последовательность будет, в частности, последовательностью вывода для других ФЗ, например, ABGI.
Конец примера
Определение. Используемое множество в последовательности вывода P – множество ФЗ изF, принадлежащее P.
B-аксиомы и RAP-последовательности вывода
Кроме аксиом Армстронга, часто рассматривается другая полная система аксиом, которая называется B-аксиомами.
B1. Рефлексивность (Reflexivity)
XX
B2. Накопление (Accumulation)
(XYZ, ZCW) (XYZC)
B3. Проективность (Projectivity)
(XYZ) (XY)
Пример
Пусть F – такое же множество ФЗ, как в предыдущем примере. Приведём последовательность вывода для ABGH, использующую только B-аксиомы:
1. EIEI (B1);
2. EG;
3. EIEGI (B2);
4. EIGI (B3);
5. GIH;
6. EIGHI (B2);
7. EIGH (B3);
8. ABAB (B1);
9. ABE;
10. ABABE (B2);
11. BEI;
12. ABABEI (B2);
13. ABABEGI (B2);
14. ABABEGH (B2);
15. ABGH (B3).
Конец примера
Можно показать [14], что аксиомы Армстронга выводятся из B-аксиом. Из полноты системы аксиом Армстронга следует и полнота системы B-аксиом.
Определение. Последовательность вывода XY из F, полученная при помощи B-аксиом называется RAP-последовательностью (по первым буквам названия B-аксиом), если она удовлетворяет следующим условиям:
первая ФЗ – это XX;
последняя ФЗ – это XY;
каждая ФЗ (за исключением первой и последней) либо принадлежит F, либо имеет вид XZ и получена с помощью аксиомы B2.
Пример
Пусть F – такое же множество ФЗ, как в предыдущем примере. Выпишем RAP-последовательность вывода ABGH из F:
1. ABAB (B1);
2. ABE;
3. ABABE (B2);
4. BEI;
5. ABABEI (B2);
6. EG;
7. ABABEGI (B2);
8. GIH;
9. ABABEGH (B2);
10. ABGH.
Конец примера
Теорема. Пусть F – множество ФЗ. Если существует последовательность вывода из F для XY, то существует RAP-последовательность вывода из F для XY.