Разработка информационной системы свадебного салона
Знакомство с особенностями разработки информационной системы свадебного салона. Характеристика логической модели данных. Анализ спецификации реляционных отношений. Рассмотрение примера генерации отчета "Сводка о сшитых платьях определенного стиля".
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 16.02.2021 |
Размер файла | 3,4 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Липецкий государственный технический университет
Факультет автоматизации и информатики
Кафедра автоматизированных систем управления
Курсовой проект
Разработка информационной системы свадебного салона
Тишевских А.И. - студент, Группа АИ-17
Алексеев В.А. - руководитель, доцент, к.т.н.
Предметная область: свадебный салон
Задание на курсовой проект состоит в реализации информационной системы для конкретной выбранной предметной области, с автоматизацией определенных техническим заданием бизнес-процессов. Предметная область, как правило, выбирается студентами на основе заданий, выполненных в лабораторном практикуме по дисциплине «Базы данных».
Обязательные требования к программному обеспечению:
Проект должен предусматривать реализацию триггеров и хранимых процедур.
Платформа разработки прикладного приложения - любая. Используемый фреймворк должен включать компоненты доступа к выбранной СУБД и средства генерации отчетов.
Прикладное приложение должно иметь удобный пользовательский интерфейс, реализующий функции информационной системы, предусмотренные техническим заданием.
Прикладное приложение должно скрывать от пользователя технические детали организации данных в БД (искусственные идентификаторы и т.п.).
Приложение должно предусматривать генерацию отчетных форм с использованием стандартных компонентов, с возможностью экспорта отчетов в стандартные форматы (PDF/Excel/Word и т.д.). Приветствуется использование в отчетах графических элементов - диаграмм и т.п.
Аннотация
С. 65 . Рис.34. Табл. 44 Литература 4 назв. Прил. 4;
В данной пояснительной записке представлено описание автоматизации заказов клиентов свадебного салона, при помощи применения информационной системы на базе PostgreSQL и программного обеспечения написанного на языке программирования С#.
Введение
Цель курсового проекта - углубленное усвоение теоретического материала курса «Базы данных», приобретение практических навыков разработки и документирования информационных систем на базе современных реляционных СУБД.
Главная задача - автоматизация тех рутинных процессов, которые могут быть исполнены при минимальном участии человека. Это весьма актуальная задача практически для любого бизнеса в настоящий момент.
1. Техническое задание
1.1 Характеристика предметной области
Данная информационная система позволяем упростить и автоматизировать процесс работы салона свадебной и вечерней моды. Задача информационной системы - упростить работу пользователей системы предоставить удобный интерфейс для работы и реализуя весь необходимый функционал.
1.2 Цели и задачи системы
Целью создания данной информационной системы является упрощение работы менеджеров и мастеров салона, процесса взаимодействия с базой информации, а также упрощение ведения учета для администрации:
1) Совершение заказа
2) Учет о наличии товара
3) Автоматическая генерация платёжных документов для клиентов
4) Отслеживание индивидуальных заказов
1.3 Основные бизнес-процессы
? Оформление заказа (Менеджер оформляет заказ, который делает покупатель (указывает номер заказа, цену заказа, дату заказа, следит за оплатой покупателем счета за купленной платье);
? Пошив платья (Мастер шьет платья для наличия конкретной модели для этого указывается фасон платья, название платья, его цвет);
? Исполнение заявки (Поставщик исполняет заявку мастер на материалы для платьев. Для этого заявке присваиваются номер и дата оформления);
? Изготовление заказа (Мастер шьет платья на заказ конкретной модели. Для этого указывается фасон платья, название платья, его цвет);
? Оплата счета (Покупатель оплачивает счет за купленное им платье. Менеджер следит за оплатой покупателем счета);
1.4 Характеристика пользователей
A) Менеджер. Оформляет заказы покупателей, отправляет их мастеру, следит за оплатой счета.
Б) Мастер. Шьет платья для наличия и на заказ, делает заявку на материалы для платьев.
1.5 Модель вариантов использования
А) Менеджер
Рис.1
Б) Мастер
Рис.2
АИС должна предусматривать формирование следующих видов отчётов:
А) Сводка о заказах должна содержать номер заказа, имя менеджера, оформившего заказ, имя покупателя.
Рисунок 3 - Примерная форма отчёта «Сводка о заказах» в формате PDF
Б) Сводка о платьях, сшитых конкретным мастером. Должна содержать название платья и имя мастера, который его сшил.
Рисунок 4 - Примерная форма отчёта «Сводка о платьях, сшитых конкретным мастером» в формате PDF
1.5 Требование к информационному обеспечению
1.) Концептуальная модель данных должна содержать не менее 5 сущностей.
2.) СУБД - Oracle Database, Microsoft SQL Server, PostgreSQL, MySQL или другая реляционная СУБД по согласованию с преподавателем.
3.) Физическая модель должна предусматривать реализацию индексов и пользовательского представления.
1.6 Требования к программному обеспечению
1.) Проект должен предусматривать реализацию триггеров и хранимых процедур.
2.) Платформа разработки прикладного приложения - любая. Используемый фреймворк должен включать компоненты доступа к выбранной СУБД и средства генерации отчетов.
3.) Прикладное приложение должно иметь удобный пользовательский интерфейс, реализующий функции информационной системы, предусмотренные техническим заданием.
4.) Прикладное приложение должно скрывать от пользователя технические детали организации данных в БД (искусственные идентификаторы и т.п.).
5.) Приложение должно предусматривать генерацию отчетных форм с использованием стандартных компонентов, с возможностью экспорта отчетов в стандартные форматы (PDF/Excel/Word и т.д.). Приветствуется использование в отчетах графических элементов - диаграмм и т.п.
2. Технический проект
2.1 Модели локальных представлений
2.1.1 Локальные ER-диаграммы
А) Мастер
Рисунок 5 - Модель локального представления для мастеров свадебного салона
Б) Менеджер
Рисунок 6 - Модель локального представления для менеджеров свадебного салона
2.1.2. Основные запросы
1) Какие платья есть в наличии и какие моделей
2)Какие данные у мастера (номер, ФИО мастера)
3)Какие данные у менеджера (номер, ФИО менеджера)
4)Какие данные у поставщика (данные, ФИО поставщика)
5)Какие заявки на материалы существуют в салоне
6)Какие покупатели совершили заказы
7)Какие данные содержит в себе заказ
2.1.3 Общая ER-диаграмма
Рисунок 7 - Общая модель представления данных
2.2 Концептуальная модель данных
2.2.1 ER-диаграмма
Диаграмма
2.2.2 Спецификация сущностей
Таблица 1) Model
Имя сущности/ код сущности |
Имя атрибута/ код атрибута |
Первичный ключ |
Тип данных |
Обязательность |
|
Модель/ Model |
Наличие платья/ Availability dress |
Нет |
Smallint |
Обязательно |
|
Цвет/Color |
Нет |
Varchar |
Обязательно |
||
Название платья/ Name dress |
Первичный |
Varchar |
Обязательно |
||
Номер мастера/ Number master |
Нет |
Numeric |
Обязательно |
||
Фасон/ Style |
Нет |
Varchar (150) |
Обязательно |
Таблица 2) Master
Мастер/ Master |
Имя мастера/ Name master |
Нет |
Varchar (35) |
Обязательно |
|
Номер мастера/ Number master |
Первичный |
Numeric (11) |
Обязательно |
Таблица 3) Meneger
Менеджер/ Meneger |
Номер менеджера/ Number meneger |
Первичный |
Numeric (11) |
Обязательно |
|
Имя менеджера/ Name maneger |
Нет |
Money |
Обязательно |
Таблица 4) Order
Заказ/ Order |
Номер заказа/ Number of order |
Первичный |
Numeric |
Обязательно |
|
Номер счета/ |
Внешний |
Numeric |
Обязательно |
||
Название платья/ Name dress |
Внешний |
Varchar |
Обязательно |
||
Номер менеджера/ Number meneger |
Внешний |
Numeric |
Обязательно |
||
Цена заказа/ Price order |
Нет |
Money |
Обязательно |
||
Дата заказа/ Date order |
Нет |
Date |
Обязательно |
Таблица5) Score
Счет/Score |
Дата создания счета/ Date score |
Нет |
Date |
Обязательно |
|
Статус / Status score |
Нет |
Smallint |
Обязательно |
||
Номер счета/ Number score |
Первичный |
Numeric |
Обязательно |
||
Номер заказа/Number order |
Нет |
Numeric |
Обязательно |
Таблица 6) Request
Заявка/ Request |
Дата заявки/ Date request |
Нет |
Date |
Обязательно |
|
Номер заявки/ Number request |
Первичный |
Numeric |
Обязательно |
||
Номер мастера/ Number master |
Внешний |
Numeric |
Обязательно |
||
Данные/ Data |
Внешний |
Varchar (35) |
Обязательно |
Таблица 7) Supplier
Поставщик/ Supplier |
Данные/ Data supplier |
Первичный |
Varchar |
Обязательно |
|
Имя поставщика/ Name supplier |
Нет |
Varchar |
Обязательно |
Таблица 8) Buyer
Покупатель/ Buyer |
Имя покупателя/Name Buyer |
Нет |
Varchar |
Обязательно |
|
Телефон покупателя/Contact number buyer |
Нет |
Money |
Обязательно |
Таблица 9) List request
Список заявки/ List request |
Материалы/ Materials |
Первичный |
Varchar |
Обязательно |
|
Номер_заявки/ Number_request |
Внешний |
Varchar |
Обязательно |
||
Цена_материалов/ Price_materials |
Нет |
money |
Обязательно |
||
Количество_материалов/Quantity_request |
Нет |
varchar |
Обязательно |
Таблица 10) Doing
Делает/ doing |
Номер_заказа/ Number_of_order |
Первичный, внешний |
numeric |
Обязательно |
|
Имя_покупателя/ Name_buyer |
Первичный, внешний |
Varchar |
Обязательно |
2.2.3 Спецификация связей
Таблица 11
№ |
Название связи |
Код |
Сущность «А» |
Сущность «В» |
Тип связи |
Обязательность «А» |
Обязательность «В» |
|
1 |
Шьет |
made dress |
Модель |
Мастер |
N:1 |
+ |
+ |
|
2 |
Отправляет |
Send |
Мастер |
Заявка |
1:N |
+ |
- |
|
3 |
Включает |
Includes |
Модель |
Заказ |
1:N |
+ |
+ |
|
4 |
Имеет |
have |
Список заявки |
Заявка |
1:1 |
+ |
+ |
|
5 |
Исполняет |
performs |
Поставщик |
Заявка |
N:1 |
+ |
+ |
|
6 |
Делает |
doing |
Заказ |
Покупатель |
N:N |
+ |
+ |
|
7 |
Содержит |
consist |
Заказ |
Счет |
1:1 |
+ |
- |
|
8 |
Оформляет |
draw up |
Менеджер |
Заказ |
1:N |
+ |
+ |
2.3 Логическая модель данных
2.3.1 Диаграмма логической модели
2.3.2 Спецификация реляционных отношений
Таблица 12) Model
Имя реляционных отношений / Код реляц. отношений |
Имя атрибута/ Код атрибута |
Первичный ключ |
Домен (Тип данных) |
Обязательность |
|
Модель/ Model |
Наличие платья/ Availability dress |
Нет |
Boolean |
Обязательно |
|
Цвет/ Color |
Нет |
Variable characters(20) |
Обязательно |
||
Название платья/ Name dress |
Первичный |
Variable characters(20) |
Обязательно |
||
Имя мастера/ Name master |
Внешний |
Variable characters(35) |
Обязательно |
||
Фасон/ Style |
Нет |
Variable characters(20) |
Обязательно |
Таблица 13) Master
Имя реляционных отношений / Код реляционных отношений |
Имя атрибута/ Код атрибута |
Первичный ключ |
Домен (Тип данных) |
Обязательн. |
|
Мастер/ Master |
Имя мастера/ Name master |
Первичный |
Variable characters(35) |
Обязательно |
|
Номер мастера/ Number master |
Нет |
Number(11) |
Обязательно |
Таблица 14) Meneger
Имя реляционных отношений / Код реляц. отношений |
Имя атрибута/ Код атрибута |
Первичный ключ |
Домен (Тип данных) |
Обязательность |
|
Менеджер/ Manager |
Номер менеджер/ Number manager |
Нет |
Number(11) |
Обязательно |
|
Имя менеджера/ Name manager |
Первичный |
Variable characters |
Обязательно |
Таблица 15. Order
Имя реляционных отношений / Код реляц. отношений |
Имя атрибута/ Код атрибута |
Первичный ключ |
Домен (Тип данных) |
Обязательность |
|
Заказ/ Order |
Номер заказа/ Number order |
Первичный |
Number |
Обязательно |
|
Имя менеджера/ Name manager |
Внешний |
Variable characters |
Обязательно |
||
Номер счета/ Number score |
Внешний |
Number |
Обязательно |
||
Название платья/ Name dress |
Внешний |
Variable characters(20) |
Обязательно |
||
Дата заказа/ Date order |
Нет |
Date |
Обязательно |
||
Цена заказа/ Price order |
Нет |
Money |
Обязательно |
Таблица 16. Buyer
Имя реляционных отношений / Код реляц. отношений |
Имя атрибута/ Код атрибута |
Первичный ключ |
Домен (Тип данных) |
Обязательность |
|
Покупатель/ Buyer |
Имя покупателя/ Name buyer |
Первичный |
Variable characters |
Обязательно |
|
Телефон покупателя/ Contact number buyer |
Нет |
Number(11) |
Обязательно |
Таблица 17. Request
Имя реляционных отношений / Код реляц. отношений |
Имя атрибута/ Код атрибута |
Первичный ключ |
Домен (Тип данных) |
Обязательность |
|
Заявка/ Request |
Дата заявки/ Date request |
Нет |
Date |
Обязательно |
|
Номер заявки/Number request |
Первич. |
Number |
Обязательно |
||
Имя мастера/ Name master |
Внешний |
Variable characters |
Обязательно |
||
Данные/ Data |
Внешний |
Variable characters |
Обязательно |
||
Статус заявки/ Status request |
Нет |
Variable characters |
Обязательно |
Таблица 18. Score
Имя реляционных отношений / Код реляц. отношений |
Имя атрибута/ Код атрибута |
Первичный ключ |
Домен (Тип данных) |
Обязательность |
|
Счет/ Score |
Дата оформления счета /Date score |
Нет |
Date |
Обязательно |
|
Статус счета/ Status score |
Нет |
Boolean |
Обязательно |
||
Номер счета/ number score |
Первичный |
Number |
Обязательно |
Таблица 19. Supplier
Имя реляционных отношений / Код реляц. отношений |
Имя атрибута/ Код атрибута |
Первичный ключ |
Домен (Тип данных) |
Обязательность |
|
Поставщик/ Supplier |
Имя поставщика/ Name supplier |
Нет |
Variable characters(30) |
Обязательно |
|
Данные/ Data supplier |
Первичный |
Variable characters(30) |
Обязательно |
2.4. Физическая модель данных
2.4.1. Диаграмма физической модели
2.4.2. Спецификация таблиц
Таблица 20. 1) Model
Имя таблицы/ Код таблицы |
Имя атрибута/ Код атрибута |
Первичный ключ |
Тип данных |
Обязательность |
|
Модель/ Model |
Наличие платья/ Availability dress |
Нет |
Smallint |
Обязательно |
|
Цвет/ Color |
Нет |
Varchar |
Обязательно |
||
Название платья/ Name dress |
Первичный |
Varchar |
Обязательно |
||
Номер мастера/ Number master |
Нет |
Numeric |
Обязательно |
||
Фасон/ Style |
Нет |
Varchar (150) |
Обязательно |
Таблица 21
Name |
Code |
Unique |
Cluster |
Primary |
Foreign Key |
Alternate Key |
|
Name dress_PK |
Name dress_PK |
+ |
- |
+ |
- |
- |
|
Number master_FK |
Number master_FK |
- |
- |
- |
+ |
- |
Таблица 22. Master
Мастер/ Master |
Имя мастера/ Name master |
Нет |
Varchar (35) |
Обязательно |
|
Номер мастера/ Number master |
Первичный |
Numeric (11) |
Обязательно |
Таблица 23
Name |
Code |
Unique |
Cluster |
Primary |
Foreign Key |
Alternate Key |
|
Master_PK |
Master_PK |
+ |
- |
+ |
- |
- |
Таблица 24. Meneger
Менеджер/ Menedger |
Номер менеджера/ Number meneger |
Первичный |
Numeric (11) |
Обязательно |
|
Имя менеджера/ |
Нет |
Money |
Обязательно |
Таблица 25
Name |
Code |
Unique |
Cluster |
Primary |
Foreign Key |
Alternate Key |
|
Meneger_PK |
Meneger_PK |
+ |
- |
+ |
- |
- |
Таблица 26. Order
Заказ/ Order |
Номер заказа/ Number of order |
Первичный |
Numeric |
Обязательно |
|
Номер счета/ |
Внешний |
Numeric |
Обязательно |
||
Название платья/ Name dress |
Внешний |
Varchar |
Обязательно |
||
Номер менеджера/ Number meneger |
Внешний |
Numeric |
Обязательно |
||
Цена заказа/ Price order |
Нет |
Money |
Обязательно |
||
Дата заказа/ Date order |
Нет |
Date |
Обязательно |
Таблица 27
Name |
Code |
Unique |
Cluster |
Primary |
Foreign Key |
Alternate Key |
|
Order_PK |
Order_PK |
+ |
- |
+ |
- |
- |
|
draw up_FK |
draw up_FK |
- |
- |
- |
+ |
- |
|
consist_FK |
consist_FK |
- |
- |
- |
+ |
- |
|
includes_FK |
includes_FK |
- |
- |
- |
+ |
- |
Таблица 28. Score
Счет/Score |
Дата создания счета/ Date score |
Нет |
Date |
Обязательно |
|
Статус / Status score |
Нет |
Smallint |
Обязательно |
||
Номер счета/ Number score |
Первичный |
Numeric |
Обязательно |
||
Номер заказа/Number order |
Нет |
Numeric |
Обязательно |
Таблица 29
Name |
Code |
Unique |
Cluster |
Primary |
Foreign Key |
Alternate Key |
|
Score_PK |
Score_PK |
+ |
- |
+ |
- |
- |
Таблица 30. Request
Заявка/ Request |
Дата заявки/ Date request |
Нет |
Date |
Обязательно |
|
Номер заявки/ Number request |
Первичный |
Numeric |
Обязательно |
||
Номер мастера/ Number master |
Внешний |
Numeric |
Обязательно |
||
Данные/ Data |
Внешний |
Varchar (35) |
Обязательно |
Таблица 31
Name |
Code |
Unique |
Cluster |
Primary |
Foreign Key |
Alternate Key |
|
Request_PK |
Request_PK |
+ |
- |
+ |
- |
- |
|
Send_FK |
Send_FK |
- |
- |
- |
+ |
- |
|
performs_FK |
performs_FK |
- |
- |
- |
+ |
- |
Таблица 32. Buyer
Покупатель/ Buyer |
Имя покупателя/Name Buyer |
Нет |
Varchar |
Обязательно |
|
Телефон покупателя/Contact number buyer |
Нет |
Money |
Обязательно |
Таблица 33
Name |
Code |
Unique |
Cluster |
Primary |
Foreign Key |
Alternate Key |
|
Buyer_PK |
Buyer_PK |
+ |
- |
+ |
- |
- |
Таблица 34. Supplier
Поставщик/ Supplier |
Данные/ Data supplier |
Первичный |
Varchar |
Обязательно |
|
Имя поставщика/ Name supplier |
Нет |
Varchar |
Обязательно |
Таблица 35
Name |
Code |
Unique |
Cluster |
Primary |
Foreign Key |
Alternate Key |
|
Supplier_PK |
Supplier_PK |
+ |
- |
+ |
- |
- |
Таблица 36. List request
Список заявки/ List request |
Материалы/ Materials |
Первичный |
Varchar |
Обязательно |
|
Номер_заявки/ Number_request |
Внешний |
Varchar |
Обязательно |
||
Цена_материалов/ Price_materials |
Нет |
money |
Обязательно |
||
Количество_материалов/Quantity_request |
Нет |
Varchar |
Обязательно |
Таблица 37
Name |
Code |
Unique |
Cluster |
Primary |
Foreign Key |
Alternate Key |
|
PK_LIST REQUEST |
PK_LIST REQUEST |
+ |
- |
+ |
- |
- |
|
FK_LIST REQ_HAVE_REQUEST |
FK_LIST REQ_HAVE_REQUEST |
+ |
- |
- |
+ |
- |
Таблица 37. Doing
Делает/ doing |
Номер_заказа/ Number_of_order |
Первичный, внешний |
numeric |
Обязательно |
|
Имя_покупателя/ Name buyer |
Первичный, внешний |
Varchar |
Обязательно |
Таблица 38
Name |
Code |
Unique |
Cluster |
Primary |
Foreign Key |
Alternate Key |
|
PK_doing |
PK_doing |
+ |
- |
+ |
- |
- |
|
FK_DOING_DOING_ORDER |
FK_DOING_DOING_ORDER |
+ |
- |
- |
+ |
- |
|
FK_DOING_DOING2_BUYER |
FK_DOING_DOING2_BUYER |
+ |
- |
- |
+ |
- |
2.4.3. Проектирование индексов
2.4.3.1 Описание
Так как изначально в салоне есть платья из коллекции в наличии, то имеет смысл создание уникального, кластеризованного индекса для таблицы.
2.4.3.2 Sql-запрос
CREATE index Index_model on Model (
Availability_dress ASC
2.4.3.3. Таблица Index model
Таблица 39
Name |
Code |
Unique |
Cluster |
Primary |
Foreign Key |
Alternate Key |
|
Index_model |
Index_model |
+ |
+ |
- |
- |
- |
2.5 Основные запросы к базе данных
Запрос выборки данных из одной таблицы с использованием конструкции: SELECT … FROM R WHERE … ORDER BY…
Первый запрос
Формулировка на естественном языке:
Выбрать заказы с ценой более 20000 руб “Цена заказа >20000”
Фрагмент физической схемы данных, отображающий таблицы, по которым строится запрос, и их взаимосвязи.
Рисунок 8 - Фрагмент физической схемы данных
Выражение реляционной алгебры
Формула реляционного исчисления
Формулировка SELECT-запроса на языке SQL.
SELECT *
FROM [ss].[dbo].[Order]
WHERE [ss].[dbo].[Order].Price_order>20000
2.5.1 Скриншот с результатом выполнения запроса
Рисунок 9- Результат SQL запроса
Второй запрос
Разработать запрос выборки данных из нескольких таблиц с использованием различных вариантов реализации соединения:
Используя конструкцию WHERE:
SELECT … FROM R, S WHERE R.A=S.A AND … ORDER BY …
2.5.2. Формулировка на естественном языке
Выбрать все купленные платья покупателями
Фрагмент физической схемы данных, отображающий таблицы, по которым строится запрос, и их взаимосвязи c сортировкой по дате
Рисунок 10 - Фрагмент физической схемы данных
2.5.3. Выражение реляционной алгебры
2.5.4Формула реляционного исчисления
2.5.5 Формулировка SELECT-запроса на языке SQL
SELECT m.Availability_dress, m.Name_dress, o.Price_order
FROM [ss].[dbo].[Model] m, [ss].[dbo].[Order] o
WHERE m.Name_dress=o.Name_dress
ORDER BY m.Name_dress
2.5.6 Скриншот с результатом выполнения запроса
Рисунок 11 - Результат SQL запроса
Третий запрос
Используя конструкцию «внутреннее соединение» - INNER JOIN:
SELECT…FROM R INNER JOIN S ON R. A=S.A WHERE...ORDER BY
Формулировка на естественном языке:
Составить список платьев, совпадающих по цене
Фрагмент физической схемы данных, отображающий таблицы, по которым строится запрос, и их взаимосвязи.
Рисунок 12 - Фрагмент физической схемы данных
2.5.7 Выражение реляционной алгебры
2.5.8 Формула реляционного исчисления
{
2.5.9 Формулировка SELECT-запроса на языке SQL
SELECT M.Name_dress, O.Price_order
FROM Model M inner join [Order] O
ON M.Name_dress=O.Name_dress
WHERE O.Price_order='25000'
order by M.Name_dress
Скриншот с результатом выполнения запроса
Рисунок 13 - Результат SQL запроса
Четвертый запрос
Используя конструкцию «внешнее соединение» - OUTER JOIN:
SELECT … FROM R LEFT | RIGTH | FULL [OUTER] JOIN S ON R.A=S.A WHERE ... ORDER BY
Формулировка на естественном языке:
Вывести мастера, не сделавшего заявки на материалы.
Фрагмент физической схемы данных, отображающий таблицы, по которым строится запрос, и их взаимосвязи.
Рисунок 14 - Фрагмент физической схемы данных
Выражение реляционной алгебры
Формула реляционного исчисления
{
2.5.10 Формулировка SELECT-запроса на языке SQL
SELECT m.[Nam_ master], R.Number_master, R.Number_request
FROM [Master] M Full OUTER JOIN Request R On M.Number_master=R.Number_master
order by M.Number_master
Скриншот с результатом выполнения запроса
Рисунок 15 - Результат SQL запроса
2.5.11 Пятый запрос
Разработать запрос с подзапросом с использованием конструкций:
SELECT … FROM … WHERE … [NOT] IN (SELECT …)
Формулировка на естественном языке:
Выбрать все платья кроме вечерних
Фрагмент физической схемы данных, отображающий таблицы, по которым строится запрос, и их взаимосвязи.
Рисунок 16 - Фрагмент физической схемы данных
2.5.12 Формулировка SELECT-запроса на языке SQL
SELECT *
FROM Model m
WHERE m.Style NOT IN ('вечернее')
Скриншот с результатом выполнения запроса.
Рисунок 17 - Результат SQL запроса
2.6 Пользовательские представления
2.6.1 Описание представления №1
Структура пользовательского представления. Данный запрос к базе данных осуществляет поиск всех платьев определенного стиля, которые есть в наличии на момент поиска в свадебном салоне.
2.6.1.1. Представление на SQL №1
CREATE VIEW OneStyle
AS SELECT *
FROM model Where Style='Красотка';
2.6.1.2 Пример 1 выполнения запроса в БД
Рисунок 18 - Пример генерации отчёта «Сводка о сшитых платьях определенного стиля»
2.6.2. Описание представления №2
Данный запрос к базе данных осуществляет поиск всех заявок, сделанных определенным мастером салона.
2.6.2.1. Представление на SQL №2
CREATE VIEW requestmaters
AS SELECT *
FROM request
Where number_master='71234567890';
2.6.2.2. Пример 2 выполнения запроса в БД
Рисунок 19 - Пример генерации отчёта «Сводка о заявках, сделанных определенным мастером»
информационный свадебный реляционный
2.7 Хранимые процедуры и триггеры
2.7.1 Триггер masterTriggerOnInsert
2.7.1.1 Описание логики работы на естественном языке
Необходимо сохранять информацию об инициалах и времени добавления в БД всех новых мастеров.
2.7.1.2 Текст процедуры триггера на языке SQL
CREATE TRIGGER masterTriggerOnInsert
ON[Master]
AFTER INSERT
AS INSERT INTO dbo.History(master_name, operation)
SELECT 'Мастер '+[Nam_ master],'Добавление'
FROM inserted
2.7.2 Триггер editNumManagers
2.7.2.1. Описание логики работы на естественном языке
При изменении цены заказа перевести данный заказ на менеджера с конкретным номером
2.7.2.2. Текст процедуры триггера на языке SQL
CREATE TRIGGER editNumManagers
ON [Order]
AFTER UPDATE
AS
UPDATE [Order]
SET Number_meneger=9
WHERE Number_of_order IN
(SELECT B.Number_of_order
FROM inserted AS A
INNER JOIN deleted AS B
ON B.Number_of_order = A.Number_of_order
WHERE A.Price_order <> B.Price_order)
2.7.3. Хранимая процедура discount
2.7.3.1. Описание логики работы на естественном языке
Процедура получает все данные о заказе и заносит и в базу данных. Если цена заказа больше 25000, делается скидка в 25%.
2.7.3.2. Блок-схема алгоритма
Рисунок 20 - Алгоритм работы хранимой процедуры
2.7.3.3. Код хранимой процедуры на языке SQL
CREATE PROCEDURE discount(@numOrder numeric(9),@numManager int,@numScore int,@Name_dress varchar(30),@price money, @dateNow datetime)
AS
BEGIN TRANSACTION
INSERT INTO[Order](Number_of_order,Number_meneger,Number_score,Name_dress,Price_order,Date_order)
VALUES(@numOrder,@numManager,@numScore,@Name_dress,@price,@dateNow)
IF (@@error <> 0)
ROLLBACK
UPDATE [Order]
SET Price_order=Price_order*0.75
WHERE Number_of_order=@numOrder AND Price_order>=25000
IF (@@error <> 0)
ROLLBACK
COMMIT
2.8 Архитектура информационной системы
2.8.1. Диаграмма компонентов
Рисунок 21 - Диаграмма АИС
2.8.2. Спецификация компонентов
Для работы приложения используется база данных PostgreSQL
2.8.3. Интерфейсы взаимодействия компонентов
Основные моменты Программа написана на языке программирования C#, с использованием фреймворка .Net Framework версии 4.5 (windows forms). СУБД, использованная в курсовом проекте - PostgreSQL версии 12. Она находится на удаленном сервере, предоставляемым сервисом Heroku. Подключение к базе данных происходит с помощью библиотеки Npgsql. Код находится в проекте WillYouMarryMe.Core в файле Heroku.cs: using Npgsql; namespace WillYouMarryMe.Core { public static class Heroku { static string host = "ec2-46-137-156-205.eu-west-1.compute.amazonaws.com"; static int port = 5432; static string database = "d1fbk9m2enrsi5"; static string username = "vdnlkgdmmdpsuy"; static string password = "8d47cdc5f3c280ac1f3e7e5bbfb8ead4937aa7cd3e21a967a1c5196a57c613ea"; public static NpgsqlConnection GetConnection() { var connectionStringBuilder = new NpgsqlConnectionStringBuilder { Database = database, Host = host, Port = port, Username = username, Password = password, SslMode = SslMode.Require, TrustServerCertificate = true }; return new NpgsqlConnection(connectionStringBuilder.ToString()); } } } Метод выше формирует строку подключения к удаленной базе данных. Данные для подключения берутся из личного кабинета на сайте Heroku. Запросы к БД Для каждой таблицы БД в коде созданы соответствующие классы, отвечающие за выборку, обновление и создание данных. Каждый из них реализует методы: - ExistsAsync() - метод, позволяющий определить, существует ли данный экземпляр в БД; - UpdateAsync() - метод, позволяющий обновить существующий или создать новую строку в БД; - DeleteAsync() - метод, позволяющий удалить существующую строку из БД; - UpdatePropertiesAsync() - метод, позволяющий обновить локальные данные экземпляра на те, что лежат в БД. Все методы асинхронны (async) для того, чтобы формы не зависали, когда программа делает запрос к БД.
3. Рабочий проект
3.1 SQL-скрипт создания структуры БД
В процессе создания автоматизированной информационной системы была спроектирована необходимая база данных. В процессе проектирования были последовательно пройдены 3 уровня: концептуальный, логический и физический. Далее, на основе физического уровня был сгенерирован скрипт создания базы данных. Все этапы проектирования и генерирование скрипта были произведены в среде PowerDesigner (см. Приложение 1).
3.2 SQL-скрипт триггеров и хранимых процедур
После создания и заполнения базы данных, появилась необходимость создать несколько триггеров и хранимых процедур для упрощения и автоматизации типичных задач, возникающих в результате взаимодействия с базой данных (см. Приложение 2).
3.3 Текст программы
Последним этапом является создание практического приложения. Данный этап позволяет автоматизировать и упростить взаимодействие пользователей с базой данных, скрывая от них всю внутреннюю реализацию. Код основных модулей приведён в Приложении 3.
3.4 Руководство пользователя
Для упрощения работы пользователей с прикладным приложением было создано руководство пользователя (см. Приложение 4).
Заключение
В ходе выполнения курсовой работы были получены практические навыки разработки информационной системы, включающей в себя базу данных и прикладной приложение, непосредственно взаимодействующее с данной базой данных, а также техническую документацию.
Создание базы данных шло в несколько последовательных этапов, включающих в себя ER-диаграммы, концептуальную, логическую и физическую модели.
Было разработано прикладное приложение, позволяющее взаимодействовать с базой данных. Данная программа позволяет пользователям работать с базой данных, не вникая в подробности внутренней структуры базы данных.
После разработки прикладного приложения было проведено документирование результатов работы, позволяющее упростить процесс поддержки данной информационной системы для других разработчиков, а также помогающее пользователям в работе с данным прикладным приложением.
Список использованных источников
1. Дейт К. Введение в системы баз данных //6-издание. - Киев: Диалектика, 1998. - 784 с.
2. Гарсиа-Молина Г., Ульман Дж., Уидом Дж. Системы баз данных. Полный курс. - М.: «Вильямс», 2003. - 1088 с.
3. Джеффри Рихтер Программирование на платформе Microsoft .NET Framework 4.0 на языке C#
4. Зиборов, В.В. Visual C# 2012 на примерах / В.В. Зиборов. - М.: БХВ-Петербург, 2013. - 480 c.
Приложение 1
SQL-скрипт создания БД
/* DBMS name: PostgreSQL 8 */
/* Created on: 11.09.2020 11:33:14 *
/* Table: Buyer */
create table Buyer (
Name_buyer VARCHAR(35) not null,
"Contact_number buyer" NUMERIC(11) not null,
constraint PK_BUYER primary key (Name_buyer)
);
/* Table: "List request" */
create table "List request" (
Materials TEXT not null,
Number_request NUMERIC null,
Price_materials MONEY not null,
Quantity_request VARCHAR(300) not null,
constraint "PK_LIST REQUEST" primary key (Materials)
);
create index have_FK on "List request" (
Number_request
);
/* Table: Master */
create table Master (
"Nam_ master" VARCHAR(35) not null,
Number_master NUMERIC(11) not null,
constraint PK_MASTER primary key (Number_master)
);
/* Table: Meneger */
create table Meneger (
Number_meneger NUMERIC(11) not null,
Name_meneger VARCHAR(35) not null,
constraint PK_MENEGER primary key (Number_meneger)
);
/* Table: Model */
create table Model (
Availability_dress BOOL not null,
Color VARCHAR(150) not null,
Name_dress VARCHAR(150) not null,
Number_master NUMERIC(11) null,
Style VARCHAR(150) not null,
constraint PK_MODEL primary key (Name_dress)
);
/* Index: "made dress_FK" */
create index "made dress_FK" on Model (
Number_master
);
/* Index: Index_model */
create unique index Index_model on Model (
Availability_dress,
Name_dress
);
/* Table: "Order" */
create table "Order" (
Number_of_order NUMERIC not null,
Number_meneger NUMERIC(11) not null,
Number_score NUMERIC not null,
Name_dress VARCHAR(150) not null,
Price_order MONEY not null,
Date_order DATE not null,
constraint PK_ORDER primary key (Number_of_order)
);
/* Index: "draw up_FK" */
create index "draw up_FK" on "Order" (
Number_meneger
);
/* Index: consist_FK */
create index consist_FK on "Order" (
Number_score
);
/* Index: includes_FK */
create index includes_FK on "Order" (
Name_dress
);
/* Table: Request */
create table Request (
Date_request DATE not null,
Number_request NUMERIC not null,
Number_master NUMERIC(11) not null,
Data_supplier VARCHAR(35) not null,
Status_request TEXT not null,
constraint PK_REQUEST primary key (Number_request)
);
/* Index: Send_FK */
create index Send_FK on Request (
Number_master
);
/* Index: performs_FK */
create index performs_FK on Request (
Data_supplier
);
/* Table: Score */
create table Score (
Data_score DATE not null,
Status_score BOOL not null,
Number_score NUMERIC not null,
constraint PK_SCORE primary key (Number_score)
);
/* Table: Supplier */
create table Supplier (
Data_supplier VARCHAR(35) not null,
Name_supplier VARCHAR(35) null,
constraint PK_SUPPLIER primary key (Data_supplier)
);
/* Table: doing */
create table doing (
Number_of_order NUMERIC not null,
Name_buyer VARCHAR(35) not null,
constraint PK_DOING primary key (Number_of_order, Name_buyer)
);
/* Index: doing2_FK */
create index doing2_FK on doing (
Name_buyer
);
/* Index: doing_FK */
create index doing_FK on doing (
Number_of_order
);
alter table "List request"
add constraint "FK_LIST REQ_HAVE_REQUEST" foreign key (Number_request)
references Request (Number_request);
alter table Model
add constraint "FK_MODEL_MADE DRES_MASTER" foreign key (Number_master)
references Master (Number_master);
alter table "Order"
add constraint FK_ORDER_CONSIST_SCORE foreign key (Number_score)
references Score (Number_score);
alter table "Order"
add constraint "FK_ORDER_DRAW UP_MENEGER" foreign key (Number_meneger)
references Meneger (Number_meneger);
alter table "Order"
add constraint FK_ORDER_INCLUDES_MODEL foreign key (Name_dress)
references Model (Name_dress);
alter table Request
add constraint FK_REQUEST_SEND_MASTER foreign key (Number_master)
references Master (Number_master)
alter table Request
add constraint FK_REQUEST_PERFORMS_SUPPLIER foreign key (Data_supplier)
references Supplier (Data_supplier);
alter table doing
add constr...
Подобные документы
Анализ информационной системы салона сотовой связи. Разработка модели бизнес-процессов учебной информационной системы. Создание справочников и их заполнение, документов и их программного кода. Порядок разработки регистров, трех видов планов и отчетов.
курсовая работа [1,4 M], добавлен 05.06.2013Статическое и динамическое описание свадебного салона. Разработка технического задания и календарного плана. Проектирование функциональной, информационной и поведенческой моделей автоматизированной информационной подсистемы "Запись клиента на примерку".
курсовая работа [803,4 K], добавлен 25.01.2014Знакомство с особенностями и основными этапами разработки информационной системы магазина сантехники "САНТЕХсити". Общая характеристика системы программирования Delphi. Рассмотрение способов определения форм представления входных и выходных данных.
дипломная работа [1,1 M], добавлен 25.06.2017Анализ возможностей, методологии и инструментальных средств проектирования информационной системы для салона цветов "Феерия". Программное обеспечение клиентского приложения с включением экранных форм, отчетов и запросов. Графическое и текстовое описание.
курсовая работа [1,3 M], добавлен 05.05.2014Основы методологии проектирования информационной системы. Общая характеристика и классификация CASE-средств. Рассмотрение логической, функциональной и физической модели данных системы "Студент". Расчет трудоемкости разработки программного изделия.
дипломная работа [1,9 M], добавлен 16.03.2012Общие понятия реляционного похода к базам данных. Разработка программы для автоматизации функций руководителя салона сотовой связи. Детализация бизнес-процессов. Интерфейс для работы пользователя. Тестирование разработанной информационной системы.
курсовая работа [2,2 M], добавлен 26.06.2012Проектирование базы данных для автоматизации работы салона художественной татуировки в среде разработки Delphi 7 с использование сервера баз данных Microsoft SQL Server 2008 R2. Схема алгоритма системы. Протокол тестирования программного продукта.
курсовая работа [539,3 K], добавлен 15.02.2017Обоснование выбора используемого программного обеспечения. Входная и выходная информация. Реляционная модель базы данных предметной области. Создание модели информационной системы с помощью Run All Fusion Process Modeler r7. Результаты тестовых испытаний.
курсовая работа [4,3 M], добавлен 12.04.2014Классификация информационных систем, назначение ИС с Web-доступом. Анализ узких мест работы учреждения, нуждающихся в автоматизации. Выбор платформы разработки, физической и логической модели данных, настройка и тестирование информационной системы.
дипломная работа [5,2 M], добавлен 10.09.2013Разработка информационно-логической модели проектируемой информационной системы. Алгоритм функционирования информационной системы. Описание базы данных. Описание входной, промежуточной и выходной информации. Техническое и программное обеспечение.
реферат [28,1 K], добавлен 09.01.2009Описание предметной области и определение предметной области информационной системы детского сада. Разработка логической и физической модели базы данных дошкольного образовательного учреждения. Анализ функционала информационной системы детского сада.
курсовая работа [1,6 M], добавлен 20.04.2015Разработка информационной подсистемы автоматизации рабочего места менеджера салона по ремонту мобильных телефонов. Проблемы CRM-систем, необходимость их использования. Система управления базой данных как способ реализации информационной системы.
дипломная работа [1,4 M], добавлен 28.11.2012Исследование методов и способов разработки информационных систем. Автоматизация деятельности продовольственного магазина. Проектирование логической схемы информационной системы. Разработка модели базы данных и структуры вычислительно-локальной сети.
курсовая работа [389,2 K], добавлен 16.03.2017Содержательное описание предметной области. Структурный анализ бизнес-процесса на основе IDEF0-модели. Построение информационно-логической модели данных. Структурная схема на основе IDEF0. Даталогическая модель данных. Реализация информационной системы.
курсовая работа [849,7 K], добавлен 10.07.2014Анализ и разработка информационной системы, структура сети предприятия. Описание процесса разработки конфигураций и выявление потребностей в автоматизации функций. Средства разработки проектирования и архитектура базы данных. Разработка модели угроз.
дипломная работа [1,4 M], добавлен 13.07.2011Общая характеристика инфологической модели информационной системы. Знакомство с особенностями проектирования базы данных "Библиотека", анализ основных этапов. Рассмотрение способов составления запросов по выборке информации из таблиц базы данных.
контрольная работа [831,2 K], добавлен 08.12.2013Характеристика принципа работы информационной системы "Оплата услуг ЖКХ". Рассмотрение особенностей рынка жилищно-коммунальных услуг. Знакомство с документами для формирования отчетной ведомости об оплате коммунальных услуг, этапы разработки базы данных.
курсовая работа [1,9 M], добавлен 11.03.2013Разработка информационной системы, выполняющей функции: регистрация клиентов; расчет прайс-листа; оформление заявки; статистический анализ. Составление логической и физической модели данных на языке Java. Расчет функционально-ориентированных метрик.
курсовая работа [660,3 K], добавлен 11.10.2014Проектирование логической модели системы: контекстная диаграмма и детализация процессов, реализация ссылочной целостности. Описание работоспособного программного обеспечения для проекта. SQL-определения запросов. Описание базы данных контрольного примера.
курсовая работа [91,4 K], добавлен 01.09.2010- Разработка информационной системы для автоматизации учета ремонта электрооборудования на предприятии
Архитектура и функции информационной системы для автоматизации учета ремонта электрооборудования. Построение модели прецедентов, потоков данных и процессов в стандарте IDEF0. Проектирование концептуальной и логической модели интегрированной базы данных.
курсовая работа [442,9 K], добавлен 06.08.2013