# Cosa sono i CLOB (Character Large Objects)?

In genere i **database** nell’archiviare i dati procedono nel seguente modo: le singole colonne della tabella sono raggruppate in righe, che a loro volta sono raggruppate in blocchi di dati. In ciascun **blocco di dati a una singola riga è quindi attribuita una determinata informazione**. In tale forma l’archiviazione di blocchi di dati utilizza poco spazio di archiviazione nel database.

Tuttavia gli oggetti di dati particolarmente grandi sono elaborati in modo diverso dai database. Questi cosiddetti **Large Objects (LOB)** sono molto più grandi rispetto alle normali voci dei database, inoltre non sono strutturati e pertanto nella maggioranza dei casi usufruiscono di una locazione di memoria separata. Il database quindi esegue solo un riferimento alla posizione effettiva dell’oggetto nella posizione appropriata.

Esistono due tipi di LOB, il BLOB e il CLOB. Il [BLOB](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/binary-large-object/ "Binary Large Object") è un tipo di dati che memorizza oggetti di grandi dimensioni in forma binaria, mentre il **formato di file CLOB memorizza lunghe stringhe di caratteri**. L’abbreviazione significa “**C**haracter **L**arge **Ob**jects” (in italiano “oggetti di grandi dimensioni con caratteri”), termine coniato dagli sviluppatori del database Oracle. In altri sistemi di database esistono anche denominazioni alternative per gli oggetti di grandi dimensioni come ad esempio TEXT in [MySQL](https://www.ionos.it/digitalguide/server/know-how/imparare-a-utilizzare-mysql-guida-per-principianti/ "Imparare a utilizzare MySQL: guida per principianti") e [PostgreSQL](https://www.ionos.it/digitalguide/server/know-how/postgresql/ "PostgreSQL"). Ma cosa sono esattamente i CLOB?

## Come funzionano i CLOB e a cosa servono?

In quanto **Character Large Objects** tutti gli oggetti del database possono essere organizzati in stringhe di caratteri, in altre parole tutti gli oggetti che contengono file, costituiti da caratteri. Le stringhe di caratteri sono sequenze di lettere, numeri, caratteri speciali e caratteri di controllo, e pertanto le **voci CLOB** di solito si riferiscono a file di testo (in particolare XML). La particolarità dell’archiviazione di questi tipi di dati di grandi dimensioni è che, a parte alcune eccezioni, essi non sono **archiviati** direttamente nel database ma **in una posizione separata**. Nel sistema stesso del database esiste soltanto un **meccanismo di riferimento** che richiama il relativo CLOB. Così ad esempio in una singola riga del database non c’è l’intero codice carattere di un sito web, ma solo un numero di riferimento che rimanda all’effettiva locazione di memoria del documento HTML che ne è alla base.

## Vantaggi e svantaggi della memorizzazione CLOB

Uno dei maggiori **vantaggi** del tipo di dati CLOB è la **capacità di leggere e modificare** singoli file. Ad esempio gli amministratori di database, con l’ausilio di programmi applicativi, possono confrontare, modificare o unificare il contenuto dei Character Large Objects memorizzati. Ecco una breve panoramica delle opzioni di modifica:

- **SUBSTR** consente agli utenti di estrarre sequenze di caratteri da un CLOB
- **INSTR** incolla stringhe ritagliate in un’altra posizione o in altri CLOB
- **COMPARE** confronta i valori di due CLOB
- **APPEND** collega insieme due CLOB

Dato che i **CLOB salvano completamente i documenti con testo o caratteri**, il loro contenuto può essere controllato in modo molto preciso. Gli amministratori possono stabilire con certezza se i contenuti sono doppi o se parti di testo si sovrappongono. In tal caso i record possono essere unificati per liberare spazio di archiviazione inutilmente utilizzato.

Inoltre la memorizzazione CLOB di lettere, numeri, caratteri speciali e caratteri di controllo avviene **assolutamente senza perdita di dati**: spesso durante un salvataggio è importante ricordare che proprio tutti i dati di un documento devono essere archiviati, il che non è un problema con questo formato di dati. Ad esempio è possibile salvare come CLOB anche i metadati di un documento insieme con il contenuto effettivo. La maggior parte dei database supporta persino la visualizzazione dei Character Large Objects in una struttura ad albero, nonché la navigazione e la ricerca di componenti specifici.

Il fatto che alcuni database **non** consentono **la modifica tramite le note funzioni SQL** è uno degli **svantaggi** di questo tipo di dati per l’archiviazione di enormi quantità di caratteri. Dato che i CLOB memorizzano quantitativi di testo particolarmente grandi l’esecuzione delle funzioni standard potrebbe richiedere anche molto tempo. Tuttavia, almeno i comandi dell’applicazione precedentemente menzionati SUBSTR, INSTR, COMPARE e APPEND sono disponibili come opzioni alternative per replicare operazioni SQL non funzionali. Ecco un altro svantaggio dei CLOB: **elementi di dati relativamente piccoli sprecano prezioso spazio di archiviazione** poiché per l’archiviazione all’esterno del database è riservato uno spazio frammentato, chiaramente definito.


This is a markdown version of: [https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/character-large-object/](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/character-large-object/) for AI/LLM consumption.