Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Indizierung von Graphen durch häufige Subgraphen (2) Maria Tsitiridou Indizieren und.

Ähnliche Präsentationen


Präsentation zum Thema: "Indizierung von Graphen durch häufige Subgraphen (2) Maria Tsitiridou Indizieren und."—  Präsentation transkript:

1 Indizierung von Graphen durch häufige Subgraphen (2) Maria Tsitiridou Indizieren und Anfragen von Graphen in Datenbanken Seminar, WS 2007/

2 Überblick Einführung -Tolerance Closed Frequent subGraphs ( TCFGs) Index-Konstruktion Abfrage-Verarbeitung Performanz-Bewertung Schlussfolgerung und zukünftige Arbeiten

3 Einführung Graph: Immer mehr Graphendatenbanken => effiziente Abfrageverarbeitung notwendig!! Neuer effizienter Index für die Verarbeitung von Graphabfragen

4 Einführung Grundlegende Begriffe: Größe von g size(g):= Die Anzahl der Kanten in g Subgraph:= g Subgraph von g, (g g), wenn eine Subgraph- Isomorphie von g nach g existiert. FG abgeschlossen (closed):= g ist abgeschlossen, wenn g F: g g und freq(g)=freq(g) FG maximal := g ist maximal, wenn g F : g g

5 Einführung Graph-Abfrage: Sei D={g 1,…,g n } eine Graphdatenbank Eine Graph-Abfrage : Gegeben sei ein Graph q, finde alle g i D so, dass g i Übergraph von q, g i q

6 Einführung

7

8 Bisherige Lösungen: 1.Filtern: Nutze einen Index um einen Teil von falschen Ergebnissen auszusortieren und erzeuge eine potentielle Antwortmenge (Kandidat) 2.Kandidaten-Überprüfung: Überprüfe, ob jeder Kandidat ein Übergraph von q ist. Die Kandidaten-Menge ist kleiner als die DB => effizienter als die sequentielle Überprüfung, aber immer noch teuer!

9 Einführung FG-Index [SIGMOD07]: wurde konstruiert auf der Basis von häufigen Subgraphen (FGs) FG: Frequent subGraph g ist ein häufiger Subraph (FG), wenn g ein Subgraph von mindestens ( |D|) Graphen in einer Datenbank D, wobei 0 ist ein vordefinierter Grenzwert

10 Einführung Fallunterscheidung bei der Verwendung vom FG-Index: 1.q ist häufiger Subgraph (FG) Antwort sofort ohne Kandidaten-Verifikation

11 Einführung Fallunterscheidung bei der Verwendung vom FG-Index: 2.q ist kein häufiger Subgraph Kandidatenmenge wird erzeugt

12 Einführung

13 Herausforderung: Die Menge der FGs ist groß, wenn klein. Viele FGs => großer Index => Hohe Zugriffskosten, wenn der Index zu groß für den Hauptspeicher=>Schlechte Abfrage-Performanz Lösung: Kompressionstechnik anwenden ( -TCFGs) Über die Größe des Index regeln Jedes -TCFG ist ein stellvertretender Übergraph von einem Cluster von FGs.

14 -TCFGs -TCFGs : Gegeben sei ein benutzerdefinierter Faktor mit 0 Ein häufiger Subgraph g ist ein -TCFG, wenn g F : g g und freq(g) freq(g)

15 -TCFGs d e freq(g)/ freq(g) wenn d e TCFG Sonst kein TCFG Bsp.: =0.04 T={f 1,f 4,f 5,f 8,f 9, f 13 }

16 Abschluß (closure) eines -TCFGs Nächster (closest) -TCFG Übergraph g t ist der nächste -TCFG Übergraph von g, wenn g t ein -TCFG und g kein -TCFG ist g t g und g t : g t g t

17 Abschluß (closure) eines -TCFGs

18 closure eines -TCFGs: Gegeben sei ein -TCFG g t, CLOS(g t )={g: g t ist der nächste -TCFG Übergraph von g } Der nächste -TCFG Übergraph von einem FG ist eindeutig. Bsp.: CLOS(f 13 )={f 7,f 10, f 11, f 12 }

19 Index-Konstruktion Invertierter Graph Index (IGI): Ein invertierter Index erstellt über eine Menge von Graphen G Ein Hash-Index aus der Menge der eindeutigen Kanten in G Jede Kante ist mit einer Menge von IDs von Graphen in G verknüpft, die die Kante enthalten. Die IDs sind nach der Graphengröße weiter klassifiziert, um effiziente Suche zu erzielen

20 Index-Konstruktion Invertierter Graph Index (IGI):

21 Index-Konstruktion Zwei-Level-Index-Struktur: 1.Im Hauptspeicher gehalten: Ein (IGI) erstellt aus der Menge der -TCFGs 2.Auf Festplatte gespeichert: Ein (IGI) erstellt aus dem Abschluss von jedem -TCFG.

22 Vollständigkeit des Index Der Index sollte in der Lage sein, jede Abfrage zu beantworten. Allerdings deckt der FG-Index nur die Abfragen ab, die häufige Subgraphen sind. Edge-Index (Hash-Index) : gebildet aus der Menge der nicht- häufigen eindeutigen Kanten in der Datenbank. Abfragen, die keine häufigen Subgraphen sind, können durch Zusammenfügen dieser Kanten beantwortet werden.

23 Abfrage-Verarbeitung Abfrage q ist ein FG Den Hash-Index verwenden, um die Menge der Kanten von q im FG-Index zu finden Den Durchschnitt von den Graph-IDs-Arrays bilden, die mit den Kanten verknüpft sind

24 Abfrage-Verarbeitung Abfrage q ist ein FG Der erste Übergraph, den wir über den Durchschnitt erhalten, ist entweder q oder qs nächster -TCFG Übergraph. Wenn q immer noch nicht gefunden wurde auf den verschachtelten IGI-Index von qs nächsten -TCFG Übergraphen zugreifen Wiederhole rekursiv bis q gefunden wird.

25 Abfrage-Verarbeitung Abfrage q ist kein FG Verwende den FG-Index, um eine Menge von maximalen Subgraphen von q, G s, zu finden. Verwende Edge-Index, um die Menge der nicht-häufigen Kanten von q, G e, zu finden

26 Abfrage-Verarbeitung Abfrage q ist kein FG Man erlange die Kandidaten-Menge von q, indem man den Durchschnitt von der Antwortmenge von den Graphen in G s und G e bildet Überprüfe für jeden Kandidat, ob er ein Übergraph von q ist.

27 Performanz-Bewertung Datenmengen Reale Datenmenge: 10K Graphen einer Menge von chemischen Molekülen aus der AIDS-Forschung Künstliche Datenmengen für Skalierbarkeits-Tests bzgl. 1.Datenbankgröße:von 10K bis 100K Graphen 2.Graphengröße:von 20 bis 100 Kanten 3.Graphendichte:0.1, 0.15, 0.2

28 Performanz-Bewertung Algorithmus Vergleiche mit gIndex [YYH05] Index-Konstruktions-Performanz (reale Datenmenge) =0.1, FG-Index 20 mal schneller =0.01, FG-Index 5 mal langsamer Grund: Bei =0.1 : |F|= 455, während bei =0.01 |F|=

29 Performanz-Bewertung Algorithmus Vergleiche mit gIndex [YYH05] Index-Konstruktions-Performanz (reale Datenmenge) =0.1, FG-Index 20 mal schneller =0.01, FG-Index 5 mal langsamer Grund: Bei =0.1 : |F|= 455, während bei =0.01 |F|= FG_Index ( =0.1) FG_Index ( =0.01) gIndex Time (sec)10.03 ( )1085 ( )217 Memory (MB) |T| or |F d |

30 Performanz-Bewertung Abfrage-Antwortszeit (reale Datenmenge) Qi: Menge von 1000 Abfragen Jede Abfrage enthält i Kanten

31 Performanz-Bewertung Abfrage-Antwortszeit (reale Datenmenge) Qi: Menge von 1000 Abfragen Jede Abfrage enthält i Kanten

32 Performanz-Bewertung Speicherverbrauch (div. Abfrage-Größen) Speicherverbrauch ( FG-Index ) gering und stabil viel geringer als gIndex

33 Schlussfolgerung FG-Index: Im Hauptspeicher abgelegt: – Menge der -TCFGs – Größe gesteuert über auf Festplatte gespeichert: – Andere FGs (keine -TCFGs) indiziert mit verschachtelten invertierten Indexes, die effiziente Suche erlauben.

34 Schlussfolgerung Abfrage-Verarbeitung: Abfrage q ist FG: – Antwortmenge ohne Kandidaten-Verifikation Abfrage q ist kein FG: – Minimale Kandidaten-Verifikation

35 Schlussfolgerung In der Zukunft: Abfrage-Verarbeitung bei großen einzelnen Graphen. – Effiziente Abfrage bei div. Sozialen Netzwerken, Web usw. – Was indizieren und wie? Ähnlichkeitssuche in Graph-Datenbanken – Exakte Übereinstimmung einschränkend f. manche Anwendungen – Ähnlichkeitsabfragen: Weglassen von manchen Kanten in der Query


Herunterladen ppt "Indizierung von Graphen durch häufige Subgraphen (2) Maria Tsitiridou Indizieren und."

Ähnliche Präsentationen


Google-Anzeigen