Модули/DBF

This page is a translated version of the page Modules/DBF and the translation is 100% complete.

Other languages:
English • ‎российский • ‎українська
Constr.png The translation checking and actualizing
Модуль Имя Версия Лицензия Источник Языки Платформы Тип Автор Описание
DBF БД DBF 2.2 GPL2 bd_DBF.so en,uk,ru,de x86,x86_64,ARM БД Роман Савоченко Модуль БД. Предоставляет поддержку *.dbf файлов, версии 3.0.

Contents

Модуль предназначен для предоставление в систему OpenSCADA поддержки файлов БД типа *.dbf. Модуль основан на библиотеке для работы с dbf файлами ПО "Complex2" фирмы НИП "ДIЯ". Модуль позволяет выполнять действия над базами данных, таблицами и содержимым таблиц.

1 Операции над БД

Поддерживаются операции открытия и закрытия БД с возможностью создания новой БД при открытии и удаления существующей при закрытии. В терминах подсистемы "БД" системы OpenSCADA открытием БД является её регистрация для последующего использования в системе.

Под БД, в случае с dbf-файлами, подразумевается директория, содержащая dbf-файлы. Следовательно, операции создания и удаления БД - создают и удаляют директории, где таблицы (dbf-файлы) хранятся. В роли адреса БД выступает полное имя директории с dbf-файлами. Доступ к БД определяется системными правами доступа к директории.

2 Операции над таблицей

Поддерживаются операции открытия и закрытия таблицы с возможностью создания новой таблицы при открытии и удаления существующей при закрытии.

Собственно dbf-файл и является таблицей. Создание и удаления таблицы подразумевает создание и удаление dbf-файла. Имя таблицы представляет собой имя dbf-файла в директории БД. Права доступа к таблице определяются правами доступа к dbf-файлу.

3 Операции над содержимым таблицы

API подсистемы "БД" предполагает доступ к содержимому таблицы по значению ключевого(ых) поля(ей). Так, операция запроса записи подразумевает предварительную установку ключевых колонок объекта TConfig, по которым и будет выполнен запрос. Создание новой записи(строки) производится операцией установки значений записи, которая отсутствует.

Модуль позволяет динамически менять структуру таблиц БД DBF. Так, в случае несоответствия структуры таблицы и структуры устанавливаемой записи структура таблицы будет приведена к требуемой структуре записи. В случае запроса значений записи и несоответствия структур записи и таблицы будут получены только значения общих элементов записи и таблицы. Модуль не отслеживает порядка расположения элементов в записи и структуре таблицы!

При доступе к значениям таблиц используется синхронизация путём захвата ресурса на доступ к таблице. Это позволяет избежать разрушения данных в случае многопоточного доступа!

Типы элементов dbf-файлов следующим образом соответствуют типам элементов системы OpenSCADA:

Типы полей системы OpenSCADA Тип поля dbf-файла
TFld::String "С"
TFld::Integer, TFld::Real "N"
TFld::Boolean "L"

4 Производительность БД

Замер производительности БД выполнялся тестом "БД", модуля системных тестов "SystemTests" путём выполнения операций над записями структурой: "name char (20), descr char (50), val double (10.2), id int (7), stat bool, reqKey string, reqVal string".

Operation K8-3000+,256M,120G Nokia N800, SD 2G Intel(R) Core(TM) i3 CPU 1.33GHz, 3G, HDD
Creation of the 1000 records (sec.): 1.07 37 0.382
Updating of the 1000 records (sec.): 1.6 33.8 0.368
Getting of the 1000 records (sec.): 1.0 34.32 0.362
Seeking of the 1000 records (sec.): - - 0.064
Seeking in preload of the 1000 records (sec.): - - 0.064
Deleting of the 1000 record (sec.): 0.95 37 0.371