GNU/Linux >> Linux Esercitazione >  >> Cent OS

Che cos'è un database di documenti?

Introduzione

Con capacità uniche, i database NoSQL superano i vincoli presenti nel modello di database relazionale. NoSQL è un termine generico per quattro sottoinsiemi principali di database NoSQL:

  • Database valori-chiave
  • Database di colonne
  • Database di grafici
  • Banca dati documenti

In questo articolo spiegheremo cos'è un database di documenti, descriverne vantaggi e svantaggi e fornire esempi.

Definizione del database dei documenti

Un database di documenti è un tipo di database NoSQL che archivia i dati come documenti JSON anziché colonne e righe. JSON è un linguaggio nativo utilizzato sia per archiviare che per eseguire query sui dati. Questi documenti possono essere raggruppati in raccolte per formare sistemi di database.

Ogni documento è costituito da un numero di coppie chiave-valore. Ecco un esempio di documento composto da 4 coppie chiave-valore:

{
"ID" : "001",
"Book" : "Java: The Complete Reference",
"Genre" : "Reference work",
"Author" : "Herbert Schildt",
}

L'utilizzo di JSON consente agli sviluppatori di app di archiviare ed eseguire query sui dati nello stesso formato del modello di documento utilizzato per organizzare il codice dell'app. Il modello a oggetti può essere convertito in altri formati, come JSON, BSON e XML.

Database di documenti e relazioni

I sistemi di gestione di database relazionali (RDBMS) si basano su SQL (Structured Query Language). NoSQL no.

Un RDBMS si concentra sulla creazione di relazioni tra i file per archiviare e leggere i dati. I database dei documenti sono focalizzati sui dati stessi e le relazioni sono rappresentate con dati nidificati.

Confronti chiave tra database relazionali e documentali:

RDBMS Sistema di database dei documenti
Strutturato attorno al concetto di relazione. Incentrato sui dati piuttosto che relazioni.
Organizza i dati in tuple (o righe). I documenti hanno proprietà senza definizioni teoriche, invece di righe.
Definisce i dati (relazioni tra moduli) tramite vincoli e chiavi esterne (ad esempio, una tabella figlio fa riferimento alla tabella principale tramite il suo ID). Nessun linguaggio DDL per la definizione degli schemi.
Utilizza DDL (Data Definition Language) per creare relazioni. Relazioni rappresentate tramite dati nidificati , non chiavi esterne (qualsiasi documento può contenerne altri nidificati al suo interno, portando a una relazione N:1 o 1:N tra le due entità del documento).
Offre estrema coerenza , fondamentale per alcuni casi d'uso come l'attività bancaria quotidiana. Offre eventuale coerenza con un periodo di incoerenza.

Caratteristiche dei database di documenti

I database dei documenti forniscono query veloci, una struttura adatta per la gestione di big data, indicizzazione flessibile e un metodo semplificato di manutenzione del database. È efficiente per le app Web ed è stato completamente integrato da aziende IT su larga scala come Amazon.

Sebbene i database SQL abbiano una grande stabilità e potenza verticale, hanno difficoltà con database di grandi dimensioni. I casi d'uso che richiedono l'accesso immediato ai dati, come le app sanitarie, si adattano meglio ai database dei documenti. I database dei documenti semplificano l'interrogazione dei dati con lo stesso modello di documento utilizzato per codificare l'applicazione.

Casi d'uso dei database dei documenti

Casi d'uso generali
Profili utente Estrazione di big data in tempo reale
Banca dati libri Dati di strutture variabili
Gestione dei contenuti Cataloghi
Dati dei pazienti

Tratteremo alcuni dei casi d'uso sopra menzionati in modo più dettagliato nelle sezioni seguenti.

Banca dati libri

Entrambi i sistemi di documenti relazionali e NoSQL vengono utilizzati per formare un database di libri, sebbene in modi diversi.

L'approccio relazionale rappresenterebbe la relazione tra libri e autori tramite tabelle con ID – un Autore tavolo e un Libri tavolo. Impone a ciascun autore di avere almeno una voce nella tabella Libri non consentendo valori nulli.

In confronto, il modello di documento ti consente di nidificare . Mostra le relazioni in modo più naturale e semplice assicurando che ogni documento dell'autore abbia una proprietà chiamato Libri , con una serie di documenti relativi al libro nella proprietà. Quando cerchi un autore, viene visualizzata l'intera raccolta di libri.

Gestione dei contenuti

Gli sviluppatori utilizzano database di documenti per creare piattaforme di streaming video, blog e servizi simili. Ogni file viene archiviato come un unico documento e il database è più facile da mantenere man mano che il servizio evolve nel tempo. Modifiche significative ai dati, come le modifiche ai modelli di dati, non richiedono tempi di inattività poiché non è necessario alcun aggiornamento dello schema.

Cataloghi

I database dei documenti sono molto più efficienti dei database relazionali quando si tratta di archiviare e leggere file di catalogo. I cataloghi possono avere migliaia di attributi memorizzati e i database dei documenti forniscono tempi di lettura rapidi. Nei database di documenti, gli attributi relativi a un singolo prodotto sono archiviati in un unico documento. La modifica degli attributi di un prodotto non ha effetto sugli altri documenti.

Vantaggi e svantaggi del database dei documenti

Di seguito sono riportati alcuni vantaggi chiave e svantaggi di banche dati di documenti:

Vantaggi del database dei documenti Svantaggi del database dei documenti
Senza schema
Limitazioni del controllo di coerenza
Creazione e cura più rapide
Debolezze dell'atomicità
Nessuna chiave esterna Sicurezza
Apri formati
Versionamento integrato

I vantaggi e gli svantaggi sono ulteriormente spiegati nelle sezioni seguenti.

Vantaggi

  • Senza schema . Non ci sono restrizioni nel formato e nella struttura della memorizzazione dei dati. Questo è utile per conservare i dati esistenti a volumi enormi e diversi stati strutturali, specialmente in un sistema in continua trasformazione.
  • Creazione e auto più veloci e. È richiesta una manutenzione minima una volta creato il documento, che può essere semplice come aggiungere un oggetto complesso una volta.
  • Nessuna chiave esterna . In assenza di questa dinamica di relazione, i documenti possono essere indipendenti l'uno dall'altro.
  • Formati aperti . Un processo di compilazione pulito che utilizza XML, JSON e altri derivati ​​per descrivere i documenti.
  • Versionamento integrato . Man mano che le dimensioni dei tuoi documenti crescono, possono crescere anche in complessità. Il controllo delle versioni riduce i conflitti.

Svantaggi

  • Limiti del controllo di coerenza . Nell'esempio di caso d'uso del database dei libri sopra, sarebbe possibile cercare libri di un autore inesistente. Puoi cercare nella raccolta di libri e trovare documenti che non sono collegati a una raccolta di autori.
    Ogni elenco può anche duplicare le informazioni sull'autore per ogni libro. Queste incoerenze non sono significative in alcuni contesti, ma per gli standard di livello superiore degli audit di coerenza RDB, ostacolano seriamente le prestazioni del database.
  • Debolezze dell'atomicità . I sistemi relazionali consentono inoltre di modificare i dati da un'unica posizione senza la necessità di JOIN. Tutte le nuove query di lettura erediteranno le modifiche apportate ai dati tramite un singolo comando (come l'aggiornamento o l'eliminazione di una riga).
    Per i database di documenti, una modifica che coinvolge due raccolte richiederà l'esecuzione di due query separate (per raccolta). Questo infrange i requisiti di atomicità.
  • Sicurezza . Quasi la metà delle applicazioni Web oggi perde attivamente dati sensibili. I proprietari di database NoSQL, pertanto, devono prestare particolare attenzione alle vulnerabilità delle app Web.

I migliori database di documenti

Documento AmazonDB

Caratteristiche:

  • Compatibile con MongoDB
  • Completamente gestito
  • Alte prestazioni con query a bassa latenza
  • Forte conformità e sicurezza
  • Alta disponibilità

Usato per:

  • Amazon l'intero team di sviluppo utilizza Amazon DocumentDB per aumentare l'agilità e la produttività. Avevano bisogno di indici nidificati, aggregazioni e query ad hoc, con un processo completamente gestito.
  • La BBC lo utilizza per eseguire query e archiviare dati da più flussi di dati e per compilarli in feed di singoli clienti. Sono migrati ad Amazon DocumentDB per i vantaggi di un servizio completamente gestito con disponibilità elevata, durabilità e backup predefiniti.
  • Rappi passato ad Amazon DocumentDB per ridurre i tempi di codifica, Dow Jones per semplificare le operazioni e Samsung per una migliore gestione di tronchi di grandi dimensioni in modo più flessibile.

MongoDB

Caratteristiche:

  • Query ad hoc
  • Indicizzazione ottimizzata per le query
  • Sharding
  • Bilanciamento del carico

Usato per:

  • Forbes tempo di costruzione ridotto del 58%, ottenendo un aumento del 28% degli abbonamenti grazie alla creazione più rapida di nuove funzionalità, incorporazioni più semplici e una migliore gestione di tipi di dati sempre più diversi.
  • Toyota ha trovato molto più semplice per gli sviluppatori lavorare a velocità elevate utilizzando documenti JSON naturali. Viene dedicato più tempo alla creazione del valore aziendale anziché alla modellazione dei dati.

Cosmo DB

Caratteristiche:

  • Lettura veloce di qualsiasi scala
  • Disponibilità 99.999%
  • Completamente gestito
  • API NoSQL/Native Core
  • Senza server, scalabile in modo conveniente/istantaneamente

Usato per:

  • Coca-Cola ottiene informazioni dettagliate fornite in pochi minuti, facilitando il ridimensionamento globale. Prima di migrare a Cosmos DB, ci sono volute ore.
  • ASOS aveva bisogno di un database distribuito che si adattasse in modo flessibile e senza interruzioni per gestire oltre 100 milioni di clienti al dettaglio globali.

ArangoDB

Caratteristiche:

  • Convalide dello schema
  • Indicizzazione diversificata
  • Cluster distribuiti velocemente
  • Set di dati efficienti e di grandi dimensioni
  • Supporta più modelli di dati NoSQL
  • Combina i modelli in singole query

Usato per:

  • Università di Oxford ridotta frequenza ospedaliera e risultati dei test migliorati sviluppando un test di valutazione basato sul web per le malattie cardiopolmonari.
  • Statistiche di volo ha trasformato i dati di volo frammentati (stato del volo, meteo, ritardi aeroportuali e dati di riferimento) in un unico standard, consentendo risultati accurati, predittivi e analitici.

Server Couchbase

Caratteristiche:

  • Capacità di gestire implementazioni globali
  • Estrema agilità e flessibilità
  • Veloce su larga scala
  • Facile integrazioni cloud

Usato per:

  • BT ha utilizzato il modello di dati flessibile di Couchbase per accelerare la sua capacità di fornire contenuti a prestazioni elevate scalando con facilità contro i picchi di domanda.
  • eBay migrato da Oracle per una soluzione più conveniente e applicabile alle funzionalità (del loro sistema di archiviazione/documento con valori chiave). Le prestazioni e la disponibilità delle app sono aumentate, mentre gli sviluppatori hanno potuto utilizzare il loro know-how SQL per velocizzare la pipeline CI/CD tramite uno schema più flessibile.

CouchDB

Caratteristiche:

  • GUI basata su browser
  • Offre le repliche più semplici
  • Autenticazione utente
  • Proprietà ACIDI

Usato per:

  • Meebo, la piattaforma social, ha utilizzato CouchDB per l'interfaccia web-based e le sue applicazioni.
  • La BBC ha utilizzato CouchDB per le sue piattaforme di contenuti dinamici.

Come scegliere?

Le esigenze critiche della tua app determinano come strutturare i dati. Alcune domande chiave:

  • Farai più lettura o scrittura? I sistemi relazionali sono superiori se stai scrivendo di più, poiché evitano duplicazioni durante gli aggiornamenti.
  • Quanto è importante la sincronizzazione? Grazie alla loro struttura ACID, i sistemi relazionali lo fanno meglio.
  • Quanto dovrà trasformare lo schema del database in futuro? I database di documenti sono una scelta vincente se lavori con dati diversi su larga scala e richiedi una manutenzione minima.

Né il documento né l'SQL sono rigorosamente migliori dell'altro. La scelta giusta dipende dal tuo caso d'uso. Quando prendi la tua decisione, considera i tipi di operazioni che verranno eseguite più frequentemente.


Cent OS
  1. Che cos'è il database NoSQL? – Spiegazione di NoSQL

  2. Che cos'è un DataFrame Spark?

  3. Che cos'è un database relazionale?

  4. Database NoSQL distribuito Elasticsearch:cos'è e dovresti usarlo?

  5. Come funziona rm? Cosa fa rm?

Che cos'è la normalizzazione del database?

Che cos'è la replica dei dati? {Tipi di replica e schemi spiegati}

Che cos'è un database?

PHP MySQL Seleziona dati

Qual è la radice del documento del mio dominio?

Che cos'è un database distribuito e a cosa servono i sistemi di dati distribuiti?