Детальная информация
| Название | Разработка веб-приложения для курса по языку SQL на основе СУБД PostgreSQL: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_03 «Разработка программного обеспечения» = Developing a web app for an SQL course using the PostgreSQL database |
|---|---|
| Авторы | Божко Даниил Артёмович |
| Научный руководитель | Зайцев Игорь Владимирович |
| Организация | Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности |
| Выходные сведения | Санкт-Петербург, 2026 |
| Коллекция | Выпускные квалификационные работы ; Общая коллекция |
| Тематика | обучение sql ; веб-приложение ; postgresql ; java ; servlets ; jsp ; hikaricp ; bcrypt ; csrf ; xss ; rate limiting ; sql training ; web application |
| Тип документа | Выпускная квалификационная работа бакалавра |
| Язык | Русский |
| Уровень высшего образования | Бакалавриат |
| Код специальности ФГОС | 09.03.04 |
| Группа специальностей ФГОС | 090000 - Информатика и вычислительная техника |
| DOI | 10.18720/SPBPU/3/2026/vr/vr26-1590 |
| Права доступа | Доступ по паролю из сети Интернет (чтение) |
| Дополнительно | Новинка |
| Ключ записи | ru\spstu\vkr\41141 |
| Дата создания записи | 14.07.2026 |
Разрешенные действия
–
Действие 'Прочитать' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети
| Группа | Анонимные пользователи |
|---|---|
| Сеть | Интернет |
Выпускная квалификационная работа посвящена созданию веб-платформы 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.
| Место доступа | Группа пользователей | Действие |
|---|---|---|
| Локальная сеть ИБК СПбПУ | Все |
|
| Интернет | Авторизованные пользователи СПбПУ |
|
| Интернет | Анонимные пользователи |
|
- СПИСОК ОБОЗНАЧЕНИЙ И СОКРАЩЕНИЙ
- ВВЕДЕНИЕ
- ГЛАВА 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 (подпись результатов)