поддержка
проекта:
разместите на своей странице нашу кнопку!И мы
разместим на нашей странице Вашу кнопку или ссылку. Заявку прислать на
e-mail
код нашей кнопки:
Распределенная база данных
База данных может находиться в одном или нескольких узлах
вычислительной сети. (Узел - это вычислительная машина или рабочая
станция, включенная в вычислительную сеть.) В первом случае база данных
называется централизованной, во втором - распределенной.
В случае централизованной базы данных выход из строя узла, в котором
функционирует база данных, лишает информации всю сеть. Кроме того, может
резко возрасти время ответа из-за очередей к базе данных и возникающих в
этих случаях конфликтов.
Если же база данных распределяется по нескольким узлам, то повышается
надежность и сокращается время отклика (но усложняется системное
программное обеспечение).
При разработке или выборе конкретных баз данных для вычислительных сетей
приходится учитывать многие факторы: стоимость разработки,
характеристику технических средств (в частности, объемы требуемой памяти
на внешних устройствах и пропускную способность каналов), живучесть и
надежность системы, ограничение времени на выполнение запросов, удобство
организации поиска и обновления информации и т. д.
Существует несколько типов запросов на выполнение обработки данных,
которые абонент может послать в базу данных вычислительной сети. Каждый
тип запросов предоставляет пользователю (или ЭВМ) различные возможности.
1) Удаленный запрос. Предоставляет возможность послать одиночный запрос
на выполнение обработки.
2) Удаленная транзакция. Предоставляет возможность использовать
удаленную вычислительную машину для обработки транзакции, состоящей из
нескольких запросов. (Транзакцией называется последовательность операций
над одним или несколькими объектами базы данных: файлами, записями и т.
п.)
3) Распределенная транзакция. Предоставляет возможность использовать
несколько узлов вычислительной сети для обработки транзакции, состоящей
из нескольких запросов. Каждый запрос может быть обработан только в
одном узле, однако различные запросы в одной транзакции могут
обрабатываться в разных узлах.
4) Распределенный запрос. Предоставляет распределенной базе данных
возможность обработки транзакции, состоящей из нескольких запросов. При
этом каждый запрос может обрабатываться несколькими узлами, однако это
будет незаметно для абонента.
Решение проблем синхронизации основано на том или ином виде запрета
доступа к ресурсу. Транзакция может запретить доступ к ресурсу, для того
чтобы обеспечить его монопольное использование в течение некоторого
времени. Если транзакция пытается запретить использование ресурса, на
который уже наложен запрет, она должна либо ждать, либо быть снята с
решения или стать в очередь.
Обычно используются два типа запрета доступа к ресурсу (закрытие
ресурса): а) монопольный - только одна транзакция получает доступ к
ресурсу; монопольный тип доступа обычно используется при записи
информации; б) разделяемый - несколько транзакций получают доступ к
ресурсу; разделяемый тип доступа используется при чтении информации.
Всякая транзакция при обращении к ресурсу должна:
1. Закрыть доступ к ресурсу одним из только что рассмотренных типов
закрытия.
2. Не закрывать монопольный доступ к ресурсу, если он уже закрыт другой
транзакцией. Ограничение на разделяемый доступ может быть наложено.
3. Перед тем как закончить работу с ресурсом, открыть его, т. е. снять
ограничение на доступ к нему.
4. Если транзакция уже закрыла доступ к ресурсу, она не должна закрывать
его повторно.
Обновляемый массив называется грязным на период от начала обновления до
момента снятия запрета на доступ к нему.
Говорят, что транзакция Т сохраняет целостность баз данных, если:
а) Т не переписывает данные, загрязненные другими транзакциями;
б) не заканчивает никакие другие записи, пока не завершит выполнения
своих записей;
в) Т не считывает данные, загрязненные другими транзакциями;
г) другие транзакции не загрязняют никаких данных, считываемых Т, пока
транзакция Т не закончит их считывание.
Сохранение целостности означает, что база данных может снова
использоваться другими транзакциями.
В распределенных базах данных без дублирования отдельные элементы баз
данных при отказе могут стать недоступными для транзакций. Очевидным
методом повышения доступности и пропускной способности является
дублирование данных, благодаря которому транзакция, не имеющая доступа к
элементу данных в одном узле, может получить его в другом.
Хотя при дублировании повышается доступность данных, возникает несколько
новых проблем, связанных с обеспечением их корректности. Остановимся на
двух.
Первая - управление параллелизмом. Она возникает в тех случаях, когда
управление доступом к элементу данных осуществляется не централизованно
одним узлом, а распределено по всем узлам. За счет этого повышается
надежность системы, так как выход из строя одного узла не выводит из
строя всю систему, но усложняется алгоритм управления транзакциями и
увеличиваются затраты вычислительных ресурсов.
Другая проблема связана с противоречивыми требованиями к обновлению
данных в динамике работы системы: с одной стороны, все копии одного и
того же элемента должны быть идентичны, а с другой - некоторые узлы
сети, в которых находятся копии, могут оказаться в неработоспособном
состоянии. Заметим, что и в этом случае дублирование позволяет
осуществить доступ к данным, если исправен хотя бы один узел из тех, в
которых хранятся копии. Но это достигается за счет создания специальных
процедур восстановления узлов сети, отслеживающих изменение значений
данных на период отключения узлов сети и записывающих в
восстанавливаемые узлы последние значения данных.