Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР2_АИС_МО417_ИбрагимоваРахимоваСтепановаШакиров

.docx
Скачиваний:
16
Добавлен:
14.09.2022
Размер:
645.65 Кб
Скачать

УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

ФАКУЛЬТЕТ ИНФОРМАТИКИ И РОБОТОТЕХНИКИ

КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ И КИБЕРНЕТИКИ

Отчёт по лабораторной работе №2

«Составление технического задания на разработку программного продукта.

Работа с базой данных (БД) с использованием технологии «объектно-реляционного отображения»

по предмету: «Администрирование информационных систем»

Выполнили:

студенты группы МО-417

Ибрагимова К.Б. Рахимова А.М.

Степанова Д.Д. Шакиров А.Р.

Проверил:

Сазонова Е. Ю.

Уфа 2021

Цель работы

Ознакомиться с процедурой разработки технического задания на создание программного продукта (ПП) с применением ГОСТ 19.102-77 «Стадии разработки программ и программной документации» и ГОСТ 34.602-89 «Техническое задание на создание автоматизированной системы» и изучить работу с базой данных (БД) с использованием технологии «объектно-реляционного отображения» - Object-Relational Mapping (ORM).

Задание:

  1. Разработать техническое задание на программный продукт (информационную систему, информационно-аналитическую систему) в соответствии с ГОСТ 19.201-78 и ГОСТ 34.602—89. Программный продукт должен быть связан с киберфизическими системами, цифровыми двойниками (описание идеи должно быть представлено на сайте, который был разработан в лабораторной работе № 1, идею также можно продублировать в отчете данной работы). Оформить техническое задание в MS Word.

  2. Спроектировать БД технического объекта или информационной системы.

  3. Разработать приложение, использующее технологию ORM для представления таблиц спроектированной БД.

  4. Используя разработанное приложение, сгенерировать таблицы и произвести популяцию БД (заполнить тестовыми данными).

  5. Разработать для ORM-приложения основные CRUD-функции для работы с БД, при этом необходимо учитывать специфику выбранного технического объекта, т. е. функции работы с информацией в БД должны предоставлять/изменять необходимые данные таким образом, как это могло бы быть на реальном объекте.

  6. Загрузить приложение на сервер и проверить его работу локально.

  7. Настроить безопасный удаленный доступ к серверу БД.

Ход выполнения работы:

1. Этапы проектирования БД:

  1. Опишем предметную область.

База данных создается для хранения персональной информации пользователей мессенджера для подбора собеседника. БД должна содержать такие данные о пользователе как ФИО, пол, возраст, город, его интересы и количество друзей.

В соответствии с предметной областью система строится с учётом следующих

особенностей:

  • У каждого пользователя может быть несколько интересов

  • Каждый город относится к одной стране

  • Каждый пользователь относится к одному городу

  • У каждого пользователя может быть несколько друзей

  • Каждому пользователю соответствует один пол

  • У каждого пользователя может быть несколько сообщений

  1. Выделим ключевые объекты системы.

  • Пользователь. Атрибуты пользователей – ФИО, Пол, Возраст, Интересы, Друзья, Пароль и Логин.

  • Интерес. Атрибуты интересов – Название и Описание.

  • Сообщение. Атрибуты сообщений – От кого, Кому, Дата и Текст.

  • Город. Атрибуты городов – Название и Страна.

  • Страна. Атрибуты стран – Название.

  • Пол. Атрибуты полов – Название.

  1. Проведём инфологическое проектирование.

Инфологическое проектирование – построение семантической модели предметной области, то есть информационной модели наиболее высокого уровня абстракции. Такая модель создается без ориентации на какую-либо конкретную СУБД и модель данных. Конкретный вид и содержание концептуальной модели базы данных определяется выбранными для этого

формальным аппаратом. Обычно используют графические нотации, подобные ER-диаграммам. Для инфологического проектирования воспользуемся методом «сущность-связь».

Объект – семантическое понятие, которое может быть полезно при обсуждении устройств реального мира. Сущность реального мира – объекты – не обязательно материальны – важно понятие существенно и различимо для других. Между объектами могут возникать связи трех видов:

  • один к одному 1:1.

  • один к многим 1:n и многие к одному n:1.

  • многие ко многим n:n (пациент : хирург).

  • Составим ER-диаграмму

При построении ER-модели воспользуемся следующими принципами:

  • сущности на диаграмме представляются прямоугольниками;

  • каждый прямоугольник может иметь различные визуальные атрибуты;

  • каждой сущности должно быть присвоено уникальное имя;

  • имена сущностей необходимо задавать в единственном числе;

  • связи на диаграмме представляются линиями, идущими от одной сущности (таблицы) к другой;

  • каждой связи присваивается уникальное имя;

  • связанные таблицы разделяют на родительские и дочерние;

  • родительские таблицы отображаются прямоугольниками с прямыми углами, дочерние – со скругленными.

ER–диаграмма сущностей мессенджера для подбора собеседника приведена на рисунке 1.

Рисунок 1 – ER–диаграмма мессенджера

  • Составим уточненную ER-диаграмму.

Необходимо «уточнить» созданную ранее инфологическую модель.

Уточнить – значит конкретизировать, добавить атрибуты в ранее созданные сущности. Уточняя, мы отмечаем в каждой сущности какие именно данные, относящиеся к этой сущности, мы будем хранить далее в базе данных.

Рисунок 2 – Уточнённая ER–диаграмма мессенджера

  1. Проведем логическое проектирование.

Логическое проектирование – создание схемы базы данных на основе конкретной модели базы данных, например, реляционной модели данных. Для реляционной модели данных даталогическая модель – набор схем отношений, обычно с указанием первичных ключей, а также «связей» между отношениями, представляющих собой внешние ключи.

Так как мы провели уточнение ER–диаграммы мессенджера, мы можем построить логическую модель БД.

Рисунок 3 – Логическая модель БД

  1. Провести нормализацию (до 3 нормальной формы).

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

Первая нормальная форма

Отношения таблиц БД находятся в 1НФ, так как все атрибуты являются простыми, все используемые домены должны содержат только скалярные значения. Нет повторений строк в таблице.

Вторая нормальная форма

Отношения таблиц БД находятся во 2НФ, так как они находятся в 1НФ и каждый не ключевой атрибут неприводимо зависит от Первичного Ключа (ПК).

Неприводимость означает, что в составе потенциального ключа отсутствует меньшее подмножество атрибутов, от которого можно также вывести данную функциональную зависимость

Третья нормальная форма

Отношения таблиц БД находятся в 3НФ, когда находится во 2НФ и каждый не ключевой атрибут нетранзитивно зависит от первичного ключа.

Физическая модель была составлена в pgAdmin с помощью инструмента ERD.

Рисунок 4 – Физическая модель БД

  1. Разделить пользователей базы данных на роли: функциональные возможности администратора, функциональные возможности пользователя.

Для работы с базой данных был созданы роли администратора 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.