Организация баз данных

Методическое пособие - Педагогика

Другие методички по предмету Педагогика

сократить множество ФЗ до компактных размеров, поскольку, функциональные зависимости являются ограничениями целостности, поэтому при каждом обновлении данных в СУБД все они должны быть проверены.

 

  1. Тривиальные и нетривиальные зависимости

 

Очевидным способом сокращения размера множества ФЗ было бы исключение тривиальных зависимостей, т.е. таких, которые не могут не выполняться. В качестве примера приведем тривиальную ФЗ для отношения SR:

{StNo, GrNo} {StNo}

Фактически ФЗ тривиальна тогда и только тогда, когда правая часть символической записи данной зависимости является подмножеством (не обязательно собственным подмножеством) левой части.

 

  1. Замыкание множества зависимостей и правила вывода Армстронга

 

Некоторые функциональные зависимости обозначают другие функциональные зависимости. Например, функциональная зависимость:

{StNo}{GrNo,StName}
подразумевает следующие функциональные зависимости:

{StNo}{GrNo}

{StNo}{StName}

Множество всех ФЗ, которые задаются данным множеством функциональных зависимостей S, называется замыканием S и обозначается символом S+.

Поскольку функциональные зависимости являются ограничениями целостности, которые должны быть проверены СУБД, желательно для заданного множества ФЗ S найти такое множество ФЗ которое было бы гораздо меньшего размера, чем множество S, причем каждая ФЗ множества S могла бы быть заменена функциональной зависимостью множества T. Для решения этой задачи следует найти способ вычисления S+ на основе S.

Первой попыткой решить эту проблему была статья Армстронга (Armstrong), в которой представлен набор правил вывода функциональных зависимостей на основе заданных (эти правила также называются аксиомами Армстронга).

Правила вывода Армстронга. Пусть в перечисленных ниже правилах А, В, С и D произвольные подмножества множества атрибутов заданного отношения R, а символическая запись АВ означает объединение А и В.

  1. Рефлексивность: если В является подмножеством А, то АВ.
  2. Дополнение: если АВ, то АСВС.
  3. Транзитивность: если АВ и ВС, то АС.

Каждое из этих правил может быть непосредственно доказано на основе определения функциональной зависимости (первое из них это всего лишь определение тривиальной зависимости). Более того, эти правила являются полными в том смысле, что для заданного множества функциональных зависимостей S минимальный набор ФЗ, которые подразумевают все зависимости S, может быть выведен из S на основе этих правил. Они также являются исчерпывающими, поскольку никакие дополнительные ФЗ не могут быть выведены (т.е. ФЗ, которые не подразумеваются зависимостями множества S). Иначе говоря, эти правила могут быть использованы для получения замыкания S+.

Из трех описанных выше правил для упрощения задачи практического вычисления замыкания S можно вывести несколько других правил. (Пусть D это другое произвольное подмножество множества атрибутов R.).

  1. Самоопределение: АА.
  2. Декомпозиция: если АВС, то АВ и АC.
  3. Объединение: если AВ и АС, то АВС.
  4. Композиция: если АВ и СD, то ACBD.
  5. Если АВ и СD, то А (С В) BD (где символ "" обозначает объединение множеств, а символ "" их разность).Это правило называют также теоремой всеобщего объединения.

Например. Пусть дано некоторое отношение R с атрибутами А, В, С, D, Е, F и следующими ФЗ:

А{ВС}

ВЕ

{CD}{EF}

Далее символами, записанными подряд, например ВС, будем обозначать множество, состоящее из атрибутов В и С, а не объединение В и С.

Этому примеру можно придать более конкретный смысл, а именно: А номер сотрудника, В номер отдела, С номер руководителя (начальника) данного сотрудника, D номер проекта, возглавляемого данным руководителем (уникальный для каждого отдельно взятого руководителя), Е название отдела, F доля времени, уделяемая данным руководителем заданному проекту.

Показать, что зависимость ADF выполняется для отношения R и таким образом принадлежит замыканию данного множества ФЗ.

  1. АВС(дано);
  2. АС(из 1 согласно декомпозиции);
  3. ADCD(из 2 согласно дополнению);
  4. CDEF(дано);
  5. ADEF(из 3 и 4 согласно транзитивности);
  6. ADF(из 5 согласно декомпозиции).
  7. Неприводимое множество зависимостей

 

Пусть S1 и S2 являются двумя множествами ФЗ. Если любая ФЗ, которая является зависимостью множества S1, также является зависимостью множества S2, т.е. если S1+ является подмножеством S2+ то S2 называется покрытием для S1. Это значит, что если накладываемые в СУБД ограничения представлены зависимостями множества S2, то в этой СУБД также наложены ограничения на основе зависимостей множества S1.

Далее, если S2 является покрытием для S1, а S1 покрытием для S2, т.е. если S1+=S2+ , то S1 и S2 эквивалентны. Ясно, что если S1 и S2 эквивалентны и наложенные в СУБД ограничения представлены зависимостями множества S2, то эти ограничения также могут быть представлены зависимостями множества S1, верно также и обратное утверждение.

Множество ФЗ называется неприводимым тогда и только тогда, когда выполняются перечисленные ниже свойства.

  1. Правая часть (зависимая часть) каждой ФЗ множества S содержит только один атрибут (т.е. является одноэлементным множеством).
  2. Левая часть (детерминант) каждой ФЗ множества S является неприводимой, т.е. ни один атрибут не может быть опущен из детерминанта без изменения замыкания S+ (без конвертирования множества S в некоторое множество, не эквивалентное множеству S). В таком случае ФЗ является непри?/p>
pt"> (function (d, w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter20573989 = new Ya.Metrika({id:20573989, webvisor:true, clickmap:true, trackLinks:true, accurateTrackBounce:true}); } catch(e) { } }); var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function () { n.parentNode.insertBefore(s, n); }; s.type = "text/javascript"; s.async = true; s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "../../http/mc.yandex.ru/metrika/MS_8.js"; if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); } })(document, window, "yandex_metrika_callbacks");