Автор работы: Пользователь скрыл имя, 16 Декабря 2014 в 08:26, курсовая работа
Цель курсовой работы заключается в разработке автоматизированной информационной системы для удобства работы менеджеров магазина. Автоматизированная информационная система будет включать в себя базу данных и приложение для более функциональной работы. Для успешного создания работоспособной, отказоустойчивой и удобной атоматизированной информационной системы необходимо тщательное изучение предметной области, сбор исходных данных и их анализ.
Введение…………………………………………………………………………...3
1. Описание предметной области………………………………………………..4
2. Описание постановки задачи………………………………………………….5
2.1 Характеристики комплекса задач…………………………………………..5
2.2 Выходная информация………………………………………………………5
2.3 Входная информация…………………………………………………………7
3. Проектирование БД…………………………………………………………..9
3.1 Проектирование БД методом «Сущность-связь»………………………….9
3.2 Проектирование БД с помощью CASE-средств…………………………...12
3.2.1 IDEF 1X……………………………………………………………………12
3.2.2 Построение логической модели………………………………………….13
3.2.3 Построение физической модели …………………………………………13
3.3 Тестирование информационной модели с помощью CASE-средств……..14
4. Создание БД в СУБД………………………………………………………….16
Заключение……………………………………………………………………….19
Список источников………………………………………………………………20
в) Order_Product (Kolichestvo_orders, Sold_orders, OrderProduct_No, Order_No, Product_No)
г) Responsible_person (INN, Surname, Name, Patronymic)
д) Client (Client_No, Surname_C, Name_C, Patronymic_C, Adress, Telephone, Date_C, Unit)
3.2 Проектирование базы данных с помощью CASE-средств
CASE (англ. Computer-Aided Software Engineering) — набор инструментов и методов программной инженерии для проектирования программного обеспечения, который помогает обеспечить высокое качество программ, отсутствие ошибок и простоту в обслуживании программных продуктов.
Также под CASE понимают совокупность методов и средств проектирования информационных систем с использованием CASE-инструментов. В нашем случае CASE-средством является программа ERwin.
3.2.1 Коротко о IDEF1X.
IDEF1 (Information Modeling) — одна из методологий семейства IDEF. Применяется для построения информационной модели, которая представляет структуру информации, необходимой для поддержки функций производственной системы или среды.
Метод IDEF1, разработанный Т. Рэмей (T. Ramey), также основан на подходе П. Чена и позволяет построить модель данных, эквивалентную реляционной модели в третьей нормальной форме. В настоящее время на основе совершенствования методологии IDEF1 создана ее новая версия — методология IDEF1X. IDEF1X разработана с учетом таких требований, как простота изучения и возможность автоматизации. IDEF1X–диаграммы используются рядом распространённых CASE–средств (в частности, ERwin, Design/IDEF).
3.2.2 Построение логической модели
Рисунок 2. Логическая модель БД
3.2.3 Построение физической модели
Рисунок 3. Физическая модель
3.3 Тестирование информационной модели с помощью CASE-средств
3.3.1 Исходный протокол
Необходимо проанализировать найденные ошибки и, по возможности, исправить их. Найдена ошибка: Undefined Alternate Keys, т. е. таблица имеет суррогатный первичный ключ и не имеет альтернативного ключа. Эта ошибка является допустимой.
Создание БД в СУБД
drop database if exists TABLE_OF_ORDERS;
create database TABLE_OF_ORDERS;
use TABLE_OF_ORDERS;
CREATE TABLE Client
(
Client_No INTEGER NOT NULL,
Surname_C VARCHAR(50) NOT NULL,
Name_C VARCHAR(50) NOT NULL,
Patronymic_C VARCHAR(50) NOT NULL,
Adress VARCHAR(100) NOT NULL,
Telephone VARCHAR(50) NOT NULL,
Date_C DATE NOT NULL,
Unit VARCHAR(20) NOT NULL
);
ALTER TABLE Client
ADD PRIMARY KEY (Client_No);
CREATE TABLE Orders
(
Order_No INTEGER NOT NULL,
Date_O DATE NOT NULL,
INN INTEGER NOT NULL,
Client_No INTEGER NOT NULL,
Order_status VARCHAR(20) NULL
);
ALTER TABLE Orders
ADD PRIMARY KEY (Order_No);
CREATE TABLE Order_Product
(
Order_No INTEGER NOT NULL,
Product_No INTEGER NOT NULL,
Kolichestvo_order DOUBLE NOT NULL,
Sold_products INTEGER NULL,
OrderProduct _No DOUBLE NOT NULL
);
ALTER TABLE Order_Product
ADD PRIMARY KEY (OrderProduct _No);
CREATE TABLE Product
(
Product_No INTEGER NOT NULL,
Category VARCHAR(50) NOT NULL,
Name_product VARCHAR(100) NOT NULL,
Cost DOUBLE NOT NULL,
Kolichestvo_products FLOAT NOT NULL,
Date_P DATE NOT NULL
);
ALTER TABLE Product
ADD PRIMARY KEY (Product_No);
CREATE TABLE Responsible_person
(
INN INTEGER NOT NULL,
Surname VARCHAR(50) NOT NULL,
Name VARCHAR(50) NOT NULL,
Patronymic VARCHAR(50) NOT NULL
);
ALTER TABLE Responsible_person
ADD PRIMARY KEY (INN);
ALTER TABLE Orders
ADD FOREIGN KEY R_1 (INN) REFERENCES Responsible_person (INN);
ALTER TABLE Orders
ADD FOREIGN KEY R_3 (Client_No) REFERENCES Client (Client_No);
ALTER TABLE Order_Product
ADD FOREIGN KEY R_2 (Order_No) REFERENCES Orders (Order_No);
ALTER TABLE Order_Product
ADD FOREIGN KEY R_5 (Product_No) REFERENCES Product (Product_No);
drop view IF exists BEST_EMPLOYEES_OF_THE_MONTH; //представление «Лучшие работники месяца»
CREATE VIEW BEST_EMPLOYEES_OF_THE_MONTH
AS
SELECT Responsible_person.INN, Responsible_person.Surname, Responsible_person.Name,
Responsible_person.Patronymic, Order_Product.Kolichestvo_
FROM Responsible_person
INNER JOIN ((Orders INNER JOIN Order_Product
ON Orders.Order_No = Order_Product.Order_No)
INNER JOIN Product ON Order_Product.Product_No = Product.Product_No)
ON Responsible_person.INN = Orders.INN
ORDER BY Order_Product.Kolichestvo_
drop view IF exists TOP_10_PRODUCTS; // представление «ТОП-10 товаров»
CREATE VIEW TOP_10_PRODUCTS
AS
SELECT Product.Name_product, Order_Product.Kolichestvo_
FROM Orders
INNER JOIN (Product INNER JOIN Order_Product ON Product.Product_No = Order_Product.Product_No)
ON Orders.Order_No = Order_Product.Order_No
ORDER BY Order_Product.Kolichestvo_
LIMIT 10;
drop procedure if exists ordered_products; // получение таблицы заказанных товаров для отчета «Данные заказа»
delimiter //
create procedure ordered_products(IN op datetime) // параметр op – дата заказа
begin
SELECT Product.Category, Product.Name_product, Product.Kolichestvo_products, Order_Product.Sold_products, Product.Cost
FROM (Product INNER JOIN Order_Product
ON Product.Product_No = Order_Product.Product_No)
INNER JOIN Orders
ON Order_Product.Order_No = Orders.Order_No
WHERE Orders.Date_O=op;
end//
drop procedure if exists purchased _products; получение таблицы приобретенных товаров для отчета «Информация о клиенте»
delimiter //
create procedure purchased_products(IN sname varchar(50), namec varchar(50), pname varchar(50)) // параметры sname, namec, pname - ФИО клиента
begin
SELECT Product.Category, Product.Name_product, Product.Kolichestvo_products, Order_Product.Sold_products, Product.Cost
FROM Client INNER JOIN ((Product INNER JOIN Order_Product
ON Product.Product_No = Order_Product.Product_No)
INNER JOIN Orders ON Order_Product.Order_No = Orders.Order_No)
ON Client.Client_No = Orders.Client_No
WHERE Client.Surname_C=sname And Client.Name_C=namec And Client.Patronymic_C=pname;
end//
grant select, insert, update, delete, execute on TABLE_OF_ORDERS.* to Manager@'%' identified by 'manager'; // создание учетной записи пользователя «Manager» и назначение требуемых прав
Заключение
Цель курсовой работы полностью достигнута. Мною спроектирована база, в соответствии с предметной областью. Разработана автоматизированная информационная система “Стол заказов” для учета регистрации заказов и информации о клиентах, ответственных лицах и товарах. При написании курсовой работы, я как проектировщик, не только достиг первоначальной цели – создания автоматизированной информационной системы, но и улучшил навыки работы в области баз данных и программировании.
Список источников
Приложение А
«Данные заказа»
Дата заказа
ФИО ответственного лица
Заказанный товар:
Категория |
Товар |
Название |
Количество |
Единица измерения |
Стоимость |
Приложение Б
«Информация о клиенте»
ФИО клиента
Адрес
Телефон
Дата
Приобретенный товар
Категория |
Товар |
Название |
Количество |
Единица измерения |
Стоимость |
Информация о работе Разработка базы данных ER-методом для заданной области