Poveste din spate: În 2016 urmăream o diplomă în informatică la Universitatea din Albany și a trebuit să urmez un curs de Introducere în bazele de date.
În cadrul cursului, am învățat două lucruri:
Baze de date relaționale și baze de date non-relaționale, dar niciodată nu am învățat cu adevărat diferența dintre cele două, așa că am vrut să-mi reaprind curiozitatea față de bazele de date și diferențele dintre cele două.
- Definită de E.F Codd în 1970, o bază de date relațională este o bază de date digitală bazată pe modelul relațional al datelor. Datele sunt stocate în tabele care conțin rânduri (care reprezintă o intrare) și coloane(care stochează și sortează un anumit tip de informații). Relațiile sunt stabilite prin intermediul cheilor primare și străine.
Limbi: SQL(Structured Query Language), MySQL, PostgreSQL, sqlite3
Vantaje:
- Poate gestiona o mulțime de interogări complexe, tranzacții de baze de date și analize de rutină ale datelor.
- ACID(Atomity, Consistency, Isolation, Durability): Ansamblu de proprietăți care asigură tranzacții fiabile ale bazei de date.
Dezavantaje:
- Nu poate stoca imagini complexe sau foarte mari, numere, desene și produse multimedia
- Poate deveni foarte costisitor cu mentenanța și serverele noi
Grea! Dar ce se întâmplă dacă seturile noastre de date sunt prea mari sau nestructurate?
Baze de date non-relaționale sau NoSQL
Ce este o bază de date non-relațională?
- Baze de date non-relaționale au existat la sfârșitul anilor 1960, dar termenul a fost folosit abia în 1998 de Carlo Strozzi, care a condus dezvoltarea NoSQL.
- „O bază de date NoSQL (referindu-se inițial la „non SQL” sau „non relațională”) oferă un mecanism pentru stocarea și recuperarea datelor care sunt modelate prin alte mijloace decât relațiile tabulare utilizate în bazele de date relaționale.” – Wikipedia
Tipuri de baze de date NoSQL:
Column Store: Folosește conceptul de spațiu cheie care conține toate familiile de coloane care conțin rânduri și coloane pentru a stoca și organiza datele.
Bază de date: Apache HBase, Cassandra
Cey-Value Store: Utilizează o matrice asociativă (hartă sau dicționar) ca model de date fundamental. Datele sunt reprezentate ca o colecție de perechi cheie-valoare, iar o cheie va apărea cel mult o dată în colecție. Puteți stoca o valoare, cum ar fi un număr întreg, un șir de caractere, o structură JSON sau o matrice, împreună cu o cheie utilizată pentru a face referire la acea valoare.
Bază de date: Redis, Amazon DynamoDB
Graph: Este o bază de date care utilizează structuri grafice pentru a reprezenta și stoca date. Acest lucru permite utilizatorilor să traverseze rapid printre toate valorile conectate și să găsească informații despre relații.
Bază de date: Neo4J, OrientDB, Titan
Bază de date orientată pe documente: O bază de date orientată pe documente, sau un magazin de documente, este un program de calculator conceput pentru stocarea, recuperarea și gestionarea informațiilor orientate pe documente, cunoscute și sub denumirea de date semistructurate.
Bază de date: MongoDB, Couchbase
Vantaje:
- Volumente mari de date structurate, semi-structurate și nestructurate
- Programare orientată pe obiecte care este ușor de utilizat și flexibilă (MongoDB este practic scris în javascript)
- Arhitectură eficientă, scalabilă, în locul unei arhitecturi costisitoare, monolitice
Dezavantaje:
- Mai puțin suport, deoarece bazele de date NoSQL sunt de obicei open-source
- Administrare: Bazele de date NoSQL necesită abilități tehnice pentru a fi instalate și întreținute.
- Mai puțin mature. Bazele de date NoSQL sunt încă în creștere și multe caracteristici sunt încă în curs de implementare.
Ce să folosim?
Companii utilizează un amestec de baze de date tradiționale și nerelaționale pentru a satisface cerințele și nevoile lor de afaceri.
Baze de date relaționale:
Bazele de date relaționale tradiționale sunt foarte bune pentru a păstra securitatea tranzacțiilor de date și pentru a face interogări complexe pentru a obține informații. Companiile care sunt deja structurate și care nu se confruntă cu o creștere masivă vor rămâne, cel mai probabil, la bazele de date tradiționale.
Baze de date nerelaționale:
Excelent la stocarea unor cantități mari de date cu puțină structură. Companiile care cresc într-un ritm rapid, cum ar fi startup-urile, utilizează mai multe baze de date non-relaționale pentru scalabilitatea și flexibilitatea sa. Împreună cu cloud-ul, bazele de date nerelaționale pot, de asemenea, să economisească foarte mulți bani pentru companii.
Date Fun Facts:
- Datele cresc mai repede ca niciodată, iar până în anul 2020, aproximativ 1,7 megabytes de informații noi vor fi create în fiecare secundă pentru fiecare ființă umană de pe planetă.
- Până atunci, universul nostru digital acumulat de date va crește de la 4,4 zettabytes în prezent la aproximativ 44 zettabytes, sau 44 trilioane de gigabytes.
- Asistăm la o creștere masivă a datelor video și foto, unde în fiecare minut sunt încărcate până la 300 de ore de videoclipuri numai pe YouTube.
- În acest an, vor fi livrate peste 1,4 miliarde de telefoane inteligente – toate pline de senzori capabili să colecteze tot felul de date, ca să nu mai vorbim de datele pe care utilizatorii le creează ei înșiși.
- În cinci ani, în lume vor exista peste 50 de miliarde de dispozitive inteligente conectate, toate dezvoltate pentru a colecta, analiza și partaja date.
.