Casa Finanza personale Caratteristiche comuni di NoSQL - dummies

Caratteristiche comuni di NoSQL - dummies

Sommario:

Video: Time-Series Data In MongoDB by Massimo Brignoli - Codemotion Roma 2014 2025

Video: Time-Series Data In MongoDB by Massimo Brignoli - Codemotion Roma 2014 2025
Anonim

I libri e i blog NoSQL offrono opinioni diverse su cosa sia un database NoSQL. Le quattro funzioni principali di NoSQL, riportate nell'elenco seguente, si applicano alla maggior parte dei database NoSQL. L'elenco confronta NoSQL con il DBMS relazionale tradizionale:

  • Agnostico dello schema: Uno schema di database è la descrizione di tutti i possibili dati e strutture di dati in un database relazionale. Con un database NoSQL, non è richiesto uno schema, offrendoti la libertà di archiviare le informazioni senza eseguire la progettazione dello schema iniziale.

  • Non correlato: Le relazioni in un database stabiliscono connessioni tra tabelle di dati. Ad esempio, un elenco di dettagli della transazione può essere collegato a un elenco separato di dettagli di consegna. Con un database NoSQL, queste informazioni vengono archiviate come un aggregato - un singolo record con tutto ciò che riguarda la transazione, incluso l'indirizzo di consegna.

  • Hardware delle merci: Alcuni database sono progettati per funzionare al meglio (o solo) con hardware di archiviazione e elaborazione specializzati. Con un database NoSQL, è possibile utilizzare server off-the-shelf economici. L'aggiunta di più di questi server economici consente ai database NoSQL di scalare per gestire più dati.

  • Altamente distribuibile: I database distribuiti possono memorizzare ed elaborare una serie di informazioni su più di un dispositivo. Con un database NoSQL, è possibile utilizzare un cluster di server per contenere un singolo database di grandi dimensioni.

Schema agnostic

I database NoSQL sono indipendenti dallo schema. Non è necessario eseguire molto lavoro di progettazione iniziale prima di poter archiviare i dati nei database NoSQL. È possibile avviare la codifica e archiviare e recuperare i dati senza sapere come il database memorizza e lavora internamente. (Se e quando hai bisogno di funzionalità avanzate, puoi aggiungere manualmente ulteriori indici o modificare strutture di archiviazione dei dati.) L'agnosticismo dello schema può essere la differenza più significativa tra NoSQL e database relazionali.

Il grande vantaggio di un database agnostico dello schema è che i tempi di sviluppo si riducono. Questo vantaggio aumenta man mano che si passano più versioni di sviluppo e occorre modificare le strutture di dati interne nel database.

Ad esempio, in un RDBMS tradizionale, si passa attraverso un processo di riprogettazione dello schema. Lo schema istruisce il database su quali dati aspettarsi. Modificare i dati memorizzati o le strutture ed è necessario reinstruct il database utilizzando uno schema modificato. Se dovessi apportare una modifica, dovresti dedicare molto tempo a decidere come ri-progettare i dati esistenti. Nei database NoSQL, è sufficiente memorizzare una diversa struttura di dati. Non è necessario comunicare preventivamente al database.

Potrebbe essere necessario modificare le query di conseguenza, magari aggiungere l'indice specifico occasionale (come un indice dell'intervallo intero per consentire meno e più delle query specifiche di tipo dati), ma l'intero processo è molto meno doloroso di un RDBMS.

RDBMS è decollato per la sua flessibilità e perché, utilizzando SQL, ha velocizzato la modifica di una query. I database NoSQL offrono questa flessibilità per modificare sia lo schema che la query, che è uno dei motivi principali per cui saranno sempre più adottati nel tempo.

Anche in caso di query, potrebbe non essere necessario preoccuparsi troppo di conoscere le modifiche dello schema: prendere in considerazione un indice su un numero di account di campo, dove numero di conto può essere posizionato ovunque in un documento archiviato in un database NoSQL. È possibile modificare la struttura e spostare dove numero di conto è memorizzato, e se l'elemento ha lo stesso nome altrove nel documento, è ancora disponibile per la query senza modifiche al meccanismo di query.

Si noti che non tutti i database NoSQL sono completamente indipendenti dallo schema. Alcuni, come HBase, richiedono di interrompere il database per modificare le definizioni delle colonne. Sono ancora considerati database NoSQL perché non tutti i campi definiti (in questo caso le colonne) devono essere conosciuti in anticipo per ogni record, solo le famiglie di colonne.

RDBMS consente di identificare singoli campi nei record come valori null . Il problema con un RDBMS è che le dimensioni e le prestazioni dei dati memorizzati sono influenzate negativamente quando la memoria è riservata ai valori nulli, nel caso in cui il record possa avere in futuro un valore in quella colonna. In Cassandra, semplicemente non fornite i dati di quella colonna, il che risolve il problema.

I sistemi di gestione dei database relazionali non relazionali

sono stati il ​​modo dominante per archiviare i dati delle applicazioni per oltre 20 anni. Una grande quantità di lavoro matematico è stato fatto per dimostrare la teoria che li sta alla base.

Questa sottostruttura descrive come le tabelle si correlano tra loro. Una singola riga ordine può riguardare molte righe Indirizzo di consegna, ma ogni riga Indirizzo consegna si riferisce anche a più righe ordine. Questo è un molti - a - molti rapporti .

I database NoSQL non hanno questo concetto di relazioni tra i loro record. Invece denormalizzano i dati. Ciò significa che in un database NoSQL avrebbe una struttura di ordine con l'indirizzo di consegna incorporato. Ciò significa che l'indirizzo di consegna è duplicato in ogni riga di ordine che lo utilizza. Questo approccio ha il vantaggio di non richiedere complessi join di tempo di query su più strutture di dati (tabelle).

I database NoSQL non memorizzano informazioni su come i singoli record si riferiscono ad altri record nel database, il che può sembrare una limitazione. Tuttavia, i database NoSQL sono più flessibili in termini di strutture di dati che è possibile archiviare.

Considera un ordine da un rivenditore online. L'ordine potrebbe includere codici di prodotto, quantità, prezzi degli articoli e descrizioni degli articoli, nonché informazioni sull'ordinazione della persona, come l'indirizzo di consegna e le informazioni di pagamento.

Invece di inserire dieci righe in una varietà di tabelle in un database relazionale, è possibile invece memorizzare una singola struttura per tutte le informazioni di questo ordine, ad esempio come documento JSON o XML.

Nella teoria dei database relazionali, l'obiettivo è normalizzare i dati (ovvero, organizzare i campi e le tabelle per rimuovere i dati duplicati). Nei database NoSQL, in particolare i database Documento o Aggregazione, spesso si denormalizzano i dati, memorizzando alcuni dati più volte.

È possibile memorizzare, ad esempio, "Indirizzo di consegna del cliente" più volte su molti ordini effettuati da un cliente nel corso del tempo, anziché archiviarlo una sola volta e fare riferimento ad esso in più ordini. Ciò richiede spazio di archiviazione aggiuntivo e un po 'di accortezza nella gestione dell'applicazione. Allora perché farlo?

Esistono due vantaggi per l'archiviazione dei dati più volte:

  • Archiviazione e recupero semplici: Basta salvare e ottenere un singolo record.

  • Velocità della query: Nei database relazionali, si uniscono le informazioni e si aggiungono i vincoli tra le tabelle al momento della query. Ciò potrebbe richiedere al motore del database di valutare molte tabelle. Maggiore è il vincolo di query tra più tabelle, più si riduce la velocità della query. (Questo è il motivo per cui un RDBMS ha viste precalcolate.) In un database NoSQL, tutte le informazioni necessarie per valutare la query sono contenute in un singolo documento. Pertanto, è possibile determinare rapidamente l'elenco di documenti corrispondenti.

Le viste relazionali e le denormalizzazioni NoSQL sono approcci diversi al problema della diffusione dei dati tra i record. In NoSQL, potrebbe essere necessario mantenere più denormalizzazioni che rappresentano viste differenti degli stessi dati. Questo approccio aumenta il costo dello storage ma ti offre tempi di interrogazione molto migliori.

Dato il costo sempre più ridotto dello storage e la maggiore velocità di sviluppo e query, i dati denormalizzati (ovvero visualizzazioni materializzate ) non sono un motivo killer per scontare soluzioni NoSQL. È solo un modo diverso di affrontare lo stesso problema, con i suoi vantaggi e svantaggi.

NoSQL è altamente distribuibile e utilizza hardware commodity

In molti database NoSQL, una decisione progettuale chiave è quella di utilizzare più computer per memorizzare i dati per un singolo database, anziché avere l'intero database su un singolo server.

È difficile memorizzare i dati su più macchine e consentirne l'interrogazione. È necessario inviare la query a tutti i server e attendere una risposta. Si spera che si configurino le macchine in modo che siano abbastanza veloci da comunicare tra loro per gestire le query distribuite!

Il vantaggio principale di questo approccio è nel caso di dataset di grandi dimensioni, perché per alcuni requisiti di archiviazione, anche il più grande singolo server disponibile non può archiviare o elaborare tutti i dati necessari. Prendi in considerazione tutti i messaggi su Twitter e Facebook. Hai bisogno di un meccanismo distribuito per gestire in modo efficace tutti quei dati, anche se si tratta principalmente di ciò che le persone hanno per colazione e simpatici video di gatti.

Un vantaggio della distribuzione del database è che è possibile utilizzare server più economici, denominati server commodity .Anche per i set di dati più piccoli, potrebbe essere più economico acquistare tre server commodity anziché un singolo server con più potenza.

Un altro vantaggio chiave è che l'aggiunta di alta disponibilità è più semplice; sei già a metà strada distribuendo i tuoi dati. Se si replicano i propri dati una o due volte su altri server nel cluster, i dati saranno ancora accessibili, anche se uno dei server si arresta in modo anomalo, brucia e muore.

Non tutti i database open source supportano l'alta disponibilità a meno che non si acquisti la versione supportata e pagata del database dalla società che lo sviluppa.

Un'eccezione alla regola altamente distribuibile è quella dei database di grafici. Per rispondere efficacemente a determinate query di grafici in modo tempestivo, i dati devono essere archiviati su un singolo server. Nessuno ha ancora risolto questo particolare problema.

Valuta attentamente se hai bisogno di un negozio triplo o di un negozio di grafici. I negozi tripli sono generalmente distribuibili, mentre i negozi di grafici no. Quale è necessario dipende dalle query che è necessario supportare.

Caratteristiche comuni di NoSQL - dummies

Scelta dell'editore

Vantaggi di base della rete - manichini

Vantaggi di base della rete - manichini

Se la verità viene detta, le reti di computer sono un problema da impostare. Perché i vantaggi di avere una rete rendono la pena di crearne uno utile. Non è necessario essere un dottorato di ricerca per comprendere i vantaggi del networking. Le reti riguardano esclusivamente la condivisione. Nello specifico, le reti riguardano la condivisione di tre elementi: informazioni, risorse, ...

Biometria L'accettazione, la privacy e la legge - manichini

Biometria L'accettazione, la privacy e la legge - manichini

La tecnologia biometrica non è affatto universalmente accettata da tutti gli utenti. Ci sono una serie di considerazioni sociali e legali che danno ad ogni organizzazione una pausa prima di fare il salto a capofitto nell'implementazione di un sistema biometrico. Le persone sono più a loro agio con i sistemi di raccolta biometrici che sono i meno intrusivi. Scanner per retina e nasi elettronici sono ...

Biometria Nozioni di base - manichini

Biometria Nozioni di base - manichini

La biometria non è roba da fantascienza. Puoi trovare una dozzina di modi più o meno efficaci per utilizzare la biometria per identificare qualcuno, ognuno dei quali si divide in due classi: la biometria fisiologica misura una parte specifica della struttura o della forma di una porzione del corpo di un soggetto. La biometria comportamentale è più interessata a come ...

Scelta dell'editore

Come creare un nuovo dizionario personalizzato in Excel 2007 - dummies

Come creare un nuovo dizionario personalizzato in Excel 2007 - dummies

In Excel 2007, è possibile creare dizionari personalizzati da utilizzare quando si esegue il controllo ortografico dei fogli di lavoro. Utilizzare il pulsante Aggiungi al dizionario nella finestra di dialogo Controllo ortografico per aggiungere parole sconosciute a un dizionario personalizzato. Per impostazione predefinita, Excel aggiunge queste parole a un file dizionario personalizzato denominato CUSTOM. DIC, ma è possibile creare una nuova personalizzazione ...

Come creare un componente aggiuntivo da un file di cartella di lavoro Excel Excel normale in VBA - modi di dire

Come creare un componente aggiuntivo da un file di cartella di lavoro Excel Excel normale in VBA - modi di dire

Sebbene sia possibile convertire qualsiasi cartella di lavoro di Excel in un componente aggiuntivo, non tutte le cartelle di lavoro traggono vantaggio da questa conversione. Una cartella di lavoro senza macro rende un componente aggiuntivo inutile. In effetti, gli unici tipi di cartelle di lavoro che traggono vantaggio dall'essere convertiti in un componente aggiuntivo sono quelli con macro. Ad esempio, una cartella di lavoro costituita da macro generiche (Sub ...

Come creare una nuova cartella di lavoro in Excel 2010 - dummy

Come creare una nuova cartella di lavoro in Excel 2010 - dummy

Se si lavora in Microsoft Excel 2010 e vuoi iniziare a lavorare in un nuovo file di cartella di lavoro di Excel, puoi facilmente creare una nuova cartella di lavoro. Per fare ciò, puoi usare un comando nella scheda File o una scorciatoia da tastiera. Fare clic sulla scheda File. Excel visualizza la visualizzazione Backstage, in cui è possibile accedere ai comandi relativi ai file. ...

Scelta dell'editore

Usa lo strumento Gomma in Adobe Illustrator CS5 - manichini

Usa lo strumento Gomma in Adobe Illustrator CS5 - manichini

Adobe Illustrator Creative Suite 5 (Adobe CS5) Illustrator è utilizzato per rimuovere rapidamente aree di grafica con la stessa facilità con cui si cancellano i pixel in Photoshop, accarezzando con il mouse su qualsiasi forma o gruppo di forme. Facendo doppio clic sullo strumento Gomma, è possibile definire il diametro, l'angolo e la rotondità della gomma. Se stai usando un ...

Trasforma gli strumenti in Adobe Illustrator CS5 - dummies

Trasforma gli strumenti in Adobe Illustrator CS5 - dummies

I più popolari strumenti di trasformazione in Adobe Creative Suite 5 (Adobe CS5) Illustrator - Rifletti, scala, inclina, rimodella e Trasformazione libera: sono facili da usare e modificano rapidamente la tua illustrazione. Lo strumento Rifletti Niente è simmetrico, giusto? Forse no, ma gli oggetti non creati simmetricamente in Illustrator possono sembrare off-kilter. Utilizzando lo strumento Rifletti, si ...

Quando utilizzare Adobe CS5 Illustrator - dummies

Quando utilizzare Adobe CS5 Illustrator - dummies

Utilizzando Adobe Creative Suite 5 (Adobe CS5) Illustrator anziché Photoshop , ottieni diversi benefici. Potresti aver sentito che Illustrator è migliore per la grafica vettoriale, ma perché e che altro porta? Illustrator può salvare ed esportare immagini nella maggior parte dei formati di file. Scegliendo di salvare o esportare, è possibile creare un ...