Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабы / golenishev_iosu.pdf
Скачиваний:
273
Добавлен:
26.04.2015
Размер:
5.36 Mб
Скачать

 

Локальность

Надежность и

Производительность

Стоимость

Затраты на

 

ссылок

доступность

 

устройств

передачу

 

 

 

 

хранения

 

 

 

 

 

данных

 

Централизованное

Самая низкая

Самая низкая

Неудовлетворитель-

Самая низкая

Самая высокая

 

 

 

ная

 

 

Фрагментирова

Высокая

Низкая для отдельных

Удовлетворительная

Самая низкая

Низкая

иное

 

элементов; высокая для

 

 

 

 

 

системы в целом

Хорошая для

Самая высокая

Высокая для

Полная репликация

Самая высокая

Самая высокая

операций чтения

 

операций

 

 

 

 

 

обновления, низкая

 

 

 

 

 

для операций

 

 

 

 

 

чтения

Выборочная

высокая

Низкая для отдельных

Удовлетворительная

Средняя

Низкая

репликация

 

элементов, высокая для

 

 

 

 

 

системы

 

 

 

5.5.2. Фрагментация

Необходимость фрагментации вызывают следующие причины [7].

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

Эффективность. Данные хранятся в тех местах, в которых они чаще всего используются. Кроме того, исключается хранение данных, которые не используются локальными приложениями.

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

Защищенность. Данные, не используемые локальными приложениями, не хранятся на сайтах, а значит, неавторизированные пользователи не смогут получить к ним доступ.

Механизму фрагментации свойственны два основных недостатка.

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

Целостность данных. Поддержка целостности данных может существенно осложняться, поскольку функционально зависимые данные могут оказаться фрагментированными и

размещаться на различных сайтах.

При проведении фрагментации следует обязательно придерживаться трех следующих правил [7].

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

2.Восстановитостъ. Должна существовать операция реляционной алгебры, позволяющая

восстановить отношение R из его фрагментов. Это правило гарантирует сохранение функциональных зависимостей.

3. Непересекаемость. Если элемент данных di присутствует во фрагменте Ri, то он не должен одновременно присутствовать в каком-либо ином фрагменте. Исключением из этого правила является операция вертикальной фрагментации, поскольку в этом случае в каждом фрагменте должны присутствовать атрибуты первичного ключа, необходимые для восстановления исходного отношения. Данное правило гарантирует минимальную избыточность данных во фрагментах.

В случае горизонтальной фрагментации элементом данных является кортеж, а в случае вертикальной фрагментации – атрибут.

Существуют два основных типа фрагментации (рис. 5.5, а, б):

горизонтальная,

вертикальная.

Горизонтальные фрагменты представляют собой подмножества кортежей отношения, а вертикальные

107

подмножества атрибутов отношения.

Кроме того, различают смешанную (рис. 5.5, в, г) и производную (вариант горизонтальной) фрагментации.

Горизонтальный фрагмент – выделенный по горизонтали фрагмент отношения, состоящий из некоторого подмножества кортежей этого отношения.

Горизонтальный фрагмент создается посредством определения предиката, с помощью которого выполняется отбор кортежей из исходного отношения. Данный тип фрагмента определяется с помощью операции выборки (селекции) реляционной алгебры (см. гл. 4). Операция выборки позволяет выделить группу кортежей, обладающих некоторым общим для них свойством, – например, все кортежи, используемые одним из приложений, или все кортежи, применяемые на одном из сайтов.

Рис. 5.5. Типы фрагментации:

а) горизонтальная; 6) вертикальная; в) горизонтально разделенные вертикальные фрагменты; г) вертикально разделенные горизонтальные фрагменты

В одних случаях целесообразность использования горизонтальной фрагментации вполне очевидна. Однако в других случаях потребуется выполнение детального анализа приложений. Этот анализ должен включать проверку предикатов (или условий) поиска, используемых в транзакциях или запросах, выполняемых в приложении. Предикаты могут быть простыми, включающими только по одному атрибуту, или сложными, включающими несколько атрибутов. Для каждого из используемых атрибутов предикат может содержать единственное значение или несколько значений. В последнем случае значения могут быть дискретными или задавать диапазон значений.

Стратегия определения типа фрагментации предполагает поиск набора минимальных (т.е. полных и релевантных) предикатов, которые можно будет использовать как основу для построения схемы фрагментации [7].

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

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

Вертикальный фрагмент – выделенный по вертикали фрагмент отношения, состоящий из подмножества атрибутов этого отношения.

При вертикальной фрагментации в различные фрагменты объединяются атрибуты, используемые отдельными приложениями. Определение фрагментов в этом случае выполняется с помощью операции проекции реляционной алгебры (см. гл.4).

Вертикальные фрагменты определяются путем установки родственности одного атрибута по отношению к другому. Один из способов решить эту задачу состоит в создании матрицы, содержащей количество обращений с выборкой каждой из пар атрибутов. Например, транзакция, которая осуществляет доступ к атрибутам A1, A2 и А4 отношения R, состоящего из набора атрибутов (А1, А2, А3, А4 ), может быть представлена следующей матрицей.

108

Соседние файлы в папке лабы