Методы трансляции реляционной базы данных в формат NoSQL с обеспечением оптимального доступа к данным
ВВЕДЕНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Глава 1. ОБЗОР МЕТОДОВ ОПТИМИЗАЦИИ РАБОТЫ
БАЗ ДАННЫХ . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.1 Классификации баз данных . . . . . . . . . . . . . . . . . . . . . . 14
1.2 Подходы к оптимизации работы реляционных баз данных . . . . 23
1.2.1 Оптимизация схемы реляционной базы данных . . . . . . 23
1.2.2 Подходы к организации распределенных баз данных . . . 26
1.3 Оптимизация запросов к базам данных . . . . . . . . . . . . . . . 27
1.4 Способы представления запросов и схем баз данных . . . . . . . . 35
1.5 Выводы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Глава 2. МЕТОДЫ ОПТИМИЗАЦИИ СТРУКТУРЫ БАЗ
ДАННЫХ NOSQL ТИПА КЛЮЧ-ДОКУМЕНТ . . . . 39
2.1 Методы оптимизации структуры нераспределенных баз данных
NoSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.1.1 Метод определения структуры коллекций для
нераспределенных баз данных типа «ключ-документ» . . . 40
2.1.2 Методика определения коллекций в базах данных типа
«ключ-документ» в зависимости от исходных данных . . . 49
2.1.3 Метод определения структуры вложенных документов в
БД типа «ключ-документ» . . . . . . . . . . . . . . . . . . 51
2.2 Методы оптимизации структуры распределенных баз данных
NoSQL типа «ключ-документ» . . . . . . . . . . . . . . . . . . . . 61
2.2.1 Метод построения информационного графа запроса для
распределенной реляционной базы данных . . . . . . . . . 63
2.2.2 Метод построения схемы распределенной базы данных
NoSQL типа «ключ-документ» . . . . . . . . . . . . . . . . 67
2.3 Выводы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Глава 3. ТРАНСЛЯЦИЯ ЗАПРОСОВ ИЗ ФОРМАТА
РЕЛЯЦИНОНОЙ БАЗЫ ДАННЫХ В ФОРМАТ
БАЗЫ ДАННЫХ NOSQL ТИПА
«КЛЮЧ-ДОКУМЕНТ» . . . . . . . . . . . . . . . . . . . . 69
3.1 Языки запросов к базам данных . . . . . . . . . . . . . . . . . . . 69
3.2 Трансляции запросов из формата MySQL в формат MongoDB c
учетом структуры базы данных . . . . . . . . . . . . . . . . . . . 73
3.2.1 Метод трансляции запросов из формата MySQL в
формат MongoDB c учетом структуры базы данных . . . . 73
3.2.2 Реализация метода трансляции запросов из формата
MySQL в формат MongoDB . . . . . . . . . . . . . . . . . . 75
3.3 Пример применения разработанного метода трансляции запроса
из SQL в MongoDB с учетом структуры базы данных . . . . . . . 84
3.4 Выводы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Глава 4. СОЗДАНИЕ ПРОГРАМНЫХ МОДУЛЕЙ ДЛЯ
ТЕСТИРОВАНИЯ РАЗРАБОТАННЫХ МЕТОДОВ . . 92
4.1 Описание программных модулей . . . . . . . . . . . . . . . . . . . 92
4.1.1 Описание программных модулей для определения
коллекций баз данных типа «ключ-документ» по
заданному набору свойств объектов и запросов . . . . . . 92
4.1.2 Описание программного модуля для трансляции данных
из реляционной базы данных в базу данных MongoDB . . 93
4.1.3 Описание программных модулей для трансляции
запросов из MySQL в MongoDB и параллельного
выполнения запросов к распределённой базе данных . . . 94
4.2 Описание исходных баз данных, используемых при
тестировании методов . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.2.1 Описание разработанных баз данных для тестирования
методов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.2.2 Описание базы данных «TPC – H» . . . . . . . . . . . . . . 101
4.3 Тестирование разработанных методов на базах данных MySQL и
MongoDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.3.1 Тестирование метода для определения коллекций для
базы данных типов «ключ-документ» по заданному
набору свойств и запросов . . . . . . . . . . . . . . . . . . 103
4.3.2 Тестирование метода определения вложенных документов 111
4.3.3 Тестирование метода трансляции запросов из формата
MySQL в формат MongoDB . . . . . . . . . . . . . . . . . . 120
4.3.4 Тестирование метода оптимизации распределенной базы
данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
4.4 Выводы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
ЗАКЛЮЧЕНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
СПИСОК РИСУНКОВ . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
СПИСОК ТАБЛИЦ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
СПИСОК ЛИТЕРАТУРЫ . . . . . . . . . . . . . . . . . . . . . . . . . 145
ПРИЛОЖЕНИЕ А – Свидетельства о государственной
регистрации программы для ЭВМ . . . . . . . . . . . . . . 160
ПРИЛОЖЕНИЕ Б – Коды тестированных запросов к базе
данных «TPC – H» на MySQL и MongoDB . . . . . . . . 163
Во введении приведена актуальность темы диссертационной работы, освещены объект и
предмет исследования, сформулированы цель и задачи исследования, основные положения, выносимые
на защиту, прописана научная новизна, описана теоретическая и практическая значимость результатов.
В первой главе представлен обзор существующих подходов к трансляции баз данных из одного
формата в другой и оптимизации работы с базами данных NoSQL. В результате анализа существующих
типов баз данных установлено, что реляционные БД являются самыми распространенными формами
хранения данных. За последние десятилетия все больше используются на практике NoSQL и NewSQL.
При переходе от реляционных баз данных к NoSQL или NewSQL актуальной является проблема
автоматического преобразования форматов данных и сбора данных из баз данных разного типа.
Установлено, что для оптимизации структур баз данных существуют разные подходы, но отсутствуют
методы оптимизации структуры NoSQL-баз данных, таких как документные или семейство столбцов.
Проанализированы методы оптимизации запросов к базам данных. Установлено, что в качестве
механизмов ускорения выполнения запросов используются индексирование и кэширование, а также
параллельное выполнение запросов. Для оптимизации структуры запросов используются методы,
основанные на анализе плана выполнения запроса. Формализованных методов оптимизации запросов с
учетом метаданных об их структуре и схеме БД не существует.
Анализ существующих подходов к формализованному представлению запросов показал, что
наиболее эффективными являются методы теории графов и теории множеств.
Во второй главе описываются методы оптимизации структуры базы данных NoSQL.
Приведен метод определения структуры коллекций для баз данных типа «ключ-документ» по
заданному набору свойств и запросов и описана методика применения разработанных методов для
трансляции и проектирования баз данных типа «ключ-документ».
Входными данными метода являются: Совокупность свойств объектов, хранимых в базе
данных. Если задача заключается в трансляции реляционной базы данных в MongoDB, то в качестве
совокупности свойств объекта выступает множество полей всех таблиц.
Пусть Tr – это таблица реляционной базы данных, где r – номер таблицы, r = 1…k , k –
число таблиц; T( r , j ) – это поле в таблице Tr , где j – номер поля, j = 1…rn , rn – число полей вr -й
таблице. Тогда множество полей одной таблицы – это множество вида:
Tr = {T( r , j ) , j = 1, 2,…, rn }(1)
Множество всех полей реляционной базы данных будет определяться по формуле:
M = {T( r , j ) , r = 1, 2,…, k | T( r , j ) T( q ,i ) , r , q k , j rn , i qn }(2)
Длина | M | множества M – это количество его элементов.
Совокупность множеств полей, входящих в запрос:
Si = {T( r , j ) , r k , j rn }(3)
где i – номер запроса (i = 1,2,…m) , m – число запросов к базе данных.
Выходные данные метода: Совокупность множеств коллекций документов с заданными
полями:
Vi = {T( r , j ) , r k , j rn }
удовлетворяющих условиям:
V1 V2 V3 = (4)
V1 V2 V3 = M = kr =1Tr(5)
(Si )(V j )( Si V j , Si Vi , i j )(6)
где i – номер коллекции (i = 1,2,…, l ) , l – число коллекций.
Метод формирования коллекций для базы данных в формате MongoDB
Шаг 1. Создать множества полей таблиц и запросов по формулам (2) – (3). Число множеств
будет равно числу таблиц.
Шаг 2. Выбрать поля, которые не участвуют в запросах. Для этого:
2.1. Для каждого поля составить множества запросов, в которых это поле участвует в любой
части конструкции:
T ‘( r , j ) = {Si , i = 1… p, p m | T( r , j ) Si }
где m – число запросов,r– номер таблицы, r = 1…k , k–число таблиц, j – номер поля в
таблице, j = 1…rn , rn – число полей в r -й таблице.
2.2. Все поля T( r , j ) , для которых длина множества | T ‘( r , j ) |= 0 , могут быть включены в
единую коллекцию MongoDB:
V1 = {T( r , j ) , r k , j rn || T ‘( r , j ) |= 0}
Примечание 1.: коллекции должны формироваться с учетом связей между таблицами.
Шаг 3. Выбрать поля, которые участвуют только в одном запросе, т.е. | T ‘( r , j ) |= 1 .
Если для любого T( r , j ) Si выполняется условие | T ‘( r , j ) |= 1 , то все поля T( r , j ) множества
S i должны войти в новую коллекцию:
V p = {T( r , j ) , r k , j rn | T( r , j ) Si & | T( r , j ) |= 1}, p 1(7)
Шаг 4. Убрать из рассмотрения все поля, которые вошли в коллекции V1 и V p на шагах 1-3.
Шаг 5. Составить коллекции из полей, к которым обращается несколько запросов.
5.1. Составить множество рассматриваемых запросов: I = {Si } , i = 1…m , где m – число
рассматриваемых запросов.
5.2. Составить попарные пересечения множеств Si I .
S ‘k = Si S j , i j; i, j = 1,2,…,| I |; k = 1,2,…, C|2I |
| I |!| I | (| I | −1)
где C|I | ==
.
| (| I | −2) |!2!2
5.3. Для полученных не пустых пересечений составить множество P из запросов, входящих
в эти пересечения:
P = {S ‘i || S ‘i | 0, i k , k = 1,2,…, C|2I |}
5.4. Найти разность множеств: I − P .
Если I − P , то новая коллекция будет состоять из всех полей, входящих в запросы
разности множеств I − P .
Vp =| P|
i =1S ‘i , S ‘i P
5.5. Положить I = P .
5.6. Из полученных пересечений найти новые не пустые пересечения по правилу:
if (( Si S j ) & ( S j Sk )), find ( Si S j S k )
или в общем виде:
S ”k = S ‘i S ‘ j , if Sm | ( Sm S ‘i & Sm S ‘ j , i = j ); i, j = 1,2,…,| I |; k = 1,2,…, C|2I |
5.7. Повторить шаги 5.3 – 5.7 до тех пор, пока не останется одно пересечение, т.е. длина
множества не станет равной 1: | I |= 1 .
Шаг 6. В новое отношение включить все поля, вошедшие в последнее единственное
пересечение и не вошедшие в другие пересечения:
p
Vp+1 = M −Vi
i =1
Шаг 7. Конец метода.
Принцип применения предлагаемого метода для разного рода преобразования структуры
базы данных приведен на рис.1.
Постановка задачи
ДаНет
Существует
исходная БД
КонсолидацияПребразование
Цель
Сбор атрибутов в одно
отношение РБД. Приведение к
ДаНетнормальной форме
Подготовка атрибутов
РБД -> NoSQL
Сбор атрибутов в одноСбор атрибутов в одно
отношение РБД.отношение РБД. Приведение к
Приведение кнормальной форме
нормальной форме
Применение метода создания совокупности коллекции
Применение метода создания вложенных документов
Конец
Рис. 1. Применение метода определения коллекций в БД типа ключ-документ
Разработанный метод определения коллекций может быть применен для:
1) создания эффективной структуры новой базы данных типа ключ-документ;
2) трансляции данных из реляционной базы данных в базу данных типа ключ-документ;
3) трансляции данных из произвольной базы данных в базу данных типа ключ-документ;
3) консолидации баз данных.
Есть и другие возможности для применения данного метода, такие как создание временных
коллекций и т.п.
Далее в главе приведено описание метода определения структуры вложенных
документов в базах данных NoSQL типа «ключ-документ»:
Определение вложенных документов для двух отношений
Пусть:
1. даны два отношения реляционной модели, на основе которых строится схема не
реляционной БД типа «ключ-документ»: T1 и T2 :
T1{T11 , T12 ,…, T1k }
T2{T21 , T21 ,…, T2 n }
где Ti , j – это j-е поле i-го отношения, k – число полей в отношении T1 , n – число полей в
отношении T2 .
2. по методу определения коллекций в БД типа ключ-документ получена некоторая
коллекция:
Q{T11 ,…, T1m , T21 ,…, T2 r }, m k , r n
3. отношения T1 и T2 имеют связи типа 1 − :
4. в отношениях определены ключи, принадлежащие данной коллекции:
T1 : T11 , T12 ,…, T1s1 , где 1 s1 m
T2 : T21 , T22 ,…, T2 s 2 , где 1 s 2 r
Выходные данные метода: новая структура коллекции Q т.е. Q ‘ Q
Решение: рассмотрим возможные варианты запросов к коллекции Q :
a) S1{T11 ,…, T1s1 ,…, T1i } – запрос, который обращается только к атрибутам одного
отношения, например T1 ;
b) S 2{T11 ,…, T1s1 ,…, T1i , T21 ,…, T2 s 2 ,…, T2 j } – запрос, который обращается к атрибутам обоих
отношений T1 и T2 .
Случай a). Так как предполагается, что схема РБД с отношениями T1 и T2 изначально
находится в нормальной форме, как минимум Бойса-Кодда или 4NF, то аномалия избыточности в
этой схеме сведена к минимуму и вложенных документов в данной коллекции быть не может.
Случай b). Связь 1 − подразумевает, что одному кортежу из отношения T1 может
соответствовать множество кортежей из отношения T2 . Отсюда следует, что для того, чтобы
избежать хранения избыточных данных в коллекции , необходимо все атрибуты отношения T2 ,
участвующие в запросе S2 , выделить во вложенный документ. При этом возможны два случая:
b1): таких запросов как S2 всего один для коллекцииQ . В этом случае новая структура
коллекцииQ примет вид: Q ‘{T11 ,…,T1s1 ,…,T1m ,T ‘2 :{T21,…,T2 s 2 ,…,T2 j },…,T2 r } , где T ‘2 – это имя
нового ключа для вложенного документа.
b2): таких запросов как S2 более одного для коллекцииQ . В этом случае необходимо найти
множество T ‘2 , которое будет объединением всех множеств атрибутов отношения T2 , входящие в
запросы типа S2 . Формализовано это будет так: пусть есть совокупность запросов типа S2 к
коллекцииQ:
S21{T11 ,…, T1s1 , T21 ,…, T2 s 2 ,…, T2 j1};
…
S2t {T11 ,…, T1st ,…, T1it , T21 ,…, T2 s 2 ,…, T2 jt }
тогда вложенный документ будет состоять из атрибутов множества:
T ‘2 = {T21 ,…, T2 s 2 ,…, T2 j1} … {T21 ,…, T2 s 2 ,…,2 jt } = {T21 ,…, T2 s 2 ,…, T2 j1 ,…,T2 jt }
В этом случае новая структура коллекции примет вид:
Q ‘{T11 ,…, T1s1 ,…, T1m , T ‘2 :{T21 ,…, T2 s 2 ,…, T2 j1 ,…, T2 jt },…, T2 r }
где ′2 – это имя нового ключа для вложенного документа.
Примечание 2. Допустим, что после отделения всех атрибутов отношения T2 , участвующих в
запросах типа S2 , в новое множество T ‘2 , остались еще атрибуты отношения T2 , которые в запросе S2
не участвуют. Назовем это множество T ”2 = T2 − T ‘2 . Это может означать, что-либо к атрибутам
множества ″2 обращается отдельный запрос типа a) и опять же это означает, что коллекция построена
не оптимально. Либо, если коллекция построена оптимально, существует запрос, который обращается
одновременно к атрибутам T ‘2 и T ”2 . Последнее означает, что отделить атрибуты T ‘2 в отдельный
документ нельзя, т.к. это усложнит запросы типа a), обращающиеся одновременно к атрибутам T ‘2 и
T ”2 . Поэтому, во вложенный документ можно выделить полностью все атрибуты отношения T2 ,
входящие в коллекцию Q . Сформулируем унифицированное для всех случаев правило создания
вложенного документа с учетом примечания 2.
Правило 1. Пусть есть совокупность запросов типа S2 к коллекции Q :
S21{T11 ,…, T1s1 ,…, T1i1 , T21 ,…, T2 s 2 ,…,T2 j1};
…
S2t {T11 ,…, T1st ,…, T1it , T21 ,…, T2 s 2 ,…, T2 jt }
и совокупность запросов типа S1 к атрибутам отношения T2 из коллекцииQ:
S11{…, T2i1 ,…};
…
S1r {…, T2ir ,…}
Пусть T ‘2 ( S 2 ) – это множество всех атрибутов, участвующих в запросах типа S2 :
T ‘2 ( S2 ) = {T21 ,…, T2 s 2 ,…, T2 j1} … {T21 ,…, T2 s 2 ,…, T2 jt } = {T21 ,…, T2 s 2 ,…,T2 j1 ,…,T2 jt }
Пусть T ‘2 ( S1i ) – это множество всех атрибутов, участвующих в i-м запросе типа S1 . Тогда
– это множество тех атрибутов, которые необходимо присоединить ко вложенному документу, т.к.
они участвуют в запросе с некоторыми другими атрибутами отношения T2 , которые уже включены
во вложенный документ.
Т.к. запросов типа S1 может быть некоторое количество, то необходимо найти объединение
таких атрибутов. Пусть всего запросов S1 количество равное Vs , тогда вложенный документ будет
состоять из атрибутов множества:
Vs
T ‘2 = T ‘2 ( S2 ) ( S1i ( S1i − T ‘2 ( S2 )))
i =1
T ”2 = T2 − T ‘2
В этом случае новая структура коллекции Q примет вид:
Q ‘{T11 ,…, T1s1 ,…, T1m , T ‘2 :{T ‘2 ( S2 ) Vs
i −1( S1i ( S1i − T ‘2 ( S 2 )))}, T ”2} (8)
где T ‘2 — это имя нового ключа для вложенного документа.
Примечание 3. В данном методе была рассмотрена только связь типа 1 − . Если схема
реляционной базы данных была изначально приведена к нормальной форме BCNF, 3NF или 4NF,
то других связей между отношениями T1 и T2 быть не может. Но, если по каким-либо причинам,
например проведенной денормализации схемы РБД, это связи существуют, то:
– для связи типа 1-1 вложенных документов быть не может, ввиду однозначности соответствия
каждому кортежу из отношения 1 единственного кортежа из отношения 2 .
– для связи типа − вложенные документы строятся по тому же принципу, что и для связи
1− .
Определение вложенных документов для трех отношений с одним главным
отношением и двумя подчиненными
Пусть:
1. даны три отношения реляционной модели, на основе которых строится схема не
реляционной БД типа ключ-документ: T1 , T2 и T3 :
T1{T11 , T12 ,…, T1k }
T2{T21 , T22 ,…, T2 n }
T3{T31 , T32 ,…, T3m }
где Tij – это j-е поле i-го отношения, k – число полей в отношении T1 , n – число полей в
отношении T2 , m – число полей в отношении T3 .
2. по методу определения коллекций в БД типа ключ-документ получена некоторая
коллекция:
Q{T11 ,…, T1k ‘ , T21 ,…, T2 n ‘ , T31 ,…, T3m ‘}, k ‘ k , n ‘ n, m ‘ m
3. отношения T1 , T2 и T3 имеют связи типа 1 − : или более схематично на рис. 2.а.
T1T1
1
T2T3T2T3
a)б)
Рис. 2. Связи между отношениями T1 , T2 и T3
4. в отношениях определены ключи, принадлежащие данной коллекции:
T1 : T11 , T12 ,…, T1s1 , где 1 s1 k ‘
T2 : T21 , T22 ,…, T2 s 2 , где 1 s 2 n ‘
T3 : T31 , T32 ,…, T3 s 3 , где 1 s3 m ‘
Выходные данные. Новая структура коллекции Q , т.е. Q ‘ Q
Решение: рассмотрим возможные варианты запросов к коллекции :
a) S1{T11 ,…, T1s1 ,…, T1i } – запрос, который обращается только к атрибутам одного отношения,
например 1 ;
b) S 2{T11 ,…, T1s1 ,…, T1i , T21 ,…, T2 s 2 ,…, T2 j } – запрос, который обращается к атрибутам двух
отношений T1 , T2 или T1 , T3 .
c) S3{T11 ,…, T1s1 ,…, T1i , T21 ,…, T2 s 2 ,…, T2 j , T31 ,…, T3 s 3 ,…, T3 r } – запрос, который обращается к
атрибутам всех трех отношений T1 , T2 и T3 .
d) S 4{T21 ,…, T2 s 2 ,…, T2 j , T31,…, T3 s 3 ,…, T3r } – запрос, который обращается к атрибутам двух
отношений T2 и T3 .
Случай a). Этот случай рассмотрен выше при определении вложенных документов для
коллекции, построенной из атрибутов двух отношений и показано, что вложенных документов в
данной коллекции быть не может.
Случай b). Этот случай рассмотрен выше при определении вложенных документов для
коллекции, построенной из атрибутов двух отношений по формуле (8) и показано, что новая
структура коллекции Q примет вид:
Vs
Q ‘ T11 ,…, T1s1 ,…, T1m , T ‘2 : T ‘2 ( S 2 ) ( S1i ( S1i − T ‘2 ( S 2 ))) , T ”2
i =1
где T ‘2 – это имя нового ключа для вложенного документа, атрибуты T ‘2 ( S 2 ) – это все
атрибуты отношенияT2 , входящие в запросы типа S2 к коллекции Q , Vs – количество запросов
типа S1 , T ”2 – множество атрибутов, которые не вошли в T ”2 из всех атрибутов отношения T2 ,
входящих в коллекцию Q .
Примечание 4. Если коллекция Q была построена в соответствии с методом определения
коллекция к БД типа ключ-документ, то множество T ”2 = .
Случай c). Этот случай является обобщением случая b) с двух отношений со связью 1 −
на две пары отношений со связью 1 − . В данном случае новая структура коллекции Q примет
вид:
11
Q ‘
1m2
T ,…,T , T ‘ : T ‘ ( S ) Vs ( S ( S − T ‘ ( S ))) , T ” ,
23i =1 1i1i23 2
(9)
Vs
T ‘3 : T ‘3 ( S3 ) i =1 ( S1i ( S1i − T ‘3 ( S3 ))) , T ”3
где T ‘2 , T ‘3 – это имена новых ключей для вложенных документов; атрибуты T ‘2 ( S3 ) – это
все атрибуты отношения T2 , входящие в запросы типа 3 к коллекции Q ; атрибуты T ‘3 ( S3 ) – это
все атрибуты отношения T3 , входящие в запросы типа 3 к коллекции Q , Vs – количество запросов
типа S1 , T ”2 – множество атрибутов, которые не вошли в T ‘2 из всех атрибутов отношения T2 ,
входящих в коллекцию Q , T ”3 – множество атрибутов, которые не вошли в T ‘3 из всех атрибутов
отношения T3 , входящих в коллекцию Q .
Случай d). Т.к. запрос к атрибутам отношений T2 и T3 может быть выполнен только через
атрибуты отношения T1 , то этот случай в результате сводится к случаю c).
Определение вложенных документов для трех отношений с двумя главными
отношениями и двумя подчиненными
Входные данные. Пусть: 1. даны три отношения реляционной модели, на основе которых
строится схема не реляционной БД типа ключ-документ T1 , T2 и T3 :
T1{T11 , T12 ,…, T1k }
T2{T21 , T22 ,…, T2 n }
T3{T31 , T32 ,…, T3m }
где Tij – это j-е поле i-го отношения, k – число полей в отношении T1 , n – число полей в
отношении T2 , m – число полей в отношении T3 .
2. по методу определения коллекций в БД типа ключ-документ получена некоторая
коллекция:
Q{T11 ,…, T1k ‘ , T21 ,…, T2 n ‘ , T31 ,…, T3m ‘}, k ‘ k , n ‘ n, m ‘ m
3. отношения T1 , T2 и T3 имеют связи типа 1 − : или более схематично на рис. 2.б.
4. в отношениях определены ключи, принадлежащие данной коллекции:
T1 : T11 , T12 ,…, T1s1 , где 1 s1 k ‘
T2 : T21 , T22 ,…, T2 s 2 , где 1 s 2 n ‘
T3 : T31 , T32 ,…, T3 s 3 , где 1 s3 m ‘
Выходные данные: Новая структура коллекцииQ , т.е. Q ‘ Q .
Решение: рассмотрим возможные варианты запросов к коллекцииQ:
a) S1{T11 ,…, T1s1 ,…, T1i } – запрос, который обращается только к атрибутам одного отношения,
например T1 ;
b) S 2{T11 ,…, T1s1 ,…, T1i , T21 ,…, T2 s 2 ,…, T2 j } – запрос, который обращается к атрибутам двух
отношений T1 , T2 или T2 , T3 .
c) S3{T11 ,…, T1s1 ,…, T1i , T21 ,…, T2 s 2 ,…, T2 j , T31 ,…, T3 s 3 ,…, T3 r } – запрос, который обращается к
атрибутам всех трех отношений T1 , T2 и T3 .
d) S 4{T11 ,…, T1s1 ,…, T1i , T31 ,…, T3 s 3 ,…, T3 r } – запрос, который обращается к атрибутам двух
отношений T1 и T3 .
Случай a). Этот случай рассмотрен выше при определении вложенных документов для
коллекции, построенной из атрибутов двух отношений и показано, что вложенных документов в
данной коллекции быть не может.
Случай b). Этот случай рассмотрен выше при определении вложенных документов для
коллекции, построенной из атрибутов двух отношений и показано, что новая структура коллекции
Q примет вид (9).
Случай c). Этот случай является обобщением случая b) с двух отношений на три отношения.
В данном случае новая структура коллекции Q примет вид:
T ‘ ( S ) Vs ( S ( S − T ‘ ( S ) ) ),
2 3i =1 1i1i23
Q ‘ T11 ,…,T1m , T ‘2 : , T ”2 , T ”3 (10)
T ‘3 : T ‘3 ( S3 ) i =1 ( S1i ( S1i − T ‘3 ( S3 ) ) )
Vs
где T ‘2 , T ‘3 – это имена новых ключей для вложенных документов; атрибуты T ‘2 ( S3 ) – это
все атрибуты отношения T2 , входящие в запросы типа 3 к коллекции Q ; атрибуты T ‘3 ( S3 ) – это
все атрибуты отношения T3 , входящие в запросы типа 3 к коллекции Q , Vs – количество запросов
типа S1 , T ”2 – множество атрибутов, которые не вошли в T ‘2 из всех атрибутов отношения T2 ,
входящих в коллекцию Q , T ”3 – множество атрибутов, которые не вошли в T ‘3 из всех атрибутов
отношения T3 , входящих в коллекцию Q .
Случай c). Т.к. запрос к атрибутам отношений 1 и 3 может быть выполнен только через
атрибуты отношения 2 , то этот случай в результате сводится к случаю b).
Примечание 5. Если коллекция Q построена более чем для 3-х отношений, то вложенные
документы строятся также как и для трех отношений.
Методика определения структуры вложенных документов в БД типа «ключ-документ»
Прежде чем перейти к методике применения методов определения коллекций с вложенными
документами в БД типа ключ-документ, необходимо сделать несколько примечаний.
Примечание 6. Если в коллекции Q из атрибутов, относящихся к трем отношениям нет
запросов, обращающихся к атрибутам всех трех отношений, то такую коллекцию лучше разбить на
две коллекции.
Рассмотрим отдельно два случая.
Случай 1. Три отношения с одним главным отношением и двумя подчиненными (см.
рис. 2.а).
Если к коллекции Q нет запроса, который обращается к атрибутам всех трех отношений T1
,T2 и T3 :
S3{T11 ,…, T1s1 ,…, T1i , T21 ,…, T2 s 2 ,…, T2 j , T31 ,…, T3 s 3 ,…, T3r }
но, есть запросы, которые обращаются к атрибутам двух отношенийT1 , T2 или T2 , T3 :
S21{T11 ,…, T1s1 ,…, T1i , T21,…, T2 s 2 ,…, T2 j }
S22{T11 ,…, T1s1 ,…, T1i , T31 ,…, T3 s 3 ,…, T3r ,…, T2t }
то вместо формулы (2.9) следует коллекцию Q разбить на две коллекции со вложенными
документами в соответствии с формулой (2.8):
Vs
Q ‘1 T11 ,…, T1s1 ,…, T1m , T ‘2 : T ‘2 ( S21 ) ( S1i ( S1i − T ‘2 ( S 21 )) ) , T ”2
i =1
(11)
Vs
Q ‘2 T11 ,…, T1s1 ,…, T1m , T ‘2 : T ‘3 ( S22 ) ( S2i ( S1i − T ‘3 ( S22 )) ) , T ”3
i =1
где T ‘2 , T ‘3 – это имена новых ключей для вложенных документов; атрибуты T ‘2 ( S3 ) – это
все атрибуты отношения T2 , входящие в запросы типа 3 к коллекции Q ; атрибуты T ‘3 ( S3 ) – это
все атрибуты отношения T3 , входящие в запросы типа 3 к коллекции Q , Vs – количество запросов
типа S1 , T ”2 – множество атрибутов, которые не вошли в T ‘2 из всех атрибутов отношения T2 ,
входящих в коллекцию Q , T ”3 – множество атрибутов, которые не вошли в T ‘3 из всех атрибутов
отношения T3 , входящих в коллекцию Q .
Случай 2. Три отношения с двумя главными отношениями и двумя подчиненными (см.
рис. 2.б).
Если к коллекции Q нет запроса, который обращается к атрибутам всех трех отношений T1 ,
T2 и T3 :
S3{T11 ,…, T1s1 ,…, T1i , T21 ,…, T2 s 2 ,…, T2 j , T31 ,…, T3 s 3 ,…, T3r }
но, есть запросы, которые обращаются к атрибутам двух отношенийT1 , T2 или T2 , T3 :
S21{T11 ,…, T1s1 ,…, T1i , T21,…, T2 s 2 ,…, T2 j }
S22{T11 ,…, T1s1 ,…, T1i , T31 ,…, T3 s 3 ,…, T3r ,…, T2t }
то вместо формулы (10) следует коллекцию Q разбить на две коллекции со вложенными
документами в соответствии с формулой (2.8):
Vs
Q ‘1 T11 ,…, T1s1 ,…, T1m , T ‘2 : T ‘2 ( S21 ) ( S1i ( S1i − T ‘2 ( S 21 )) ) , T ”2
i =1
(12)
Vs
Q ‘2 T11 ,…, T1s1 ,…, T1m , T ‘2 : T ‘3 ( S22 ) ( S2i ( S1i − T ‘3 ( S22 )) ) , T ”3
i =1
где T ‘2 , T ‘3 – это имена новых ключей для вложенных документов; атрибуты T ‘2 ( S3 ) – это
все атрибуты отношения T2 , входящие в запросы типа 3 к коллекции Q ; атрибуты T ‘3 ( S3 ) – это
все атрибуты отношения T3 , входящие в запросы типа 3 к коллекции Q , Vs – количество запросов
типа S1 , T ”2 – множество атрибутов, которые не вошли в T ‘2 из всех атрибутов отношения T2 ,
входящих в коллекцию Q , T ”3 – множество атрибутов, которые не вошли в T ‘3 из всех атрибутов
отношения T3 , входящих в коллекцию Q .
С учетом формул (8) – (12) методика определения коллекций со вложенными документами
для БД типа ключ-документ представлена на рис. 4.
Vk – Число коллекций,
Ti – Отношения,
Si – Запросы,
Qi – Коллекции,
R – Связи между отношения
Для каждой коллекции:
i= 1,Vk
Число отношений <3 Число отношений = 2 Максимальное число отношений < Числа отношений в коллекции Формула (8)ДекомпозицияФормулы (9) - коллекции по (11) –(10) (12) Конец Рис. 4. Методика определения вложенных документов В конце главы представлен разработанный метод оптимизации структуры распределенной базы данных NoSQL типа «ключ-документ». Для распределенной базы данных был применен подход, основанный на информационных графах, для исследования зависимостей подзапросов от местоположения и доступности данных в соответствии с заданной схемой распределенной БД и информацией о шардах и репликах. Метод построения информационного графа запроса для распределенной реляционной БД: 1) Каждой таблице РБД поставить в соответствие входную вершину информационного графа. 2) Каждому элементарному подзапросу поставить в соответствие вершину информационного графа. 3) Соединить вершины информационного графа направленными ребрами в соответствии с правилом: если подзапрос А получает данные от таблицы (или подзапроса) В, то соединить вершины А и В направленным ребром от В к А. 4) Адаптация графа под горизонтальный шардинг для случая, когда таблица T распределенной БД разделена на k частей, хранимых на отдельных шардах: a) создать k входных вершин графа, каждая из которых будет соответствовать определенной части таблицы на определенном шарде: Ti , i = 1...k . b) если таблица T была связана ребром с запросом Q , то создать k вершин графа, каждая из которых будет соответствовать запросу Q , выполняемому для определенной части таблицы на определенном шарде: Qi , i = 1...k . Далее возможен один из трех вариантов: 1) Вариант 1. A. все вершины, которые были до этого соединены с вершиной Q , соединить с вершинами Qi , i = 1...k ; B. соединить каждую вершину, соответствующую части таблицы T , с вершиной, соответствующей запросу Q , и выполняемому для данной части таблицы T , т.е. Ti соединить с Qi (пример этого варианта представлен на рис.5.b); C. если вершина Q не являлась выходной вершиной графа, то: создать вершину Q’, которая будет соответствовать запросу по агрегации данных из запросов Qi над частями таблицы Ti . 2) Вариант 2. D. соединить каждую вершину, соответствующую части таблицы T , с вершиной, соответствующей запросу Q , и выполняемому для данной части таблицы T , т.е. Ti соединить с Qi (пример этого варианта представлен на рис.5.с); E. если вершина Q не являлась выходной вершиной графа, то: создать вершину Q ' , которая будет соответствовать запросу по агрегации данных из запросов Qi над частями таблицы Ti ; F. если есть вершины (кроме T ), которые были до этого соединены с вершиной Q , то создать узел Q '' и соединить все вершину и вершину Q ' с вершиной Q '' ; 3) Вариант 3. A. все вершины, которые были до этого соединены с вершиной Q , соединить с вершинами Qi , i = 1...k ; B. соединить каждую вершину, соответствующую части таблицы T , с вершиной, соответствующей запросу Q , и выполняемому для данной части таблицы T , т.е. Ti соединить с Qi (пример этого варианта представлен на рис.5.d); C. если вершина Q не являлась выходной вершиной графа b была связана ребром с запросом Q1 , то создать k вершин графа, каждая из которых будет соответствовать запросу Q1 , выполняемому для определенной части запроса Qi на определенном шарде: Q1i , i = 1...k . D. соединить каждую вершину, соответствующую части запроса Q , с вершиной, соответствующей части запроса Q1 , т.е. соединить Qi c Q1i ; E. если вершина Q1 не являлась выходной вершиной графа, то: создать вершину Q '' , которая будет соответствовать запросу по агрегации данных из запросов Q1i . c) если в графе есть еще таблицы, которые также распределены по шардам, то шаг b) повторяется для каждой такой таблицы. T12 Q12 T1QQ2 Q1Q2T11 Q11 T2 T2 T3 T3 (a)(b) Q12T12Q12Q22 T12Q QQ2Q Q11T11 Q11Q21 T11 T2 T2 T3 T3 (c)(d) Рис. 5. Способы представление запроса к распределенной базе данных с помощью информационного графа Метод построения схемы распределенной базы данных NoSQL типа «ключ-документ»: 1. Построить информационный граф с учетом операций шардинга и репликаций. 2. Привести информационный граф к параллельной форме, минимизирующей передачу данных с шарда на шард с помощью метода оптимизации параллельных алгоритмов по числу коммуникаций. 3. Выполнить действие 1-2 для всех запросов, структура которых должна быть учтена при оптимизации схемы документной базы данных с целью ускорения выполнения этих запросов. 4. На основе метаданных о таблицах, полях, запросах и связях с помощью методов оптимизации схемы документной базы данных с вложенными или без вложенных документов сформировать структуру коллекций документов. 5. Усовершенствовать структуру документов с учетом графов информационных зависимостей запросов, минимизировав число операций объединения данных. В третьей главе приведено описание трансляции запросов формата SQL в формат MongoDB. Предлагаемый нами метод автоматической трансляции запросов из формата SQL в формат MongoDB с учетом структуры баз данных MySQL и MongoDB заключается в следующем: Входными данным являются: код запроса к базе данных MySQL, метаданные о структуре баз данных MySQL и MongoDB. Выходные данные: код запроса к базе данных MongoDB. Шаг 1. Парсинг запроса в формате MySQL 1.1. Парсинг запроса в формате MySQL по формальной грамматике языка SQL-запросов. Результатами парсинга являются токены (слова). 1.2. Формирование списков не ключевых токенов из общего списка токенов, получаемых из парсинга запроса в формате MySQL. Шаг 2. Формирование словаря предложений запроса MongoDB. Шаг 3. Переформирование предложений словаря с учетом структуры базы данных MongoDB. 3.1. Определение структуры базы данных MongoDB. 3.2. Переформирование предложений словаря с учетом структуры базы данных MongoDB. Шаг 4. Синтез выходного запроса из предложений словаря с учетом структуры базы данных MongoDB и на основе синтаксиса функции «aggregate» в MongoDB. В четвертой главе приведено подробное описание разработанных модулей, сведение баз данных для тестирования и тестирование разработанных методов. Для тестирования разработанных метода были спроектированы разные базы данных с разными структурам и использована база данных «TPC - H». Также были сгенерированы разные объемы данных для баз данных. Тестирование метода определения структуры коллекций для нераспределенных баз данных типа ключ-документ с учетом запросов было выполнено с базами «Telecommunication_business» и «TPC - H» с разными объёмами данных. В тестирование рассмотрены три варианты структуры базы данных: каждой таблице в реляционной базе данных поставить в соответствие отдельную коллекцию документов в MongoDB (Вариант 1), из всех таблиц реляционной базы данных сделать одну коллекцию документов в MongoDB(Вариант 2) и создать такой набор коллекций документов в MongoDB, чтобы они наиболее полно подходили под выполняемые запросы (Вариант 3). К базе данных «Telecommunication_business» были выполнены 9 запросы и к базе данных «TPC - H» выполнены запросы «Q1-Q5». На рис.6 приведены графики времени выполнения запросов «Q1-Q5» к базе данных «TPC - H» с разными структурами и разными объемами. Результаты тестирования показали разработанный метод является наиболее оптимальным с точки зрения времени выполнения запроса. Для тестирования метод определения структуры вложенных документов в БД типа ключ- документ использованы проектированные базы данных «Test1 – Test5» и база данных «TPC - H». На рис.7. приведен результат тестирования с базой данных «TPC - H». Для каждой базы рассмотрены две структуры: без вложенных документов и с вложенными документами. Результаты тестирования со спроектированными базами данных и базой данных «TPC - H» показывают эффективность применения разработанного метода определения структуры вложенных документов с учетом связей между объектами в базе данных и структуры запросов, которые к ним выполняются Рис. 6. - Графики времени выполнения запросов «Q1-Q5» к базе данных «TPC - H» с разными структурами и разными объемами Рис. 7. - Графики времени выполнения запросов «Q1-Q5» к базе данных «TPC - H» с разными структурами и разными объемами В тестировании методов оптимизации структуры распределенных баз данных NoSQL рассмотрены три варианты: централизованная база данных, распределенная база данных с наличием шардинга, но при отсутствии репликаций и распределенная база данных с наличием шардов и реплик. Для двух варианта распределённых баз данных, исходный запрос разделен на подзапросы и в зависимости от структур БД оптимизирован план выполнения подзапросов за счет параллельного выполнения. Тестирование выполнено на MySQL и MongoDB с разными объемами баз данных. Результат тестирования (рис. 8) показал, что что максимальное распараллеливание запроса в БД перед объединением результата программой работает быстрее всего. Кроме времени выполнения запросов, в испытании были также протестированы объем памяти при выполнении запросов для всех вариантов. Рис. 8. - Время выполнения запроса для разных вариантов схемы БД MongoDB и объема данных В тестировании исследовались три важных параметра: физическая память, задействованная память ОЗУ и максимальная ОЗУ при выполнении запросов с разными вариантами и разными объемами. Из результатов тестирования (рис. 9) видно, что вариант «распределенная база данных с шардированием и репликацией» использует наибольший объем памяти по сравнению с остальными вариантами. Ускоренный вариант выполнения требует большего объема памяти из-за хранения дубликатов данных. Рис. 9. График ОЗУ при выполнении запросов для разных объемов В заключении сформированы основные результаты диссертационного исследования. ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ 1. Проанализированы существующие подходы к трансляции баз данных из одного формата в другой, а также подходы к оптимизации структуры NOSQL БД и оптимизации запросов к ним. 2. Разработаны методы оптимизации структуры базы данных NoSQL для модели «ключ- документ», основанные на теории множеств и позволяющие автоматизировать процесс построения по заданной совокупности свойств объектов и с учетом их вхождений в запросы к базе данных определить оптимальную структуру базы данных NoSQL типов «ключ-документ» и структуру вложенных документов в этой БД. Методы учитывают тип связей между таблицами реляционной модели. В зависимости от типа связи выведены правила для создания структуры коллекции со вложенными документами. 3. Разработана методика преобразования реляционной базы данных в формат NoSQL типа «ключ-документ» в зависимости от исходных данных, таких как наличие информации о существующей реляционной базе данных, наличия необходимости трансляции исходной базы данных в новый формат, принадлежности реляционной базы данных к нормальной форме. 4. Разработан метод построения схемы распределенной базы данных NoSQL типа «ключ- документ» с учетом информационного графа запроса и структуры распределенной РБД. Метод основан на теории графов и теории множеств и позволяет построить на шардах и репликах оптимальную по скорости выполнения запросов структуру коллекций. 5. Разработан метод трансляции запросов из формата SQL в формат MongoDB с учетом структуры базы данных. Разработанный метод состоит из четырех шагов: парсинг исходного запроса SQL, формирование словаря предложений запроса MongoDB, переформирование предложений словаря с учетом структуры базы данных MongoDB и синтез выходного запроса. 6. Созданы программные модули для тестирования разработанных методов и получены результаты тестирования на сгенерированных и существующих тестовых базах данных, которые показали эффективность разработанных методов.
Актуальность темы исследования. Получение достоверной информа
ции в современную эпоху является серьезной проблемой, с которой сталкива
ются организации. Данная задача требует быстрого доступа либо к единому
общему источнику информации, либо к хорошо организованной системе сбора
данных из различных источников. В последнем случае проблемой является то,
что каждый из источников информации обычно позволяет получить узко специ
ализированную конкретную информацию, хранимую в нем и это, как следствие,
влечет потерю представления о запрашиваемом объекте в целом или искаже
ниям информации путем, например, некачественной синхронизации данных.
Поэтому задача консолидации данных, особенно текстовых, из различных неза
висимых источников является актуальной.
Существующие сегодня базы данных предназначены для разных типов дан
ных (связанных, не связанных, структурированных, не структурированных и
т.д.) и всегда имеют свою индивидуальную логически выстроенную архитек
туру под условия конкретной задачи. Среди всего разнообразия баз данных
несмотря на интенсивное развитие NoSQL и NewSQL баз данных первенство
по-прежнему удерживают реляционные базы данных. Принято считать, что ре
ляционные системы управления базами данных (СУБД) позволяют создавать
довольно сложные системы хранения данных, а NoSQL СУБД не приветству
ют наличие внутренних связей. Отдельно стоит отметить, что все NoSQL базы
данных используют разные модели хранения данных, что усложняет процесс
консолидации данных из этих баз данных.
В мире за последние 30 лет проводится много исследований в области по
иска подходов к консолидации данных из различных систем хранения и, как
следствие, предложено множество различных решений этой проблемы. Среди
известных результатов в области консолидации баз данных можно назвать си
стемы SemInt [1; 2], LSD (Learning Source Descriptions) в [3; 4], SKAT (Semantic
Knowledge Articulation Tool) [5], TranScm [6], Palopoli в [7], ARTEMIS [8; 9],
MOMIS (Mediator enviroment for Multiple Information Sources) [10; 11]. Однако
все эти системы сосредоточены на консолидации реляционных баз данных и
не затрагивают проблему консолидации реляционной базы данных с NoSQL
или NewSQL базами данных. Таким образом до сих пор не существуют уни
версальных решений к проблеме консолидации реляционной базой данных с
произвольной NoSQL базой данных. Задачу консолидации данных можно упро
стить, если предварительно провести трансляцию базы данных из собственного
формата в формат будущей единой базы данных. Процесс трансляции реляци
онной базы данных в NoSQL можно разделить на два этапа:
1) Трансляция структуры реляционной базы данных в формат базы данных
NoSQL, например «ключ значения», «ключ – документ», «семейство столбцов»
или «графовую» базу данных. К наиболее известным подходам к трансляции
реляционных баз данных в формат NoSQL относятся: построение правил видо
изменения архитектуры базы данных [12–16] и трансляция на основе методов
реляционной алгебры [17]. Например, авторы [18] применяют традиционные
правила теории нормализации реляционной схемы базы данных (теоремы о
нормальных формах: вторая и третья нормальные формы (2NF, 3NF) и нор
мальная форма Бойса-Кодда (BCNF)) для разработки схемы данных в NoSQL.
2) Трансляция запросов из формата реляционной базы данных в формат
NoSQL базы данных. В большинстве работ процесс трансляции запросов сфо
кусирован на разработке программного обеспечения промежуточного уровня,
которое выполняет SQL команды для обработки данных для NoSQL баз данных
[19–25]. В отдельных работах [26–28] предложен подход к трансляции запроса
с применением теории грамматик. Еще одним подходом является создание об
щих языков запроса, которые может использовать для реляционной и NoSQL
баз данных одновременно. К таким системам выполнения запросов относятся,
например UnQL (Unstructured Query Language) в [29] или Impala в [30].
Проведенный анализ подходов к трансляции баз данных из одного формата
в другой показал, что нет комплексного подхода, который бы одновременно
учитывал типы связей между объектами и структуру запросов к объектам базы
данных и позволял бы строить такую структуру базы данных NoSQL, чтобы
запросы к ней выполнялись максимально быстро.
Еще одной проблемой, связанной с обработкой данных в различных систе
мах хранения данных, является ускорение доступа к данным. Это связано с
экспоненциальным ростом данных, повышением сложности моделей, которые
строятся на основе этих данных, и повышением технических требований к си
стемам, работающих в режиме реального времени. Среди работ, посвященных
оптимизации доступа к данным в различных базах данных, можно выделить
следующие направления:
1) Оптимизация структуры централизованной базы данных. Существуют
стандартные походы для оптимизации схемы реляционной базы данных по
времени выполнения к ней запросов, например нормализация и денормализа
ция [31;32]. Вопросы оптимизации схемы базы данных NoSQL рассматриваются
во многих работах, например [33; 34]. В [33] авторы предложили подход к
сопоставлению модели данных приложения с физической схемой на основе
оценки вычислительной нагрузки при заданной схеме. Решению проблемы
построения концептуальной модели данных приложения по заданной схеме
базы данных NoSQL посвящено исследование [34]. Подход основан на оценке
вычислительных и временных затрат и использует методы целочисленного про
граммирования.
2) Оптимизация структуры распределенной базы данных. Наиболее извест
ными подходами к масштабированию распределенной базы данных являются
шардинг и репликация. Процессам организации шардинга в NoSQL посвяще
ны работы [35; 36].
3) Оптимизация запросов к базе данных по скорости обработки данных и
обеспечению целостности данных. Среди работ, связанных напрямую с оптими
зацией запросов к базам данных, можно выделить [37–39]. Для оптимизации
запросов по скорости в некоторых работах [40; 41] предлагается применение ме
тодов распараллеливания и распределения вычислений.
Таким образом, проведенный анализ существующих исследований в области
консолидации и оптимизации баз данных показывает отсутствие:
– формализованных методов трансляции реляционных баз данных в NoSQL;
– формализованных методов оптимизации структур баз данных NoSQL;
– формализованных методов трансляции и оптимизации запросов к NoSQL
базам данных с учетом их структуры.
Целью диссертационной работы является разработка совокупности
формализованных методов трансляции данных из реляционной базы данных в
формат базы данных NoSQL типа «ключ-документ» с оптимизацией ее схемы
и запросов для ускорения обработки и хранения данных.
В соответствии с поставленной целью в диссертационной работе решались
следующие задачи:
1. Анализ существующих подходов к трансляции баз данных из одного фор
мата в другой и оптимизации работы баз данных.
2. Разработка методов оптимизации структуры базы данных NoSQL для мо
делей «ключ-документ».
3. Разработка методики преобразования реляционной базы данных в формат
базы данных NoSQL типа «ключ-документ».
4. Разработка метода оптимизации структуры распределенной базы данных
NoSQL типа «ключ-документ».
5. Разработка метода трансляции запросов из формата реляционной базы
данных в формат базы данных NoSQL типа «ключ-документ».
6. Создание программных модулей для тестирования разработанных мето
дов.
Объект исследования. Базы данных различного типа, включая реляцион
ные и NoSQL базы данных.
Предмет исследования. Методы и алгоритмы обработки данных в реля
ционной и NoSQL базах данных.
Методология и методы исследования. Для решения поставленных за
дач в диссертационной работе использовались теория баз данных, теория
множеств, теория графов, теории функциональных зависимостей, реляционная
алгебра. Для разработки программного обеспечения и тестирования разрабо
танных методов использованы языки программирования C# и Python, среда
разработки Microsoft Visual Studio Community 2019 версия 16.9.3, Visual studio
code версия 1.59.0, СУБД MySQL 8.0.17, СУБД MongoDB 4.4.4 Community.
Основные результаты:
1. Сравнительный анализ подходов к трансляции баз данных из одного фор
мата в другой и оптимизации работы баз данных.
2. Методы оптимизации структуры базы данных NoSQL для модели «ключ
документ» с учетом и без учета встроенных документов.
3. Методика преобразования реляционной базы данных в формат базы
данных NoSQL типа «ключ-документ» с учетом и без учета встроенных до
кументов.
4. Метод оптимизации структуры распределенной базы данных NoSQL ти
па «ключ-документ».
5. Метод трансляции запросов из формата реляционной базы данных в фор
мат базы данных NoSQL типа «ключ-документ».
6. Программное обеспечение для тестирования разработанных методов.
Положения, выносимые на защиту:
1. Методы оптимизации структуры базы данных NoSQL для модели «ключ
документ» с учетом и без учета встроенных документов.
2. Методика преобразования реляционной базы данных в формат базы дан
ных NoSQL типа «ключ-документ».
3. Метод оптимизации структуры распределенной базы данных NoSQL ти
па «ключ-документ».
4. Метод трансляции запросов из формата реляционной базы данных в фор
мат базы данных NoSQL типа «ключ-документ».
Научная новизна работы заключается в следующем:
1. Разработаны методы определения структуры коллекций для базы данных
NoSQL типа «ключ-документ» со вложенными и без вложенных документов по
заданному набору свойств и запросов, которые основаны на теории множеств и
позволяют формализовано представить запросы и схему базы данных и опреде
лить оптимальный состав коллекций по скорости доступа к данным и объему
хранимых данных путем применения операций над множествами.
2. Разработана методика преобразования реляционной базы данных в фор
мат базы данных NoSQL типа «ключ-документ», которая учитывает различные
начальные условия, такие как существование реляционной базы данных и ее
принадлежность нормальной форме. Данная методика может быть применена
также для преобразования NoSQL баз данных из одного формата в другой и
оптимизации схемы базы данных NoSQL типа «ключ-документ».
3. Разработан метод оптимизации структуры распределенной базы данных
NoSQL типа «ключ-документ», основанный на теории графов и теории мно
жеств, и позволяющий ускорить доступ к данным путем создания архитектуры
распределенной базы данных с учетом метаинформации о запросах к ней.
4. Разработан метод трансляции запросов из формата реляционной базы дан
ных в формат базы данных NoSQL типа «ключ-документ» с учетом ее схемы
и структуры самих запросов.
Обоснованность и достоверность полученных результатов обеспечива
ется корректностью используемого математического аппарата, в частности
теорий множеств, графов и реляционной алгебры, строгими доказательствами
предложенных утверждений, результатами вычислительных экспериментов.
Теоретическая значимость диссертационной работы заключается в:
1) выведении формул, позволяющих определять оптимальную структуру
коллекций для базы данных NoSQL типа «ключ-документ» по заданному набо
ру свойств объектов базы данных и метаинформации о запросах;
2) выведении формул, позволяющих определять структуру вложенных доку
ментов в базах данных NoSQL типа «ключ-документ»;
3) разработке концептуальной схемы применения разработанных методов
для получения оптимальной структуры базы данных NoSQL типа «ключ-доку
мент» на основе различных начальных условий трансляции баз данных;
4) способе представления объектов распределенной базы данных и описа
нии подходов на основе теории графов для оптимизации структуры этих баз
данных;
5) формализации подхода к представлению запросов к реляционной базе дан
ных и их трансляции в формат NoSQL с учетом структуры баз данных.
Практическая значимость диссертационной работы заключается в при
менимости:
1) разработанных методов для трансляции реляционной базы данных в фор
мат базы данных NoSQL и/или последующей консолидации баз данных;
2) разработанных программных модулей для определения структуры коллек
ций базы данных NoSQL типа «ключ-документ» по заданному набору свойств
и запросов, трансляции базы данных из формата реляционной базы данных
в формат базы данных NoSQL типа «ключ-документ», трансляции запросов
из формата реляционной базы данных в формат базы данных NoSQL типа
«ключ-документ» с учетом структуры базы данных, параллельного выполнения
запросов к распределённым базам данных в различных предметных областях
и в научных исследованиях
Реализация результатов исследования:
1. Теоретические и практические результаты диссертационной работы бы
ли применены при решении задач в рамках международного научного проекта
РФФИ «Создание информационно-технологической поддержки исследований
болезни Паркинсона с учетом сбора и обработки данных большого объема в
режиме реального времени» (18-57-34001 Куба_т) и программы создания и раз
вития научного центра мирового уровня «Павловский центр «Интегративная
физиология – медицине, высокотехнологичному здравоохранению и технологи
ям стрессоустойчивости» (соглашение от 13.11.2020 №075-15-2020-933).
2. Результаты работы используются в учебном процессе кафедры вы
числительной техники ФГАОУ ВПО «Санкт-Петербургский государственный
электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина)» при
преподавании курсов «Распределенные базы данных», «Не реляционные базы
данных», «Оптимизация баз данных»
Апробация работы. Основные результаты работы докладывались на сле
дующих конференциях:
– 2021 IEEE Конференция российских молодых исследователей в области
электротехники и электроники (2021 ElConRus) (Санкт-Петербург, 26-29 ян
варя 2021 г.)
– II Международная конференция по нейронным сетям и нейротехнологиям
(NeuroNT’2021) (Санкт-Петербург, 16 июня 2021 г.)
– The 21st International Conference on Computational Science and its
Applications (Кальяри, Италия, 13-16 сентября 2021 г.)
Публикации по теме диссертации.
Полученные основные теоретические и практические результаты диссерта
ционного исследования опубликованы в 11 трудах, в том числе в 2 научных
статьях в журналах, рекомендуемых ВАК к опубликованию основных науч
ных результатов диссертаций на соискание ученой степени кандидата наук, 3
научных статьях, опубликованных в зарубежных журналах, входящих в базы
цитирования Web of Science и Scopus, 3 публикациях в сборниках конференций,
3 свидетельствах о государственной регистрации программы для ЭВМ.
Структура и объем диссертации
Диссертация состоит из введения, 4 глав, заключения, списка литературных
источников, состоящего из 147 наименований, 2 приложений. Работа изложена
на 190 машинописных страницах, включая 73 рисунка и 19 таблиц.
Во введении приведена актуальность темы диссертационной работы,
освещены объект и предмет исследования, сформулированы цель и задачи ис
следования, основные положения, выносимые на защиту, прописана научная
новизна, описана теоретическая и практическая значимость результатов.
В первой главе представлен обзор существующих подходов к трансляции
баз данных из одной формата в другой и оптимизации работы с базами дан
ных NoSQL.
Рассмотрена классификация баз данных, приведены результаты анализа ос
новных направлений оптимизации работы с реляционными базами данных. В
частности, рассмотрены подходы, основанные на индексировании данных, ор
ганизации распределенной и параллельной обработки данных, оптимизации
плана выполнения запроса, оптимизации схемы базы данных. Проанализиро
ваны достоинства и недостатки реляционных и NoSQL баз данных, показана
актуальность решения задачи трансляции реляционной базы данных в формат
NoSQL с оптимизаций схемы базы данных и запросов к ней.
Во второй главе описываются методы оптимизации структуры базы
данных NoSQL. Приведен метод определения структуры коллекций для ба
зы данных типа «ключ-документ» по заданному набору свойств и запросов
и описана методика применения разработанных методов для трансляции и
проектирования базы данных типа «ключ-документ». Далее в главе приведе
но описание метода определения структуры вложенных документов в базах
данных NoSQL типа «ключ-документ». В конце главы представлен разрабо
танный метод оптимизации структуры распределенной базы данных NoSQL
типа «ключ-документ».
В третьей главе приведен метод трансляции запросов из реляционной базы
данных в NoSQL с учетом структуры базы данных. Рассмотрен пример приме
нения разработанного метода для трансляции разных запросов к базе данных
MongoDB с разными вариантами структуры базы данных: без вложенных до
кументов и со вложенными документами.
В четверной главе описаны результаты тестирования разработанных ме
тодов с разными по структуре исходными реляционными базами данных.
Приведено описание программных модулей, которые были разработаны в рам
ках диссертационной работы.
В заключении обобщаются основные результаты диссертационной работы.
Помогаем с подготовкой сопроводительных документов
Хочешь уникальную работу?
Больше 3 000 экспертов уже готовы начать работу над твоим проектом!