Art. 06 – Vol. 28 – Nr. 3 – 2018

Considerații asupra bazelor de date NoSQL

Dragoş NICOLAU  
Institutul Naţional de Cercetare-Dezvoltare în Informatică, ICI Bucureşti
dragos.nicolau@ici.ro

Rezumat: Lucrarea de faţă şi-a propus să prezinte câteva consideraţii asupra bazelor de date ne-relaţionale, (denumite NoSQL) utilizate din ce în ce mai mult mai ales de către aplicaţiile (în special Web, cum ar fi Youtube, Amazon, Google şi Facebook) care trebuie atât să stocheze un volum impresionant de date, cât şi să ofere, pe baza acestor date, răspunsuri rapide la interogări concurente, cu nivel de ritmicitate tot mai ridicat. Sunt prezentate principalele avantaje ale bazelor NoSQL, împreună cu o mostră de sintaxă corectă pentru gruparea unui ansamblu de date pregătit pentru a fi inserat cu succes într-o bază NoSQL şi sunt ilustrate câteva modele de realizare a conexiunilor; este trecut în revistă sistemul MongoDB şi sunt oferite exemple concrete de interogări, inclusiv comparative (SQL vs NoSQL). Contribuţia autorului constă în (a) prezentarea unui nou concept informatic şi (b) utilizarea acestuia într-un concret proiect de cercetare aplicată.

Cuvinte cheie: Baze de date NoSQL, Baze de date relaţionale.

Introducere

Organizaţiile (companii, instituţii, agenţii etc.) colecţionează, în format electronic, cantităţi apreciabile de date, utilizabile în diverse scopuri: comercializare de produse, oferire de informaţii de presă sub format text sau multimedia, furnizare de programe software [6], prezentare de conţinuturi cu caracter financiar, juridic sau administrativ, deservirea de platforme software pentru telemedicină [4] sau realizare de prognoze şi analize pentru propriile strategii de lucru etc. În mod tradiţional, aceste date se stochează în baze de date relaţionale. Precizăm că baza relaţională (clasică) este o colecţie fixă de tabele; tabelul este o colecţie fixă de câmpuri, în dreptul fiecărui câmp memorându-se o listă – teoretic, oricât de lungă – de date de exact acelaşi tip; între tabele se pot stabili conexiuni, fie sub forma unor câmpuri suplimentare – care într-un tabel de date memorează identificatori unici din alt tabel de date – fie sub forma unor tabele de legătură; câmpul reprezintă o categorie informaţională, adică un segment ( identificabil prin nume ) de informaţie de un anume tip, bine determinat. În ultima vreme, însă, mulţi dezvoltatori au început să implementeze şi să propună spre utilizare baze de date non-relaţionale, numite NoSQL (“Not Only SQL – Nu Doar SQL”). Odată cu dezvoltarea şi răspândirea aplicaţiilor Web (se disting printr-un pronunţat caracter interactiv), a apărut necesitatea stocării unei cantităţi de informaţie al cărei volum creşte tot mai rapid: utilizatorii nu se mai mulţumesc doar cu rolul de a interoga bazele de date, ci doresc inclusiv să producă conţinut (prin trimitere de texte sau fişiere de orice tip).

Universul Web a impus regândirea modalităţii de stocare şi procesare a datelor, astfel că s-a purces la căutarea de soluţii concrete pentru construirea unor mecanisme software care să ofere viteză sporită la analizarea unui număr tot mai mare de înregistrări. Bazele de date deservind aplicaţii Web nu se confruntă cu interogări complexe (în general, izvorâte dintr-o multitudine de asocieri inner – echivalente cu intersecţia unor colecţii de date şi outer – echivalente cu reuniunea unor colecţii de date), ci mai degrabă cu interogări simple, dar solicitante în ceea ce priveşte volumul şi ritmicitatea. Bazele de date NoSQL răspund cu succes cerinţelor de volum şi viteză mai sus amintite.

Confruntate cu sporul de trafic şi de volum stocat, bazele de date relaţionale nu mai prezintă eficienţă din perspectiva vitezei, în special în cazul aplicaţiilor care gestionează volume colosale de date. Printre primele aplicaţii (cu rulaj impresionant de date) care au ridicat problema adaptabilităţii la efort crescut se număra Facebook, Google şi Youtube. Conform studiilor estimative, volumul de date stocate în format electronic înregistrează o creştere rapidă de la an la an, în 2018 atingând nivelul de aproape 15 000 exabytes. [2] (1 EB = 1018 octeţi = 1 miliard de miliarde de octeţi).

Scopul articolului este acela de a prezenta aspecte generale / avantaje ale bazelor NoSQL şi modalitatea de structurare – conectare a datelor, de a trece în revistă sistemul MongoDB împreună cu o platformă de versionare de fişiere la care a fost utilizat, de a ilustra modalităţile concrete de efectuare a interogărilor. Contribuţia autorului constă în (a) – prezentarea unui nou concept informatic şi (b) – utilizarea acestuia într-un concret proiect de cercetare aplicată.

Vizualizează articolul complet

COORDONATELE PENTRU CITAREA ACESTUI ARTICOL SUNT URMĂTOARELE:
Dragoş NICOLAU, Considerații asupra bazelor de date NoSQL, Revista Română de Informatică şi Automatică, ISSN 1220-1758, vol. 28(3), pp. 53-62, 2018.

Concluzii

Lucrarea de faţă se concentrează pe prezentarea câtorva consideraţii asupra bazelor de date ne-relaţionale. Principala trăsătură a bazelor de date NoSQL este aceea că permit stocarea datelor în mod ne-structurat (NU sub formă de tabel clasic-schemă rigidă, ci sub formă arborescentă – schema fiind inexistentă, ceea ce face posibilă găzduirea dinamică a oricărei configurări imaginabile, cu condiţia respectării sintaxei JSON), ceea ce sporeşte considerabil eficienţa accesării lor. Se pot memora date în orice combinaţie posibilă (texte, numere întregi, fişiere, colecţii de entităţi etc. sau orice fel de grupare imaginabilă a acestora). În prezent, există multe companii care au dezvoltat propriile baze de date NoSQL.

Principalele trăsături funcţionale ale bazelor NoSQL sunt lipsa schemei, simplitatea anatomică – ceea ce permite executarea de interogări rapide, posibilitatea de a adăuga/edita/şterge dinamic noi atribute (câmpuri) la înregistrările existente, posibilitatea de a partaja încărcarea pe mai multe servere (adică distribuirea “efortului” de calcul), posibilitatea de a replica datele pe mai multe servere şi accesare simultană posibil problematică faţă de modelul relaţional (negarantarea tranzacţiilor).

În ceea ce priveşte partea de dezvoltare software, bazele NoSQL sunt open-source şi se bucură de colecţii generoase de funcţii API pentru dialogul cu aplicaţii scrise în diverse limbaje. În această ordine de idei, lucrarea face o prezentare sugestivă a utilizării Driverului MongoDB C#, ansamblu de două librării de tip .Net care conţin clasele cu metodele cărora se realizează operaţiunile de conectare şi dialog cu o bază de date. Pe exemple concrete şi simple, este ilustrată totodată echivalenţa dintre sintaxa clasică SQL şi sintaxa NoSQL de sorginte Javascript.

Contribuţia autorului constă în (a) – prezentarea unui nou concept informatic şi (b) – utilizarea acestuia într-un proiect concret de cercetare aplicată.

BIBLIOGRAFIE

  1. *** – “C# Driver” – 2018; https://docs.mongodb.com/getting-started;
  2. *** – “Data storage supply and demand worldwide, from 2009 to 2020 (in exabytes)” https://www.statista.com/statistics/751749/worldwide-data-storage-capacity-and-demand – 2018.
  3. *** – “NoSQL Databases” – 2018; http://nosql-database.org/.
  4. Alexandru, A., Coardoş, D., Nicolau, D. – “A Model For Future Internet Of Things-Based Remote Monitoring Of Chronic Diseases”; Proceedings of the IE 2018 International Conference – Iaşi, 2018.
  5. Andersson, Erik & Berggren, Zacharias – “A Comparison Between MongoDB and MySQL Document Store Considering Performance”; http://www.diva-portal.org/smash/get/diva2: 1161166/ FULLTEXT01.pdf – 2017;
  6. Băjenaru, L., Marinescu, I. A., Tomescu, M., Savu, D. – “Biblioteca Naţională de Programe: O nouă abordare în managementul produselor software” – RRIA, vol. 27, nr. 4, decembrie 2017; https://rria.ici.ro/rria-vol-27-nr-4-2017.
  7. Nicolau, D. & colab. – ICI Bucureşti – “Proiect PN 16 09 03 02 – Servicii Cloud cu suport baze de date NoSQL destinate dezvoltării de proiecte Open Source; Faza 1 – Dec 2016”.
  8. Nicolau, D. & colab. – ICI Bucureşti – “Proiect PN 16 09 03 02 – Servicii Cloud cu suport baze de date NoSQL destinate dezvoltării de proiecte Open Source; Faza 2 – Iun 2017”.
  9. Shalom, N. – “The Common Principles Behind The NoSQL Alternatives”, Dec 2009 http://natishalom.typepad.com/nati_shaloms_blog/2009/12/the-common-principlesbehindthe-nosql-alternatives.html.
  10. Welsh, M., Culler, D., Brewer, E. – “An architecture for well conditioned, scalable internet services” – 2001; http://www.sosp.org/2001/papers/welsh.pdf.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.