Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
!1-25.doc
Скачиваний:
11
Добавлен:
28.10.2018
Размер:
2.62 Mб
Скачать

25.2 Распределенные базы данных.

Репликация - это операция обновления данных время от времени на различных узлах. Основная задача распределенных БД - это оптимистическое распределение данных по узлам сети.

Существует следующие стратегии решения этой задачи:

В каждом узле собственный набор данных - это раздельное распределение. При таком способе существует проблема синхронизации данных. Эта проблема решается при помощи репликации данных.

Некоторые данные, которые часто используются дублируются в узлах - это частично - дублированное распределение.

Полностью дублированное распределение  - все данные дублируются в каждом узле.

Некоторые файлы данных распределяются по частям в узлах сети. Эти файлы называются дифференциальными.

Преимущества распределенных БД перед централизованными:

Большая скорость обработки вследствие распределенной нагрузки.

Улучшенное использование данных на местах и упрощение управлением данных.

Более рациональное использование дискового пространства и понижение требований к ресурсам компьютера.

Проблемы, возникающие в распределенных БД: Логическая прозрачность - это единая схема БД для пользователя.

Прозрачность размещения - пользователь не указывает с какого узла нужно брать данные. Прозрачность преобразования, т.е. независимость от программных и аппаратных средств в узлах сети. Управление словарями данных для обеспечения прозрачности. Методы выполнения запросов в распределенных БД. Обеспечение целостности при одновременной обработке данных. При организации распределенных БД возникают задачи оптимизации размещения данных в узлах сети. Здесь определяющими являются структура сети и частота транзаций в процессе эксплуатации.

Основные правила организации распределенных БД (12 правил Дейта).

Локальная автономия. Узлы в локальной сети автономны, т.е. операции на данном узле управляют этим узлом и не зависят от управления в других узлах. Вопросы целостности, безопасности, владения и хранения остаются под контролем данного узла. При этом все узлы рассматриваются как равноправные. В действительности локальная автономия достигается не полностью, а в максимально возможной степени.

Независимость от центрального узла. При обработке запросов управления транзакциями зависимость от центрального узла не желательна, поскольку центральный узел может стать узким местом. Кроме того система будет уязвима при повреждении центрального узла.

Непрерывное функционирование. Преимуществом распределенной системы есть надежность и доступность. Надежность означает вероятность того, что система работает в любой момент времени. В распределенной системе надежность повышается благодаря тому, что система может работать при выходе из строя отдельных узлов. Доступность - это вероятность того, что система работает в течение определенного промежутка времени. Доступность повышается благодаря дублированию данных в отдельных узлах, которые включены в разное время.

Независимость от расположения. Пользователю нужно обеспечить такой режим работы, при котором создается впечатление, что данные хранятся на его узле. При этом данные могут перемещаться от узла к узлу, не влияя на приложение.

Независимость от фрагментации. Фрагментацией называется разделение отдельной таблицы на части, которые хранятся в разных узлах. Существует два типа фрагментации: горизонтальная и вертикальная

 которые связаны с операциями выбора и проекции в реляционной алгебре. При фрагментации вводятся следующие допущения:

Все фрагменты данной таблицы независимы. Проекции не должны допускать потери информации, т.е. должно быть обеспечено соединение без потерь. Прозрачность фрагментации означает, что пользователю каждая фрагментированная таблица должна казаться целой. При этом системный оптимизатор СУБД сам определяет, какая операция соединения должна выполняться для данного запроса.

Независимость от репликаций. Говорят, что система поддерживает независимость от репликаций, если таблицы или фрагменты могут быть представлены различными копиями (реплики), хранящиеся на нескольких узлах. Благодаря независимости от репликаций достигается большая производительность, т.к. нет обмена с удаленными узлами. Основная сложность для репликаций - это обновление всех копий при модификации данных - это проблема распределения обновлений. Независимость от репликаций предполагает, что системный оптимизатор организует доступ к тем данным, которые оптимальны для данного запроса. Запрос формируется на основании одного узла.

Обработка распределенных запросов. Основная проблема распределенных запросов - оптимизация, поскольку существует много способов перемещения данных по сети из различных узлов. Оптимизатор должен найти наиболее эффективную стратегию. Данные можно перемещать на один из 2-х узлов, потом на следующий узел и т.д. Для 3-х узлов можно составить 6 различных стратегий. Пользователь не видит, где хранятся данные и это возлагается на системный оптимизатор.

Управление распределенными транзакциями. Существует два аспекта управления транзакцией:

1. управление восстановления. 2.параллелизмом (поскольку выполняются разные части транзакций на разных компьютерах.)

  Раскрытые транзакции делятся на несколько частей - агентов. Это процессы, выполняющиеся на разных узлах. При реализации транзакций СУБД должна удостовериться, что выполнены все агенты, тогда транзакция завершится, если не выполнен хотя бы один агент, то происходит откат, который реализуется через агента отката. (Если запрос на чтение, то нормально, потому что данные не изменились). Эта цель достигается путем ведения протокола двухфазной фиксации:

1. это разделение транзакции и направление их к отдельным узлам.2.фиксация завершения всех агентов и всей транзакции или откат транзакций при неуспешном завершении хотя бы одного агента.

Независимость от аппаратного обеспечения. Опр-ся все серверные СУБД, которые работают на различных платформах.

Независимость от операционных систем. СУБД должна работать с различными операционными системами в единой сети.

Независимость от сети. Все экземпляры в узлах должны поддерживать одинаковый интерфейс, переходы осуществляются при помощи шлюзов.

Независимость о СУБД. Доступ к данным в определенной системе должен быть прозрачным по отношению к СУБД, т. е. пользователь не должен знать какие СУБД находятся в узлах.