Defaults in deduktiven Datenbanken
Defaults in deduktiven Datenbanken
Defaults in deduktiven Datenbanken
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
134 KAPITEL 6. BERECHNUNG VON ANTWORTENNatürlich wird man mit e<strong>in</strong>em Standard-Datenbanksystem nicht die größtmöglicheEffizienz erreichen können, an e<strong>in</strong>igen Stellen s<strong>in</strong>d noch etwas umständliche Formulierungennötig, die höchstens e<strong>in</strong> sehr <strong>in</strong>telligenter Optimierer geschickt auswerten könnte.Etwas besser wäre schon e<strong>in</strong> NF 2 -Datenbanksystem, wie es <strong>in</strong> [BL92] verwendet wurde.Auch dort s<strong>in</strong>d aber e<strong>in</strong>e ganze Reihe von Restrukturierungen nötig, von denen zu hoffenist, daß sie nicht wirklich ausgeführt werden.Im folgenden wird die ”flache“ Relationenalgebra verwendet, weil entsprechende Datenbanksystemeleichter verfügbar s<strong>in</strong>d, und für Prototypen spielt die Effizienz ja nur e<strong>in</strong>euntergeordnete Rolle. Vor allem aber s<strong>in</strong>d die Implementierungstechniken bekannter, sodaß man den Aufwand der verschiedenen Operationen oder auch mögliche Optimierungenbesser e<strong>in</strong>schätzen kann.Der Idealfall bleibt natürlich e<strong>in</strong> Datenbanksystem, bei dem auch die unteren Schichtenan diese Anwendung angepaßt s<strong>in</strong>d. Auch bei diesem Ziel ist aber das folgende Beispielnützlich, um zu sehen, wo die Standard-Techniken e<strong>in</strong>gesetzt werden können.Es sei folgende typische Regel R1 gewählt:p(X, a) ∨ p(X, b) ← q 1 (X, Y ) ∧ q 2 (Y, c).Nun ist zunächst e<strong>in</strong>e relationale Darstellung für ˆΦ zu wählen. E<strong>in</strong>e besonders e<strong>in</strong>facheLösung ist, nur e<strong>in</strong>e e<strong>in</strong>zige Tabelle zu verwenden. Es gibt natürlich e<strong>in</strong>e ganze ReiheAlternativen, die im folgenden kurz angedeutet werden.DIS FACTSid pred arg1 arg2 active lit length1 q 1 a d T q 1 (a, d) 21 r a — F r(a) 22 q 1 b e T q 1 (b, e) 13 q 2 d c T q 2 (d, c) 14 q 2 e c T q 2 (e, c) 24 r e — F r(e) 2Diese Tabelle repräsentiert folgende Menge von disjunktiven Fakten:ˆΦ 0 := {q 1 (a, d) ∨ r(a), q 1 (b, e), q 2 (d, c), q 2 (e, c) ∨ r(e)}.Die Attribute bedeuten folgendes:• id: Mit diesem Attribut werden die Literale e<strong>in</strong>es disjunktiven Faktums verkettet.• pred: Das Prädikat des <strong>in</strong> dem Tupel dargestellten Literals.• arg1: Das erste Argument des Literals.• arg2 : Das zweite Argument des Literals (bei Bedarf wird e<strong>in</strong> Nullwert e<strong>in</strong>getragen).• active: ”T“, falls das aktive Literal <strong>in</strong> dieser Disjunktion, ”F“ sonst.• lit: Es vere<strong>in</strong>facht die Überprüfung der Ordnung zwischen den Literalen sowieVerbund-Bed<strong>in</strong>gungen, wenn das Literal auch noch e<strong>in</strong>mal als Zeichenkette vorliegt.Ansonsten ist diese Information natürlich redundant. Die Bezeichner für answer