До 30 ноября

Скидки до 81 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 минут.

Рекомендуемые программы
профессия
Осваивайте разработку веб-страниц, оживляйте дизайн макетов, публикуйте сайты и приложения. Отслеживайте ошибки в интерфейсе и устраняйте их
10 месяцев
с нуля
Старт 28 ноября
профессия
Обучитесь разработке бэкенда сайтов и веб-приложений — серверной части, которая отвечает за логику и базы данных
10 месяцев
с нуля
Старт 28 ноября
профессия
Выполняйте ручное тестирование веб-приложений, находите ошибки в продукте. Узнайте все о тест-дизайне.
4 месяца
с нуля
Старт 28 ноября
профессия
Научитесь разработке веб-приложений, сайтов и программного обеспечения на языке Java, программируйте и используйте структуры данных
10 месяцев
с нуля
Старт 28 ноября
профессия
новый
Собирайте, анализируйте и интерпретируйте данные, улучшайте бизнес-процессы и продукт компании. Обучитесь работе с библиотеками Python
9 месяцев
с нуля
Старт 28 ноября
профессия
Занимайтесь созданием сайтов, веб-приложений, сервисов и их интеграцией с внутренними бизнес-системами на бекенд-языке PHP
10 месяцев
с нуля
Старт 28 ноября
профессия
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 28 ноября
профессия
Обучитесь разработке визуальной части сайта — фронтенда, а также реализации серверной — бэкенда. Освойте HTML, CSS, JavaScript
16 месяцев
с нуля
Старт 28 ноября
профессия
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 28 ноября
профессия
новый
Организовывайте процесс автоматизации тестирования на проекте, обучитесь языку программирования JavaScript, начните управлять процессом тестирования
8 месяцев
c опытом
Старт 28 ноября