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 |
|
| Internet | Authorized users SPbPU |
|
| 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
- 1.1. Проблемы обучения языку SQL в вузе
- ГЛАВА 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
- 2.1. Формулировка требований к системе
- ГЛАВА 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
- 3.1. Реализация модуля аутентификации и безопасности
- ГЛАВА 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 (подпись результатов)