Cuprins:
Definiție - Ce înseamnă NoSQL?
NoSQL este o clasă de sisteme de gestionare a bazelor de date (DBMS) care nu respectă toate regulile unui DBMS relațional și nu pot utiliza SQL tradițional pentru a interoga date. Termenul este oarecum înșelător atunci când este interpretat ca „Fără SQL” și cel mai mult îl traduce ca „Nu numai SQL”, deoarece acest tip de bază de date nu este în general un înlocuitor, ci, mai degrabă, o completare complementară la RDBMS și SQL.
Sistemele bazate pe NoSQL sunt utilizate de obicei în baze de date foarte mari, care sunt în special predispuse la probleme de performanță cauzate de limitările SQL și modelul relațional al bazelor de date. Mulți consideră NoSQL ca fiind baza de date modernă de alegere care se încadrează cu cerințele web. Unele implementări notabile ale NoSQL sunt baza de date Cassandra Facebook, BigTable Google și SimpleDB și Dynamo de la Amazon.
Techopedia explică NoSQL
O bază de date NoSQL nu respectă în mod necesar regulile stricte care guvernează tranzacțiile în bazele de date relaționale. Aceste reguli încălcate sunt cunoscute prin acronimul ACID (Atomicitate, consistență, integritate, durabilitate). De exemplu, bazele de date NoSQL nu folosesc structuri fixe de schemă și se alătură SQL.
Într-un RDBMS tradițional, operațiile de bază sunt citite și scrise. Citirile pot fi scalate prin replicarea datelor pe mai multe mașini, astfel încât solicitările de citire să echilibreze sarcinile. Cu toate acestea, acest lucru afectează scrierea, deoarece coerența datelor trebuie menținută. Scrierile pot fi scalate numai prin partitionarea datelor. Acest lucru afectează citirile, deoarece aderările distribuite sunt, de obicei, lente și greu de implementat. În plus, pentru a menține proprietățile ACID, bazele de date trebuie să blocheze datele. Aceasta înseamnă că atunci când un utilizator deschide un element de date, niciun alt utilizator nu ar trebui să poată face modificări la același articol. Această restricție are implicații grave asupra performanței.
Aceste limitări nu au fost o problemă majoră în trecut. Cu toate acestea, odată cu apariția rețelelor sociale și a datelor mari, o serie de baze de date masive apărute au fost nevoite să servească zeci, sau chiar sute, de milioane de clienți din întreaga lume, cu câteva mii de lecturi și scrieri în fiecare minut. RDBMS-urile tradiționale nu îndeplinesc pur și simplu această necesitate, deoarece pot doar „extinde” sau crește resursele pe un server central. O implementare NoSQL, pe de altă parte, poate „extinde” sau distribui încărcarea bazei de date pe mai multe servere.
Bazele de date NoSQL sunt concentrate pe clase particulare de probleme - de la a fi mai flexibile în ceea ce privește datele stocate (depozite de documente), la direcționarea cazurilor de utilizare, cum ar fi relațiile (baze de date grafice) și agregarea datelor (baze de date cu coloane) sau simplificarea simplă ideea unei baze de date până la ceva ce stochează o valoare (chei / valori stocate).
Bazele de date NoSQL oferă avantajele scalabilității rapide, performanțe mult mai bune și o structură mai simplă în comparație cu RDBMSs. Cu toate acestea, acestea suferă, de asemenea, că sunt o tehnologie relativ nouă și nu este dovedită și nu pot oferi bogăția de raportare și funcționalitate analitică a RDBMS.