ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 01.12.2023
Просмотров: 180
Скачиваний: 3
СОДЕРЖАНИЕ
ЛЕКЦИЯ 5 РАСПРЕДЕЛЕННЫЕ БАЗЫ ДАННЫХ
Именно эти две идеи положены в основу создания распределенных ИС и баз данных.
Понятие распределенной БД (DDB)
Определение идеальной DDB Криса Дейта
2. Независимость от центрального узла
7. Обработка распределенных запросов
8. Обработка распределенных транзакций
9. Независимость от оборудования
10. Независимость от операционных систем
12. Независимость от баз данных
Обработка распределенных запросов
ОТСТУПЛЕНИЕ ОТ ПРИНЦИПОВ ИДЕАЛЬНОЙ DDB КРИСА ДЕЙТА
Модели технологии «клиент-сервер»
Пассивная роль ядра СУБД в RDA
Двухзвенная схема разделения функций
Трехзвенная схема разделения функций
Программное обеспечение промежуточного слоя (Middleware)
Трехзвенной AS – модель можно считать и потому, что в ней явно выделены:
двухзвенными моделями (технология «SQL-клиент - SQL-сервер» и
Вывод по моделям «Клиент-сервер»
Преимущества технологии тиражирования
Недостатки технологии тиражирования
Технология объектного связывания
ЛЕКЦИЯ 5 РАСПРЕДЕЛЕННЫЕ БАЗЫ ДАННЫХ
Основные принципы создания и функционирования распределенных баз данных
Трудности в практической реализации распределенных систем
- технология клиент-сервер
технология тиражирования
технология объектного связывания
2. Логически и физически распределенные данные, составляющие единое взаимосвязанное целое – общую БД, могут находиться на различных вычислительных установках.
Именно эти две идеи положены в основу создания распределенных ИС и баз данных.
Понятие распределенной БД (DDB)
Под распределенной (Distributed DataBase - DDB) обычно подразумевают базу данных, включающую фрагменты из нескольких баз данных, которые располагаются на различных узлах сети компьютеров, и, возможно, управляются различными СУБД.
Распределенная база данных выглядит с точки зрения пользователей и прикладных программ как обычная локальная база данных. В этом смысле слово "распределенная" отражает способ организации базы данных, но не внешнюю ее характеристику.
Определение идеальной DDB Криса Дейта
Локальная автономия (local autonomy)
Независимость узлов (no reliance on central site)
Непрерывные операции (continuous operation)
Прозрачность расположения (location independence)
Прозрачная фрагментация (fragmentation independence)
Прозрачное тиражирование (replication independence)
Обработка распределенных запросов (distributed query processing)
Обработка распределенных транзакций (distributed transaction processing)
Независимость от оборудования (hardware independence)
Независимость от операционных систем (operationg system independence)
Прозрачность сети (network independence)
Независимость от баз данных (database independence)
1. Локальная автономия
Это качество означает, что управление данными на каждом из узлов распределенной системы выполняется локально.
База данных, расположенная на одном из узлов, является неотъемлемым компонентом распределенной системы.
Будучи фрагментом общего пространства данных, она, в то же время функционирует как полноценная локальная база данных; управление ею выполняется локально и независимо от других узлов системы.
2. Независимость от центрального узла
В идеальной распределенной системе все узлы сети равноправны и независимы, а расположенные на них базы являются равноправными поставщиками данных в общее пространство данных.
База данных на каждом из узлов самодостаточна - она включает полный собственный словарь данных и полностью защищена от несанкционированного доступа.
3. Непрерывные операции
Это качество можно трактовать как возможность непрерывного доступа к данным (известное выражение "24 часа в сутки, семь дней в неделю") в рамках DDB вне зависимости от их расположения и вне зависимости от операций, выполняемых на локальных узлах.
Это качество можно выразить лозунгом "данные доступны всегда, а операции над ними выполняются непрерывно".
4. Прозрачность расположения
Это свойство означает полную прозрачность расположения данных. Пользователь, обращающийся к DDB, ничего не должен знать о реальном, физическом размещении данных в узлах распределенной информационной системы.
Все операции над данными выполняются без учета их местонахождения.
Транспортировка запросов к базам данных осуществляется встроенными системными средствами.
5. Прозрачная фрагментация
Это свойство трактуется как возможность распределенного (то есть на различных узлах) размещения данных, логически представляющих собой единое целое.
Существует фрагментация двух типов: горизонтальная и вертикальная.
Первая означает хранение строк одной таблицы на различных узлах (фактически, хранение строк одной логической таблицы в нескольких идентичных физических таблицах на различных узлах).
Вторая означает распределение столбцов логической таблицы по нескольким узлам.
6. Прозрачность тиражирования
Тиражирование данных - это асинхронный (в общем случае) процесс переноса изменений объектов исходной базы данных в базы, расположенные на других узлах распределенной системы.
В данном контексте прозрачность тиражирования означает возможность переноса изменений между базами данных средствами, невидимыми пользователю распределенной системы.
Данное свойство означает, что тиражирование возможно и достигается внутрисистемными средствами.
7. Обработка распределенных запросов
Это свойство DDB трактуется как возможность выполнения операций выборки над распределенной базой данных
, сформулированных в рамках обычного запроса на языке SQL.
То есть операцию выборки из DDB можно сформулировать с помощью тех же языковых средств, что и операцию над локальной базой данных.
8. Обработка распределенных транзакций
Это качество DDB можно трактовать как возможность выполнения операций обновления распределенной базы данных (INSERT, UPDATE, DELETE), не разрушающее целостность и согласованность данных.
Эта цель достигается применением двухфазного протокола фиксации транзакций (two-phase commit protocol), ставшего фактическим стандартом обработки распределенных транзакций. Его применение гарантирует согласованное изменение данных на нескольких узлах в рамках распределенной (или, как ее еще называют, глобальной) транзакции.
9. Независимость от оборудования
Это свойство означает, что в качестве узлов распределенной системы могут выступать компьютеры любых моделей и производителей - от мэйнфреймов до "персоналок".
10. Независимость от операционных систем
Это качество вытекает из предыдущего и означает многообразие операционных систем, управляющих узлами распределенной системы.
11. Прозрачность сети
Доступ к любым базам данных может осуществляться по сети. Спектр поддерживаемых конкретной СУБД сетевых протоколов не должен быть ограничением системы с распределенными базами данных.
Данное качество формулируется максимально широко - в распределенной системе возможны любые сетевые протоколы.
12. Независимость от баз данных
Это качество означает, что в распределенной системе могут мирно сосуществовать СУБД различных производителей, и возможны операции поиска и обновления в базах данных различных моделей и форматов.
ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ DDB
Возникающие проблемы:
Проблемы техники представлений (Views)
Проблема целостности данных
Проблема обработка распределенных запросов
Проблема межоперабельности
Определение представления
Представлением называется сохраняемый в БД авторизованный глобальный запрос на выборку.
Авторизованность означает возможность запуска его конкретным поименованным пользователем.
Глобальность означает возможность выборки данных из всех БД, находящихся на разных узлах системы.
В результате таких глобальных авторизованных запросов для конкретного пользователя создается некая виртуальная БД, со своим перечнем таблиц, связей, со своей схемой данных.
Техника представлений реализуется через введение в язык SQL специализированных конструкций.
Практическая реализация техники представлений встречает ряд серьезных проблем.
I. Размещение системного каталога БД: ядро СУБД должно узнавать, где в самом деле находятся данные. Требование отсутствия центральной установки (независимость узлов) приводит к тому, что системный каталог должен быть на каждом узле.
II. При копировании системного каталога, с целью его обновления на всех узлах возникает ряд серьезных проблем, в том числе, связанных с обеспечением целостности данных.
Проблемы практической реализации представлений
В DDB поддержка целостности и согласованности данных, ввиду свойств 1-2, представляет собой сложную проблему. Ее решение - синхронное и согласованное изменение данных в нескольких базах данных, составляющих DDB - достигается применением транзакций.
Если DDB однородна - то есть на всех узлах данные хранятся в формате одной базы и на всех узлах функционирует одна и та же СУБД, то используется механизм двухфазной фиксации транзакций данной СУБД.
В случае же неоднородности DDB для обеспечения согласованных изменений в нескольких базах данных используют менеджеры распределенных транзакций.
Если в DDB предусмотрено тиражирование данных, то это сразу предъявляет дополнительные жесткие требования к поддержки целостности данных на узлах, куда направлены потоки тиражируемых данных.
Проблема в том, что изменения в данных инициируются как локально - на данном узле - так и извне, посредством тиражирования.
Неизбежно возникают конфликты по изменениям, которые необходимо отслеживать и разрешать.
Обработка распределенных запросов
Обработка распределенных запросов (Distributed Query -DQ) - задача, более сложная, нежели обработка локальных запросов и она требует интеллектуального решения с помощью особого компонента - оптимизатора DQ.
Оптимизатор DQ запросов должен учитывать такие параметры, как, в первую очередь, размер таблиц, статистику распределения данных по узлам, объем данных, передаваемых между узлами, скорость коммуникационных линий, структуру хранения данных, соотношение производительности процессоров на разных узлах и т.д. От интеллекта оптимизатора DQ впрямую зависит скорость выполнения распределенных запросов.
Межоперабельность
Во-первых, - это качество, позволяющее обмениваться данными между БД различных поставщиков. Как, например, тиражировать данные из базы данных Informix в Oracle и наоборот? Ответом стало появление продуктов, выполняющих тиражирование между разнородными БД.
Во-вторых, это возможность некоторого унифицированного доступа к данным в DDB из приложения. Возможны как универсальные решения (стандарт ODBC), так и специализированные подходы.
Очевидный недостаток ODBC - недоступность для приложения многих полезных механизмов каждой конкретной СУБД, поскольку они могут быть использованы в большинстве случаев только через расширения SQL в диалекте языка данной СУБД, но в стандарте ODBC эти расширения не поддерживаются.
ОТСТУПЛЕНИЕ ОТ ПРИНЦИПОВ ИДЕАЛЬНОЙ DDB КРИСА ДЕЙТА
Если в жертву приносится принцип 2 (независимость узлов ), то получаем DDB, реализованную по технологии клиент -сервер.
Если в жертву приносится принцип 3 (непрерывные операции ), то получаем DDB, реализованную по технологии реплицирования (тиражирования).
Если в жертву приносится принцип 1 (локальная автономия ), то получаем DDB, реализованную по технологии объектного связывания.
ТЕХНОЛОГИИ "КЛИЕНТ-СЕРВЕР"
Основной принцип данной технологии заключается в разделении функций стандартного клиентского приложения на четыре группы:
Первая группа — это функции ввода и отображения данных – интерфейс пользователя.
Вторая группа объединяет чисто прикладные функции, характерные для данной предметной области (набор запросов, правил, процедур, функций).
К третьей группе относятся фундаментальные физические функции хранения и управления информационными ресурсами (базами данных, файловыми системами и т.д. ).
Функции четвертой группы — служебные, играющие роль связок между функциями первых трех групп.
Логические компоненты СУБД
В соответствии с этим в любой СУБД выделяются следующие логические компоненты:
компонент представления, реализующий функции первой группы (ввода и отображения данных);
прикладной компонент, поддерживающий функции второй группы (предметная область);
компонент физического доступа к информационным ресурсам, поддерживающий функции третьей группы.
протокол взаимодействия, поддерживающий функции четвертой группы, в котором вводятся и уточняются соглашения о способах взаимодействия первых трех компонент