Storia delle basi di dati: basi di dati e DBMS
Molto tempo fa in un paese americano, in una grande azienda IT, è sorto il compito di archiviare grandi quantità di dati. Cosa c'è di così difficile in questo, chiedi? Dopotutto, le grandi aziende hanno soldi, il che significa che puoi acquistare più dischi rigidi e basta.
Ottima idea, ma come si suol dire, il diavolo è nei dettagli. Non solo è stato necessario archiviare grandi quantità di dati, ma anche modificarli e da essi sono stati ricavati vari campioni. Inoltre, devi selezionare dati diversi da luoghi diversi e farlo anche in modo rapido e bello.
In generale, tutto è come al solito: i clienti volevano qualcosa che non esiste e questa volta la decisione di acquistare dischi rigidi non ha funzionato.
![](https://cdn.codegym.cc/images/article/ffb700f7-60b3-4cfc-a274-a1a35a6b1f31/512.jpeg)
Pertanto, i programmatori di questa azienda informatica hanno stanziato un budget maggiore per se stessi, svolto attività di ricerca e, quando il budget è terminato, hanno presentato una presentazione in cui si proponeva di archiviare i dati sotto forma di un database. In un database, tutti i dati sono archiviati in tabelle e ciascuna tabella è archiviata in un file separato. Tutto geniale è semplice e tutto funziona.
Ma una presentazione del genere non si adattava ai clienti e il pignolo continuò:
![](https://cdn.codegym.cc/images/article/a7850c1c-b3ee-403d-8453-dcc511174b7b/512.jpeg)
- Dove sono i soldi, Lebowski?
- Perché il Database è migliore della buona vecchia memorizzazione dei dati sotto forma di un insieme di file?
- Abbiamo bisogno di una soluzione davvero buona, non è così!
- E ci è voluto l'intero budget?
C'era un silenzio di tomba nella sala di presentazione. Tuttavia, inaspettatamente per tutti, la situazione è stata salvata da uno sviluppatore junior, che ha affermato che al database era allegato un programma speciale: un DBMS (Database Management System), che può:
- Creare, modificare ed eliminare database
- Apporta modifiche ai database, ovvero: aggiungi nuovi record, elimina quelli vecchi e modificali
- E anche super veloce per eseguire varie selezioni di qualsiasi dato
E i programmatori stanno persino finendo di progettare uno speciale super linguaggio per filtrare i dati: SQL . E dicono che con l'aiuto di questo magico linguaggio SQL, qualsiasi manager può facilmente filtrare e ottenere qualsiasi dato dal database.
![](https://cdn.codegym.cc/images/article/216e75d9-299a-44a8-9e0a-0cc1d26717a8/512.jpeg)
I programmatori non hanno ancora finito di progettare il linguaggio , quindi non c'è una parola su SQL e DBMS nella presentazione.
Con gioia di tutti, i clienti sono rimasti colpiti dalla spiegazione ascoltata, hanno espresso diverse idee contrastanti su come dovrebbe essere questa nuova lingua e hanno persino stanziato un budget per il suo perfezionamento.
I dirigenti e il direttore tecnico hanno iniziato a congratularsi a vicenda per il buon esito del progetto, e sono subito andati a celebrare questo evento, non rendendosi conto del tutto che il programmatore junior in tutta questa storia è la persona più importante ...
Popolare DBMS e MySQL
Al momento (estate 2022) ci sono centinaia di DBMS popolari, quindi ti sarà utile conoscerne alcuni. Con cosa dovrei iniziare...
Da un lato, il mercato dei DBMS aziendali esiste da decenni. Pertanto, ha sia leader riconosciuti che promettenti nuovi arrivati. D'altra parte, i requisiti aziendali sono in costante crescita, quindi gli approcci alla costruzione delle infrastrutture IT delle aziende cambiano costantemente.
Ora non sorprenderai nessuno con un database da un cluster di un paio di migliaia di server con sharding orizzontale e verticale, transazioni distribuite, nonché un reparto IT di un paio di dozzine di amministratori di sistema che vanno a cambiare i dischi rigidi del server secondo un programma prestabilito.
In generale, se lavori per una grande azienda, molto probabilmente pagano un sacco di soldi per i loro database e usano qualcosa del genere:
Database Oracle
![](https://cdn.codegym.cc/images/article/8a53ac38-0a59-466a-9597-f3e6bf618a43/800.jpeg)
Oracle ha rilasciato il suo primo database nel 1979 (43 anni fa). Ha subito portato il nome Oracle 2.0 per convincere i clienti che il prodotto non è nuovo, ma collaudato nel tempo.
La versione attuale del database è Oracle 21 c , dove la lettera c deriva dalla parola cloud , che, per così dire, suggerisce che Oracle è al passo con i tempi e le sue soluzioni sono perfettamente compatibili con tutte le tecnologie cloud.
Server SQL Microsoft
![](https://cdn.codegym.cc/images/article/532a4cde-2214-4bec-96db-bff84eb41af6/512.jpeg)
Microsoft guadagna un sacco di soldi vendendo non Windows, ma soluzioni server per aziende di medie e grandi dimensioni. Microsoft Office, Microsoft SharePoint, Microsoft Server, ecc. E, naturalmente, tutto ciò richiede un buon database. Pertanto, molte aziende, utilizzando prodotti e soluzioni Microsoft, sono costrette a utilizzare il suo database.
Il DBMS di Microsoft si chiama semplicemente SQL Server , quindi se durante un'intervista senti la domanda "Hai lavorato con SQL Server?", sappi che non si tratta di un DBMS astratto, ma di Microsoft SQL Server.
PostgreSQL
![](https://cdn.codegym.cc/images/article/b31cfc41-69af-488e-8079-5433fa502551/512.jpeg)
Questo è un buon DBMS gratuito, che viene spesso utilizzato non solo da piccole e medie imprese, ma anche da grandi aziende. Questo è uno dei database che Amazon AWS offre come DB-as-service.
MySQL
![](https://cdn.codegym.cc/images/article/0ea0a78a-41d2-43c3-8cd0-b4c72d4c142a/512.jpeg)
MySQL è un database gratuito e open source molto popolare. È ben documentato, funziona velocemente e supporta un'ampia gamma di funzionalità. Ad oggi è disponibile l'ottava versione di questo DBMS.
Nel 2008 è stata acquistata da Sun, che è stata acquistata da Oracle nel 2009. E le ha solo giovato: il prodotto è in costante sviluppo e miglioramento.
Impareremo come lavorare con i database usando MySQL Community Server 8.0 come esempio .
Tabelle in un database: colonne e colonne
DBMS diversi possono archiviare dati in formati diversi, quindi prenderemo l'opzione più semplice e classica: il DBMS MySQL.
E subito la domanda è: come archiviare, ad esempio, eventuali documenti contabili? L'opzione più semplice è archiviare ogni documento come file Excel. Quindi tutti i documenti correlati possono essere archiviati in una cartella. Ecco come funziona MySQL.
Un'altra analogia: nel linguaggio Java, hai classi e pacchetti nel tuo progetto , ma allo stesso tempo classi e pacchetti sono rappresentati su disco come file e cartelle . Qualcosa di simile esiste in MySQL.
I dati MySQL vengono archiviati sotto forma di tabelle , che vengono combinate in database , ma allo stesso tempo le tabelle e il database vengono presentati su disco come file e cartelle . Il database è una cartella e i file in essa contenuti sono tabelle.
Ogni tabella è composta da colonne e righe . Esempio:
![](https://cdn.codegym.cc/images/article/ef9c797e-174d-4b27-a109-ff88a837ac5a/512.jpeg)
Importante! Ogni colonna ha un nome e un tipo di dati , quindi tutte le celle nella stessa colonna devono memorizzare valori dello stesso tipo .
Si può tracciare un'analogia tra una tabella in MySQL e una classe in Java. Una tabella è una classe, una tabella, come una classe, ha un nome univoco. Le colonne della tabella sono campi di classe; le colonne, come i campi, hanno un nome e un tipo univoci. Le righe della tabella sono istanze di classe in Java.
Una classe può esistere senza oggetti e una tabella può esistere senza righe. In Java è possibile creare un nuovo oggetto e in MySQL è possibile aggiungere una nuova riga a una tabella. Puoi modificare i valori dei campi di un oggetto e in MySQL puoi modificare i valori di seguito.
È ancora più corretto affermare che una tabella non è una classe, ma una raccolta di oggetti di una certa classe. Se in MySQL abbiamo una tabella Employee con i dati sui dipendenti, allora in Java useremmo la collezione ArrayList
E, naturalmente, sorge subito la domanda: come ottenere determinati dati da questa raccolta?
GO TO FULL VERSION