
Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования«Новгородский государственный университет имени Ярослава Мудрого»`nИНСТИТУТ ЭЛЕКТРОННЫХ И ИНФОРМАЦИОННЫХ СИСТЕМ`nПОЛИТЕХНИЧЕСКИЙ КОЛЛЕДЖ`n`n`nУтверждаю:`n`nЗам. директора по УМ и ВР`n`n`n`n`n`nПРОИЗВОДСТВЕННАЯ ПРАКТИКА `nПМ.11 РАЗРАБОТКА И АДМИНИСТРИРОВАНИЕ БАЗ ДАННЫХ`n`n09.02.07 Информационные системы и программирование`nкод и наименование специальности`nОТЧЁТ`n`nРуководитель от организации:`n `n« »  202_ г. `n`nРуководитель от колледжа:`n `n« »  202_ г. `n`nВыполнил:`nСтудент гр.  1992`n `n« »  202_ г. `n`n`nСодержание`n`nTOC \o "1-9" \z \u \hПостановка задачи на практику  PAGEREF _Toc231138140 \h 3`n1 Инструкция по технике безопасности на рабочем месте  PAGEREF _Toc231138141 \h 4`n2 Должностные обязанности специалиста  PAGEREF _Toc231138142 \h 6`n3 Выполнение индивидуального задания  PAGEREF _Toc231138143 \h 7`n3.1 Проектирование модели базы данных  PAGEREF _Toc231138144 \h 7`n3.2 Словарь данных базы данных  PAGEREF _Toc231138145 \h 7`n3.3 Создание объектов базы данных  PAGEREF _Toc231138146 \h 10`n3.4 Руководство пользователя/администратора  PAGEREF _Toc231138147 \h 10`n3.5 Методы защиты данных в базе данных  PAGEREF _Toc231138148 \h 13`n4 Задание от предприятия  PAGEREF _Toc231138149 \h 14`nЗаключение  PAGEREF _Toc231138150 \h 15`nПриложение А  PAGEREF _Toc231138151 \h 16`nПриложение Б  PAGEREF _Toc231138152 \h 17`n`n`nПостановка задачи на практику`n`nЗадачей данного задания по модулю является проектирование и разработка базы данных, а также графическое приложение для нее. Графическое приложение должно обрабатывать и выдавать по запросу информацию: `nвход в пользовательский аккаунт;`nпросмотр выборки таблиц из базы данных;`nредактирование данных таблицы из базы данных;  `nДля проектирования схем была выбрана программа Draw.io. Для создания базы данных выбрана PostgreSQL. Для разработки приложения используется инструментальное средство Visual Studio 2022. `nПоскольку проектируемая система является многопользовательской, в качестве сервера баз данных выбран pgAdmin. Это платформа для администрирования и настройки СУБД PostgreSQL.`nТак как целью проекта, является проектирование и создание базы данных, необходимо определить основные функции, которые будут выполняться приложением разными категориями пользователей системы.  Пользователи могут просматривать свой профиль и свои данные, а также данные других таблиц. Пользователи с ролью администратора могут редактировать данные таблиц.`nЗадание по модулю ПМ.11 будет считаться завершенным в случае, если выполнены следующие этапы работ:    `nпроектирование модели базы данных;`nразработка базы данных в конкретной СУБД;  `nразработка приложения для работы с базой данных в выбранной программной среде;  `nреализация методов защиты средствами базы данных и приложения;  `nоформление отчета о выполнении индивидуального задания в соответствии с требованиями ГОСТ;  `nподготовить презентацию, посвященную продвижению продажи программного продукта предприятия, с указанием этапов разработки над проектом;  `n`n`n1 Инструкция по технике безопасности на рабочем месте`n`nКогда работаете за компьютером, важно соблюдать определенные меры безопасности, чтобы защитить себя и свои данные. Вот некоторые рекомендации по технике безопасности за компьютером: `nустановите антивирусное программное обеспечение и обновляйте его регулярно. Антивирусная программа поможет защитить ваш компьютер от вредоносных программ и вирусов;`nиспользуйте сложные пароли и изменяйте их регулярно. Пароли должны быть уникальными и содержать комбинацию букв, цифр и специальных символов;`nне открывайте подозрительные электронные письма и вложения. Фишинговые письма и вредоносные вложения могут содержать вирусы или попытаться получить доступ к вашим личным данным;`nрегулярно обновляйте программное обеспечение на компьютере. Обновления программ содержат исправления уязвимостей безопасности и помогают защитить ваш компьютер от атак;`nиспользуйте защищенное подключение к Интернету. При работе с конфиденциальными данными, такими как пароли или банковская информация, убедитесь, что вы подключены к защищенной сети Wi-Fi или используйте виртуальную частную сеть (VPN);`nрегулярно создавайте резервные копии важных данных. В случае потери данных или атаки вирусов, резервные копии помогут восстановить информацию;`nбудьте осторожны при скачивании файлов из Интернета. Убедитесь, что файлы, которые вы скачиваете, безопасны и проверены антивирусной программой;`nне делитесь личной информацией в ненадежных источниках. Будьте осторожны при предоставлении личных данных на непроверенных веб-сайтах или в социальных сетях;`nзаблокируйте компьютер при отсутствии. Включите функцию блокировки экрана или выйдите из учетной записи, когда уходите от компьютера;`nобратитесь за помощью, если возникнут проблемы. Если у вас возникли вопросы или проблемы с безопасностью компьютера, обратитесь к специалисту или посетите официальный веб-сайт производителя для получения дополнительной информации.`n`n2 Должностные обязанности специалиста`n`nДолжностные обязанности – это перечень конкретных видов поручаемой человеку работы, конкретных действий при выполнении им своей трудовой функции, цели, которые ставятся перед работником, и результаты его работы, а также меры по достижению поставленных перед работником целей.`nПроектирование модели базы данных, согласно выданному техническому заданию. Исправление представленной в задании диаграммы не в окончательном и ненормализованном виде, также она может быть модифицирована, но не в сторону упрощения. Требуется построить реляционную модель по модифицированной ER модели и словарь данных для каждой таблицы.`nСоздать базу данных в конкретной СУБД. Заполнить тестовыми записями для возможности проверки запросов. Сформулировать sql-скрипт для создания объектов базы данных.`nДоступ к базе данных из приложения: решить задачи администрирования базы данных средствами приложения (ввод, редактирование, удаление, поиск, формирование отчетных документов).`nПродумать и реализовать методы защиты к базе данных. Спроектировать пользователей БД для заданной предметной области и описать их обязанности. Продумать и реализовать методы защиты информации в базе на уровне базы данных и приложения.`nРазработать презентацию, посвященную продвижению продажи программного продукта предприятием, с указанием этапов работы над проектом.`n`n`n3 Выполнение индивидуального задания`n3.1 Проектирование модели базы данных`n`nВ ходе выполнения индивидуального задания по производственной практике были спроектированы модели баз данных, такие как ER модель базы данных и реляционная модель базы данных (рисунок А.1).`n`n3.2 Словарь данных базы данных`n`nБаза данных состоит из следующих таблиц:`nТовары – таблица товары отвечает за список возможных товаров на складе.`nПоставщик – таблица поставщик содержит информацию о текущих поставщиках товаров на склад.`nПользователи – таблица пользователи содержит информацию о пользователях приложения их пароле, логине и роли.`nРоли – таблица роли определяет количество ролей и их наименование.`nСклад – таблица склад принимает некие значения из таблиц товары и поставщик, также определяет количество товара на складе и его стоимость.`nНакладная – таблица накладная содержит в себе информацию о передаче определенного количества товара другому лицу. В накладной указывается покупатель, количество товара, полная стоимость товара и подобную информацию.`nПокупатель – таблица покупателей содержит в себе информацию о покупателях товара.`nДалее будут приведены таблицы с информацией о объектах базы данных.`n`nТаблица  SEQ Таблица \* ARABIC 1 - Таблица товары`nНазвание атрибута`nТип данных`nДлина в знаках`nДиапазон принимаемых значений`nКлючевое поле`n`nId товара`nSERIAL`n10`n1 - 2147483647`nPrimary key`n`nТовар`nVARCHAR`n50`nUniCode`nНет`n`nЦена`nINT`n10`n-2 147 483 648 - 2 147 483 647`nНет`n`nId поставщика`nINT`n10`n-2 147 483 648 - 2 147 483 647`nForeign key`n`n`nТаблица  SEQ Таблица \* ARABIC 2 -  Таблица поставщик`nНазвание атрибута`nТип данных`nДлина в знаках`nДиапазон принимаемых значений`nКлючевое поле`n`nId поставщика`nSERIAL`n10`n1 - 2147483647`nPrimary key`n`nИмя поставщика`nVARCHAR`n50`nUniCode`nНет`n`nРуководитель`nVARCHAR`n50`nUniCode`nНет`n`nАдрес`nVARCHAR`n100`nUniCode`nНет`n`nТелефон`nVARCHAR`n100`nUniCode`nНет`n`n`nТаблица  SEQ Таблица \* ARABIC 3 -  Таблица склад`nНазвание атрибута`nТип данных`nДлина в знаках`nДиапазон принимаемых значений`nКлючевое поле`n`nId склада`nSERIAL`n10`n1 - 2147483647`nPrimary key`n`nЗаведующий складом`nVARCHAR`n100`nUniCode`nНет`n`nРасположение`nVARCHAR`n100`nUniCode`nНет`n`nId товара`nINT`n10`n-2 147 483 648 - 2 147 483 647`nForeign key`n`nId поставщика`nINT`n10`n-2 147 483 648 - 2 147 483 647`nНет`n`n`nТаблица  SEQ Таблица \* ARABIC 4 - Таблица накладная`nНазвание атрибута`nТип данных`nДлина в знаках`nДиапазон принимаемых значений`nКлючевое поле`n`nId накладной`nSERIAL`n10`n1 – 2 147 483 647`nPrimary key`n`nДата`nDATA`n10`n1000-01-01 - 9999-12-31.`nНет`n`nId товара`nINT`n10`n-2 147 483 648 - 2 147 483 647`nForeign key`n`nСумма`nINT`n10`n-2 147 483 648 - 2 147 483 647`nНет`n`nКоличество`nINT`n10`n-2 147 483 648 - 2 147 483 647`nНет`n`nId покупателя`nINT`n10`n-2 147 483 648 - 2 147 483 647`nНет`n`n`nТаблица  SEQ Таблица \* ARABIC 5 - Таблица покупатель`nНазвание атрибута`nТип данных`nДлина в знаках`nДиапазон принимаемых значений`nКлючевое поле`n`nId Покупателя`nSERIAL`n10`n1 - 2147483647`nPrimary key`n`nПокупатель`nVARCHAR`n50`nUniCode`nНет`n`nРуководитель`nVARCHAR`n50`nUniCode`nНет`n`nАдрес`nVARCHAR`n100`nUniCode`nНет`n`nТаблица  SEQ Таблица \* ARABIC 6 - Роли`nНазвание атрибута`nТип данных`nДлина в знаках`nДиапазон принимаемых значений`nКлючевое поле`n`nId роли`nSERIAL`n10`n1 - 2147483647`nPrimary key`n`nНазвание роли`nVARCHAR`n50`nUniCode`nНет`n`n`nТаблица  SEQ Таблица \* ARABIC 7 - Пользователи`nНазвание атрибута`nТип данных`nДлина в знаках`nДиапазон принимаемых значений`nКлючевое поле`n`nId пользователя`nSERIAL`n10`n1 - 2147483647`nPrimary key`n`nФамилия`nVARCHAR`n50`nUniCode`nНет`n`nИмя`nVARCHAR`n50`nUniCode`nНет`n`nЛогин`nVARCHAR`n50`nUniCode`nНет`n`nПароль`nVARCHAR`n50`nUniCode`nНет`n`nId роли`nINT`n10`n-2 147 483 648 - 2 147 483 647`nForeign key`n`n`nТакже создано представление Vibor для получения информации о названии товара, его цене, количестве на складе и стоимости`n`n3.3 Создание объектов базы данных`n`nВ ходе выполнения индивидуального задания по производственной практике были созданы следующие объекты базы данных:`nтаблицы(Описание таблиц представлено в предыдущем пункте)`nпредставление Vibor, которое высчитывает сумму стоимости товаров (по формуле Количество*Цена)`nфункция getRole для получения роли конкретного пользователя по логину и паролю введённому в программе.`nSQL код для создания приведенных выше объектов базы данных представлен в приложении Б.`n`n3.4 Руководство пользователя/администратора`n`nРуководство для администратора:`nНастройка программы:`nУстановите программу на сервер или локальный компьютер, где будут храниться данные.`nСоздайте базу данных и таблицы, которые пользователи будут просматривать и изменять.`nУстановите права доступа к таблицам для различных групп пользователей.`nУправление пользователями:`nСоздайте процесс регистрации и аутентификации для пользователей.`nНазначьте администраторов, которые будут иметь доступ к настройкам и управлению данными.`nКонфигурирование доступа к данным:`nОпределите, какие таблицы и поля могут быть доступны для чтения и изменения для различных пользователей.`nРуководство для пользователя:`nАвторизация:`nЗарегистрируйтесь в системе и войдите в свою учетную запись с помощью логина и пароля.`nПросмотр данных:`nПосле успешного входа в систему, вы сможете видеть только те таблицы, к которым у вас есть доступ.`nБезопасность:`nНикогда не передавайте свои учетные данные другим пользователям.`nПри обнаружении подозрительной активности свяжитесь с администратором.`nВыход из системы: не забывайте выходить из системы после завершения работы, чтобы обеспечить безопасность данных.`n`n3.5 Методы защиты данных в базе данных`n`nМетоды защиты баз данных в различных СУБД отличаются. К основным методам относятся:`nзащита паролем;`nразграничение прав доступа к объектам базы данных;`nподдержание целостности данных в СУБД.`nДля защиты БД был выбрано два метода защиты – один из них разграничение прав доступа к объектам базы данных. Это значит, что у каждого пользователя программы есть своя роль которая дает ему те или иные возможности или наоборот ограничивает его в действиях.`nК примеру: пользователь с ролью пользователя не имеет полномочий для изменения каких-либо таблиц, а имеет только возможность их просматривать. `nТакой способ защиты очень хорошо сочетается с следующим методом – этот способ защита паролем. Защита паролем очень эффективно защищает базу данных от посторонних пользователей не имеющих никакого отношения к программе или базе данных.`n`n4 Задание от предприятия`n`nВ рамках моей профессиональной деятельности я осуществлял работу с базами данных, проводил настройку рабочего оборудования и занимался выполнением задач с использованием текстовых редакторов.`n`nРабота с базами данных:`nВ рамках моего трудового опыта в области информационных технологий, я успешно выполнял задачи, связанные с управлением базами данных. Моя работа включала обеспечение их эффективного функционирования, безопасность и надежность хранения информации.`n`nНастройка рабочего оборудования:`nЯ занимался настройкой и обслуживанием рабочего оборудования, включая компьютеры, сетевые устройства и периферийные устройства. Моя ответственность включала обновление драйверов, настройку сетевых параметров и обеспечение бесперебойной работы техники для эффективного функционирования процесса работы.`n`nРабота с текстовыми редакторами:`nБлагодаря опыту работы с различными текстовыми редакторами я успешно осуществлял редактирование и форматирование текстовых документов, создание отчетов и других документов с использованием соответствующего программного обеспечения. Моя профессиональная экспертиза в данной области позволяла мне уверенно использовать различные функциональные возможности редакторов для качественной обработки информации.`n`nМой опыт и навыки в работе с базами данных, настройке оборудования и текстовыми редакторами позволяют мне эффективно решать задачи в области информационных технологий, обеспечивая высокий уровень профессионализма и результативности в своей работе.`nЗаключение`n`nВ результате выполнения задания по модулю ПМ.11 были выполнены все этапы работ по проектированию и разработке баз данных, а также по приложению, для модифицированной базе данных на СУБД PostgreSQL.`nВ данной работе были решены все поставленные задачи, начиная со знакомства с предметной областью и заканчивая созданием автоматизированной системы по выданному индивидуальному заданию. `nВ ходе работы на этапе проектирования была исправлена и модифицирована представленная в индивидуальном задании ER модель. По модифицированной версии была разработана реляционная модель базы данных, по которой была спроектирована база данных. Также для графического отображения данных из базы данных было разработано приложение, в котором выводятся актуальные данные из разработанной базы данных. В приложении присутствует хеширование пароля, как метод защиты информации в базе данных, а также система ролей, которая ограничивает или расширяет возможности пользователя.`nНа этапе реализации был осуществлён ввод данных в базу данных и организован поиск необходимой информации по критерию и отображение результирующего списка данных. Также были разработаны результирующие документы – формы, отчеты на основании созданной базы данных. `nТаким образом, можно сделать вывод, что задание по модулю ПМ.11 выполнено в полном объёме.`n`nПриложение А`n(обязательное)`n`nРисунок  SEQ Рисунок \* ARABIC 1 - ER модель базы данных`n`nРисунок  SEQ Рисунок \* ARABIC 2 - Реляционная модель базы данных`n`nПриложение Б`n(обязательное)`n`n`n`nРисунок  SEQ Рисунок \* ARABIC 3 - Создание таблиц Customer, product, provider, users, role.`n`n`nРисунок  SEQ Рисунок \* ARABIC 4 - Создание таблиц warehouse, invoice`n`n`nРисунок  SEQ Рисунок \* ARABIC 5 - Создание внешних ключей`n`n`nРисунок  SEQ Рисунок \* ARABIC 6 - Создание представления Vibor`n`nРисунок  SEQ Рисунок \* ARABIC 7 - Создание функции getRole`n
