English version
Українська версія
| Модуль: | FireBird |
| Имя: | БД FireBird |
| Тип: | БД |
| Источник: | bd_FireBird.so |
| Версия: | 0.9.1 |
| Автор: | Роман Савоченко |
| Описание: | Модуль БД. Предоставляет поддержку БД FireBird. |
| Лицензия: | GPL |
Модуль <FireBird> предоставляет в систему OpenSCADA поддержку БД FireBird и InterBase. БД FireBird является небольшой встраиваемой БД с функциями сетевой БД, поддерживающей SQL-запросы. БД FireBird построена на основе коммерческой СУБД Interbase и распространяется по свободной лицензии. Ознакомиться с БД можно на сайте БД -
http://www.firebirdsql.org. Модуль основан на библиотеке C/ API производителя БД. Модуль позволяет выполнять действия над базами данных, таблицами и содержимым таблиц.
Поддерживаются операции открытия и закрытия БД с возможностью создания новой БД при открытии и удаления существующей при закрытии. В терминах подсистемы «БД» системы OpenSCADA открытием БД является её регистрация для последующего использования в системе. Также поддерживается операция запроса перечня таблиц в БД.
БД FireBird адресуется путём указания имени файла БД, пользователя и пароля. В общем адрес БД записывается таким образом: [<file>;<user>;<pass>].
Где:
Модуль поддерживает кодирование данных в нужную кодировку. С этой целью для БД в целом можно указать рабочую кодировку. В процессе работы будет выполняться кодирование данных базы данных из кодировки БД в системную кодировку OpenSCADA и обратно.
Поддерживаются операции открытия, закрытия таблицы с возможностью создания новой таблицы при открытии и удаления существующей при закрытии, а также запрос структуры таблицы.
API подсистемы “БД” предполагает доступ к содержимому таблицы по значению ключевого(ых) поля(ей). Так, операция запроса записи подразумевает предварительную установку ключевых колонок объекта TConfig, по которым будет выполнен запрос. Создание новой записи(строки) производится операцией установки значений записи, которая отсутствует.
Модуль позволяет динамически менять структуру таблиц БД FireBird. Так, в случае несоответствия структуры таблицы и структуры устанавливаемой записи структура таблицы будет приведена к требуемой структуре записи. В случае запроса значений записи и не соответствия структур записи и таблицы, будут получены только значения общих элементов записи и таблицы. Модуль не отслеживает порядка расположения элементов записи и структуры таблицы, кроме этого операция изменения типа колонки не является безопасной и данные в изменяемых колонках будут утеряны!
Типы элементов БД FireBird следующим образом соответствуют типам элементов системы OpenSCADA:
| Типы полей системы OpenSCADA | Типы полей БД FireBird |
| TFld::String | VARCHAR, BLOB SUBTYPE TEXT |
| TFld::Integer | INTEGER |
| TFld::Real | DOUBLE |
| TFld::Boolean | SMALLINT |
Права доступа к БД определяются правами БД.
Замер производительности БД выполнялся тестом «БД» модуля системных тестов "Special.SystemTests" путём выполнения операций над записями структурой: <name char(20), descr char(50), val double(10.2), id int(7), stat bool>.
| Операция | K8–3000+, 256М, 120G, FireBird 2.0.3 (Local SuperServer) | FireBird 2.0.3 (Remote SuperServer) |
| Создание 1000 записей (сек): | 1.23 | 2.76 |
| Обновление 1000 записей (сек): | 4.43 | 6.92 |
| Получение 1000 записей (сек): | 2.31 | 4 |
| Удаление 1000 записей (сек): | 1.01 | 2.39 |