29
© 2000 Alexander Wey, Universität Bonn Indexstrukturen für Datenbanken, Signature Files Seite : 1 Proseminar: Indexstrukturen für Datenbanken Signature Files Alexander Wey [email protected] Sommersemester 2000

Proseminar: Indexstrukturen für Datenbanken Signature Files

  • Upload
    csilla

  • View
    78

  • Download
    0

Embed Size (px)

DESCRIPTION

Proseminar: Indexstrukturen für Datenbanken Signature Files. Sommersemester 2000. Alexander Wey [email protected]. Überblick. Was sind Signature Files ? Wie erstelle ich Signature Files ? Vertikale Partionierung (ohne Kompression) Vertikale Partionierung (mit Kompression) - PowerPoint PPT Presentation

Citation preview

Page 1: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

Proseminar: Indexstrukturen für DatenbankenSignature Files

Alexander Wey

[email protected]

Sommersemester 2000

Page 2: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

Überblick

Was sind Signature Files ?

Wie erstelle ich Signature Files ?

Vertikale Partionierung (ohne Kompression)

Vertikale Partionierung (mit Kompression)

Literaturquellen

Schlussbemerkung

Page 3: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

Was sind Signature Files ?

Signature Files basieren auf der Idee des inexakten Filters :

Einträge einer Datenbasis, welche eine bestimme Bedingung erfüllen, können effizient herausgefiltert werden (z.B. Suchanfragen)

Leider können hierbei Fehler auftreten, d.h. es werden falsche Einträge herausgefiltert (sogenannte False Drops)

Signaturen werden durch die Abbildung von Wörtern auf Bitstrings mittels Hash-Funktion erzeugt.

Dokumente werden in einer Textdatei gespeichert und die Signaturen in einer separaten Datei, dem Signature File

Page 4: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

Vor – und Nachteile

Signatur – basierte Methoden sind ca. 1 bis 2 Größenordnungen schneller als String – Matching

Der zusätzlich benötigte Speicherplatz ist sehr gering Signatur – basiert : 10 – 15 % mehr Speicherplatz Invertierte Listen : 50 – 300 % mehr Speicherplatz

Einfügungen sind ohne Reorganisation der Signature Files möglich. Einfügen geschieht durch „anhängen“ Dadurch in WORM – Systemen (Write once, Read many) gut anwendbar

Nachteil : False Drops und Ineffizienz für große Datenbanken

Page 5: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

Wie erstelle ich Signature Files ???

Das am meisten angewendete Verfahren zur Erstellung einer Signatur heißt Superimposed Coding Man bildet eine vorgegebene Zahl D von Wortsignaturen und überlagert

dann diese

Vorgehensweise : Dokument in logische Blöcke unterteilen Ein Block enthält eine konstante Anzahl D zu indexierenden Wörtern

(Wörter eines Blockes sind alle unterschiedlich) Jetzt wird für jeden Block des Dokumentes, die einzelnen Signaturen der

Wörter gebildet

Jede Wortsignatur besteht aus einem Bit-Muster der Größe F in dem m Bits per Hash-Funktion gesetzt werden

Page 6: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

Ein Beispiel zur Überlagerung

Die Wortsignaturen werden mit ODER verknüpft und bilden damit die Blocksignatur

Beispiel (Größe F = 12 Bits, m = 4 Bits pro Wort, D= 2 Wörter)

Wort Signatur

Free 001 000 110 010

Text 000 010 101 001

Blocksignatur 001 010 111 011

Um die Signatur des gesamten Dokumentes zu erhalten (Signature File) werden alle Blocksignaturen aneinandergehängt

Page 7: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

Suchanfrage

Das erzeugte Signature File können wir nun zum Suchen nach einem Wort z verwenden

Vorgehensweise : Für das zu suchende Wort z wird dessen Signatur Sz erzeugt. Das Signature File wird durchsucht, indem für jede Blocksignatur Sb eine

UND – Verknüpfung (bitweise) mit der Signatur des Suchwortes durchgeführt wird

Wenn Sz = Sz UND Sb gilt, wird b in die Menge der richtigen Kandidaten aufgenommen

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

Man erhält nun die Menge der Ergebnisse

Page 8: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

Sequential Signature Files

Im Prinzip stellt ein Signature File für N Blöcke eine Bitmatrix F x N dar

Der einfachste Weg diese Matrix zu speichern, ist nacheinander die Zeilen zu speichern (SSF)

Hierzu braucht man neben der Datenbasis und dem Signature File eine weitere Datei, welche auf die Blöcke verweist

Diese Verweisdatei enthält für jede Zeile der Signaturmatrix einen Verweis auf die entsprechende Position in der Datenbasis

Page 9: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

Schema von SSF

0 1 ... 0 1

1

1

...

1

0

1

F Bits

N Blöcke

TextdateiVerweisdatei

Page 10: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

Kompression

Um kostbaren Speicherplatz zu sparen, kann man die Signatur komprimieren

Gut komprimieren lassen sich Signaturen mit wenig gesetzten Bits

Bei der Erstellung einer Wortsignatur wählt daher man den Parameter m möglichst klein

Die Idee der Kompression basiert darauf, die Intervalle zwischen den gesetzten Bits zu erfassen (run-length encoding – Verfahren)

Page 11: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

Beispiel zur Kompression

L1 L2 L3 L4 L5

Blocksignatur = 0000 1 00 1 000000 1 0 1 000

Wort Signatur

Data 0000 0000 0000 0010 0000

Base 0000 0001 0000 0000 0000

Management 0000 1000 0000 0000 0000

System 0000 0000 0000 0000 1000

Blocksignatur 0000 1001 0000 0010 1000

Die erzeugte Blocksignatur kann in Gruppen unterteilt werden :

Page 12: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

Bit – Block Kompression BC

Basiert auf der Komprimierung der Bit-Blöcke

Auch hier werden die Signaturen sequentiell gespeichert, zuvor aber komprimiert

Für jeden Bit-Block erstellen wir eine Signatur mit einer variablen Größe

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 bopt angepasst

Page 13: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

Beispiel für Bit – Block Kompression

Die Signatur besteht aus 3 Teilen

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

2. Teil : gibt die Anzahl der gesetzten Bits im Bitblock an. Dabei wird die Anzahl – 1 gespeichert und eine 0 angehängt

3. Teil : gibt den Abstand zwischen dem Anfang des Bitblocks und der gesetzten Bits an

0000 1001 0000 0010 1000

Teil 1 0 1 0 1 1

Teil 2 10 0 0

Teil 3 0011 10 00

Das komprimierte SSF lautet : 01011 1000 00111000

Page 14: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

Vertikale Paritionierung (ohne Kompression)

Bei der vertikalen Partionierung speichert man die Signaturmatrix spaltenweise in sogenannten Bit – slices (zu deutsch : Scheiben) Idee : Unnötige Informationen werden nicht in den Hauptspeicher geladen. Bei SSF – Verfahren werden die Blocksignaturen komplett gelesen

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

Wir lernen jetzt folgende Konzepte kennen : BSSF (Bit-sliced Signature Files)

BSS`F FSSF (Frame – sliced Signature Files) GFSSF (Generalized frame – sliced Signature Files)

Page 15: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

Bit – sliced Signature Files (BSSF)

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

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 Diese verküpft man mit UND, um einen Vektor der Länge N zu erhalten. Die Stellen des Vektors, wo Bits gesetzt sind, deuten auf die zugehörigen

logischen Blöcke hin

Das Einfügen eines Eintrages benötigt F Plattenzugriffe, einen pro Datei

Page 16: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

BSSF - Schema

0 1 1 1 1 0 1

1

0

1

N - Blöcke

F D

ateien

Verweisdatei

N

Page 17: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

BSS‘F

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)

BSS‘F wählt den Parameter m möglichst klein, damit die Anzahl der Plattenzugriffe sinkt

Hierfür werden größere Signaturen benötigt, damit eine annähernd gleiche False Drops Wahrscheinlichkeit erreicht werden kann

Page 18: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

Frame – Sliced Signature Files (FSSF)

Idee : Man speichert ähnliche Signaturen mittels Hash – Funktionen hintereinander

Dies hat den großen Vorteil, dass bei einer Suchanfrage sequentiell und nicht zufällig auf die Platte zugegriffen wird

Geschwindigkeitssteigerung

Die Dokumentsignatur wird in k Frames mit s Bits aufgeteilt

Jedes Wort wird einem Frame per Hash – Funktion zugeordnet. Mit einer anderen Hash – Funktion werden dann m Bits im Frame gesetzt

Page 19: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

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

Wort Signatur

Free 000000 110010

Text 010110 000000

Dokumentsignatur 010110 110010

Bei der Suche brauchen wir nur ein Frame pro Wort zu laden

Page 20: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

Generalized Frame – sliced Signature Files (GFSSF)

SSF, BSSF, BSS‘F, FSSF sind Spezialfälle von GFSSF. Zur Wiederholung , die Parameter :

F = Größe des logischen Blockes m = Anzahl der gesetzten Bits im Block n = Anzahl festgelegter Frames mit m gesetzten Bits k = Anzahl der Frames

Es handelt sich um SSF, wenn k = 1 und n= 1 (Dokumentsignatur besteht aus einem Frame)

Es handelt sich um BSSF, BSS‘F, wenn k=F und n=m

Wenn n=1 gilt, dann liegt die FSSF Methode vor

Page 21: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

Vertikale Partionierung (mit Kompression)

Wir haben kennengelernt, wie man Signaturmatrizen mit wenig gesetzten Bits komprimiert

Dieses Verfahren wenden wir an, und speichern nur die Abstände der gesetzten Bits für jede Bitscheibe

Übersicht über folgenden Methoden : Compressed Bit Slices Doubly Compressed Bit Slices No False Drops Method

Page 22: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

Compressed Bit Slices (CBS)

Wir verlangen, dass m = 1 gilt. Erinnerung : Für jedes gesuchte Wort müssen m Bit Dateien gelesen

werden Die Größe F der Signatur muss wegen den False Drops erhöht werden

Die Signaturen werden in sogenannten „Posting Buckets“ der Größe Bp gespeichert (Verweisdatei wird überflüssig)

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

Um die Bit – slices zuzuordnen, benötigt man eine Zuordnungstabelle (Hash – Tabelle) Dokumente brauchen nicht mehr in logische Blöcke unterteilt werden

Page 23: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

CBS – Abbildung & Beispiel

Das Wort „base“ wird an die 30. Position gehasht (h(base)=30)

Im zugehörigen „Posting Bucket“ verweiset ein Zeiger auf das 1145 Byte in der Textdatei

Der „Posting Bucket“ wird mitsamt seiner verküpften Buckets in den Hauptspeicher geladen.

Page 24: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

Doubly Compressed Bit Slices (DCBS)

Idee: Man komprimiert zusätzlich noch die Zuordnungstabelle

Analog zu CBS benutzt man eine Hash - Funktion h1(), um die Position in der Zuordnungstabelle zu bestimmen

Eine zusätzliche Hash - Funktion h2() unterscheidet zwischen Synonymen (sinnesverwandte Wörter) Die Funktion h2() liefert Bitstrings der Länge h, welche in einer

„intermediate“ – Datei gespeichert werden Die „intermediate“ – Datei besteht aus Buckets der Größe Bi

Jeder Bucket hat Einträge der Form (Hashcode, Zeiger) Der Zeiger verweist auf eine Liste von entsprechenden „Posting Buckets“

Page 25: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

DCBS - Beispiel

Die Länge der Bitstrings, welcher h2 liefert, ist hier h=3

Wie bei CBS : h1(base) = 30

Zusätzlich : h2(base) = (011)2

Page 26: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

No False Drops Method (NFD)

Bei dieser Methode entstehen keine False Drops Dabei müssen nicht alle Wörter gespeichert werden Es genügt die „intermediate“ – Datei vom DCBS – Verfahren zu verändern

Es kommt ein zusätzlicher Zeiger auf das Wort im Dokument hinzu

Ein Eintrag in der „intermediate“ – Datei hat bei NFD die Form : (Hashcode, Zeiger auf „Posting Buckets“, Zeiger auf Wort)

Vorteil : Jedes Wort kann von seinen Synonymen getrennt werden

Der Zeiger auf das Wort im Dokument liefert folgende Vorteile : Speicherplatz gegenüber der Volltextspeicherung wird gespart Die Einträge in der „intermediate“ – Datei haben eine konstante Größe Daher entfallen Terminierungssymbole zur Bestimmung des Ende eines Wortes Ein Wort kann die Aufnahmefähigkeit eines Buckets sprengen

Page 27: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

NFD – Abbildung & Beispiel

Suchanfrage analog wie bei DCBS

Unterschied : Wenn ein passender Hashcode gefunden wurde, wird dem zugehörigen Zeiger auf das Wort gefolgt, um Synonyme auszuschließen

Page 28: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

Literaturquellen

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)

Page 29: Proseminar: Indexstrukturen für Datenbanken Signature Files

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

Schlußbemerkung

Für Datenbanken mittlerer Größe stellen die Signature Files eine effiziente Indexstruktur für Datenbanken dar

Suchanfragen und Einfügung neuer Daten gestalten sich recht einfach

Die Effizienz der kennengelernten Konzepte sind erheblich von der Wahl der Parameter abhängig

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.