ВУЗ:
Составители:
Рубрика:
Вывод. Все обнаруженные аномалии обновления устранены. Реляционная модель, состоящая из че-
тырёх отношений –
СОТРУДНИКИ
,
ОТДЕЛЫ
,
ПРОЕКТЫ
,
ЗАДАНИЯ
, находящихся в третьей нор-
мальной форме, является адекватной описанной модели предметной области и требует наличия только
тех триггеров, которые поддерживают ссылочную целостность. Такие триггеры являются стандартными
и не требуют больших усилий в разработке.
Алгоритм нормализации
(
приведение к 3НФ
). Итак, алгоритм нормализации (т.е. алгоритм при-
ведения отношений к 3НФ) описывается следующим образом.
Шаг 1
(
Приведение к 1НФ
). На первом шаге задаётся одно или несколько отношений, отображаю-
щих понятия предметной области. По модели предметной области (не по внешнему виду полученных
отношений!) выписываются обнаруженные функциональные зависимости. Все отношения автоматиче-
ски находятся в 1НФ.
Шаг 2
(
Приведение к 2НФ
). Если в некоторых отношениях обнаружена зависимость атрибутов от
части сложного ключа, то проводим декомпозицию этих отношений на несколько отношений следую-
щим образом: те атрибуты, которые зависят от части сложного ключа, выносятся в отдельное отноше-
ние вместе с этой частью ключа. В исходном отношении остаются все ключевые атрибуты:
Исходное отношение:
(
)
mn
BBAAKKR
...,,,...,,,,
1121
.
Ключ:
{
}
21
,
KK
– сложный.
Функциональные зависимости:
{
}
{
}
mn
BBAAKK
...,,,...,,,
1121
→
– зависимость всех атрибутов от ключа отношения.
{
}
{
}
n
AAK
...,,
11
→
– зависимость некоторых атрибутов от части сложного ключа.
Декомпозированные отношения:
(
)
m
BBKKR
...,,,,
1211
– остаток от исходного отношения. Ключ
{
}
21
,
KK
.
(
)
n
AAKR
...,,,
112
– атрибуты, вынесенные из исходного отношения вместе с частью сложного ключа.
Ключ
K
1
.
Шаг 3
(
Приведение к 3НФ
). Если в некоторых отношениях обнаружена зависимость некоторых не-
ключевых атрибутов других неключевых атрибутов, то проводим декомпозицию этих отношений сле-
дующим образом: те неключевые атрибуты, которые зависят от других неключевых атрибутов, выносятся
в отдельное отношение. В новом отношении ключом становится детерминант функциональной зависимо-
сти:
Исходное отношение:
(
)
m
BBKR
...,,,
11
.
Ключ:
K
.
Функциональные зависимости:
{
}
mn
BBAAK
...,,,...,,
11
→
– зависимость всех атрибутов от ключа отношения.
{
}
mn
BBAA
...,,{}...,,
11
→
– зависимость некоторых неключевых атрибутов от других неключевых ат-
рибутов.
Декомпозированные отношения:
(
)
n
AAKR
...,,,
11
– остаток от исходного отношения.
Ключ:
K
.
(
)
mn
BBAAR
...,,,...,,
112
– атрибуты, вынесенные из исходного отношения вместе с детерминантом
функциональной зависимости. Ключ
{
}
n
AA
...,,
1
.
Замечание. На практике при создании логической модели данных, как правило, не следуют прямо
приведённому алгоритму нормализации. Опытные разработчики обычно сразу строят отношения в
3НФ. Кроме того, основным средством разработки логических моделей данных являются различные ва-
рианты ER-диаграмм. Особенность этих диаграмм в том, что они сразу позволяют создавать отношения
в 3НФ. Тем не менее приведённый алгоритм важен по двум причинам. Во-первых, этот алгоритм пока-
зывает, какие проблемы возникают при разработке слабо нормализованных отношений. Во-вторых, как
правило, модель предметной области никогда не бывает правильно разработана с первого шага. Экспер-
ты предметной области могут забыть о чём-либо упомянуть, разработчик может неправильно понять
эксперта, во время разработки могут измениться правила, принятые в предметной области и т.д. Всё это
может привести к появлению новых зависимостей, которые отсутствовали в первоначальной модели
предметной области. Тут как раз и необходимо использовать алгоритм нормализации хотя бы для того,
чтобы убедиться, что отношения остались в 3НФ и логическая модель не ухудшилась.
Страницы
- « первая
- ‹ предыдущая
- …
- 27
- 28
- 29
- 30
- 31
- …
- следующая ›
- последняя »