Den Begriff BLOB findet man in erster Linie in Zu­sam­men­hang mit Da­ten­ban­ken und Open-Source-Projekten. Hier wird er für die Spei­che­rung von Bi­när­da­tei­en 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 Au­dio­da­tei­en, kom­pri­mier­te Dateien oder Daten für Ta­bel­len­kal­ku­la­tio­nen. Sollen Binary Large Objects in einem Projekt verwendet werden, müssen einige Vor­ge­hens­wei­sen beachtet werden. Was genau ist ein BLOB? Welche Ei­gen­schaf­ten 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 Da­ten­ob­jekt“). BLOBs sind von den CLOBs (Character Large Objects) (auch TEXTs) zu un­ter­schei­den, bei denen es sich ebenfalls um große Objekte handelt, die in diesem Fall aber aus Zei­chen­ket­ten bestehen.

Wie bereits erwähnt, zählen zu den typischen, großen binären Objekten Audio- und Bild­da­tei­en sowie Ar­chiv­da­tei­en oder Ta­bel­len­kal­ku­la­ti­ons­da­ten. Darüber hinaus werden aber auch Videos als BLOBs ein­ge­stuft, weshalb die Bi­när­da­tei­en durchaus eine Größe von mehreren hundert Gigabyte haben können. Laut ihrem Erfinder Jim Starkey wurde dem Begriff BLOB erst rück­wir­kend die Akronym-Bedeutung Binary Large Object zu­ge­schrie­ben. Im Jahr 1997 erklärte Starkey, dass dies geschah, weil der Name BLOB für Mar­ke­ting­zwe­cke zu un­pro­fes­sio­nell wirkte.

BLOBs in Da­ten­ban­ken

Von Da­ten­ban­ken müssen BLOBs auf besondere Art und Weise ver­ar­bei­tet werden. Spezielle Da­ten­ty­pen sind un­um­gäng­lich. Da­ten­ban­ken können den un­struk­tu­rier­ten Inhalt von BLOBs nicht lesen oder verstehen, sondern sie nur als Ganzes speichern. Lediglich Dateiname, Dateityp und Da­tei­grö­ße des BLOBs können von der Datenbank gelesen werden. Da­ten­bank­funk­tio­nen wie das Sortieren, Filtern und Suchen nach be­stimm­ten Inhalten in einem BLOB sind daher nicht möglich.

Hinweis

Der Un­ter­schied zwischen struk­tu­rier­ten und un­struk­tu­rier­ten Daten ist, dass erstere eine klare Struktur haben. Alle In­for­ma­tio­nen struk­tu­rier­ter Daten können in ent­spre­chen­den Da­ten­bank­fel­dern dar­ge­stellt werden. Un­struk­tu­rier­te Daten hingegen lassen keine Rück­schlüs­se auf den Inhalt zu. Lediglich der Datentyp ist bekannt.

Binary Large Objects werden von ver­schie­de­nen Da­ten­bank­sys­te­men auf un­ter­schied­li­che Weise abgelegt. Da die Struktur von Da­ten­ban­ken häufig nicht dazu geeignet ist, BLOBs direkt zu speichern, werden sie aus­ge­la­gert. Zu diesem Zweck enthält die Datenbank selbst nur einen Verweis darauf, wo die aus­ge­la­ger­te Datei tat­säch­lich ge­spei­chert ist. Abhängig von dem je­wei­li­gen Da­ten­bank­sys­tem finden sich außerdem al­ter­na­ti­ve Begriffe für die Be­zeich­nung der großen Bi­när­da­tei­en, wobei einige Lösungen wie MySQL sogar ver­schie­de­ne Be­zeich­nun­gen für Dateien be­stimm­ter Größen führen. Einige der be­kann­tes­ten Systeme inklusive der je­wei­li­gen Begriffe für Binary Large Objects zeigt die folgende Tabelle:

Datenbank Datentyp
MySQL Bis 0,255kb: TINYBLOB Bis 64kb: BLOB Bis 16 MB: ME­DI­UM­B­LOB Bis 4GB: LONGBLOB
Post­greS­QL BYTEA und Object Iden­ti­fier
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. Mas­sen­haft ge­sam­mel­te Rohdaten von Web­site­be­su­chern werden als Da­ten­samm­lun­gen gebündelt und weltweit in Da­ten­ban­ken ge­spei­chert. In Rohform erhoben besitzen diese Daten keinerlei Struktur, weshalb es für die Da­ten­bank­sys­te­me der ein­fachs­te Weg ist, sie zu erfassen. BLOBs können auch verwendet werden, um Filme oder Fern­seh­sen­dun­gen quasi ver­schlüs­selt in Da­ten­ban­ken zu speichern.

Auch im Open-Source-Umfeld sind Binary Large Objects gefragt: Auch wenn sich stan­dard­mä­ßig sämtliche Kom­po­nen­ten eines quell­frei­en Projekts aus einem öf­fent­lich zu­gäng­li­chen Quellcode ge­ne­rie­ren lassen sollen, ist dies nicht immer der Fall. In ver­schie­de­nen Fällen werden auch pro­prie­tä­re Elemente (vor allem Ge­rä­te­trei­ber) ein­ge­bun­den, die aus­schließ­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 um­strit­ten 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 ent­schei­den­de Vorteile, aber auch Nachteile.

Vorteile Nachteile
BLOBs bieten eine gute Mög­lich­keit, große Bi­när­da­ten in eine Datenbank ein­zu­bin­den und lassen sich pro­blem­los re­fe­ren­zie­ren Nicht alle Da­ten­ban­ken er­mög­li­chen den Einsatz von BLOBs
Zu­griffs­rech­te können durch die Rech­te­ver­wal­tung einfach gesetzt werden BLOBs sind aufgrund des be­nö­tig­ten Spei­cher­plat­zes und der Zu­griffs­zeit in­ef­fi­zi­ent
In Datenbank-Backups oder -Dumps sind alle Daten enthalten Das Erstellen von Backups ist aufgrund der Da­tei­grö­ße von BLOBs sehr zeit­auf­wen­dig
Zum Hauptmenü