- •Введение
- •1. Основы, принципы, виды
- •1.1. Понятия и определения
- •1.1.1 Принципы распределенных бд
- •1.1.1.1 Локальная автономия и непрерывность
- •1.1.1.2 Прозрачность
- •1.1.1.3 Обработка
- •1.3 Виды распределенных баз данных
- •1.3.1 Виды распределенных баз данных (следующий слайд)
- •1.1.1.3 Прозрачность
- •1.2. Преимущества и недостатки
- •1.3.2 Виды распределенных баз данных (следующий слайд)
- •1.4. Сложности и возможные решения
- •1.5. Принципы открытого доступа и функциональной совместимости баз данных
- •1.6. Мультибазовые системы
- •1.6.1 Возможности мультибазовых систем
- •1.6.2 Возможности мультибазовых систем
- •1.7. Параллельные субд
- •1.7.1 Типы параллельных субд (следующий слайд)
- •1.7.1.1 Параллельная система без разделения вычислительных ресурсов
- •1.7.1.2 Параллельная система с разделением памяти
- •1.7.1.3 Параллельная система с разделением дисков
- •1.7.1.4 Преимущества и применение
- •2. Методы и средства реализации рбд
- •2.1. Фрагментация данных
- •2.1.1. Принцип горизонтальной фрагментации данных
- •2.1.2. Пример горизонтальной фрагментации данных
- •2.1.3. Принцип вертикальной фрагментации данных
- •2.1.4. Пример вертикальной фрагментации данных
- •2.1.5. Преимущества и недостатки
- •2.2. Репликация данных
- •2.2.1 Тиражирование
- •2.2.2 Модели тиражирования
- •2.2.3 Модели тиражирования
- •3. Уровни рбд
- •3.1 Глобальный уровень (не пропускать слайд)
- •3.2 Пользовательский уровень
- •3.3 Локализационный уровень
- •4. Архитектуры распределенных баз данных
- •4.1 Архитектуры распределенных баз данных
- •4.2. Архитектура «клиент-сервер»
- •4.2.3 Система «клиент-сервер»
- •4.2.4 Состав «клиент-сервер»
- •4.2.4.1 Состав «клиент-сервер»
- •4.2.4.2 Состав «клиент-сервер» (следующий слайд)
- •4.2.4.3 Состав «клиент-сервер» (следующий слайд)
- •4.2.4.4 Состав «клиент-сервер» (следующий слайд)
- •4.2.4.5 Состав «клиент-сервер» (следующий слайд)
- •5. Проектирование рбд
- •5.1 Проектирование рбд
- •5.2 Проектирование рбд (следующий слайд)
- •5.3. Базовые технологии.
- •5.3. Базовые технологии. Сравнение на понятийном уровне (следующий слайд)
- •5.3.1.1 Особенности
- •5.3.1.2 Преимущества и недостатки
- •5.3.2 Понятие о технологии corba
- •5.3.2.1. Технология corba
- •5.3.2.2. Особенности
- •5.3.2.2. Особенности (следующий слайд)
- •5.3.2.3 Преимущества и недостатки
- •Объектная архитектура распределенных систем.
- •5.3.3.1 Понятие о технологии ejb
- •5.3.3.2 Состав
- •5.3.3.3 Понятие о технологии .Net
- •5.3.3.4 Состав
- •6 Информационная безопасность
- •6.1 Источники угроз
- •6.1.1 Внутренние источники угроз
- •6.1.2 Технические средства
- •6.2 Объекты угроз информационной безопасности
- •6.2.1 Наиболее распространенные угрозы безопасности данных.
- •6.2.1.1 Внутренние угрозы безопасности данных.
- •6.2.1.2 Внешние угрозы безопасности данных.
2.1.1. Принцип горизонтальной фрагментации данных
На рисунке 1 изображен принцип разделения данных при горизонтальной фрагментации.
Рисунок 1. Горизонтальная фрагментация
2.1.2. Пример горизонтальной фрагментации данных
На рисунке 2 приведен пример горизонтальной фрагментации.
Рисунок 2. Пример горизонтальной фрагментации
2.1.3. Принцип вертикальной фрагментации данных
При вертикальной фрагментации отношение делится на разделы при помощи операции проекции. Например, один раздел отношения Employee может содержать поля:
Номер_сотрудника (emp_id),
ФИО_сотрудника (emp_name),
Адрес_сотрудника (emp_adress),
а другой – поля Номер_сотрудника (emp_id),
Оклад (salary),
Руководитель (emp_chief).
Тогда запрос «получить информацию о заработной плате сотрудников компании» будет выглядеть следующим образом:
SELECT employee.emp_id,
emp_name,
salary
FROM employee@donetsk,
employee@kiev
ORDER BY emp_id
2.1.4. Пример вертикальной фрагментации данных
На рисунках 3 и 4 изображены сущность и пример вертикальной фрагментации.
Рисунок 3. Вертикальная фрагментация
Рисунок 4. Пример вертикальной фрагментации
2.1.5. Преимущества и недостатки
За счет фрагментации данные приближаются к месту их наиболее интенсивного использования, что потенциально снижает затраты на пересылки; уменьшаются также размеры отношений, участвующих в пользовательских запросах. Однако практически добиться ускорения выполнения запросов, затрагивающих фрагментированные отношения, очень трудно. Основная проблема состоит в резком расширении пространства поиска вариантов выполнения запросов, с которым должен работать оптимизатор запросов.
2.2. Репликация данных
Второй способ распределения данных – репликация (рис.5). Репликация (или тиражирование) означает создание дубликатов данных.
Репликаты – это множество различных физических копий некоторого объекта базы данных (обычно таблицы), для которых поддерживается синхронизация (идентичность) с некоторой "главной" копией.
Рисунок 5. Репликация
2.2.1 Тиражирование
Теоретически значения всех данных в тиражированных объектах должны автоматически и незамедлительно синхронизироваться друг с другом. (На практике это правило обычно несколько ослабляется.) В некоторых системах копии используются исключительно в режиме чтения и обновляются в соответствии с заданным расписанием. В других средах допускается модификация отдельных значений в копиях, и эти изменения распространяются в соответствии с процедурами планирования и координации.
При репликации фрагменты данных тиражируются с учетом спроса на доступ к ним. Это полезно, если доступ к одним и тем же данным нужен из приложений, выполняющихся на разных узлах. В таком случае, с точки зрения экономии затрат, более эффективно будет поддерживать копии данных на всех узлах, чем непрерывно пересылать данные между узлами.
2.2.2 Модели тиражирования
На рисунках 7, 8, 9 показаны различные модели тиражирования.
Рисунок 7. Одновременное обновление (с управлением параллелизмом)
Рисунок 8. Распространенные обновления
Рисунок 9. Запланированная синхронизация дубликатов только для чтения
2.2.3 Модели тиражирования
Основной проблемой репликации данных является то, что обновление любого логического объекта должно распространяться на все хранимые копии этого объекта. Трудности возникают из-за того, что некоторый узел, содержащий данный объект, может быть недоступен (например, из-за краха системы или данного узла) именно в момент обновления. В таком случае очевидная стратегия немедленного распространения обновлений на все копии может оказаться неприемлемой, поскольку предполагается, что обновление (а значит и исполнение транзакции) будет провалено, если одна из копий будет недоступна в текущий момент.
В современных СУБД функции репликации выполняет, как правило, специальный модуль – сервер тиражирования данных, называемый репликатором (так устроены СУБД CA – OpenIngress и Sybase). В Informix-OnLine Dynamic Server репликатор встроен в сервер, в Oracle для использования репликации необходимо приобрести дополнительную опцию Replication Option.
Спецификация механизмов репликации зависит от используемой СУБД. Простейший вариант – использование «моментальных снимков» (snapshot).
