Программные интерфейсы баз данных: от пассивных запросов к активному взаимодействию

Шибанов С.В., Горин А. А

ПРОГРАММНЫЕ ИНТЕРФЕЙСЫ БАЗ ДАННЫХ: ОТ ПАССИВНЫХ ЗАПРОСОВ К АКТИВНОМУ ВЗАИМОДЕЙСТВИЮ

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

Изначально каждый разработчик систем управления базами данных (СУБД) реализовывал свой собственный интерфейс доступа к БД. Поэтому под каждую СУБД создавался свой интерфейс доступа к данным, язык обработки данных и средства разработки приложений. Поэтому был необходим новый универсальный интерфейс доступа к БД.

Обзор прграммных интерфейсов доступа к базам данных. Рассмотрим развитие программных интерфейсов баз данных в исторической перспективе.

IDAPI(IntergratedDatabase API).IDAPI является первым интерфейсом, объединяющим функции доступа к разным типам СУБД, а именно dBase, Paradox-таблицам, к SQL серверам, тким как,Іп£огшіх, Interbase, Oracle, Sybase, MS SQL Server.Разработчик - Borland.

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

Данный интерфейс рассчитан, прежде всего,на архитектуру клиент-сервер.Используется навигационый доступ к данным, который реализован в виде курсорной модели, а также доступ на основе запросов.

Но IDAPI не обеспечивал единообразный интерфейс доступа к различным типам СУБД. В связи с этим и после появления IDAPI существовала необходимость создания более универсального программного интерфейса баз данных.

BorlandDatabaseEngine (BDE). Название происходит отангл.BorlandDatabaseEngine-^движок баз данных Borland». Разработчик - Borland.

Имеющийся в BDE набор драйверов баз данных даёт единообразный доступ к стандартным источникам данных, таким m^Paradox, dBASE, FoxPro, Access, а также текстовым БД. Включает SQL Links для доступа к широкому диапазону мощныхСУБД, включая Informix, DB2, InterBase, Oracle и Sybase.

BDE имеет объектно-ориентированнуюархитектуру. BDE-объекты используются для управления элементами БД, такими как таблицы и запросы.

Файлы ядра движка БД существуют как наборDLL, код которых полностьюреентерабелени потоковобезопасен . Есть возможность добавлять драйверы MicrosoftODBCпри необходимости подключения к ODBC-сокету.

В BDE используется «Local SQL», подмножество стандартаANSI-92языкаSQL, расширенное для поддержки используемых в Paradox иDBF, называемых в BDE «стандартными» таблицами, соглашений о наименовании таблиц и полей.

Дальнейшее развитие интерфейсов СУБД предполагало создание более универсальных и аппаратнонезависимых решений. Кним, несомненно, можноотнестиOpenDatabaseConnectivity

иActiveXDataObjects (ADO).

OpenDatabaseConnectivity (ODBC). Разработчик - MicrosoftвсотрудничествесSiШba Technologies.

ПоддерживаетдоступкСУБДMS SQL Server, Oracle, AS/400, FoxPro, Microsoft Access,

PostgreSQLилилюбыеСУБД, длякоторыхсуществуетдрайвер ODBC.

Интерфейс построен на основе спецификаций CallLevelInterface (CLI). Стандарт CLI призван унифицировать программное взаимодействие с СУБД, сделать его и программно и аппаратно-независимым.Это достигается благодаря тому, что поставщики различных баз данных создают драйверы, реализующие конкретное наполнение стандартных функций из ODBC API с учётом особенностей их продукта. Приложения используют эти функции, реализованные в соответствующем конкретному источнику данных драйвере, для унифицированного доступа к различным источникам данных.

Технология ODBC не рассчитана на работу с большим числом клиентов. В том случае, если необходимо, чтобы с БД одновременно работало много активных клиентов, требуется использовать SQL API или специальный интерфейс для взаимодействия с конкретной БД.

ActiveXDataObjects (ADO). Название прорисходит отActiveXDataObjects- «объекты данных ActiveX».

Разработчик - Microsoft.

ADO позволяет представлять данные из разнообразных источников (реляционных баз данных, текстовых файлов и т. д.) в объектно-ориентированномвиде. Обеспечивает доступ к СУБД MSSQLServer,MSAccess, xBase, Paradox и др.Основан на технологии компонентовActiveX.

Компоненты ADO используются в средах и языках высокого уровня, таких какVBScriptвASP,JScriptвWSH, VisualBasic,Delphi.

В рамках платформыMicrosoft .NETпрограммный интерфейс ADO заменён на интерфейс ADO.NET.

ADO.NET (ActiveX Data Objects .NET).Разработчик - Microsoft. Основан на объектно-ориентированной модели. Компоненты ADO.NET входят в поставку оболочки.^Т Framework.Таким образом, ADO.NET является одной из главных составных частей.NET и реализует модель доступа кданнымдля приложений, основанных наMicrosoft .NET.

Не смотря на схожесть названий, ADO.NET не является развитиемпрограммного интерфейса ADO и представляет собой совершенно самостоятельную технологию.

В таблице 1 приведенырезультаты сравненительного анализа основных показателей программных интерфейсов баз данных.

Описанные выше интерфейсы являются пассивными, то есть не содержат функций, характерных для активных информационных систем. Под этими функциями подразумеваются, прежде всего, возможность отслеживать каие-либо события на стороне БД, а также реагировать на эти события заданным образом, и доставлять нужную информацию о произошедших событиях клиенту.

Однако интерфейсы некоторых современных СУБД, в частности Firebird и PostgreSQL, располагают некоторыми функциями, которые заметно облегчают и упрощают конструирование активных информационных систем.

Firebird API. Разработчик - независимая группа разработчиков.Интерфейс рассчитан на работу только с СУБД Firebird, работает через ТСР/!Р-подключение.

Клиентское приложение должно подключаться с указанием абсолютного физического пути. К серверу Firebird, запущенному на хосте в Windows с сервисами, можно получить доступ от клиентов Windows с помощью сетевого протокола NamedPipes (именованные каналы).

В СУБД Firebird присутствует собственная система событий.События Firebird являются «сигналами», которые модули PSQL могут накапливать в процессе выполнения для передачи клиентским приложениям, когда работа будет подтверждена.

Клиентские приложения устанавливаются в режим «прослушивания» конкретных событий через интерфейс сервер-клиент без системных затрат на опрос наличия изменений.

PostgreSQL API.Разработчик - сообщество PostgreSQL. Обеспечивает подключение и работу с базами данных PostgreSQL.

PostgreSQL поддерживает одновременную модификацию БД несколькими пользователями с помощью механизма MultiversionConcurrencyControl (MVCC). Благодаря этому соблюдаются требования ACID, и практически отпадает нужда в блокировках чтения.[5]

Тип доступа к данным - курсорный. Обеспечивает гибкую работу с курсорами.

Механизм правил (англ. rules) представляет собой механизм создания пользовательских обработчиков не только DML-операций, но и операции выборки.

Основные характеристики активных программных интерфейсов СУБД Firebird и PostgreSQLпредставлены в

таблице 2.

Таблица 1 - Результаты сравнительного анализа программных интерфейсов баз данных

Интерфейсы Быст- родей дей- ствие Скорость разра-ботки Универ-саль -ность Внутренняя организация Востребованность

IDAPI + + - + + - + + + Архитектура драйверов низкая

BDE + — + + + + + - Объектно-ориентированная архитектура низкая

ODBC + + - + + - + + + Стандарт CLI средняя

ADO + + - + + - + + + ActiveX Высокая

ADO.NET + + + + + + + + + Объектно-ориентированная архитектура Высокая

Таблица 2 - Результаты сравнительного анализа программных интерфейсов СУБД Firebird и PostgreSQL

СУБД Быстродействие Скорость разра-ботки Универ-саль -ность Механизм активности Востребованность

Firebird + — + + + + — Система событий Средняя

PostgreSQL + + - + + - + — Система правил Средняя

Заключение.В ходе проделанной работы был проведен анализ наиболеее часто используемых современных интерфейсов доступа к БД. Были рассмотрены такие интерфейсы, Firebird и PostgreSQL, которые располагают нкоторыми функциями, полезными при конструировании активных систем. Но эти интерфейсы ориентированы на работу с конкреными СУБД и содержат не все необходимые функции для обеспечения активности.Поэтому имеет смысл разработать собственный интерфейс БД с поддержкой активности, который может работать с различными типами СУБД единообразным способам.

ЛИТЕРАТУРА

1. Дмитриев В.И. Прикладная теория информации. - М.: Высшая школа, 1989. - 320 с.

2. Бекич З. Активные базы данных: аналитический обзор Программирование, 1990. № 5. - С. 63-72.

3. Згуровский М.З. Инегрированные системы оптимального управления и проектирования. - Киев: Выща школа, 1990. - 352 с.

4. Борри Х. Firebird: руководство разработчика баз данных. БХВ-Петербург. 2007 ISBN: 978-5-

94157-757-6

5. Краткий обзор возможностей PostgreSQLhttp://postgresql.ru.net/docs/overview.html

6. Документация по PostgreSQL 8.4.5http://postgresql.ru.net/manual/index.html

7. PostgreSQL 8.4.5 Documentation / The PostgreSQL Global Development Group

8. Уорсли Дж., Дрейк Дж. PostgreSQL. Для профессионалов— СПб.: Питер, 2003. — 496 с: ил.

9. Сеппа Д. Microsoft ADO.NET Пер. с англ. — М.: Издательско-торговый дом «Русская Редакция», 2003 ISBN 5-7502-0223-2

10. Троелсен.Э. С# и платформа .NET. Библиотека программиста. СПб. Питер, 2004. ISBN 5-318-00750-

3