In genere i database nell’ar­chi­via­re i dati procedono nel seguente modo: le singole colonne della tabella sono rag­grup­pa­te in righe, che a loro volta sono rag­grup­pa­te in blocchi di dati. In ciascun blocco di dati a una singola riga è quindi at­tri­bui­ta una de­ter­mi­na­ta in­for­ma­zio­ne. In tale forma l’ar­chi­via­zio­ne di blocchi di dati utilizza poco spazio di ar­chi­via­zio­ne nel database.

Tuttavia gli oggetti di dati par­ti­co­lar­men­te grandi sono elaborati in modo diverso dai database. Questi co­sid­det­ti Large Objects (LOB) sono molto più grandi rispetto alle normali voci dei database, inoltre non sono strut­tu­ra­ti e pertanto nella mag­gio­ran­za dei casi usu­frui­sco­no di una locazione di memoria separata. Il database quindi esegue solo un ri­fe­ri­men­to alla posizione effettiva del­l'og­get­to nella posizione ap­pro­pria­ta.

Esistono due tipi di LOB, il BLOB e il CLOB. Il BLOB è un tipo di dati che memorizza oggetti di grandi di­men­sio­ni in forma binaria, mentre il formato di file CLOB memorizza lunghe stringhe di caratteri. L’ab­bre­via­zio­ne significa “Character Large Objects” (in italiano “oggetti di grandi di­men­sio­ni con caratteri”), termine coniato dagli svi­lup­pa­to­ri del database Oracle. In altri sistemi di database esistono anche de­no­mi­na­zio­ni al­ter­na­ti­ve per gli oggetti di grandi di­men­sio­ni come ad esempio TEXT in MySQL e Post­gre­SQL. Ma cosa sono esat­ta­men­te i CLOB?

Come fun­zio­na­no i CLOB e a cosa servono?

In quanto Character Large Objects tutti gli oggetti del database possono essere or­ga­niz­za­ti in stringhe di caratteri, in altre parole tutti gli oggetti che con­ten­go­no file, co­sti­tui­ti 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 ri­fe­ri­sco­no a file di testo (in par­ti­co­la­re XML). La par­ti­co­la­ri­tà dell’ar­chi­via­zio­ne di questi tipi di dati di grandi di­men­sio­ni è che, a parte alcune eccezioni, essi non sono ar­chi­via­ti di­ret­ta­men­te nel database ma in una posizione separata. Nel sistema stesso del database esiste soltanto un mec­ca­ni­smo di ri­fe­ri­men­to 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 ri­fe­ri­men­to che rimanda all’effettiva locazione di memoria del documento HTML che ne è alla base.

Vantaggi e svantaggi della me­mo­riz­za­zio­ne CLOB

Uno dei maggiori vantaggi del tipo di dati CLOB è la capacità di leggere e mo­di­fi­ca­re singoli file. Ad esempio gli am­mi­ni­stra­to­ri di database, con l’ausilio di programmi ap­pli­ca­ti­vi, possono con­fron­ta­re, mo­di­fi­ca­re o unificare il contenuto dei Character Large Objects me­mo­riz­za­ti. Ecco una breve pa­no­ra­mi­ca delle opzioni di modifica:

  • SUBSTR consente agli utenti di estrarre sequenze di caratteri da un CLOB
  • INSTR incolla stringhe ri­ta­glia­te 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 com­ple­ta­men­te i documenti con testo o caratteri, il loro contenuto può essere con­trol­la­to in modo molto preciso. Gli am­mi­ni­stra­to­ri possono stabilire con certezza se i contenuti sono doppi o se parti di testo si so­vrap­pon­go­no. In tal caso i record possono essere unificati per liberare spazio di ar­chi­via­zio­ne inu­til­men­te uti­liz­za­to.

Inoltre la me­mo­riz­za­zio­ne CLOB di lettere, numeri, caratteri speciali e caratteri di controllo avviene as­so­lu­ta­men­te senza perdita di dati: spesso durante un sal­va­tag­gio è im­por­tan­te ricordare che proprio tutti i dati di un documento devono essere ar­chi­via­ti, 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 vi­sua­liz­za­zio­ne dei Character Large Objects in una struttura ad albero, nonché la na­vi­ga­zio­ne e la ricerca di com­po­nen­ti specifici.

Il fatto che alcuni database non con­sen­to­no la modifica tramite le note funzioni SQL è uno degli svantaggi di questo tipo di dati per l’ar­chi­via­zio­ne di enormi quantità di caratteri. Dato che i CLOB me­mo­riz­za­no quan­ti­ta­ti­vi di testo par­ti­co­lar­men­te grandi l’ese­cu­zio­ne delle funzioni standard potrebbe ri­chie­de­re anche molto tempo. Tuttavia, almeno i comandi del­l'ap­pli­ca­zio­ne pre­ce­den­te­men­te men­zio­na­ti SUBSTR, INSTR, COMPARE e APPEND sono di­spo­ni­bi­li come opzioni al­ter­na­ti­ve per replicare ope­ra­zio­ni SQL non fun­zio­na­li. Ecco un altro svan­tag­gio dei CLOB: elementi di dati re­la­ti­va­men­te piccoli sprecano prezioso spazio di ar­chi­via­zio­ne poiché per l’ar­chi­via­zio­ne all’esterno del database è riservato uno spazio fram­men­ta­to, chia­ra­men­te definito.

Vai al menu prin­ci­pa­le