Оперативное планирование

Автор работы: Пользователь скрыл имя, 28 Марта 2012 в 10:55, курсовая работа

Краткое описание

Pull and Bear (Пул энд Бир) - испанский бренд мужской и женской молодежной одежды. Принадлежит концерну Inditex, который владеет такими брендами как Massimo Dutti, Zara, Oysho, Uterqüe, Stradivarius, Bershka.



Бренд относительно молодой, был представлен компанией Inditex в 1991 году и позиционировал себя как неформальная мужская одежда для молодежи. Марка сразу взялась за продвижения на рынке и 1992 году был открыт магазин за пределами Испании в Португалии. А в 1995 году были открыты представительства в Греции и Мальте. Компания и далее продолжала свою экспансию, и в 1997 году было открыто представительство в Израиле.

Содержание работы

1) ИСТОРИЯ ОРГАНИЗАЦИИ………………………………………………………….....................….3



2) Анализ аппаратно-программных средств, используемых на предприятии…………………………………………………………..……………….5



3) Описание ВНЕДРЯЕМОй информационной системы



3.1) Основные функциональные возможности системы ………….………………….....6

3.2) Назначение и цели создания веб-приложения ……………………….……………..7

3.3) Общие требования к информационной системе ……………………………...…...8

3.4) Программная реализация

3.4.1) Инструментальные средства разработки………………………....……….……10

3.4.2) Реализация базы данных ……………………………………………………..….14

3.4.3) Реализация клиентского приложения ………………………………….………27



4) ЗАКЛЮЧЕНИЕ…………………………………......…………………………….……….45



5) СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ……………………………….….....46



ПРИЛОЖЕНИЕ 1. ХРОНОЛОГИЯ ПРОХОЖДЕНИЯ ПРАКТИКИ …………………...47



ПРИЛОЖЕНИЕ 2. ХАРАКТЕРИСТИКА ПО ПРОХОЖДЕНИЮ ПРАКТИКИ

Содержимое работы - 1 файл

содержание.doc

— 2.27 Мб (Скачать файл)

PHP — скриптовый язык программирования общего назначения, интенсивно применяющийся для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов. Интерпретатор состоит из ядра  и подключаемых модулей, «расширений», представляющих собой динамические библиотеки. Расширения позволяют дополнить базовые возможности языка, предоставляя возможности для работы с базами данных, сокетами, динамической графикой, криптографическими библиотеками, документами формата PDF и т. п. Любой желающий может разработать своё собственное расширение и подключить его. Существует огромное количество расширений, как стандартных, так и созданных сторонними компаниями и энтузиастами, однако в стандартную поставку входит лишь несколько десятков хорошо зарекомендовавших себя. Расширение php_mssql.dll, используемое в данном проекте, позволяет работать с базами данных MS SQL SERVER.

             

3. 4.1.3 Adobe Dreamweaver

Adobe Dreamweaver — HTML-редактор. Разработан и поддерживался компанией Macromedia  в версиях до 8-й Следующие версии выпускает Adobe. Богатый инструментарий, открытость приложения для всевозможных настроек, удобный интерфейс и другие особенности сделали Dreamweaver одним из наиболее популярных HTML-редакторов в мире. Недостатком считается добавление «лишнего» кода. Приложение поддерживает формат CSS и проверяет его работоспособность в различных браузерах, дает возможность работать с технологиями XML, JavaScript, PHP, ASP и ASP.NET. Среда для разработки Ajax-приложений позволяет создать продукт, который может выполнять самые разные функции от получения информации из RSS каналов и баз данных до создания визуальных эффектов. Также программа обеспечивает возможность создания сайтов на основе тегов DIV.

 

 

 

 

 

 

 

 

 

        

 

 

        3.4.2 Реализация базы данных

              3.4.2.1 Логическая модель базы данных

Семь сущностей находятся в третьей нормальной форме, т. е. все атрибуты сущностей содержат атомарные значения (значения в домене не являются ни списками, ни множествами простых или сложных значений); каждый неключевой атрибут полностью зависит от первичного ключа; никакой неключевой атрибут не зависит от другого неключевого атрибута.

Рисунок 1 — Логическая модель базы данных

 

3.2.2 Описание таблиц

Всего в базе данных находится 7 таблиц, ниже приводится их описание.

Таблица Area предназначена для хранения информации об отделах магазина и содержит следующие столбцы­:

1.                  ID (char,Length=1,NOT NULL,PK,identity seed=1) - содержит  ID отдела.

2.                  Name (char, Length=10, NOT NULL) - содержит  название отдела.

3.                  Count_employees (char, Length=10, NOT NULL) - содержит  количество сотрудников отдела.

Рисунок 2 — Таблица Areas

 

Таблица Checks предназначена для хранения информации о чеках и содержит следующие столбцы­ :

1.                    ID (char,Length=3,NOT NULL,PK, identity seed=1) - содержит  ID чека.

2.                  [Date] (datetime, Length=8) - содержит  дату и время создания чека.

3.                  Employee_ID (char, Length=3) - содержит  ID сотрудника, создавшего чек.

4.                  Sum (float, Length=8) - содержит  общую сумму чека.

 

Рисунок 3 — Таблица Checks

 

Таблица Deliveries предназначена для хранения информации о поставках товара и содержит следующие столбцы­ :

1.                    Delivery_ID (char,Length=3,NOT NULL,PK, identity seed=1) - содержит  ID поставки.

2.                    [Date] (datetime, Length=8) - содержит  дату и время регистрации поставки.

3.                  Supplier_ID (char, Length=3) - содержит  ID поставщика.

4.                  Product_article (char, Length=20) - содержит  артикул поставленного товара.

5.                  [Count] (int, Length=4, NOT NULL) содержит  количество поставленного товара.

 

Рисунок 4 — Таблица Deliveries

 

Таблица Employees предназначена для хранения информации о сотрудниках и содержит следующие столбцы­ :

 

1.                    ID (char,Length=3,NOT NULL,PK, identity seed=1) - содержит  ID сотрудника.

2.                    Area_ID (char,Length=1) - содержит  ID отдела.

3.                  [First name] (char, Length=20) содержит  имя сотрудника.

4.                  [Last name] (char, Length=20) содержит  фамилию сотрудника.

5.                  [Position] (char, Length=20) содержит  должность сотрудника.

6.                  Sales (char, Length=10) содержит  сумму продаж сотрудника.

7.                  Login (char, Length=10) содержит логин сотрудника для работы с информационной системой.

8.                  Password (char, Length=10) содержит пароль сотрудника для работы с информационной системой.

Рисунок 5 — Таблица Employees

 

Таблица Products предназначена для хранения информации о товарах и содержит следующие столбцы­ :

 

1.                    Article (char,Length=20,NOT NULL,PK, identity seed=1) - содержит  артикул товара.

2.                    Name (char,Length=10) - содержит  название товара.

3.                  [Size] (text, Length=16) содержит  размер товара.

4.                  Price (float, Length=8) содержит  цену товара.

5.                  Area_ID (char,Length=1) - содержит  ID отдела.

6.                  Structure (text, Length=16) содержит  состав товара.

7.                    Country (char,Length=10) - содержит  страну - производитель товара.

8.                    [Count] (int, Length=4) содержит  текущее количество товара.

9.                    Image (char, Length=50) содержит путь к фотографии товара.

10.               [Available sizes] (char, Length=10) содержит количество возможных размеров аналогичного товара.

Рисунок 6 — Таблица Products

 

Таблица Sales предназначена для хранения информации о продажах и содержит следующие столбцы­ :

 

1.                    Check_ID (char,Length=3,NOT NULL,PK, identity seed=1) - содержит  ID чека.

2.                    Article (char,Length=20,NOT NULL,PK, identity seed=1) - содержит  артикул товара.

3.                    [Count] (char, Length=10) - содержит  количество товара в продаже.

4.                  Price (float, Length=8) содержит  цену продажи.

Рисунок 7 — Таблица Sales

 

 

Таблица Suppliers предназначена для хранения информации о поставщиках и содержит следующие столбцы­ :

 

1.                    Supplier_ID (char,Length=3,NOT NULL,PK, identity seed=1) - содержит  ID чека.

2.                    Article (char,Length=20,NOT NULL,PK, identity seed=1) - содержит  артикул товара.

3.                    [Count] (char, Length=10) - содержит  количество товара в продаже.

4.                  Price (float, Length=8) - содержит  цену продажи.

Рисунок 8 — Таблица Suppliers

 

3.4.2.3 Описание триггеров

Триггер (англ. trigger) — это хранимая процедура особого типа, которую пользователь не вызывает непосредственно, а исполнение которой обусловлено наступлением определенного события (действием) — по сути добавлением INSERT или удалением DELETE строки в заданной таблице, или модификации UPDATE данных в определенном столбце заданной таблицы реляционной базы данных. Триггеры применяются для обеспечения целостности данных и реализации сложной бизнес-логики. Триггер запускается сервером автоматически при попытке изменения данных в таблице, с которой он связан. Все производимые им модификации данных рассматриваются как выполняемые в транзакции, в которой выполнено действие, вызвавшее срабатывание триггера. Соответственно, в случае обнаружения ошибки или нарушения целостности данных может произойти откат этой транзакции.

 

Момент запуска триггера определяется с помощью ключевых слов BEFORE (триггер запускается до выполнения связанного с ним события; например, до добавления записи) или AFTER (после события). В случае, если триггер вызывается до события, он может внести изменения в модифицируемую событием запись (конечно, при условии, что событие — не удаление записи). Некоторые СУБД накладывают ограничения на операторы, которые могут быть использованы в триггере (например, может быть запрещено вносить изменения в таблицу, на которой «висит» триггер, и т. п.)

 

В некоторых серверах триггеры могут вызываться не для каждой модифицируемой записи, а один раз на изменение таблицы. Такие триггеры называются табличными. В разрабатываемой БД используются следующие табличные триггеры:

 

1)            В таблице Checks:

1.1) Для уменьшения суммы продаж сотрудника при удалении чека

 

Листинг 1.1 Триггер DelEmpSales.

CREATE TRIGGER DelEmpSales ON dbo.Checks

FOR DELETE

AS

UPDATE Employees

SET Employees.Sales = Employees.Sales-(SELECT [Sum] FROM deleted)

WHERE (ID = (SELECT Employee_ID

FROM deleted) ) ;

 

1.2) Для увеличения суммы продаж сотрудника при создании чека

 

Листинг 1.2 Триггер InsEmpSales.

CREATE TRIGGER InsEmpSales ON dbo.Checks

FOR INSERT

AS

UPDATE Employees

SET Employees.Sales = Employees.Sales+(SELECT [Sum] FROM inserted)

WHERE (ID = (SELECT Employee_ID

FROM inserted) ) ;

 

1.3) Для изменения суммы продаж сотрудника при изменении чека

 

Листинг 1.3 Триггер UpdEmpSales.

CREATE TRIGGER UpdEmpSales ON dbo.Checks

FOR UPDATE

AS

UPDATE Employees

SET Employees.Sales = Employees.Sales+(SELECT [Sum] FROM inserted)-(SELECT [Sum] FROM deleted)

WHERE (ID = (SELECT Employee_ID

FROM inserted) )  AND  (ID = (SELECT Employee_ID

FROM deleted) );

 

2)            В таблице Deliveries:

2.1) Для уменьшения количества товара при удалении поставки

 

Листинг 1.4 Триггер DEL1.

CREATE TRIGGER DEL1 ON dbo.Deliveries

FOR DELETE

AS

UPDATE Products

SET Products.[Count] = Products.[Count]-(SELECT [Count] FROM deleted)

WHERE Article = (SELECT Product_article

FROM deleted );

 

2.2) Для увеличения количества товара при создании поставки

 

Листинг 1.5 Триггер ADD1.

CREATE TRIGGER ADD1 ON dbo.Deliveries

FOR INSERT

AS

UPDATE Products

SET Products.[Count] = Products.[Count]+(SELECT [Count] FROM inserted)

WHERE Article = (SELECT Product_article

FROM inserted);

 

2.3) Для изменения количества товара при изменении поставки

 

Листинг 1.6 Триггер UPD1.

CREATE TRIGGER UPD1 ON dbo.Deliveries

FOR UPDATE

AS

UPDATE Products

SET Products.[Count] = Products.[Count]-(SELECT [Count] FROM deleted) +(SELECT [Count] FROM inserted)

WHERE (Article = (SELECT Product_article

FROM inserted) ) AND  (Article = (SELECT Product_article

FROM deleted) );

 

3)            В таблице Employees:

3.1) Для уменьшения количества сотрудников отдела при удалении сотрудника

 

Листинг 1.7 Триггер DelEmp.

CREATE TRIGGER DelEmp ON dbo.Employees

FOR DELETE

AS

DECLARE Z CURSOR FOR

         SELECT COUNT(ID) AS ALL_EMP, Area_ID

          FROM EMPLOYEES

          GROUP BY Area_ID;

OPEN Z;

DECLARE @Qty int, @Dept tinyint;

FETCH NEXT FROM Z INTO @Qty, @Dept

UPDATE Areas

SET Count_employees = @Qty

WHERE ID = @Dept;

WHILE @@FETCH_STATUS = 0

BEGIN

FETCH NEXT FROM Z INTO @Qty, @Dept

UPDATE Areas

SET Count_employees = @Qty

WHERE ID = @Dept;

END

CLOSE Z;

DEALLOCATE Z

 

3.2) Для увеличения количества сотрудников отдела при добавлении сотрудника

 

Листинг 1.8 Триггер InsEmp.

CREATE TRIGGER InsEmp ON dbo.Employees

FOR Insert

AS

DECLARE Z CURSOR FOR

         SELECT COUNT(ID) AS ALL_EMP, Area_ID

          FROM EMPLOYEES

          GROUP BY Area_ID;

OPEN Z;

DECLARE @Qty int, @Dept tinyint;

FETCH NEXT FROM Z INTO @Qty, @Dept

UPDATE Areas

SET Count_employees = @Qty

WHERE ID = @Dept;

WHILE @@FETCH_STATUS = 0

BEGIN

FETCH NEXT FROM Z INTO @Qty, @Dept

UPDATE Areas

SET Count_employees = @Qty

WHERE ID = @Dept;

END

CLOSE Z;

DEALLOCATE Z

 

3.3) Для изменения количества сотрудников отдела при изменении сотрудника

 

Листинг 1.9 Триггер Upd.

CREATE TRIGGER Upd ON dbo.Employees

FOR UPDATE

AS

DECLARE Z CURSOR FOR

         SELECT COUNT(ID) AS ALL_EMP, Area_ID

          FROM EMPLOYEES

          GROUP BY Area_ID;

OPEN Z;

DECLARE @Qty int, @Dept tinyint;

FETCH NEXT FROM Z INTO @Qty, @Dept

UPDATE Areas

SET Count_employees = @Qty

WHERE ID = @Dept;

WHILE @@FETCH_STATUS = 0

BEGIN

FETCH NEXT FROM Z INTO @Qty, @Dept

UPDATE Areas

SET Count_employees = @Qty

WHERE ID = @Dept;

END

CLOSE Z;

DEALLOCATE Z

 

4)            В таблице Sales:

4.1) Для уменьшения суммы чека при удалении продажи

 

Листинг 1.10 Триггер DelChecks.

CREATE TRIGGER DelChecks ON dbo.Sales

FOR DELETE

AS

UPDATE Checks

SET Checks.[Sum] = Checks.[Sum]-(SELECT Price FROM deleted)

WHERE (ID = (SELECT Check_ID

FROM deleted) ) ;

 

4.2) Для увеличения суммы чека при добавлении продажи

 

Листинг 1.11 Триггер InsChecks.

CREATE TRIGGER InsChecks ON dbo.Sales

FOR INSERT

AS

UPDATE Checks

SET Checks.[Sum] = Checks.[Sum]+(SELECT Price FROM inserted)

WHERE (ID = (SELECT Check_ID

FROM inserted) ) ;

 

4.3) Для изменения суммы чека при изменении продажи

Информация о работе Оперативное планирование