Il termine BLOB si riferisce prin­ci­pal­men­te a database e progetti open source. È uti­liz­za­to per indicare la me­mo­riz­za­zio­ne di file binari, cioè file che possono contenere non solo caratteri stam­pa­bi­li, ma anche modelli di bit casuali. Esempi tipici di tali oggetti sono file di immagini e audio, file compressi o dati per fogli di calcolo. Per l’utilizzo corretto di Binary Large Object è ne­ces­sa­rio ri­spet­ta­re de­ter­mi­na­te procedure. In questo articolo vi spie­ghia­mo quali, partendo dalla spie­ga­zio­ne di un BLOB, le sue proprietà e i vantaggi e gli svantaggi della sua ap­pli­ca­zio­ne.

Che cos’è un BLOB (Binary Large Object)?

L’ab­bre­via­zio­ne inglese BLOB sta per Binary Large Object (in italiano “oggetti di dati binari di grandi di­men­sio­ni”): i BLOB si di­stin­guo­no dai CLOBs (Character Large Objects), anch’essi oggetti di grandi di­men­sio­ni, ma co­sti­tui­ti da stringhe di caratteri.

Come già accennato, i tipici oggetti binari di grandi di­men­sio­ni includono file audio e immagini, così come file di archivio o dati di fogli di calcolo. Anche i video sono clas­si­fi­ca­ti come BLOB, motivo per cui i file binari possono avere di­men­sio­ni di diverse centinaia di Gigabyte. L’inventore Jim Starkey ha spiegato nel 1997 che il termine BLOB si è diffuso solo suc­ces­si­va­men­te come acronimo di Binary Large Object perché il nome BLOB era troppo poco pro­fes­sio­na­le per scopi di marketing.

I BLOB nei database

I BLOB nei database ri­chie­do­no un trat­ta­men­to speciale. Queste speciali tipologie di dati sono in­di­spen­sa­bi­li. I database non sono in grado di leggere o com­pren­de­re il contenuto non strut­tu­ra­to dei BLOB, ma possono me­mo­riz­zar­lo nel suo complesso. Solo il nome, il tipo e la di­men­sio­ne dei BLOB possono essere letti dal database; le altre funzioni, come clas­si­fi­ca­re, filtrare e ricercare de­ter­mi­na­ti contenuti, non sono possibili.

N.B.

La dif­fe­ren­za tra dati strut­tu­ra­ti e non strut­tu­ra­ti è che i primi hanno uno schema chiaro. Tutte le in­for­ma­zio­ni dei dati strut­tu­ra­ti possono essere vi­sua­liz­za­te nei ri­spet­ti­vi campi del database. I dati non strut­tu­ra­ti, invece, non con­sen­to­no di trarre con­clu­sio­ni sul contenuto, ma rivelano esclu­si­va­men­te il tipo di dati.

I Binary Large Object sono me­mo­riz­za­ti da diversi tipi di database in modi diversi. Poiché la struttura dei database spesso non è adeguata alla me­mo­riz­za­zio­ne diretta dei BLOB, essi vengono ester­na­liz­za­ti. A tale scopo, il database stesso contiene solo un ri­fe­ri­men­to dove il file ester­na­liz­za­to viene ef­fet­ti­va­men­te me­mo­riz­za­to. A seconda del par­ti­co­la­re sistema di database, ci sono anche termini al­ter­na­ti­vi per nominare gli oggetti binari di grandi di­men­sio­ni, con alcune soluzioni come MySQL che danno anche nomi diversi per file di di­men­sio­ni par­ti­co­la­ri. Alcuni dei sistemi più noti, inclusi i termini per oggetti binari di grandi di­men­sio­ni, sono mostrati nella tabella seguente:

Database Tipo di dati
MySQL Fino a 0,255kb: TI­NY­BLOB­Fi­no a 64kb: BLOBFino a 16MB: ME­DIUM­BLOB­Fi­no a 4GB: LONGBLOB
Post­gre­SQL BYTEA e Object Iden­ti­fier
Oracle BLOB
DB2 BLOB
Microsoft SQL Server binary, varbinary, text, ntext

Dove si uti­liz­za­no i BLOB?

I BLOB sono uti­liz­za­ti prin­ci­pal­men­te nell’industria del big data. I dati grezzi di massa raccolti dai vi­si­ta­to­ri del sito web sono rag­grup­pa­ti sotto forma di raccolte di dati e me­mo­riz­za­ti in database in tutto il mondo. Questi dati grezzi non pre­sen­ta­no alcun tipo di schema e rap­pre­sen­ta­no il metodo di raccolta più semplice per i sistemi di database. I BLOB possono anche essere uti­liz­za­ti per me­mo­riz­za­re film o programmi te­le­vi­si­vi in database in forma criptata.

Oggetti binari di grandi di­men­sio­ni sono richiesti anche in ambiente open source: per im­po­sta­zio­ne pre­de­fi­ni­ta tutti i com­po­nen­ti di un progetto open source possono essere generati da un codice sorgente pub­bli­ca­men­te ac­ces­si­bi­le, ma non è sempre così. In vari casi sono inclusi anche elementi pro­prie­ta­ri (in par­ti­co­la­re i driver dei di­spo­si­ti­vi), di­spo­ni­bi­li esclu­si­va­men­te in forma binaria. Il termine “BLOB” si è affermato anche per questi dati, anche se l’in­clu­sio­ne di questi oggetti in progetti open source è piuttosto con­tro­ver­sa.

Vantaggi e svantaggi dei Binary Large Objects

L’op­por­tu­ni­tà di uti­liz­za­re i BLOB per un progetto deve essere con­si­de­ra­ta per ogni caso specifico, per con­si­de­rar­ne i vantaggi e gli svantaggi.

Vantaggi Svantaggi
I BLOB offrono una buona pos­si­bi­li­tà di integrare dati binari di grandi di­men­sio­ni in un database e possono essere fa­cil­men­te con­sul­ta­bi­li Non tutti i database con­sen­to­no l’uso di BLOB
I diritti di accesso possono essere fa­cil­men­te impostati dalla gestione dei diritti I BLOB sono inef­fi­cien­ti a causa della quantità di spazio su disco richiesto e del tempo di accesso
Tutti i dati sono contenuti in backup o dump di database La creazione di backup richiede molto tempo a causa delle di­men­sio­ni dei file dei BLOB
Vai al menu prin­ci­pa­le