Cosa sono e classificazione dei database non relazionali

Cosa sono e classificazione dei database non relazionali

Database non relazionale

I sistemi di gestione di basi di dati relazionali oggi sono la tecnologia predominante per la memorizzare di dati strutturati per applicazioni web e aziendali. Negli ultimi anni però una serie di nuovi sistemi sono stati progettati per fornire una buona scalabilità orizzontale al fine di ottenere elevate prestazioni nelle operazioni di scrittura/lettura su database distribuiti su più server, in contrasto con i database tradizionali che hanno poche possibilità di essere scalabili orizzontalmente.
Molti di questi nuovi sistemi sono chiamati NoSQL data stores (o database non relazionale). La definizione di NoSQL, che sta per “Not Only SQL” o “Not Relational”, fu usata per la prima volta nell’anno 1998 per una base di dati relazionale open source che non usava un’interfaccia SQL. Il termine fu reintrodotto nel 2009 dall’impiegato di Rackspace, Eric Evans, quando Johan Oskarsson di Last.fm volle organizzare un evento per discutere di basi di dati distribuite open source. Il nome fu un tentativo per descrivere l’emergere di un numero consistente di sistemi di archiviazione dati distribuiti non relazionali che spesso non tentano di fornire le classiche garanzie ACID riferendosi a sistemi come MySQL, MS SQL e PostgreSQL.

NO-SQL è un movimento che negli ultimi anni si è molto affermato, producendo dei risultati soddisfacenti con la creazione di progetti e iniziative utilizzate anche su larga scala. Tale movimento vuole “rompere” la storica linea dei database relazionali e definire delle nuove linee guida per l’implementazione di database che non utilizzano il linguaggio di interrogazione SQL e non siano strettamente legati ad una definizione “rigida” dello schema dati.

Generalmente i sistemi NoSQL hanno delle caratteristiche in comune che possono essere riassunte nei seguenti punti:

  1. Abilità di scalare orizzontalmente semplici operazioni su più server, con il vantaggio di supportare un gran numero di semplici operazioni in lettura/scrittura, questo metodo di elaborazione dati è chiamato OLTP, Online Transaction Processing, che ha lo scopo di supportare un gran numero di piccole transazioni on-line, con un’elevata velocità nell’elaborazione delle interrogazioni, mantenendo l’integrità dei dati in ambienti multiaccesso e l’efficacia di esecuzione di un gran numero di transazioni al secondo;
  2. Abilità di replicare e distribuire i dati su più server;
  3. Un modello di concorrenza delle transazioni non basato sulle proprietà ACID della maggior parte dei database relazionali. Alcuni suggeriscono l’acronimo BASE (Basically, Available, Soft state, Enetually consistent). L’idea è che rinunciando ai vincoli ACID si possano ottenere prestazioni elevate e maggiore scalabilità;
  4. Un uso efficiente di indici distribuiti e RAM per la memorizzazione dei dati;
  5. Abilità di aggiungere dinamicamente nuovi attributi ai record di dati.

Classificazione dei database non relazionali

I database NoSQL possono essere implementati seguendo differenti approcci a seconda delle strutture dati con cui si rappresentano i record di dato.
Le principali categorie sono le seguenti quattro:

  1. Column-oriented database: le informazioni sono memorizzate in colonne. Non c’è bisogno di definire subito le colonne. Tipicamente sono usati nell’ambito della memorizzazione distribuita dei dati;
  2. Key/Values store: in questo caso i dati vengono immagazzinati in un elemento che contiene una chiave assieme ai dati veri e propri. É quindi del tutto analogo ad una Hash Table. Questo metodo è il più semplice da implementare, ma anche il più inefficiente se la maggior parte delle operazioni riguardano soltanto una parte di un elemento;
  3. Document store: è l’evoluzione del metodo key/value, rispetto ai normali database relazionali invece che immagazzinare i dati in tabelle con dei campi fissi, questi vengono messi in un documento (rappresentato in XML, JSON o BSON) che può contenere illimitati campi di illimitata lunghezza, così se ad esempio di una persona conosciamo solo nome e cognome, ma magari di un’altra persona anche indirizzo, data di nascita e codice fiscale, si evita che per il primo nominativo ci siano campi inutilizzati che occupano inutilmente spazio;
  4. Graph database: i dati vengono immagazzinati sotto forma di strutture a grafi, rendendo più performante l’accesso a questi da applicativi orientati agli oggetti. Tipicamente si usa nei social network.

Cosa sono e classificazione dei database non relazionali

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *