
- •1.1.Введение
- •1.1.1.Термины и определения
- •1.1.2. Основные функции субд
- •1.1.3. Классификация субд
- •1.1.4. Возможности субд
- •1.2. Обзор структуры субд
- •1.2.1.Источники управляющих инструкций
- •1.2.2.Обработка запросов
- •1.2.3. Менеджеры буферов и хранения данных
- •1.2.4. Обработка транзакций
- •1.2.5.Процессор запросов
- •2.2. Программирование приложений баз данных
- •2.3. Реализация систем баз данных
- •3.1.2.Домен
- •3.1.3. Схема отношения, схема базы данных
- •3.1.4. Кортеж, отношение
- •2.1. Проектирование баз данных
- •3.1.2.Домен
- •3.1.3. Схема отношения, схема базы данных
- •3.1.4. Кортеж, отношение
- •3.2. Фундаментальные свойства отношений
- •3.3. Реляционная модель данных
- •4.4. Специальные реляционные операции
- •5.2.Исчисление кортежей
- •5.2.1.Правильно построенные формулы
- •5.2.2. Кванторы, свободные и связанные переменные
- •5.2.3.Целевые списки и выражения реляционного исчисления
- •Лекция 6. Функциональные зависимости и декомпозиция без потерь Учебные вопросы
- •6.2. Замыкание множества функциональных зависимостей
- •6.3. Аксиомы Армстронга.
- •6.4.Замыкание множества атрибутов
- •6.5. Минимальное покрытие множества функциональных зависимостей
- •6.6.Декомпозиция без потерь и функциональные зависимости
- •6.7. Корректные и некорректные декомпозиции отношений. Теорема Хита
- •6.8. Диаграммы функциональных зависимостей
- •7.1. Введение
- •7.1. Введение
- •7.2. Минимальные функциональные зависимости и вторая нормальная форма
- •8.1. Введение
- •8.1. Введение
- •8.2. Многозначные зависимости и четвертая нормальная форма
- •8.2.1. Аномалии обновлений при наличии многозначных зависимостей и возможная декомпозиция
- •8.2.2. Многозначные зависимости. Теорема Фейджина. Четвертая нормальная форма
- •8.2.3. Лемма Фейджина
- •8.2.4. Теорема Фейджина
- •8.3. Зависимости проекции/соединения и пятая нормальная форма
- •8.3.2. Зависимость проекции/соединения
- •8.3.3. Аномалии, вызываемые наличием зависимости проекции/соединения
- •8.3.4. Устранение аномалий обновления в 3-декомпозиции
- •8.3.5. Пятая нормальная форма
- •Лекция 9. Sql язык структурированных запросов
- •9.1. Введение
- •9.2. Функции языка sql
- •9.3 История
- •9.4.Вопросы совместимости
- •9.5. Преимущества и недостатки
- •9.5.1. Преимущества
- •1. Независимость от конкретной субд
- •2. Наличие стандартов
- •3. Декларативность
- •9.5.2.Недостатки
- •1. Несоответствие реляционной модели данных
- •9.7. Проекция в sql
- •9.8. Выбор в sql
- •9.9. Сравнение строк
- •9.10. Запросы к нескольким отношениям9.10.1. Декартово произведение и соединение в sql
- •Дисциплина “Обработка информации баз данных и знаний” Лекция 10. Sql язык структурированных запросов
- •10.1.2. Объединение, пересечение и разность запросов
- •10.2. Подзапросы
- •10.2.1. Подзапросы для вычисления скалярных значений
- •10.2.2. Условия уровня отношения
- •10.2.3. Условия уровня кортежа
- •10.2.4. Коррелированные подзапросы
- •10.2.5. Подзапросы в предложениях from
- •10.2.6. Выражения соединения в sql
6.5. Минимальное покрытие множества функциональных зависимостей
Множество FD S2 называется покрытием множества FD S1, если любая FD, выводимая из S1, выводится также из S2.
Легко заметить, что S2 является покрытием S1 тогда и только тогда, когда S1+ є S2+. Два множества FD S1 и S2 называются эквивалентными, если каждое из них является покрытием другого, т. е. S1+ = S2+.
Множество FD S называется минимальным в том и только в том случае, когда удовлетворяет следующим свойствам:
1. правая часть любой FD из S является множеством из одного атрибута (простым атрибутом);
2. детерминант каждой FD из S обладает свойством минимальности; это означает, что удаление любого атрибута из детерминанта приводит к изменению замыкания S+, т. е. порождению множества FD, не эквивалентного S1);
3. удаление любой FD из S приводит к изменению S+, т. е. порождению множества FD, не эквивалентного S.
Пример отношения СЛУЖАЩИЕ_ПРОЕКТЫ {СЛУ_НОМ, СЛУ_ИМЯ, СЛУ_ЗАРП, ПРО_НОМ, ПРОЕКТ_РУК}
Если считать, что единственным возможным ключом этого отношения является атрибут СЛУ_НОМ, то множество FD
{СЛУ_НОМ СЛУ_ИМЯ, СЛУ_НОМ СЛУ_ЗАРП, СЛУ_НОМ ПРО_НОМ, ПРО_НОМ ПРОЕКТ_РУК} будет минимальным.
Действительно, в правых частях FD этого множества находятся множества, состоящие ровно из одного атрибута; каждый из детерминантов тоже является множеством из одного атрибута, удаление которого, очевидно, недопустимо; удаление каждой FD явно приводит к изменению замыкания множества FD, поскольку утрачиваемая информация не выводится с помощью аксиом Армстронга.
Множества FD
1. {СЛУ_НОМ {СЛУ_ИМЯ, СЛУ_ЗАРП},
СЛУ_НОМ ПРО_НОМ,
СЛУ_НОМ ПРОЕКТ_РУК,
ПРО_НОМ ПРОЕКТ_РУК},
2. {СЛУ_НОМ СЛУ_ИМЯ,
{СЛУ_НОМ, СЛУ_ИМЯ} СЛУ_ЗАРП,
СЛУ_НОМ ПРО_НОМ,
СЛУ_НОМ ПРОЕКТ_РУК,
ПРО_НОМ ПРОЕКТ_РУК} и
3. {СЛУ_НОМ СЛУ_НОМ,
СЛУ_НОМ СЛУ_ИМЯ,
СЛУ_НОМ СЛУ_ЗАРП,
СЛУ_НОМ ПРО_НОМ,
СЛУ_НОМ ПРОЕКТ_РУК,
ПРО_НОМ ПРОЕКТ_РУК}
не являются минимальными.
Для множества (1) в правой части первой FD присутствует множество из двух элементов.
Для множества (2) удаление атрибута СЛУ_ИМЯ из детерминанта второй FD не меняет замыкание множества FD.
Для множества (3) удаление первой FD не приводит к изменению замыкания.
Эти примеры показывают, что для определения минимальности множества FD не всегда требуется явное построение замыкания данного множества.
Для любого множества FD S существует (и даже может быть построено) эквивалентное ему минимальное множество S-.
Общая схема построения S- по заданному множеству FD S
Во-первых, используя правило (5) (декомпозиции), мы можем привести множество S к эквивалентному множеству FD S1, правые части FD которого содержат только одноэлементные множества (простые атрибуты).
Далее, для каждой FD из S1, детерминант D {D1, D2, …, Dn} которой содержит более одного атрибута, будем пытаться удалять атрибуты Di, получая множество FD S2. Если после удаления атрибута Di S2 эквивалентно S1, то этот атрибут удаляется, и пробуется следующий атрибут. Назовем S3 множество FD, полученное путем допустимого удаления атрибутов из всех детерминантов FD множества S1.
Наконец, для каждой FD f из множества S3 будем проверять эквивалентность множеств S3 и S3 MINUS {f}. Если эти множества эквивалентны, удалим f из множества S3, и в заключение получим множество S4, которое минимально и эквивалентно исходному множеству FD S.
Пусть, например, имеется отношение r {A, B, C, D} и задано множество
FD S = {A B, A BC, AB C, AC D, B C}.
По правилу декомпозиции S эквивалентно множеству
S1 {A B, A C, AB C, AC D, B C}.
В детерминанте FD AC D можно удалить атрибут C, поскольку по правилу дополнения из FD A C следует A AC; по правилу транзитивности выводится FD A D, поэтому атрибут C в детерминанте FD AC D является избыточным.
FD AB C может быть удалена, поскольку может быть выведена из FD A C (по правилу пополнения из этой FD выводится AB BC, а по правилу декомпозиции далее выводится AB C).
Наконец, FD A C тоже выводится по правилу транзитивности из FD A B и B C. Таким образом, мы получаем множество зависимостей {A B, A D, B C}, которое является минимальным и эквивалентно S по построению.
Минимальным покрытием множества FD S называется любое минимальное множество FD S1, эквивалентное S.