Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Indexstrukturen für Datenbanken, Signature Files Seite : 1© 2000 Alexander Wey, Universität Bonn Proseminar: Indexstrukturen für Datenbanken Signature.

Ähnliche Präsentationen


Präsentation zum Thema: "Indexstrukturen für Datenbanken, Signature Files Seite : 1© 2000 Alexander Wey, Universität Bonn Proseminar: Indexstrukturen für Datenbanken Signature."—  Präsentation transkript:

1 Indexstrukturen für Datenbanken, Signature Files Seite : 1© 2000 Alexander Wey, Universität Bonn Proseminar: Indexstrukturen für Datenbanken Signature Files Alexander Wey wey@informatik.uni-bonn.de Sommersemester 2000

2 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

3 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

4 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

5 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

6 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 Free001 000 110 010 Text000 010 101 001 Blocksignatur001 010 111 011 Um die Signatur des gesamten Dokumentes zu erhalten (Signature File) werden alle Blocksignaturen aneinandergehängt

7 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

8 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

9 Indexstrukturen für Datenbanken, Signature Files Seite : 9© 2000 Alexander Wey, Universität Bonn Schema von SSF 01...01 1 1 1 0 1 F Bits N Blöcke Textdatei Verweisdatei

10 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)

11 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 = 0000 1 00 1 000000 1 0 1 000 WortSignatur Data0000 0000 0000 0010 0000 Base0000 0001 0000 0000 0000 Management0000 1000 0000 0000 0000 System0000 0000 0000 0000 1000 Blocksignatur0000 1001 0000 0010 1000 l Die erzeugte Blocksignatur kann in Gruppen unterteilt werden :

12 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

13 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 00001001000000101000 Teil 101011 Teil 21000 Teil 300111000 Das komprimierte SSF lautet : 01011 1000 00111000

14 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)

15 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

16 Indexstrukturen für Datenbanken, Signature Files Seite : 16© 2000 Alexander Wey, Universität Bonn BSSF - Schema 0111101 1 0 1 N - Blöcke F Dateien Verweisdatei N

17 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

18 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

19 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 Free000000 110010 Text010110 000000 Dokumentsignatur010110 110010 Bei der Suche brauchen wir nur ein Frame pro Wort zu laden

20 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

21 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

22 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

23 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.

24 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

25 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

26 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

27 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

28 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)

29 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.


Herunterladen ppt "Indexstrukturen für Datenbanken, Signature Files Seite : 1© 2000 Alexander Wey, Universität Bonn Proseminar: Indexstrukturen für Datenbanken Signature."

Ähnliche Präsentationen


Google-Anzeigen