МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,
СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Факультет Информационных технологий и программной инженерии
Кафедра Систем обработки данных
Направление: 09.03.02 Информационные системы и технологии
Профиль: Прикладные информационные системы и технологии
Практическое задание №2
«Разработка базы данных для информационной системы (ИС) использующей веб-технологии»
по дисциплине
«ВТиЗИ»
Выполнил:
студент группы ИСТ-223
Хакова Ю. М. «____» _________ 2025 г.
Принял:
ассистент кафедры СОД
Коровкина Е.В. «____» _________ 2025 г.
СОДЕРЖАНИЕ
Y
1 ПОСТАНОВКА ЗАДАЧИ 3
2 ВЫБОР МЕТОДОВ И ТЕХНОЛОГИЙ 3
3 РАЗРАБОТКА БД 5
4 ЗАКЛЮЧЕНИЕ 10
1 Постановка задачи
Информационная система для изучения межславянского языка должна обеспечивать следующие функции:
система регистрации и авторизации пользователей с возможностью восстановления пароля;
хранение информации о пользователях, их прогрессе и активности;
предоставление доступа к образовательным материалам (курсам, урокам, упражнениям);
отслеживание прогресса обучения и результатов тестов;
интеграция с форумом для общения пользователей;
поддержка мультимедийных материалов (аудио, видео, изображения);
возможность оставлять комментарии и участвовать в обсуждениях;
система обратной связи между пользователями, модераторами и администраторами;
администрирование пользователей и управление их правами доступа;
обеспечение технической поддержки и контроля работоспособности системы.
В связи со всеми вышеперечисленными пунктами база данных должна включать набор таблиц, необходимых для хранения информации о пользователях, курсах, уроках, прогрессе, форумах, обратной связи и владельце системы.
2 Выбор методов и технологий
В базе данных информационной системы по изучению межславянского языка должны храниться следующие данные:
данные о пользователях, курсах, уроках и прогрессе обучения;
данные форума для обсуждения тем между студентами и преподавателями;
обращения и отзывы пользователей через систему обратной связи;
учётная запись администратора и владельца системы.
Для реализации проекта выбрана PostgreSQL — одна из популярных реляционных СУБД с открытым исходным кодом, стабильно входящая в топ мировых рейтингов (рисунок 1). PostgreSQL поддерживает работу с большими объёмами данных, сложными связями между таблицами и обеспечивает высокий уровень надёжности хранения информации.
Для обоснования выбора СУБД можно обратиться к существующим рейтингам. Согласно международному рейтингу DB-Engines (Рисунок 1), PostgreSQL занимает 4 место среди всех систем управления базами данных, что подтверждает её востребованность в промышленности.
Для управления базой данных и её содержимым в процессе проектирования использовалась программа pgAdmin — официальный инструмент для администрирования PostgreSQL через графический веб-интерфейс. Она предоставляет удобные визуальные средства для создания таблиц, настройки связей между ними и выполнения SQL-запросов.
Рисунок 1 – Международный рейтинг DB-Engines
3 Разработка бд
В ходе разработки информационной системы для изучения межславянского языка была спроектирована реляционная база данных. Её структура обеспечивает хранение всей необходимой информации для функционирования образовательной платформы.
Таблица 1 – Таблицы БД
Таблица |
Назначение |
users |
Информация о пользователях платформы |
courses |
Сведения об образовательных курсах |
lessons |
Материалы и мультимедиа-уроки |
progress |
Данные о прохождении курсов |
forum_topics |
Темы обсуждений на форуме |
forum_massages |
Сообщения пользователей форума |
feedback |
Обратная связь пользователей |
owner |
Данные владельца системы |
Таблица 2 – Поля таблицы users
Название поля |
Тип данных |
Дополнительные параметры |
Назначение |
user_id |
INT |
PRIMARY KEY |
Уникальный идентификатор |
fullname |
VARCHAR(100) |
NOT NULL |
Имя пользователя |
VARCHAR(100) |
UNIQUE |
Электронная почта |
|
login |
VARCHAR(50) |
UNIQUE |
Логин |
password |
TEXT |
NOT NULL |
Хэшированный пароль |
role |
VARCHAR(20) |
DEFAULT ‘user’ |
Роль пользователя |
reg_date |
TIMESTAMP |
DEFAULT now() |
Дата регистрации
|
last_login |
TIMESTAMP |
NULL |
Последний вход |
Таблица 3 – Поля таблицы courses
Название поля |
Тип данных |
Дополнительные параметры |
Назначение |
course_id |
INT |
PRIMARY KEY |
Уникальный идентификатор курса |
title |
VARCHAR(150) |
NOT NULL |
Название курса |
description |
TEXT |
|
Описание курса |
level |
VARCHAR(50) |
|
Уровень сложности |
author |
VARCHAR(100) |
|
Автор курса |
Таблица 4 – Поля таблицы lessons
Название поля |
Тип данных |
Дополнительные параметры |
Назначение |
lesson_id |
INT |
PRIMARY KEY |
Уникальный идентификатор урока |
course_id |
INT |
FOREIGN KEY (course_id) REFERENCES courses(course_id) |
Ссылка на курс
|
title |
VARCHAR(150) |
NOT NULL |
Название урока |
content |
TEXT |
|
Содержимое урока |
multimedia |
TEXT |
|
Ссылка на медиафайл |
Таблица 5 – Поля таблицы progress
Название поля |
Тип данных |
Дополнительные параметры |
Назначение |
progress_id |
INT |
PRIMARY KEY |
Уникальный идентификатор |
user_id |
INT |
FOREIGN KEY (user_id) REFERENCES users(user_id) |
Ссылка на пользователя
|
lesson_id |
INT |
FOREIGN KEY (lesson_id) REFERENCES lessons(lesson_id) |
Ссылка на урок
|
status |
VARCHAR(30) |
|
Статус выполнения |
score |
INT |
|
Баллы |
completion_date |
TIMESTAMP
|
|
Дата завершения |
Таблица 6 – Поля таблицы forum_topics
Название поля |
Тип данных |
Дополнительные параметры |
Назначение |
topic_id |
INT |
PRIMARY KEY |
Уникальный идентификатор темы |
title |
VARCHAR(200) |
NOT NULL |
Заголовок темы |
created_by |
INT |
FOREIGN KEY (user_id) REFERENCES users(user_id) |
Автор темы |
created_at |
TIMESTAMP |
DEFAULT now() |
Дата создания |
Таблица 7 – Поля таблицы forum_massages
Название поля |
Тип данных |
Дополнительные параметры |
Назначение |
message_id |
INT |
PRIMARY KEY |
Уникальный идентификатор темы |
topic_id |
INT |
FOREIGN KEY (topic_id) REFERENCES forum_topics(topic_id) |
Тема
|
user_id |
INT |
FOREIGN KEY (user_id) REFERENCES users(user_id) |
Автор |
content |
TEXT |
NOT NULL |
Текст сообщения |
created_at |
TIMESTAMP |
DEFAULT now() |
Дата публикации |
status |
VARCHAR(20) |
DEFAULT ‘approved’ |
Статус модерации |
Таблица 8 – Поля таблицы feedback
Название поля |
Тип данных |
Дополнительные параметры |
Назначение |
feedback_id
|
INT |
PRIMARY KEY |
Уникальный идентификатор |
user_id |
INT |
FOREIGN KEY (user_id) REFERENCES users(user_id) |
Пользователь |
massage |
TEXT |
NOT NULL |
Текст обращения |
created_at |
TIMESTAMP |
DEFAULT now() |
Дата обращения |
response |
TEXT |
|
Ответ администратора |
status |
VARCHAR(20) |
DEFAULT ‘new’ |
Статус рассмотрения |
Таблица 9 – Поля таблицы owner
Название поля |
Тип данных |
Дополнительные параметры |
Назначение |
owner_id |
INT |
PRIMARY KEY |
Уникальный идентификатор владельца |
login |
VARCHAR(50) |
UNIQUE |
Логин |
password |
TEXT |
NOT NULL |
Пароль |
Рисунок 2 – ER-диаграмма БД
