Key Value Store: come funzionano i database chiave-valore?

Il settore IT utilizza un’ampia varietà di database. Particolarmente diffusi sono i modelli relazionali in quanto consentono un buon collegamento in rete delle informazioni. Ma ne esistono anche altri tipi, che offrono vantaggi speciali e potrebbero quindi essere una scelta migliore in determinate situazioni: database NoSQL, database orientati ai documenti, database orientati alle colonne o database a grafo. Inoltre vi sono anche i cosiddetti Key Value Database, nei quali un principio semplice porta a prestazioni enormi.

Che cos’è un Key Value Store?

Il database chiave-valore si basa su una tabella con solo due colonne: una contiene il valore, l’altra contiene una chiave, un identificatore univoco. Un valore può assumere forme diverse: sono quindi possibili valori molto semplici come stringhe o numeri interi, ma anche oggetti complessi possono comparire come valori nel database. Ad esempio anche un documento può assumere la funzione o il ruolo del valore, nel qual caso si parla dunque di un database orientato ai documenti. Anche i riferimenti ai file possono essere inseriti nel database. È possibile Inoltre implementare le tuple, ovvero le raccolte di valori.

I valori di un database non devono essere uniformi. È possibile ospitare oggetti diversi nella stessa colonna. Lo stesso vale per gli identificatori univoci. Nella maggior parte dei casi la chiave seguirà probabilmente un determinato schema, ma in linea di principio ciò non è necessario. Anche in questo caso stringhe e numeri interi possono essere realizzati in base a un criterio qualsiasi.

Fatto

I Key Value Store si presentano come database in memory (ad es. nella memoria RAM) e soluzioni su disco (ad es. nello spazio su disco rigido).

Vantaggi e usi del Key Value Database

I vantaggi dei database chiave-valore sono la performance elevata e la scalabilità flessibile. Entrambi derivano dalla struttura semplice del modello. Dato che il Key Value Store non richiede o non pretende uno schema omogeneo, è possibile apportare modifiche al database continuamente. È quindi possibile introdurre un nuovo campo durante lo svolgimento contemporaneo di attività in altre voci.

Questo modello di database consente una velocità elevata grazie alla sua semplice combinazione di chiave e valore: se si desidera recuperare informazioni, si accede direttamente al valore tramite la chiave specifica. I dati sono direttamente disponibili. Ma questo è allo stesso tempo anche uno degli svantaggi del Key Value Store, in quanto in realtà non è previsto un altro metodo di accesso. In particolare i database relazionali consentono invece query complesse. Il contenuto di questi database può essere cercato in vari modi. Al contrario, in un Key Value Store è previsto solo l’accesso tramite la chiave. In genere si deve rinunciare ad altri indicatori e a funzioni di consultazione.

Le aree di applicazione dei Key Value Store sono determinate sia dai vantaggi che dalle limitazioni dei database. Ogni qualvolta sono richiesti tempi di accesso rapidi con grandi quantità di dati, vengono utilizzati i database chiave-valore. Esempi di simili applicazioni sono i carrelli degli acquisti online o i dati di sessione, dove le informazioni sono chiaramente assegnate e devono essere disponibili nel più breve tempo possibile. Per i siti di grandi dimensioni e popolari, questi database devono costantemente creare nuove voci ed eliminare quelle obsolete. I database chiave-valore sono perfettamente adatti a questo scopo.

Database chiave-valore noti

Oggi ci sono diversi sistemi di gestione di basi di dati (DBMS) che si basano su un database chiave-valore.

  • Amazon DynamoDB: il DBMS proprietario fa parte di Amazon Web Services (AWS) e può essere utilizzato anche come database orientato ai documenti.
  • Berkeley DB: questo DBMS è sviluppato da Oracle e offre interfacce per i vari linguaggi di programmazione.
  • Redis: il progetto open-source Redis è uno dei DBMS più diffusi ed è stato utilizzato all’inizio da Instagram e GitHub.
  • Riak: il DBMS Riak è disponibile in una versione open-source, come soluzione aziendale o sotto forma di memoria cloud.
  • Voldemort: il DBMS distribuito viene utilizzato e promosso tra gli altri da LinkedIn.