- Главная
- Информатика
- Методы проектирования баз данных
Содержание
- 2. Вторая нормальная форма (2НФ) Определение 2НФ. Отношение находится во 2НФ, если оно находится в 1НФ, и
- 3. Пример. Приведение ко 2НФ универсального отношения “Библиотека” Шифр → Авт Шифр → Назв Шифр → Год
- 4. Пример. Приведение ко 2 НФ отношения Преподаватель_Предмет Ключ – Отношение Преподаватель, с ФЗ: Номер → ФИО,
- 5. Аномалии 2НФ на примере отношения Преподаватель Дублирование информации о телефоне для преподавателей одной кафедры или одинаковом
- 6. Третья нормальная форма (3НФ) Определение 3НФ. Отношение находится в 3НФ, если оно находится во 2НФ, и
- 7. Пример. Приведение к 3 НФ отношения Преподаватель Получим 3 отношения: Должность (Должность, Оклад), Кафедра (Кафедра, Телефон),
- 8. Различие между 3НФ и НФБК В определении 3НФ говорится только о необходимости отсутствия в отношении транзитивных
- 9. Пример, демонстрирующий различие между 3НФ и НФБК Пусть имеем отношение R со схемой: R (Код Поставщика,
- 10. Аномалии обновления 3НФ на примере Между этими отношениями должна быть установлена связь 1:n по атрибуту Код
- 11. Пример, когда декомпозиция не устраняет аномалии обновления 3НФ (начало) Имеем отношение Обучение (Студент, Предмет, Преподаватель) со
- 12. Пример, когда декомпозиция не устраняет аномалии обновления 3НФ (окончание) Отношение Обучение Разбив это отношение на два,
- 13. Нормальные формы более высокого порядка, чем НФБК. 4НФ 4НФ отражает ограничения, накладываемые не на функциональные, а
- 14. Имеем отношение Читатель_Книга (Шифр, Билет, ФИО, Телефон). В нем существуют следующие ФЗ: Билет → ФИО Билет
- 15. Пример многозначной зависимости разных независимых друг от друга атрибутов от одного и того же ключевого атрибута
- 16. Нормальные формы более высокого порядка, чем НФБК. 5НФ – проекционно-соединительная (начало) Если многозначных зависимостей более трех,
- 17. До 4НФ, включительно, единственной операцией, допустимой или необходимой в процессе декомпозиции, была замена отношения двумя его
- 18. Пример приведения отношения к 5НФ (начало) Имеем отношение Изделие (Поставщик, Деталь, Изготовитель). Между каждой парой атрибутов
- 19. Пример приведения отношения к 5НФ (продолжение) Пусть в некоторый момент времени информация в отношении Изделие имеет
- 20. Пример приведения отношения к 5НФ (окончание) Иногда для того, чтобы получить исходное отношение, недостаточно выполнить одну
- 21. Пример, когда отношение, находящееся в 4НФ не удается привести к 5НФ (начало) Заменим в третьей строке
- 23. Скачать презентацию
Вторая нормальная форма (2НФ)
Определение 2НФ. Отношение находится во 2НФ, если оно
Вторая нормальная форма (2НФ)
Определение 2НФ. Отношение находится во 2НФ, если оно
Для приведения отношения ко 2НФ надо устранить частичную зависимость от ключа. Для этого отношение раскладывают на два, выполняя проекцию на часть составного ключа и зависящие от нее атрибуты.
Пример. Приведение ко 2НФ универсального отношения “Библиотека”
Шифр → Авт
Шифр → Назв
Шифр
Пример. Приведение ко 2НФ универсального отношения “Библиотека”
Шифр → Авт
Шифр → Назв
Шифр
Шифр → Экз
Билет → ФИО
Билет→ Тел
Шифр, Билет → Дата
отношение R1 с ФЗ:
Шифр → Авт
Шифр → Назв
Шифр → Год
Шифр → Экз
отношение R2 с ФЗ:
Билет → ФИО
Билет→ Тел,
Шифр, Билет → Дата
Ключ R1 - Шифр
R1 находится во 2НФ.
Ключ R2 - Шифр + Билет
R2 не находится во 2НФ
Ключ - Шифр + Билет
Выполним проекцию на функциональные зависимости от атрибута Шифр.
Получим 2 отношения: R1 и R2
Выполним проекцию на ФЗ от атрибута Билет.
Получим вместо R2
2 отношения: R3 и R4
отношение R3 с ключом Билет и ФЗ:
Билет → ФИО
Билет→ Тел,
отношение R4 с ключом Шифр+Билет и ФЗ:
Шифр, Билет → Дата.
R3 и R4 находятся во 2НФ
Пример. Приведение ко 2 НФ отношения Преподаватель_Предмет
Ключ –
Отношение Преподаватель, с
Пример. Приведение ко 2 НФ отношения Преподаватель_Предмет
Ключ –
Отношение Преподаватель, с
Номер → ФИО, Должность, Оклад, Кафедра, Телефон
Должность → Оклад
Кафедра → Телефон
Телефон → Кафедра.
В исходном отношении остались
атрибуты Название, Часы и Номер
Номер + Название
Ключ –
Номер
Ключ –
Номер + Название
Отношение Предмет
Отношение Преподает
Отношение Преподаватель находится во 2НФ
Отношения Предмет и Преподает находятся не только во 2НФ, но и в НФБК
Аномалии 2НФ на примере отношения Преподаватель
Дублирование информации о телефоне для преподавателей
Аномалии 2НФ на примере отношения Преподаватель
Дублирование информации о телефоне для преподавателей
Нельзя включить данные о новой кафедре, даже ее название, если на кафедре еще отсутствуют преподаватели. То же относится и к новой должности.
При увольнении с кафедры всех преподавателей данные о ней не сохранятся. Не сохранятся данные и об окладе, например, ассистентов, если в БД не останется ни одного ассистента.
Устранить эти аномалии можно, перейдя к 3НФ.
Третья нормальная форма (3НФ)
Определение 3НФ. Отношение находится в 3НФ, если оно
Третья нормальная форма (3НФ)
Определение 3НФ. Отношение находится в 3НФ, если оно
Для приведения отношения, находящегося во 2НФ, к 3НФ нужно выполнить проекции на неключевые атрибуты этого отношения, связанные друг с другом функциональными зависимостями.
Пример. Приведение к 3 НФ отношения Преподаватель
Получим 3 отношения:
Должность (Должность, Оклад),
Кафедра
Пример. Приведение к 3 НФ отношения Преподаватель
Получим 3 отношения:
Должность (Должность, Оклад),
Кафедра
Преподаватель (Номер, ФИО, Должность, Кафедра)
или
Должность (Должность, Оклад),
Телефон (Телефон, Кафедра),
Преподаватель (Номер, ФИО, Должность, Телефон)
Отношение Преподаватель, с ФЗ:
Номер → ФИО, Должность, Оклад, Кафедра, Телефон
Должность → Оклад
Кафедра → Телефон
Телефон → Кафедра.
Выполним проекцию на:
атрибуты ФЗ Должность → Оклад
и
атрибуты ФЗ Кафедра ↔ Телефон
Все отношения находятся в 3НФ и не противоречат определению усиленной 3НФ или НФБК
Различие между 3НФ и НФБК
В определении 3НФ говорится только о
Различие между 3НФ и НФБК
В определении 3НФ говорится только о
Наличие в отношении зависимости части одного из возможных ключей от части другого возможного ключа не противоречит 3НФ, но противоречит НФБК.
Различие между 3НФ и НФБК возможно только для отношений, удовлетворяющих следующим условиям:
Отношение имеет два или более потенциальных ключа.
Оба ключа являются сложными.
Потенциальные ключи отношения перекрываются, то есть имеют хотя бы один общий атрибут.
Для отношений, не удовлетворяющих хотя бы одному из этих условий, 3НФ и НФБК эквивалентны.
Пример, демонстрирующий различие между 3НФ и НФБК
Пусть имеем отношение R со
Пример, демонстрирующий различие между 3НФ и НФБК
Пусть имеем отношение R со
R (Код Поставщика, Имя, Код Товара, Количество).
Допустим, что имена поставщиков уникальны, тогда потенциальными ключами этого отношения являются:
<Код Поставщика, Код Товара>
<Имя, Код Товара>.
Между атрибутами этого отношения существуют следующие ФЗ:
Код Поставщика → Имя
Имя → Код Поставщика
Код Поставщика, Код Товара → Количество
Имя, Код Товара, → Количество.
Отношение не находится в НФБК, поскольку содержит детерминанты Код Поставщика и Имя, определяющие друг друга, но не являющиеся ключами отношения.
Отношение находится в 3НФ, так как каждый неключевой атрибут, а именно атрибут Количество, функционально полно зависит от ключа, что соответствует определению 2НФ, и в отношении нет транзитивной зависимости неключевого атрибута от ключа.
Отношение R содержит некоторую избыточность, которая приводит к аномалиям обновления.
Аномалии обновления 3НФ на примере
Между этими отношениями должна быть установлена связь
Аномалии обновления 3НФ на примере
Между этими отношениями должна быть установлена связь
Если поставщик с кодом К1 по имени Иван Иванов поставляет товары с кодами Т1, Т2, Т3, Т4,
то при изменении кода поставщика придется внести изменения в 4 строки. Чтобы избежать этой проблемы, отношение разбивают на два:
R1 (Код Поставщика, Имя) и
R2 (Код Поставщика, Код Товара, Количество),
Пример, когда декомпозиция не устраняет аномалии обновления 3НФ (начало)
Имеем отношение Обучение
Пример, когда декомпозиция не устраняет аномалии обновления 3НФ (начало)
Имеем отношение Обучение
Каждый студент, изучающий данный предмет, обучается только одним преподавателем Студент, Предмет → Преподаватель
Каждый преподаватель ведет только один предмет, но каждый предмет может преподаваться несколькими преподавателями
Преподаватель → Предмет
Возможный ключ –
Студент + Предмет или Студент + Преподаватель
Отношение находится в 3НФ, но не в НФБК
Выполнив проекцию отношения на ФЗ Преподаватель → Предмет,
получим:
R1 (Студент, Преподаватель)
R2 (Преподаватель, Предмет).
В результате декомпозиции отношения мы потеряли
ФЗ –
Студент, Предмет → Преподаватель
Новая проблема –
отношения R1 и R2 не могут быть обновлены независимо друг от друга.
Пример, когда декомпозиция не устраняет аномалии обновления 3НФ (окончание)
Отношение Обучение
Разбив это
Пример, когда декомпозиция не устраняет аномалии обновления 3НФ (окончание)
Отношение Обучение
Разбив это
Попытка вставить в R1 строку Иванов Красный должна быть отвергнута, так как …
Красный преподает физику, а Иванов уже обучается физике у Черного.
А строка Митин Красный ?
Это пример ситуации, когда декомпозиция отношения на отношения, находящиеся в НФБК, и декомпозиция на независимые компоненты входят в противоречие.
Удовлетворить одновременно обеим целям удается не всегда.
Нормальные формы более высокого порядка, чем НФБК. 4НФ
4НФ отражает ограничения, накладываемые
Нормальные формы более высокого порядка, чем НФБК. 4НФ
4НФ отражает ограничения, накладываемые
Многозначную зависимость следует рассматривать как обобщение понятия функциональной зависимости.
Определение многозначной зависимости (МЗ): Атрибут B отношения R многозначно зависит от атрибута A (A ⇒ B), если каждому значению атрибута A соответствует множество значений атрибута B, не связанного с другими атрибутами отношения R
Связь между атрибутами A и B, означающую, что каждому значению A соответствует множество значений B, в отличие от многозначной зависимости будем обозначать
A —>> B
Многозначная зависимость возможна только при наличии в отношении не менее трех атрибутов: ключа и двух независимых друг от друга атрибутов.
Определение 4НФ: Отношение находится в 4НФ, если оно находится в НФБК и в нем отсутствуют многозначные зависимости.
Имеем отношение Читатель_Книга (Шифр, Билет, ФИО, Телефон).
В нем существуют следующие
Имеем отношение Читатель_Книга (Шифр, Билет, ФИО, Телефон).
В нем существуют следующие
Билет → ФИО
Билет → Телефон
Атрибут Шифр многозначно зависит от атрибута Билет:
Билет ⇒ Шифр
Каждому значению атрибута Шифр соответствует множество значений атрибута Билет:
Шифр —>> Билет
Каждому значению атрибута Телефон соответствует множество значений атрибута Билет:
Телефон —>> Билет
Каждому значению атрибута ФИО соответствует множество значений атрибута Билет и множество значений атрибута Телефон:
ФИО —>> Билет
ФИО —>> Телефон
Аномалия выполнения операции модификации:
При изменении номера телефона или ФИО читателя надо изменить несколько строк таблицы по числу книг, взятых читателем в данный момент.
Устранение аномалии достигается разложением отношения на два:
Читатель (Билет, ФИО, Телефон) и Взял (Билет, Шифр)
Пример многозначной зависимости между атрибутами отношения
Пример многозначной зависимости разных независимых друг от друга атрибутов от одного
Пример многозначной зависимости разных независимых друг от друга атрибутов от одного
Имеем отношение:
Преподаватель ( Личный_номер, ФИО, Дети, Предметы, Должность)
В нем существуют следующие ФЗ:
Личный_номер → ФИО
Личный_номер → Должность
и следующие многозначные зависимости:
Личный_номер ⇒ Дети
Личный_номер ⇒ Предметы.
Имеет место аномалия вставки. Для ее устранения надо выделить из отношения Преподаватель отношение Дети (Личный_номер, Дети) и отношение Предметы (Личный_номер, Предметы).
В исходном отношении Преподаватель останутся атрибуты Личный_номер, ФИО и Должность. Теперь ни одно из трех отношений не содержит многозначных зависимостей.
Каждое из полученных отношений находится в четвертой нормальной форме (4НФ)
Нормальные формы более высокого порядка, чем НФБК. 5НФ – проекционно-соединительная (начало)
Если
Нормальные формы более высокого порядка, чем НФБК. 5НФ – проекционно-соединительная (начало)
Если
Приведение отношения, находящегося в 4НФ, к 5НФ выполняется т.о., чтобы результат удовлетворял зависимости по соединению (ЗС) .
Зависимость по соединению является обобщением понятия многозначной зависимости и означает, что исходное отношение может быть восстановлено без потерь путем выполнения операции соединения по отношению к некоторым его проекциям.
Фраза «без потерь» означает, что при восстановлении исходного отношения мы не получим новых кортежей и не потеряем старые, не произойдет также потери зависимостей между атрибутами.
Определение 5НФ: Отношение находится в 5НФ тогда, когда любая зависимость по соединению в исходное отношение определяется возможными ключами исходного отношения.
До 4НФ, включительно, единственной операцией, допустимой или необходимой в процессе декомпозиции,
До 4НФ, включительно, единственной операцией, допустимой или необходимой в процессе декомпозиции,
Для отношений, которые подвергаются декомпозиции на проекции и обратной композиции с соединением проекций, не существует более высокой степени зависимости, по отношению к которой ЗС является лишь частным случаем, но, если ввести другие операторы декомпозиции, то возможно появление других типов зависимостей, а следовательно, и других нормальных форм.
Функциональные и многозначные зависимости обнаружить нетрудно, т.к. они имеют интерпретацию в терминах реального мира. Значения зависимостей по соединению не очевидны.
Нормальные формы более высокого порядка, чем НФБК. 5НФ (продолжение)
Пример приведения отношения к 5НФ (начало)
Имеем отношение Изделие (Поставщик, Деталь, Изготовитель).
Между
Пример приведения отношения к 5НФ (начало)
Имеем отношение Изделие (Поставщик, Деталь, Изготовитель).
Между
Каждый поставщик может поставлять несколько различных деталей.
Один и тот же тип детали может поставляться разными поставщиками.
Изготовитель изделий (сборщик) может использовать разные детали
Один и тот же тип детали может быть использован разными изготовителями.
Изготовители могут быть связаны с различными поставщиками,
Каждый поставщик может работать на несколько изготовителей.
Деталь <<⎯>> Изготовитель
Поставщик <<⎯>> Деталь
Поставщик <<⎯>> Изготовитель
В отношении отсутствуют многозначные зависимости и оно состоит только из атрибутов, входящих в состав первичного ключа. Т.о. по определению отношение находится в 4НФ.
Пример приведения отношения к 5НФ (продолжение)
Пусть в некоторый момент времени информация
Пример приведения отношения к 5НФ (продолжение)
Пусть в некоторый момент времени информация
Выполним проекции отношения Изделие на зависимости 1, 2, 3.
Получим три отношения – R1, R2, R3.
Выполнив операцию естественного соединения отношений R1 и R2 (R1 ⊳⊲ R2), получим исходное отношение. Тот же результат даст и любая из операций R1 ⊳ ⊲R3 и R2 ⊳ ⊲R3.
Отношения R1, R2, R3 находятся в 5НФ.
Пример приведения отношения к 5НФ (окончание)
Иногда для того, чтобы получить исходное
Пример приведения отношения к 5НФ (окончание)
Иногда для того, чтобы получить исходное
Пусть имеем отношение R. Разложим его на 3 отношения R1, R2, R3, выполнив сначала проекцию на атрибуты A,B, затем на атрибуты A,C и наконец на атрибуты B,C.
Выполнив операцию естественного соединения отношений R1 и R2, получим два лишних по сравнению с отношением R кортежа – a1,b1,c2 и a1,b2,c1.
Выполнив операцию естественного соединения полученного отношения и отношения R3, для которых общими являются атрибуты В и С. Получим отношение (R1 ⊳⊲ R2) ⊳⊲ R3, совпадающее с исходным отношением R. Т.о. отношения R1,R2,R3 находятся в 5НФ, конечно, при условии, что отношение R находится в 4НФ.
Пример, когда отношение, находящееся в 4НФ не удается привести к 5НФ
Пример, когда отношение, находящееся в 4НФ не удается привести к 5НФ
Заменим в третьей строке отношение Изделие Д2 на Д1 и, выполнив проекцию этого отношения на каждую пару атрибутов, получим отношения R1,R2,R3.
Выполнив операцию R1 ⊳⊲ R2, получим отношение Изделие, в котором по сравнению с исходным будут два новых кортежа – П2, Д1, В и П2, Д2, А.
Выполнение операции (R1 ⊳⊲ R2) ⊳⊲ R3 не приведет к исчезновению этих кортежей, поскольку соединение выполняется по атрибутам Поставщик и Изготовитель, а отношение R3 имеет кортежи П2, В и П2, А. Т.о. даже участие в операции соединения всех трех проекций не приводит к получению исходного отношения. Результат разложения не удовлетворяет зависимости по соединению.