СИСТЕМА МАССОВОЙ ИНТЕГРАЦИИ БАЗ ДАННЫХ: ФУНКЦИОНАЛЬНЫЕ ВОЗМОЖНОСТИ И СПОСОБ РЕАЛИЗАЦИИ В.Н. Коваленко, Е.И. Коваленко, А.Ю. Куликов Институт прикладной математики им. М.В.Келдыша РАН
Постановка задачи массовой интеграции Количество интегрируемых баз данных велико (100 и более) Аспекты интеграции: – язык массовых запросов; – управление инфраструктурой; – интеграция данных; – контроль доступа. 2/10
Язык массовых запросов Строится в терминах глобальной схемы таблиц Формирование групп на основе метаинформации SELECT avg(MSK.person.salary) FROM MSK.person WHERE MSK.region=Moscow 3/10
Язык запросов: состав группы SELECT avg(MSK.person.salary) FROM MSK.person WHERE MSK.region=Москва БД1 БД2 БД3 region: Москва … region: Москва … region: СПБ … 4/10
Язык запросов: интерпретация SELECT avg(MSK.person.salary) FROM MSK.person БД1 БД2 person namebirthdatepassport person: SELECT1 … person: SELECT2 … MSK.person = SELECT1 UNION SELECT2 SELECT avg(MSK_person.salary) FROM (SELECT1 UNION SELECT2) AS MSK_person 5/10
Выполнение запросов БД ВС Центральный сервер 6/10 Массовый запрос ВС
Управление инфраструктурой Объекты администрирования: – База данных – Вычислительный сервер Удаленное выполнение операций. На базу данных не устанавливается дополнительное ПО. Изменения инфраструктуры не прерывают выполняющиеся запросы. 7/10
Контроль доступа Контроль доступа к: – базам данных; – глобальным таблицам и их полям; – строкам таблиц. Правила: ИД=значение, СФД=значение, СПЕЦ=значение, РОЛЬ=значение Доступные БД Доступные таблицы 8/10
Расширение OGSA-DAI/DQP Массовые запросы и адресация групп БД Интеграция данных на основе отображений Динамическое формирование инфраструктуры Балансировка нагрузки на вычислительные ресурсы Контроль доступа 9/10
PAX сервера 10/10
11
12
Балансировка нагрузки SELECT avg(MSK_person.salary) FROM (SELECT1 UNION SELECT2) AS MSK_person SELECT1 SELECT2 БД1 БД2 UNION avg ВС1 ВС2 ВС3 ВС1 ВС2 13/11
Расширение OGSA-DAI/DQP БД OGSA-DAI Измененный OGSA-DAI/DQP Измененный OGSA-DAI/DQP 14
Выбор подмножества БД 15
Интеграция данных GAV G Q(D1, … DM} Query(G, …) Query(Q(D1,..DM),…) Dnew: G Q(D1, … DM, Dnew) LAV D.L Q(G1,.. GN) Query(G,..) TransformedQuery(D1,..DM) Dnew: Dnew.L -> Q(G1,.. GN) 16
Ограничение Global As View - состав баз данных фиксирован -позволяет выделить подзапросы к интегрируемым БД GAV G -> Q(D1, …DN) Ограничение GAV G -> Q1(D1) U … U QN(DN) 17
Понятие группы БД … … … … 18
Формирование группы БД Название = A Тип = завод Регион = Москва … Название = B Тип = завод Регион = Москва … Название = C Тип = больница Регион = Москва … 19
Расширение языка SQL - именование схем отношений. - именование метаатрибутов. SELECT GroupA.G1.field, GroupA.metaattribute FROM GroupA.G1 20
Составление массового запроса GroupA : {Dk | Имя = Институт} SELECT * FROM GroupA.G1; SELECT * FROM GroupA.G1 WHERE GroupA.Имя=Институт; 21
22
D2 Пример G SELECT a, b, c FROM D1.L UNION (SELECT a, b, c FROM D2.L JOIN D3.L ON ext_id = id) G SELECT a, b, c FROM D1.L UNION (SELECT a, b, c FROM D2.L1 JOIN D2.L2 ON ext_id = id) D1.L abc D2.L aext_id D3.L idbc G abc 23
Добавление базы данных … … 24
Подходы к интеграции БД Физическая интеграция Виртуальная интеграция БД Центральная БД Центральная БД Медиатор 25
Преобразование запроса 26
Метаатрибуты в запросе … … … … Имя = Институт Регион = Москва … …ИмяРегион …ИнститутМосква ИнститутМосква … …ИнститутМосква 27
Метаатрибуты в запросе GroupA.G1 JOIN GroupA.G2 JOIN… Q1(D1) U Q2(D2) U … (a1, a2, … aN, meta1, meta2, …) - именование метаатрибутов. 28