- •Базы данных
- •Лекция 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 Нормальная форма
- •Нормализация через декомпозицию и посредством синтеза
- •Нормальная форма Бойса-Кодда
- •Литература
Ориентированный ациклический граф вывода
Ориентированный (directed) ациклический (acyclic) граф (DA-граф) – это орграф, не имеющий циклов. Помеченный DA-граф – это DA-граф, каждой вершине которого поставлен в соответствие некоторый элемент из множества меток L.
Определение. Пусть F – множество ФЗ над схемой R. DA-граф вывода над F – это DA-граф, помеченный символами атрибутов из R и построенный по следующим правилам.
Множество изолированных вершин является DA-графом вывода над F.
Пусть DA-граф вывода над F содержит n вершин i с метками Ai и в F существует ФЗ A1A2…AkCZ (k n). Определим новый граф, добавив к исходному DA-графу вывода вершину u с меткой C и дуги (1, u), (2, u),…, (k, u). Полученный граф является DA-графом вывода над F.
Никакой другой граф не является DA-графом вывода над F.
Сокращённо DA-граф вывода над F называют DDA-графом над F (от английского derivation directed acyclic). Любой DDA-граф получается однократным применением правила (1) и многократным применением правила (2).
Пример
Пусть F – множество ФЗ из предыдущего примера: F = {ABE, AGJ, BEI, EG, GIH}. Ниже представлены разные этапы построения DDA-графа над F.
Конец примера
Определение. Пусть H – DDA-граф, содержащий вершину , которая не имеет входящих дуг. Тогда называется начальной вершиной. Начальная вершина добавляется с помощью правила (1).
Определение. Пусть H – DDA-граф над F. H называется DDA-графом для XY, если X – множество меток начальных вершин и каждый атрибут в Y – метка вершины в H.
Определение. Используемым множеством в DDA-графе H над F U(H) называется множество всех ФЗ в F, использованных при применении правила (2) во время построения графа H.
Пример
В предыдущем примере DDA-граф для ФЗ ABAB содержит две изолированных вершины. Его используемое множество пусто.
Конец примера
Теорема. Для множества ФЗ F над R и ФЗ XY следующие утверждения эквивалентны:
F |= XY;
Существует последовательность вывода на F для XY;
Существует DDA-граф над F для XY.
Следствие. DDA-граф H над F для XY с U(H)=G существует тогда и только тогда, когда существует RAP-последовательность вывода на F для XY c используемым множеством G.
В [14] приводится алгоритм, проверяющий принадлежность XY множеству F+ (выводимость функциональной зависимости) с временной сложностью O(n), где n – количество ФЗ в F.
Определение реляционной базы данных
Сформулируем определение ключа на языке ФЗ. Ключ для схемы R – это подмножество K R, такое, что любое отношение r(R) удовлетворяет ФЗ KR, но никакое собственное подмножество K K этим свойством не обладает.
Будем считать, что схема R некоторого отношения состоит из двух частей: S и K, где S – множество атрибутов, K – множество выделенных ключей. Выделенным ключом может быть, в частности, суперключ. Введём обозначение R=(S, K).
Определение. Пусть U – множество атрибутов. Схемой реляционной БД R над U называется совокупность схем отношений {R1, R2,…, Rn}, где Ri=(Si, Ki), i = 1,2,…, n, ni=1 Si = U, и Si Sj при i j.
Определение. Реляционной БД d со схемой БД R называется такая совокупность отношений {r1, r2,…, rn}, ri = ri(Si), что для каждой схемы R = (S, K) из R существует отношение r в d со схемой S и удовлетворяющее каждому ключу из K.
время
Рейс
Время
83
10:00
83
10:00
83
10:00
81
05:00
81
05:00
81
05:00
41
13:00
31
18:00
16
13:00
16
13:00
рейсы
Пилот
Рейс
Дата
Иванов
83
09.01.2000
Петров
83
11.01.2000
Сидоров
83
13.01.2000
Петров
81
08.01.2000
Федоров
81
09.01.2000
Федоров
81
13.01.2000
Федоров
41
15.01.2000
Петров
31
12.01.2000
Иванов
16
10.01.2000
Сидоров
16
12.01.2000
Конец примера
