Tato diplomová práce se zabývá překladem logického programu do uložených objektů SŘBD PostgreSQL. V první části jsou objasněné základní pojmy týkající se logického programování, programovacího jazyka PL/pgSQL a teorie grafů. Dále je podrobně popsán algoritmus transformace logického programu do uložených objektů SŘBD PostgreSQL a realizace programu PrologToPostgreSQL, který tuto transformaci zajišťuje. Velká pozornost je věnována vytvoření hlavní funkce, která respektuje vztahy mezi uloženými funkcemi a volá je v co nejvýhodnějším pořadí. Tento vytvořený program se v budoucnu stane součástí experimentálního deduktivního databázového systému. V poslední části jsou zmíněny výsledky testování aplikace.
Annotation in English
This thesis focuses on the translation of logic program into stored objects in PostgreSQL DBMS. In the first part, it clarifies the basic concepts of logic programming, the PL/pgSQL language and the theory of graphs. It also describes in detail the algorithm of transformation of logic program into stored objects in PostgreSQL DBMS and the PrologToPostgreSQL program, which deals with the transformation. A great degree of attention is devoted to creating of the main function respecting the relations between the stored functions and calling them in the most effective order. In the future, this program will become the part of experimental deductive database system. In the last part, the results of the testing are mentioned.
Keywords
logický program, uložené databázové objekty, PostgreSQL, deduktivní databázový systém
Keywords in English
logic program, stored database objects, PostgreSQL, deductive database system
Length of the covering note
68 s. (104 000 znaků).
Language
CZ
Annotation
Tato diplomová práce se zabývá překladem logického programu do uložených objektů SŘBD PostgreSQL. V první části jsou objasněné základní pojmy týkající se logického programování, programovacího jazyka PL/pgSQL a teorie grafů. Dále je podrobně popsán algoritmus transformace logického programu do uložených objektů SŘBD PostgreSQL a realizace programu PrologToPostgreSQL, který tuto transformaci zajišťuje. Velká pozornost je věnována vytvoření hlavní funkce, která respektuje vztahy mezi uloženými funkcemi a volá je v co nejvýhodnějším pořadí. Tento vytvořený program se v budoucnu stane součástí experimentálního deduktivního databázového systému. V poslední části jsou zmíněny výsledky testování aplikace.
Annotation in English
This thesis focuses on the translation of logic program into stored objects in PostgreSQL DBMS. In the first part, it clarifies the basic concepts of logic programming, the PL/pgSQL language and the theory of graphs. It also describes in detail the algorithm of transformation of logic program into stored objects in PostgreSQL DBMS and the PrologToPostgreSQL program, which deals with the transformation. A great degree of attention is devoted to creating of the main function respecting the relations between the stored functions and calling them in the most effective order. In the future, this program will become the part of experimental deductive database system. In the last part, the results of the testing are mentioned.
Keywords
logický program, uložené databázové objekty, PostgreSQL, deduktivní databázový systém
Keywords in English
logic program, stored database objects, PostgreSQL, deductive database system
Research Plan
Seznamte se s procedurálním jazykem PL/pgSQL, který je podporovaný SŘBD PostgreSQL.
Navrhněte způsob, jak přepisovat logická pravidla do uložených funkcí a generovaná data pravidel ukládejte do odpovídajících tabulek. Zvláštní pozornost věnujte přepisu a vyhodnocení rekurzivních pravidel.
Navržený postup přepisu implementujte v jazyce Java. Výstup aplikace bude buď do souboru, nebo bude přímo generován do databáze s využitím JDBC.
Správnost přepisu ověřte na sadě logických programů a tam, kde je to možné, porovnejte odpovědi na stejné dotazy v logickém i databázovém prostředí.
Research Plan
Seznamte se s procedurálním jazykem PL/pgSQL, který je podporovaný SŘBD PostgreSQL.
Navrhněte způsob, jak přepisovat logická pravidla do uložených funkcí a generovaná data pravidel ukládejte do odpovídajících tabulek. Zvláštní pozornost věnujte přepisu a vyhodnocení rekurzivních pravidel.
Navržený postup přepisu implementujte v jazyce Java. Výstup aplikace bude buď do souboru, nebo bude přímo generován do databáze s využitím JDBC.
Správnost přepisu ověřte na sadě logických programů a tam, kde je to možné, porovnejte odpovědi na stejné dotazy v logickém i databázovém prostředí.