Similar presentations:
Распределенные СУБД
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.