Базы данных и провайдеры данных


НАЧАЛО >> Руководство пользователя >> Базы данных и провайдеры данных📄 Скачать в DOCX


Сервер приложений ИРБИС 128 работает с базами данных через провайдеры данных. Провайдер скрывает особенности конкретного источника данных и предоставляет системе единый набор операций: подключение, поиск, чтение, форматирование и запись.

Настройка провайдера хранится отдельно от записи БД. Запись БД хранит SID конфигурации провайдера в поле 221^A, а имя БД на подключаемом сервере - в поле 221^B; в карточке БД эти параметры редактируются как выбор записи конфигурации и строковое поле. Сами параметры соединения находятся в отдельной записи конфигурации провайдера. Для разных типов провайдеров используются отдельные типы записей, совпадающие с модулями провайдеров: DP_<TYPE>, например DP_WEBIRB или DP_RAIDB0; такие записи редактируются в АРМ как обычные typed-записи с явными полями параметров секции PROVIDER, кроме параметров DB и TYPE. DB хранится в записи БД, а TYPE вычисляется из типа записи в поле 920. Создать или открыть такую запись можно в настройках модуля Database в разделе Конфигурации провайдеров данных. В этом разделе находятся кнопки управления для доступных модулей DP_*; каждая кнопка открывает список записей соответствующего типа, например DP_WEBIRB или DP_RAIDB0.

Если поле 221^A в записи БД еще не заполнено, система читает секцию PROVIDER из физического INI-файла БД. Для TYPE=Local секция удаляется из INI БД, а поле 221 остается пустым. Для других типов система переносит PROVIDER.DB в 221^B, ищет уже существующую запись конфигурации с таким же набором параметров соединения без DB; если такой записи нет, создает новую. После этого SID найденной или созданной записи записывается в DATABASE в поле 221^A, а секция PROVIDER удаляется из INI БД. Если нет ни SID в поле 221^A, ни секции PROVIDER, используется локальный провайдер.

1. Типы провайдеров

Редактор записей конфигурации провайдера поддерживает следующие типы:

Тип Назначение
Irbis64r Подключение к TCP-серверу ИРБИС 64.
jirb, jirb2 Подключение к J-ИРБИС.
MarcWeb, MarcWeb2, VTLS Подключение к внешним Web-каталогам соответствующих типов.
webirb Подключение к Web-ИРБИС 32/64/64+.
i128 Подключение к ИРБИС 64/128.
raidb0 Логическое объединение нескольких БД в одну.
Local Локальная БД на основном сервере ИРБИС 64.
EKBSON Сводная БД ИС ЭКБСОН.
z3950 Подключение к серверу Z39.50.

При открытии БД система вычисляет PROVIDER.TYPE из поля 920 связанной записи конфигурации или читает его из мигрируемой секции INI БД и выбирает соответствующий модуль провайдера. Например, для типа webirb используется модуль DP_webirb, для raidb0 - DP_raidb0. Тип провайдера индексируется у записи БД терминами DBPROVIDER=<тип> и DBPROVIDER.TYPE=<тип>, а сами записи конфигурации индексируются терминами DBPROVIDERCFG.*.

2. Общие параметры

Набор полей в окне настройки зависит от типа записи провайдера в поле 920. Параметр TYPE в записи конфигурации не редактируется и не хранится как отдельное поле: при формировании runtime-секции PROVIDER он вычисляется из 920.

Параметр Использование
HOST, PORT Адрес и порт подключаемого сервера.
TIMEOUT Таймаут соединения.
LOGIN, PW Учетные данные для провайдеров, которые поддерживают авторизацию.
DB Имя БД на подключаемом сервере. Хранится в записи DATABASE в поле 221^B и при открытии БД передается провайдеру как PROVIDER.DB.
REMOTECP Кодировка данных удаленной системы.
PROXY, PROXYUSER, PROXYPASSWORD Параметры прокси-сервера для провайдеров, где доступ выполняется через HTTP.
FMT Формат для разбора записей или ответа внешней системы.
FSTINNAME Формат входных записей для провайдеров, которым нужна конвертация.

3. Провайдер raidb0

Провайдер raidb0 используется, когда одну логическую БД нужно собрать из нескольких физических БД. В настройках указываются подключенные БД и вес записи в каждую из них.

Параметр Назначение
SUBDBS_COUNT Количество подключенных БД. Заполняется автоматически при сохранении настроек.
SUBDBSCFG_<N>_NAME Имя подключенной БД с номером <N>.
SUBDBSCFG_<N>_READWEIGHT Вес чтения из указанной БД.
SUBDBSCFG_<N>_WRITEWEIGHT Вес записи в указанную БД. Используется для распределения записей между подключенными БД.

4. Провайдер Z39.50

Для работы провайдера Z39.50 требуется PHP-модуль yaz. Это требование также зафиксировано в разделе системных требований.

Основные параметры Z39.50: HOST, PORT, LOGIN, PW, DB, TIMEOUT, REMOTECP, FMT, FSTINNAME.

5. Связь с основным провайдером системы

Параметр $OPTIONS['localProvider'] задает основной провайдер данных системы. Для локального файлового доступа может использоваться нативный провайдер DP_Irbis64Native. Его текущее значение и доступные системные параметры описаны в разделе параметров ядра.