UTS-32_IOSU_Guguchkin_A_Kursovaya_Rabota
.docxМИНОБРНАУКИ РОССИИ
Федеральное государственное автономное образовательное учреждение высшего образования
«Национальный исследовательский университет
«Московский институт электронной техники»
Направление |
27.03.04 «Управление в технических системах» |
Дисциплина |
Информационное обеспечение систем управления |
|
|
|
|
КУРСОВОЙ ПРОЕКТ
«Создание базы данных в СУБД |
MS SQL Server» |
Выполнил Студент гр.УТС-32 Гугучкин А.А. |
|
|
|
|
|
(подпись) |
|
|
|
Проверил Свиридов А.Н.
|
|
|
|
|
|
(подпись) |
|
|
Москва 2021г.
КУРСОВОЙ ПРОЕКТ
Вариант №4
Задание:
Спроектировать и создать БД для хранения сведений о торговых операциях аптечного склада, занимающегося оптовой продажей лекарств и аптечных принадлежностей (градусники, шприцы, бинты и т.д.) больницам и аптекам города и разработать программу для просмотра и изменения сведений.
Выполнение работы
Введение
Операция по продаже аптечных принадлежностей требует хранения информации об их стоимости, количестве, об учреждении, закупающем принадлежности, типе учреждения и т.д. Также требуется предоставить возможность внесения новой и редактирования старой информации. Для реализации подобной задачи воспользуемся средствами реляционной системы управления базами данных Microsoft Access 2007.
Инфологическая модель базы данных (ИЛМ)
Сущностями ИЛМ являются:
Торговая операция
Оплата
Аптечная принадлежность
Производитель
Закупщик
Тип учреждения
ИЛМ высшей степени абстракции (см. рисунок 2.1).
Рисунок 2.1 – Абстрактная ИЛМ
Представим атрибуты каждой сущности:
Торговая операция – идентификатор, оплата, аптечная принадлежность, закупщик.
Оплата - идентификатор, сумма, количество платежей, заплаченная сумма, УИН.
Аптечная принадлежность – идентификатор, наименование, стоимость, производитель, наличие.
Производитель – идентификатор, наименование, ИНН, адрес.
Закупщик – идентификатор, наименование, номер договора, ИНН, адрес, тип учреждения.
Тип учреждения – идентификатор, наименование.
Составим ИЛМ с учётом атрибутов и связей между сущностями (см. рисунок 2.2).
Рисунок 2.2 – ИЛМ с учётом атрибутов и связей между сущностями
К данной БД есть доступ только у одного типа пользователя, а именно у работников склада, которые передачей аптечных принадлежностей закупщикам. У работника есть доступ ко всем сущностям базы данных, у него есть права на добавление, редактирование и удаление информации.
Даталогическая модель базы данных (ДЛМ)
Запускаю программу Microsoft Access 2007 для разработки ДЛМ.
Создаю таблицу «Производитель» (см. рисунок 3.1).
Рисунок 3.1 – Атрибуты сущности «Производитель»
Создаю таблицу «Оплата» (см. рисунок 3.2).
Рисунок 3.2 – Атрибуты сущности «Оплата»
Создаю таблицу «ТипУчреждения» (см. рисунок 3.3).
Рисунок 3.3 – Атрибуты сущности «ТипУчреждения»
Создаю таблицу «АптечнаяПринадлежность» (см. рисунок 3.4).
Рисунок 3.4 – Атрибуты сущности «АптечнаяПринадлежность»
Создаю таблицу «Закупщик» (см. рисунок 3.5).
Рисунок 3.5 – Атрибуты сущности «Закупщик»
Создаю таблицу «ТорговаяОперация» (см. рисунок 3.1).
Рисунок 3.6 – Атрибуты сущности «ТорговаяОперация»
Устанавливаю связи между сущностями (см. рисунок 3.7).
Рисунок 3.7 – Связи между сущностями
Таблица находится в нормальной форме Бойса-Кодда, так как все связи соответствуют НФБК, а ключевые атрибуты не имеют зависимостей от других атрибутов.
Датафизическая модель базы данных (ДФМ)
Запускаю программу Erwin Data Modeler для создания ДФМ.
Создаем ДФМ (см. рисунок 4.1).
Рисунок 4.1 – Датафизическая модель
Создание запросов для базы данных
Было разработано 9 запросов для созданной базы данных (см. рисунок 5.1), которые потребуются работникам склада.
Рисунок 5.1 – Все запросы
Пройдемся по каждому из запросов.
Запрос «Все закупщики». Отображает всех, кто закупил аптечные принадлежности.
Запрос на языке SQL:
SELECT * FROM Закупщик;
Конструктор запроса (см. рисунок 5.2)
Рисунок 5.2 – Конструктор «Все закупщики»
Результат запроса (см. рисунок 5.3).
Рисунок 5.3 – Результат запроса «Все закупщики»
Запрос «Общая сумма оплаты». Запрос возвращает общую сумму всей ожидаемой оплаты.
Запрос на языке SQL:
SELECT SUM(Сумма) AS ['Общая сумма оплаты']
FROM Оплата;
Конструктор запроса (см. рисунок 5.4).
Рисунок 5.4 – Конструктор «Общая сумма оплаты»
Результат запроса (см. рисунок 5.5).
Рисунок 5.5 – Результат запроса «Общая сумма оплаты»
Запрос «Создать закупщика». Запрос создает новую сущность в атрибуте Закупщик.
Запрос на языке SQL:
INSERT INTO Закупщик (Наименование, [Номер договора], ИНН, Адрес, [Тип учреждения])
VALUES ([Введите наименование], [Введите номер договора], [Введите ИНН], [Введите адрес], [Введите Тип учреждения]);
Выполнение запроса (см. рисунки 5.6-5.10)
Рисунок 5.6 – Выполнение запроса «Создать закупщика»
Рисунок 5.7 – Выполнение запроса «Создать закупщика»
Рисунок 5.8 – Выполнение запроса «Создать закупщика»
Рисунок 5.9 – Выполнение запроса «Создать закупщика»
Рисунок 5.10 – Выполнение запроса «Создать закупщика»
Результат запроса (см. рисунок 5.11)
Рисунок 5.11 – Результат запроса «Создать закупщика»
Запрос «Увеличить заплаченную сумму». Увеличивать значение заплаченной суммы в таблице Оплата на введенное значение.
Запрос на языке SQL:
UPDATE Оплата SET
[Заплаченная сумма] = [Заплаченная сумма] + [Введите сумму]
WHERE Идентификатор = [Введите идентификатор]
Рисунок 5.12 – Конструктор «Увеличить заплаченную сумму»
Рисунок 5.13 – Выполнение запроса «Увеличить заплаченную сумму»
Рисунок 5.14 – Результат запроса «Увеличить заплаченную сумму»
Запрос «Должники по оплате». Выводит список закупщиков, заплаченная сумма у которых меньше общей суммы закупки.
Запрос на языке SQL:
SELECT Закупщик.Наименование, Закупщик.[Номер договора], Оплата.Сумма, Оплата.[Количество платежей], Оплата.[Заплаченная сумма]
FROM Закупщик, Оплата, ТорговаяОперация
WHERE Оплата.Идентификатор = ТорговаяОперация.Оплата AND Закупщик.Идентификатор = ТорговаяОперация.Закупщик AND Оплата.Сумма > Оплата.[Заплаченная сумма]
Рисунок 5.15 – Конструктор «Должники по оплате»
Рисунок 5.16 – Результат запроса «Должники по оплате»
Запрос «Аптечные принадлежности в наличии». Выводит список аптечных принадлежностей, которые в наличии на складе.
Запрос на языке SQL:
SELECT * FROM АптечнаяПринадлежность
WHERE Наличие > 0
Рисунок 5.17 – Конструктор «Аптечные принадлежности в наличии»
Рисунок 5.18 – Результат запроса «Аптечные принадлежности в наличии»
Запрос «Найти закупщиков аптечной принадлежности». Выводит список закупщиков, которые покупали указанную аптечную принадлежность.
Запрос на языке SQL:
SELECT Наименование, [Номер договора], ИНН, Адрес
FROM Закупщик
WHERE Закупщик.Идентификатор = (SELECT Закупщик
FROM ТорговаяОперация
WHERE ТорговаяОперация.[Аптечная принадлежность] = АптечнаяПринадлежность.[Введите Идентификатор])
Рисунок 5.19 – Конструктор «Найти закупщиков аптечной принадлежности»
Рисунок 5.20 – Результат запроса «Найти закупщиков аптечной принадлежности»
Запрос «Закупщики по типу учреждения». Выводит список закупщиков по указанному типу учреждения.
Запрос на языке SQL:
SELECT Наименование, [Номер договора], ИНН, Адрес
FROM Закупщик
WHERE Закупщик.[Тип учреждения] = ТипУчреждения.[Введите идентификатор]
Рисунок 5.21 – Конструктор «Закупщики по типу учреждения»
Рисунок 5.22 – Выполнение запроса «Закупщики по типу учреждения»
Рисунок 5.23 – Результат запроса «Закупщики по типу учреждения»
Запрос «Аптечные принадлежности по производителю». Выводит список аптечных принадлежностей по указанному производителю.
Запрос на языке SQL:
SELECT Наименование, Стоимость
FROM АптечнаяПринадлежность
WHERE АптечнаяПринадлежность.Производитель = Производитель.[Введите идентификатор]
Рисунок 5.24 – Конструктор «Аптечные принадлежности по производителю»
Рисунок 5.25 – Выполнение запроса «Аптечные принадлежности по производителю»
Рисунок 5.26 – Результат запроса «Аптечные принадлежности по производителю»
Разработка приложения для просмотра и изменения информации
Для создания приложения я буду использовать формы в MS Access. Сначала создам формы для таблиц. Названия форм будут аналогичны названиям таблиц.
Создаю форму для таблицы «ТипУчреждения». Конструктор формы (см. рисунок 6.1)
Рисунок 6.1 – Конструктор формы «ТипУчреждения»
Результат создания и редактирования формы (см. рисунок 6.2).
Рисунок 6.2 – Форма «ТипУчреждения»
Аналогично создаю формы и для других таблиц.
Рисунок 6.3 – Формы для таблиц
Далее нужно создать формы для запросов. Название формы аналогично названию запроса.
Создаю форму для запроса «АптечнаяПринадлежностьПоПроизводителю». Конструктор формы (см. рисунок 6.4).
Рисунок 6.4 – Конструктор формы «АптечнаяПринадлежностьПоПроизводителю»
Рисунок 6.5 – Форма «АптечнаяПринадлежностьПоПроизводителю»
Аналогично создаю формы для остальных запросов.
Рисунок 6.6 – Формы для запросов
Создаем главную форму, которая будет являться меню приложения, через которое можно получить доступ ко всем формам таблиц и запросов (см. рисунок 6.7).
Рисунок 6.7 – Добавление кнопок таблиц и запросов
Теперь для каждой кнопки добавляем макрос, организующий переход на нужную форму (см. рисунок 6.8).
Рисунок 6.8 – Макрос для кнопки «АптечнаяПринадлежность»
Аналогично добавляю макросы для других кнопок.
Нажмём на кнопку «АптечнаяПринадлежность» и увидим результат(см. рисунок 6.9).
Рисунок 6.9 – Результат нажатия кнопки «АптечнаяПринадлежность»
Нажмём на кнопку «АптечнаяПринадлежностьПоПроизводителю» и увидим результат(см. рисунок 6.10-6.11).
Рисунок 6.10 – Результат нажатия кнопки «АптечнаяПринадлежностьПоПроизводителю»
Рисунок 6.11 – Результат нажатия кнопки «АптечнаяПринадлежностьПоПроизводителю»
Заключение
В ходе выполнения данного курсового проекта была создана БД, которая позволяет добавлять, изменять и хранить информацию о торговых операциях аптечного склада, занимающегося оптовой продажей лекарств и аптечных принадлежностей. С целью упрощения процесса создания приложения оно было разработано в виде формы с кнопками. Тем не менее, оно выполняет свои задачи и позволяет работникам склада вносить и получать необходимую информацию. Основная часть работы по разработке и созданию БД была выполнена в программе MS Access. Также стоит отметить, что данная БД является универсальной, т.к. её можно изменять относительно самых различных требований.