
- •Распределённые базы данных: основные понятия.
- •Аспекты сетевого взаимодействия (необходимые условия функционирования сурбд).
- •2.1. Прозрачность сети
- •2.2. Автоматическое преобразование форматов данных
- •2.3. Автоматическая трансляция кодов
- •2.4. Межоперабельность
- •4. Свойства ddb: обработка распределённых запросов, прозрачность расположения, прозрачная фрагментация, прозрачное тиражирование.
- •5. Свойства ddb: независимость от оборудования, независимость от операционных систем, прозрачность сети, независимость от баз данных.
- •6. Обработка и оптимизация запросов.
- •7. Управление одновременным доступом.
- •7.1. Централизованный протокол двухфазной блокировки
- •7.2. Двухфазная блокировка первичной копии
- •7.3. Распределённый протокол двухфазной блокировки
- •7.4. Протокол блокирования большинства
- •7.5 Альтернативные алгоритм
- •7.2.1. Централизованный метод
- •3. Сбой носителя (диска)
- •4. Коммуникационные сбои
- •9. Технология тиражирования данных.
- •10.Масштабируемость (расширяемость).
- •11. Производительность.
- •12. Смешанная загрузка субд (olcp).
- •13. Постоянная доступность данных.
- •14. Параллельные системы баз данных: общее понятие.
- •15. Цели и параметры параллелизма: ускорение и расширяемость.
- •16. Аппаратная архитектура.
- •17. Параллелизм внутри реляционных операторов.
4. Свойства ddb: обработка распределённых запросов, прозрачность расположения, прозрачная фрагментация, прозрачное тиражирование.
Обработка распределённых запросов
Приведём пример распределённого запроса. Пусть в узле, находящемся в Лондоне, есть таблица customer, а в узле, находящемся в Париже, – таблица order.
SELECT customer.name, customer.address, order.number, order.date FROM customer@london, order@paris
WHERE customer.cust_number = order.cust_number
Обработка распределённых запросов (Distributed Query - DQ) – задача более сложная, нежели обработка локальных запросов, и она требует интеллектуального решения с помощью особого компонента – оптимизатора распределённых запросов. Его основной целью является улучшение производительности. Основными факторами, влияющими на производительность, являются: объём информации; скорость передачи данных; загрузка сети; производительность узлов.
Пример возможного решения поставленной задачи:
select T1.* from T1, T2, T3 where T1. назв_изд = T2.назв_изд
and T2.назв_дет = T3.название_дет and T1.место_сборки = “Москва” and T3.назв_элем = “Болт”
Данный запрос – распределённый, т.к. затрагивает таблицы, принадлежащие различным локальным базам данных. Для его нормального выполнения необходимо иметь все исходные таблицы на одном узле. Следовательно, отсутствующие таблицы должны быть переданы по сети. Существует несколько стратегий, как это сделать:
1. Простейшая стратегия – перемещение таблиц в узел, из которого поступил запрос:
1) запрос из узла А: перемещение таблицы T3 в узел А (10 Мб) – при скорости 1 Мб/сек это 10 сек.
2) запрос из узла Б: перемещение таблиц T1, T2 в узел Б (101 Мб) – при скорости 1 Мб/сек это 101 сек;
2. Более хорошая стратегия – создание подмножества данных по названию детали (Болт) и месту сборки изделий (Москва):
1) запрос из узла А: перемещение 10 записей описаний деталей из таблицы T3 в узел А (1 000 б) – при скорости 1 Мб/сек это 0,001 сек.
2) запрос из узла Б: перемещение 100 000 записей о поставках из таблицы T2 и 1 000 описаний изделий из таблицы T1 в узел Б (10 100 000 б) – при скорости 1 Мб/сек это ~ 10 сек;
3. Стратегия, исключающая вариации: независимо от узла, 1000-байтовая проекция таблицы деталей T3 передаётся из узла Б в узел А, там получается результат и, если запрос возник в узле Б, результат пересылается обратно.
Прозрачность расположения
Это средний уровень прозрачности распределённости; он предполагает, что пользователь имеет сведения о способах фрагментации, но не нуждается в сведениях о расположении данных.
select y.emp_id, x.emp_name, y.salary
from employee1 x, emp_salary y
where x.emp_id = y.emp_id and position = ”Manager”
union
select y.emp_id, x.emp_name, y.salary
from employee2 x, emp_salary y
where x.emp_id = y.emp_id and position = ”Manager”9
Основное преимущество прозрачности расположения – база данных может подвергнуться реорганизации, что никак не скажется на приложении.
Прозрачность фрагментации
Это высший уровень прозрачности распределённости; он предполагает, что пользователь ничего не знает о том, как фрагментированы таблицы. Тот же запрос выглядит как SQL-запрос в централизованной БД:
select emp_id, emp_name, salary
from staff where position = ”Manager”
Свойство прозрачности распределённости РБД в реальных продуктах должно поддерживаться соответствующими механизмами. Разработчики СУБД придерживаются различных подходов.В одном из подходов задача решается с помощью оператора SQL create synonym, который позволяет создавать новые имена для существующих таблиц. Так, запись
create synonym customer for client@central: smith.customer
означает, что любое обращение к таблице customer в открытой базе данных будет автоматически переадресовано на компьютер central в базу данных client к таблице customer пользователя smith. Теперь можно написать полностью независимый от расположения базы данных запрос:
select customer.cust_name, order.order_date from customer, order
where customer.cust_number = order.cust_number
При таком подходе можно переместить таблицу из одной базы данных в другую, оставив в первой базе ссылку на её новое местонахождение, при этом все необходимые действия для доступа к содержимому таблицы будут сделаны автоматически.
Прозрачность тиражирования
Тиражирование данных – это асинхронный (в общем случае) процесс переноса изменений объектов исходной базы данных в базы, расположенные на других узлах распределённой системы.
Прозрачность тиражирования означает возможность переноса изменений между базами данных средствами, невидимыми пользователю распределённой системы.