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

Название Разработка веб-приложения для курса по языку 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
  • ГЛАВА 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 (подпись результатов)
...