OpenSCADAWiki: Home Page Uk/Doc/DBF
 
English (1 Kb) English
Russian (1 Kb) Российский

 (2 Kb) Сторінку заморожено, актуальна тут.

Модуль <DBF> підсистеми "БД"

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

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


Посилання

Referring pages: HomePageUk/Doc
HomePageUk/Function