lab2 (1034722)
Текст из файла
Московский Государственный Технический Университет им.Н.Э.Баумана
Отчёт по лабораторной работe №2
по курсу «Структурное проектирование АСОИ»
Исполнитель:
студент группы ИУ5-109
Новосельцев А.Б.
____________________
«___»_________ 2013 г.
1. Задание.
С помощью пакета ERWIN разработать ERD (logic-схема) системы, организующей работу процессингового центра. Сгенерировать отчет Data Diagram (physical - схема) для Oracle 8i, сгенерировать DDL-сценарий (Data Definition Language) с описанием объектов системы.
Требования к отчету:
-
Рисунки ERD и DD
-
В приложении привести DDL-сценария (часть описания триггеров можно удалить)
2. Выполнение.
-
Logic-схема.
Результат создания logic-схемы представлен на рис.1.
Рис.1. Logic-схема.
-
Physical – схема.
Для конвертации воспользуемся Tools->Reverse Engineer. После ряда форм (рис.2а-2в) получим искомую схему (рис.3).
Рис.2в
Рис.3.
Приложение 1. DDL-сценарий.
CREATE TABLE Банк
(
Ключ_банка INTEGER NOT NULL ,
БИК VARCHAR2(20) NULL ,
Наименование VARCHAR2(20) NULL ,
Адрес VARCHAR2(20) NULL ,
N_лицензии VARCHAR2(20) NULL ,
Домен VARCHAR2(20) NULL ,
N_порта INTEGER NULL
);
CREATE UNIQUE INDEX XPKБанк ON Банк
(Ключ_банка ASC);
ALTER TABLE Банк
ADD CONSTRAINT XPKБанк PRIMARY KEY (Ключ_банка);
CREATE TABLE Банк_Запрос
(
Ключ_банка INTEGER NOT NULL ,
Ключ_запроса INTEGER NOT NULL
);
CREATE UNIQUE INDEX XPKБанк_Запрос ON Банк_Запрос
(Ключ_банка ASC,Ключ_запроса ASC);
ALTER TABLE Банк_Запрос
ADD CONSTRAINT XPKБанк_Запрос PRIMARY KEY (Ключ_банка,Ключ_запроса);
CREATE TABLE Другой_Пц
(
Ключ_другого_Пц CHAR(18) NOT NULL ,
Диапазон_кодов INTEGER NULL ,
Доменное_имя VARCHAR2(20) NULL ,
N_порта INTEGER NULL
);
CREATE UNIQUE INDEX XPKДругой_Пц ON Другой_Пц
(Ключ_другого_Пц ASC);
ALTER TABLE Другой_Пц
ADD CONSTRAINT XPKДругой_Пц PRIMARY KEY (Ключ_другого_Пц);
CREATE TABLE Запрос
(
Ключ_запроса INTEGER NOT NULL ,
Ключ_другого_Пц CHAR(18) NULL ,
Дата_и_время_операции DATE NULL ,
N_карты INTEGER NULL ,
ФИО_держателя VARCHAR2(20) NULL ,
Дата_истечения_срока DATE NULL ,
Тип_операции VARCHAR2(20) NULL ,
сумма INTEGER NULL ,
Статус VARCHAR2(20) NULL ,
Ключ_банка_эмитента INTEGER NULL ,
Ключ_банка_эквайера INTEGER NULL
);
CREATE UNIQUE INDEX XPKЗапрос ON Запрос
(Ключ_запроса ASC);
ALTER TABLE Запрос
ADD CONSTRAINT XPKЗапрос PRIMARY KEY (Ключ_запроса);
CREATE TABLE Карта_по_эмиссии
(
Ключ_карты INTEGER NOT NULL ,
ФИО_владельца VARCHAR2(20) NULL ,
Срок_истечения DATE NULL ,
N_карты INTEGER NULL ,
Платежная_система VARCHAR2(20) NULL ,
Тип_шаблона_оболочки VARCHAR2(20) NULL ,
Ключ_банка INTEGER NULL
);
CREATE UNIQUE INDEX XPKКарта_по_эмиссии ON Карта_по_эмиссии
(Ключ_карты ASC);
ALTER TABLE Карта_по_эмиссии
ADD CONSTRAINT XPKКарта_по_эмиссии PRIMARY KEY (Ключ_карты);
CREATE TABLE Платеж_за_процессинг
(
Ключ_платежа CHAR(18) NOT NULL ,
дата_выставления_платежа DATE NULL ,
количество_запросов INTEGER NULL ,
комиссия_на_запрос INTEGER NULL ,
Сумма_платежа INTEGER NULL ,
Ключ_банка INTEGER NULL
);
CREATE UNIQUE INDEX XPKПлатеж_за_процессинг ON Платеж_за_процессинг
(Ключ_платежа ASC);
ALTER TABLE Платеж_за_процессинг
ADD CONSTRAINT XPKПлатеж_за_процессинг PRIMARY KEY (Ключ_платежа);
CREATE TABLE Стоп_карта
(
Номер_в_стоп_листе CHAR(18) NOT NULL ,
ключ_стоп_листа INTEGER NOT NULL ,
N_карты INTEGER NULL ,
Срок_истечения DATE NULL ,
ФИО_владельца VARCHAR2(20) NULL ,
Дата_заявления DATE NULL ,
Признак VARCHAR2(20) NULL
);
CREATE UNIQUE INDEX XPKСтоп_карта ON Стоп_карта
(Номер_в_стоп_листе ASC,ключ_стоп_листа ASC);
ALTER TABLE Стоп_карта
ADD CONSTRAINT XPKСтоп_карта PRIMARY KEY (Номер_в_стоп_листе,ключ_стоп_листа);
CREATE TABLE Стоп_лист
(
ключ_стоп_листа INTEGER NOT NULL ,
дата_получения DATE NULL ,
Ключ_банка INTEGER NULL
);
CREATE UNIQUE INDEX XPKСтоп_лист ON Стоп_лист
(ключ_стоп_листа ASC);
ALTER TABLE Стоп_лист
ADD CONSTRAINT XPKСтоп_лист PRIMARY KEY (ключ_стоп_листа);
ALTER TABLE Банк_Запрос
ADD (CONSTRAINT R_21 FOREIGN KEY (Ключ_банка) REFERENCES Банк (Ключ_банка));
ALTER TABLE Банк_Запрос
ADD (CONSTRAINT R_10 FOREIGN KEY (Ключ_запроса) REFERENCES Запрос (Ключ_запроса));
ALTER TABLE Запрос
ADD (CONSTRAINT R_12 FOREIGN KEY (Ключ_банка_эмитента) REFERENCES Банк (Ключ_банка) ON DELETE SET NULL);
ALTER TABLE Запрос
ADD (CONSTRAINT R_13 FOREIGN KEY (Ключ_банка_эквайера) REFERENCES Банк (Ключ_банка) ON DELETE SET NULL);
ALTER TABLE Запрос
ADD (CONSTRAINT R_14 FOREIGN KEY (Ключ_другого_Пц) REFERENCES Другой_Пц (Ключ_другого_Пц) ON DELETE SET NULL);
ALTER TABLE Карта_по_эмиссии
ADD (CONSTRAINT R_8 FOREIGN KEY (Ключ_банка) REFERENCES Банк (Ключ_банка) ON DELETE SET NULL);
ALTER TABLE Платеж_за_процессинг
ADD (CONSTRAINT R_18 FOREIGN KEY (Ключ_банка) REFERENCES Банк (Ключ_банка) ON DELETE SET NULL);
ALTER TABLE Стоп_карта
ADD (CONSTRAINT R_20 FOREIGN KEY (ключ_стоп_листа) REFERENCES Стоп_лист (ключ_стоп_листа));
ALTER TABLE Стоп_лист
ADD (CONSTRAINT R_19 FOREIGN KEY (Ключ_банка) REFERENCES Банк (Ключ_банка) ON DELETE SET NULL);
CREATE TRIGGER tD_Банк AFTER DELETE ON Банк for each row
-- ERwin Builtin Trigger
-- DELETE trigger on Банк
DECLARE NUMROWS INTEGER;
BEGIN
/* ERwin Builtin Trigger */
/* Банк Карта_по_эмиссии on parent delete set null */
/* ERWIN_RELATION:CHECKSUM="00051304", PARENT_OWNER="", PARENT_TABLE="Банк"
CHILD_OWNER="", CHILD_TABLE="Карта_по_эмиссии"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_8", FK_COLUMNS="Ключ_банка" */
UPDATE Карта_по_эмиссии
SET
/* %SetFK(Карта_по_эмиссии,NULL) */
Карта_по_эмиссии.Ключ_банка = NULL
WHERE
/* %JoinFKPK(Карта_по_эмиссии,:%Old," = "," AND") */
Карта_по_эмиссии.Ключ_банка = :old.Ключ_банка;
/* ERwin Builtin Trigger */
/* Банк Запрос on parent delete set null */
/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Банк"
CHILD_OWNER="", CHILD_TABLE="Запрос"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_12", FK_COLUMNS="Ключ_банка_эмитента" */
UPDATE Запрос
SET
/* %SetFK(Запрос,NULL) */
Запрос.Ключ_банка_эмитента = NULL
WHERE
/* %JoinFKPK(Запрос,:%Old," = "," AND") */
Запрос.Ключ_банка_эмитента = :old.Ключ_банка;
/* ERwin Builtin Trigger */
/* Банк Запрос on parent delete set null */
/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Банк"
CHILD_OWNER="", CHILD_TABLE="Запрос"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_13", FK_COLUMNS="Ключ_банка_эквайера" */
UPDATE Запрос
SET
/* %SetFK(Запрос,NULL) */
Запрос.Ключ_банка_эквайера = NULL
WHERE
/* %JoinFKPK(Запрос,:%Old," = "," AND") */
Запрос.Ключ_банка_эквайера = :old.Ключ_банка;
/* ERwin Builtin Trigger */
/* Банк Платеж_за_процессинг on parent delete set null */
/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Банк"
CHILD_OWNER="", CHILD_TABLE="Платеж_за_процессинг"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_18", FK_COLUMNS="Ключ_банка" */
UPDATE Платеж_за_процессинг
SET
/* %SetFK(Платеж_за_процессинг,NULL) */
Платеж_за_процессинг.Ключ_банка = NULL
WHERE
/* %JoinFKPK(Платеж_за_процессинг,:%Old," = "," AND") */
Платеж_за_процессинг.Ключ_банка = :old.Ключ_банка;
/* ERwin Builtin Trigger */
/* Банк Стоп_лист on parent delete set null */
/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Банк"
CHILD_OWNER="", CHILD_TABLE="Стоп_лист"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_19", FK_COLUMNS="Ключ_банка" */
UPDATE Стоп_лист
SET
/* %SetFK(Стоп_лист,NULL) */
Стоп_лист.Ключ_банка = NULL
WHERE
/* %JoinFKPK(Стоп_лист,:%Old," = "," AND") */
Стоп_лист.Ключ_банка = :old.Ключ_банка;
/* ERwin Builtin Trigger */
/* Банк Банк_Запрос on parent delete restrict */
/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Банк"
CHILD_OWNER="", CHILD_TABLE="Банк_Запрос"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_21", FK_COLUMNS="Ключ_банка" */
SELECT count(*) INTO NUMROWS
FROM Банк_Запрос
WHERE
/* %JoinFKPK(Банк_Запрос,:%Old," = "," AND") */
Банк_Запрос.Ключ_банка = :old.Ключ_банка;
IF (NUMROWS > 0)
THEN
raise_application_error(
-20001,
'Cannot delete Банк because Банк_Запрос exists.'
);
END IF;
-- ERwin Builtin Trigger
END;
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.