Информационная система поставок для промышленных предприятий
Курсовая работа, 23 Декабря 2012, автор: пользователь скрыл имя
Описание работы
Информация – сила нашего времени. Тот, кто владеет нужной информацией, всегда выигрывает. На всех этапах развития человечества стояла задача обработки, накопления и распространения информации. В течение тысячелетий основным инструментом для её решения были мозг, слух, и язык человека. Первое кардинальное изменение произошло с приходом письменности, а затем изобретением книгопечатания.
Работа содержит 1 файл
Пояснительная записка.doc
— 846.00 Кб (Скачать)Преимущества DBS: стандартность интерфейса, повышается общая производительность системы, снижается стоимость, снижается общесетевой трафик, повышается надежность и непротиворечивость данных.
В зависимости от расположения компонентов обработки, различают:
- DBS-1 осуществляет доступ к базе данных с помощью запросов на языке SQL, формируемых клиентскими приложениями. Режим многопользовательского доступа автоматически обеспечивается сервером баз данных. Преимущества: перенос компонента представления и компонента обработки на клиентский ПК позволяет разгрузить сервер данных и уменьшить количество процессов, сервер освобождается от несвойственных ему операций. Но запросы могут существенно загрузить сеть.
- DBS-2 основана на применении хранимых процедур и триггеров SQL. В данном случае возрастает надежность работы с базой данных, так как одна процедура может быть разделена между несколькими пользователями. Достоинство: возможность централизованного администрирования прикладных функций, снижение трафика.
- Application Server. Каждый логический компонент приложения выполняется на своем компьютере, таким образом, решается проблема интеграции всех серверов локальной сети. На клиенте выполняется компонент отображения, реализующий интерфейс с пользователем. Компонент обработки реализован как процесс, выполняющий прикладные задачи по обработке данных. Преимущество при интеграции разнородных ресурсов, так как она позволяет обеспечить независимость данных от использующих их программ и пользователей.
Информационная система будет построена на основе смешанной модели DBS: компонент обработки распределяется между клиентом и сервером, т.е. поддержка целостности базы данных и некоторые простейшие прикладные функции поддерживаются хранимыми процедурами, а более сложные функции реализуются непосредственно в приложении, которое выполняется на компьютере-клиенте.
5 Организация информационной базы
Структура базы данных приведена на рисунке 3.
Рисунок 3 – Структура базы данных
Информационная система поставо
Таблица 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 |