Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
экзамен / database.pdf
Скачиваний:
51
Добавлен:
06.02.2018
Размер:
583.8 Кб
Скачать

http://slava.fateback.com

26

1.Операция проекции должна выполняться раньше произведения или соединения.

2.Операция селекции должна выполняться раньше произведения или соединения.

3.Операции проекции и селекции должны выполняться совместно.

Смысл в том, что проекция и селекция уменьшают объем результата, а произведения и соединение — увеличивают.

Пример. Возвращаясь к примеру запроса запишем его оптимизированный вариант:

π845=X (R1)) ./ π12=Y (R2)) ./ π1,4,710≥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.

Соседние файлы в папке экзамен