Oracol

Oracle nu este cea mai populară bază de date, dar este cea mai cunoscută. Deși se poate susține că cel mai popular. Vedeți cum să numărați . Dacă te uiți doar la numărul de companii, atunci MySQL este cea mai populară bază de date: este destul de bună și complet gratuită :)

Dar poate fi considerat și diferit. Dacă există o companie cu un milion de clienți care utilizează Oracle și 5 companii cu o sută de clienți care folosesc MySQL, atunci Oracle are un milion de clienți și MySQL doar 500 de oameni.

În general, dacă luați companii mari care au bani și vă uitați la ce DBMS aleg, atunci aproximativ o treime din toate companiile din lume se află pe Oracle. Ceva de genul.

Ca programator, este mai probabil să lucrați în viitor pe Oracle decât pe MySQL. Există un videoclip excelent pe Internet care demonstrează cum sa schimbat popularitatea DBMS în ultimii 20 de ani.

MySQL

Al doilea cel mai popular dintre toate DBMS este MySQL. Și este primul în popularitate dintre toate SGBD-urile gratuite. Acum înțelegeți de ce învățăm SQL din exemplul ei. Hype este hype, iar afacerile sunt destul de conservatoare în alegerea infrastructurii.

În principiu, am vorbit deja despre MySQL. Odată au fost cumpărate de Sun , apoi de Oracle . Ceea ce, ei bine, este foarte greu să numim o corporație a bunătății.

Ei sunt cei care, după achiziționarea Sun, încearcă în mod constant să facă Java plătit.

Da, Sun deținea atât Java, cât și MySQL înainte ca Oracle să le cumpere.

Acest fapt și reputația Oracle i-au speriat puțin pe dezvoltatorii MySQL, care au decis să forkeze proiectul MySQL și să-l numească MariaDB.

MariaDB este, de fapt, o clonă a MySQL , cu unele ciudații de implementare care vă permit să ocoliți nuanțele brevetelor și licențelor.

Cu toate acestea, nici Oracle nu este proști. Pentru a preveni scurgerile clienților și dezvoltatorilor către MariaDB, Oracle continuă să finanțeze dezvoltarea și dezvoltarea MySQL, care continuă să fie gratuită.

Și pentru a sta pe două scaune, a fost lansat un MySQL Enterprise plătit pentru clienții corporativi , care nu este diferit de MySQL Community Edition , dar ale cărui licențe sunt mai potrivite pentru afaceri.

PostgreSQL

Un alt SGBD interesant este PostgreSQL (pronunțat „postgres cue”).

Acesta este un alt DBMS gratuit care a câștigat popularitate foarte repede în ultimii ani. Deși este încă departe de MySQL.

PostgreSQL se concentrează în primul rând pe munca distribuită. Punctele sale forte sunt:

  • Mecanisme de tranzacție și replicare de înaltă performanță și fiabile
  • Sistem extensibil de limbaje de programare încorporate: PL SQL, PL JS, PL Python, …
  • Moștenirea de masă
  • Abilitatea de a indexa obiecte geometrice (în special, geografice).
  • Suport încorporat pentru date semi-structurate în format JSON cu posibilitatea de a le indexa
  • Extensibilitate (abilitatea de a crea noi tipuri de date, tipuri de index, limbaje de programare, module de extensie, conecta orice sursă de date externe)

Știi de ce se numește așa? Iată cum a fost…

În urmă cu aproximativ 50 de ani, la începutul anilor 70, Universitatea din Berkeley a început să-și dezvolte propriul SGBD relațional și l-a numit Ingres .

La începutul anilor 80, profesorul Michael Stonebreaker a părăsit proiectul și a decis să-și scrie propriul DBMS cu blackjack și curtezane. El și studenții săi au început să-și scrie propriul DBMS, pe care l-au numit simplu Post Ingres , prescurtat în Postgres în viitor .

Și din moment ce numele Postgres nu a însemnat nimic pentru nimeni, s-a decis să se adauge sufixul SQL. Așa a rezultat PostgreSQL, care a pierdut imediat dublu S și a început să fie scris ca PostgreSQL. Dar dacă spui numele, trebuie să-l citești ca PostgresQL.

NoSQL

Dacă sunteți interesat de baze de date, atunci cu siguranță ați auzit despre bazele de date NoSQL . Mă grăbesc să vă supăr: NoSQL este doar un nume de marketing , iar SQL există. El este doar trunchiat.

Cu ce ​​seamănă? Imaginează-ți o pagină web frumoasă scrisă în HTML, CSS și JavaScript... care a fost deschisă într-un browser din 1995. Funcționează cu 10% din CSS și nu acceptă JavaScript deloc. Și acest nou standard redus se numește... NoHtml .

De exemplu, JOIN-urile dintre tabele pot să nu fie acceptate în NoSQL și atunci trebuie fie să emulați acest lucru la nivelul codului Java din program, fie să stocați toate datele tabelelor asociate într-un tabel imens.

Și dacă în cazul NoHtml se pare că am revenit cu 20 de ani în urmă, atunci în cazul NoSQL, rollback-ul are loc undeva în jur de 40 de ani.

Luați, de exemplu, baza de date Cassandra NoSQL pe care Facebook o folosește pentru a stoca datele a miliarde de utilizatori. De fapt, l-au dezvoltat și apoi l-au postat ca proiect OpenSource.

Să începem cu cel mai interesant - tot codul DBMS este scris în Java . Codul C++ ar rula probabil mai repede, dar ar exista mai multe erori. Și codul Java este mai ușor de întreținut și dezvoltat.

Formatul general al cererilor către SGBD Casandra pare foarte familiar:

  SELECT columns  
  FROM table 
  WHERE condition
  GROUP BY columns 
  ORDER BY sorting 
  LIMIT quantity

După cum puteți vedea, SQL este acolo. Știi ce lipsește aici? ÎNSCRIEȚI-VĂ ! Puteți selecta doar date dintr-un singur tabel :)

Iată un citat din documentația oficială:

Nu puteți efectua alăturari în Cassandra . Dacă ați proiectat un model de date și descoperiți că aveți nevoie de ceva de genul unei alăturari, va trebui fie să faceți lucrul pe partea clientului , fie să creați un al doilea tabel denormalizat care să reprezinte rezultatele îmbinării pentru dvs.