Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Методы и средства интеграции независимых баз данных в распределенных телекоммуникационных сетях. Монография
.pdf
1) Современные методы интеграции данных предполагают
использование одного из трех основных подходов к интеграции
данных: GAV, LAV и GLAV. В связи с вычислительными
сложностями при обработке запросов при реализации GLAV и LAV
подходов к интеграции данных, большинство методов основано на
использовании подхода GAV к интеграции данных или его
расширений, что накладывает существенные ограничения на
глобальную схему данных и схемы данных подключаемых
источников данных.
2) В современных методах, применяемых при интеграции
данных в сети Интернет (то есть ориентированных на интеграцию
данных Web-форм, текстовых, XML или RDF документов) в
качестве модели данных используются XML, RDF или OWL, что не
позволяет генерировать эффективные запросы к реляционным
источникам данных. В корпоративных сетях базовой является
реляционная модель, поэтому при разработке методов интеграции
данных в корпоративных сетях TCP/IP оправдано использование
реляционной модели.
3) Методы оптимизации запросов к совокупности
независимых источников данных направлены на уменьшение
пересылаемой информации между системой интеграции данных и
источниками данных, большинство методов не предлагают
адекватных механизмов обработки ошибок при доступе к
источникам данных, отсутствуют механизмы параллельного
выполнения запросов с учетом возможной недоступности части
источников данных.
4) Большинство рассмотренных методов не поддерживают
обработку рекурсивных запросов к совокупности источников
данных (что необходимо для эффективной работы с
иерархическими и графовыми структурами).
51

5) Рассмотренные методы обработки противоречивых данных
подразумевают наличие глобальных ограничений целостности. В
случае их отсутствия все данные могут рассматриваться как
допустимые.
6) Целесообразна разработка методов обработки запросов к
совокупности независимых источников данных, позволяющих
распараллеливать элементарные операции обработки в условиях
возможной недоступности части источников данных и тем самым
уменьшить время выполнения запроса.
7) Целесообразна разработка методов построения
отображений, позволяющих «прозрачно» для существующих
приложений подключать к системе интеграции данных новые
источники данных, основанные на моделях данных, облегчающих
генерацию эффективных запросов к реляционным СУБД.
Непосредственно перед тем, как сформулировать постановку
задачи, введем следующие дополнительные определения.
Назовем ответ X на запрос к СИД, полученный в условиях
доступности всех ИД, каноническим. Назовем ответ Y на запрос
уверенным, если и полным, если . Канонический ответ
является полным и уверенным.
При недоступности части ИД может быть невозможным
получить полный ответ на запрос. В этом случае СИД должна
выдать уверенный ответ , наиболее близкий к полному, то есть
такой, что для любого другого уверенного ответа X, который можно
получить в данных условиях, . Такой ответ
назовем
релевантным запросу.
В контексте данных определений задачей, решению которой
посвящена настоящая монография является разработка методов и
реализующих их программных средств, обеспечивающих
минимизацию времени t получения релевантного ответа на запрос
52

Q, выраженный на Datalog-подобном языке запросов:
при заданных начальных данных:
D - глобальная схема виртуальной базы данных, к которой
сформулирован запрос,
M - список ИД и запросов к ним, на которые отображаются
используемые в запросе предикаты глобальной схемы,
A - опциональные (необязательные) сведения о доступности
источников данных,
V - опциональные статистические сведения о скорости каналов
передачи данных,
L - опциональные статистические сведения о задержках
каналов,
S - опциональные статистические сведения о распределении
значений атрибутов для представлений, соответствующих
используемым в запросе Q предикатам.
При этом уточним, что имеется в виду создание методов
уменьшения t, а не нахождение экстремума значения данной
функции в математическом смысле.
Решение поставленной задачи и экспериментальной
апробация предложенного решения рассматриваются в
последующих главах настоящей работы.
53

2. МЕТОДЫ ОБРАБОТКИ И ОПТИМИЗАЦИИ ЗАПРОСОВ В
РАСПРЕДЕЛЕННОЙ СЕТИ
Проведенный в предыдущей главе анализ показал
трудности, возникающие при использовании
стандартных подходов
к описанию отображений и при отсутствии механизмов
параллельного выполнения запросов, которые учитывали бы
специфику работы в распределенной сети, в частности, возможную
недоступность значительной части ИД.
В настоящей главе в мере, необходимой для понимания
описываемых методов, рассматриваются методы обработки и
оптимизации запросов к реляционным ИД в распределенной сети и
средства, построенные на базе этих методов. Рассматриваемые ниже
методы позволяют учитывать в существующих программных
системах, построенных на базе СИД, данные новых ИД при их
добавлении, увеличить скорость обработки запросов СИД за счет
параллельного опроса ИД, а также обрабатывать сбои ИД.
2.1. Краткое описание предлагаемых методов и
реализующих их средств
Описываемые в данной
главе методы предназначены для
обработки и оптимизации запросов к совокупности ИД в
распределенной сети и предназначены для использования в СИД.
При разработке рассматриваемых методов нами учитывался
ряд факторов, характерных для работы с множеством ИД К числу
главных из этих факторов относятся: довольно высокая вероятность
недоступности значительной части ИД (например, в связи с
проблемами на каналах передачи данных); возможность
несогласованности данных, предоставляемых различными ИД (в
связи с различным административным управлением); а также
неполнота ИД (ни один ИД или их группа, скорее всего, не будет
содержать всю информацию, доступную из других ИД). Также при
54

разработке методов оптимизации запросов учитывались
относительно небольшие объемы предоставляемой пользователю
информации (это связано с тем, что человек не может
непосредственно воспринять большое количество информации, и,
следовательно, обычно нет необходимости обрабатывать запросы,
возвращающие тысячи записей), и, вместе с тем, доступность
довольно большого количества независимых ИД. Основным
направлением оптимизации выполнения запросов является
повышение эффективности извлечения информации из доступных
ИД.
Рассматриваемые методы можно разбить на две группы:
1) метод определения используемых в запросе источников
данных, применяемый при преобразовании запросов к глобальной
схеме в совокупность запросов к локальным схемам и позволяющий
учитывать информацию новых ИД при их добавлении в
программные системы, построенных на базе СИД;
2) методы обработки и оптимизации запросов, позволяющие
проводить параллельное извлечение информации из множества ИД
и обрабатывать сбои, возникающие при обращении к ИД.
Первая группа методов связана с используемыми Datalogподобной моделью данных и предикатами с именованными
аргументами (ПИА), предложенными авторами [2-4]. Использование
данного языкового средства не только повышает выразительность
языка запросов, но и позволяет существующим программам
использовать информацию, предоставляемую добавляемыми к
системе ИД новых типов.
Вторая группа методов связана с использованием
предложенных в [2-4] групп операций (ГО). ГО объединяют
независимые операции по извлечению данных из одного или
нескольких ИД, соответствующие подзапросу обрабатываемого
запроса. Между группами операций строятся зависимости,
55

позволяющие обрабатывать сбои при выполнении операций группы и
при необходимости распространять сбои на зависимые ГО.
Для того, чтобы особенности методов обработки запросов были
более понятными, вкратце рассмотрим схему взаимодействия
прикладных программ с разработанной авторами СИД DISGO,
построенной на базе предложенных методов.
Система DISGO принимает запросы к данным, структура
которых описывается глобальной схемой. Глобальная схема
представляет из себя набор явных предикатов, непосредственно
отображающихся на запросы к подсоединенным ИД, и правил,
определяющих способы вывода неявных предикатов на основе
определенных ранее предикатов [2]. Запросы формулируются на
разработанном автором расширении ЯЗ Datalog'а без явного
отрицания – DISGO QL.
Рис.2.1: Общая схема обработки запроса пользователя
Схема работы системы DISGO представлена на рис. 2.1.
Система транслирует запросы пользователя, выраженные на DISGO
QL (пометка 1 рисунка, далее пометки указываются в виде
заключенных в скобки номеров), в совокупность запросов на языке
56

SQL, используя в качестве промежуточного представления язык
реляционной алгебры. В процессе преобразования запроса и
определения необходимых ИД опрашивается словарь СИД (2). Чтобы
собрать необходимую информацию, система исполняет запросы в
подсоединенных СУБД (3). Полученная информация временно
сохраняется в центральной СУБД (3.1). Затем выполняется серия
запросов к центральной СУБД (4) для формирования ответа на
запрос из совокупности данных, полученных по указанным выше
запросам от подсоединенных ИД.
В ответ на запрос система DISGO возвращает код ответа
(который обозначает, все ли ИД удалось опросить) и таблицу
привязок переменных предикатов (ТПП). Эта таблица содержит
значения переменных, при которых истинно логическое утверждение
запроса (5). Термином ТПП в логических языках называется
множество значений, которые может принимать совокупность
переменных, фигурирующих в запросе.
2.2. Метод определения источников данных,
используемых в запросе к распределенной совокупности
источников данных
В Настоящем параграфе описываются методы определения
используемых
в запросе источников данных, которые позволяют
приложениям при добавлении в СИД ИД нового типа использовать
информацию из этих ИД. Данные методы основываются на
применении в качестве модели данных и языка запросов
расширенной версии Datalog'а, а именно на использовании
предложенных авторами предикатов с именованными переменными
(ПИА) [2,4].
2.2.1. Используемая модель данных
Предполагается, что глобальная
схема и данные
представляются системой предикатов и правил Datalog-подобного
57

языка. В языке запросов (ЯЗ) Datalog предикаты могут либо
непосредственно отображаться на отношения реляционной СУБД
(такие предикаты называются явными), либо могут быть выражены с
помощью логических операций ‘И’ и ‘ИЛИ’ через другие предикаты
(такие предикаты называются неявными). Программа на языке
Datalog состоит из набора правил, определяющих неявные
предикаты на основе известных явных или определенных ранее
неявных предикатов (аналог определения схемы БД), и запроса к
определенным таким образом предикатам. Явные предикаты
определяют набор фактов, на базе которых система пытается
определить, при каких условиях на значения переменных,
используемых пользователем, утверждение, приведенное в запросе, истинно. Одной из разновидностей Datalog'а является Datalog без
явного отрицания. В этом подмножестве Datalog'а не допускается
использовать отрицания в правой части правил.
Рассмотрим пример запроса на языке Datalog. Пусть в схеме
СУБД определены отношения
Employees(Emp_id, first_name, last_name, email, salary, job,
mgr_id, department_id), описывающее работников предприятия, и
Departments(dept_id, department_name, manager_id, location_id),
описывающее его отделы.
Тогда для определения того, в каком отделе работает служащая
Elizabeth Bates, можно использовать следующий запрос (рис. 2.2).
answer(DNAME):Employees(EID, «Elizabeth», «Bates»,EMAIL,SALARY,JOB,MID,DID),
Departments(DID,DNAME,MID2,LID)
?- answer(DNAME)
Рис.2.2. Пример запроса на языке Datalog
В данном запросе определяется неявный предикат answer,
имеющий один аргумент - название отдела. Данный предикат
истинен для имен отделов, идентификаторы которых совпадают с
идентификаторами отделов, в которых работает сотрудник с именем
58

Elizabeth и фамилией Bates. Совпадение идентификаторов задается
путем использования одной и той же переменной DID в обращении к
предикатам Employees и Departments. Затем задается вопрос — при
каких значениях переменной DNAME предикат answer истинен.
В Datalog'е с явным отрицанием возможна обработка
следующего запроса (рис. 2.3). Приведенный запрос выбирает
известные системе отделы, в которых не работает Elizabeth Bates.
Программа Datalog'а с явным отрицанием, вообще говоря, не
может быть переписана в виде программы Datalog'а без явного
отрицания. С другой стороны, обработка программ Datalog'а с явным
отрицанием может выполняться очень неэффективно (например, при
использовании операции отрицания по отношению к неявным
предикатам). Также невозможна генерация непустого уверенного
ответа на запрос пользователя при недоступности ИД, на основе
которых определяется отрицаемый предикат в хвосте правила
программы. В Datalog'е без явного отрицания недоступность ИД
может привести к получению неполных ответов на запросы, но
ответы все равно остаются уверенными.
dep_cont_elizabeth(DNAME):Employees(EID,«Elizabeth»,«Bates»,EMAIL,SALARY,JOB,MID,DID),Department
s(DID,DNAME,MID2,LID);
answer(DNAME):Departments(DID,DNAME,EID,LID),not dep_cont_elizabeth(DNAME);
?- answer(DNAME)
Рис. 2.3. Запрос с явным отрицанием
В связи с описанными сложностями в интерпретации запросов с
явным отрицанием, принято решение в качестве основы
используемого языка запросов применять расширенную версию
языка Datalog'а без явного отрицания (DISGO QL),
модифицированная для применения в качестве языка запросов СИД
[2].
59

Основными особенностями DISGO QL являются отсутствие
строгого разделения на явные и неявные предикаты, введение
пространств имен (ПИ) для обозначения различных систем
предикатов и использование предикатов с именованными
аргументами (ПИА).
Во-первых, в DISGO QL отсутствует строгое разделение
предикатов на явные и неявные. Каждый предикат глобальной
схемы может отображаться на отношения подсоединенных ИД и
одновременно быть выраженным через другие предикаты. Это
несколько упрощает создание глобальной схемы, а также дает
пользователям возможность расширять предикаты глобальной схемы
вне зависимости от того, были они определены явно или неявно.
Упрощение создания глобальной схемы связано с тем, что
предложенные возможности позволяют учитывать различное
представление логически эквивалентной информации в разных ИД.
Например, ИД A может предоставлять информацию о лекциях явно
(в виде отношения Lecture (name, lector, hours)), а ИД B неявно, (в
виде тех кортежей отношения Subject, где атрибут type имеет
значение «lecture»). В таких случаях в традиционном Datalog'е
требуется три предиката для представления данной информации1
(по одному явному предикату для сведений, предоставляемых ИД A
и ИД B, и один неявный предикат, объединяющий данную
информацию). В DISGO QL в подобном случае требуется два
предиката - один предикат (назовем его subject), определенный
явным образом (отображающийся на отношение Subject) и один
предикат, который может быть задан как явно (отображающимся на
отношение Lecture), так и неявно (выражаться через предикат subject
посредством правила языка DISGO QL).
Второе расширение состоит в том, что в DISGO QL введено
понятие пространств имен (ПИ), как средства разделения всего
1
Здесь под представлением информации имеется ввиду создание глобальной схемы и задание
отображения между ней и схемами ИД A и ИД B
60
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
