Семинар 8_a

advertisement
С
Семинар
9
Многозначные зависимости и 4НФ
9.1. Пусть в некоторой базе данных содержится информация о торговых
агентах, регионах сбыта и самой продукции.
1 Каждый
1.
К
й агент отвечает за сбыт
б
в одном или нескольких регионах.
2. В каждом регионе имеется один или несколько торговых агентов.
3. Каждый агент отвечает за сбыт одного или более видов продукции.
4 Каждый вид продукции распространяется одним или несколькими
4.
торговыми агентами.
5. Каждый вид продукции продается в каждом регионе.
6 Два торговых агента не могут продавать один и тот же продукт в
6.
одном и том же регионе.
7. Каждый торговый агент продает один и тот же набор продукции в
каждом регионе,
регионе за который он отвечает
отвечает.
Спроектируйте набор переменных-отношений, отвечающий указанным
требованиям к данным.
Решение
Решение.
Сначала введем три переменные-отношения, первичными ключами
которых будут имена торговых агентов, названия регионов и названия
товаров соответственно.
REP { REP#, ... }
AREA { AREA#
AREA#, ... }
PRODUCT { PROD#, ... }
KEY { REP# }
KEY { AREA# }
KEY { PROD# }
2
Затем представим связь между торговыми агентами и регионами с
помощью следующей переменной-отношения
RA {REP#, AREA#}
KEY {REP#, AREA#}
Связь между торговыми агентами и продукцией представим с помощью
переменной-отношения RP.
RP {REP#
{REP#, PROD#}
KEY {REP#,
{REP# PROD#}
Эти переменные-отношения представляют связи типа "многие ко многим".
Далее для описания того, что каждый вид продукции продается в каждом
регионе, необходимо ввести следующую переменную-отношение.
AP {AREA#, PROD#}
KEY {AREA#, PROD#}
Для представления связей, существующих между регионами и
продукцией, установим ограничение С.
AP = AREA {AREA#} TIMES PRODUCT {PROD#}
в ограничении С подразумевается, что переменная-отношение АР не
находится в четвертой нормальной форме. На самом деле переменнаяотношение АР не дает никакой
й дополнительной
й информации,
ф
которая не
может быть получена из других переменных-отношений
AP Project [AREA#] = AREA Project [AREA#]
AP Project [PROD#] = PRODUCT Project [PROD#]
3
Тем не менее пока будем считать, что переменная-отношение АР
включена в проект создаваемой базы данных.
Условие, что никаких два торговых агента не продают один и тот же вид
Условие
продукции в одном и том же регионе, означает, что заданной
комбинации атрибутов {AREA#, PROD#} соответствует только одно значение номера торгового агента (атрибут REP#). Исходя из этого, можно
ввести следующую переменную-отношение.
APR {AREA#,
{AREA# PROD#,
PROD# REP#}
КЕУ { AREA#,
AREA# PROD# }
Здесь реализована следующая ФЗ
{AREA#, PROD#}→REP#
Определение
р д
комбинации
ц
атрибутов
р у
{ AREA#,, PROD#}
} в качестве потенциального ключа переменной-отношения APR является достаточным
условием для выражения этой ФЗ. Теперь переменные-отношения RA, RP
и AP оказались избыточными,
избыточными поскольку они являются проекциями
переменной-отношения АРК, а потому могут быть опущены. Вместо
ограничения C теперь необходимо ввести следующее ограничение C1.
APR Project [AREA#, PROD#]=
AREA Project [ AREA#] TIMES PRODUCT Project [ PROD#]
Оно также должно быть задано отдельно и явным образом, поскольку оно
не предполагается существующими потенциальными ключами.
4
Кроме того, поскольку каждый торговый агент продает весь свой набор
товаров в каждом из обслуживаемых им регионов, для переменнойотношения APR необходимо установить дополнительное ограничение C2
(оно представляет нетривиальную МЗЗ, следовательно, переменнаяотношение APR не находится в 4НФ).
REP#→→ AREA#|PROD#
Таким образом, в окончательном виде проект базы данных состоит из
переменных-отношений REPS, AREAS, PRODUCTS и APR вместе с
заданными явным образом
б
ограничениями C1 и C2.
C2 |
В общем случае порядок нормализации адекватно представляет некоторые семантические аспекты заданной проблемы.
проблемы В основном,
основном зависимости, которые определяются потенциальными ключами, где под
"зависимостями" имеются в виду ФЗ и МЗЗ, а также ЗС
Однако может также потребоваться явное указание дополнительных зависимостей для некоторых особых аспектов, а отдельные аспекты могут
быть и вовсе непредставимы с помощью подобных типов зависимостей.
зависимостей
Задача 8.2 показывает, что не всегда желательно "полностью"
нормализовать некоторую переменную-отношение
переменную отношение (в примере
переменная-отношение APR находится в НФБК, но не в 4НФ).
5
Download