Распределенные СУБД

1.

1
Красников Степан Альбертович
Распределенные СУБД
Лекция 2-3
Москва 2022

2.

2
Архитектурные модели для распределенных СУБД
Альтернативные реализации СУБД

3.

3
Клиент-серверные системы
Серверы распределенной базы данных
Эталонная клиент-серверная архитектура

4.

4
Одноранговые системы
Компоненты распределенной СУБД

5.

5
Системы управления мультибазами данных
Компоненты СУМБД
Архитектура с посредниками/обертками

6.

6
Облачные вычисления
Облако предоставляет различные уровни функциональности:
• инфраструктура как услуга (IaaS): предложение вычислительной инфраструктуры
(вычисления, сеть и ресурсы хранения) в виде услуги;
• платформа как услуга (PaaS): предложение вычислительной платформы вместе
с инструментами разработки и API в виде услуги;
• программное обеспечение как услуга (SaaS): предложение прикладного ПО в виде
услуги;
• база данных как услуга (DaaS): предложение базы данных в виде услуги.
Преимущества облачных вычислений:
• Стоимость;
• Простота доступа и использования;
• Качество обслуживания;
• Инновационность;
• Эластичность.
Недостатки:
• Зависимость от поставщика;
• Потеря контроля;
• Безопасность;
• Скрытые затраты.

7.

7
Облачные вычисления
Упрощенная архитектура облака

8.

8
Процесс проектирования распределения

9.

9
Фрагментация данных
Пример горизонтального секционирования
Пример базы данных
Пример вертикального секционирования

10.

10
Фрагментация данных
Полнота. Если отношение R разложено на фрагменты FR = {R1, R2, ..., Rn}, то
каждый элемент данных, присутствующий в R, может быть найден в одном или
нескольких фрагментах Ri. Это свойство, эквивалентное беспотерьной декомпозиции
нормализации, важно и при фрагментации, потому что гарантируется, что данные
глобального отношения отображаются на фрагменты без потерь.
Реконструкция. Если отношение R разложено на фрагменты FR = {R1, R2, ..., Rn}, то
должна существовать возможность определить реляционный оператор ∇ такой, что
R = ∇Ri, ∀Ri ∈ FR.
Дизъюнктность. Если отношение R разложено по горизонтали на фрагменты FR =
{R1, R2, ..., Rn} и элемент данных di принадлежит Rj, то он не принадлежит никакому
другому фрагменту Rk (k ≠ j). Это условие гарантирует, что горизонтальные
фрагменты дизъюнктны.

11.

11
Горизонтальная фрагментация
Для ребра L1
source(L1) = PAY,
target(L1) = EMP.
Граф соединений, представляющий связи между отношениями
Если задано отношение R(A1, A2,
..., An), где Ai – атрибут
с областью определения Di, то
простой предикат pj,
определенный на R, имеет вид
pj : Ai θ Value,
где θ ∈ {=, <, ≠, ≤, >, ≥}, а Value
выбирается из области
определения Ai (Value ∈ Di).
Будем обозначать Pri множество
всех простых предикатов,
определенных на отношении Ri.
Элементы Pri обозначаются pij.

12.

12
Главная горизонтальная фрагментация
Если задано отношение R, то его горизонтальные фрагменты определяются как
где Fi – операторы выборки для получения фрагмента Ri (они еще называются
предикатами фрагментации).
Разложение отношения PROJ на горизонтальные
фрагменты
PROJ1
и
PROJ2
определяется
следующим образом

13.

13
Главная горизонтальная фрагментация
Рассмотрим отношение PROJ. Мы можем определить
следующие горизонтальные фрагменты, основываясь на
месте выполнения проекта.
Главная горизонтальная фрагментация отношения PROJ

14.

14
Производная горизонтальная фрагментация
Если задано ребро L, где source(L) = S и target(L) = R, то производные горизонтальные фрагменты R
определяются следующим образом:
где w – максимальное число фрагментов, определенных на R, а Si =
σFi(S), где Fi – формула, по которой определен главный горизонтальный
фрагмент Si.
Рассмотрим ребро L1, для которого source(L1) = PAY
и target(L1) = EMP. Тогда инженеров можно объединить в две
группы согласно зарплате: те, чья зарплата меньше или равна
$30 000, и те, кто зарабатывает больше $30 000.
где

15.

15
Производная горизонтальная фрагментация
Теперь рассмотрим отношение ASG. Предположим, что имеется два запроса.
1. Первый запрос находит имена инженеров, работающих в определенных местах. Он выполняется
во всех трех узлах и обращается к информации об инженерах, занятых в локальных проектах
с большей вероятностью, чем в проектах, выполняемых в других местах.
2. В каждом административном узле, где хранятся записи о работниках, пользователи хотели бы
знать, какие функции работник выполняет в проекте и сколько времени над ним работает.
Первый запрос приводит к фрагментации ASG в соответствии с (непустыми) фрагментами PROJ1,
PROJ3, PROJ4 и PROJ6 отношения PROJ:
Поэтому
производная
фрагментация
ASG,
согласованная с {PROJ1, PROJ3, PROJ4, PROJ6},
определена следующим образом:

16.

16
Производная горизонтальная фрагментация
Второй запрос на SQL формулируется так:
где i = 1 или i = 2 в зависимости от того, в каком узле выполняется
запрос.
Производная фрагментация ASG, согласованная
с фрагментацией EMP

17.

17
Проверка корректности
Полнота
Поскольку в основе алгоритма фрагментации лежит множество полных и минимальных
предикатов (Pr ), то полнота гарантирована, если Pr определено надлежащим образом.
Пусть R – целевое отношение ребра, в котором исходным является от- ношение S,
причем R и S фрагментированы в виде FR = {R1, R2, ..., Rw} и FS = {S1, S2, ..., Sw}
соответственно. Пусть A – атрибут, по которому соединяются R и S.
Тогда для любого кортежа t отношения Ri должен существовать кортеж t отношения Si
такой, что t[A] = t [A]. Это хорошо известное правило ссылочной целостности,
гарантирующее, что кортежи любого фрагмента целевого отношения имеются также
и в исходном отношении.
Реконструкция
Реконструкция глобального отношения из его фрагментов осуществляется оператором
объединения как в главной, так и в производной горизонтальной фрагментации. Таким
образом, для отношения R с фрагментацией FR = {R1, R2, ..., Rw}, R = ⋃Ri, ∀Ri ∈ FR.
English     Русский Правила