- •Базы данных
- •Лекция 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 = (S, K) включает ФЗ KR, если K – выделенный ключ из K.
Определение. Схема БД R = {R1, R2,…, Rn} представляет множество ФЗ G = {KY | Ri R, которое включает KY}. Говорят, что схема БД R полностью характеризует множество ФЗ F, если F G.
Пример
Схема БД из предыдущего примера представляет множество ФЗ G = {Пилот Дата Рейс Дата, Рейс Рейс Время}. Она полностью характеризует множество F = {Пилот Дата Рейс Время, Рейс Время}.
Конец примера
Определение. ФЗ XY применима к R, если XY – ФЗ над R, то есть XR и YR.
Определение. Пусть d={r1, r2, …, rn} – база данных со схемой R = {R1, R2,…, Rn} над U. Она удовлетворяет F, если каждая XY из F+, применимая к схеме Ri из R, выполняется в отношении ri.
Определение. Пусть G – множество всех ФЗ в F+, которые применимы к некоторой схеме Ri в R. Любая ФЗ в G+ называется навязанной R, а ФЗ из (F+–G+) – ненавязанной R. Множество F навязано схеме БД R, если каждая ФЗ в F+ навязана R.
Определение. БД d со схемой R подчиняется множеству ФЗ F, если F навязано схеме R и d удовлетворяет F+.
Пример
Рассмотрим схему БД R = {R1, R2, R3}, где R1 = ABC, R2 = BCD, R3 = DE, и множество ФЗ F = {ABC, CA, AD, DE, AE}.
Функциональные зависимости AD и AE неприменимы ни к одной схеме из R.
Однако множество F навязано схеме R, так как существует G = {ABC, CA, СD, DE}, эквивалентное F, каждая функциональная зависимость которого применима к некоторой схеме из R. А множество {AD}, как легко видеть, не навязано R.
Конец примера
Лекция 15 Покрытия функциональных зависимостей
Эффективность работы с базой данных во многом зависит от представления функциональных зависимостей. Следовательно, нужно найти такое множество ФЗ, которое, будучи эквивалентным заданному, обладает лучшими в каком-то смысле свойствами. В следующих лекциях будем рассматривать методы представления ФЗ, которые позволят упростить эту задачу.
Пример
Пусть F = {AB, BC, AC, ABC, ABC}, G = {AB, BC}. Здесь все ФЗ из F выводятся из G, то есть F G. Однако представление G предпочтительнее: временная сложность алгоритма оценки множества ФЗ зависит от его объема.
Конец примера
Определение. Множество ФЗ F называется покрытием G, если F G.
Очевидно, что определение симметрично относительно множеств ФЗ, каждое из них будет покрытием другого, но обычно подразумевают, что объем покрытия меньше. Так как F+ = G+, для XY G выполняется F |= XY.
Лемма об эквивалентности фз
Обобщим понятие выводимости. Будем считать, что F |= G, если верно, что F |= XY для XY G.
Лемма. Для заданных множеств ФЗ F и G над схемой R тождество F G имеет место тогда и только тогда, когда F |= G и G |= F.
Доказательство
Пусть F G, тогда для каждой ФЗ XY из F имеет место G |= XY, то есть G |= F, аналогично F |= G.
Пусть теперь F |= G, тогда G F+, применяя операцию замыкания к обеим частям, получим G+ (F+)+ = F+, аналогично (G |= F) (F+ G+), таким образом, F+ = G+.
Неизбыточные покрытия
Определение. Множество ФЗ F неизбыточно, если у него нет собственного подмножества F F, такого, что F F. Если F – покрытие G, то F – неизбыточное покрытие G.
Пример
Пусть G = {ABC, AB, BC, AC}, F = {ABC, AB, BC}. Здесь F G, но F – избыточное покрытие, так как существует F′ = {AB, BC}, F F.
Конец примера
Функциональная зависимость XY F избыточна в F, если (F – {XY}) |= XY.
Приведём алгоритм построения неизбыточного покрытия. На вход алгоритма поступает некоторое множество ФЗ G, на выходе формируется его неизбыточное покрытие F. Заметим, что исходное множество может иметь более одного неизбыточного покрытия.
Алгоритм. Сначала положим F = G, затем для каждой ФЗ XY из G проверяем её принадлежность (F – {XY})+, и если (F – {XY}) |= XY, то F := F – {XY}.
Пример
Пусть F = {AB, BA, BC, AC}. Результатом применения алгоритма будет множество {AB, BA, AC}. Если F записать в виде {AB, AC, BA, BC}, то в результате применения алгоритма будем иметь {AB, BA, BC}.
Конец примера