русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Функциональные зависимости и их свойства.


Дата добавления: 2015-07-09; просмотров: 1789; Нарушение авторских прав


Пусть R=(U) – схема отношения, U={Al, A2, ..., Аn} – множество атрибутов, X, YÍU. Говорят, что Х функционально определяет Y или, что Y функционально зависит от X, и обозначают это Х—>Y, если в любом отношении R, являющемся текущим значением схемы R, не могут содержаться два кортежа, компоненты которых совпадают по всем атрибутам, принадлежащим множеству X, но не совпадают хотя по одному атрибуту, принадлежащему множеству Y.

Функциональные зависимости возникают различным образом, например, если R содержит описание набора объектов и А1, А2, ..., An – атрибуты этого типа объектов, а Х – множество атрибутов, образующих его ключ, то можно утверждать, что Х—>Y для любого YÍ{A1, А2, ..., An}. Это следует из того, что кортежи R представляют объекты, а объекты однозначно идентифицируются значениями атрибутов ключа, следовательно, два кортежа, совпадающие по атрибутам, принадлежащим X, должны представлять один и тот же объект и поэтому являются одним и тем же кортежем.

Следует отметить, что функциональные зависимости являются утверждениями обо всех отношениях, которые могут быть значениями схемы R, то есть функциональная зависимость это свойство схемы, а не конкретного экземпляра отношения. Следовательно, невозможно, анализируя конкретное текущее значение R, определить, какие зависимости имеют место для R, в лучшем случае можно утверждать о некоторых зависимостях, что они не имеют места в схеме R. Единственный способ определения функциональных зависимостей для схемы отношения заключается в том, чтобы проанализировать семантику атрибутов. В этом смысле зависимости являются фактически высказываниями о предметной области, они не могут быть доказаны формальными средствами проектирования схем баз данных, хотя, как будет показано ниже, можно выводить новые (не заданные явно при описании схемы) зависимости из уже заданных.



Пусть задано множество атрибутов U={А1, А2, ..., Аn} и некоторое множество функциональных зависимостей F, записанных в виде пар подмножеств (X, Y), X, YÍU, таких, что X—>Y; соответствующую схему отношения будем записывать в виде R=(U, F). Говорят, что зависимость A—>B логически следует из F, если для каждого экземпляра отношения R со схемой R, удовлетворяющего зависимостям F, удовлетворяется также зависимость A—>B. Например, легко показать, что если X—>Y и Y—>Z, то X¾>Z.

Пусть F+ обозначает замыкание F, то есть множество всех функциональных зависимостей, которые логически следуют из F (включая, естественно, само F); F при этом называют системой образующих структуры функциональных зависимостей. Если F+=F, то F называют замкнутым множеством зависимостей. Теперь рассмотрим задачу поиска зависимостей логически следующих из заданного набора F.

Как показал Армстронг, совокупность всех пар (X, Y), таких, что X,YÍU и X—>Y, образует структуру функциональных зависимостей отношения R, которая характеризуется следующим набором аксиом, называемых аксиомами Армстронга.:

а1) если XÊY, то X—>Y (рефлексивность);

а2) если X¾>Y и WÊZ, то XÈW¾>YÈZ (продолжение);

аЗ) если X—>Y и Y—>Z, то X—> Z (транзитивность).

Легко видеть, что аксиомы а2) и аЗ) могут быть объединены в одну аксиому:

а4) если X—>Y и YÈW—> Z, то XÈW—>Z (псевдотранзитивность).

Полезны также следующие свойства, вытекающие из а1)-а3):

а5) если X—>Y и X¾>Z, то X—>YÈZ (аддитивность);

а6) если X¾>Y и Z ÍY, то X—>Z (декомпозиция).

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

Аксиомы Армстронга являются надежными и полными, иными словами, если зависимость X—>Y выведена из F по этим аксиомам, то она выполняется в любом отношении, в котором выполняются все зависимости из F, и наоборот, если некоторая зависимость X¾>Y не выводится из F по аксиомам Армстронга, то можно построить экземпляр отношения, для которого выполняются все зависимости из F и не выполняется зависимость X—>Y.

Пусть задана схема отношения R=(U, F), XÍU, замыканием множества атрибутов Х относительно набора зависимостей F называется множество всех таких атрибутов AiÎU, что зависимость X—>Ai выводится из F по аксиомам Армстронга; замыкание Х обозначают Х+.

Таким образом, Х+ – максимальное по включению подмножество множества U, функционально зависимое от Х при заданном наборе функций F.

Ясно, что зависимость (X—>Y)ÎF, тогда и только тогда, когда Х+ÊY.

Отметим следующие свойства замыканий:

1) X+ÊX;

2) XÊY Þ X+ÊY+;

3) (X+)+=X+.

Аналогичные свойства имеют и замыкания наборов функций.

Вычисление F+ довольно трудоемкая задача, поскольку F+ может быть довольно большим, даже если F мало, и может содержать порядка 2n элементов, где n – количество атрибутов в отношении. Фактически вычисление F+ сводится к вычислению замыканий подмножеств атрибутов.

Аксиомы Армстронга не являются достаточно удобными для непосредственного применения при вычислении замыканий подмножеств атрибутов, обычно используется описанный ниже алгоритм, его правильность легко обосновывается теми же аксиомами Армстронга. Этот алгоритм требует времени пропорционально длине всех выписанных зависимостей из набора F.

Пусть задана схема R=(U, F) и XÌU, требуется вычислить Х+.

Шаг 1: положить Х(0):=Х, i:=0;

Шаг 2: определить DХ(i+1) – множество всех таких атрибутов уÎU\X(i) , что существует некоторая зависимость V—>WÎF, такая что Х(i)ÊV и yÎW;

Шаг 3: если DХ(i+1)=Æ, то Х(i)+ и конец работы, иначе X(i+1):=Х(i)ÈDX(i+1), i:=i+l и перейти к шагу 2.

Поскольку множество атрибутов U конечно, то алгоритм всегда заканчивает работу за конечное число итераций.

Пример.

Пусть R=(U, F) – схема отношения, где U={A1, A2, …, А7},

F={А1,А4—>А2; А2—>A3; АЗ—>А4; А4,А7¾>А5; А5¾>А6;

­­А6—>А7}, множество Х={АЗ, А5}.

Требуется вычислить Х+.

Выпишем последовательность действий для каждого этапа.

Х(0) = (АЗ, А5);

DX(1)= {А4, А6}, Х(1)= {АЗ, А4, А5, А6};

(2)={А7}, Х(2)={АЗ, А4, A5, А6, А7};

DX(3)=Æ, следовательно, Х+= Х(2)={АЗ, А4, А5, А6, А7}.



<== предыдущая лекция | следующая лекция ==>
Нормализация отношений, цели нормализации. | Ключи схем отношений.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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