Definition Was ist ein BLOB?
Ein BLOB (Binary Large Object ) ist ein großes binäres Datenobjekt, das von Datenbanken meist in besonderer Form verarbeitet und gespeichert wird. Typische BLOBs sind Dateien wie Video-, Audio- oder Bilddateien
Anbieter zum Thema

Die Abkürzung BLOB seht für Binary Large Object und beschreibt eine große Datei, die in binärer Form vorliegt und in einer Datenbank abgelegt werden soll. Es kann sich beispielsweise um Video-, Audio- oder Bild- und Grafikdateien handeln. Zur Speicherung und Bearbeitung solch großer Dateien in Datenbanken sind spezielle Vorgehensweisen und Datentypen notwendig. Zum einen liegt dies an der Größe der Dateien, zum anderen an der für die Datenbanksysteme nicht lesbaren Struktur des Inhalts der BLOBs.
Im Big-Data-Umfeld sind BLOBs häufig vorzufinden und in relationalen oder nicht-relationalen Datenbanksystemen gespeichert. Je nach Datenbanksystem sind die Daten als normale Felddaten oder ausgelagert in speziellen BLOB-Bereichen abgelegt. Einige Datenbanksysteme unterstützen die Speicherung von Binary Large Objects nicht. Die Größe von BLOBs kann bis zu mehreren hundert Gigabyte betragen.
Unterschied zwischen BLOB und CLOB
Der Oberbegriff für Binary Large Object (BLOB) und Character Large Object (CLOB) lautet Large Object (LOB). BLOB und CLOB sind große Dateien, die sich in ihrem grundsätzlichen Aufbau jedoch unterscheiden. Während ein BLOB binär aufgebaut ist, besteht ein CLOB aus Zeichenketten. Einige Datenbanksysteme bieten Funktionen, BLOBs in CLOBs oder CLOBs in BLOBs zu konvertieren.
Die Problematik bei der Speicherung von BLOBs in Datenbanken
Grundproblem der Verarbeitung von BLOBs durch Datenbanken ist, dass die Daten der BLOBs aus Datenbanksicht unstrukturiert und daher nicht lesbar sind. Obwohl BLOBs eine innere Struktur besitzen, lässt diese sich von den Datenbanken weder erfassen noch auswerten. Die Inhalte und Kontexte selbst sind daher nicht nutzbar und sind als Ganzes zu speichern und zu interpretieren. Die Datenbankoperationen beschränken sich bei den BLOBs auf das vollständige Einlesen und Speichern. Typische Datenbankoperationen wie das Suchen, Sortieren oder Filtern der Daten sind auf den Inhalt der BLOBs nicht anwendbar, sondern meist nur auf Dateinamen und Dateityp. Nur die komplette Datei beziehungsweise ihr Dateiname und ihr Dateityp sind von der Datenbank prozessierbar.
Da in spalten- und zeilenbasierten Datenbanken die Felder in den häufigsten Datenbankmanagementsystemen nicht für die Speicherung von BLOBs geeignet sind, speichern viele Datenbanksysteme in den Datenbankfeldern nur einen Verweis auf den tatsächlichen Speicherort der BLOBs. Die unterstützte Größe eines BLOBs ist vom Typ des Datenbanksystems oder von den getroffenen Einstellungen abhängig. LOB-Segmente können unter Umständen in völlig anderen Speicherbereichen wie die Tabellen der Datenbank liegen. Dieses Verfahren verhindert, dass die großen Datenmengen der BLOBs die Performance der Bearbeitung anderer Tabellendaten beeinflussen.
In vielen Datenbanksystemen lassen sich für normale Tabellendaten und BLOBs unterschiedliche Einstellungen für Buffer und Cache festlegen. Grundsätzlich bleibt festzuhalten, dass die gleichzeitige Verarbeitung normaler Tabellendaten und BLOBs in den verschiedenen Datenbanken hinsichtlich Zugriff und benötigtem Speicherplatz nicht besonders effizient ist.
Die Vorteile der Speicherung von BLOBS in einer Datenbank
Obwohl die Speicherung und Verarbeitung von BLOBs in Datenbanken eher ineffizient ist, sind auch einige Vorteile damit verbunden. Alle Daten inklusive der BLOBs sind sauber in das Datenbankschema eingebunden und referenziert. Backups und Dumps der Datenbank enthalten sämtliche relevanten Daten. Ein weitere Vorteil ist, dass die Zugriffsrechte auf die Daten sauber durch die Rechteverwaltung des Datenbanksystems geregelt sind.
Die verschiedenen Datentypen gängiger Datenbanksysteme
In den verschiedenen Datenbankmanagementsystemen der unterschiedlichen Hersteller sind spezielle LOB-Datentypen für das Speichern von BLOBs und CLOBs vorhanden. BLOBs werden beispielsweise durch folgende Datentypen abgebildet:
- Datenbanksystem: MySQL – BLOB-Datentypen: TINYBLOB (bis 64 Kilobyte), MEDIUMBLOB (bis 16 Megabyte), LONGBLOB (bis vier Gigabyte)
- Datenbanksystem: PostgreSQL – BLOB-Datentypen: BYTEA oder per OID (Object Identifier)
- Datenbanksystem: Oracle – BLOB-Datentypen: BLOB
- Datenbanksystem: DB2 – BLOB-Datentypen: BLOB
- Datenbanksystem: Microsoft SQL Server – BLOB-Datentypen: varbinary ab SQL Server 2005, text, ntext
Für die Programmiersprache Java existiert eine eigene Schnittstelle mit dem Namen BLOB. Mit ihr ist der Zugriff auf die in den Datenbanksystemen gespeicherten BLOBs möglich. Die Skriptsprache JavaScript für Browser kann eigene BLOB-Objekte zum Lesen, Senden und Bearbeiten binärer BLOB-Daten erzeugen.
(ID:45394889)