Разработка информационной системы свадебного салона

Знакомство с особенностями разработки информационной системы свадебного салона. Характеристика логической модели данных. Анализ спецификации реляционных отношений. Рассмотрение примера генерации отчета "Сводка о сшитых платьях определенного стиля".

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 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

Обязательно

Номер счета/
Number score

Внешний

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

Обязательно

Номер счета/
Number score

Внешний

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...


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.