Název:
Dotazovací jazyk pro relační databáze
Překlad názvu:
Query langauge for relational databases
Autoři:
Koňařík, David ; Petříček, Tomáš (vedoucí práce) ; Bednárek, David (oponent) Typ dokumentu: Bakalářské práce
Rok:
2024
Jazyk:
eng
Abstrakt: [eng][cze] Relational databases are widely used in software engineering, but the language used to access them, SQL, was created in the 1970s and has numerous problems that make writing complex queries unnecessarily difficult. In this thesis we will present some flaws of SQL, go through select existing alternatives, and define a new query language, PPPQL, based on the concept of a query pipeline. PPPQL improves on SQL by having a consistent syntax and semantics, allowing complex queries to be expressed more simply. We will first introduce PPPQL through a series of examples, then define the syntax and semantics of the language, using a formal description for part of the language. To validate PPPQL's design, the language was implemented as an extension to Post- gres. We will discuss the most interesting parts of its implementation and see how an alternative query language can be implemented in Postgres.Relační databáze jsou široce rozšířené v softwarovém inženýrství, ale jazyk, kterým se k nim přistupuje, SQL, byl vytvořen v 70. letech minulého století a má řadu pro- blémů, které komplikují složitější dotazy. V této práci poukážeme na některé vady SQL, projdeme vybrané existující alternativy a definujeme nový dotazovací jazyk, PPPQL, na základě konceptu posloupnosti transformací. PPPQL má oproti SQL konzistentní syntax a sémantiku, díky čemuž umožňuje jednodušeji vyjádřit komplexní dotazy. Nejprve uvedeme PPPQL skrz řadu příkladů, pak definujeme syntax a sémantiku jazyka, včetně formálního popisu pro část jazyka. Abychom validovali jeho design, jazyk PPPQL byl implementován jako rozšíření do Postgres. Projdeme nejzajímamější části jeho implementace a ukážeme, jak může být alternativní dotazovací jazyk implementován v systému Postgres.
Klíčová slova:
dotazovací jazyk|relační databáze|návrh jazyků|SQL|Postgres|PostgreSQL; query language|relational database|language design|SQL|Postgres|PostgreSQL