ЛР2_АИС_МО417_ИбрагимоваРахимоваСтепановаШакиров
.docxУФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
ФАКУЛЬТЕТ ИНФОРМАТИКИ И РОБОТОТЕХНИКИ
КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ И КИБЕРНЕТИКИ
Отчёт по лабораторной работе №2
«Составление технического задания на разработку программного продукта.
Работа с базой данных (БД) с использованием технологии «объектно-реляционного отображения»
по предмету: «Администрирование информационных систем»
Выполнили:
студенты группы МО-417
Ибрагимова К.Б. Рахимова А.М.
Степанова Д.Д. Шакиров А.Р.
Проверил:
Сазонова Е. Ю.
Уфа 2021
Цель работы
Ознакомиться с процедурой разработки технического задания на создание программного продукта (ПП) с применением ГОСТ 19.102-77 «Стадии разработки программ и программной документации» и ГОСТ 34.602-89 «Техническое задание на создание автоматизированной системы» и изучить работу с базой данных (БД) с использованием технологии «объектно-реляционного отображения» - Object-Relational Mapping (ORM).
Задание:
Разработать техническое задание на программный продукт (информационную систему, информационно-аналитическую систему) в соответствии с ГОСТ 19.201-78 и ГОСТ 34.602—89. Программный продукт должен быть связан с киберфизическими системами, цифровыми двойниками (описание идеи должно быть представлено на сайте, который был разработан в лабораторной работе № 1, идею также можно продублировать в отчете данной работы). Оформить техническое задание в MS Word.
Спроектировать БД технического объекта или информационной системы.
Разработать приложение, использующее технологию ORM для представления таблиц спроектированной БД.
Используя разработанное приложение, сгенерировать таблицы и произвести популяцию БД (заполнить тестовыми данными).
Разработать для ORM-приложения основные CRUD-функции для работы с БД, при этом необходимо учитывать специфику выбранного технического объекта, т. е. функции работы с информацией в БД должны предоставлять/изменять необходимые данные таким образом, как это могло бы быть на реальном объекте.
Загрузить приложение на сервер и проверить его работу локально.
Настроить безопасный удаленный доступ к серверу БД.
Ход выполнения работы:
1. Этапы проектирования БД:
Опишем предметную область.
База данных создается для хранения персональной информации пользователей мессенджера для подбора собеседника. БД должна содержать такие данные о пользователе как ФИО, пол, возраст, город, его интересы и количество друзей.
В соответствии с предметной областью система строится с учётом следующих
особенностей:
У каждого пользователя может быть несколько интересов
Каждый город относится к одной стране
Каждый пользователь относится к одному городу
У каждого пользователя может быть несколько друзей
Каждому пользователю соответствует один пол
У каждого пользователя может быть несколько сообщений
Выделим ключевые объекты системы.
Пользователь. Атрибуты пользователей – ФИО, Пол, Возраст, Интересы, Друзья, Пароль и Логин.
Интерес. Атрибуты интересов – Название и Описание.
Сообщение. Атрибуты сообщений – От кого, Кому, Дата и Текст.
Город. Атрибуты городов – Название и Страна.
Страна. Атрибуты стран – Название.
Пол. Атрибуты полов – Название.
Проведём инфологическое проектирование.
Инфологическое проектирование – построение семантической модели предметной области, то есть информационной модели наиболее высокого уровня абстракции. Такая модель создается без ориентации на какую-либо конкретную СУБД и модель данных. Конкретный вид и содержание концептуальной модели базы данных определяется выбранными для этого
формальным аппаратом. Обычно используют графические нотации, подобные ER-диаграммам. Для инфологического проектирования воспользуемся методом «сущность-связь».
Объект – семантическое понятие, которое может быть полезно при обсуждении устройств реального мира. Сущность реального мира – объекты – не обязательно материальны – важно понятие существенно и различимо для других. Между объектами могут возникать связи трех видов:
один к одному 1:1.
один к многим 1:n и многие к одному n:1.
многие ко многим n:n (пациент : хирург).
Составим ER-диаграмму
При построении ER-модели воспользуемся следующими принципами:
сущности на диаграмме представляются прямоугольниками;
каждый прямоугольник может иметь различные визуальные атрибуты;
каждой сущности должно быть присвоено уникальное имя;
имена сущностей необходимо задавать в единственном числе;
связи на диаграмме представляются линиями, идущими от одной сущности (таблицы) к другой;
каждой связи присваивается уникальное имя;
связанные таблицы разделяют на родительские и дочерние;
родительские таблицы отображаются прямоугольниками с прямыми углами, дочерние – со скругленными.
ER–диаграмма сущностей мессенджера для подбора собеседника приведена на рисунке 1.
Рисунок 1 – ER–диаграмма мессенджера
Составим уточненную ER-диаграмму.
Необходимо «уточнить» созданную ранее инфологическую модель.
Уточнить – значит конкретизировать, добавить атрибуты в ранее созданные сущности. Уточняя, мы отмечаем в каждой сущности какие именно данные, относящиеся к этой сущности, мы будем хранить далее в базе данных.
Рисунок 2 – Уточнённая ER–диаграмма мессенджера
Проведем логическое проектирование.
Логическое проектирование – создание схемы базы данных на основе конкретной модели базы данных, например, реляционной модели данных. Для реляционной модели данных даталогическая модель – набор схем отношений, обычно с указанием первичных ключей, а также «связей» между отношениями, представляющих собой внешние ключи.
Так как мы провели уточнение ER–диаграммы мессенджера, мы можем построить логическую модель БД.
Рисунок 3 – Логическая модель БД
Провести нормализацию (до 3 нормальной формы).
Нормализация – это процесс организации данных в базе данных, включающий создание таблиц и установление отношений между ними в соответствии с правилами, которые обеспечивают защиту данных и делают базу данных более гибкой, устраняя избыточность и несогласованные зависимости.
Первая нормальная форма
Отношения таблиц БД находятся в 1НФ, так как все атрибуты являются простыми, все используемые домены должны содержат только скалярные значения. Нет повторений строк в таблице.
Вторая нормальная форма
Отношения таблиц БД находятся во 2НФ, так как они находятся в 1НФ и каждый не ключевой атрибут неприводимо зависит от Первичного Ключа (ПК).
Неприводимость означает, что в составе потенциального ключа отсутствует меньшее подмножество атрибутов, от которого можно также вывести данную функциональную зависимость
Третья нормальная форма
Отношения таблиц БД находятся в 3НФ, когда находится во 2НФ и каждый не ключевой атрибут нетранзитивно зависит от первичного ключа.
Физическая модель была составлена в pgAdmin с помощью инструмента ERD.
Рисунок 4 – Физическая модель БД
Разделить пользователей базы данных на роли: функциональные возможности администратора, функциональные возможности пользователя.
Для работы с базой данных был созданы роли администратора ais_admin и роль пользователя ais_reader с помощью pgAdmin.
Рисунок 5 – Права пользователей/ролей на таблицы базы данных
2. Приложение, использующее технологию ORM для представления таблиц спроектированной БД.
ORM (англ. Object-Relational Mapping, рус. объектно-реляционное отображение, или преобразование) — технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных».
Разработано серверное приложение на базе ASP.NET Core 6, написанное на языке программирования C#. Технология ORM реализуется инструментом Entity Framework Core 5. В качестве СУБД выступает PostgreSQL 13.4.
Для каждой сущности была написана модель данных, по которой средствами ORM формируются таблицы в базе данных.
Рисунок 6 – Пример модели пользователя
3. Используя разработанное приложение, сгенерировать таблицы и произвести популяцию БД (заполнить тестовыми данными).
При первом запуске приложения в базе данных создаются таблицы и заполняются тестовыми данными.
Рисунок 7 – Код создания таблиц с последующим заполнением тестовыми данными
Рисунок 8 – Созданные таблицы в БД
4. Разработать для ORM-приложения основные CRUD-функции для работы с БД.
CRUD — акроним, обозначающий четыре базовые функции, используемые при работе с базами данных: создание (англ. create), чтение (read), модификация (update), удаление (delete). В системах, реализующих доступ к базе данных через API в стиле REST, эти функции реализуются зачастую (но не обязательно) через HTTP-методы POST, GET, PUT и DELETE соответственно.
Были разработаны контроллеры, для работы с моделями данных. Для каждой модели были реализованы методы добавления, чтения, обновления, удаления и получения списка.
Рисунок 9 – Пример кода контроллера модели пользователя
5. Загрузить приложение на сервер и проверить его работу локально.
Приложение запускается на физическом сервере. Для запуска требуется среда выполнения .NET 6.
Рисунок 10 – Окно запущенного приложения
Работу реализованных контроллеров моделей можно проверить с помощью программы Postman.
Рисунок 11 – Проверка запроса получения списка пользователей
Вывод
В ходе выполнения лабораторной работы были освоены процедуры разработки технического задания на создание программного продукта и изучены работы с базой данных с использованием технологии ORM.