Nor­ma­ler­wei­se gehen Da­ten­ban­ken beim Speichern von Daten wie folgt vor: Einzelne Ta­bel­len­spal­ten werden zu Zeilen zu­sam­men­ge­fasst, die wiederum zu Da­ten­blö­cken gestapelt werden. In jedem Da­ten­block ist dann einer Zeile eine bestimmte In­for­ma­ti­on zu­ge­ord­net. Das Speichern von Da­ten­blö­cken ver­braucht in dieser Form wenig Spei­cher­platz in der Datenbank.

Besonders große Da­ten­ob­jek­te werden von Da­ten­ban­ken al­ler­dings anders behandelt. Diese so­ge­nann­ten Large Objects (LOBs) sind im Vergleich zu ge­wöhn­li­chen Da­ten­bank­ein­trä­gen we­sent­lich größer, zudem un­struk­tu­riert und erhalten daher in den meisten Fällen einen separaten Spei­cher­ort. Die Datenbank führt dann an ent­spre­chen­der Stelle lediglich eine Referenz zum tat­säch­li­chen Spei­cher­ort des Objekts.

LOBs exis­tie­ren in zwei Typen, den BLOBs und den CLOBs. Ein BLOB ist ein Datentyp, der große Objekte binärer Form speichert, wo­hin­ge­gen das CLOB-Da­tei­for­mat lange Zei­chen­ket­ten speichert. Die Abkürzung steht dabei für Character Large Objects (dt. große Objekte mit Zeichen), wobei der Begriff durch die Ent­wick­ler der Oracle-Datenbank geprägt wurde. In anderen Da­ten­bank­sys­te­men exis­tie­ren nämlich auch al­ter­na­ti­ve Be­zeich­nun­gen für die großen Objekte wie zum Beispiel TEXT in MySQL und Post­greS­QL.

Wie funk­tio­nie­ren CLOBs und wofür werden sie ein­ge­setzt?

Als Character Large Objects lassen sich sämtliche Da­ten­bank­ob­jek­te mit Zei­chen­ket­ten einordnen – mit anderen Worten also alle Objekte, die Dateien enthalten, die sich aus Zeichen zu­sam­men­set­zen. Zei­chen­ket­ten sind Abfolgen von Buch­sta­ben, Ziffern, Son­der­zei­chen und Steu­er­zei­chen, weshalb CLOB-Einträge für ge­wöhn­lich auf Text-Dokumente (ins­be­son­de­re XML) verweisen. Das Besondere an der Spei­che­rung dieser großen Da­ten­ty­pen ist, dass sie bis auf bestimmte Ausnahmen nicht direkt in der Datenbank, sondern an separater Stelle ge­spei­chert werden. Im Da­ten­bank­sys­tem selbst befindet sich lediglich ein Re­fe­renz­me­cha­nis­mus, der auf den je­wei­li­gen CLOB verweist. So steht in einer Da­ten­bank­zei­le bei­spiels­wei­se nicht der gesamte Zei­chen­code einer Website, sondern lediglich eine Re­fe­renz­num­mer, die auf den tat­säch­li­chen Spei­cher­ort des zu­grun­de­lie­gen­den HTML-Dokuments verweist.

Vor- und Nachteile der CLOB-Spei­che­rung

Einer der größten Vorteile des Datentyps CLOB ist die Mög­lich­keit, Lese- und Be­ar­bei­tungs­vor­gän­ge an den einzelnen Dateien vor­zu­neh­men. Zum Beispiel können Da­ten­bank­ad­mi­nis­tra­to­ren mit Hilfe von An­wen­dungs­pro­gram­men den Inhalt ein­ge­speis­ter Character Large Objects ver­glei­chen, editieren oder zu­sam­men­füh­ren. Eine kurze Übersicht der Be­ar­bei­tungs­mög­lich­kei­ten folgt hier:

  • SUBSTR erlaubt Anwendern, Zei­chen­se­quen­zen aus einem CLOB zu ex­tra­hie­ren
  • INSTR fügt aus­ge­schnit­te­ne Zei­chen­fol­gen an anderer Stelle oder in anderen CLOBs ein
  • COMPARE ver­gleicht die Werte zweier CLOBs
  • APPEND verbindet zwei CLOBs mit­ein­an­der

Da CLOBs die Dokumente mit Text bzw. Zeichen komplett ab­spei­chern, lassen sich deren Inhalte sehr genau prüfen. Ad­mi­nis­tra­to­ren können exakt fest­stel­len, ob sich Inhalte doppeln oder Textteile über­schnei­den. Ist dies der Fall, können die Da­ten­sät­ze verbunden werden, um unnötig ver­wen­de­ten Spei­cher­platz frei­zu­ge­ben.

Zudem ist die Spei­che­rung von Buch­sta­ben, Ziffern, Son­der­zei­chen und Steu­er­zei­chen als CLOB absolut ver­lust­frei: Oft kommt es beim Speichern darauf an, dass wirklich alle In­for­ma­tio­nen eines Dokuments ge­spei­chert werden müssen, was bei diesem Da­ten­for­mat kein Problem darstellt. Man kann zum Beispiel auch die Me­ta­in­for­ma­tio­nen eines Dokuments zusammen mit dem tat­säch­li­chen Inhalt als CLOB speichern. Die meisten Da­ten­ban­ken un­ter­stüt­zen in der Folge sogar die Dar­stel­lung der Character Large Objects in einer Baum­struk­tur sowie die Na­vi­ga­ti­on und das Finden spe­zi­fi­scher Be­stand­tei­le.

Zu den Nach­tei­len dieses Datentyps zur Spei­che­rung enorm großer Zei­chen­men­gen zählt, dass einige Da­ten­ban­ken nicht die Be­ar­bei­tung über die bekannten SQL-Funk­tio­nen er­mög­li­chen. Da die CLOBs extrem große Text­men­gen speichern, würde die Aus­füh­rung der Stan­dard­funk­tio­nen nämlich sehr lange dauern. Hier stehen aber zumindest die zuvor erwähnten An­wen­dungs­kom­man­dos SUBSTR, INSTR, COMPARE und APPEND als al­ter­na­ti­ve Mög­lich­kei­ten zur Verfügung, um nicht funk­tio­na­le SQL-Ope­ra­tio­nen zu re­pli­zie­ren. Ein weiterer Nachteil von CLOBs: Ver­hält­nis­mä­ßig kleine Da­ten­ele­men­te vergeuden wert­vol­len Spei­cher­platz, da für die Spei­che­rung außerhalb der Datenbank ein fest de­fi­nier­ter, seg­men­tier­ter Spei­cher­platz re­ser­viert wird.

Zum Hauptmenü