Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Розрахункова.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.13 Mб
Скачать

3

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ ХАРЧОВИХ ТЕХНОЛОГІЙ

Кафедра інформаційних систем

Розрахункова робота з дисципліни: “Проектування інформаційних систем”

Тема: «Організація роботи відділу статистики Городищенського районного територіального медичного об’єднання »

Виконала:

студентка групи АКС 4-4

Скримська Л.В.

Перевірив викладач:

М’якшило О.М.

Київ 2013

Зміст

1.Report Model Properties.

2. Функціональна модель (середовище BPWin).

3. Модель DFD.

4. Логічна модель бази даних на рівні Definition.

5. Логічна модель бази даних на рівні атрибутів.

6. Фізична модель бази даних(середовище ERWin).

7. SQL-код генерації БД в MS SQL Server.

8. Діаграма бази даних в MS SQL Server.

9. Протоколи зв’язку між моделями.

10. Протоколи функціонального вартісного аналізу.

1. Report Model Properties.

Model Name: Організація роботи відділу статистики Городищенського РТМО

Definition: 1. Яку роботу виконує відділ статистики?

2. До складу якого підприємства належить?

3. Які посади входять до відділу?

4. Які документи формуються в результаті виконаної роботи?

5. Облік яких даних проводить відділ?

6. Хто забезпечує прийом запиту?

7. На основі чого формуються, а потім приймаються рішення?

8. Які дані аналізуються в результаті роботи відділу?

Scope: Виконати завдання, починаючи від надходження даних і закінчуючи формуванням звітних документів

Viewpoint: Оцінка діяльності відділу з точки зору начальника Городищенського районного територіального медичного об'єднання

Time Frame: (TO-BE)

Status: WORKING

User Last Revision Date: 29.12.2013

System Last Revision Date: 30.10.2013

Creation Date: 18.09.2013

Author Name: Скримська

Source: Нормативні документи

штатно-посадові інструкції

звіти про проведену роботу

Purpose: Дослідити діяльність відділу статистики Городищенського РТМО з метою його автоматизації

2. Функціональна модель (середовище BPWin).

3.Модель DFD.

Створення індексів

Валідація (обмеження):

4. Логічна модель бази даних на рівні Definition.

5. Логічна модель бази даних на рівні атрибутів.

6. Фізична модель бази даних(середовище ERWin).

7. SQL-код генерації БД в MS SQL Server.

CREATE RULE обмеження_віку

AS @col BETWEEN '0' AND '150'

Execution Successful

CREATE RULE кількість_апаратів

AS @col BETWEEN '0' AND '2000'

Execution Successful

CREATE RULE обмеження_на_місяці

AS @col BETWEEN '1' AND '12'

Execution Successful

CREATE RULE обмеження_на_роки

AS @col BETWEEN 1700 AND 2013

Execution Successful

CREATE RULE Обмеження_на_квартали

AS @col BETWEEN '1' AND '4'

Execution Successful

CREATE TABLE Апарат

(

Код_апарата int IDENTITY ( 1,1 ) ,

Назва_апарата char(25) NULL ,

Призначення char(40) NULL ,

Вартість_грн real NULL ,

Дата_надходження datetime NULL

)

Execution Successful

ALTER TABLE Апарат

ADD CONSTRAINT XPKАпарат PRIMARY KEY CLUSTERED (Код_апарата ASC)

Execution Successful

CREATE TABLE Вид_медперсоналу

(

Код_виду int IDENTITY ( 1,1 ) ,

Назва_виду char(25) NULL ,

Кількість_медперсоналу integer NULL

)

Execution Successful

ALTER TABLE Вид_медперсоналу

ADD CONSTRAINT XPKВид_медперсоналу PRIMARY KEY CLUSTERED (Код_виду ASC)

Execution Successful

CREATE TABLE Журнал_даних

(

Код_журналу int IDENTITY ( 1,1 ) ,

Кількість_хворих integer NULL ,

Наслідки_хвороби char(20) NULL ,

Код_хвороби integer NOT NULL ,

Код_закладу integer NOT NULL ,

Код_періоду integer NOT NULL

)

Execution Successful

ALTER TABLE Журнал_даних

ADD CONSTRAINT XPKЖурнал_даних PRIMARY KEY CLUSTERED (Код_журналу ASC)

Execution Successful

CREATE TABLE Категорія

(

Код_категорії int IDENTITY ( 1,1 ) ,

Вік char(25) NULL ,

Назва_категорії char(25) NULL ,

Код_хвороби integer NULL

)

Execution Successful

ALTER TABLE Категорія

ADD CONSTRAINT XPKКатегорія PRIMARY KEY CLUSTERED (Код_категорії ASC)

Execution Successful

CREATE TABLE Медичний_заклад

(

Код_закладу int IDENTITY ( 1,1 ) ,

Тип char(25) NOT NULL ,

Код_пункту integer NULL ,

Код_виду integer NULL

)

Execution Successful

ALTER TABLE Медичний_заклад

ADD CONSTRAINT XPKМед_заклад PRIMARY KEY CLUSTERED (Код_закладу ASC)

Execution Successful

CREATE TABLE Населений_пункт

(

Код_пункту int IDENTITY ( 1,1 ) ,

Назва_пункту char(25) NOT NULL ,

Кількість_жителів integer NULL

Execution Successful

ALTER TABLE Населений_пункт

ADD CONSTRAINT XPKНаселений_пункт PRIMARY KEY CLUSTERED (Код_пункту ASC)

Execution Successful

CREATE NONCLUSTERED INDEX XIE1Населений_пункт ON Населений_пункт

(

Назва_пункту ASC

)

Execution Successful

CREATE TABLE Період

(

Код_періоду int IDENTITY ( 1,1 ) ,

Місяць integer NULL ,

Квартал integer NOT NULL ,

Рік integer NULL

)

Execution Successful

ALTER TABLE Період

ADD CONSTRAINT XPKПеріод PRIMARY KEY CLUSTERED (Код_періоду ASC)

Execution Successful

CREATE TABLE Поставка

(

Код_поставки int IDENTITY ( 1,1 ) ,

Кількість_апаратів integer NULL ,

Код_закладу integer NULL ,

Код_періоду int NULL ,

Код_апарата integer NULL

)

Execution Successful

ALTER TABLE Поставка

ADD CONSTRAINT XPKПоставка PRIMARY KEY CLUSTERED (Код_поставки ASC)

Execution Successful

CREATE TABLE Хвороба

(

Код_хвороби int IDENTITY ( 1,1 ) ,

Назва_хвороби char(25) NOT NULL ,

Ознаки_хвороби char(30) NULL

)

Execution Successful

ALTER TABLE Хвороба

ADD CONSTRAINT XPKХвороба PRIMARY KEY CLUSTERED (Код_хвороби ASC)

Execution Successful

CREATE VIEW Апарат_Поставка(Назва_апарата,Кількість_апаратів,Тип,Код_пункту,Місяць,Квартал,Рік)

AS

SELECT Апарат.Назва_апарата,Поставка.Кількість_апаратів,Медичний_заклад.Тип,Медичний_заклад.Код_пункту,Період.Місяць,Період.Квартал,Період.Рік

FROM Апарат,Період,Поставка,Медичний_заклад

WHERE Апарат.Код_апарата=Поставка.Код_апарата AND Поставка.Код_періоду=Період.Код_періоду AND Поставка.Код_закладу=Медичний_заклад.Код_закладу

WITH CHECK OPTION

Execution Successful

ALTER TABLE Журнал_даних

ADD CONSTRAINT R_7 FOREIGN KEY (Код_хвороби) REFERENCES Хвороба(Код_хвороби)

ON UPDATE CASCADE

Execution Successful

ALTER TABLE Журнал_даних

ADD CONSTRAINT R_8 FOREIGN KEY (Код_закладу) REFERENCES Медичний_заклад(Код_закладу)

ON UPDATE CASCADE

Execution Successful

ALTER TABLE Журнал_даних

ADD CONSTRAINT R_18 FOREIGN KEY (Код_періоду) REFERENCES Період(Код_періоду)

ON UPDATE CASCADE

Execution Successful

exec sp_bindrule 'обмеження_віку', 'Категорія.Вік'

Execution Successful

ALTER TABLE Категорія

ADD CONSTRAINT R_13 FOREIGN KEY (Код_хвороби) REFERENCES Хвороба(Код_хвороби)

ON DELETE CASCADE

ON UPDATE CASCADE

Execution Successful

ALTER TABLE Медичний_заклад

ADD CONSTRAINT R_17 FOREIGN KEY (Код_пункту) REFERENCES Населений_пункт(Код_пункту)

ON UPDATE CASCADE

Execution Successful

ALTER TABLE Медичний_заклад

ADD CONSTRAINT R_19 FOREIGN KEY (Код_виду) REFERENCES Вид_медперсоналу(Код_виду)

ON UPDATE CASCADE

Execution Successful

exec sp_bindrule 'обмеження_на_місяці', 'Період.Місяць'

Execution Successful

exec sp_bindrule 'Обмеження_на_квартали', 'Період.Квартал'

Execution Successful

exec sp_bindrule 'обмеження_на_роки', 'Період.Рік'

Execution Successful

ALTER TABLE Поставка

ADD CONSTRAINT R_10 FOREIGN KEY (Код_закладу) REFERENCES Медичний_заклад(Код_закладу)

ON UPDATE CASCADE

Execution Successful

ALTER TABLE Поставка

ADD CONSTRAINT R_11 FOREIGN KEY (Код_апарата) REFERENCES Апарат(Код_апарата)

ON UPDATE CASCADE

Execution Successful

ALTER TABLE Поставка

ADD CONSTRAINT R_27 FOREIGN KEY (Код_періоду) REFERENCES Період(Код_періоду)

ON UPDATE CASCADE

Execution Successful

CREATE TRIGGER tI_Апарат ON Апарат FOR INSERT AS

/* ERwin Builtin Trigger */

/* INSERT trigger on Апарат */

BEGIN

DECLARE @NUMROWS int,

@nullcnt int,

@validcnt int,

@errno int,

@errmsg varchar(255)

SELECT @NUMROWS = @@rowcount

/* ERwin Builtin Trigger */

/* Апарат доставляється Поставка on parent insert cascade */

/* ERWIN_RELATION:CHECKSUM="0000a866", PARENT_OWNER="", PARENT_TABLE="Апарат"

CHILD_OWNER="", CHILD_TABLE="Поставка"

P2C_VERB_PHRASE="доставляється", C2P_VERB_PHRASE="",

FK_CONSTRAINT="R_11", FK_COLUMNS="Код_апарата" */

/* Application specific. Left out intentionally. */

/* ERwin Builtin Trigger */

RETURN

ERROR:

raiserror @errno @errmsg

rollback transaction

END

Execution Successful

CREATE TRIGGER tU_Вид_медперсоналу ON Вид_медперсоналу FOR UPDATE AS

/* ERwin Builtin Trigger */

/* UPDATE trigger on Вид_медперсоналу */

BEGIN

DECLARE @NUMROWS int,

@nullcnt int,

@validcnt int,

@insКод_виду int,

@errno int,

@errmsg varchar(255)

SELECT @NUMROWS = @@rowcount

/* ERwin Builtin Trigger */

/* Вид_медперсоналу Медичний_заклад on parent update cascade */

/* ERWIN_RELATION:CHECKSUM="00018891", PARENT_OWNER="", PARENT_TABLE="Вид_медперсоналу"

CHILD_OWNER="", CHILD_TABLE="Медичний_заклад"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="надає робочі місця",

FK_CONSTRAINT="R_19", FK_COLUMNS="Код_виду" */

IF

/* %ParentPK(" OR",UPDATE) */

UPDATE(Код_виду)

BEGIN

IF @NUMROWS = 1

BEGIN

SELECT @insКод_виду = inserted.Код_виду

FROM inserted

UPDATE Медичний_заклад

SET

/* %JoinFKPK(Медичний_заклад,@ins," = ",",") */

Медичний_заклад.Код_виду = @insКод_виду

FROM Медичний_заклад,inserted,deleted

WHERE

/* %JoinFKPK(Медичний_заклад,deleted," = "," AND") */

Медичний_заклад.Код_виду = deleted.Код_виду

END

ELSE

BEGIN

SELECT @errno = 30006,

@errmsg = 'Cannot cascade Вид_медперсоналу update because more than one row has been affected.'

GOTO ERROR

END

END

/* ERwin Builtin Trigger */

RETURN

ERROR:

raiserror @errno @errmsg

rollback transaction

END

Execution Successful

CREATE TRIGGER tI_Журнал_даних ON Журнал_даних FOR INSERT AS

/* ERwin Builtin Trigger */

/* INSERT trigger on Журнал_даних */

BEGIN

DECLARE @NUMROWS int,

@nullcnt int,

@validcnt int,

@errno int,

@errmsg varchar(255)

SELECT @NUMROWS = @@rowcount

/* ERwin Builtin Trigger */

/* Хвороба заноситься Журнал_даних on child insert cascade */

/* ERWIN_RELATION:CHECKSUM="0003a764", PARENT_OWNER="", PARENT_TABLE="Хвороба"

CHILD_OWNER="", CHILD_TABLE="Журнал_даних"

P2C_VERB_PHRASE="заноситься", C2P_VERB_PHRASE="",

FK_CONSTRAINT="R_7", FK_COLUMNS="Код_хвороби" */

IF

/* %ChildFK(" OR",UPDATE) */

UPDATE(Код_хвороби)

BEGIN

INSERT Хвороба (Код_хвороби)

SELECT Код_хвороби

FROM inserted

WHERE

/* %NotnullFK(inserted," IS NOT NULL AND") */

NOT EXISTS (

SELECT * FROM Хвороба

WHERE

/* %JoinFKPK(inserted,Хвороба," = "," AND") */

inserted.Код_хвороби = Хвороба.Код_хвороби

)

END

/* ERwin Builtin Trigger */

/* Медичний_заклад входить Журнал_даних on child insert cascade */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Медичний_заклад"

CHILD_OWNER="", CHILD_TABLE="Журнал_даних"

P2C_VERB_PHRASE="входить", C2P_VERB_PHRASE="",

FK_CONSTRAINT="R_8", FK_COLUMNS="Код_закладу" */

IF

/* %ChildFK(" OR",UPDATE) */

UPDATE(Код_закладу)

BEGIN

INSERT Медичний_заклад (Код_закладу)

SELECT Код_закладу

FROM inserted

WHERE

/* %NotnullFK(inserted," IS NOT NULL AND") */

NOT EXISTS (

SELECT * FROM Медичний_заклад

WHERE

/* %JoinFKPK(inserted,Медичний_заклад," = "," AND") */

inserted.Код_закладу = Медичний_заклад.Код_закладу

)

END

/* ERwin Builtin Trigger */

/* Період Журнал_даних on child insert restrict */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Період"

CHILD_OWNER="", CHILD_TABLE="Журнал_даних"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="вміщує в себе",

FK_CONSTRAINT="R_18", FK_COLUMNS="Код_періоду" */

IF

/* %ChildFK(" OR",UPDATE) */

UPDATE(Код_періоду)

BEGIN

SELECT @nullcnt = 0

SELECT @validcnt = count(*)

FROM inserted,Період

WHERE

/* %JoinFKPK(inserted,Період) */

inserted.Код_періоду = Період.Код_періоду

/* %NotnullFK(inserted," IS NULL","select @nullcnt = count(*) from inserted where"," and") */

IF @validcnt + @nullcnt != @NUMROWS

BEGIN

SELECT @errno = 30002,

@errmsg = 'Cannot insert Журнал_даних because Період does not exist.'

GOTO ERROR

END

END

/* ERwin Builtin Trigger */

RETURN

ERROR:

raiserror @errno @errmsg

rollback transaction

END

Execution Successful

Schema Generation Complete

62 query succeeded.