Blob steht für `Binary large object` als großem binären Datenobjekt, das von Datenbank-ManagementSystemen (DBMS) in besonderer Weise verarbeitet wird. Die Klasse `Blob` kann nicht erzeugt werden. Ein Blob-Objekt wird von einem Blob-Feld zurückgegeben und dient zum Lesen oder Schreiben seines Inhalts.
Im Zusammenhang mit Datenbanken und dem Feld-Type `BLOB` finden Sie das Argument, dass zum Beispiel zur Speicherung von Bildern direkt in einem Feld einer DB-Tabelle auch alternative Ansätze existieren:
Der zweite Ansatz wird favorisiert mit der Begründung, dass Bilder und andere Binaries im Dateisystem gespeichert werden sollten, weil das Dateisystem der Speicher für Dateien ist. Außerdem behandeln die von Gambas unterstützten DBMS den Feld-Typ ` BLOB` in unterschiedlicher Weise. Das DBMS MySQL macht zum Beispiel keinen Unterschied zwischen einem Blob-Feld und einem normalen Textfeld. Ein Problem der Verarbeitung von BLOBs durch Datenbanken besteht darin, dass die Daten der BLOBs aus Datenbanksicht unstrukturiert und daher nicht lesbar sind. Die Datenbankoperationen beschränken sich bei den BLOBs folglich auf das vollständige Einlesen, Speichern und Auslesen.
Obgleich die Speicherung und Verarbeitung von BLOBs in Datenbanken tendenziell ineffizient ist, sind damit auch Vorteile verbunden. Alle Daten – inklusive der BLOBs – sind in das Datenbankschema eingebunden und referenziert. Backups der Datenbank in Form von Dumps enthalten alle relevanten Daten. Ein weiterer Vorteil besteht darin, dass die Zugriffsrechte auf die Daten bei MySQL (MariaDB) und PostgreSQL durch die Rechteverwaltung des Datenbanksystems geregelt sind.
Im Kapitel 22.13 werden Ihnen Projekte vorgestellt, bei denen große binäre Datenobjekte direkt oder indirekt in einer Datenbank-Tabelle für unterschiedliche DBMS (SQLite3, PostgreSQL und MySQL) gespeichert werden.
Genaue Informationen zu großen binären Datenobjekten unter dem Aspekt DB-Datentypen finden Sie im Kapitel 22.3 DB-Mapping und unter dem Link: http://gambaswiki.org/wiki/doc/db-type-mapping.
Die Klasse Blob verfügt nur über zwei Eigenschaften:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Data | String | Setzt den Feld-Inhalt oder gibt den Feld-Inhalt zurück. |
Length | Integer | Liefert die Länge des Blob-Inhalts als Anzahl seiner Bytes. |
Tabelle 22.4.12.1.1 : Eigenschaften der Klasse Blob
Artikel