NoSQL

NoSQL ( engleză pentru Nu numai SQL, germană: „Nu numai SQL”) se referă la baze de date care urmează o abordare non-relațională și, astfel, rup cu istoria lungă a bazelor de date relaționale . Aceste depozite de date nu necesită nicio schemă fixă de tabel și încearcă să evite îmbinările . Scăriți orizontal . În mediul academic acestea sunt (engleză. Adesea denumită „stocare structurată a datelor” stocare structurată ), respectiv.

Implementările bine cunoscute sunt Riak , Apache Cassandra , CouchDB , MongoDB și Redis .

istorie

Termenul NoSQL, încă în sensul că nu există SQL , a fost folosit pentru prima dată pentru o bază de date simplă open source publicată în 1998 care nu oferea niciun acces SQL. Carlo Strozzi, dezvoltatorul acestei baze de date, distinge baza de date NoSQL de mișcarea NoSQL prin faptul că prima este o bază de date care renunță la utilizarea limbajului SQL, în timp ce cea din urmă este un concept care se îndepărtează de modelul relațional.

Termenul NoSQL în sensul Nu numai SQL a fost introdus recent la începutul anului 2009 de Johan Oskarsson pentru o întâlnire despre stocarea distribuită a datelor structurate. Numele a fost o încercare de a găsi un termen comun pentru numărul tot mai mare de sisteme de stocare a datelor non-relaționale, distribuite, dintre care majoritatea au renunțat și la proprietățile ACID .

Acest subiect nu este complet nou. Efortul de stocare a datelor fără limitările modelului relațional a fost cunoscut anterior ca baza de date orientată spre documente . În acest sens, toți reprezentanții acestui subiect trebuie, de asemenea, să fie considerați sisteme NoSQL.

Deși sistemele NoSQL se răspândesc continuu, piața este încă dominată în mod clar de sistemele relaționale (începând cu 2020).

arhitectură

Bazele de date relaționale suferă, de obicei, de probleme de performanță în aplicații cu intensitate mare de date, cum ar fi indexarea unor cantități mari de documente, site-uri web cu volume mari de încărcare și aplicații media în flux . Bazele de date relaționale sunt eficiente numai dacă sunt optimizate pentru tranzacții frecvente, dar mici sau pentru tranzacții mari, cu acces la scriere rar. Cu toate acestea, nu pot face față cerințelor ridicate de date și schimbărilor frecvente de date în același timp. NoSQL, pe de altă parte, poate gestiona multe cereri de citire / scriere.

Arhitecturile NoSQL oferă de obicei doar garanții slabe în ceea ce privește consistența, cum ar fi eventuala consistență sau tranzacții care sunt limitate la înregistrări de date individuale . Unele sisteme acceptă, de asemenea , ACID , de exemplu prin adăugarea de middleware speciale, cum ar fi CloudTPS.

Multe implementări NoSQL acceptă baze de date distribuite cu stocare de date redundantă pe mai multe servere, de exemplu folosind un tabel hash distribuit . Aceasta înseamnă că sistemele pot fi ușor extinse și că erorile individuale ale serverului pot fi depășite.

Diferențierea în funcție de modelul de date

Implementările NoSQL pot fi defalcate după cum urmează:

caracteristică Exemple
Baze de date orientate spre documente Apache Jackrabbit , BaseX , CouchDB , eXist , HCL Notes , MongoDB , OrientDB
Baze de date grafice Generic Neo4j , OrientDB , Amazon Neptune, InfoGrid, HyperGraphDB, Core Data , DEX
RDF- centrat AllegroGraph , 4store , altele
Baze de date distribuite ACID Cluster MySQL
Baze de date cu valori cheie Spațiu pe hard disk Chordless , Google BigTable , GT.M , InterSystems Caché
Memorii cache în RAM Membază , memcached , Redis , Aerospike
În cele din urmă, magazine consistente Amazon Dynamo , Project Voldemort , Riak
Magazinele cheie-valoare sortate Berkeley DB , memcached
Baze de date cu mai multe valori OpenQM , Rocket U2
Baze de date obiecte Db4o , ZODB , Obiectivitate / DB
Baze de date orientate pe coloane Apache Cassandra , Google Bigtable , HBase , SimbleDB , Scylla
Flux de date Apache Kafka , RethinkDB , PipelineDB

putere

Potrivit lui Ben Scofield, performanța bazelor de date NoSQL poate fi evaluată după cum urmează:

Model de date putere Scalabilitate flexibilitate complexitate Funcționalitate
Valoare cheie înalt înalt înalt Nu diferit (nici unul)
Orientat pe coloane înalt înalt mediu scăzut minim
Orientat spre document înalt diferit (mare) înalt scăzut diferit (scăzut)
Bazat pe grafic diferit diferit înalt înalt Teoria graficelor
Relațional diferit diferit scăzut mediu Algebra relațională

literatură

  • Stefan Edlich, Achim Friedland, Jens Hampe, Benjamin Brauer, Markus Brückner: NoSQL: Intrarea în lumea bazelor de date non-relaționale Web 2.0 . A doua ediție, actualizată și extinsă. Hanser Verlag, München 2011, ISBN 978-3-446-42753-2 .
  • Pramodkumar J. Sadalage, Martin Fowler : NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence . Addison-Wesley, Amsterdam 2012, ISBN 978-0-321-82662-6 (engleză).

Link-uri web

Dovezi individuale

  1. Avinash Lakshman, Prashant Malik: Cassandra - Un sistem de stocare structurat descentralizat. (PDF, 133 kB) Universitatea Cornell, 2009, accesat la 24 iunie 2010 .
  2. Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A. Wallach, Mike Burrows, Tushar Chandra, Andrew Fikes, Robert E. Gruber: Bigtable: A Distributed Storage System for Structured Data. (PDF, 221 kB) Google, accesat la 22 aprilie 2012 (engleză).
  3. HBase: stocarea structurată a datelor rare pentru Hadoop ( Memento din 6 aprilie 2012 în Arhiva Internet )
  4. ^ NoSQL: Un sistem de gestionare a bazelor de date relaționale. Strozzi.it, 2 octombrie 2007, accesat la 24 iunie 2010 (engleză): „Deși primul este un pachet software bine definit, este o bază de date relațională cu toate efectele și nu folosește în mod intenționat SQL ca limbaj de interogare, nou-venit este în mare parte un concept (și nici nu unul nou), care se îndepărtează de modelul relațional și ar fi trebuit, așadar, să fie numit mai adecvat „NoREL”, sau ceva în acest sens. „
  5. Eric Evans: NOSQL 2009. 12 mai 2009, accesat la 24 iunie 2010 (engleză): „Johan Oskarsson a organizat o întâlnire pentru cei interesați de stocarea distribuită a datelor structurate și îl numește NOSQL”.
  6. Popularitatea SGBD în funcție de modelul bazei de date. Adus pe 26 ianuarie 2020 .
  7. Rakesh Agrawal și colab.: Raportul Claremont privind cercetarea bazelor de date . În: ACM (Ed.): Înregistrare SIGMOD . bandă 37 , nr. 3 , septembrie 2008, ISSN  0163-5808 , p. 9-19 , doi : 10.1145 / 1462571.1462573 (engleză).
  8. Eric Lai: Nu la SQL? Mișcarea anti-bază de date câștigă abur. 1 iulie 2009, accesat la 4 decembrie 2011 .
  9. CloudTPS: Tranzacții scalabile pentru aplicații web în cloud. Globule.org, februarie 2010, accesat la 24 iunie 2010 (engleză): "CloudTPS este un manager de tranzacții scalabil pentru a permite serviciilor de baze de date cloud să execute tranzacțiile ACID ale aplicațiilor web, chiar și în prezența defecțiunilor serverului și a partițiilor de rețea"
  10. ^ Avinash Lakshman, Prashant Malik: Cassandra: Sistem de stocare structurat pe o rețea P2P. (PDF, 410 kB) Last.fm.com, accesat la 24 iunie 2010 (engleză).
  11. ^ Ben Scofield: NoSQL - Death to Relational Databases (?). 14 ianuarie 2010, accesat la 26 iunie 2014 .