OpenSCADAWiki: Doc/ MySQL ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of Doc/MySQL from 2017-06-26 13:43:24..

Ìîäóëü <MySQL> ïîäñèñòåìû "ÁÄ"

Ìîäóëü: MySQL
Èìÿ: ÁÄ MySQL
Òèï: ÁÄ
Èñòî÷íèê: bd_MySQL.so
Âåðñèÿ: 2.6
Àâòîð: Ðîìàí Ñàâî÷åíêî
Îïèñàíèå: Ìîäóëü ÁÄ. Ïðåäîñòàâëÿåò ïîääåðæêó ÁÄ MySQL.
Ëèöåíçèÿ: GPL

Contents

Ââåäåíèå

Ìîäóëü <MySQL> ïðåäîñòàâëÿåò â ñèñòåìó OpenSCADA ïîääåðæêó ÁÄ MySQL. ÁÄ MySQL ÿâëÿåòñÿ ìîùíîé ðåëÿöèîííîé è ìíîãîïëàòôîðìåííîé ÁÄ äîñòóïíîé ïî ñâîáîäíîé ëèöåíçèè. Íàñòîÿùèì ðàçðàáîò÷èêîì ÁÄ MySQL ÿâëÿåòñÿ Êîðïîðàöèÿ Oracle. Ïîëíîñòüþ ñâîáîäíîé ðåàëèçàöèåé MySQL ÿâëÿåòñÿ ïðîåêò MariaDB. Ìîäóëü îñíîâàí íà áèáëèîòåêå API ÁÄ MySQL íà ÿçûêå "Ñ". Ìîäóëü ïîçâîëÿåò âûïîëíÿòü äåéñòâèÿ íàä áàçàìè äàííûõ, òàáëèöàìè è ñîäåðæèìûì òàáëèö.

1. Îïåðàöèè íàä ÁÄ

Ïîääåðæèâàþòñÿ îïåðàöèè îòêðûòèÿ è çàêðûòèÿ ÁÄ ñ âîçìîæíîñòüþ ñîçäàíèÿ íîâîé ÁÄ ïðè îòêðûòèè è óäàëåíèÿ ñóùåñòâóþùåé ïðè çàêðûòèè.  òåðìèíàõ ïîäñèñòåìû "ÁÄ" ñèñòåìû OpenSCADA îòêðûòèåì ÁÄ ÿâëÿåòñÿ å¸ ðåãèñòðàöèÿ äëÿ ïîñëåäóþùåãî èñïîëüçîâàíèÿ â ñèñòåìå. Òàêæå ïîääåðæèâàåòñÿ îïåðàöèÿ çàïðîñà ñïèñêà òàáëèö â ÁÄ.


ÁÄ MySQL àäðåñóåòñÿ ñòðîêîé ñëåäóþùåãî òèïà: "{host};{user};{pass};{db};{port}[;{u_sock}[;{charset-collation}[;{tms}]]]". Ãäå:


 ñëó÷àå ëîêàëüíîãî äîñòóïà ê ÁÄ â ïðåäåëàõ îäíîãî õîñòà íóæíî èñïîëüçîâàòü UNIX ñîêåò. Íàïðèìåð: ";roman;123456;OpenSCADA;;/var/lib/mysql/mysql.sock;utf8-utf8_general_ci-MyISAM;5,2,2"


 ñëó÷àå óäàë¸ííîãî äîñòóïà ê ÁÄ íóæíî èñïîëüçîâàòü èìÿ õîñòà è ïîðò ñåðâåðà ÁÄ. Íàïðèìåð: "server.nm.org;roman;123456;OpenSCADA;3306"

2. Îïåðàöèè íàä òàáëèöåé

Ïîääåðæèâàþòñÿ îïåðàöèè îòêðûòèÿ, çàêðûòèÿ òàáëèöû ñ âîçìîæíîñòüþ ñîçäàíèÿ íîâîé òàáëèöû ïðè îòêðûòèè è óäàëåíèÿ ñóùåñòâóþùåé ïðè çàêðûòèè, à òàêæå çàïðîñ ñòðóêòóðû òàáëèöû.

3. Îïåðàöèè íàä ñîäåðæèìûì òàáëèöû


API ïîäñèñòåìû “ÁÄ” ïðåäïîëàãàåò äîñòóï ê ñîäåðæèìîìó òàáëèöû ïî çíà÷åíèþ êëþ÷åâîãî(ûõ) ïîëÿ(åé). Òàê, îïåðàöèÿ çàïðîñà çàïèñè ïîäðàçóìåâàåò ïðåäâàðèòåëüíóþ óñòàíîâêó êëþ÷åâûõ êîëîíîê îáúåêòà TConfig, ïî êîòîðûì áóäåò âûïîëíåí çàïðîñ. Ñîçäàíèå íîâîé çàïèñè(ñòðîêè) ïðîèçâîäèòñÿ îïåðàöèåé óñòàíîâêè çíà÷åíèé çàïèñè, êîòîðàÿ îòñóòñòâóåò.


Ìîäóëü ïîçâîëÿåò äèíàìè÷åñêè èçìåíÿòü ñòðóêòóðó òàáëèö ÁÄ MySQL. Òàê, â ñëó÷àå íåñîîòâåòñòâèÿ ñòðóêòóðû òàáëèöû è ñòðóêòóðû óñòàíàâëèâàåìîé çàïèñè, ñòðóêòóðà òàáëèöû áóäåò ïðèâåäåíà ê òðåáóåìîé ñòðóêòóðå çàïèñè.  ñëó÷àå çàïðîñà çíà÷åíèé çàïèñè è íåñîîòâåòñòâèÿ ñòðóêòóð çàïèñè è òàáëèöû, áóäóò ïîëó÷åíû òîëüêî çíà÷åíèÿ îáùèõ ýëåìåíòîâ çàïèñè è òàáëèöû. Ìîäóëü íå îòñëåæèâàåò ïîðÿäîê ðàñïîëîæåíèÿ ýëåìåíòîâ â çàïèñè è ñòðóêòóðå òàáëèöû.


Ìîäóëåì ðåàëèçóåòñÿ ìåõàíèçì ïîääåðæêè ìíîãîÿçûêîâûõ òåêñòîâûõ ïåðåìåííûõ. Äëÿ ïîëåé ñ ìíîãîÿçûêîâîé òåêñòîâîé ïåðåìåííîé ñîçäàþòñÿ êîëîíêè îòäåëüíûõ ÿçûêîâ â ôîðìàòå <lang>#<FldID> (en#NAME). Ïðè ýòîì áàçîâàÿ êîëîíêà ñîäåðæèò çíà÷åíèå äëÿ áàçîâîãî ÿçûêà. Êîëîíêè îòäåëüíûõ ÿçûêîâ ñîçäàþòñÿ ïî íàäîáíîñòè, â ìîìåíò ñîõðàíåíèÿ â ÁÄ è ïðè èñïîëíåíèè OpenSCADA â ñîîòâåòñòâóþùåé ëîêàëè.  ñëó÷àå îòñóòñòâèÿ çíà÷åíèÿ äëÿ êîíêðåòíîãî ÿçûêà áóäåò èñïîëüçîâàòüñÿ çíà÷åíèå äëÿ áàçîâîãî ÿçûêà.


Òèïû ýëåìåíòîâ ÁÄ MySQL ñëåäóþùèì îáðàçîì ñîîòâåòñòâóþò òèïàì ýëåìåíòîâ ñèñòåìû OpenSCADA:

Òèïû ïîëåé ñèñòåìû OpenSCADAÒèïû ïîëåé ÁÄ MySQL
TFld::String char(n), text, mediumtext
TFld::Integer int(n), DATETIME [äëÿ ïîëåé ñ ôëàãîì TFld::DateTimeDec]
TFld::Real double(n,m)
TFld::Boolean tinyint(1)

4. Äîñòóï ê ÁÄ

ÁÄ MySQL ñîäåðæèò ìîùíûé ìåõàíèçì ðàçäåëåíèÿ äîñòóïà, êîòîðûé çàêëþ÷àåòñÿ â âûáîðî÷íîì óêàçàíèè äîñòóïà ïîëüçîâàòåëÿ ÁÄ ê îòäåëüíûì SQL-êîìàíäàì.  òàáëèöå íèæå ïåðå÷èñëåíû îïåðàöèè íàä ÁÄ è òðåáóåìûé äîñòóï ê êîìàíäàì äëÿ ýòèõ îïåðàöèé.

ÎïåðàöèÿSQL-êîìàíäû
Ñîçäàíèå ÁÄ è òàáëèöCREATE
Óäàëåíèå ÁÄ è òàáëèöDROP
Äîáàâëåíèå çàïèñåéINSERT
Óäàëåíèå çàïèñåéDELETE
Ïîëó÷åíèå çíà÷åíèé çàïèñåéSELECT
Óñòàíîâêà çíà÷åíèé çàïèñåéUPDATE
Ìàíèïóëÿöèÿ ñòðóêòóðîé òàáëèöûALTER

Êðàòêî ðàññìîòðèì ïðîöåäóðó ïåðâè÷íîé íàñòðîéêè ñåðâåðà MySQL ñ öåëüþ ïîäêëþ÷åíèÿ ê íåìó ñ ïîìîùüþ äàííîãî ìîäóëÿ:

5. Ïðîèçâîäèòåëüíîñòü ÁÄ

Çàìåð ïðîèçâîäèòåëüíîñòè ÁÄ âûïîëíÿëñÿ òåñòîì "ÁÄ" ìîäóëÿ ñèñòåìíûõ òåñòîâ "SystemTests" ïóò¸ì âûïîëíåíèÿ îïåðàöèé íàä çàïèñÿìè ñòðóêòóðîé: <name char (20), descr char (50), val double (10.2), id int (7), stat bool, reqKey string, reqVal string>.
Action source page doesn't exist yet(/Home Page En / Doc / My SQL?)

Ññûëêè

Referring pages: Doc
Doc/OpenSCADA060
Function
Works/Tests/DB


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