Автор: Пользователь скрыл имя, 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 |
Информация о работе Информационная система поставок для промышленных предприятий