OpenSCADAWiki: Doc/DBF ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of Doc/DBF from 2010-10-07 15:55:21..


Модуль подсистемы “БД” <DBF>


Модуль:DBF
Имя:БД DBF
Тип:БД
Источник:bd_DBF.so
Версия:2.0.2
Автор:Роман Савоченко
Описание:Модуль БД. Предоставляет поддержку *.dbf файлов, версии 3.0.
Лицензия:GPL

Contents

Введение

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

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

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


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


Модуль поддерживает кодирование данных в нужную кодировку. С этой целью для БД в целом можно указать рабочую кодировку. В процессе работы будет выполняться кодирование данных базы данных из кодировки БД в системную кодировку OpenSCADA и обратно.

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>.

ОперацияK8-3000+, 256М, 120G
Создание 1000 записей (сек): 1.07
Обновление 1000 записей (сек): 1.6
Получение 1000 записей (сек): 1.0
Удаление 1000 записей (сек): 0.95

Ссылки

Referring pages: Doc
Function
Works/Tests/DB


 
There are no files on this page.[Display files/form]
There is no comment on this page. [Display comments/form]