Детальная информация

Название Сравнительный анализ производительности хранимых процедур, функций и триггеров в PostgreSQL при использовании PL/pgSQL и PL/Java: выпускная квалификационная работа бакалавра: направление 09.03.02 «Информационные системы и технологии» ; образовательная программа 09.03.02_02 «Информационные системы и технологии»
Авторы Иванова Марина Алексеевна
Научный руководитель Нестеров Сергей Александрович
Организация Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Выходные сведения Санкт-Петербург, 2025
Коллекция Выпускные квалификационные работы ; Общая коллекция
Тематика Postgresql ; хранимая процедура ; функция ; триггер ; PL/pgSQL ; PL/Java ; производительность ; stored procedure ; function ; trigger ; performance
Тип документа Выпускная квалификационная работа бакалавра
Тип файла PDF
Язык Русский
Уровень высшего образования Бакалавриат
Код специальности ФГОС 09.03.02
Группа специальностей ФГОС 090000 - Информатика и вычислительная техника
DOI 10.18720/SPBPU/3/2025/vr/vr25-5144
Права доступа Доступ по паролю из сети Интернет (чтение, печать)
Дополнительно Новинка
Ключ записи ru\spstu\vkr\37763
Дата создания записи 23.09.2025

Разрешенные действия

Действие 'Прочитать' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети

Группа Анонимные пользователи
Сеть Интернет

Тема выпускной квалификационной работы: «Сравнительный анализ производительности хранимых процедур, функций и триггеров в PostgreSQL при использовании PL/pgSQL и PL/Java». Данная работа посвящена экспериментальному исследованию производительности серверного кода в зависимости от выбранного языка реализации. Задачи, которые решались в ходе работы: 1) Анализ предметной области и постановка задачи. 2) Изучение особенностей использования процедурных языков в PostgreSQL. 3) Разработка методологии эксперимента и создание идентичных программируемых объектов на PL/pgSQL и PL/Java. 4) Проведение экспериментального исследования производительности хранимых процедур, функций и триггеров в зависимости от выбранного языка реализации. 5) Сравнительный анализ производительности серверного кода при использовании PL/pgSQL и PL/Java и разработка рекомендаций. Работа содержит три главы. Первая глава посвящена обзору предметной области, в частности рассмотрению архитектуры PostgreSQL, понятия программируемых объектов базы данных, их разновидностей и целей их использования, а также процедурных языков в PostgreSQL, таких как PL/pgSQL и PL/Java. Во второй главе описаны эксперименты по исследованию производительности, включая разработку хранимых процедур, функций и триггеров, оценку времени выполнения операций и затрат оперативной памяти, а также обоснование выбранных методов оценки производительности. В третьей главе представлены результаты экспериментального исследования производительности серверного кода в PostgreSQL при реализации на PL/Java и PL/pgSQL. На основе полученных данных построены графики сравнения ключевых параметров, позволившие выявить оптимальные области применения каждого из подходов. В результате работы были предложены рекомендации и разработан алгоритм для выбора оптимального языка реализации серверного кода в зависимости от специфики решаемых задач для повышения производительности базы данных. Для достижения данных результатов в работе были использованы следующие информационные технологии: среда виртуализации VirtualBox, операционная система Red OS, реляционная система управления базами данных PostgreSQL, графический клиент для работы с базами данных DBeaver, процедурные языки PL/pgSQL и PL/Java.

The subject of the graduate qualification work is «Comparative analysis of the performance of stored procedures, functions and triggers in PostgreSQL using PL/pgSQL and PL/Java». This work is devoted to an experimental study of the performance of server code depending on the selected implementation language. The research sets the following goals: 1) Analysis of the subject area and problem formulation. 2) Studying the features of using procedural languages in PostgreSQL. 3) Development of experimental methodology and creation of identical programmable objects in PL/pgSQL and PL/Java. 4) Conducting an experimental study of the performance of stored procedures, functions and triggers depending on the selected implementation language. 5) Comparative analysis of the performance of server code when using PL/pgSQL and PL/Java and development of recommendations. The work contains three chapters. The first chapter is devoted to an overview of the subject area, specifically examining the architecture of PostgreSQL, the concept of programmable database objects, their varieties and purposes of their use, as well as procedural languages in PostgreSQL, such as PL/pgSQL and PL/Java. The second chapter describes experiments on performance research, including the development of stored procedures, functions and triggers, evaluation of the execution time of operations and RAM costs, and the rationale for the chosen performance assessment methods. The third chapter presents the results of an experimental study of the performance of the server code in PostgreSQL when implemented in PL/Java and PL/pgSQL. Based on the data obtained, graphs of comparison of key parameters were constructed, which made it possible to identify the optimal areas of application for each of the approaches. As a result of the work, recommendations were proposed and an algorithm was developed for selecting the optimal language for implementing server code depending on the specifics of the tasks being solved to improve database performance. To achieve these results, the following information technologies were used in the work: the VirtualBox virtualization environment, the Red OS operating system, the PostgreSQL relational database management system, the DBeaver graphical client for working with databases, and the PL/pgSQL and PL/Java procedural languages.

Место доступа Группа пользователей Действие
Локальная сеть ИБК СПбПУ Все
Прочитать Печать
Интернет Авторизованные пользователи СПбПУ
Прочитать Печать
Интернет Анонимные пользователи
  • СОДЕРЖАНИЕ
  • ВВЕДЕНИЕ
  • ГЛАВА 1 ОБЗОР ПРЕДМЕТНОЙ ОБЛАСТИ
    • 1.1 Постановка задачи
    • 1.2 Описание архитектуры PostgreSQL
    • 1.3 Программируемые объекты базы данных
      • 1.3.1 Хранимые процедуры
      • 1.3.2 Функции
      • 1.3.3 Триггеры
    • 1.4 Процедурные языки в PostgreSQL
      • 1.4.1 Сценарии использования процедурных языков в PostgreSQL
      • 1.4.2 Процедурный язык PL/pgSQL
      • 1.4.3 Расширение PL/Java
  • ГЛАВА 2 РАЗРАБОТКА И РЕАЛИЗАЦИЯ ПРОГРАММИРУЕМЫХ ОБЪЕКТОВ БАЗЫ ДАННЫХ
    • 2.1 Описание схемы Bookings базы данных «Авиаперевозки»
    • 2.2 Выбор методов оценки времени и затрат памяти
    • 2.3 Разработка программируемых объектов на PL/pgSQL
    • 2.4 Установка и настройка PL/Java для PostgreSQL
    • 2.5 Разработка программируемых объектов с использованием PL/Java
    • 2.6 Результаты измерений времени и объёма используемой памяти
  • ГЛАВА 3 СРАВНИТЕЛЬНЫЙ АНАЛИЗ ПРОИЗВОДИТЕЛЬНОСТИ
    • 3.1 Методология сравнительного анализа
    • 3.2 Расчёты сравнительных коэффициентов эффективности PL/pgSQL и PL/Java
    • 3.3 Анализ результатов
    • 3.4 Алгоритм выбора оптимального языка реализации
    • 3.5 Выводы
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
  • ПРИЛОЖЕНИЕ А КОД ПРОГРАММИРУЕМЫХ ОБЪЕКТОВ НА PL/PGSQL
    • А.1 Код хранимой процедуры update_flight_status
    • А.2 Код хранимой функции flight_duration
    • А.3 Код триггера actual_dates_trigger
    • А.4 Код хранимой процедуры analyze_flight_occupancy
    • А.5 Код функции calculate_booking_statistics
    • А.6 Код триггера flight_statistics_trigger
  • ПРИЛОЖЕНИЕ Б КОД ПРОГРАММИРУЕМЫХ ОБЪЕКТОВ НА JAVA (С ИСПОЛЬЗОВАНИЕМ PL/JAVA)
    • Б.1 Код хранимой процедуры update_flight_status
    • Б.2 Код хранимой функции flight_duration
    • Б.3 Код триггера actual_dates_trigger
    • Б.4 Код хранимой процедуры analyze_flight_occupancy
    • Б.5 Код функции calculate_booking_statistics
    • Б.6 Код триггера flight_statistics_trigger
  • ПРИЛОЖЕНИЕ В РЕЗУЛЬТАТЫ ОЦЕНКИ ВРЕМЕНИ И ПОТРЕБЛЕНИЯ ПАМЯТИ ДЛЯ ВСЕХ РАЗРАБОТАННЫХ ОБЪЕКТОВ

Количество обращений: 0 
За последние 30 дней: 0

Подробная статистика