In informatica, la compressione solida (in inglese solid compression) designa un metodo di compressione dei dati applicato a file multipli, nel quale tutti i file vengono concatenati e trattati come un unico blocco di dati, compresso in un'unica operazione. Il file che ne risulta è detto archivio solido (dall'inglese solid archive), o anche archivio progressivo. Il termine deriva dal fatto che i dati sono compressi come un unico blocco solido anziché come file individuali.

La compressione solida è impiegata nativamente dai formati 7z e RAR, in entrambi i casi come alternativa facoltativa alla compressione ordinaria, nonché indirettamente dai formati basati su tar come .tar.gz e .tar.bz2. Per converso il formato ZIP non è solido, in quanto memorizza i file compressi separatamente.

Principi tecnici I formati di file compressi combinano di norma due funzioni distinte: la compressione, cioè la memorizzazione dei dati in uno spazio ridotto, e l'archiviazione, cioè la memorizzazione di più file e dei relativi metadati in un unico file. Le due operazioni possono essere combinate in due ordini diversi: comprimere i singoli file e poi archiviarli, mantenendoli distinti all'interno dell'archivio: si ottiene un semplice archivio compresso (o archivio sparso), come sono tipicamente i file ZIP; archiviare tutti i file in un unico blocco di dati e comprimere quest'ultimo: è questa la compressione solida. L'ordine è rilevante, in quanto le due operazioni non commutano.

Nei sistemi operativi Unix archiviazione e compressione sono tradizionalmente affidate a strumenti separati, il che rende evidente la distinzione: archiviare con tar file già compressi singolarmente con gzip è una pratica molto rara, mentre archiviare con tar e comprimere solo in un secondo momento l'archivio così ottenuto produce un file .tar.gz, cioè un archivio solido, in cui l'archiviazione è affidata al software tar e la compressione all'algoritmo gzip.

Caratteristiche Vantaggi Un archivio solido presenta normalmente un rapporto di compressione più elevato rispetto a un analogo archivio non solido. Il vantaggio è tanto più marcato quanto più i file archiviati sono simili tra loro, circostanza frequente quando appartengono allo stesso formato, ed è particolarmente evidente quando l'archivio contiene un numero elevato di file di piccole dimensioni.

Svantaggi A fronte della maggiore efficienza di compressione, gli archivi solidi presentano due inconvenienti: per estrarre un singolo file collocato in posizione mediana è necessario elaborare tutti i file che lo precedono, il che rende lente e scomode sia l'estrazione selettiva sia la modifica dell'archivio; se l'archivio viene danneggiato, anche solo lievemente, i dati che seguono il punto danneggiato possono risultare in parte o, a seconda dei formati di compressione e archiviazione impiegati, integralmente irrecuperabili; in un archivio non solido, invece, di norma è inutilizzabile il solo file danneggiato, mentre i successivi restano estraibili.

Note

Voci correlate 7-Zip Archiviatore di file RAR (formato di file) ZIP (formato di file)

Categoria:Archiviazione file Categoria:Compressione dei dati