Oracolo

Oracle non è il database più popolare, ma è il più famoso. Anche se si può sostenere che il più popolare. Guarda come contare . Se guardi solo al numero di aziende, MySQL è il database più popolare: è abbastanza buono e completamente gratuito :)

Ma può anche essere considerato diversamente. Se esiste un'azienda con un milione di clienti che utilizza Oracle e 5 aziende con un centinaio di clienti che utilizzano MySQL, allora Oracle ha un milione di clienti e MySQL solo 500 persone.

In generale, se prendi le grandi aziende che hanno soldi e guardi quale DBMS scelgono, circa un terzo di tutte le aziende del mondo si siede su Oracle. Qualcosa come questo.

Come programmatore, è più probabile che tu lavori in futuro su Oracle che su MySQL. C'è un eccellente video su Internet che dimostra come la popolarità del DBMS sia cambiata negli ultimi 20 anni.

MySQL

Il secondo più popolare tra tutti i DBMS è MySQL. Ed è il primo in popolarità tra tutti i DBMS gratuiti. Ora capisci perché impariamo SQL dal suo esempio. L'hype è hype e il business è piuttosto prudente nella scelta dell'infrastruttura.

In linea di principio, abbiamo già parlato di MySQL. Una volta sono stati acquistati da Sun , poi da Oracle . Che, beh, è ​​molto difficile chiamare una società di bontà.

Sono loro che, dopo l'acquisizione di Sun, cercano costantemente di far pagare Java.

Sì, Sun possedeva sia Java che MySQL prima che Oracle li acquistasse.

Questo fatto e la reputazione di Oracle hanno spaventato un po' gli sviluppatori MySQL, che hanno deciso di biforcare il progetto MySQL e chiamarlo MariaDB.

MariaDB è in realtà un clone di MySQL con alcune stranezze di implementazione che consentono di aggirare le sfumature di brevetti e licenze.

Tuttavia, anche Oracle non è uno sciocco. Per impedire a clienti e sviluppatori di accedere a MariaDB, Oracle continua a finanziare lo sviluppo e lo sviluppo di MySQL, che continua ad essere gratuito.

E per sedersi su due sedie, è stato rilasciato un MySQL Enterprise a pagamento per i clienti aziendali , che non è diverso da MySQL Community Edition , ma le cui licenze sono più adatte per il business.

PostgreSQL

Un altro DBMS interessante è PostgreSQL (pronunciato "postgres cue").

Questo è un altro DBMS gratuito che sta guadagnando popolarità molto rapidamente negli ultimi anni. Anche se è ancora lontano da MySQL.

PostgreSQL si concentra principalmente sul lavoro distribuito. I suoi punti di forza sono:

  • Meccanismi di transazione e replica affidabili e ad alte prestazioni
  • Sistema estensibile di linguaggi di programmazione integrati: PL SQL, PL JS, PL Python, …
  • Ereditarietà della tabella
  • Capacità di indicizzare oggetti geometrici (in particolare geografici).
  • Supporto integrato per dati semi-strutturati in formato JSON con la possibilità di indicizzarli
  • Estensibilità (la possibilità di creare nuovi tipi di dati, tipi di indice, linguaggi di programmazione, moduli di estensione, collegare qualsiasi origine dati esterna)

Sai perché si chiama così? Ecco com'era...

Circa 50 anni fa, nei primi anni '70, l'Università di Berkeley iniziò a sviluppare il proprio DBMS relazionale e lo chiamò Ingres .

All'inizio degli anni '80, il professor Michael Stonebreaker lasciò il progetto e decise di scrivere il proprio DBMS con blackjack e cortigiane. Lui ei suoi studenti hanno iniziato a scrivere il proprio DBMS, che hanno chiamato semplicemente Post Ingres , abbreviato in Postgres in futuro .

E poiché il nome Postgres non significava niente per nessuno, si è deciso di aggiungervi il suffisso SQL. È così che è venuto fuori PostgreSQL, che ha subito perso la doppia S, e ha cominciato a essere scritto come PostgreSQL. Ma tu dici il nome, devi leggerlo come PostgresQL.

NoSQL

Se sei interessato ai database, allora hai sicuramente sentito parlare dei database NoSQL . Mi affretto a sconvolgerti: NoSQL è puramente un nome di marketing e SQL è lì. È solo troncato.

Che cosa sembra? Immagina una bella pagina web scritta in HTML, CSS e JavaScript... che è stata aperta in un browser del 1995. Funziona con la forza del 10% di CSS e non supporta affatto JavaScript. E questo nuovo standard ridotto si chiama... NoHtml .

Ad esempio, i JOIN tra tabelle potrebbero non essere supportati in NoSQL, quindi devi emularlo a livello di codice Java nel programma o archiviare tutti i dati delle tabelle correlate in un'unica enorme tabella.

E se nel caso di NoHtml sembriamo essere tornati indietro di 20 anni fa, nel caso di NoSQL il rollback si verifica da qualche parte intorno ai 40 anni.

Prendiamo, ad esempio, il database Cassandra NoSQL che Facebook utilizza per archiviare i dati di miliardi di utenti. In realtà, l'hanno sviluppato e poi pubblicato come progetto OpenSource.

Cominciamo con il più interessante: tutto il codice DBMS è scritto in Java . Il codice C++ verrebbe probabilmente eseguito più velocemente, ma ci sarebbero più bug. E il codice Java è più facile da mantenere e sviluppare.

Il formato generale delle richieste al DBMS Casandra sembra molto familiare:

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

Come puoi vedere, SQL è lì. Sai cosa manca qui? UNISCITI ! Puoi selezionare solo i dati da una tabella :)

Ecco una citazione dalla documentazione ufficiale:

Non è possibile eseguire join in Cassandra . Se hai progettato un modello di dati e scopri di aver bisogno di qualcosa come un join, dovrai eseguire il lavoro sul lato client o creare una seconda tabella denormalizzata che rappresenti i risultati del join per te.