Details
Title | Разработка библиотеки для работы с хронологическими типами данных для СУБД PostgreSQL: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_01 «Технология разработки и сопровождения качественного программного продукта» |
---|---|
Creators | Варнавский Игорь Витальевич |
Scientific adviser | Прокофьев Олег Валерьевич |
Organization | Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности |
Imprint | Санкт-Петербург, 2025 |
Collection | Выпускные квалификационные работы ; Общая коллекция |
Subjects | postgresql ; rust ; хронологические типы данных ; операторы аллена ; временные интервалы ; temporal data types ; allens interval algebra ; time intervals |
Document type | Bachelor graduation qualification work |
File type | |
Language | Russian |
Level of education | Bachelor |
Speciality code (FGOS) | 09.03.04 |
Speciality group (FGOS) | 090000 - Информатика и вычислительная техника |
DOI | 10.18720/SPBPU/3/2025/vr/vr25-1157 |
Rights | Доступ по паролю из сети Интернет (чтение, печать, копирование) |
Additionally | New arrival |
Record key | ru\spstu\vkr\35792 |
Record create date | 7/30/2025 |
Allowed Actions
–
Action 'Read' will be available if you login or access site from another network
Action 'Download' will be available if you login or access site from another network
Group | Anonymous |
---|---|
Network | Internet |
Тема выпускной квалификационной работы: «Разработка библиотеки для работы с хронологическими типами данных для СУБД PostgreSQL». Данная выпускная квалификационная работа посвящена реализации библиотеки-расширения, которое содержит набор хронологических операций для работы с интервальными типами в реляционной СУБД. Задачи, которые решались в ходе разработки: 1.Выбор СУБД и средств разработки для реализации функций и операторов 2.Определение типов внутри СУБД, для разрабатываемых функций 3.Создание необходимого уровня абстракции 4.Определение математического аппарата для формализации запросов 5.Реализация хронологических операций Была выбрана СУБД PostgreSQL из-за наличия в ней поддержки интервальных типов данных. Реализованные операторы поддерживают полиморфизм и все стандартные хронологические интервальные типы PostgreSQL. В качестве средства разработки был выбран язык Rust и библиотека PGRX. Rust обеспечивает безопасное управление памятью, что исключает многие ошибки, PGRX предоставляет удобные механизмы для реализации различных аспектов работы с PostgreSQL. В результате библиотека была реализована как встраиваемое в PostgreSQL расширение. Полученный уровень абстракции универсален и подходит для решения многих задач. Он реализован в соответствие с подходом про хронологизации К. Дж. Дейта. В математическом аппарате были даны четкие определения понятиям “интервал времени”, “временная шкала”. Были реализованы, операторы Аллена, обобщения стандартных реляционных операторов, функции PACK и UNPACK, операторы U_MINUS, U_INTERSECT, U_UNION и U_EQAULS для работы с несколькими отношениями. В результате тестирования было определено, что потери производительности не происходит, реализованные в расширении функции показывают более высокую скорость выполнения, чем функции написанные на SQL. Для достижения данных результатов в работе были использованы следующие информационные технологии: СУБД PostgreSQL, язык программирования и средство сборки Rust, Cargo, инструменты разработки Git и Docker, веб-сервис для хостинга Github.
This final qualification work is dedicated to the implementation of an extension library that provides a set of temporal operations for working with interval types in a relational database management system. The following tasks were addressed during the development process: 1.Selection of the DBMS and development tools for implementing the functions and operators 2.Definition of internal data types within the DBMS for the developed functions 3.Creation of an appropriate level of abstraction 4.Determination of the mathematical framework for query formalization 5.Implementation of temporal operations PostgreSQL was chosen as the DBMS due to its native support for interval data types. The implemented operators support polymorphism and are compatible with all standard PostgreSQL temporal interval types. Rust, along with the PGRX library, was selected as the development tool. Rust offers safe memory management, preventing many common errors, while PGRX provides convenient mechanisms for implementing various aspects of PostgreSQL functionality. As a result, the library was implemented as a PostgreSQL extension. The developed abstraction layer is universal and suitable for solving a wide range of problems. It was implemented in accordance with C.J. Date’s temporal modeling approach. Within the mathematical framework, clear definitions were provided for concepts such as "time interval" and "time scale." Implemented features include Allen’s interval algebra operators, generalized standard relational operators, and the PACK and UNPACK functions, U_MINUS, U_INTERSECT, U_UNION and U_EQUALS operators for working with several relations. As a result of testing it was determined that there is no performance loss, functions implemented in the extension show higher execution speed than functions written in SQL. The following information technologies were used to achieve these results: PostgreSQL DBMS, Rust programming language and build system (Cargo), development tools (Git and Docker), and the GitHub web-based hosting service.
Network | User group | Action |
---|---|---|
ILC SPbPU Local Network | All |
|
Internet | Authorized users SPbPU |
|
Internet | Anonymous |
|
Access count: 0
Last 30 days: 0