Query langauge for relational databases
Thesis title in Czech: | Dotazovací jazyk pro relační databáze |
---|---|
Thesis title in English: | Query langauge for relational databases |
Key words: | dotazovací jazyk|relační databáze|návrh jazyků|SQL|Postgres|PostgreSQL |
English key words: | query language|relational database|language design|SQL|Postgres|PostgreSQL |
Academic year of topic announcement: | 2023/2024 |
Thesis type: | Bachelor's thesis |
Thesis language: | angličtina |
Department: | Department of Distributed and Dependable Systems (32-KDSS) |
Supervisor: | Mgr. Tomáš Petříček, Ph.D. |
Author: | hidden - assigned and confirmed by the Study Dept. |
Date of registration: | 01.02.2024 |
Date of assignment: | 01.02.2024 |
Confirmed by Study dept. on: | 01.02.2024 |
Date of electronic submission: | 08.05.2024 |
Opponents: | RNDr. David Bednárek, Ph.D. |
Guidelines |
The SQL language is the dominant interface for querying relational databases. However, as a programming language, SQL has a number of limitations. The langauge often relies on ad-hoc extensions and queries cannot generally be constructed in a compositional way (building more complex queries from smaller parts). The aim of this thesis is to design a novel query language for relational databases and implement a support for the language in PostgreSQL [4]. The language will offer a more uniform and composable model for constructing queries based on two primitive notions, filters and functions.
The language design can draw on existing composable query systems such as LINQ, XQuery [5] and Pig latin [1]. It can be implemented as a PostgreSQL [4] extension that translates the input to an appropriate PostgreSQL query representation, by mapping the (compositional) input query to a corresponding (more ad-hoc) SQL-like representation, using translation techniques such as [2, 3]. The work should result in a langauge impementation with a number of case studies that illustrate its compositionality and uniformity, as well as a rigorous (either formal or informal) description of the langauge and interesting aspects of the translation procedure. |
References |
[1] Olston, C., Reed, B., Srivastava, U., Kumar, R. and Tomkins, A., 2008, June. Pig latin: a not-so-foreign language for data processing. In Proceedings of the 2008 ACM SIGMOD international conference on Management of data (pp. 1099-1110).
[2] Grust, T., Rittinger, J. and Schreiber, T., 2010. Avalanche-safe LINQ compilation. Proceedings of the VLDB Endowment, 3(1-2), pp.162-172. [3] Shaikhha, A., Klonatos, Y., Parreaux, L., Brown, L., Dashti, M. and Koch, C., 2016, June. How to architect a query compiler. In Proceedings of the 2016 International Conference on Management of Data (pp. 1907-1922). [4] The PostgreSQL Global Development Group, 2024. PostgreSQL 16.1 Documentation. Online at: https://www.postgresql.org/docs/ [5] Robie, J., Dyck, M., Spiegel, J. (eds.), 2017. XQuery 3.1: An XML Query Language. W3C Recommendation. Online at: https://www.w3.org/TR/xquery-31/ |