Binary Large Object
Binary Large Objects (BLOBs) sind große binäre Datenobjekte wie z. B. Bild- oder Audiodateien. Der Begriff wird häufig im Zusammenhang mit Datenbanken benutzt.
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.
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 ab 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 einen Zugriff auf den Wert selber herstellen.
BLOBs als API für Dateizugriffe
In der Browser-Skriptsprache JavaScript lassen sich Blob
-Objekte zum Lesen, Senden und Bearbeiten binärer Daten erzeugen.[1]
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. Gelegentlich werden jedoch auch proprietäre Komponenten, insbesondere Gerätetreiber, in solche Projekte eingebunden, die ausschließlich in binärer Form bereitgestellt und lizenziert werden und deren Quellcode nicht veröffentlicht wird. Solche Komponenten werden als „BLOBs“ bezeichnet. Die Aufnahme von solchen „BLOBs“ in Open-Source-Projekte ist umstritten. In einigen Freie-Software-Projekten (wie beispielsweise Debian) werden, gemäß der Definition von „freie Software“ der FSF, solche proprietären Programme oder Treiber nicht eingebunden und bei Entdeckung entfernt.
Bildverarbeitung
In der Bildverarbeitung werden zusammenhängende Flächen als BLOB bezeichnet, die sich in Eigenschaften, wie beispielsweise den Helligkeitswerten gegenüber der Umgebung unterscheiden.[2] Diese werden oftmals auch als Regionen oder Binärobjekte bezeichnet. Häufig werden die entsprechenden Pixel über ein Schwellwertverfahren segmentiert. BLOBs werden oft dazu verwendet, um Merkmale zu den bestimmten Flächen zu erzeugen. Zum Beispiel Breite, Höhe, Rundheit, Mittlerer Grauwert der Pixel und so weiter. Anhand dieser Merkmale lässt sich beispielsweise überprüfen, ob die Kontaktflächen des Beispielbildes vollständig sind. Ein unvollständiger Kontakt hätte eine geringere Fläche.
Einzelnachweise
- Spezifikation des File API durch das W3C (World Wide Web Consortium)
- Reiner Dudziak: Skript zur Vorlesung Technische Bildverarbeitung (S. 134). Archiviert vom (nicht mehr online verfügbar) am 6. April 2018; abgerufen am 5. April 2018. Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
Weblinks
- Interface
java.sql.Blob
Java API bei Oracle - Blob MySQL Referenz