Zum Inhalt springen

Binary Large Object

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 22. Dezember 2011 um 21:20 Uhr durch 84.113.237.197 (Diskussion). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Binary Large Objects (BLOBs) sind große binäre Objekte wie Bild- oder Audiodateien. Der Begriff wird häufig im Zusammenhang mit Open-Source-Projekten und Datenbanken benutzt.

Freie-Software- und Open-Source-Projekte

Im Rahmen des Open Source wird angestrebt, dass sich alle Programmteile aus einem öffentlich verfügbaren Quellcode generieren lassen. Das ist für Gerätetreiber ohne Quellcode nicht der Fall, so dass die Aufnahme von solchen "BLOBs" in Open-Source-Projekte umstritten ist. In einigen Freie-Software-Projekten (wie bspw. Debian) werden solche proprietären Programme oder Treiber, gem. Definition von freie Software der FSF, nicht eingebunden und bei Entdeckung entfernt.

Datenbanken

Für eine Datenbank sind BLOBs nicht weiter strukturierte Objekte beziehungsweise Felddaten. Einige Datenbanken gestatten, dass die Feldtypen große Datenmengen (quasi komplette Dateien) als Feldinhalt abspeichern können.

Character Large Objects (CLOB oder Text) ähneln BLOBs, enthalten jedoch Zeichenketten.

Bei internationalen Projekten ist oft die Speicherung von Unicode-Daten erforderlich. Viele Datenbankhersteller bieten spezielle LOB-Datentypen an, bei denen mehrere Bytes für die Speicherung der einzelnen Schriftzeichen verwendet werden können.

Eine andere Methode zur Speicherung von großen Objekten wird als Open Prepress Interface (OPI) bezeichnet.

Wird die Spalte einer Tabelle in einem relationalen Datenbanksystem als BLOB ausgewiesen, speichern die meisten Datenbankmanagementsysteme den konkreten LOB-Wert gesondert ab und vermerken innerhalb der Tabelle nur einen Schlüssel oder eine Referenz auf diesen LOB-Wert.

BLOBs werden in gängigen Datenbanksystemen durch verschiedene Datentypen abgebildet:

MySQL
bis 256 Byte TINYBLOB, bis 64 KiB BLOB, bis 16 MiB MEDIUMBLOB oder bis 4 GiB LONGBLOB.
PostgreSQL
BYTEA oder per OID (Object Identifier)
Oracle
früher LONG RAW seit Version 8i BLOB für Binär-Daten, CLOB für Text-Daten mit 8-Byte-Codierung und NCLOB für Unicode-Daten (bis 4 GiB)
DB2
BLOB für Binär-Daten, CLOB für Text-Daten mit 8-Byte-Codierung, DBLOB für Unicode-Daten (bis 2 GiB)
Microsoft SQL Server
varbinary ab SQL Server 2005, text, ntext

In der Programmiersprache Java existiert auch eine Schnittstelle mit dem Namen Blob in der JDBC, die Java mit Datenbanksystemen verbindet. Damit kann man die Länge eines BLOBs ermitteln und auch Zugriff auf den Wert selber herstellen.