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

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

Время чтения статьи ~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 минут.

Рекомендуемые программы
профессия
от 6 300 ₽ в месяц
Разработка фронтенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 25 апреля
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Django
10 месяцев
с нуля
Старт 25 апреля
профессия
от 6 183 ₽ в месяц
Ручное тестирование веб-приложений
4 месяца
с нуля
Старт 25 апреля
профессия
от 6 300 ₽ в месяц
Разработка приложений на языке Java
10 месяцев
с нуля
Старт 25 апреля
профессия
от 5 025 ₽ в месяц
новый
Сбор, анализ и интерпретация данных
9 месяцев
с нуля
Старт 25 апреля
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Laravel
10 месяцев
с нуля
Старт 25 апреля
профессия
от 5 840 ₽ в месяц
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 25 апреля
профессия
от 9 900 ₽ в месяц
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
16 месяцев
с нуля
Старт 25 апреля
профессия
от 6 300 ₽ в месяц
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 25 апреля
профессия
новый
Автоматизированное тестирование веб-приложений на JavaScript
8 месяцев
c опытом
в разработке
Старт 25 апреля
профессия
Верстка с использованием последних стандартов CSS
5 месяцев
с нуля
Старт в любое время