Скидки до 20% + 2-ая профессия бесплатно и подарки на 50 000₽

Главная | Все статьи | Дневник студента

Пример курсовой работы в вузе по Базам Данных. Проектирование информационной системы аварийной службы

Время чтения статьи ~3 минуты
Статья написана студентом Хекслета. Мнение автора может не совпадать с позицией редакции
Пример курсовой работы в вузе по Базам Данных. Проектирование информационной ... главное изображение

Модель данных

Не смотря на то, что на выполнение этой работы был отведён семестр, большая ее часть была сделана за последний месяц (июнь). Это связано с тем, что значительная часть времени ушла на составление диаграммы «Сущность-связь», по которой должна была проектироваться база данных. Практические занятия были раз в две недели, и за занятие можно было показать свою версию только один раз. Диаграмма содержит 10 таблиц и 41 атрибут, не считая первичные и внешние ключи. Диаграмма сущность-связь

Проектирование базы данных

После успешной защиты моей модели, я наконец-то перешёл непосредственно к проектированию базы данных. Для этого я использовал Microsoft SQL Server Managment Studio 2017. На этом этапе начались первые трудности. По началу я забыл проставить значения по умолчанию во всех таблицах, а также выбрал не тот тип данных для нескольких атрибутов. Пришлось делать базу данных заново. Также я настроил каскадное обновление и удаление во всех таблиц — это стало, по моему мнению, ошибочным решением, так как при удалении записи из таблицы «Бригада» удалялись все связанные с ней записи из пяти таблиц (заявки, персонал, акты и два перечня с материалами и работами). Наверное, стоило выбрать установление значения Null.

Написание кода

Дописав базу данных, я перешёл к программированию. Для написания кода я использовал Visual studio 2019, Технология разработки — ASP.NET MVC, технология доступа к данным — Entity Framework. Не смотря на то, что большая часть кода генерируется автоматически по базе данных (был выбран подход Code Second), в ней было предостаточно косяков — лишние атрибуты почти во всех таблицах, а также значения обычных атрибутов вместо первичных ключей. Другим весьма неприятным моментом стало то, что почему-то не поддерживались значения по умолчанию из БД, и их пришлось прописывать через код в контроллерах.

Также изначально для реализации авторизации была выбрана технология ASP.NET Identity, однако для четвертого уровня требовалась именно аутентификация, а не авторизация, а выбранная технология прежде — это средство авторизации, как объяснил мне преподаватель. Поэтому проект пришлось делать заново. На этот раз я добавил дополнительную таблицу в БД и соответствующий контроллер для неё, а также простенькое представление, на котором расположилась форма из 2 полей логина и пароля.

Также в системе присутствовали три роли - администратора, диспетчера и бригадира. В зависимости от роли, пользователь получал разные версии интерфейса с разными возможностями. Это достигалось через механизм Cookie. На страницу макета передавался номер роли, который записывался из контроллера, и в зависимости от этого менялась главная страница со ссылками на таблицы. Не аутентифицированному пользователю был доступен только просмотр данных.

Также была реализована обработка ошибок, например - ошибка аутентификации (введён неправильный логин или пароль), ошибка нарушения ссылочной целостности (попытка добавить более одного экземпляра данных при связи один к одному), а также контроль ввода данных пользователем в таблицы.

По мимо описанного выше, были составлены две хранимые в БД функции, возвращающие табличное значение (подсчёт стоимости работ и материалов по каждому акту), а также одна хранимая процедура. Это было одним из требований к курсовой работе. Другим требованием было наличие операций поиска и фильтрации в 3 таблицах.

Составление документации

Документация к проекту получилась достаточно объёмной - 80 страниц, из них 40 страниц были в приложении (исходный код контроллеров). В документации содержалось несколько разделов - введение с кратким описанием предметной области, техническое задание, информационное обеспечение системы с моделью, описанием таблиц и выбранных между ними связей, алгоритмическое обеспечение системы (с описанием блок-схемы хотя бы одного алгоритма, при чём алгоритм должен был содержать не менее шести действий и одного условия, для четвертого уровня), прикладное программное обеспечение с описанием всех папок и файлов, присутствующих в проекте, руководство пользователя, список литературы, а также приложение.

Заключение

Защита курсовой работы проходила в дистанционном формате на портале моего вуза. Преподаватель приглашал отдельно каждого студента присоединиться к видеоконференции, затем включалась демонстрация экрана, и начиналась презентация программного продукта. Демонстрировались аутентификация, CRUD операции с данными, фильтрация и поиск, а также исключительные ситуации. Защита длилась около 15 минут.

Похожие статьи
Рекомендуемые программы
профессия
Верстка на HTML5 и CSS3, Программирование на JavaScript в браузере, разработка клиентских приложений используя React
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Python, Разработка веб-приложений и сервисов используя Django, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Тестирование веб-приложений, чек-листы и тест-кейсы, этапы тестирования, DevTools, Postman, SQL, Git, HTTP/HTTPS, API
4 месяца
с нуля
Старт 26 декабря
профессия
Программирование на Java, Разработка веб-приложений и микросервисов используя Spring Boot, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Google таблицы, SQL, Python, Superset, Tableau, Pandas, визуализация данных, Anaconda, Jupyter Notebook, A/B-тесты, ROI
9 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на PHP, Разработка веб-приложений и сервисов используя Laravel, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Ruby, Разработка веб-приложений и сервисов используя Rails, проектирование и реализация REST API
5 месяцев
c опытом
Старт 26 декабря
профессия
Программирование на JavaScript в браузере и на сервере (Node.js), разработка бекендов на Fastify и фронтенда на React
16 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на JavaScript, разработка веб-приложений, bff и сервисов используя Fastify, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Git, JavaScript, Playwright, бэкенд-тесты, юнит-тесты, API-тесты, UI-тесты, Github Actions, HTTP/HTTPS, API, Docker, SQL
8 месяцев
c опытом
Старт 26 декабря