OpenSCADAWiki: Home Page Uk/Doc/ Fire Bird ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
English (1 Кб) English
Russian (1 Кб) Российский
 (2 Кб) Сторінку заморожено, актуальна тут.

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

Модуль: FireBird
Ім'я: БД FireBird
Тип: БД
Джерело: bd_FireBird.so
Версія: 1.4
Автор: Роман Савоченко
Опис: Модуль БД. Надає підтримку БД FireBird.
Ліцензія: GPL

Contents

Вступ

Модуль <FireBird> надає до системи OpenSCADA підтримку БД FireBird та InterBase. БД FireBird є невеликою вбудованою БД з функціями мережевої БД, яка підтримує SQL-запити. БД FireBird побудована на основі комерційної СУБД Interbase та розповсюджується за вільною ліцензією. Ознайомитися з СУБД можна на сайті http://www.firebirdsql.org. Модуль засновано на бібліотеці API виробника СУБД на мові "С". Модуль дозволяє виконувати дії над базами даних, таблицями та вмістом таблиць.

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

Підтримуються операції відкриття та закриття БД з можливістю створення нової БД при відкритті та видалення існуючої при закритті. У термінах підсистеми "БД" системи OpenSCADA відкриттям БД є її реєстрація для подальшого використання у системі. Також підтримується операція запиту переліку таблиць у БД.


БД FireBird адресується шляхом визначення ім'я файлу БД, користувача та пароля. Загалом адреса БД записується наступним чином: "{file};{user};{pass}[;{conTm}]".
Де:

2. Операції над таблицею

Підтримуються операції відкриття, закриття таблиці з можливістю створення нової таблиці при відкритті та видалення існуючої при закритті, а також запит структури таблиці.

3. Операції над вмістом таблиці


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


Модуль дозволяє динамічно змінювати структуру таблиць БД FireBird. Так, у випадку невідповідності структури таблиці та структури запису що встановлюється, структуру таблиці буде приведено до потрібної структури запису. У випадку запиту значень запису та невідповідності структур записи та таблиці, буде отримано тільки значення загальних елементів запису та таблиці. Модуль не відстежує послідовності розташування елементів у запису та структурі таблиці, крім цього операція зміни типу стовпчика не є безпечною та дані у стовпчиках що змінюються буде втрачено!


Модулем реалізується механізм підтримки багатомовних текстових змінних. Для полів з багатомовною текстовою змінною створюються стовпчики окремих мов у форматі <lang>#<FldID> (en#NAME). При цьому базовий стовпчик містить значення для базової мови. Стовпчики окремих мов створюються за потреби, у момент збереження до БД та при виконанні OpenSCADA у відповідній локалі. У випадку відсутності значення для конкретної мови буде використано значення для базової мови.


Типи елементів БД FireBird наступним чином відповідають типам елементів системи OpenSCADA:

Типи полів системи OpenSCADA Типи полів БД FireBird
TFld::String VARCHAR, BLOB SUBTYPE TEXT
TFld::Integer INTEGER
TFld::Real DOUBLE
TFld::Boolean SMALLINT

4. Доступ до БД

Права доступу до БД визначаються правами файлу БД.


Коротко розглянемо процедуру первинного налаштування серверу FireBird з метою підключення до нього за допомогою цього модуля:

5. Продуктивність СУБД

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

Operation AMD Turion L625 1.6, 2G, FireBird [2.1.3 Local SuperServer; 100Base-TX; 2.5.2 100Base-TX SuperServer ForcedWrites=Off; ForcedWrites=On] Intel(R) Core(TM) i3 CPU 1.33GHz, 3G, HDD [2.5.2 100Base-TX SuperServer ForcedWrites=Off; ForcedWrites=On]
Creation of the 1000 records (sec.): 0.93; 1.15; 4.4; 5.2 3.68; 4.67
Updating of the 1000 records (sec.): 2.74; 2.94; 5.1; 5.2 3.88; 4.54
Getting of the 1000 records (sec.): 1.64; 2.22; 5.0; 27.8 3.69; 28.8
Seeking of the 1000 records (sec.): - 5.36; 32
Seeking in preload of the 1000 records (sec.): - 0.045; 0.065
Deleting of the 1000 record (sec.): 0.65; 1.04; 2.0; 2.4 1.69; 1.66

6. Зауваження

СУБД FireBird має багато архітектурних обмежень та проблем у зв'язку із спадковістю InterBase та батьківської ОС MS Windows, які заважають її широкому використанню у багатьох задачах. Відомі проблеми:

Посилання

Referring pages: HomePageUk/Doc
HomePageUk/Function


 
There are no files on this page.[Display files/form]
Comments [Hide comments/form]