Информационные сети и базы данных

реклама
Специальность 100400.62 «Туризм»
Учебная дисциплина
«Информационные сети и базы данных»
Лекция №9
РАСПРЕДЕЛЕННЫЕ БАЗЫ ДАННЫХ И УПРАВЛЕНИЕ
ПАРАЛЛЕЛЬНОЙ ОБРАБОТКОЙ ДАННЫХ
Учебные вопросы:
организации распределенных
1. Основы
баз
данных.
2. Типы параллелизма при обработке запросов.
Литература
1. Базы данных: учеб. Пособие для студ. высш.
учеб. Заведений / А.В. Кузин, С.В.
Левонисова. – 2-е изд. стер. – М.:
Издательский центр «Академия», 2008.
2. Марков А.С., Лисовский К.Ю. Базы данных.
Введение в теорию и методологию: Учебник.
–М.: Финансы и статистика, 2006.
3. Теория и практика построения баз данных. 8е изд. / Д. Крёнке. –СПб: Питер, 2003.
Вопрос 1. Основы организации
распределенных баз данных
Распределенная база данных представляет собой
виртуальную базу данных, компоненты которой
физически хранятся в нескольких различных реальных
базах данных на нескольких различных узлах (в сущности,
являясь логическим объединением этих реальных баз
данных).
Все распределенные базы данных делятся на два типа:
Однородные – это те базы данных, у которых все
локальные данные управляются СУБД одного типа.
Неоднородные – это такие БД, у которых все
локальные данные могут управляться СУБД разного типа и
могут иметь разные модели данных.
Все узлы в распределенных БД являются автономными,
т.е. полная независимость узла от других узлов.
Все узлы в распределенных БД являются автономными, т.е.
полная независимость узла от других узлов.
Задачи РСУБД:
1. Выполнение запросов.
2. Обработка транзакций.
3. Обнаружение распределенных тупиков.
4. Восстановление РБД.
Каждая таблица имеет имя, состоящее из полного имени и
системного имени.
Полное имя: задается командой CREAT TABL
Системное имя (создается при создании автоматически) и
включает в себя:
• Имя таблицы
• № узла создания
• № узла в котором таблица была размещена после создания
(родовой узел)
• Имя создателя
Существует оператор, который позволяет отправить таблицу на
любой из узлов сети: MYGRATE TABLE эту таблицу можно найти по
локальному каталогу, в котором эта таблица была размещена после
создания. Когда запрос обращается к таблице, считывается имя и
затем считывается адрес, где находится таблица.
Порядок выполнения запросов в БД представлен на рисунке 1.
Узел, из которого исходит запрос, называется главным. Узлы, в
которые входит запрос, называется дополнительными.
Рисунок 1 - Порядок выполнения запросов в распределенной БД
Запрос включает в себя следующие этапы:
1. Разбор команды SQL в главном узле с заменой полных имен
таблиц на системные имена.
2. Определяется порядок взаимодействия узлов в главном узле.
3. Разбивается весь запрос на составные части, каждая из которых
будет воспроизводиться в своем узле. Эти части (подзапросы)
рассылаются по соответствующим узлам.
4. На дополнительных узлах происходит проверка прав доступа
пользователя, оптимизация запроса в соответствии с имеющимися
индексами, происходит комплектация запросов, т.е. генерация
машинных кодов.
Современное
решение
проблемы
СУБД
для
мультипроцессорных
платформ
заключается
в
возможности запуска нескольких серверов базы данных, в
том числе и на различных процессорах. При этом каждый
из серверов должен быть многопотоковым. Если эти два
условия выполнены, то есть основания говорить о
многопотоковой архитектуре с несколькими серверами,
представленной на рис. 2.
Она также может быть названа многонитевой
мультисерверной архитектурой. Эта архитектура связана с
вопросами распараллеливания выполнения одного
пользовательского запроса несколькими серверными
процессами.
Рисунок 2 - Многопотоковая мультисерверная архитектура БД
Существует
несколько
возможностей
распараллеливания
выполнения запроса. В этом случае пользовательский запрос
разбивается на ряд подзапросов, которые могут выполняться
параллельно, а результаты их выполнения потом объединяются в
общий результат выполнения запроса. Тогда для обеспечения
оперативности выполнения запросов их подзапросы могут быть
направлены отдельным серверным процессам, а потом полученные
результаты объединены в общий результат (см. рис 3).
В данном случае серверные процессы не являются независимыми
процессами, такими, как рассматривались ранее. Эти серверные
процессы принято называть нитями (treads), и управление нитями
множества запросов пользователей требует дополнительных
расходов от СУБД, однако при оперативной обработке информации в
хранилищах данных такой подход наиболее перспективен.
Рисунок 3 - Многонитевая мультисерверная архитектура запросов
Горизонтальный параллелизм.
Этот параллелизм возникает тогда, когда хранимая в БД
информация распределяется по нескольким физическим
устройствам хранения — нескольким дискам. При этом
информация из одного отношения разбивается на части по
горизонтали (см. рис. 4). Этот вид параллелизма иногда
называют распараллеливанием или сегментацией данных. И
параллельность здесь достигается путем выполнения
одинаковых операций, например фильтрации, над разными
физическими хранимыми данными. Эти операции могут
выполняться параллельно разными процессами, они
независимы.
Результат: выполнения
целого
запроса
складывается из результатов выполнения отдельных операций.
Время выполнения такого запроса при соответствующем
сегментировании данных существенно меньше, чем время
выполнения этого же запроса традиционными способами
одним процессом.
Вертикальный параллелизм.
Этот параллелизм достигается конвейерным выполнением
операций, составляющих запрос пользователя. Этот подход
требует серьезного усложнения в модели выполнения
реляционных операций ядром СУБД. Он предполагает, что ядро
СУБД может произвести декомпозицию запроса, базируясь на его
функциональных компонентах, и при этом ряд подзапросов
может выполняться параллельно, с минимальной связью между
отдельными шагами выполнения запроса.
Общее время выполнения подобного запроса, конечно, будет
существенно меньше, чем при традиционном способе
выполнения последовательности из четырех операций (см. рис.
4).
Рисунок 4 - Выполнение запроса при вертикальном параллелизме
Рисунок 5 - Выполнение запроса при гибридном параллелизме
И третий вид параллелизма является
гибридом двух ранее рассмотренных и
называется гибридным параллелизмом
(см. рис. 5).
Наиболее активно применяются все виды
параллелизма в OLAP-приложениях, где эти
методы позволяют существенно сократить
время выполнения сложных запросов над
очень большими объемами данных.
Скачать