BLOBs (Binary Large Objects): Eine Einführung

Den Begriff BLOB findet man in erster Linie in Zusammenhang mit Datenbanken und Open-Source-Projekten. Hier wird er für die Speicherung von Binärdateien verwendet, also solcher Dateien, die nicht nur druckbare Zeichen, sondern auch beliebige Bitmuster enthalten können. Typische Beispiele für solche Objekte sind unter anderem Bild- und Audiodateien, komprimierte Dateien oder Daten für Tabellenkalkulationen. Sollen Binary Large Objects in einem Projekt verwendet werden, müssen einige Vorgehensweisen beachtet werden. Was genau ist ein BLOB? Welche Eigenschaften hat es? Welche Vorteile und Nachteile ergeben sich aus der Anwendung?

Was ist ein BLOB (Binary Large Object)?

Die englische Abkürzung BLOB steht für Binary Large Object (dt.: „großes binäres Datenobjekt“). BLOBs sind von den CLOBs (Character Large Objects) (auch TEXTs) zu unterscheiden, bei denen es sich ebenfalls um große Objekte handelt, die in diesem Fall aber aus Zeichenketten bestehen.

Wie bereits erwähnt, zählen zu den typischen, großen binären Objekten Audio- und Bilddateien sowie Archivdateien oder Tabellenkalkulationsdaten. Darüber hinaus werden aber auch Videos als BLOBs eingestuft, weshalb die Binärdateien durchaus eine Größe von mehreren hundert Gigabyte haben können. Laut ihrem Erfinder Jim Starkey wurde dem Begriff BLOB erst rückwirkend die Akronym-Bedeutung Binary Large Object zugeschrieben. Im Jahr 1997 erklärte Starkey, dass dies geschah, weil der Name BLOB für Marketingzwecke zu unprofessionell wirkte.

BLOBs in Datenbanken

Von Datenbanken müssen BLOBs auf besondere Art und Weise verarbeitet werden. Spezielle Datentypen sind unumgänglich. Datenbanken können den unstrukturierten Inhalt von BLOBs nicht lesen oder verstehen, sondern sie nur als Ganzes speichern. Lediglich Dateiname, Dateityp und Dateigröße des BLOBs können von der Datenbank gelesen werden. Datenbankfunktionen wie das Sortieren, Filtern und Suchen nach bestimmten Inhalten in einem BLOB sind daher nicht möglich.

Hinweis

Der Unterschied zwischen strukturierten und unstrukturierten Daten ist, dass erstere eine klare Struktur haben. Alle Informationen strukturierter Daten können in entsprechenden Datenbankfeldern dargestellt werden. Unstrukturierte Daten hingegen lassen keine Rückschlüsse auf den Inhalt zu. Lediglich der Datentyp ist bekannt.

Binary Large Objects werden von verschiedenen Datenbanksystemen auf unterschiedliche Weise abgelegt. Da die Struktur von Datenbanken häufig nicht dazu geeignet ist, BLOBs direkt zu speichern, werden sie ausgelagert. Zu diesem Zweck enthält die Datenbank selbst nur einen Verweis darauf, wo die ausgelagerte Datei tatsächlich gespeichert ist. Abhängig von dem jeweiligen Datenbanksystem finden sich außerdem alternative Begriffe für die Bezeichnung der großen Binärdateien, wobei einige Lösungen wie MySQL sogar verschiedene Bezeichnungen für Dateien bestimmter Größen führen. Einige der bekanntesten Systeme inklusive der jeweiligen Begriffe für Binary Large Objects zeigt die folgende Tabelle:

Datenbank

Datentyp

MySQL

Bis 0,255kb: TINYBLOB

Bis 64kb: BLOB

Bis 16 MB: MEDIUMBLOB

Bis 4GB: LONGBLOB

PostgreSQL

BYTEA und Object Identifier

Oracle

BLOB

DB2

BLOB

Microsoft SQL Server

binary, varbinary, text, ntext

Wo kommen BLOBs zum Einsatz?

BLOBs werden vor allem in der Big Data Industrie verwendet. Massenhaft gesammelte Rohdaten von Websitebesuchern werden als Datensammlungen gebündelt und weltweit in Datenbanken gespeichert. In Rohform erhoben besitzen diese Daten keinerlei Struktur, weshalb es für die Datenbanksysteme der einfachste Weg ist, sie zu erfassen. BLOBs können auch verwendet werden, um Filme oder Fernsehsendungen quasi verschlüsselt in Datenbanken zu speichern.

Auch im Open-Source-Umfeld sind Binary Large Objects gefragt: Auch wenn sich standardmäßig sämtliche Komponenten eines quellfreien Projekts aus einem öffentlich zugänglichen Quellcode generieren lassen sollen, ist dies nicht immer der Fall. In verschiedenen Fällen werden auch proprietäre Elemente (vor allem Gerätetreiber) eingebunden, die ausschließlich in binärer Form vorliegen. Auch für diese Daten hat sich der Begriff „BLOBs“ etabliert, wobei die Aufnahme dieser Objekte in Open-Source-Projekte durchaus umstritten ist.

Vorteile und Nachteile von Binary Large Objects

Ob man BLOBs für ein Projekt nutzen sollte, ist von Fall zu Fall abzuwägen, denn es gibt einige entscheidende Vorteile, aber auch Nachteile.

Vorteile Nachteile
BLOBs bieten eine gute Möglichkeit, große Binärdaten in eine Datenbank einzubinden und lassen sich problemlos referenzieren Nicht alle Datenbanken ermöglichen den Einsatz von BLOBs
Zugriffsrechte können durch die Rechteverwaltung einfach gesetzt werden BLOBs sind aufgrund des benötigten Speicherplatzes und der Zugriffszeit ineffizient
In Datenbank-Backups oder -Dumps sind alle Daten enthalten Das Erstellen von Backups ist aufgrund der Dateigröße von BLOBs sehr zeitaufwendig