русс | укр

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

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

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

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


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

Соединение без потерь.


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


Пусть задана схема отношения R=(U, F) и ее декомпозиция r=(R1, R2, …, Rk). Говорят, что эта декомпозиция обладает свойством соединения без потерь относительно F, если каждое отношение R для R, удовлетворяющее F, может быть представлено в виде:

R=pR1(R) ç><çpR2(R) ç><ç… pRk(R),

то есть R является естественным соединением его проекций на все Ri. Ясно, что свойство соединения без потерь весьма желательно, поскольку в этом случае может быть восстановлено исходное отношение.

Рассмотрим основные свойства отображения проекция-соединение.

Если r=(R1, R2, ..., Rk), обозначим через Mr отображение, которое определяется соотношением Mr(R)=pR1(R) ç><çpR2(R) ç><ç…pRk(R). Таким образом, условие соединения без потерь относительно F может быть выражено следующим образом: для всех R, удовлетворяющих F, R=Mr(R).

Для любой декомпозиции выполняются следующие условия:

а) R Í Mr(R);

б) если S=Mr(R), то pRi(S)=Ri;

в) Mr(Mr(R))=Mr(R).

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

Для проверки свойства соединения без потерь можно использовать следующий алгоритм.

Пусть заданы схема отношения R = ({А1, А2, ..., An}, F) и декомпозиция r=(R1, R2, ..., Rk), Ri=(Ui), i=1, 2, ..., k.

Строим таблицу с n столбцами и k строками, столбец j соответствует атрибуту Aj, а строка i – схеме отношения Ri. На пересечении строки i и столбца j поместим символ Aj, если AjÎUi. B противном случае поместим туда символ *.

Просматриваем каждую из зависимостей Х¾>Y. Рассматривая зависимость Х—>У, изменяем строки, которые совпадают по всем столбцам, соответствующим атрибутам из X. При обнаружении двух таких строк отождествляем их символы в столбцах, соответствующих атрибутам из Y. Если при этом один из символов в одной из строк равен Aj, а символ другой строки в этом же столбце равен *, то заменяем * на Aj. Повторяем просмотр зависимостей до тех пор пока: либо некоторая строка станет равной А1, А2, ..., Аn; либо больше изменений в таблице провести нельзя. В первом случае декомпозиция r обладает свойством соединения без потерь. Во втором – нет.



Примеры.

Пусть для схемы R=({А1, А2, А3, А4, А5}, {А1¾>А2; А2¾>A3; АЗ,А4¾>А5; А2¾>А4}) получена декомпозиция r = (Rl, R2, R3), где

R1=({А1, А2}), R2=({А2, АЗ, А4}), R3=({АЗ, А4, А5}).

Требуется проверить, обладает ли она свойством соединения без потерь. Построим следующие таблицы:

1-я (начальная таблица):

A1 A2 * * *
* A2 A3 A4 *
* * A3 A4 A5

2-я таблица:

A1 A2 A3 A4 *
* A2 A3 A4 A5
* * A3 A4 A5

3-я таблица:

A1 A2 A3 A4 A5
* A2 A3 A4 A5
* * A3 A4 A5

В последней таблице первая строка представляет собой все Aj, следовательно, декомпозиция обладает свойством соединения без потерь.

Теперь пусть для схемы

R=({А1, А2, А3, А4, А5}, {A1¾>A2; A2¾>A3; A3,A5¾>A4}), получена декомпозиция r = (Rl, R2), где R1 = ({A1, A2}); R2 = ({A2, A3, A4, A5}). Построим следующие таблицы:

1-я таблица:

A1 A2 * * *
* A2 A3 A4 A5

2-я таблица:

A1 A2 A3 * *
* A2 A3 A4 A5

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

Справедливо следующее утверждение.

Если r=(R1(U1), R2(U2)) – декомпозиция R=(U, F), то r обладает свойством соединения без потерь относительно F тогда и только тогда, когда ((U1ÇU2)¾>U1\U2)ÎF+ или ((UlÇU2)—>U2\Ul)ÎF+.

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



<== предыдущая лекция | следующая лекция ==>
Покрытие множеств зависимостей. | Декомпозиции, сохраняющие зависимости.


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


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

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

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


 


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

 
 

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

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