Информационная система поставок для промышленных предприятий

Автор: Пользователь скрыл имя, 23 Декабря 2012 в 20:15, курсовая работа

Описание работы

Информация – сила нашего времени. Тот, кто владеет нужной информацией, всегда выигрывает. На всех этапах развития человечества стояла задача обработки, накопления и распространения информации. В течение тысячелетий основным инструментом для её решения были мозг, слух, и язык человека. Первое кардинальное изменение произошло с приходом письменности, а затем изобретением книгопечатания.

Работа содержит 1 файл

Пояснительная записка.doc

— 846.00 Кб (Скачать)

Преимущества DBS: стандартность  интерфейса, повышается общая производительность системы, снижается стоимость, снижается  общесетевой трафик, повышается надежность и непротиворечивость данных.

В зависимости от расположения компонентов  обработки, различают:

  • DBS-1 осуществляет доступ к базе данных с помощью запросов на языке SQL, формируемых клиентскими приложениями. Режим многопользовательского доступа автоматически обеспечивается сервером баз данных. Преимущества: перенос компонента представления и компонента обработки на клиентский ПК позволяет разгрузить сервер данных и уменьшить количество процессов, сервер освобождается от несвойственных ему операций. Но запросы могут существенно загрузить сеть.
  • DBS-2 основана на применении хранимых процедур и триггеров SQL. В данном случае возрастает надежность работы с базой данных, так как одна процедура может быть разделена между несколькими пользователями. Достоинство: возможность централизованного администрирования прикладных функций, снижение трафика.
  1. Application Server. Каждый логический компонент приложения выполняется на своем компьютере, таким образом, решается проблема интеграции всех серверов локальной сети. На клиенте выполняется компонент отображения, реализующий интерфейс с пользователем. Компонент обработки реализован как процесс, выполняющий прикладные задачи по обработке данных. Преимущество при интеграции разнородных ресурсов, так как она позволяет обеспечить независимость данных от использующих их программ и пользователей.

Информационная система  будет построена на основе смешанной модели DBS: компонент обработки распределяется между клиентом и сервером, т.е. поддержка целостности базы данных и некоторые простейшие прикладные функции поддерживаются хранимыми процедурами, а более сложные функции реализуются непосредственно в приложении, которое выполняется на компьютере-клиенте.

 

5 Организация информационной  базы

Структура базы данных приведена  на рисунке 3.

Рисунок 3 – Структура базы данных

 

Информационная система поставок для промышленных предприятий состоит из 20 таблиц: logins, Dogovori, Dogovori2, Matkom, Otpkom, Otpusk, Poskom, Postavki, Postavsik, Postavsik2, Postkom, Postreg, Prod, Prodmat, Proiz, Proizprod, Region, Sklad, Zakaz, Zakkom – в которых хранится информация о сотрудниках, договорах с предприятиями и поставщиками, поставках, заказах, комплектующих и материалах имеющихся в наличии и отпущенных на производство, отпусках комплектующих или материалов на производство, производимой продукции, произведенной продукции, регионах поставки, поставляемых материалах и комплектующих.

Таблица 1 – logins – Информация о сотрудниках и их пароли для доступа к системе

Наименование

поля

Тип

данных

Нулевой статус

Ключ

Ограничение

Ссылки

Пример

login

nvarchar

Not Null

 

50

 

Менеджер по договорам

pass

nvarchar

Not Null

 

50

 

123

tip

nvarchar

Not Null

 

50

 

admin

fio

nvarchar

Not Null

 

50

 

И.И. Иванов




 

Таблица 2 – Dogovori – Информация о договорах с предприятиями

Наименование

Поля

Тип

данных

Нулевой статус

Ключ

Ограничение

Ссылки

Пример

dnum

int

Not Null

Primary

   

1

pnum

int

Not Null

Foreign

 

Postavsik.pnum

1

data_z

smalldatetime

Not Null

     

02.12.12

data_o

smalldatetime

Not Null

     

02.12.15




 

CREATE TRIGGER INS_D ON Dogovori INSTEAD OF INSERT

AS DECLARE @mdnum INT, @npnum INT, @ndata_z SMALLDATETIME,  @ndata_o SMALLDATETIME

SELECT @mdnum=MAX(dnum) FROM Dogovori

SELECT @npnum=INS.pnum, @ndata_z=INS.data_z, @ndata_o=INS.data_o

FROM INSERTED INS

IF EXISTS (SELECT * FROM Dogovori)

INSERT INTO Dogovori VALUES (@mdnum+1, @npnum, @ndata_z, @ndata_o)

ELSE

INSERT INTO Dogovori VALUES (1, @npnum, @ndata_z, @ndata_o)

 

Таблица 3 – Dogovori2 – Информация о договорах с поставщиками

Наименование

поля

Тип

данных

Нулевой статус

Ключ

Ограничение

Ссылки

Пример

dnum

int

Not Null

Primary

   

1

post

int

Not Null

Foreign

 

Postavsik2.post

1


 

Продолжение таблицы 3 – Dogovori2 – Информация о договорах с поставщиками

Наименование

поля

Тип

данных

Нулевой статус

Ключ

Ограничение

Ссылки

Пример

data_z

smalldatetime

Not Null

     

02.12.2012

data_o

smalldatetime

Not Null

     

02.12.2015




 

CREATE TRIGGER INS_D2 ON Dogovori2 INSTEAD OF INSERT

AS DECLARE @mdogn INT, @npost INT, @ndataz SMALLDATETIME,  @ndatao SMALLDATETIME

SELECT @mdogn=MAX(dogn) FROM Dogovori2

SELECT @npost=INS.post, @ndataz=INS.dataz, @ndatao=INS.datao

FROM INSERTED INS

IF EXISTS (SELECT * FROM Dogovori2)

INSERT INTO Dogovori2 VALUES (@mdogn+1, @npost, @ndataz, @ndatao)

ELSE

INSERT INTO Dogovori2 VALUES (1, @npost, @ndataz, @ndatao)

 

Таблица 4 – Matkom – Информация о материалах и комплектующих изделиях

Наименование

поля

Тип

данных

Нулевой статус

Ключ

Ограничение

Ссылки

Пример

mnum

int

Not Null

Primary

   

1

mnam

nvarchar

Not Null

 

20

 

болт




 

CREATE TRIGGER INS_M ON dbo.Matkom INSTEAD OF INSERT 

AS DECLARE @mmnum INT, @nmnam NVARCHAR(20)

SELECT @mmnum=MAX(mnum) FROM Matkom

SELECT @nmnam=INS.mnam FROM INSERTED INS

IF EXISTS (SELECT * FROM Matkom)

INSERT INTO Matkom VALUES (@mmnum+1, @nmnam)

ELSE

INSERT INTO Matkom VALUES (1, @nmnam)

 

Таблица 5 – Otpkom – Отпущенные на производство материалы и комплектующие

Наименование

поля

Тип

данных

Нулевой статус

Ключ

Ограничение

Ссылки

Пример

id_o

int

Not Null

Primary

   

1

onum

int

Not Null

Foreign

 

Otpusk.onum

1

mnum

int

Not Null

Foreign

 

Matkom.mnum

1

kolv

int

Not Null

     

100




 

CREATE TRIGGER INS_OP ON Otpkom INSTEAD OF INSERT

AS DECLARE @mid_o INT, @nonum INT, @nmnum INT, @nkolv INT

SELECT @mid_o=MAX(id_o) FROM Otpkom

SELECT @nonum=INS.onum, @nmnum=INS.mnum, @nkolv=INS.kolv

FROM INSERTED INS

IF EXISTS (SELECT * FROM Otpkom)

INSERT INTO Otpkom VALUES (@mid_o+1, @nonum, @nmnum, @nkolv)

ELSE

INSERT INTO Otpkom VALUES (1, @nonum, @nmnum, @nkolv)

 

Таблица 6 – Otpusk – Информация об отпусках материалов и комплектующих

Наименование

поля

Тип

данных

Нулевой статус

Ключ

Ограничение

Ссылки

Пример

onum

int

Not Null

Primary

   

1

odata

smalldatetime

Not Null

     

01.12.2012




 

CREATE TRIGGER INS_O ON Otpusk INSTEAD OF INSERT 

AS DECLARE @monum INT, @nodata SMALLDATETIME

SELECT @monum=MAX(onum) FROM Otpusk

SELECT @nodata=INS.odata FROM INSERTED INS

IF EXISTS (SELECT * FROM Otpusk)

INSERT INTO Otpusk VALUES (@monum+1, @nodata)

ELSE

INSERT INTO Otpusk VALUES (1, @nodata)

 

 

Таблица 7 – Poskom – Информация о поставляемых материалах и комплектующих

Наименование

поля

Тип

данных

Нулевой статус

Ключ

Ограничение

Ссылки

Пример

id_p

int

Not Null

Primary

   

1

dnum

int

Not Null

Foreign

 

Dogovori.dnum

1

mnum

int

Not Null

Foreign

 

Matkom.mnum

1




 

CREATE TRIGGER INS_PK ON Poskom INSTEAD OF INSERT

AS DECLARE @mid_p INT, @ndnum INT, @nmnum INT

SELECT @mid_p=MAX(id_p) FROM Poskom

SELECT @ndnum=INS.dnum, @nmnum=INS.mnum FROM INSERTED INS

IF EXISTS (SELECT * FROM Poskom)

INSERT INTO Poskom VALUES (@mid_p+1, @ndnum, @nmnum)

ELSE

INSERT INTO Poskom VALUES (1, @ndnum, @nmnum)

 

Таблица 8 – Postavki – Информация о поставках

Наименование

поля

Тип

данных

Нулевой статус

Ключ

Ограничение

Ссылки

Пример

pos

int

Not Null

Primary

   

1

pnum

int

Not Null

Foreign

 

Postavsik.pnum

1

post

int

Not Null

Foreign

 

Postavsik2.post

1

data

smalldatetime

Not Null

     

11.11.2012




 

CREATE TRIGGER INS_POS ON Postavki INSTEAD OF INSERT

AS DECLARE @mpos INT, @npnum INT, @npost INT, @ndata SMALLDATETIME

SELECT @mpos=MAX(pos) FROM Postavki

SELECT @npnum=INS.pnum, @npost=INS.post, @ndata=INS.data

FROM INSERTED INS

IF EXISTS (SELECT * FROM Postavki)

INSERT INTO Postavki VALUES (@mpos+1, @npnum, @npost, @ndata)

ELSE

INSERT INTO Postavki VALUES (1, @npnum, @npost, @ndata)

 

Таблица 9 – Postavsik – Информация о предприятиях

Наименование

поля

Тип

данных

Нулевой статус

Ключ

Ограничение

Ссылки

Пример

pnum

int

Not Null

Primary

   

1

pnam

nvarchar

Not Null

 

20

 

ООО «Сталь» 

idr

int

Not Null

Foreign

 

Region.idr

1

adr

nvarchar

Not Null

 

50

 

г.Киров ул. Труда д. 5

tel

nvarchar

Not Null

 

20

 

123-456




 

CREATE TRIGGER INS_P1 ON dbo.Postavsik INSTEAD OF INSERT

AS DECLARE @mpnum INT, @npnam NVARCHAR(20), @nidr INT, @nadr NVARCHAR(30), @ntel NVARCHAR(20)

SELECT @mpnum=MAX(pnum) FROM Postavsik

SELECT @npnam=INS.pnam, @nidr=INS.idr, @nadr=INS.adr, @ntel=INS.tel

FROM INSERTED INS

IF EXISTS (SELECT * FROM Postavsik)

INSERT INTO Postavsik VALUES (@mpnum+1, @npnam, @nidr, @nadr, @ntel)

ELSE INSERT INTO Postavsik VALUES (1, @npnam, @nidr, @nadr, @ntel)

 

Таблица 10 – Postavsik2 – Информация о поставщиках

Наименование

поля

Тип

данных

Нулевой статус

Ключ

Ограничение

Ссылки

Пример

post

int

Not Null

Primary

   

1

pname

nvarchar

Not Null

 

20

 

ОАО «Поставки»

adr

nvarchar

Not Null

 

50

 

г.Уфа ул.Мира д.5

tel

nvarchar

Not Null

 

20

 

123-456




 

CREATE TRIGGER INS_P2 ON dbo.Postavsik2 INSTEAD OF INSERT

AS DECLARE @mpost INT, @npname NVARCHAR(20), @nadr NVARCHAR(30), @ntel NVARCHAR(20)

SELECT @mpost=MAX(post) FROM Postavsik2

SELECT @npname=INS.pname, @nadr=INS.adr, @ntel=INS.tel

FROM INSERTED INS

IF EXISTS (SELECT * FROM Postavsik2)

INSERT INTO Postavsik2 VALUES (@mpost+1, @npname, @nadr, @ntel)

ELSE INSERT INTO Postavsik2 VALUES (1, @npname, @nadr, @ntel)

 

Таблица 11 – Postkom – Информация о поставленных материалах и комплектующих

Наименование

поля

Тип

данных

Нулевой статус

Ключ

Ограничение

Ссылки

Пример

id_psk

int

Not Null

Primary

   

1

pos

int

Not Null

Foreign

 

Postavki.pos

1

mnum

int

Not Null

Foreign

 

Matkom.mnum

1

kolv

int

Not Null

     

100




 

CREATE TRIGGER INS_PSK ON Postkom INSTEAD OF INSERT

AS DECLARE @mid_psk INT, @npos INT, @nmnum INT, @nkolv INT

SELECT @mid_psk=MAX(id_psk) FROM Postkom

SELECT @npos=INS.pos, @nmnum=INS.mnum, @nkolv=INS.kolv FROM INSERTED INS

IF EXISTS (SELECT * FROM Postkom)

INSERT INTO Postkom VALUES (@mid_psk+1, @npos, @nmnum, @nkolv)

ELSE

INSERT INTO Postkom VALUES (1, @npos, @nmnum, @nkolv)

 

Таблица 12 – Postreg – Информация о регионах поставки

Наименование

поля

Тип

данных

Нулевой статус

Ключ

Ограничение

Ссылки

Пример

id_pos

int

Not Null

Primary

   

1

dogn

int

Not Null

Foreign

 

Dogovori2.dogn

1

idr

int

Not Null

Foreign

 

Region.idr

1

Информация о работе Информационная система поставок для промышленных предприятий