Автор: Пользователь скрыл имя, 23 Декабря 2012 в 20:15, курсовая работа
Информация – сила нашего времени. Тот, кто владеет нужной информацией, всегда выигрывает. На всех этапах развития человечества стояла задача обработки, накопления и распространения информации. В течение тысячелетий основным инструментом для её решения были мозг, слух, и язык человека. Первое кардинальное изменение произошло с приходом письменности, а затем изобретением книгопечатания.
Преимущества DBS: стандартность интерфейса, повышается общая производительность системы, снижается стоимость, снижается общесетевой трафик, повышается надежность и непротиворечивость данных.
В зависимости от расположения компонентов обработки, различают:
Информационная система будет построена на основе смешанной модели DBS: компонент обработки распределяется между клиентом и сервером, т.е. поддержка целостности базы данных и некоторые простейшие прикладные функции поддерживаются хранимыми процедурами, а более сложные функции реализуются непосредственно в приложении, которое выполняется на компьютере-клиенте.
 
Структура базы данных приведена на рисунке 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  | 
Информация о работе Информационная система поставок для промышленных предприятий