Tutte le aziende archiviano i dati da un semplice registro di una piccola impresa, magari anche su un diario o su un pezzo
di carta, fino a grandi aziende come Amazon che hanno bisogno di computer per archiviare petabyte di dati.
Ora, per archiviare queste informazioni, praticamente ogni azienda e talvolta gli individui hanno bisogno di qualcosa
chiamato database.
Abbiamo visto nell'ultima sezione quanto sia stato difficile far ricordare al nostro server un nuovo utente.
Ogni volta che il server si è bloccato, la variabile verrà ripristinata e quindi ricomincerà da capo.
O se volessimo fare un login o un segno e controllare e scorrere le e-mail e le password, facendo
un ciclo attraverso JavaScript, è inefficiente.
È qui che il database viene in soccorso.
Allora chiediamoci, cos'è un database?
Un database è una raccolta di dati.
E cosa intendiamo per dati, ce ne sono molte forme, giusto, ci possono essere
numeri, possono esserci date, potrebbero esserci password hash, potrebbero esserci informazioni sull'utente.
I database ci consentono di organizzare questi dati in un modo che ci è utile e semplificano la gestione dei
dati.
E ne è venuto fuori qualcosa, e si chiama Database Management System, o DBMS in breve.
È una raccolta di programmi che ci consente di accedere a database e lavorare con i dati, oltre a
consentire il controllo dell'accesso agli utenti del database.
Quindi un DBMS è qualcosa in questa scatola.
Qualcosa che ci permetta uno strumento, un software che ci permetta di comunicare.
Con il database archiviare le informazioni che ci sono utili e ci permette anche di aggiornare, inserire, eliminare, Look-Up, qualunque cosa ci
sia nel database, e questa idea di un DBMS ha iniziato a prendere forma negli anni '60 e ora
è in prima linea tante cose eccitanti.
C'è un intero settore di ingegneri che lavorano solo con i database perché è così importante.
Ora, ci sono due tipi di DBMS che sono molto popolari in questo momento e di cui parleremo in questo
corso.
E questi due tipi sono rappresentati molto bene da postscript e Mongo DB.
Parliamo del primo, che è il database relazionale.
E questo è probabilmente il più popolare.
Come puoi vedere sul lato destro.
Vedete che tutti questi sono database relazionali, post-laurea Oracle, SQL Server.
Potresti aver sentito parlare di MySQL, Escorial Lite.
Questi sono tutti i tipi di database che hanno questo tag di database relazionale e la bellezza di questi è
che sono tutti molto simili.
Seguono tutti lo stesso formato standard.
I database relazionali sono costituiti da due o più tabelle con colonne e righe.
Quindi, in questo caso, gli utenti sono una tabella e un nome completo, il testo del nome utente creato nelle nostre colonne e
tutti i valori che hanno qui sono righe.
Ogni riga rappresenta una voce in ogni colonna.
Quindi è un tipo di informazione molto specifico come nome, indirizzo o numeri di telefono.
E poi la relazione tra tabelle e campo.
Si chiama schema in un database relazionale, lo schema deve essere chiaramente definito prima di poter aggiungere qualsiasi
informazione.
E se questo è fonte di confusione in questo momento, non preoccuparti, creeremo effettivamente questi database, quindi ha
senso per te.
Se avessimo Twitter, ad esempio, puoi vedere qui i tipi di tabelle che avremmo e come
lo organizzeremmo.
Avremmo una user stable, una tabella tweet, una tabella seguente.
E possiamo collegare tutte queste informazioni, ad esempio, collegando diversi pezzi del tavolo.
Ad esempio, il nome utente sarà lo stesso nella tabella degli utenti come nella tabella dei tweet.
In questo modo, possiamo dire che il nome utente e la tabella dei tweet sono la chiave esterna del nome utente nella
tabella dell'utente e quindi dell'utente.
Sarà la chiave esterna del nome utente nella tabella seguente.
Ora, cose come il nome completo o l'ID, qualcosa che identifica ogni riga in una tabella, è chiamato chiave primaria e lo
esamineremo più avanti nella sezione.
Va bene, quindi tutti questi database che impareremo a conoscere i post-crisi, ma sono tutti più o meno gli
stessi.
Quindi, una volta che ne conosci uno, è abbastanza facile raccogliere gli altri.
Come comunicano effettivamente con un server con il back-end?
Bene, tutti i database relazionali usano qualcosa chiamato oscuro.
E chiedi a tutti ci permette di comunicare, proprio come ha fatto HTP tra il front-end e il
back-end con tutti voi siete stati in grado di comunicare con il database e modificare o ottenere o aggiornare come vogliamo.
E avremo anche un video su questo argomento.
Tutto bene.
Quindi questi sono i database relazionali.
E il secondo tipo?
Il secondo tipo è chiamato database non relazionale o database senza ESKIL e, ancora una volta, ci sono molti, molti diversi
tipi di database con alcuni nomi interessanti come Kotb e Hyper Table.
Ora, un database Mongo o un database non relazionale ti consente di creare un'applicazione senza dover prima
definire lo schema, a differenza di un database relazionale.
Se torniamo al database relazionale, questo schema o queste tabelle devono essere predefiniti, giusto?
Dobbiamo sapere come apparirà la nostra app, creare queste tabelle in modo che una volta che l'app sarà pubblica,
possiamo iniziare a inserire informazioni sull'utente, tweet e follower.
Senza scuse o database non relazionale, possiamo semplicemente definirlo mentre procediamo e tutti hanno modi diversi
di archiviare queste informazioni.
Quindi ognuno è molto, molto diverso.
E questa è un'altra potente ragione per utilizzare un database non relazionale, è che se i
tuoi requisiti di dati non sono chiari all'inizio del tuo progetto e forse hai una quantità enorme di dati non
strutturati, potresti non avere il lusso di sviluppare un database relazionale database con uno schema chiaramente definito.
Offrono invece una maggiore flessibilità in quanto un database non relazionale sono più simili a cartelle, semplicemente assemblando
informazioni correlate di tutti i tipi.
Ora, Mongo DB è qualcosa chiamato orientato ai documenti, memorizza le informazioni come documenti.
Lascia che ti illustri questo punto.
Ho il mio desktop qui con due cartelle.
Uno è un database davvero relazionale e qui ci sono i tweet degli utenti, il profilo che segue.
E puoi pensare a database relazionali con questo tipo di archiviazione in cui questa cartella risiede da qualche parte su
un computer che memorizza queste informazioni e ogni volta che dobbiamo chiedere qualcosa a un database, beh,
prendiamo gli utenti.
E se vogliamo anche prendere i tweet dell'utente, troviamo l'utente che ci interessa,
quindi troviamo i tweet dell'utente che ci interessa anche con la chiave esterna che collega agli utenti.
E possiamo anche trovare quanti follower ha l'utente.
Prendiamo queste informazioni e le mostriamo sulla nostra app Web.
Mongo DB, d'altra parte, avrà effettivamente ogni utente come documento.
Quindi, se volessi catturare il primo utente, beh, ho appena preso questo documento e ha tutti i
follower, i tweet, il profilo, tutto è in questo unico documento.
E potresti pensare che Mongo DB sembri una scelta migliore rispetto a questo.
Modo di fare le cose per bene.
Bene, dipende dalle tue necessità, ed è per questo che il database è un argomento così complesso.
Dipende molto, molto dalla tua situazione.
Puoi vedere che questo modo Mongo DB è molto utile se hai qualcosa come un profilo, forse un profilo
LinkedIn.
Ma se hai bisogno di qualcosa in cui lavori solo con i seguenti dati o solo con i dati dei
tweet, forse con i tweet vuoi vedere qual è la dimensione media dei tweet?
Bene, è davvero facile prendere questo file e calcolarlo rispetto a questo modo in cui
potresti doverlo estrarre da ciascuno degli utenti.
Quindi dipende molto dalle tue esigenze.
Lascia che ti mostri un altro diagramma che potrebbe essere.
Utile.
Quando guardiamo ai database relazionali e non relazionali, puoi pensare al relazionale come ogni tabella ha un post sul blog,
un tag del blog, un commento sul blog e collega queste tabelle per darti le informazioni del blog rispetto a un non
relazionale che memorizza tutto questo post del blog in una voce e contiene commenti, categorie fiscali e tutti gli
altri dati correlati in un unico posto.
Quindi cosa usa Mongo DB per comunicare?
Se torniamo al nostro esempio qui, abbiamo chiesto a tutti voi database relazionali come postcrisis o
Mongo.
DB ha il proprio linguaggio di query, ed è solo il linguaggio di query Mongo DB.
Ma entrambi mirano a fare la stessa cosa, ovvero comunicare con il database, fornire
un modo semplice per il server di comunicare con il database.
E in questa sezione ne parleremo e finalmente collegheremo i punti e vi mostreremo la
potenza dei database una volta che sono connessi a un server.
Ci vediamo alla prossima.