- •Содержание
- •1. Основные понятия баз данных
- •1.1. Проектирование баз данных
- •1.2. Индексы и ключи в базах данных
- •2. Функциональные зависимости
- •2.1. Понятие функциональной зависимости
- •2.2. Метод синтеза
- •2.3. Аксиомы вывода
- •2.4. Применение аксиом вывода
- •2.5. Замыкание множества атрибутов относительно множества функциональных зависимостей
- •2.6. Эквивалентность двух систем функциональных зависимостей
- •2.7 Метод синтеза
- •2.8. Классы эквивалентности функциональных зависимостей с эквивалентными левыми частями
- •2.9. Составные функциональные зависимости и кольцевые покрытия
- •3. Нормализация баз данных
- •3.1. Декомпозиция таблицы на две таблицы без потери информации и с потерей информации
- •4. Иерархия в базах данных
- •4.1. Использование иерархии в базах данных
- •4.2. Инклюзивная и эксклюзивная иерархии
- •5. Сортировка и поиск записей в базах данных
- •5.1.Многофазная сортировка
- •7. Оптимизация запросов
- •7.1. Основные операции реляционной алгебры и их обозначения
- •8. Статистические данные, используемые для минимизации запросов
- •8.1. Анализ стоимости операций
- •8.2. Оценка размеров промежуточных отношений
- •8.2.1. Оценка размера результата операции объединения
- •8.2.2. Оценка размера результата операции пересечения
- •8.2.3. Оценка размера результата оператора проекции
- •8.2.4. Оценка размера результата оператора выбора
- •8.3. Выборка с условием равенства двух атрибутов
- •8.4. Выборка при условии неравенства двух атрибутов
- •8.5. Естественное соединение отношений с несколькими общими атрибутами
- •8.6. Соединение нескольких отношений
- •8.7. Оценка размеров результатов выполнения других операторов
- •8.7.1. Объединение
- •8.7.2. Пересечение
- •8.7.3. Разность
- •8.7.4. Удаление кортежей-дубликатов
- •8.7.5. Группирование и агрегирование
- •8.8. Свод формул для сравнительного расчета количества записей результата выполнения операций реляционной алгебры
- •8.9. Тождественные преобразования для операций реляционной алгебры
- •8.10. Алгебраические законы и планы запросов
- •8.10.1. Коммутативный и ассоциативный законы
- •8.11. Законы для "множественных" и "мультимножественных" версий операторов
- •8.11.1. Законы выбора
- •8.11.2. Некоторые тривиальные законы
- •8.11.3. Законы проекции
- •8.11.4. Законы соединения и декартова произведения
- •8.11.5. Законы, касающиеся удаления кортежей-дубликатов
- •8.11.6. Законы группирования и агрегирования
- •8.11.7. Закон деления
2.2. Метод синтеза
В результате синтеза структура БД содержит минимальное число столбцов
В каждой таблице минимальное число столбцов
В каждой таблице минимальное индексное выражение для каждого ключа
В каждой таблице минимальный набор альтернативных ключей
В результате синтеза БД будет находиться в 3НФ.
Понятие логического следования для функциональной зависимости:
Одной функциональной зависимости соответствует множество таблиц, в которых эта зависимость выполняется. Если в каждой таблице, в которой действует ФЗ FD1, будет действовать и FD2, тогда между этими двумя отношениями будет действовать отношение логического следствия. Следует говорить, что из FD1 логически следует FD2.
Поскольку проверить на всех мыслимых таблицах выполнение этого следования невозможно, то логическое следствие заменяется понятием логического вывода. Если из FD1 можно логически вывести FD2, то они находятся в отношении логического вывода.
2.3. Аксиомы вывода
Аксиома рефлексивности
Y, X, R,
Y X R,
X Y.
Пример.
AB A,
A A.
Аксиома пополнения
|= A A,
f={X Y},
f |= XZ YZ,
X Y |= XZ YZ.
Аксиома транзитивности
,
f |= X Z.
Теорема аддитивности.
f |= X→YZ, X→Z,
,
f |= X Z.
Доказательство.
1) X Y,
2) X Z,
3) XX XY (A2 к (1)),
4) XY ZY (A2 к (2)),
5) X ZY (A3 к (3) и (4)).
Теорема проективности.
f |= {X YZ},
f |= .
Доказательство.
1) X YZ,
2) YZ Y,
3) X Y.
Теорема псевдотранзитивности.
|= XZ W,
1) X Y,
2) YZ W,
3) XZ YZ,
4) XZ W.
2.4. Применение аксиом вывода
Используя аксиомы Fl—F6, можно получить другие правила вывода для F-зависимостей.
Пример. Пусть r — отношение со схемой R, а X и Y — подмножества R. Аксиома F1 утверждает, что r удовлетворяет Y Y. Применяя аксиому F2, получим, что r удовлетворяет XY Y. Другой способ установить это правило — убедиться, что r удовлетворяет X Y для Y X R.
Пример. Пусть r — отношение со схемой R, а X, Y и Z — подмножества R. Предположим, что r удовлетворяет XY Z и X Y. Согласно аксиоме F6, отношение r удовлетворяет XX Z, которая упрощается до X Z.
Чтобы опровергнуть какое-либо утверждение относительно F-зависимостей, достаточно указать хотя бы одно отношение, которое не удовлетворяет этому утверждению.
Пример. Опровергнем утверждение о том, что XY ZW влечет за собой X Z. Отношение r, представленное ниже, удовлетворяет АВ CD, но А С:
r (А В C D)
а b с d
а b’ с’ d
Некоторые аксиомы вывода могут быть получены из других. Например, транзитивность F5 является частным случаем псевдотранзитивности F6 при Z= . Аксиома F6 следует из Fl, F2, F3 и F5; если X Y и YZ W, то, как следствие F1, имеем Z Z. Согласно F2, имеем XZ Y и XZ Z. Используя F3, получим XZ YZ. Наконец, применяя F5, получим XZ W.
В следующем разделе будет показано, что система аксиом Fl—F6 полна; это означает, что каждая F-зависимость, которая следует из множества F, может быть выведена путем одно- или многократного применения к F этих аксиом. Выше было доказано, что каждая аксиома выполняется в любом отношении. Поэтому применение аксиом к F-зависимостям из множества F может дать в результате только F-зависимости, которые следуют из F.
Если даны аксиомы Fl, F2 и F6, то из них можно вывести остальные. Уже было показано, что F5 является частным случаем F6. Если даны X Y и X Z, то используем F1, чтобы получить YZ YZ, и дважды применяем F6, получая сначала XZ YZ, а затем X YZ. Поэтому F3 следует из Fl, F2 и F6. Чтобы доказать F4, предположим, что X YZ. Из F1 имеем Y Y, а из F2 получаем YZ Y. Применение F6 дает X Y.
Таким образом, аксиомы Fl, F2 и F6 составляют полное подмножество для F1—F6. Аксиомы Fl, F2 и F6 являются также независимыми: ни одна из этих аксиом не может быть получена из двух других (см. упр. 4.5). Эти три аксиомы называются иногда аксиомами Армстронга, хотя они не очень похожи на исходные аксиомы Армстронга (тем не менее это название общепринято).
Пусть F — множество F-зависимостей для отношения r (R). Замыкание F, обозначаемое F+, — это наименьшее содержащее F множество, такое, что при применении к нему аксиом Армстронга нельзя получить ни одной F-зависимости, не принадлежащей F. Так как F+ должно быть конечно, то можно вычислить его, начиная с F путем применения Fl, F2 и F6 и добавления полученных F-зависимостей к F до тех пор, пока не перестанут получаться новые зависимости. Замыкание F зависит от схемы R. Если R = АВ, то F+ всегда будут содержать В В. Когда R не определено явно, предполагается, что существует множество всех символов атрибутов, используемых в F-зависимостях из F.
Из множества F можно вывести F-зависимость Х Y, если X Y принадлежит F+. Так как аксиомы вывода порождают только функциональные зависимости, то F влечет за собой X Y, если X Y выводится из F. В следующем разделе доказывается обратное утверждение. Заметим, что F+ = (F+)+ .