Dotazovací jazyk pro relační databáze
Název práce v češtině: | Dotazovací jazyk pro relační databáze |
---|---|
Název v anglickém jazyce: | Query langauge for relational databases |
Klíčová slova: | databáze|dotazovací jazyk|sql|postgresql |
Klíčová slova anglicky: | database|query language|sql|postgresql |
Akademický rok vypsání: | 2023/2024 |
Typ práce: | bakalářská práce |
Jazyk práce: | |
Ústav: | Katedra distribuovaných a spolehlivých systémů (32-KDSS) |
Vedoucí / školitel: | Mgr. Tomáš Petříček, Ph.D. |
Řešitel: | skrytý - zadáno a potvrzeno stud. odd. |
Datum přihlášení: | 01.02.2024 |
Datum zadání: | 01.02.2024 |
Datum potvrzení stud. oddělením: | 01.02.2024 |
Zásady pro vypracování |
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. |
Seznam odborné literatury |
[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/ |