Das Kefk Network Wiki befindet sich im Testbetrieb.


Datalog

Aus Kefk.

Wechseln zu: Navigation, Suche

Datalog ist eine Datenbank-Programmiersprache, die Prolog syntaktisch und semantisch ähnelt.

Sie geht zurück auf die Arbeit von Herve Gallaire und Jack Minker im Jahr 1978. Sie ist eigentlich nur von theoretischer Bedeutung, da es bis heute keine kommerzielle Datenbank gibt, die Datalog anbietet.

Datalog unterscheidet sich von Prolog in den folgenden Punkten:

  1. Zusammengesetzte Terme dürfen nicht als Argumente von Prädikaten vorkommen. So ist zum Beispiel P(1,2) erlaubt, P(f(1),2) dagegen verboten.
  2. In Datalog geschriebene Programme müssen im Hinblick auf Negation und Rekursion stratifiziert sein.
  3. Datalog-Programme können effizient bottom-up ausgewertet werden, wobei nur eine endliche Menge an Fakten abgeleitet werden kann und die Auswertungszeit beschränkt ist.
  4. Die Reihenfolge der Regeln spielt in einem Datalog-Programm keine Rolle.

Ein Vorteil gegenüber relationalen Kalkülen ist die Möglichkeit, Rekursion ohne vorgegebene Rekursionstiefe definieren zu können. Die Terminierung der Rekursion kann durch deduktive Abgeschlossenheit erreicht werden, also durch Erreichen des kleinsten Fixpunktes.

Beispiel-Programm

% 1 ist kleiner als 3
kleiner(1,3).
% 2 ist kleiner als 3
kleiner(2,3).
% 3 ist kleiner als 5
kleiner(3,5).
% X ist kleiner als Z, wenn es ein Y gibt, so dass X kleiner ist als Y und Y kleiner als Z
kleiner(X,Z) :- kleiner(X,Y), kleiner(Y,Z).
% Anfrage: Ist 1 kleiner als 5?
?- kleiner(1,5).

Weblinks

Wikipedia
Dieses Dokument entstammt in seiner ersten oder einer späteren Version der deutschsprachigen Wikipedia. Es ist dort zu finden unter dem Stichwort Datalog, die Liste der bisherigen Autoren befindet sich in der Versionsliste; die Originalfassung kann dort auch bearbeitet werden. Alle Texte der Wikipedia und ihre Derivate stehen unter der GNU-Lizenz für freie Dokumentation.
Persönliche Werkzeuge
Andere Sprachen