2. Распределенные базы данных. Фрагментация и тиражирование данных. Базы данных в сети Internet.
В настоящее время существует два класса СУБД: настольные и серверные. Работа с небольшой базой данных, расположенной на персональном компьютере, не подключенном к локальной сети (настольный вариант СУБД), становится уже нехарактерным для настоящего времени.
Распределенная база данных состоит из составных частей, размещенных на разных узлах сети в соответствии с каким-либо критерием.
Распределенные базы данных (РаБД) управляются распределенными системами управления базами данных (РаСУБД).РаБД могут работать под управлением одинаковых и неодинаковых СУБД. В первом случае говорят об однородных распределенных системах, во втором – о неоднородных.
Однородные распределенные системы баз имеют в своей основе один продукт СУБД, обычно с единственным языком баз данных (например, SQL с расширениями для управления распределенными данными). Существует множество различных вариантов построения однородной системы РаБД. Например, на некотором узле вычислительной сети может располагаться одна глобально доступная "главная машина СУБД", с которой связаны компоненты для доступа к данным локальных баз данных, размещенные совместно с самими этими базами данных в пределах всей компании (или отдельного ее подразделения в зависимости от масштаба распределения). Более сложные модели могут допускать распределенность самой СУБД, когда каждый ее компонент "на равных правах" имеет доступ к данным любого другого узла.
Неоднородные системы включают два или более существенно различающихся продукта управления данными. Неоднородные системы баз данных можно, в свою очередь, также подразделить на классы в широком диапазоне – от федеративных систем, до различных типов систем мультибаз данных.
Неоднородные же, напротив, чаще всего строятся "снизу вверх" с целью создать общую среду управления над существовавшими ранее разрозненными базами данных. Основной проблемой при этом становится объединение схем баз данных, таким образом, чтобы предоставить как новым, так и прежним приложениям доступ и к новым и к прежним ресурсам данных. Процесс создания системы мультибаз данных технически сложен и нетривиален.
При создании однородных распределенных баз данных используется два метода:
Фрагментация означает декомпозицию объектов базы данных, таких, как реляционные таблицы, на две или более частей, которые размещаются на разных компьютерных системах.
Проиллюстрируем это понятие примером. В БД имеется таблица, содержащая данные о сотрудниках, работающих в различных филиалах, или о заказах на продажу. Таблица может быть разделена на фрагменты по географическому или другому характеристическому признаку.
При горизонтальной фрагментации делаются горизонтальные "срезы" в соответствии со значением какого-либо столбца таблицы. Строки данных о сотрудниках могут разбиваться на подмножества, соответствующие филиалам. Данные о продажах фрагментируются по магазинам, где эти продажи производились
При вертикальной фрагментации разбиение таблицы осуществляется не по строкам, а по столбцам. В этом случае некоторая часть информации о каждом сотруднике хранится в одном месте, а другая часть (относящаяся к той же таблице) – в другом.
Независимо от вида фрагментации, поддерживается глобальная схема, представляющая единое описание всех составляющих ее локальных баз данных, позволяющая воссоздать из имеющихся фрагментов логически централизованную таблицу или другую структуру базы данных.
Тиражирование (или репликация) означает создание копий некоторых фрагментов базы данных с целью приближения данных к месту их использования. Основное достоинство метода заключается в сокращении сетевого трафика и увеличение производительности системы. Репликаторы представляют множество различных физических копий некоторого объекта базы данных (обычно таблицы), для которых в соответствии с определенными в базе данных правилами поддерживается синхронизация (идентичность) с некоторой "главной" копией. Теоретически значения всех данных в тиражированных объектах должны автоматически и незамедлительно синхронизироваться друг с другом. (На практике это правило обычно несколько ослабляется.) В некоторых системах копии используются исключительно в режиме чтения и обновляются в соответствии с заданным расписанием. В других средах допускается модификация отдельных значений в копиях, и эти изменения распространяются в соответствии с процедурами планирования и координации.
Базы данных в Интернет
С появлением Интернет получила дальнейшее развитие архитектура "клиент-сервер". С подключением локальных сетей к Интернет, созданием внутрикорпоративных сетей, появляется возможность с любого рабочего места в организации получить доступ к информационным ресурсам сети.
Архитектура "клиент/сервер" на базе Интернет имеет трехуровневую организацию. Пользовательским интерфейсом является Web-браузер, расположенный на персональном компьютере – "тонком" клиенте. Web-браузер взаимодействует с Web-сервером, последний в свою очередь является клиентом для сервера баз данных рис.
Наиболее часто в качестве сервера БД используется SQL-сервер. Различают следующие механизмы доступа к БД: на стороне Web-сервера и на стороне Web-клиента. В первом случае обращение к серверу БД производится следующим путем. Web-клиент заполняет специальную форму запроса к БД и пересылает ее Web-серверу. Программами Web-сервера вызываются внешние по отношению к ним программы в соответствии с соглашениями одного из интерфейсов: СGI или API. Внешние программы пишутся на языках программирования типа С++, Perl, PHP. Программы, написанные в соответствии с интерфейсом СGI, называются СGI-сценариями. Внешние программы взаимодействуют с сервером БД на языке SQL, преобразуя текст запроса в HTML-форме в SQL-запрос. После получения результатов запроса внешняя программа формирует требуемую HTML-страницу, передает ее Web-серверу, который пересылает ее Web-клиенту.
При доступе к БД на стороне клиента основным средством реализации механизма взаимодействия Web-клиента и сервера БД является язык JAVA, на котором пишутся программы (апплеты). JAVA-программы хранятся на Web-сервере. В тексте HTML-документа ставятся в нужных местах ссылки на соответствующие апплеты, при обнаружении которых в процессе работы с гипертекстом происходит автоматическая пересылка JAVA-программы с сервера в среду выполнения браузера и загрузка на выполнение