Details

Title Разработка веб-приложения для курса по языку SQL на основе СУБД PostgreSQL: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_03 «Разработка программного обеспечения» = Developing a web app for an SQL course using the PostgreSQL database
Creators Божко Даниил Артёмович
Scientific adviser Зайцев Игорь Владимирович
Organization Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Imprint Санкт-Петербург, 2026
Collection Выпускные квалификационные работы ; Общая коллекция
Subjects обучение sql ; веб-приложение ; postgresql ; java ; servlets ; jsp ; hikaricp ; bcrypt ; csrf ; xss ; rate limiting ; sql training ; web application
Document type Bachelor graduation qualification work
Language Russian
Level of education Bachelor
Speciality code (FGOS) 09.03.04
Speciality group (FGOS) 090000 - Информатика и вычислительная техника
DOI 10.18720/SPBPU/3/2026/vr/vr26-1590
Rights Доступ по паролю из сети Интернет (чтение)
Additionally New arrival
Record key ru\spstu\vkr\41141
Record create date 7/14/2026

Allowed Actions

Action 'Read' will be available if you login or access site from another network

Group Anonymous
Network Internet

Выпускная квалификационная работа посвящена созданию веб-платформы SQL Trainer – интерактивной среды для практического изучения SQL. В ходе исследования проведён обзор существующих решений (sql-ex.ru, SQL Academy, Яндекс Практикум), выявлены их ограничения и определены требования к разрабатываемой системе. Спроектирована архитектура веб-приложения с упором на безопасность: аутентификация преподавателя, защита от XSS и CSRF-атак, разграничение прав на уровне PostgreSQL, ограничение нагрузки (таймауты, семафоры, rate limiting 1 запрос/сек). Реализована визуализация плана выполнения запросов (EXPLAIN ANALYZE) в виде дерева с цветовой индикацией узлов. Для преподавателя разработаны: загрузка SQL-скриптов с SSE-логами, управление папками и базами данных, мониторинг сессий студентов, экспорт CSV с электронной подписью, автоматическая генерация заданий для Moodle. Тестирование подтвердило работоспособность и безопасность системы.

The graduate qualification work is devoted to the development of the SQL Trainer web platform – an interactive environment for practical SQL learning. The study reviews existing solutions (sql-ex.ru, SQL Academy, Yandex Practicum), identifies their limitations, and defines requirements for the developed system. A web application architecture with a focus on security is designed: teacher authentication, protection against XSS and CSRF attacks, PostgreSQL-level access control, and load limiting (timeouts, semaphores, rate limiting of 1 request/sec). Query execution plan visualization (EXPLAIN ANALYZE) is implemented as a tree with color-coded nodes. Teacher tools include: SQL script upload with SSE logs, folder and database management, student session monitoring, CSV export with electronic signature, and automatic question generation for Moodle. Testing confirms the functionality and security of the system.

Network User group Action
ILC SPbPU Local Network All
Read
Internet Authorized users SPbPU
Read
Internet Anonymous
  • СПИСОК ОБОЗНАЧЕНИЙ И СОКРАЩЕНИЙ
  • ВВЕДЕНИЕ
  • ГЛАВА 1. ИССЛЕДОВАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ
    • 1.1. Проблемы обучения языку SQL в вузе
      • 1.1.1. Организационные проблемы
      • 1.1.2. Методические проблемы
      • 1.1.3. Технические проблемы
      • 1.1.4. Выводы
    • 1.2. Анализ существующих онлайн-тренажёров
      • 1.2.1. sql-ex.ru
      • 1.2.2. SQL Academy
      • 1.2.3. Яндекс Практикум
      • 1.2.4. Онлайн-песочницы (DB Fiddle, SQLite Online)
      • 1.2.5. Сравнительный анализ
      • 1.2.6. Выводы
    • 1.3. Анализ локальных средств разработки
      • 1.3.1. pgAdmin
      • 1.3.2. DBeaver
      • 1.3.3. Сравнительный анализ локальных средств
      • 1.3.4. Выводы по локальным средствам
    • 1.4. Выводы по главе 1
  • ГЛАВА 2. ПРОЕКТИРОВАНИЕ АРХИТЕКТУРЫ
    • 2.1. Формулировка требований к системе
      • 2.1.1. Назначение разработки
      • 2.1.2. Требования к функциональности
      • 2.1.3. Требования к безопасности
      • 2.1.4. Технические требования
      • 2.1.5. Требования к производительности
    • 2.2. Архитектура веб-приложения
      • 2.2.1. Общая архитектура системы
      • 2.2.2. Модель взаимодействия компонентов
      • 2.2.3. Модель безопасности
    • 2.3. Организация хранения метаданных
      • 2.3.1. Схема базы данных метаданных
      • 2.3.2. Роли и права доступа
    • 2.4. Выбор технологического стека
      • 2.4.1. Бэкенд
      • 2.4.2. Фронтенд
      • 2.4.3. База данных
      • 2.4.4. Инфраструктура
    • 2.5. Выводы по главе 2
  • ГЛАВА 3. РЕАЛИЗАЦИЯ
    • 3.1. Реализация модуля аутентификации и безопасности
      • 3.1.1. Схема взаимодействия компонентов аутентификации
      • 3.1.2. Алгоритм аутентификации преподавателя
      • 3.1.3. Защита от CSRF-атак
      • 3.1.4. Защита от XSS-атак и DoS-атак
    • 3.2. Реализация ролевой модели и управления доступом
      • 3.2.1. Роли и права доступа в PostgreSQL
      • 3.2.2. Фильтр авторизации преподавателя
      • 3.2.3. Проверка доступа студентов к базам данных
      • 3.2.4. Управление подключениями к базе данных
    • 3.3. Реализация механизмов выполнения запросов
      • 3.3.1. Алгоритм выполнения запроса студентом
      • 3.3.2. Визуализация плана выполнения (EXPLAIN ANALYZE)
      • 3.3.3. Экспорт результатов в CSV
    • 3.4. Реализация инструментов для преподавателя
      • 3.4.1. Управление папками и базами данных
      • 3.4.2. Загрузка SQL-скриптов с потоковыми логами
      • 3.4.3. Автоматическая генерация вопросов для Moodle
    • 3.5. Выводы по главе 3
  • ГЛАВА 4. ТЕСТИРОВАНИЕ
    • 2.
    • 3.
    • 4.
    • 4.1. Методы проверки системы безопасности
      • 4.1.1. Тестирование аутентификации преподавателя
      • 4.1.2. Тестирование CSRF-защиты
      • 4.1.3. Тестирование XSS-защиты
      • 4.1.4. Тестирование Rate Limiting
    • 4.2. Тестирование функциональности
    • 4.2.1. Тестирование выполнения SQL-запросов
      • 4.2.2. Тестирование загрузки SQL-скриптов
      • 4.2.3. Тестирование управления папками и базами данных
      • 4.2.4. Тестирование генерации вопросов для Moodle
    • 4.3. Нагрузочное тестирование
      • 4.3.1. Методика нагрузочного тестирования
      • 4.3.2. Результаты нагрузочного тестирования
      • 4.3.3. Анализ результатов
    • 4.4. Выводы по главе 4
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
  • Приложение А
    • Листинг А.1 – DatabaseConfig.java (создание пулов и ролевая модель)
    • Листинг А.2 – MoodleGenerator.java (генерация GIFT и хеширование)
    • Листинг А.3 – script.js (визуализация EXPLAIN ANALYZE)
    • Листинг А.4 – QueryExecutor.java (подпись результатов)
...