Mentre la maggior parte dei database di­stri­bui­sco­no le in­for­ma­zio­ni su righe, i sistemi di gestione di basi di dati orientati alle colonne procedono esat­ta­men­te al contrario: i dati vengono ripartiti su colonne. Che senso ha tutto ciò? Sco­pri­re­te qui di seguito i vantaggi di questi database de­no­mi­na­ti anche database colonnari.

Come sono strut­tu­ra­ti i sistemi di gestione di basi di dati orientati alle colonne?

In genere i database sono orientati alle righe: il sistema di gestione di basi di dati (DBMS) crea una riga per ogni voce. Pertanto i campi, con le ri­spet­ti­ve in­for­ma­zio­ni, sono elencati uno dopo l’altro. So­prat­tut­to i database re­la­zio­na­li si basano su questo principio. I sistemi di gestione di basi di dati orientati alle colonne ca­po­vol­go­no questo sistema. In essi ogni colonna rap­pre­sen­ta una voce: i dati relativi a ciascuna voce sono disposti uno sotto l’altro (e non uno accanto all’altro come nella variante orientata alle righe).

A titolo il­lu­stra­ti­vo ecco un esempio di sistema orientato alle righe:

Numero Cognome Nome Chiave
1 Skywalker Luke 3FN-Z768
2 Kenobi Obi-wan 7TR-K345
3 Organa Leia 8NN-R266

Il database colonnare sposta l’or­di­na­men­to degli elementi della stessa tabella nel modo seguente:

Numero 1 2 3
Cognome Skywalker Kenobi Organa
Nome Luke Obi-wan Leia
Chiave 3FN-Z768 7TR-K345 8NN-R266

Sul disco rigido, tuttavia, i dati si pre­sen­ta­no mo­no­di­men­sio­na­li e vengono, dunque, rap­pre­sen­ta­ti con­se­cu­ti­va­men­te. Per i database orientati alle righe ciò significa:

1, Skywalker, Luke, 3FN-Z768; 2, Kenobi, Obi-wan, 7TR-K345; 3, Organa, Leia, 8NN-R266

Anche il sistema di gestione di basi di dati orientato alle colonne memorizza le in­for­ma­zio­ni una dopo l’altra, ma il diverso orien­ta­men­to comporta anche un diverso ordine dei dati:

1, 2, 3; Skywalker, Kenobi, Organa; Luke, Obi-wan, Leia; 3FN-Z768, 7TR-K345, 8NN-R266
Consiglio

Oltre ai sistemi di gestione di basi di dati orientati alle colonne esistono altre al­ter­na­ti­ve al modello classico. I database NoSQL oppure la loro sot­to­ca­te­go­ria di database orientati ai documenti e gli analoghi database chiave -valore sono sempre più al centro dell’at­ten­zio­ne. Anche i database a grafo sono sempre più popolari, poiché con­sen­to­no di mappare ot­ti­ma­men­te dati altamente in­ter­con­nes­si.

Settori d’impiego dei sistemi di gestione di basi di dati orientati alle colonne

I sistemi re­la­zio­na­li basati su righe sono uti­liz­za­ti so­prat­tut­to quando si devono ef­fet­tua­re ve­lo­ce­men­te molte ope­ra­zio­ni, come scrivere, mo­di­fi­ca­re o eliminare voci. I database colonnari, invece, sono uti­liz­za­ti quando devono essere ana­liz­za­te grandi quantità di dati.

In molti campi di ap­pli­ca­zio­ne, ad esempio nella ricerca, ma non solo, si elaborano dati di continuo. Ciò avviene molto più ve­lo­ce­men­te con un sistema a colonne in cui gli accessi al disco fisso sono limitati. I dati di una categoria sono vicini tra loro, per cui se si desidera leggere e valutare un insieme di dati è suf­fi­cien­te caricare un blocco. Non è ne­ces­sa­rio scan­sio­na­re l’intero database per trovare le in­for­ma­zio­ni ar­chi­via­te.

Vantaggi e svantaggi di un database colonnare

I vantaggi dei sistemi di gestione di basi di dati orientati alle colonne emergono no­te­vol­men­te nell’analisi di grandi quantità di dati, dunque dei big data. Dato che nella lettura di ogni database l’accesso al disco fisso rap­pre­sen­ta il collo di bottiglia, e poiché tale accesso in un database colonnare è più ef­fi­cien­te, la variante basata su colonne guadagna terreno.

Per le ap­pli­ca­zio­ni tran­sa­zio­na­li, tuttavia, l’accesso è nella maggior parte dei casi diverso: qui devono essere di­stri­bui­te nuove in­for­ma­zio­ni nell’intero database. Per svolgere questo compito un database a colonne agirebbe len­ta­men­te, come il modello classico.

Un altro vantaggio dei sistemi di gestione di basi di dati orientati alle colonne sono le pos­si­bi­li­tà di com­pres­sio­ne. I dati di una colonna sono sempre dello stesso tipo, ad esempio una stringa (sequenza di caratteri) o un integer (numeri interi). Poiché tutte le voci di un tipo sono vicine tra loro, possono essere compresse in modo più ef­fi­cien­te.

I più noti sistemi di gestione di basi di dati orientati alle colonne

I sistemi di gestione di basi di dati su colonne sono già in uso da un tempo re­la­ti­va­men­te lungo, tuttavia il numero delle im­ple­men­ta­zio­ni di­spo­ni­bi­li rimane ancora basso, sem­pli­ce­men­te perché il fab­bi­so­gno di database re­la­zio­na­li è maggiore. Alcuni sistemi sono comunque riusciti ad af­fer­mar­si.

  • Amazon Redshift: nell’ambito di Amazon Web Services (AWS), Redshift offre un data warehouse orientato alle colonne per big data.
  • MariaDB-Co­lumn­Sto­re: anche il DBMS MariaDB open source (fork di MySQL) con il Co­lumn­Sto­re offre una com­bi­na­zio­ne di database orientato alle colonne e re­la­zio­na­le.
  • SAP HANA: la piat­ta­for­ma di sviluppo di SAP utilizza altresì una com­bi­na­zio­ne di database re­la­zio­na­le e orientato alle colonne.
  • Apache Cassandra: questo software gratuito si basa su Apache Hadoop ed è scritto in Java.
  • MonetDB: questo software open-source è stato svi­lup­pa­to con par­ti­co­la­re at­ten­zio­ne al data mining.
Vai al menu prin­ci­pa­le