# Descrizione del sistema di gestione di basi di dati orientato alle colonne

Mentre la maggior parte dei [database](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/database/ "Database") distribuiscono le informazioni su righe, i sistemi di gestione di basi di dati orientati alle colonne procedono esattamente al contrario: i dati vengono ripartiti su colonne. Che senso ha tutto ciò? Scoprirete qui di seguito i vantaggi di questi database denominati anche database colonnari.

## Come sono strutturati 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 rispettive informazioni, sono elencati uno dopo l’altro. Soprattutto [i database relazionali](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/database-relazionale/ "Database relazionale") si basano su questo principio. I sistemi di gestione di basi di dati orientati alle colonne capovolgono questo sistema. In essi **ogni colonna rappresenta 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 illustrativo ecco un esempio di sistema orientato alle righe:

<table>
  <thead>
    <tr>
      <th>Numero</th>
      <th>Cognome</th>
      <th>Nome</th>
      <th>Chiave</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Skywalker</td>
      <td>Luke</td>
      <td>3FN-Z768</td>
    </tr>
    <tr>
      <td>2</td>
      <td>Kenobi</td>
      <td>Obi-wan</td>
      <td>7TR-K345</td>
    </tr>
    <tr>
      <td>3</td>
      <td>Organa</td>
      <td>Leia</td>
      <td>8NN-R266</td>
    </tr>
  </tbody>
</table>

Il database colonnare sposta l’ordinamento degli elementi della stessa tabella nel modo seguente:

<table>
  <thead>
    <tr>
      <th>Numero</th>
      <th>1</th>
      <th>2</th>
      <th>3</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Cognome</td>
      <td>Skywalker</td>
      <td>Kenobi</td>
      <td>Organa</td>
    </tr>
    <tr>
      <td>Nome</td>
      <td>Luke</td>
      <td>Obi-wan</td>
      <td>Leia</td>
    </tr>
    <tr>
      <td>Chiave</td>
      <td>3FN-Z768</td>
      <td>7TR-K345</td>
      <td>8NN-R266</td>
    </tr>
  </tbody>
</table>

Sul disco rigido, tuttavia, i dati si presentano **monodimensionali** e vengono, dunque, rappresentati consecutivamente. Per i database orientati alle righe ciò significa:

```none
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 informazioni una dopo l’altra, ma il diverso orientamento comporta anche un **diverso ordine dei dati**:

```none
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 alternative al modello classico. [I database NoSQL](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/nosql/ "NoSQL") oppure la loro sottocategoria di [database orientati ai documenti](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/database-orientati-ai-documenti/ "Database orientati ai documenti") e gli analoghi [database chiave -valore](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/key-value-store/ "Key Value Store") sono sempre più al centro dell’attenzione. Anche [i database a grafo](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/database-a-grafo/ "Database a grafo") sono sempre più popolari, poiché consentono di mappare ottimamente dati altamente interconnessi.

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

I sistemi relazionali basati su righe sono utilizzati soprattutto quando si devono effettuare velocemente molte **operazioni**, come scrivere, modificare o eliminare voci. I database colonnari, invece, sono utilizzati quando devono essere **analizzate grandi quantità di dati**.

In molti campi di applicazione, ad esempio nella ricerca, ma non solo, si elaborano dati di continuo. Ciò avviene molto più velocemente 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 è sufficiente caricare un blocco. Non è necessario scansionare l’intero database per trovare le informazioni archiviate.

## Vantaggi e svantaggi di un database colonnare

I vantaggi dei sistemi di gestione di basi di dati orientati alle colonne emergono notevolmente nell’**analisi di grandi quantità di dati**, dunque dei [big data](https://www.ionos.it/digitalguide/online-marketing/analisi-web/cosa-sono-i-big-data/ "Cosa sono i Big Data?"). Dato che nella lettura di ogni database l’accesso al disco fisso rappresenta il collo di bottiglia, e poiché tale accesso in un database colonnare è più efficiente, la variante basata su colonne guadagna terreno.

Per le **applicazioni transazionali**, tuttavia, l’accesso è nella maggior parte dei casi diverso: qui devono essere distribuite nuove informazioni nell’intero database. Per svolgere questo compito un database a colonne agirebbe lentamente, come il modello classico.

Un altro vantaggio dei sistemi di gestione di basi di dati orientati alle colonne sono le possibilità di **compressione**. 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ù efficiente.

## 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 relativamente lungo, tuttavia il numero delle implementazioni disponibili rimane ancora basso, semplicemente perché il fabbisogno di database relazionali è maggiore. Alcuni sistemi sono comunque riusciti ad affermarsi.

- **Amazon Redshift**: nell’ambito di Amazon Web Services (AWS), Redshift offre un data warehouse orientato alle colonne per big data.
- **MariaDB-ColumnStore**: anche il DBMS MariaDB open source (fork di MySQL) con il ColumnStore offre una combinazione di database orientato alle colonne e relazionale.
- **SAP HANA**: la piattaforma di sviluppo di SAP utilizza altresì una combinazione di database relazionale e orientato alle colonne.
- **Apache Cassandra**: questo software gratuito si basa su [Apache Hadoop](https://www.ionos.it/digitalguide/server/know-how/apache-hadoop-il-framework-per-i-big-data/) ed è scritto in Java.
- **MonetDB**: questo software open-source è stato sviluppato con particolare attenzione al [data mining](https://www.ionos.it/digitalguide/online-marketing/analisi-web/data-mining-metodi-di-analisi-per-i-big-data/).


This is a markdown version of: [https://www.ionos.it/digitalguide/hosting/tecniche-hosting/sistema-di-gestione-di-basi-di-dati-orientato-alle-colonne/](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/sistema-di-gestione-di-basi-di-dati-orientato-alle-colonne/) for AI/LLM consumption.