- •Глава 1. Базы данных и системы управления 9
- •Глава 2. Организация доступа к данным 45
- •Глава 3. Реляционная алгебра 60
- •Глава 4. Основы sql 67
- •Глава 5. Проектирование реляционных баз данных 89
- •Глава 6. Взаимодействие sql с приложениями 116
- •Глава 7. Некоторые проблемы администрирования баз данных 154
- •Базы данных и системы управления
- •Файловые системы
- •Концепция баз данных
- •Основные функции субд
- •Непосредственное управление данными во внешней памяти
- •Управление буферами оперативной памяти
- •Управление транзакциями
- •Журнализация
- •Поддержка языков баз данных
- •Трехуровневая модель архитектуры систем баз данных
- •Модели данных
- •Характеристика связей
- •Компьютерно-ориентированные модели данных
- •Реляционный подход
- •Ключи и целостность реляционных данных
- •Моделирование концептуальной схемы базы данных
- •Организация доступа к данным
- •Страницы и файлы
- •Индексирование
- •Структуры типа б-дерева
- •Хеширование
- •Методы сжатия
- •Метод дифференциального сжатия
- •Иерархические методы сжатия
- •Кодирование по методу Хаффмена
- •Реляционная алгебра
- •Традиционные реляционные операции
- •Специальные реляционные операции
- •Дополнительные реляционные операции
- •Примеры использования реляционной алгебры для выражения словесных запросов в виде формул
- •Основы sql
- •Типы данных
- •Строковые типы данных
- •Битовые типы данных
- •Точные числовые типы данных
- •Вещественные числовые типы данных
- •Календарные типы данных
- •Значения null
- •Создание и обслуживание таблиц
- •Запрос на выборку
- •Статистические функции
- •Создание соединений
- •Вложенные запросы
- •Запрос на объединение
- •Запросы, выполняющие реляционные операции вычитания, пересечения и деления
- •Запросы на изменение
- •Перекрестные запросы
- •Проектирование реляционных баз данных
- •Нормализация отношений
- •Функциональные зависимости
- •Н ормальные формы, обоснованные функциональными зависимостями
- •Нормальная форма Бойса–Кодда
- •Нормальные формы, обоснованные более сложными зависимостями
- •Процедура нормализации и проектирования
- •Пример проектирования базы данных
- •Назначение и предметная область
- •Проектирование базы данных
- •Взаимодействие sql с приложениями
- •Встраивание sql-операторов в программный код
- •Тип курсора
- •Триггеры
- •Хранимые процедуры
- •Стандартные интерфейсы для доступа к данным
- •Информационное окружение веб-сервера
- •Стандарт odbc
- •Уровни соответствия
- •Уровень соответствия odbc
- •Задание имени источника данных odbc
- •Расширяемый язык разметки xml
- •Xml как язык разметки
- •Материализация хмl-документов с помощью xslt
- •Создание хмl-документов на основе информации из базы данных
- •Некоторые проблемы администрирования баз данных
- •Оптимизация запросов
- •Параллельная обработка данных
- •Потеря обновления
- •Зависимость от незафиксированных обновлений
- •Несогласованный анализ
- •Блокировки транзакций
- •Согласованность и уровень изоляции транзакций
- •Распределенные системы баз данных
- •Фрагментация
- •Репликация
- •Распространение обновлений
- •Управление каталогом
- •Распределенная обработка запросов
- •Типы распределенных систем баз данных
- •Нераспределенные мультибазовые субд
- •Клиент-серверные системы
- •Системы с общими ресурсами
- •Технические аспекты администрирования базы данных
- •Восстановление базы данных
- •Безопасность баз данных
- •Шифрование данных
- •Производительность баз данных
- •Администрирование данных
- •Литература
Распределенные системы баз данных
Ранее мы рассматривали системы баз данных, исходя из предположения, что они независимые, т.е. функционируют независимо от других баз данных. Однако часто возникает потребность во взаимодействии различных баз данных. Всегда возможно осуществить подобную кооперацию, одновременно используя несколько СУБД. Но так же как системы баз данных создают интегрированную управляемую среду для доступа к множеству данных, распределенные системы баз данных создают подобную среду, обеспечивающую доступ к множествам баз данных.
Распределенная система баз данных представляет собой набор логически связанных баз данных, которые воспринимаются каждым пользователем как единая база данных. Если этот принцип выполняется, то говорят, что данные в распределенной системе прозрачны.
Распределенные системы баз данных состоят из ряда баз данных, установленных на нескольких машинах, объединенных посредством компьютерной сети. В идеале пользователи и приложения должны иметь возможность получать доступ к данным, не имея точных знаний о том, где именно внутри сети расположены эти данные. Тогда при перемещении данных по сети нет необходимости вносить изменения в приложения. Это называется независимостью от размещения.
Прозрачность данных и независимость от размещения – две взаимодополняющие технические задачи распределенной системы баз данных. Они должны поддерживать достижение распределенной системой ее операционных целей.
В традиционной многопользовательской среде существует одна централизованная база данных с подключенными к ней удаленными терминалами. Такая схема имеет ряд недостатков:
Необходима большая дополнительная работа по обеспечению коммуникаций. Пересылаются большие объемы данных, а это происходит медленно и приводит к значительным затратам.
На перегруженной центральной машине возможны проблемы функционирования.
Возникает чрезмерная зависимость от центральной машины. В результате ее сбоя вся корпоративная база данных становится недоступной.
Для решения этих проблем нужно физически разделить корпоративную базу данных и распределить ее по нескольким локальным узлам. В идеале, в каждом локальном узле должна храниться часть базы данных, имеющая к нему непосредственное отношение. Так, в каждом отделении компании можно создать отдельную систему с базой данных, в которой будут храниться и обрабатываться записи, касающиеся этого отделения. СУБД каждого отделения должна иметь дополнительный распределенный компонент, предоставляющий пользователям и приложениям возможность получать доступ ко всем данным так, как если бы они хранились локально. Такая организация имеет следующие преимущества:
Уменьшается дополнительная работа по обеспечению коммуникаций. Доступ к данным осуществляется преимущественно локально, что позволяет повысить производительность и снизить расходы.
Повышается производительность обработки данных. Вместо одной машины базу данных обслуживает несколько машин.
Ликвидируется зависимость от центрального узла. При сбое машины страдает только локальная часть системы баз данных, остальные базы данных сохраняют работоспособность и доступность.
База данных становится ближе к ее пользователям. Локальное хранение данных приводит к изменению стиля работы организации, поскольку пользователям больше не нужно обращаться к удаленному центру для получения доступа к необходимым оперативным данным и их использования. В локальных системах пользователи могут принимать непосредственное участие в управлении и функционировании базы данных (что не всегда является преимуществом).
Таким образом, распределенные базы данных призваны решить следующие задачи:
Обеспечить прозрачность данных.
Обеспечить независимость от размещения.
Уменьшить количество работы по обеспечению коммуникаций.
Увеличить возможности обработки данных.
Ликвидировать чрезмерную зависимость от центра.
Обеспечить локальную автономию, чтобы каждая база данных системы осуществляла управление хранящимися в ней данными.
Последний пункт – основное отличие распределенной системы баз данных от других форм совместного использования баз данных. В истинно распределенной системе каждая часть представляет собой СУБД, которая взаимодействует на началах партнерства с другими СУБД.
Реализация распределенной системы баз данных связана с определенными сложностями, которые могут в той или иной степени повлиять на решение некоторых из перечисленных выше задач.