Indexstrukturen für Datenbanken, Signature Files Seite : 1© 2000 Alexander Wey, Universität Bonn Proseminar: Indexstrukturen für Datenbanken Signature Files Alexander Wey Sommersemester 2000
Indexstrukturen für Datenbanken, Signature Files Seite : 2© 2000 Alexander Wey, Universität Bonn Überblick l Was sind Signature Files ? l Wie erstelle ich Signature Files ? l Vertikale Partionierung (ohne Kompression) l Vertikale Partionierung (mit Kompression) l Literaturquellen l Schlussbemerkung
Indexstrukturen für Datenbanken, Signature Files Seite : 3© 2000 Alexander Wey, Universität Bonn Was sind Signature Files ? l Signature Files basieren auf der Idee des inexakten Filters : u Einträge einer Datenbasis, welche eine bestimme Bedingung erfüllen, können effizient herausgefiltert werden (z.B. Suchanfragen) u Leider können hierbei Fehler auftreten, d.h. es werden falsche Einträge herausgefiltert (sogenannte False Drops) l Signaturen werden durch die Abbildung von Wörtern auf Bitstrings mittels Hash-Funktion erzeugt. l Dokumente werden in einer Textdatei gespeichert und die Signaturen in einer separaten Datei, dem Signature File
Indexstrukturen für Datenbanken, Signature Files Seite : 4© 2000 Alexander Wey, Universität Bonn Vor – und Nachteile l Signatur – basierte Methoden sind ca. 1 bis 2 Größenordnungen schneller als String – Matching l Der zusätzlich benötigte Speicherplatz ist sehr gering u Signatur – basiert : 10 – 15 % mehr Speicherplatz u Invertierte Listen : 50 – 300 % mehr Speicherplatz l Einfügungen sind ohne Reorganisation der Signature Files möglich. u Einfügen geschieht durch anhängen u Dadurch in WORM – Systemen (Write once, Read many) gut anwendbar l Nachteil : False Drops und Ineffizienz für große Datenbanken
Indexstrukturen für Datenbanken, Signature Files Seite : 5© 2000 Alexander Wey, Universität Bonn Wie erstelle ich Signature Files ??? l Das am meisten angewendete Verfahren zur Erstellung einer Signatur heißt Superimposed Coding u Man bildet eine vorgegebene Zahl D von Wortsignaturen und überlagert dann diese l Vorgehensweise : u Dokument in logische Blöcke unterteilen u Ein Block enthält eine konstante Anzahl D zu indexierenden Wörtern (Wörter eines Blockes sind alle unterschiedlich) u Jetzt wird für jeden Block des Dokumentes, die einzelnen Signaturen der Wörter gebildet l Jede Wortsignatur besteht aus einem Bit-Muster der Größe F in dem m Bits per Hash-Funktion gesetzt werden
Indexstrukturen für Datenbanken, Signature Files Seite : 6© 2000 Alexander Wey, Universität Bonn Ein Beispiel zur Überlagerung l Die Wortsignaturen werden mit ODER verknüpft und bilden damit die Blocksignatur l Beispiel (Größe F = 12 Bits, m = 4 Bits pro Wort, D= 2 Wörter) WortSignatur Free Text Blocksignatur Um die Signatur des gesamten Dokumentes zu erhalten (Signature File) werden alle Blocksignaturen aneinandergehängt
Indexstrukturen für Datenbanken, Signature Files Seite : 7© 2000 Alexander Wey, Universität Bonn Suchanfrage l Das erzeugte Signature File können wir nun zum Suchen nach einem Wort z verwenden l Vorgehensweise : u Für das zu suchende Wort z wird dessen Signatur S z erzeugt. u Das Signature File wird durchsucht, indem für jede Blocksignatur S b eine UND – Verknüpfung (bitweise) mit der Signatur des Suchwortes durchgeführt wird u Wenn S z = S z UND S b gilt, wird b in die Menge der richtigen Kandidaten aufgenommen u Nach vollständiger Durchsuchung des Signature Files kann man noch False Drops eliminieren, indem man in der Menge der richtigen Kanditaten eine Stringsuche nach dem Wort z durchführt u Man erhält nun die Menge der Ergebnisse
Indexstrukturen für Datenbanken, Signature Files Seite : 8© 2000 Alexander Wey, Universität Bonn Sequential Signature Files l Im Prinzip stellt ein Signature File für N Blöcke eine Bitmatrix F x N dar l Der einfachste Weg diese Matrix zu speichern, ist nacheinander die Zeilen zu speichern (SSF) l Hierzu braucht man neben der Datenbasis und dem Signature File eine weitere Datei, welche auf die Blöcke verweist l Diese Verweisdatei enthält für jede Zeile der Signaturmatrix einen Verweis auf die entsprechende Position in der Datenbasis
Indexstrukturen für Datenbanken, Signature Files Seite : 9© 2000 Alexander Wey, Universität Bonn Schema von SSF F Bits N Blöcke Textdatei Verweisdatei
Indexstrukturen für Datenbanken, Signature Files Seite : 10© 2000 Alexander Wey, Universität Bonn Kompression l Um kostbaren Speicherplatz zu sparen, kann man die Signatur komprimieren l Gut komprimieren lassen sich Signaturen mit wenig gesetzten Bits l Bei der Erstellung einer Wortsignatur wählt daher man den Parameter m möglichst klein l Die Idee der Kompression basiert darauf, die Intervalle zwischen den gesetzten Bits zu erfassen (run-length encoding – Verfahren)
Indexstrukturen für Datenbanken, Signature Files Seite : 11© 2000 Alexander Wey, Universität Bonn Beispiel zur Kompression L 1 L 2 L 3 L 4 L 5 Blocksignatur = WortSignatur Data Base Management System Blocksignatur l Die erzeugte Blocksignatur kann in Gruppen unterteilt werden :
Indexstrukturen für Datenbanken, Signature Files Seite : 12© 2000 Alexander Wey, Universität Bonn Bit – Block Kompression BC l Basiert auf der Komprimierung der Bit-Blöcke l Auch hier werden die Signaturen sequentiell gespeichert, zuvor aber komprimiert l Für jeden Bit-Block erstellen wir eine Signatur mit einer variablen Größe l Die Variable Bit – Block Kompression VBC ist wie BC aufgebaut mit dem einzigen Unterschied, dass die Bitblock – Länge b variabel ist. Sie wird entsprechend der Anzahl W (die Anzahl der gesetzten Bits pro Zeile der Matrix) zu b opt angepasst
Indexstrukturen für Datenbanken, Signature Files Seite : 13© 2000 Alexander Wey, Universität Bonn Beispiel für Bit – Block Kompression l Die Signatur besteht aus 3 Teilen u 1. Teil : besteht aus 1 Bit, welches gesetzt wird, wenn der zugehörige Bitblock ein gesetztes Bit enthält, falls nein entfallen Teile 2 und 3 u 2. Teil : gibt die Anzahl der gesetzten Bits im Bitblock an. Dabei wird die Anzahl – 1 gespeichert und eine 0 angehängt u 3. Teil : gibt den Abstand zwischen dem Anfang des Bitblocks und der gesetzten Bits an Teil Teil Teil Das komprimierte SSF lautet :
Indexstrukturen für Datenbanken, Signature Files Seite : 14© 2000 Alexander Wey, Universität Bonn Vertikale Paritionierung (ohne Kompression) l Bei der vertikalen Partionierung speichert man die Signaturmatrix spaltenweise in sogenannten Bit – slices (zu deutsch : Scheiben) u Idee : Unnötige Informationen werden nicht in den Hauptspeicher geladen. u Bei SSF – Verfahren werden die Blocksignaturen komplett gelesen l Für den Vergleich zwischen der Blocksignatur und der Signatur des zu suchenden Wortes werden nicht alle Bits der Blocksignatur benötigt, sondern nur die Bits der Positionen, die in der Anfragesignatur gesetzt sind l Wir lernen jetzt folgende Konzepte kennen : u BSSF (Bit-sliced Signature Files) áBSS`F u FSSF (Frame – sliced Signature Files) u GFSSF (Generalized frame – sliced Signature Files)
Indexstrukturen für Datenbanken, Signature Files Seite : 15© 2000 Alexander Wey, Universität Bonn Bit – sliced Signature Files (BSSF) l Bei SSF werden die einzelnen Bits einer Signatur in F verschiedenen Dateien gespeichert Jede Datei entspricht demnach einer bestimmten Bitpositon in einer Zeile der F x N Matrix l Bei einer Suche nach einem Wort braucht man nur die Einträge der m Bitscheiben zu lesen (anstatt alle F Bits), deren Bits in der Signatur des gesuchten Wortes gesetzt sind u Diese verküpft man mit UND, um einen Vektor der Länge N zu erhalten. u Die Stellen des Vektors, wo Bits gesetzt sind, deuten auf die zugehörigen logischen Blöcke hin l Das Einfügen eines Eintrages benötigt F Plattenzugriffe, einen pro Datei
Indexstrukturen für Datenbanken, Signature Files Seite : 16© 2000 Alexander Wey, Universität Bonn BSSF - Schema N - Blöcke F Dateien Verweisdatei N
Indexstrukturen für Datenbanken, Signature Files Seite : 17© 2000 Alexander Wey, Universität Bonn BSSF l BSSF – Verfahren sieht vor, einen Wert für m zu wählen, so dass die Signatur ca. 50 % gesetzte Bits enthält. (typischer Wert für m = 10, d.h. 10 Plattenzugriffe) l BSSF wählt den Parameter m möglichst klein, damit die Anzahl der Plattenzugriffe sinkt l Hierfür werden größere Signaturen benötigt, damit eine annähernd gleiche False Drops Wahrscheinlichkeit erreicht werden kann
Indexstrukturen für Datenbanken, Signature Files Seite : 18© 2000 Alexander Wey, Universität Bonn Frame – Sliced Signature Files (FSSF) l Idee : Man speichert ähnliche Signaturen mittels Hash – Funktionen hintereinander l Dies hat den großen Vorteil, dass bei einer Suchanfrage sequentiell und nicht zufällig auf die Platte zugegriffen wird Geschwindigkeitssteigerung l Die Dokumentsignatur wird in k Frames mit s Bits aufgeteilt l Jedes Wort wird einem Frame per Hash – Funktion zugeordnet. Mit einer anderen Hash – Funktion werden dann m Bits im Frame gesetzt
Indexstrukturen für Datenbanken, Signature Files Seite : 19© 2000 Alexander Wey, Universität Bonn Beispiel zu FSSF F = 12, s = 6, k = 2, m= 3 Das Wort free wird dem 2. Frame zugeordnet und es werden 3 Bits gesetzt, das Wort text wird dem 1. Frame zugeordnet, ebenfalls mit 3 gesetzten Bits Die Signaturmatrix wird frameweise gespeichert WortSignatur Free Text Dokumentsignatur Bei der Suche brauchen wir nur ein Frame pro Wort zu laden
Indexstrukturen für Datenbanken, Signature Files Seite : 20© 2000 Alexander Wey, Universität Bonn Generalized Frame – sliced Signature Files (GFSSF) l SSF, BSSF, BSSF, FSSF sind Spezialfälle von GFSSF. l Zur Wiederholung, die Parameter : u F = Größe des logischen Blockes u m = Anzahl der gesetzten Bits im Block u n = Anzahl festgelegter Frames mit m gesetzten Bits u k = Anzahl der Frames l Es handelt sich um SSF, wenn k = 1 und n= 1 (Dokumentsignatur besteht aus einem Frame) l Es handelt sich um BSSF, BSSF, wenn k=F und n=m l Wenn n=1 gilt, dann liegt die FSSF Methode vor
Indexstrukturen für Datenbanken, Signature Files Seite : 21© 2000 Alexander Wey, Universität Bonn Vertikale Partionierung (mit Kompression) l Wir haben kennengelernt, wie man Signaturmatrizen mit wenig gesetzten Bits komprimiert l Dieses Verfahren wenden wir an, und speichern nur die Abstände der gesetzten Bits für jede Bitscheibe l Übersicht über folgenden Methoden : u Compressed Bit Slices u Doubly Compressed Bit Slices u No False Drops Method
Indexstrukturen für Datenbanken, Signature Files Seite : 22© 2000 Alexander Wey, Universität Bonn Compressed Bit Slices (CBS) l Wir verlangen, dass m = 1 gilt. u Erinnerung : Für jedes gesuchte Wort müssen m Bit Dateien gelesen werden u Die Größe F der Signatur muss wegen den False Drops erhöht werden l Die Signaturen werden in sogenannten Posting Buckets der Größe B p gespeichert (Verweisdatei wird überflüssig) l Diese Posting Buckets enthalten für jedes Wort einen Zeiger auf die zugehörige Textstelle im Dokument und ein zusätzlichen Zeiger, der auf den nächsten Bucket verweist, falls dies nötig ist l Um die Bit – slices zuzuordnen, benötigt man eine Zuordnungstabelle (Hash – Tabelle) Dokumente brauchen nicht mehr in logische Blöcke unterteilt werden
Indexstrukturen für Datenbanken, Signature Files Seite : 23© 2000 Alexander Wey, Universität Bonn CBS – Abbildung & Beispiel l Das Wort base wird an die 30. Position gehasht (h(base)=30) l Im zugehörigen Posting Bucket verweiset ein Zeiger auf das 1145 Byte in der Textdatei l Der Posting Bucket wird mitsamt seiner verküpften Buckets in den Hauptspeicher geladen.
Indexstrukturen für Datenbanken, Signature Files Seite : 24© 2000 Alexander Wey, Universität Bonn Doubly Compressed Bit Slices (DCBS) l Idee: Man komprimiert zusätzlich noch die Zuordnungstabelle l Analog zu CBS benutzt man eine Hash - Funktion h 1 (), um die Position in der Zuordnungstabelle zu bestimmen l Eine zusätzliche Hash - Funktion h 2 () unterscheidet zwischen Synonymen (sinnesverwandte Wörter) u Die Funktion h 2 () liefert Bitstrings der Länge h, welche in einer intermediate – Datei gespeichert werden u Die intermediate – Datei besteht aus Buckets der Größe B i l Jeder Bucket hat Einträge der Form (Hashcode, Zeiger) u Der Zeiger verweist auf eine Liste von entsprechenden Posting Buckets
Indexstrukturen für Datenbanken, Signature Files Seite : 25© 2000 Alexander Wey, Universität Bonn DCBS - Beispiel l Die Länge der Bitstrings, welcher h 2 liefert, ist hier h=3 l Wie bei CBS : u h 1 (base) = 30 l Zusätzlich : u h 2 (base) = (011) 2
Indexstrukturen für Datenbanken, Signature Files Seite : 26© 2000 Alexander Wey, Universität Bonn No False Drops Method (NFD) l Bei dieser Methode entstehen keine False Drops u Dabei müssen nicht alle Wörter gespeichert werden u Es genügt die intermediate – Datei vom DCBS – Verfahren zu verändern l Es kommt ein zusätzlicher Zeiger auf das Wort im Dokument hinzu l Ein Eintrag in der intermediate – Datei hat bei NFD die Form : (Hashcode, Zeiger auf Posting Buckets, Zeiger auf Wort) l Vorteil : Jedes Wort kann von seinen Synonymen getrennt werden l Der Zeiger auf das Wort im Dokument liefert folgende Vorteile : u Speicherplatz gegenüber der Volltextspeicherung wird gespart u Die Einträge in der intermediate – Datei haben eine konstante Größe u Daher entfallen Terminierungssymbole zur Bestimmung des Ende eines Wortes u Ein Wort kann die Aufnahmefähigkeit eines Buckets sprengen
Indexstrukturen für Datenbanken, Signature Files Seite : 27© 2000 Alexander Wey, Universität Bonn NFD – Abbildung & Beispiel l Suchanfrage analog wie bei DCBS l Unterschied : Wenn ein passender Hashcode gefunden wurde, wird dem zugehörigen Zeiger auf das Wort gefolgt, um Synonyme auszuschließen
Indexstrukturen für Datenbanken, Signature Files Seite : 28© 2000 Alexander Wey, Universität Bonn Literaturquellen l Titel : Information Retrieval: Data Structures & Algorithms Autoren : William B. Frakes; Ricardo Baeza-Yates (eds.) Verlag : Prentice Hall, 1992 Titel : Information Retrieval - Datenstrukturen und algorithmische Grundlagen, Folien zur Vorlesung (1997) Datenbanken und Informationssysteme Autor : Peter Becker (Universität Tübingen)
Indexstrukturen für Datenbanken, Signature Files Seite : 29© 2000 Alexander Wey, Universität Bonn Schlußbemerkung l Für Datenbanken mittlerer Größe stellen die Signature Files eine effiziente Indexstruktur für Datenbanken dar l Suchanfragen und Einfügung neuer Daten gestalten sich recht einfach l Die Effizienz der kennengelernten Konzepte sind erheblich von der Wahl der Parameter abhängig l Man muss abwägen, ob eine schnellere Suchzeit mehr Speicherplatzbedarf rechtfertigt, oder ob man z.B. genauere Resultate verlangt, wie bei der NFD – Methode. Diese benötigt mehr Speicherplatz.