-
Notifications
You must be signed in to change notification settings - Fork 0
Sunshine-ki edited this page Jan 14, 2021
·
7 revisions
Дана переменная-отношение R(A, B, C, D) с функциональными зависимостями S={A–>BC, B–>C, A–>B, AB–>C, AC–>D}. Найти неприводимое множество функциональных зависимостей, эквивалентное данному множеству.
(min покрытие == ФЗ (функциональные зависимости) явл. неприводимым)
Множество ФЗ явл. неприводимым (min покрытие) тогда и только тогда, когда обладает след. свойствами:
Детерминант - левая часть. Зависимая часть - правая.
- Для любой ФЗ X->Y, Y - один элемент.
- Ни одну ФЗ нельзя удалить без изменения замыкания. (Пробуем удалить и смотрим на замыкание, поменялось?)
- Ни один атрибут не может быть удален из детирминанта без изменения замыкания
1.
S =
{
A --> B,
A --> C,
B --> C,
A --> B, (Выше уже есть, удаляем)
AB --> C,
AC --> D
}
2.1 Удаляем зависимость A --> C потому что выводима:
A --> B, B --> C => A --> C
S = {A --> B,B --> C,AB --> C, AC --> D}
2.2 Удаляем AB --> C Потому что выводима:
A --> B, B --> C => AB --> BC
AB --> BC => AB --> C, AB --> B (Вывели)
S = {A --> B,B --> C, AC --> D}
3. Удаляем атрибут из AC --> D и пытаемся вывести AC --> D.
(Удалили C):
A --> D, A --> C (Это у нас есть(можно вывести)) => A --> DC
AС --> DC => AС --> D, AС --> C
Поэтапное решение: