Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Всегда ли следует стремиться к BCNF?

 

Предположим теперь, что в организации все проекты включают разные задания, и по-прежнему каждый служащий может участвовать в нескольких проектах, но может выполнять в каждом проекте только одно задание. Одно задание в каждом проекте могут выполнять несколько служащих. Тогда переменная отношения СЛУЖ_ПРО_ЗАДАН имеет множество FD, показанное на рис. 7.9, и может содержать значение, показанное на том же рисунке.

 

Диаграмма FD отношения СЛУЖ_ПРО_ЗАДАН (новый вариант)

 

 
 

 

 


Значение переменной отношения СЛУЖ_ПРО_ЗАДАН (новый вариант)

 

СЛУ_НОМ ПРО_НОМ ПРО_ЗАДАН
    A
    A
    B
    C
    D

 

Рис. 7.9. Новый вариант переменной отношения СЛУЖ_ПРО_ЗАДАН

В этом отношении два возможных ключа: {СЛУ_НОМ, ПРО_НОМ} и {СЛУ_НОМ, СЛУ_ЗАДАН}. Отношение удовлетворяет требованиям 3NF: отсутствуют не минимальные FD неключевых атрибутов от возможных ключей (поскольку нет неключевых атрибутов), и отсутствуют транзитивные FD. Однако по причине наличия FD СЛУ_ЗАДАН® ПРО_НОМэто отношение не находится в BCNF. Поэтому отношению СЛУ_ПРО_ЗАДАН снова свойственны аномалии обновления. Например (поскольку СЛУ_НОМявляется компонентом обоих возможных ключей), невозможно удалить данные о единственном служащем, выполняющем задание в некотором проекте, не утратив информацию об этом задании.

 

Можно привести отношение СЛУЖ_ПРО_ЗАДАН к BCNF, произведя его декомпозицию на отношения СЛУЖ_НОМ_ЗАДАН {СЛУ_НОМ, СЛУ_ЗАДАН}*и ПРО_НОМ_ЗАДАН{СЛУ_ЗАДАН, ПРО_НОМ}, и эта декомпозиция решает отмеченные проблемы (теперь можно хранить данные о задании проекта, не выполняемом ни одним служащим). Значения переменных отношений СЛУЖ_НОМ_ЗАДАН и ПРО_НОМ_ЗАДАНпоказаны на рис. 7.10.

 

Значение переменной отношения СЛУЖ_НОМ_ЗАДАН

 

СЛУ_НОМ ПРО_ЗАДАН
  A
  A
  B
  C
  D

 

Значение переменной отношения ПРО_НОМ_ЗАДАН

 

ПРО_НОМ ПРО_ЗАДАН
  A
  B
  C
  D

 

Рис. 7.10. Значения переменных отношений СЛУЖ_НОМ_ЗАДАН и ПРО_НОМ_ЗАДАН

 

Однако возникают новые трудности. Например, система должна запретить добавление в отношение СЛУЖ_НОМ_ЗАДАН кортежа <2934, D>, поскольку задание D относится к проекту 1, а служащий с номером 2934 уже выполняет задание в этом проекте. Так происходит, потому что исходная FD {СЛУ_НОМ, ПРО_НОМ} ® СЛУ_ЗАДАНне выводится из единственной (нетривиальной) действующей для этих проекций FD СЛУ_ЗАДАН® ПРО_НОМ,и соответствующее ограничение целостности становится ограничением базы данных.

 

Тем самым, проекции СЛУЖ_НОМ_ЗАДАН и ПРО_НОМ_ЗАДАН не являются независимыми, а отношение СЛУЖ_ПРО_ЗАДАН атомарно, хотя и не находится в BCNF. Из этого следует, что при проектировании реляционной базы данных приведение отношения к BCNF не должно быть самоцелью. Нужно внимательно оценивать положительные и отрицательные последствия нормализации.

 

Наконец, приведем пример, когда наличие двух перекрывающихся возможных ключей не мешает отношению находиться в BCNF. Предположим, что в организации проекты включают одни и те же задания, каждый служащий может участвовать в нескольких проектах, но может выполнять в каждом проекте только одно задание. Тогда переменная отношения СЛУЖ_НОМ_ЗАДАН имеет множество FD, показанное на рис. 7.11, и может содержать значение, показанное на том же рисунке.

 

Диаграмма FD отношения СЛУЖ_НОМ_ЗАДАН (третий вариант)

 

       
   

 

 


Возможное значение переменной отношения СЛУЖ_НОМ_ЗАДАН (третий вариант)

 

СЛУ_НОМ ПРО_НОМ СЛУ_ЗАДАН
    A
    B
    B
    A
    D

 

Рис. 7.11. Третий вариант отношения СЛУЖ_НОМ_ЗАДАН

 

В третьем варианте отношения СЛУЖ_НОМ_ЗАДАН имеются перекрывающиеся возможные ключи ({СЛУ_НОМ, ПРО_НОМ} и {ПРО_НОМ, СЛУ_ЗАДАН}), однако оно находится в BCNF, поскольку эти ключи являются единственными детерминантами. Легко убедиться, что отношению СЛУЖ_НОМ_ЗАДАН не свойственны аномалии обновления.

 

<== предыдущая лекция | следующая лекция ==>
Нормальная форма Бойса-Кодда | Ключевые слова. В этой лекции мы обсудили три начальные нормальные формы отношений – вторую и третью нормальные формы и нормальную форму Бойса-Кодда
Поделиться с друзьями:


Дата добавления: 2014-01-03; Просмотров: 327; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.