- •Основные определения и требования к базам данных
- •Определения
- •Категории баз данных
- •Требования к базе данных
- •Неизбыточность и непротиворечивость данных
- •Защита данных от программных и аппаратных сбоев
- •Мобильность прикладного программного обеспечения
- •Секретность данных
- •Представление и описание информации
- •Плоские (двойные) файлы
- •Ключи
- •Системы управления базами данных (СУБД)
- •Языковые средства для работы с базами данных
- •Глобальное логическое описание
- •Компоненты описания схемы данных
- •Классификация моделей данных
- •Иерархические модели данных
- •Сетевые модели данных
- •Классификация структурированных моделей данных
- •Реляционные модели данных
- •Преобразование структурированных моделей к реляционному виду
- •Ключи
- •Операции реляционной алгебры
- •Декомпозиция отношений
- •Функциональные зависимости
- •Правила логического следования
- •Аксиомы функциональных зависимостей
- •Ключи
- •Вторая нормальная форма
- •Правило построение второй нормальной формы:
- •Преимущества второй нормальной формы перед первой
- •Третья нормальная форма
- •Правило построения
- •Преимущества третьей нормальной формы
- •Построение канонической модели общего вида
- •Построение канонической модели реляционного типа
- •Построение замыканий
- •Построение минимального покрытия множества функциональных зависимостей
- •Декомпозиция схем отношений
- •Многозначные зависимости
- •Построение канонической модели
- •Физическая организация базы данных. Алгоритмы работы СУБД
- •Введение
- •Архитектуры современных ЭВМ
- •Факторы, влияющие на выбор физической организации БД (технология, представление, алгоритмы и прочее)
- •Схема временных затрат при реализации запросов
- •Классификация методов доступа
- •Последовательный метод доступа
- •Индексно-произвольный метод доступа
- •Прямой метод доступа
- •Методы хеширования
- •Списки и инвертированные файлы
http://slava.fateback.com |
26 |
1.Операция проекции должна выполняться раньше произведения или соединения.
2.Операция селекции должна выполняться раньше произведения или соединения.
3.Операции проекции и селекции должны выполняться совместно.
Смысл в том, что проекция и селекция уменьшают объем результата, а произведения и соединение — увеличивают.
Пример. Возвращаясь к примеру запроса запишем его оптимизированный вариант:
π8(π4(σ5=X (R1)) ./ π1(σ2=Y (R2)) ./ π1,4,7(σ10≥10.10.03 10≤20.10.03(R4)) ./ R3).
Замечание. Выбор порядка просмотра отношений и необходимого количества индексных файлов выполняется при физической оптимизации запроса. Критерий оптимизации — минимизация количества операций ввода-вывода и приведенные к ним временные затраты на передачу данных по сети. Используемые значения — размеры реализаций отношений (количества строк и столбцов), мощности общих атрибутов и атрибутов с условиями (объемы доменов). Простейшие СУБД распределяют их равномерно, более сложные ведут статистику значений, что является основанием для алгоритмов дискретной оптимизации. Сложность алгоритма поиска квазиоптимального плана O(n2).
2.4Декомпозиция отношений
Основная проблема формирования схемы БД — ответ на вопрос: «Какова структура логических записей?» Правильное формирование записей позволяет достичь принципа независимости данных.
2.4.1Функциональные зависимости
Дано: схема отношения R, определенная на множестве атрибутов U = {A1, A2, . . . , An}.
Определение 2.20 Для произвольных подмножеств X, Y U говорят, что X функционально определяет Y (X → Y ), если в любой реализации r схемы R отсутствуют два картежа u, t r : t[X] = u[X], t[Y ] 6= u[Y ]; или другими словами, нет картежей, совпадающих по X и различающихся по Y .
Пример. Пусть дано отношение, состоящее из атрибутов «Табельный номер сотрудника» (A1), «ФИО сотрудника» (A2), «Должность сотрудника» (A3), «Дата увольнения» (A4). Можно выделить такие функциональные зависимости: A1 → A2, A1 → A3, A1 → A4. Но область определения последней отличается от области определения остальных: она является на множеством уволенных сотрудников и не определена для остальных. Таким образом есть проблема неопределенных значений, и встает она при наличии в одной таблице функциональных зависимостей с несовпадающими областями определения. Можно вне области определения полагать A4 пустым значением (nil), но для него нужно будет доопределить операции сравнения. Лучше всего, A1A2A3 объединить в одно отношение, а A1A4 — в другое.
Замечание. Функциональные зависимости — основной вид ограничения целостности данных в БД, которые не могут быть установлены никаким формальным алгоритмом — только проектировщиком БД.
http://slava.fateback.com |
27 |
2.4.2 Правила логического следования
Дано: R схема отношений, определенная на множестве атрибутов U = A1, A2, . . . , An.
Утверждение 2.1 Если в прикладной области имеются зависимости X → Y, Y → Z, то в прикладной области выполнена зависимость X → Z.
Доказательство. Предположим, что существует реализация r отношения R, в котором присутствуют картежи t и u такие, что t[X] = u[X], t[Z] 6= u[Z]. Тогда возможны два случая:
1.t[Y ] = u[Y ], и совместно с t[Z] 6= u[Z] имеем нарушение зависимости Y → Z и противоречие.
2.t[Y ] 6= u[Y ], и совместно с t[X] = u[X] имеем нарушение зависимости X → Y и противоречие.
Данный метод используется и в доказательстве других свойств функциональных зависимостей.
2.4.3 Аксиомы функциональных зависимостей
Дано: R схема отношений, определенная на множестве атрибутов U = A1, A2, . . . , An. Следующие аксиомы сформулированы Армстронгом в количестве четырех штук, но в моди-
фицированном виде их всего три.
1. Рефлексивоность. Пусть X U, Y v X. Тогда X → Y всегда выполнено.
2.Аксиома пополнения. Пусть выполнено X → Y , Z v U. Тогда XZ → Y Z всегда выполнено.
3.Транзитивность. Пусть выполнены X → Y , Y → Z. Тогда X → Z всегда выполнено.
Остается под вопросом непротиворечивость (надежность) и полнота получившейся системы. Ответ на него дается с использованием метатеории — в данном случае это реализация отношений. Доказательство надежности третьей аксиомы уже проведено выше, первой аксиомы — тривиально (t[X] = u[X], Y v X t[Y ] = u[Y ]), а второй — следующее: t[XZ] = u[XZ], t[Y Z] 6= u[Y Z], t[X] = u[X] t[Z] = u[Z] t[Y ] 6= u[Y ], что противоречит условию X → Y и завершает доказательство.
Обозначим через F множество выделенных функциональных зависимостей.
Определение 2.21 Множество всех функциональных зависимостей, выводимых из F посредством аксиом называется замыканием множества функциональных зависимостей F , и обозначается как F +.
Справедливы следующие правила вывода:
1.Объединение: X → Y , X → Z X → Y Z;
2.Псевдотранзитивность: X → Y , Y W → Z XW → Z;
3.Декомпозиция, X → Y , Z Y X → Z.
Все правила доказываются в терминах аксиом. Доказательства первых двух можно найти в литературе, поэтому докажем третье: из аксиомы 1 получаем Y → Z, из аксиомы 3 — X → Z.
