Многозначные зависимости и четвертая нормальная форма — различия между версиями
(→Многозначная зависимость) |
(→Аномалии в НФБК) |
||
| Строка 13: | Строка 13: | ||
| Мат.Ан. || Виноградов О. Л. || Фихтенгольц | | Мат.Ан. || Виноградов О. Л. || Фихтенгольц | ||
|} | |} | ||
| − | + | В данном отношении подразумевается, что набор книг по курсу не зависит от преподавателя. | |
| − | При этом, если мы предполагаем, что набор литературы не зависит от преподавателя, то у нас | + | Тогда все атрибуты будут ключевыми: у курса и лектора бывает много книг, лектор может рекомендовать книгу по нескольким курсам, книгу для курса могут рекомендовать все лекторы этого курса. |
| + | Поэтому здесь присутствуют только тривиальные функциональные зависимости, поэтому отношение находится в [[Нормальные_формы:_третья_и_Бойса-Кодда|нормальной форме Бойса-Кодда]]. | ||
| + | |||
| + | При этом, если мы предполагаем, что набор литературы не зависит от преподавателя, то у нас будут все 3 вида аномалии: | ||
* '''Вставки''': невозможно указать литературу по курсу без преподавателя. | * '''Вставки''': невозможно указать литературу по курсу без преподавателя. | ||
* '''Удаления''': нельзя удалить преподавателя, не потеряв литературу по курсу. | * '''Удаления''': нельзя удалить преподавателя, не потеряв литературу по курсу. | ||
Версия 14:39, 22 декабря 2021
Содержание
Аномалии в НФБК
Рассмотрим следующий пример:
| Course | Lecturer | Book |
|---|---|---|
| СУБД | Корнеев Г. А. | Дейт |
| СУБД | Корнеев Г. А. | Ульман |
| Мат.Ан. | Кохась К. П. | Фихтенгольц |
| Мат.Ан. | Виноградов О. Л. | Фихтенгольц |
В данном отношении подразумевается, что набор книг по курсу не зависит от преподавателя.
Тогда все атрибуты будут ключевыми: у курса и лектора бывает много книг, лектор может рекомендовать книгу по нескольким курсам, книгу для курса могут рекомендовать все лекторы этого курса. Поэтому здесь присутствуют только тривиальные функциональные зависимости, поэтому отношение находится в нормальной форме Бойса-Кодда.
При этом, если мы предполагаем, что набор литературы не зависит от преподавателя, то у нас будут все 3 вида аномалии:
- Вставки: невозможно указать литературу по курсу без преподавателя.
- Удаления: нельзя удалить преподавателя, не потеряв литературу по курсу.
- Изменения: если есть два преподавателя по одному и тому же курсу и один рекомендует книгу, а другой нет. При этом для курса должен быть конкретный набор книг.
Многозначная зависимость
| Определение: |
многозначно определяет в отношении
|
| Утверждение: |
Любая функциональная зависимость является множественной зависимостью. |
| У $Y$ при фиксированном $X$ есть ровно одно значение. То есть мощность множества, которое зависит, равно одному. |
Теорема Фейгина
| Теорема: |
Обобщение теоремы Хита: |
| Доказательство: |
|
Теорема о дополнении
| Теорема: |
и |
| Доказательство: |
|
Из по теореме Фейгина следует Вследствие коммутативности Применяя еще раз теорему Фейгина, получаем, что |
обозначается: множественно определяет и .
Следствие.
называется тривиальной множественной зависимостью.
Четвертая нормальная форма
| Определение: |
Отношение находится в четвертой нормальной форме (4НФ) тогда и только тогда, когда
|
Достижимость
| Теорема: |
Любое отношение можно декомпозировать на отношения, находящиеся в 4НФ |
| Доказательство: |
|
Пример приведения к 4НФ
Пусть задано отношение:
| Course | Lecturer | Book |
|---|---|---|
| СУБД | Корнеев Г. А. | Дейт |
| СУБД | Корнеев Г. А. | Ульман |
| Мат.Ан. | Кохась К. П. | Фихтенгольц |
| Мат.Ан. | Виноградов О. Л. | Фихтенгольц |
В данном отношении есть множественная зависимость: , поэтому декомпозируем его следующим образом:
| Course | Lecturer |
|---|---|
| СУБД | Корнеев Г. А. |
| СУБД | Корнеев Г. А. |
| Мат.Ан. | Кохась К. П. |
| Мат.Ан. | Виноградов О. Л. |
| Course | Book |
|---|---|
| СУБД | Дейт |
| СУБД | Ульман |
| Мат.Ан. | Фихтенгольц |
| Мат.Ан. | Фихтенгольц |