Testarea bazelor de date integrate

Spre deosebire de baze de date client-server, Embedded (cel mai adecvat, deși traducerea rusă nu în întregime corecte - „embedded“) bază de date nu constituie un proces independent, cu care programul și fac parte din program și integrat în totalitate sau parțial în ea.







Lista de sarcini rezolvate de către bazele de date client-server este bine cunoscută. În principiu, bazele de date integrate sunt utilizate pentru o clasă complet diferită de sarcini. În mod obișnuit, aceasta este o aplicație desktop pentru un singur utilizator care poate fi solicitată într-o varietate de domenii. Și dacă evaluarea caracteristicilor bazelor de date client-server este bine formalizată, situația cu bazele de date integrate este oarecum mai complicată. Există mai multe criterii de referință care vă permit să estimați viteza bazei de date în diferite moduri, dar nu există un singur standard (ca TPC) pentru bazele de date distribuite.

Evaluați calitatea bazelor de date integrate poate fi pe diferite motive. Instrumentele de baze de date ar trebui să fie compacte, cu performanțe ridicate și cu întreținere redusă. Numai în acest caz va rezolva sarcinile care îi sunt atribuite. În plus, atunci când alegeți un DBMS pentru propriile nevoi, trebuie să luați în considerare ce instrumente de dezvoltare suportă produsul evaluat. Există o serie de baze de date care funcționează, de exemplu, numai cu Delphi sau cu un SDK pentru C ++. Unul dintre criteriile importante este așa-numita amprentă - cantitatea de spațiu pe disc sau de memorie cerută de SGBD să ruleze. Și, desigur, viteza de executare a cererilor de diferite tipuri este importantă,
capabilitățile limbajului de manipulare a datelor susținute de baza de date, compatibilitatea și controlabilitatea bazei de date.

Până în prezent, dezvoltatorii de software pentru aplicații au un domeniu suficient de mare pentru selectarea bazei de date. Dar, în ciuda faptului că există produse atât de puternice precum Oracle, MS SQL, Interbase, noi DBMS apar în mod regulat. Concurența "grandees" în sectorul corporativ este foarte dificilă. Dar este întotdeauna înțelept să folosiți soluții "grele" și costisitoare? Firește, pentru a crea aplicații desktop, acest lucru nu este înțelept, mai ales dacă bugetul proiectului este limitat. Pe de altă parte, sistemele DBMS mai simple nu au întotdeauna setul de funcții necesare în fiecare caz în parte. Adesea, sistemele DBMS integrate sunt orientate fie către o gamă îngustă de date specifice
sarcini sau sunt create special pentru a fi utilizate într-un anumit produs final sau care lucrează cu un singur instrument de dezvoltare.

Multe DBMS-uri încorporate sunt de asemenea plătite, deși sunt mult mai ieftine decât platformele de servere. Factorul cheie în stabilirea prețurilor poate fi nu numai caracteristicile de calitate ale produsului promovat, ci și oportunitățile suplimentare oferite utilizatorului final. De exemplu, un mediu grafic pentru modelarea unei structuri de date, constructori de interogare vizuală etc. În general, proiectarea și administrarea DB adecvate este considerată a fi o muncă destul de intensă și extrem de salarizată, care necesită o calificare înaltă. În mod firesc, creatorii aplicațiilor de aplicații încearcă să reducă costul dezvoltării. Inclusiv prin utilizarea caracteristicilor suplimentare ale DBMS.

În revizuirea mea, am decis să ia în considerare aceste DB încorporat. care sprijină .Net. Există mai multe motive pentru aceasta. În primul rând, această tehnologie câștigă rapid popularitate și oferă mecanisme cu adevărat convenabile pentru lucrul cu bazele de date. În al doilea rând. Dezvoltatorii de pe net nu sunt legați de limbajul de programare (cel puțin teoretic). Am folosit câteva din DBMS-ul examinat mai devreme, unii tocmai l-au găsit pe Google.

Personal, pentru mine, m-am interesat în primul rând de măsura în care DBMS își pierde performanța atunci când lucrează cu cantități mari de date. Prin urmare, numărul de înregistrări cu care baza de date va funcționa în timpul testării poate fi setat arbitrar. Operațiile principale sunt efectuate: inserarea, selectarea și ștergerea înregistrărilor. Înregistrările sunt generate într-o manieră pseudo-aleatoare, în conformitate cu regulile descrise în standardul TPCC (codul a fost luat din exemplul aceluiași VistaDB).

Am test efectuat pe un laptop SAMSUNG R40 (NP-R40K00E) (Intel Celeron M440 1.86GHz; DDR2 1024MB (512Mbx2); HDD 100GB 5400).

Numai unul dintre sistemele DBMS examinate este open source. De fapt, SQLite nu este complet orientat spre .Net.

Documentația prezentată pe site are și un aspect foarte haotic. A trebuit să mă ocup de mine. Aceleași probleme se referă la managerul sau mai degrabă la managerii bazei de date. Cu toate acestea, după ce am petrecut mult timp pe probleme organizaționale și am implementat câteva teste, am ajuns la concluzia că produsul în sine este destul de bun. Cel puțin rezultatele testului spun acest lucru.

Nu am reușit niciodată să transmit parametri către obiectul SQLiteCommand. Considerând că este inadecvat să-și petreacă timpul rezolvând această problemă, am format dinamic un șir de interogări. Dialectul suportat de SQL, în opinia mea, este oarecum primitiv. În ceea ce privește capabilitățile, este comparabil, probabil, cu MySQL.

Toate tabelele sunt stocate într-un singur fișier. Astfel, pentru a transfera aplicația pe o altă mașină, va trebui să adăugați (sau să creați în codul programului) un fișier de bază de date (<имя базы>.db), precum și 3 biblioteci dll - SQLite.dll, SQLite3.dll și SQLite.Net.dll.







Open source (acest lucru este avantajul său incontestabil) și popularitatea absolută a produsului sugerează posibilitatea de portare a bazei de date pentru orice platforma .Net-compatibil - inclusiv Compact Framework și Mono. Și fără .Net, baza de date însăși funcționează aproape peste tot.

Domeniul principal de aplicație pentru SQLite poate fi aplicațiile mici, portabile, în care se impun cerințe sporite privind performanța, dar nu există o logică puternică de afaceri. De asemenea, este probabil foarte convenabil să utilizați acest DBMS pentru dezvoltarea Web. Dacă alegeți acest DBMS, pregătiți-vă pentru orice probleme, cu excepția problemelor de performanță.

O dată pe pagina principală a site-ului oficial al acestui produs, mi-am dat seama imediat că VistaDB este exact opusul DBMS-ului precedent. O informație structurată excelentă pentru utilizator, o documentație excelentă și o abundență de exemple oferă un produs comercial.

Un punct interesant este faptul că VistaDB. pe asigurările dezvoltatorilor, este complet compatibil cu Compact Framework și Mono. Un număr mare de produse terțe destinate administrării și chiar o carte completă complet distribuită indică popularitatea produsului.

Mi sa părut convenabil ca procesul de instalare a software-ului să fie complet automatizat. La sfârșitul procedurii de instalare, utilizatorul primește tot ce este necesar pentru a începe. Integrarea cu Visual Studio este automată. Un alt aspect pozitiv este disponibilitatea unei documentații detaliate și bine documentate. În kitul VistaDB. cu excepția SGBD în sine și a furnizorilor de acces, include un număr mare de exemple și câteva utilități utile. Mai întâi, este Data Builder, care vă permite să gestionați cu ușurință obiectele bazei de date. Există, de asemenea, migrarea datelor din experți din alte DBMS-uri. În plus față de furnizorul .Net, puteți accesa VistaDB prin obiecte COM, drivere ODBC și
prin componentele de acces VCL.

Suporta patru tipuri de obiecte:

  • Tabele (tabele);
  • Reprezentarea (vizualizare);
  • Proceduri stocate;
  • Funcții (funcții).

Când am creat tabele utilizând managerul, am observat că codarea nu este corectă. Implicit, se utilizează UTF-8 și se oferă posibilitatea de a modifica codificarea pentru fiecare câmp al tabelului. În practică, nu am putut instala Windows chirilic.

VistaDB suportă un dialect foarte funcțional al SQL. Cu toate acestea, indicatorii de viteză obținute ca rezultat al testelor sunt relativ scăzute. Cu toate acestea, puteți interacționa cu baza de date nu numai prin executarea interogărilor SQL, ci și prin utilizarea DDA (Direct Data Access). În acest din urmă caz, performanța crește semnificativ.

Seria SMD din Germania este un alt produs comercial. Pe site-ul producătorului conține la fel de mult ca cinci variante ale bazelor de date avute în vedere, fiecare dintre care să satisfacă cerințele dumneavoastră: TurboDB pentru VCL 5.10, TurboDB Managed 1.4, TurboDB pentru .NET 5.10, TurboDB ODBC (Release Candidate) și TurboDB Studio 4.16. Pentru test, am ales ediția Managed, complet compatibilă cu .Net Framework 2.0 și Compact Framework 2.0.

Costul produsului este de 299 EUR pentru dezvoltatorii individuali și 499 EUR pentru companii. Orice produs din linia TurboDB poate fi descărcat de pe site și utilizat gratuit timp de 30 de zile.

Un set de documentație pentru produs este oarecum mai modest decât cel al VistaDB. dar sunt abordate problemele principale care apar atunci când se lucrează cu bazele de date. În ciuda faptului că documentația declară o gamă largă de exemple, de fapt nu au fost. Pentru a le familiariza cu ele (și nuanțele implementării furnizorului lasă pur și simplu nicio altă alegere), a trebuit să descarc versiunea anterioară a DBMS.

Managerul DB este destul de neobișnuit de organizat. Inițial, principiile muncii sale păreau să mă foarte incomod, apoi mi-am dat seama că principala sarcina lui - integrarea nedureroasă a SQL-cod în aplicație. Managerul se ocupă mai eficient de depanarea interogărilor SQL, decât de gestionarea structurii bazei.

Viteza procesării interogărilor TurboDB sa dovedit a fi destul de satisfăcătoare. Mai ales TurboDB bun a fost pe select'e.

Un DBMS relativ tânăr, dar dinamic, este un produs al dezvoltatorilor danezi. Acest DBMS are două versiuni - server paralel și bază de date încorporată. De la începutul acestui an, ambele produse sunt distribuite gratuit, dar acest lucru nu afectează în niciun fel caracteristicile lor de calitate. Rezultatele testelor vorbesc de la sine. Creatorii Scimore au pus accentul în special pe posibilitatea de a lucra cu cantități mari de date și stabilitatea bazei de date.

De fapt, numele DBMS (Scimore = mai multă știință) vorbește de la sine. Nu toate serverele DBMS pot concura cu un set de soluții suportate de Scimore Embedded DB. Sprijin pentru tranzacții, clustere, detecție blocaj - aceasta nu este o listă completă a caracteristicilor Scimore.

Setul de directive SQL suportate este destul de satisfăcător. În plus, Scimore susține propriul limbaj de interogare - DQL (Distributed Query Language). Toate instrucțiunile SQL sunt traduse în DQL înainte de execuție. Apropo, utilizarea directă a DQL poate îmbunătăți performanța interogării cu aproape 20%.

Din punct de vedere fizic, Scimore Embedded DB este o singură bibliotecă dll. Fiecare dintre tabelele din baza de date este stocată în propriul fișier. În plus față de tabelele utilizatorilor, Scimore creează mai multe tabele de servicii.

Procesul de creare a tabelelor în versiunea Embedded Scimore poate părea oarecum incomod. Problema este că baza de date însăși este inițiată în codul de aplicație, prin urmare, pentru a "vedea" acest lucru din Managerul de baze de date, aplicația trebuie lansată. Cu toate acestea, versiunile de server și embed de la Scimore sunt compatibile, astfel încât să puteți utiliza serverul pentru a crea structura bazei de date. Compatibilitatea tabelelor oferă un avantaj evident - scalabilitatea aplicației. Deci, un singur produs de utilizator desktop, prin modificări minore, se poate transforma cu ușurință într-un produs client-server și invers. De fapt, chiar și o aplicație încorporată poate fi acces la mai mulți utilizatori.

"Motorul" DBMS nu este legat de cadrul .Net. Dezvoltatorii de software nu sunt furnizați doar cu un adaptor .Net, ci și un SDK pentru utilizarea bazei de date în aplicațiile Win32. Furnizorul DDEX, care permite utilizarea Visual Studio Server Explorer pentru a crea conexiuni baze de date, nu este inclus în pachet. Dar faptul că Managerul de baze de date folosește .Net, sugerează că dezvoltatorii bazei de date au făcut pariul principal pe programele Net.

În general, am avut impresia că Scimore este puțin probabil să fie capabil să simplifice procesul de dezvoltare. Dar, în cazul în care accentul se pune pe performanță (chiar și pentru aplicațiile "un singur utilizator" acest lucru este important), sau proiectul are cerințe speciale - Scimore la altitudine.

Pentru neajunsurile evidente este lipsa practică a exemplelor de utilizare a Scimore. Documentația este disponibilă numai on-line. Din păcate, spre deosebire de același VistaDB. Scimore nu poate fi folosit în aplicațiile Delphi pentru Win32 (Ruby, PHP, etc.). În principiu, în Delphi pentru .Net, utilizarea lui este, de asemenea, dificilă, deoarece acest mediu de dezvoltare folosește .Net Framework 1.1, iar Scimore presupune că lucrează cu .Net Framework 2.0.

Într-adevăr, cu o astfel de varietate de DBMS care susține .Net, este destul de dificil să se decidă asupra unei soluții particulare, dar cu toate acestea, această sarcină apare cu regularitate în dezvoltatorii de aplicații software. Probabil, rezultatele testelor mele nu vă vor permite să apreciați pe deplin toate avantajele și dezavantajele DBMS-ului în cauză, însă veți putea să-i compuneți o idee despre ele.







Articole similare

Trimiteți-le prietenilor: