ОСОБЕННОСТИ АРХИТЕКТУРЫ И ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА INTERBASE

Ронсаль Е.Е., Ладыженский Ю.В.
Донецкий национальный технический университет

InterBase - это система управления реляционными базами данных, поставляемая корпорацией BORLAND для построения приложений с архитектурой клиент-сервер произвольного масштаба.

С точки зрения архитектуры как состава программного комплекса СУБД InterBase включает две различных реализации: Classic и SuperServer.

Архитектура Classic характеризуется тем, что на каждое клиентское соединение на компьютере-сервере запускается серверный процесс, который обслуживает одного клиента. Процессом запуска управляет внешний процесс. Каждый серверный процесс имеет собственный кеш, в котором хранятся используемые страницы базы данных.

В реализации SuperServer все клиентские соединения обслуживаются одним серверным процессом, а каждый конкретный клиент обслуживается отдельным потоком. Для обработки пользовательских запросов применяется единый кеш.

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

В качестве основных инструментальных средств пользователю предоставляются: интерпретатор SQL InterBase, процедурный язык программирования, ограничения, хранимые процедуры, триггеры и функции, определяемые пользователем (user defined functions).

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

Хранимая процедура – это часть метаданных базы данных, представляющая собой откомпилированную во внутреннее представление InterBase подпрограмму, написанную на специальном процедурном языке, компилятор которого встроен в ядро сервера InterBase. Язык включает в себя как модифицированные предложения стандартного SQL, так и средства организации ветвлений и циклов (IF, WHILE), а также средства обработки ошибок и исключений. Он позволяет реализовать сложные алгоритмы работы с данными, а его ориентированность на работу с реляционными данными делает хранимые процедуры компактнее аналогичных процедур, написанных на традиционных языках.

Триггер в InterBase – это особый вид хранимой процедуры, которая выполняется автоматически при наступлении события - вставке, удалении или изменении записи таблицы или представления. Триггер выполняется непосредственно до или сразу же после указанного события. Триггер всегда привязан к определенной таблице или представлению и может выполняться при модификациях данных только этой таблицы.

Реализация транзакций в InterBase отличается от реализации транзакций в большинстве других СУБД. Это связано с особой архитектурой баз данных InterBase, именуемой Multi Generation Architecture (MGA) – многоверсионной архитектурой. InterBase – это первая в мире СУБД, в которой реализована эта архитектура. Основная идея состоит в том, что все изменения, проводимые над конкретными записями, производятся не над самой записью, а над ее версией. Версия записи – это копия записи, которая создается при попытке ее изменить.

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

Обеспечение безопасности хранимых данных является неотъемлемой частью InterBase. InterBase предоставляет развитые средства для управления безопасностью в своих базах данных.

Отличие системы безопасности СУБД InterBase от многих других СУБД заключается в том, что данные о пользователях базы данных хранятся не в самой базе данных, а вне ее – в особой базе данных пользователей. Размещение пользователей InterBase в отдельной базе данных позволяет во всех базах данных, обслуживаемых данным сервером, использовать единое пространство имен пользователей, что упрощает настройку и администрирование системы безопасности.

InterBase поддерживает современные технологии разработки приложений: ODBC, CGI, JAVA, Microsoft OLE DB.

Технология ODBC ("Open DataBase Connectivity") представляет собой набор интерфейсов прикладного уровня API. Эти интерфейсы используется для приложений, расчитанных на настольные офисные системы, языки программирования или серверы баз данных. Драйвер Gemini InterBase ODBC, реализующий эту технологию, существует в двух вариантах – настольном (desktop) и серверном (site). Первый вариант предназначен для использования в офисных клиентских приложениях. Второй вариант рассчитан на использование в составе серверов приложений или Web-серверов.

Разработка современных программных систем, базирующихся на компонентных технологиях, обеспечивается OLE DB for InterBase, известным как IBProvider. IBProvider представляет собой мощный объектно-ориентированный низкоуровневый клиентский API для работы с InterBase. Встраиваясь в приложения баз данных, IBProvider организует взаимодействие с сервером базы данных, предоставляет ресурсы для работы с базой данных в виде COM-объектов.

InterBase в полном объеме поддерживает возможности работы с приложениями на Java. Для взаимодействия Java-приложений с базами данных InterBase используется технология JDBC (“Java DataBase Connectivity”). Разработчиками InterBase создан драйвер типа JDBC - InterClient. InterClient состоит из двух частей - собственно драйвера, написанного на Java, и промежуточного сервера - InterServer, транслирующего вызовы JDBC-команд в команды InterBase.

Задача взаимодействия InterBase с Internet решается путем создания CGI-приложений, использующих интерфейсы InterBase API прикладного уровня.

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

Литература
1. А. Н. Ковязин, С.М. Востриков "Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/Firebird/Yaffil (3-е издание)" - М.: Кудиц-образ, 2005
2. А. Скляр "Введение в InterBase" - М.: Горячая Линия – Телеком, 2002.