# 29. Распределенные БД. Определение. Стратегии размещения данных в системе, их достоинства и недостатки. Понятие прозрачности
# Распределённые ДБ
def
Распределённая БД - это набор логически связанных между собой разделяемых данных и их описаний, которые физически распределены по нескольким вычислительным узлам.
TIP
Понятно, что нужно разделять таблицы
def
Фрагментирование - это разделение отношения, а получившиеся компоненты называются фрагментами.
# Типы распределённых БД
- Гомогенные - одинаковая СУБД на всех узлах
- Гетерогенные - на разных узлах могут быть разные СУБД
# Преимущества распределённых БД
- Может нативно отображать структуру организации
- Разделяемость и локальная автономность
- Повышение доступности данных, надёжности и производительности
- Модульность системы
# Недостатки распределённых БД
- Повышение сложности
- Увеличение суммарной стоимости владения
- Проблема защиты
- Усложнение поддержания целостности данных
- Отсутствие(несовместимость) стандартов
# Фрагментироваие
Горизонтальное (шардирование) - выделение подмножеств строк
Вертикальное - пытаемся хранить таблицу не как кортежи со всеми атрибутами, а отдельно столбцы (храним на разных узлах данные разной секретности)
Смешанное - очевидно (когда есть фрагмент таблицы, который часто используется)
def
Репликация - поддержка синхронизированных физических копий некоторого объекта БД
# Стратегии размещения данных в распределённой системе
# 1. Фрагментированное (раздельное) размещение
БД разбивается на непересекающиеся фрагменты, и каждый из фрагментов располагается строго на одном узле
# 2. Размещение с полной репликацией
На каждом узле есть полная реплика всей БД (олимпа ИТМО по проге)
# 3. Размещение с выборочной репликацией
Комбинация методов, когда одни фрагменты существуют в единственном экземпляре, а другие - в нескольких.
Разделяем БД тем или иным способом, и для каждого фрагмента решаем 2 задачи:
- Сколько копий фрагмента сделать
- Где их расположить
TIP
СУБД должна принимать данные решения
# Принципы прозрачности СУБД
# 1. Прозрачность фрагментации
Пользователь не знает, как фрагментирован тот или иной объект
# 2. Прозрачность расположения фрагмента
Пользователь не знает, на каком конкретном узле расположен тот фрагмент, к которому он обращается
При запросе не учитывается реальное расположение данных
# 3. Прозрачность количества реплик
Пользователь не может обратиться к конкретной реплике
При запросе не учитывается количество реплик данных в базе данных
# 4. Прозрачность контроля доступа
Пользователь не знает, данных действительно нет или у него нет на них доступа