La modellazione dei dati è il processo di sviluppo di una rappresentazione visiva di un'intera applicazione software o dei suoi componenti per comunicare le connessioni tra i punti dati e la struttura. Implica la revisione meticolosa della sua applicazione e dei requisiti del database e come collegamento tra i due per quanto riguarda le operazioni sui dati principali: lettura, scrittura e aggiornamento.
Viene creato un modello di dati stabile valutando il modello di utilizzo dell'applicazione e allineando lo schema del database con esso. Pertanto, la progettazione dello schema modella il modello di dati. Quando si tratta di un database relazionale, non è possibile popolare le tabelle senza creare lo schema della tabella.
Termini chiave da conoscere
Prima di andare avanti, ecco alcune definizioni di base che devi conoscere:
- Collezione - Una raccolta è l'insieme di documenti in MongoDB. È l'equivalente di una tabella in un RDBMS.
- Documento - Un documento è una struttura composta da file e coppie di valori. È l'equivalente di una riga in RDBMS.
- Schema del database - La progettazione dello schema è un'architettura logica e visiva di un database progettato per un sistema di gestione di database (DBMS).
In che modo la modellazione dei dati è diversa in MongoDB?
Grazie alla flessibilità di NoSQL, non è necessario creare uno schema prima dell'inserimento dei dati. Questo perché MongoDB supporta una forma dinamica di schema di database. Ciò elimina la necessità di progettare lo schema in anticipo. Invece, ora puoi memorizzare i tuoi dati e apportare modifiche in base alla tua raccolta.
Puoi memorizzare diversi tipi di dati in un determinato campo di una raccolta e puoi persino aggiungere nuovi campi, aggiornare i valori dei campi ed eliminare i campi esistenti. Troverai il vero vantaggio di questa flessibilità quando associ i documenti a un oggetto o un'entità.
In genere, una raccolta e il relativo documento seguono una struttura simile. Puoi anche "applicare" regole di convalida per i documenti della tua raccolta utilizzando la convalida dello schema.
Relazionato: Motori di database da considerare per il tuo prossimo progetto
Quando crei un modello di dati, controlla come la tua applicazione interagirà con il database. Ad esempio, se sta per elaborare documenti che sono stati inseriti di recente, è una buona idea usare raccolte limitate, raccolte con una dimensione fissa che supportano operazioni ad alta velocità effettiva.
Allo stesso modo, se la tua applicazione funzionerà con le operazioni di lettura la maggior parte del tempo, puoi impostare gli indici per supportare le query comuni e migliorare le prestazioni.
Tradizionalmente, una delle considerazioni nella creazione di un modello di dati è come archiviare i dati correlati. I database relazionali utilizzano tabelle per memorizzare i dati, dove le chiavi primarie ed esterne vengono utilizzate per impostare le relazioni tra i dati.
Allo stesso modo, i join vengono utilizzati per accedere ed eseguire operazioni su più tabelle. Essendo passato a MongoDB da un DBMS relazionale, come SQL Server, non troverai join in MongoDB. Questo perché MongoDB memorizza i dati della raccolta facendo riferimento ai dati o incorporando i dati in una raccolta.
Pertanto, se il tuo modello di dati accetta dieci tabelle in un database relazionale, è possibile che MongoDB ti consenta di consolidarlo in una singola raccolta.
Tipi di modelli di dati
Ora che sai come funziona la modellazione dei dati in MongoDB, esaminiamo i tipi di modelli di dati supportati da MongoDB. Di solito, dipende dalla struttura del documento e dalle relazioni tra i dati dell'applicazione.
Modelli di dati incorporati
Puoi incorporare dati in un singolo documento o struttura in MongoDB. Chiamato anche modelli di dati denormalizzati, sfrutta tutto il potenziale dei ricchi documenti di MongoDB. Ad esempio, considera il seguente esempio: abbiamo una raccolta, studenti, contenente un documento Opaco. In questo documento, abbiamo incorporato due documenti, dettagli del contatto e grado.
{
"_id": "4aad66a4c13bb24f12gh199e",
nome: "Matt",
dettagli del contatto: {
telefono: "555-555-1234"
indirizzo email: "[email protected]"
},
voto: {
oggetto: "CS101"
punteggio: "B"
}}
L'incorporamento memorizza i dettagli rilevanti nello stesso documento o record di database. In questo modo, puoi ridurre al minimo le query e gli aggiornamenti necessari per eseguire operazioni DB comuni.
Quando dovresti usare i modelli di dati incorporati? Sono utili per migliorare le prestazioni delle operazioni di lettura. Inoltre, sono efficaci per l'elaborazione del recupero dei dati di un singolo record. Con questo modello è possibile utilizzare un'unica operazione di scrittura per aggiornare i dati correlati.
Tuttavia, c'è qualcosa che devi tenere a mente: l'incorporamento aumenta la dimensione del documento dopo la sua creazione. In alcuni casi, ciò può influire sulle prestazioni di scrittura e c'è anche la possibilità di frammentazione dei dati a causa delle dimensioni del documento in espansione.
Infine, puoi interagire con i documenti incorporati utilizzando la notazione del punto e attraversarli con facilità. Ecco la sintassi:
field.nestedField: valore
Per l'esempio precedente, puoi accedere ai tuoi documenti nidificati scrivendo la seguente query:
db.students.find ({dettagli di contatto: {telefono: "555-555-1234", indirizzo email: "[email protected]"}}). pretty ()
Modelli di dati normalizzati (riferimenti)
I modelli di dati normalizzati vengono utilizzati per creare modelli di relazione uno-a-molti e molti-a-molti. Mentre si lavora con modelli di documenti incorporati, ci saranno momenti in cui sarà necessario ripetere i dati. È qui che i riferimenti tornano utili: affrontano la ridondanza. Ecco come possiamo utilizzare i riferimenti per l'esempio precedente.
Abbiamo diviso il nostro documento unico in tre documenti e da allora dettagli del contatto e grado avere l'id di opaco documento, puoi chiamarli quando necessario.
alunno
{
_id:
nome utente: "Matt"
}
dettagli del contatto
{
_id:
ID utente:
email: "[email protected]"
telefono: "555-555-1234"
}
grado
id:
ID utente: ,
oggetto: "CS101",
punteggio: "B"
}
Come puoi vedere, i modelli di dati normalizzati suddividono i dati in più raccolte utilizzando i riferimenti tra le raccolte più recenti. Puoi aggiornare un singolo documento, che aggiornerà altre raccolte. Questo è un modo efficiente per aggiornare i dati e viene utilizzato principalmente quando i dati subiscono modifiche frequenti.
Ecco i momenti in cui un modello di dati normalizzato è la scelta più saggia:
- Devi modellare set di dati di grandi dimensioni che seguono una certa gerarchia.
- Devi rappresentare più relazioni molti-a-molti.
- L'incorporamento provocherebbe la duplicazione dei dati senza giovare alle prestazioni di lettura in misura sufficiente.
Ora puoi modellare i dati in MongoDB con facilità
Ormai sai in che modo la modellazione dei dati in MongoDB è diversa dai DBM relazionali, specialmente quando si tratta di schema. Hai anche imparato a conoscere i tipi di modelli di dati in MongoDB - denormalizzati e normalizzati - e hai imparato quando usarli.
E questo è solo l'inizio; c'è molto altro da imparare su come MongoDB può organizzare i tuoi dati.
Un'opzione di modifica è una delle funzionalità di Twitter più richieste. Allora perché l'azienda non lo consente?
Leggi Avanti
- Programmazione
- Banca dati
Iscriviti alla nostra Newsletter
Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!
Ancora un passo…!
Conferma il tuo indirizzo e-mail nell'e-mail che ti abbiamo appena inviato.