Розробка бази даних та застосування для Інтернет-магазину відеотехніки - Курсовая работа

бесплатно 0
4.5 132
Дослідження підсистем створення облікової анкети на сайті, обробки замовлення та контролю платіжної системи. Проектування концептуальної, логічної і фізичної моделей даних. Визначення в них атрибутів сутностей, типу та розміру. Генерація моделей до СКБД.

Скачать работу Скачать уникальную работу

Чтобы скачать работу, Вы должны пройти проверку:


Аннотация к работе
АНОТАЦІЯ1.1.1 Підсистема створення облікової анкети на сайті.1 Інформаційні потоки, які присутні в системіКожний інтернет-магазин характеризується наступним набором параметрів: - Реєстраційний номер. Потім у кожного інтернет-магазину є склад, який він орендує. На складі зберігаються товари. Замовник подає замовлення, ключова інформація якого передається курєрові, який виконує доставку. Далі формується форма доставки до якої передаються дані про замовника (П. І. Б., контактний телефон), замовлення (номер замовлення, сума замовлення, місце доставки) та курєра (П. І. Б., табельний номер. телефон).Довідкова інформація зберігається в документі «Список користувачів сайту» (рисунок 2.1) та «Список курєрів магазину» (рисунок 2.2). Облікова інформація міститься в документах «Список товарів, які є на складі» (рисунок 2.3), «Список виконаних замовлень» (рисунок 2.4), «Список товарів, які мають надійти» (рисунок 2.5). Рисунок 2.6 - інформаційні потоки в системі інтернет-магазин замовляє у постачальника певну кількість товарів, які до певної дати повинні бути на складі (рисунок 2.6-1); постачальник доставляє товари на склад (рисунок 2.6-2); замовник замовляє товар (рисунок 2.6-3);String String String String StringДаний розділ присвячений детальному опису проектування фізичної моделі даних за допомогою CASE-засобу Erwin (рисунок 4.1, таблиці 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7). Таблиця 4.1 - сутність «Інтернет-магазин» Опис поля Таблиця 4.1 - сутність «Склад» Таблиця 4.3 - сутність «Товар»Для генерації коду створення БД необхідно вибрати пункт меню Tools/FORWARDENGINEER/SCHEMAGENERATION, після чого відкриється вікно налаштування властивостей схеми даних, що генерується.(рис. Для попереднього перегляду SQL-скрипта служить кнопка Preview, для генерації схеми - Generate. У процесі генерації Erwin зєднується з БД, виконуючи SQL-скрипт. Якщо в процесі генерації виникають які-небудь помилки, вона припиняється, відкривається вікно з повідомленнями про помилки. Далі наведені рисунки наших таблиць згенеровані до СКБД (рисунок 5.2 - 5.14).Таким чином, дана курсова робота дала змогу побудувати ER-модель для заданої тематики «Інтернет-магазин відео техніки», і побачити як повинна виглядати БД для різних закладів і підприємств. Для вірної побудови бази даних ми на першому етапи зробили аналіз предметної області, в я кому було описано система в цілому та його підсистеми, та для вірного розуміння самої системи було описано модулі роботи підсистем. Наступним етапом було створення проектування концептуальної моделі даних, в якому створюємо додаткову інформацію в вигляді списків. Третій етап є створення інфологічної моделі,яка відображає предметну область, а точніше опис предметної області й відображає погляди й потреби всіх користувачів системи. Основним результатом є правильно побудовані різні типи моделей даних і аналізована предметна область для бази даних, вивчені основні цілі проектування бази даних та виконані основні завдання курсової роботи - - розробити проект бази даних для накопичення необхідної інформації в організації, створити базу даних.

Вывод
Таким чином, дана курсова робота дала змогу побудувати ER-модель для заданої тематики «Інтернет-магазин відео техніки», і побачити як повинна виглядати БД для різних закладів і підприємств.

Для вірної побудови бази даних ми на першому етапи зробили аналіз предметної області, в я кому було описано система в цілому та його підсистеми, та для вірного розуміння самої системи було описано модулі роботи підсистем.

Наступним етапом було створення проектування концептуальної моделі даних, в якому створюємо додаткову інформацію в вигляді списків. Ця інформація розроблена для моніторингу системи в цілому.

Третій етап є створення інфологічної моделі,яка відображає предметну область, а точніше опис предметної області й відображає погляди й потреби всіх користувачів системи. Метою побудови цієї структури є виявлення й обєднання інформаційних вимог користувача, звязків між елементами даних без врахування їх змісту й середовища їх зберігання.

Центральним компонентом інфологічної моделі є опис обєктів предметної області й звязків між ними (ER-модель). Інфологічна модель представляє інформаційні потоки, сутності й звязку даної предметної області. Вона може бути представлена у вигляді ER-моделі й реляційної схеми. Також в ній класифікуються сутності та визначаються первинні й зовнішні ключі,які використаються в даній роботі.

Четвертий етап - побудова даталогічної моделі. Ця модель є моделлю логічного рівня і являє собою відображення логічних звязків між елементами даних безвідносно до їхнього змісту й середовищу зберігання.

Пятий етап - це побудова фізичної моделі. Модель являє собою таблицю, кожний рядок якої (запис) містить деякі відомості про описуваний обєкт. Всі записи бази даних мають ідентичну, задану користувачем структуру й розміри. Модель фізичного рівня також будується з урахуванням можливостей, що представляються СКБД.

Наступний шостий етап являє собою проектування логічної і фізичної моделі, визначення в них атрибутів сутностей, тип та розмір.

Сьомий етап безпосередньо побудова ER-моделі в CASE -засобі для проектування і документування баз даних ALLFUSIONERWINDATAMODELER, та представлення в даній курсовій роботі скриншотів вже побудованої, готової для використання, бази даних.

Основним результатом є правильно побудовані різні типи моделей даних і аналізована предметна область для бази даних, вивчені основні цілі проектування бази даних та виконані основні завдання курсової роботи - - розробити проект бази даних для накопичення необхідної інформації в організації, створити базу даних. Розроблена застосування, що дозволяє вести облік, контроль, а також одержувати різні вихідні документи. База даних повинна бути спроектована з урахуванням реалізації запитів різного типу.

Великим плюсом цієї моделі є те, що вона вже готова для використання, її вже можливо заповнити необхідними даними та створити потрібну базу даних, яка буде працездатною і матиме можливість використанням Адміністратором, або спеціально відведена база даних для користувача.

До мінуса можна віднести те, що вона є громіздкою, в випадку наприклад поляризації сайту, так як користувачів буде велика кількість, то сама база буде мати громіздкі таблиці, то можливо має зміст того,щоб нормалізувати та адаптувати для більшої наочності і скороченості.

Як було сказано раніше, ця база даних може реалізуватися в реальному Інтернет-магазині та спокійно використатися Адміністратором цього сайту та його помічниками і користувачами. А як наведено було в мінусі БД , перспективою є розширення и нормалізація цієї бази даних для більшої наочності як і Адміністратором так і користувачем.

Список литературы
ДОДАТОК

АНОТАЦІЯ

Темою даної курсової роботи, була розробка бази даних та застосування для інтернет-магазину відеотехніки. Тому метою даної роботи є підвищення ефективності роботи магазину, а саме підвищення рівня захисту інформації, компактності представлення ключової інформації.

Основними засобами для виконання цього завдання були програми Erwin Data Modeler та Oracle 11G XE.

Робота виконана на друкованих аркушах, містить рисунки, схеми, таблиці, які представляють дану базу даних та SQL-код бази даних, за допомогою якого можна згенерувати дану базу даних в Oracle.

ВСТУП

Метою виконання даної роботи є розробка бази даних за допомогою програм Erwin Data Modeler та Oracle 11G XE.

Основним завданням інтернет-магазину відеотехніки є розробка нових пропозицій для покупців, з метою економії їх часу та коштів.

Свої основні завдання інтернет-магазин виконує через виконання наступних функцій: - чітка і безперебійна робота сайту магазину;

- постійне оновлення списку товарів;

- чіткий контроль наявності товару на складах магазину;

- чіткий контроль платіжної системи;

- підтримка високої кваліфікації співробітників магазину.

Керівництво інтернет-магазином

Власник інтернет-магазину: здійснює загальне керівництво інтернет-магазином, спрямовує і координує його роботу та підрозділів щодо виконання покладених на інтернет-магазин завдань та функцій;

- вирішує питання з поставкою товарів;

- здійснює контроль за дотриманням нормативно-правових актів, якими користується інтернет-магазин.

Посадові обовязки

Власник інтернет-магазину: - керує діяльністю автобусного парку.

- несе відповідальність за вчасне отримання платежів, якість товару, дотримання законодавчих актів і нормативних документів.

- встановлює обовязки працівників.

- затверджує графік роботи офісу магазину.

Відділ обслуговування замовлень: Забезпечує прийом замовлень на товари, а також звязок з клієнтами: - приймає скарги та пропозиції;

- приймає замовлення на товари;

Відділ програмного забезпечення: - збір, зберігання даних магазину;

- підтримання працездатності сайту;

- підтримання захисту та безперебійному роботи платіжної системи;

Кадровий відділ: - організовує роботу з персоналом.

Мета та завдання системи

Метою даної роботи є підвищення ефективності роботи в інтернет-магазині відеотехніки. Ця мета досягається оптимізацією отримання, зберігання та обробки інформації. Призначена дана система для працівників структурних підрозділів інтернет-магазину.

Перелік функцій системи, що забезпечують досягнення цілей

Повинні бути автоматизовані наступні функції

- ведення журналу обліку товарів, їх наявність на складах;

- ведення журналу обліку замовлень;

- ведення журналу обліку платіжних операцій;

- запис інформації;

- зберігання інформації;

- зміна і відображення даних;

- сортування за різними параметрами.

Під час виконання курсової роботи: - виконати аналіз предметної області;

- ідентифікувати всі обєкти, їх атрибути та звязки між ними;

- розробити концептуальну модель БД;

- розробити застосування з використанням спроектованої БД в СКБД Oracle 11G XE.1.Методичні вказівки до виконання курсової роботи з дисципліни "Організація баз даних та знань - 1"/ Я.Ю.Дорогий.

2.Савчук Т.О. Організація баз даних і знань. Вінниця: ВДТУ, 2000 р.

3.Степанов Ю.Л. Разработка приложений баз данных для СУБД.

4.Вінер Н. “Бази даних”, М.: Наука, 1993

5. Дейт, К.Дж. Введение в системы баз данных, 8-е издание.: Пер. с англ. /К. Дж. Дейт. - М.: Издательский дом «Вильямс», 2005. - 1328 с.: ил. - Парал. тит. англ.

6. Конноли Т. Базы данных: проектирование и сопровождение. Теория и практика. /Т. Конноли, К. Бегг, А. Страчан.

7. ЛУНИК. Oracle Database 10G. Полный справочник в 2 томах. / К. Луни. - М.: Издательство «Лори», 2004. .

8. Дорогий Я.Ю. Методична розробка до виконання лабораторної роботи «Створення застосувань в Oracle 11G XE» [Електронне видання]. / Я.Ю.Дорогий. - К.: ІССЗІ НТУУ «КПІ», 2012. обліковий концептуальний модель атрибут сутність

Додаток

SQL-КОДБД

CREATE TABLE Camera

Cat_video VARCHAR2(20) NULL , Matrix_video VARCHAR2(20) NULL , Cat_nos VARCHAR2(20) NULL , ID_good VARCHAR2(10) NOT NULL , Producer VARCHAR2(35) NOT NULL , Model VARCHAR2(35) NOT NULL , Price NUMBER(10,2) NOT NULL , Others VARCHAR2(200) NOT NULL

);

CREATE UNIQUE INDEX ХРКВИДЕОКАМЕРЫ ON Camera

(ID_good ASC,Producer ASC,Model ASC,Price ASC,Others ASC);

ALTER TABLE Camera

ADD CONSTRAINT ХРКВИДЕОКАМЕРЫ PRIMARY KEY (ID_good,Producer,Model,Price,Others);

CREATE TABLE Courier

(

ID_courier VARCHAR2(10) NOT NULL , N_S_cour VARCHAR2(35) NULL , Salary NUMBER(10,2) NULL , Phone_cour VARCHAR2(20) NULL

);

CREATE UNIQUE INDEX ХРККУРЬЕР ON Courier

(ID_courier ASC);

ALTER TABLE Courier

ADD CONSTRAINT ХРККУРЬЕР PRIMARY KEY (ID_courier);

CREATE UNIQUE INDEX XAK1Курьер ON Courier

(N_S_cour ASC,Phone_cour ASC,ID_courier ASC);

ALTER TABLE Courier

ADD CONSTRAINT XAK1Курьер UNIQUE (N_S_cour,Phone_cour,ID_courier);

CREATE TABLE Deliverer

(

Company VARCHAR2(30) NOT NULL , Ow_comp VARCHAR2(35) NULL , Adr_copmp VARCHAR2(50) NULL , Phone_comp VARCHAR2(15) NULL

);

CREATE UNIQUE INDEX ХРКПОСТАВЩИК ON Deliverer

(Company ASC);

ALTER TABLE Deliverer

ADD CONSTRAINT ХРКПОСТАВЩИК PRIMARY KEY (Company);

CREATE UNIQUE INDEX XAK1Поставщик ON Deliverer

(Ow_comp ASC);

ALTER TABLE Deliverer

ADD CONSTRAINT XAK1Поставщик UNIQUE (Ow_comp);

CREATE TABLE Delivery

(

ID_get VARCHAR2(10) NOT NULL , Date_sign DATE NULL , Date_get DATE NULL , How_many INTEGER NULL , ID_good VARCHAR2(10) NOT NULL , Owner VARCHAR2(35) NOT NULL , Ow_comp VARCHAR2(35) NOT NULL

);

CREATE UNIQUE INDEX ХРКПОСТАВКА ON Delivery

(ID_get ASC);

ALTER TABLE Delivery

ADD CONSTRAINT ХРКПОСТАВКА PRIMARY KEY (ID_get);

CREATE TABLE Good

(

ID_good VARCHAR2(10) NOT NULL , Type VARCHAR2(30) NULL , Price NUMBER(10,2) NULL , Garantee VARCHAR2(20) NULL , ID_warehouse VARCHAR2(10) NOT NULL , Producer VARCHAR2(35) NULL , Model VARCHAR2(35) NULL , Others VARCHAR2(200) NULL

);

CREATE UNIQUE INDEX ХРКТОВАР ON Good

(ID_good ASC);

ALTER TABLE Good

ADD CONSTRAINT ХРКТОВАР PRIMARY KEY (ID_good);

ALTER TABLE Good

ADD CONSTRAINT XAK1Товар UNIQUE (ID_good);

CREATE UNIQUE INDEX XAK2Товар ON Good

(ID_good ASC,Producer ASC,Model ASC,Price ASC,Others ASC);

ALTER TABLE Good

ADD CONSTRAINT XAK2Товар UNIQUE (ID_good,Producer,Model,Price,Others);

CREATE TABLE Internet_store

(

ID_store VARCHAR2(10) NOT NULL , Web VARCHAR2(40) NULL , Physical_adress VARCHAR2(50) NULL , Owner VARCHAR2(35) NULL

);

CREATE UNIQUE INDEX ХРКИНТЕРНЕТ_магазин ON Internet_store

(ID_store ASC);

ALTER TABLE Internet_store

ADD CONSTRAINT ХРКИНТЕРНЕТ_магазин PRIMARY KEY (ID_store);

CREATE UNIQUE INDEX XAK1Интернет_магазин ON Internet_store

(ID_store ASC,Owner ASC);

ALTER TABLE Internet_store

ADD CONSTRAINT XAK1Интернет_магазин UNIQUE (ID_store,Owner);

CREATE TABLE Ord

(

ID_ordering VARCHAR2(10) NOT NULL , Summ NUMBER(10,2) NULL , ID_good VARCHAR2(10) NOT NULL , N_S_ord VARCHAR2(35) NOT NULL , Delivery VARCHAR2(35) NULL

);

CREATE UNIQUE INDEX ХРКЗАКАЗ ON Ord

(ID_ordering ASC);

ALTER TABLE Ord

ADD CONSTRAINT ХРКЗАКАЗ PRIMARY KEY (ID_ordering);

CREATE UNIQUE INDEX XAK1Заказ ON Ord

(ID_ordering ASC,Summ ASC,N_S_ord ASC,Delivery ASC);

ALTER TABLE Ord

ADD CONSTRAINT XAK1Заказ UNIQUE (ID_ordering,Summ,N_S_ord,Delivery);

CREATE TABLE Ord_del

(

ID_ordering VARCHAR2(10) NOT NULL , Summ NUMBER(10,2) NOT NULL , N_S_ord VARCHAR2(35) NOT NULL , Delivery VARCHAR2(35) NOT NULL , N_S_cour VARCHAR2(35) NOT NULL , Phone_cour VARCHAR2(20) NOT NULL , ID_courier VARCHAR2(10) NOT NULL , Phone VARCHAR2(20) NOT NULL

);

CREATE TABLE Orderer

(

N_S_ord VARCHAR2(35) NOT NULL , Adr_ord VARCHAR2(50) NULL , Phone VARCHAR2(20) NULL , Birthday DATE NULL , Add_info VARCHAR2(200) NULL

);

CREATE UNIQUE INDEX ХРКЗАКАЗЧИК ON Orderer

(N_S_ord ASC);

ALTER TABLE Orderer

ADD CONSTRAINT ХРКЗАКАЗЧИК PRIMARY KEY (N_S_ord);

CREATE UNIQUE INDEX XAK1Заказчик ON Orderer

(Phone ASC,N_S_ord ASC);

ALTER TABLE Orderer

ADD CONSTRAINT XAK1Заказчик UNIQUE (Phone,N_S_ord);

CREATE TABLE Players

(

Cat_player VARCHAR2(20) NULL , Display VARCHAR2(20) NULL , ID_good VARCHAR2(10) NOT NULL , Producer VARCHAR2(35) NOT NULL , Model VARCHAR2(35) NOT NULL , Price NUMBER(10,2) NOT NULL , Others VARCHAR2(200) NOT NULL

);

CREATE UNIQUE INDEX ХРКМЕДИАПЛЕЕРЫ ON Players

(ID_good ASC,Producer ASC,Model ASC,Price ASC,Others ASC);

ALTER TABLE Players

ADD CONSTRAINT ХРКМЕДИАПЛЕЕРЫ PRIMARY KEY (ID_good,Producer,Model,Price,Others);

CREATE TABLE Proectors

(

Cat_pro VARCHAR2(20) NULL , Phys_def VARCHAR2(20) NULL , ID_good VARCHAR2(10) NOT NULL , Producer VARCHAR2(35) NOT NULL , Model VARCHAR2(35) NOT NULL , Price NUMBER(10,2) NOT NULL , Others VARCHAR2(200) NOT NULL

);

CREATE UNIQUE INDEX ХРКПРОЕКТОРЫ ON Proectors

(ID_good ASC,Producer ASC,Model ASC,Price ASC,Others ASC);

ALTER TABLE Proectors

ADD CONSTRAINT ХРКПРОЕКТОРЫ PRIMARY KEY (ID_good,Producer,Model,Price,Others);

CREATE TABLE TV_monit

(

Diag NUMBER(10,1) NULL , Category VARCHAR2(20) NULL , Matrix VARCHAR2(20) NULL , Definition VARCHAR2(20) NULL , ID_good VARCHAR2(10) NOT NULL , Producer VARCHAR2(35) NOT NULL , Model VARCHAR2(35) NOT NULL , Price NUMBER(10,2) NOT NULL , Others VARCHAR2(200) NOT NULL

);

CREATE UNIQUE INDEX ХРКТЕЛЕВИЗОРЫ_и_мониторы ON TV_monit

(ID_good ASC,Producer ASC,Model ASC,Price ASC,Others ASC);

ALTER TABLE TV_monit

ADD CONSTRAINT ХРКТЕЛЕВИЗОРЫ_и_мониторы PRIMARY KEY (ID_good,Producer,Model,Price,Others);

CREATE TABLE Warehouse

(

ID_warehouse VARCHAR2(10) NOT NULL , MAX INTEGER NULL , Real INTEGER NULL , Adress_warehouse VARCHAR2(50) NULL , Rent NUMBER(10,2) NOT NULL , ID_store VARCHAR2(10) NOT NULL

);

CREATE UNIQUE INDEX ХРКСКЛАД ON Warehouse

(ID_warehouse ASC);

ALTER TABLE Warehouse

ADD CONSTRAINT ХРКСКЛАД PRIMARY KEY (ID_warehouse);

ALTER TABLE Warehouse

ADD CONSTRAINT XAK1Склад UNIQUE (ID_warehouse);

ALTER TABLE Camera

ADD (FOREIGN KEY (ID_good, Producer, Model, Price, Others) REFERENCES Good(ID_good, Producer, Model, Price, Others) ON DELETE CASCADE);

ALTER TABLE Delivery

ADD (CONSTRAINT R_3 FOREIGN KEY (ID_good) REFERENCES Good (ID_good));

ALTER TABLE Delivery

ADD (CONSTRAINT R_6 FOREIGN KEY (Ow_comp) REFERENCES Deliverer (Ow_comp));

ALTER TABLE Good

ADD (CONSTRAINT R_2 FOREIGN KEY (ID_warehouse) REFERENCES Warehouse (ID_warehouse));

ALTER TABLE Ord

ADD (CONSTRAINT R_4 FOREIGN KEY (ID_good) REFERENCES Good (ID_good));

ALTER TABLE Ord

ADD (CONSTRAINT R_5 FOREIGN KEY (N_S_ord) REFERENCES Orderer (N_S_ord));

ALTER TABLE Ord_del

ADD (CONSTRAINT R_7 FOREIGN KEY (ID_ordering, Summ, N_S_ord, Delivery) REFERENCES Ord (ID_ordering, Summ, N_S_ord, Delivery));

ALTER TABLE Ord_del

ADD (CONSTRAINT R_8 FOREIGN KEY (N_S_cour, Phone_cour, ID_courier) REFERENCES Courier (N_S_cour, Phone_cour, ID_courier));

ALTER TABLE Players

ADD (FOREIGN KEY (ID_good, Producer, Model, Price, Others) REFERENCES Good(ID_good, Producer, Model, Price, Others) ON DELETE CASCADE);

ALTER TABLE Proectors

ADD (FOREIGN KEY (ID_good, Producer, Model, Price, Others) REFERENCES Good(ID_good, Producer, Model, Price, Others) ON DELETE CASCADE);

ALTER TABLE TV_monit

ADD (FOREIGN KEY (ID_good, Producer, Model, Price, Others) REFERENCES Good(ID_good, Producer, Model, Price, Others) ON DELETE CASCADE);

ALTER TABLE Warehouse

ADD (CONSTRAINT R_1 FOREIGN KEY (ID_store) REFERENCES Internet_store (ID_store));

CREATE TRIGGER TI_Camera BEFORE INSERT ON Camera for each row

- ERWIN Builtin Trigger

- INSERT trigger on Camera

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Good Camera on child insert restrict */

/* ERWIN_RELATION:CHECKSUM="00011fd9", PARENT_OWNER="", PARENT_TABLE="Товар"

CHILD_OWNER="", CHILD_TABLE="Camera"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="is_a", FK_COLUMNS="ID_good""Producer""Model""Price""Others" */

SELECT count(*) INTO NUMROWS

FROM Good

WHERE

/* %JOINFKPK(:%New,Good," = "," AND") */

:new.ID_good = Good.ID_good AND :new.Price = Good.Price AND :new.Producer = Good.Producer AND :new.Model = Good.Model AND :new.Others = Good.Others;

IF (

/* %NOTNULLFK(:%New," IS NOT NULL AND") */

NUMROWS = 0

)

THEN raise_application_error(

-20002, "Cannot insert Camera because Good does not exist."

);

END IF;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TU_Camera AFTER UPDATE ON Camera for each row

- ERWIN Builtin Trigger

- UPDATE trigger on Camera

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Good Camera on child update restrict */

/* ERWIN_RELATION:CHECKSUM="000122c9", PARENT_OWNER="", PARENT_TABLE="Товар"

CHILD_OWNER="", CHILD_TABLE="Camera"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="is_a", FK_COLUMNS="ID_good""Producer""Model""Price""Others" */

SELECT count(*) INTO NUMROWS

FROM Good

WHERE

/* %JOINFKPK(:%New,Good," = "," AND") */

:new.ID_good = Good.ID_good AND :new.Price = Good.Price AND :new.Producer = Good.Producer AND :new.Model = Good.Model AND :new.Others = Good.Others;

IF (

/* %NOTNULLFK(:%New," IS NOT NULL AND") */

NUMROWS = 0

)

THEN raise_application_error(

-20007, "Cannot update Camera because Good does not exist."

);

END IF;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TD_Courier AFTER DELETE ON Courier for each row

- ERWIN Builtin Trigger

- DELETE trigger on Courier

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Courier Ord_del on parent delete restrict */

/* ERWIN_RELATION:CHECKSUM="000102b6", PARENT_OWNER="", PARENT_TABLE="Courier"

CHILD_OWNER="", CHILD_TABLE="Ord_del"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_8", FK_COLUMNS="N_S_cour""Phone_cour""ID_courier" */

SELECT count(*) INTO NUMROWS

FROM Ord_del

WHERE

/* %JOINFKPK(Ord_del,:%Old," = "," AND") */

Ord_del.ID_courier = :old.ID_courier AND Ord_del.N_S_cour = :old.N_S_cour AND Ord_del.Phone_cour = :old.Phone_cour;

IF (NUMROWS > 0)

THEN raise_application_error(

-20001, "Cannot delete Courier because Ord_del exists."

);

END IF;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TU_Courier AFTER UPDATE ON Courier for each row

- ERWIN Builtin Trigger

- UPDATE trigger on Courier

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Courier Ord_del on parent update restrict */

/* ERWIN_RELATION:CHECKSUM="00012249", PARENT_OWNER="", PARENT_TABLE="Courier"

CHILD_OWNER="", CHILD_TABLE="Ord_del"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_8", FK_COLUMNS="N_S_cour""Phone_cour""ID_courier" */

IF

/* %JOINPKPK(:%Old,:%New," "," OR ") */

:old.ID_courier :new.ID_courier

THEN

SELECT count(*) INTO NUMROWS

FROM Ord_del

WHERE

/* %JOINFKPK(Ord_del,:%Old," = "," AND") */

Ord_del.ID_courier = :old.ID_courier AND Ord_del.N_S_cour = :old.N_S_cour AND Ord_del.Phone_cour = :old.Phone_cour;

IF (NUMROWS > 0)

THEN raise_application_error(

-20005, "Cannot update Courier because Ord_del exists."

);

END IF;

END IF;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TD_Deliverer AFTER DELETE ON Deliverer for each row

- ERWIN Builtin Trigger

- DELETE trigger on Deliverer

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Deliverer Delivery on parent delete restrict */

/* ERWIN_RELATION:CHECKSUM="0000d933", PARENT_OWNER="", PARENT_TABLE="Deliverer"

CHILD_OWNER="", CHILD_TABLE="Delivery"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_6", FK_COLUMNS="Ow_comp" */

SELECT count(*) INTO NUMROWS

FROM Delivery

WHERE

/* %JOINFKPK(Delivery,:%Old," = "," AND") */

Delivery.Ow_comp = :old.Ow_comp;

IF (NUMROWS > 0)

THEN raise_application_error(

-20001, "Cannot delete Deliverer because Delivery exists."

);

END IF;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TU_Deliverer AFTER UPDATE ON Deliverer for each row

- ERWIN Builtin Trigger

- UPDATE trigger on Deliverer

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Deliverer Delivery on parent update restrict */

/* ERWIN_RELATION:CHECKSUM="0000fde4", PARENT_OWNER="", PARENT_TABLE="Deliverer"

CHILD_OWNER="", CHILD_TABLE="Delivery"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_6", FK_COLUMNS="Ow_comp" */

IF

/* %JOINPKPK(:%Old,:%New," "," OR ") */

:old.Company :new.Company

THEN

SELECT count(*) INTO NUMROWS

FROM Delivery

WHERE

/* %JOINFKPK(Delivery,:%Old," = "," AND") */

Delivery.Ow_comp = :old.Ow_comp;

IF (NUMROWS > 0)

THEN raise_application_error(

-20005, "Cannot update Deliverer because Delivery exists."

);

END IF;

END IF;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TI_Delivery BEFORE INSERT ON Delivery for each row

- ERWIN Builtin Trigger

- INSERT trigger on Delivery

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Good Delivery on child insert restrict */

/* ERWIN_RELATION:CHECKSUM="0001d879", PARENT_OWNER="", PARENT_TABLE="Good"

CHILD_OWNER="", CHILD_TABLE="Delivery"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_3", FK_COLUMNS="ID_good" */

SELECT count(*) INTO NUMROWS

FROM Good

WHERE

/* %JOINFKPK(:%New,Good," = "," AND") */

:new.ID_good = Good.ID_good;

IF (

/* %NOTNULLFK(:%New," IS NOT NULL AND") */

NUMROWS = 0

)

THEN raise_application_error(

-20002, "Cannot insert Delivery because Good does not exist."

);

END IF;

/* ERWIN Builtin Trigger */

/* Deliverer Delivery on child insert restrict */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Deliverer"

CHILD_OWNER="", CHILD_TABLE="Delivery"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_6", FK_COLUMNS="Ow_comp" */

SELECT count(*) INTO NUMROWS

FROM Deliverer

WHERE

/* %JOINFKPK(:%New,Deliverer," = "," AND") */

:new.Ow_comp = Deliverer.Ow_comp;

IF (

/* %NOTNULLFK(:%New," IS NOT NULL AND") */

NUMROWS = 0

)

THEN raise_application_error(

-20002, "Cannot insert Delivery because Deliverer does not exist."

);

END IF;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TU_Delivery AFTER UPDATE ON Delivery for each row

- ERWIN Builtin Trigger

- UPDATE trigger on Delivery

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Good Delivery on child update restrict */

/* ERWIN_RELATION:CHECKSUM="0001d0a0", PARENT_OWNER="", PARENT_TABLE="Good"

CHILD_OWNER="", CHILD_TABLE="Delivery"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_3", FK_COLUMNS="ID_good" */

SELECT count(*) INTO NUMROWS

FROM Good

WHERE

/* %JOINFKPK(:%New,Good," = "," AND") */

:new.ID_good = Good.ID_good;

IF (

/* %NOTNULLFK(:%New," IS NOT NULL AND") */

NUMROWS = 0

)

THEN raise_application_error(

-20007, "Cannot update Delivery because Good does not exist."

);

END IF;

/* ERWIN Builtin Trigger */

/* Deliverer Delivery on child update restrict */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Deliverer"

CHILD_OWNER="", CHILD_TABLE="Delivery"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_6", FK_COLUMNS="Ow_comp" */

SELECT count(*) INTO NUMROWS

FROM Deliverer

WHERE

/* %JOINFKPK(:%New,Deliverer," = "," AND") */

:new.Ow_comp = Deliverer.Ow_comp;

IF (

/* %NOTNULLFK(:%New," IS NOT NULL AND") */

NUMROWS = 0

)

THEN raise_application_error(

-20007, "Cannot update Delivery because Deliverer does not exist."

);

END IF;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TI_Good BEFORE INSERT ON Good for each row

- ERWIN Builtin Trigger

- INSERT trigger on Good

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Warehouse Good on child insert restrict */

/* ERWIN_RELATION:CHECKSUM="0000ef47", PARENT_OWNER="", PARENT_TABLE="Warehouse"

CHILD_OWNER="", CHILD_TABLE="Good"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_2", FK_COLUMNS="ID_warehouse" */

SELECT count(*) INTO NUMROWS

FROM Warehouse

WHERE

/* %JOINFKPK(:%New,Warehouse," = "," AND") */

:new.ID_warehouse = Warehouse.ID_warehouse;

IF (

/* %NOTNULLFK(:%New," IS NOT NULL AND") */

NUMROWS = 0

)

THEN raise_application_error(

-20002, "Cannot insert Good because Warehouse does not exist."

);

END IF;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TD_Good AFTER DELETE ON Good for each row

- ERWIN Builtin Trigger

- DELETE trigger on Good

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Good Delivery on parent delete restrict */

/* ERWIN_RELATION:CHECKSUM="00056dc4", PARENT_OWNER="", PARENT_TABLE="Good"

CHILD_OWNER="", CHILD_TABLE="Delivery"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_3", FK_COLUMNS="ID_good" */

SELECT count(*) INTO NUMROWS

FROM Delivery

WHERE

/* %JOINFKPK(Delivery,:%Old," = "," AND") */

Delivery.ID_good = :old.ID_good;

IF (NUMROWS > 0)

THEN raise_application_error(

-20001, "Cannot delete Good because Delivery exists."

);

END IF;

/* ERWIN Builtin Trigger */

/* Good Ord on parent delete restrict */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Good"

CHILD_OWNER="", CHILD_TABLE="Ord"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_4", FK_COLUMNS="ID_good" */

SELECT count(*) INTO NUMROWS

FROM Ord

WHERE

/* %JOINFKPK(Ord,:%Old," = "," AND") */

Ord.ID_good = :old.ID_good;

IF (NUMROWS > 0)

THEN raise_application_error(

-20001, "Cannot delete Good because Ord exists."

);

END IF;

/* ERWIN Builtin Trigger */

/* Good TV_monit on parent delete cascade */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Товар"

CHILD_OWNER="", CHILD_TABLE="TV_monit"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="is_a", FK_COLUMNS="ID_good""Producer""Model""Price""Others" */

DELETE FROM TV_monit

WHERE

/* %JOINFKPK(TV_monit,:%Old," = "," AND") */

TV_monit.ID_good = :old.ID_good AND TV_monit.Price = :old.Price AND TV_monit.Producer = :old.Producer AND TV_monit.Model = :old.Model AND TV_monit.Others = :old.Others;

/* ERWIN Builtin Trigger */

/* Good Players on parent delete cascade */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Товар"

CHILD_OWNER="", CHILD_TABLE="Players"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="is_a", FK_COLUMNS="ID_good""Producer""Model""Price""Others" */

DELETE FROM Players

WHERE

/* %JOINFKPK(Players,:%Old," = "," AND") */

Players.ID_good = :old.ID_good AND Players.Price = :old.Price AND Players.Producer = :old.Producer AND Players.Model = :old.Model AND Players.Others = :old.Others;

/* ERWIN Builtin Trigger */

/* Good Camera on parent delete cascade */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Товар"

CHILD_OWNER="", CHILD_TABLE="Camera"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="is_a", FK_COLUMNS="ID_good""Producer""Model""Price""Others" */

DELETE FROM Camera

WHERE

/* %JOINFKPK(Camera,:%Old," = "," AND") */

Camera.ID_good = :old.ID_good AND Camera.Price = :old.Price AND Camera.Producer = :old.Producer AND Camera.Model = :old.Model AND Camera.Others = :old.Others;

/* ERWIN Builtin Trigger */

/* Good Proectors on parent delete cascade */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Товар"

CHILD_OWNER="", CHILD_TABLE="Proectors"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="is_a", FK_COLUMNS="ID_good""Producer""Model""Price""Others" */

DELETE FROM Proectors

WHERE

/* %JOINFKPK(Proectors,:%Old," = "," AND") */

Proectors.ID_good = :old.ID_good AND Proectors.Price = :old.Price AND Proectors.Producer = :old.Producer AND Proectors.Model = :old.Model AND Proectors.Others = :old.Others;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TU_Good AFTER UPDATE ON Good for each row

- ERWIN Builtin Trigger

- UPDATE trigger on Good

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Good Delivery on parent update restrict */

/* ERWIN_RELATION:CHECKSUM="0008c572", PARENT_OWNER="", PARENT_TABLE="Good"

CHILD_OWNER="", CHILD_TABLE="Delivery"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_3", FK_COLUMNS="ID_good" */

IF

/* %JOINPKPK(:%Old,:%New," "," OR ") */

:old.ID_good :new.ID_good

THEN

SELECT count(*) INTO NUMROWS

FROM Delivery

WHERE

/* %JOINFKPK(Delivery,:%Old," = "," AND") */

Delivery.ID_good = :old.ID_good;

IF (NUMROWS > 0)

THEN raise_application_error(

-20005, "Cannot update Good because Delivery exists."

);

END IF;

END IF;

/* ERWIN Builtin Trigger */

/* Good Ord on parent update restrict */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Good"

CHILD_OWNER="", CHILD_TABLE="Ord"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_4", FK_COLUMNS="ID_good" */

IF

/* %JOINPKPK(:%Old,:%New," "," OR ") */

:old.ID_good :new.ID_good

THEN

SELECT count(*) INTO NUMROWS

FROM Ord

WHERE

/* %JOINFKPK(Ord,:%Old," = "," AND") */

Ord.ID_good = :old.ID_good;

IF (NUMROWS > 0)

THEN raise_application_error(

-20005, "Cannot update Good because Ord exists."

);

END IF;

END IF;

/* ERWIN Builtin Trigger */

/* Good TV_monit on parent update cascade */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Товар"

CHILD_OWNER="", CHILD_TABLE="TV_monit"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="is_a", FK_COLUMNS="ID_good""Producer""Model""Price""Others" */

IF

/* %JOINPKPK(:%Old,:%New," "," OR ") */

:old.ID_good :new.ID_good

THEN

UPDATE TV_monit

SET

/* %JOINFKPK(TV_monit,:%New," = ",",") */

TV_monit.ID_good = :new.ID_good, TV_monit.Price = :new.Price, TV_monit.Producer = :new.Producer, TV_monit.Model = :new.Model, TV_monit.Others = :new.Others

WHERE

/* %JOINFKPK(TV_monit,:%Old," = "," AND") */

TV_monit.ID_good = :old.ID_good AND TV_monit.Price = :old.Price AND TV_monit.Producer = :old.Producer AND TV_monit.Model = :old.Model AND TV_monit.Others = :old.Others;

END IF;

/* ERWIN Builtin Trigger */

/* Good Players on parent update cascade */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Товар"

CHILD_OWNER="", CHILD_TABLE="Players"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="is_a", FK_COLUMNS="ID_good""Producer""Model""Price""Others" */

IF

/* %JOINPKPK(:%Old,:%New," "," OR ") */

:old.ID_good :new.ID_good

THEN

UPDATE Players

SET

/* %JOINFKPK(Players,:%New," = ",",") */

Players.ID_good = :new.ID_good, Players.Price = :new.Price, Players.Producer = :new.Producer, Players.Model = :new.Model, Players.Others = :new.Others

WHERE

/* %JOINFKPK(Players,:%Old," = "," AND") */

Players.ID_good = :old.ID_good AND Players.Price = :old.Price AND Players.Producer = :old.Producer AND Players.Model = :old.Model AND Players.Others = :old.Others;

END IF;

/* ERWIN Builtin Trigger */

/* Good Camera on parent update cascade */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Товар"

CHILD_OWNER="", CHILD_TABLE="Camera"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="is_a", FK_COLUMNS="ID_good""Producer""Model""Price""Others" */

IF

/* %JOINPKPK(:%Old,:%New," "," OR ") */

:old.ID_good :new.ID_good

THEN

UPDATE Camera

SET

/* %JOINFKPK(Camera,:%New," = ",",") */

Camera.ID_good = :new.ID_good, Camera.Price = :new.Price, Camera.Producer = :new.Producer, Camera.Model = :new.Model, Camera.Others = :new.Others

WHERE

/* %JOINFKPK(Camera,:%Old," = "," AND") */

Camera.ID_good = :old.ID_good AND Camera.Price = :old.Price AND Camera.Producer = :old.Producer AND Camera.Model = :old.Model AND Camera.Others = :old.Others;

END IF;

/* ERWIN Builtin Trigger */

/* Good Proectors on parent update cascade */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Товар"

CHILD_OWNER="", CHILD_TABLE="Proectors"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="is_a", FK_COLUMNS="ID_good""Producer""Model""Price""Others" */

IF

/* %JOINPKPK(:%Old,:%New," "," OR ") */

:old.ID_good :new.ID_good

THEN

UPDATE Proectors

SET

/* %JOINFKPK(Proectors,:%New," = ",",") */

Proectors.ID_good = :new.ID_good, Proectors.Price = :new.Price, Proectors.Producer = :new.Producer, Proectors.Model = :new.Model, Proectors.Others = :new.Others

WHERE

/* %JOINFKPK(Proectors,:%Old," = "," AND") */

Proectors.ID_good = :old.ID_good AND Proectors.Price = :old.Price AND Proectors.Producer = :old.Producer AND Proectors.Model = :old.Model AND Proectors.Others = :old.Others;

END IF;

/* ERWIN Builtin Trigger */

/* Warehouse Good on child update restrict */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Warehouse"

CHILD_OWNER="", CHILD_TABLE="Good"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_2", FK_COLUMNS="ID_warehouse" */

SELECT count(*) INTO NUMROWS

FROM Warehouse

WHERE

/* %JOINFKPK(:%New,Warehouse," = "," AND") */

:new.ID_warehouse = Warehouse.ID_warehouse;

IF (

/* %NOTNULLFK(:%New," IS NOT NULL AND") */

NUMROWS = 0

)

THEN raise_application_error(

-20007, "Cannot update Good because Warehouse does not exist."

);

END IF;

- ERWIN Builtin Trigger

END;

CREATE TRIGGER TD_Internet_store AFTER DELETE ON Internet_store for each row

- ERWIN Builtin Trigger

- DELETE trigger on Internet_store

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Internet_store Warehouse on parent delete restrict */

/* ERWIN_RELATION:CHECKSUM="0000d752", PARENT_OWNER="", PARENT_TABLE="Internet_store"

CHILD_OWNER="", CHILD_TABLE="Warehouse"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_1", FK_COLUMNS="ID_store" */

SELECT count(*) INTO NUMROWS

FROM Warehouse

WHERE

/* %JOINFKPK(Warehouse,:%Old," = "," AND") */

Warehouse.ID_store = :old.ID_store;

IF (NUMROWS > 0)

THEN raise_application_error(

-20001, "Cannot delete Internet_store because Warehouse exists."

);

END IF;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TU_Internet_store AFTER UPDATE ON Internet_store for each row

- ERWIN Builtin Trigger

- UPDATE trigger on Internet_store

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Internet_store Warehouse on parent update restrict */

/* ERWIN_RELATION:CHECKSUM="0001039e", PARENT_OWNER="", PARENT_TABLE="Internet_store"

CHILD_OWNER="", CHILD_TABLE="Warehouse"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_1", FK_COLUMNS="ID_store" */

IF

/* %JOINPKPK(:%Old,:%New," "," OR ") */

:old.ID_store :new.ID_store

THEN

SELECT count(*) INTO NUMROWS

FROM Warehouse

WHERE

/* %JOINFKPK(Warehouse,:%Old," = "," AND") */

Warehouse.ID_store = :old.ID_store;

IF (NUMROWS > 0)

THEN raise_application_error(

-20005, "Cannot update Internet_store because Warehouse exists."

);

END IF;

END IF;

- ERWIN Builtin Trigger

END;

CREATE TRIGGER TI_Ord BEFORE INSERT ON Ord for each row

- ERWIN Builtin Trigger

- INSERT trigger on Ord

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Good Ord on child insert restrict */

/* ERWIN_RELATION:CHECKSUM="0001cbab", PARENT_OWNER="", PARENT_TABLE="Good"

CHILD_OWNER="", CHILD_TABLE="Ord"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_4", FK_COLUMNS="ID_good" */

SELECT count(*) INTO NUMROWS

FROM Good

WHERE

/* %JOINFKPK(:%New,Good," = "," AND") */

:new.ID_good = Good.ID_good;

IF (

/* %NOTNULLFK(:%New," IS NOT NULL AND") */

NUMROWS = 0

)

THEN raise_application_error(

-20002, "Cannot insert Ord because Good does not exist."

);

END IF;

/* ERWIN Builtin Trigger */

/* Orderer Ord on child insert restrict */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Orderer"

CHILD_OWNER="", CHILD_TABLE="Ord"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_5", FK_COLUMNS="N_S_ord" */

SELECT count(*) INTO NUMROWS

FROM Orderer

WHERE

/* %JOINFKPK(:%New,Orderer," = "," AND") */

:new.N_S_ord = Orderer.N_S_ord;

IF (

/* %NOTNULLFK(:%New," IS NOT NULL AND") */

NUMROWS = 0

)

THEN raise_application_error(

-20002, "Cannot insert Ord because Orderer does not exist."

);

END IF;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TD_Ord AFTER DELETE ON Ord for each row

- ERWIN Builtin Trigger

- DELETE trigger on Ord

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Ord Ord_del on parent delete restrict */

/* ERWIN_RELATION:CHECKSUM="00010cd1", PARENT_OWNER="", PARENT_TABLE="Ord"

CHILD_OWNER="", CHILD_TABLE="Ord_del"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_7", FK_COLUMNS="ID_ordering""Summ""N_S_ord""Delivery" */

SELECT count(*) INTO NUMROWS

FROM Ord_del

WHERE

/* %JOINFKPK(Ord_del,:%Old," = "," AND") */

Ord_del.ID_ordering = :old.ID_ordering AND Ord_del.Summ = :old.Summ AND Ord_del.N_S_ord = :old.N_S_ord AND Ord_del.Delivery = :old.Delivery;

IF (NUMROWS > 0)

THEN raise_application_error(

-20001, "Cannot delete Ord because Ord_del exists."

);

END IF;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TU_Ord AFTER UPDATE ON Ord for each row

- ERWIN Builtin Trigger

- UPDATE trigger on Ord

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Ord Ord_del on parent update restrict */

/* ERWIN_RELATION:CHECKSUM="00030f78", PARENT_OWNER="", PARENT_TABLE="Ord"

CHILD_OWNER="", CHILD_TABLE="Ord_del"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_7", FK_COLUMNS="ID_ordering""Summ""N_S_ord""Delivery" */

IF

/* %JOINPKPK(:%Old,:%New," "," OR ") */

:old.ID_ordering :new.ID_ordering

THEN

SELECT count(*) INTO NUMROWS

FROM Ord_del

WHERE

/* %JOINFKPK(Ord_del,:%Old," = "," AND") */

Ord_del.ID_ordering = :old.ID_ordering AND Ord_del.Summ = :old.Summ AND Ord_del.N_S_ord = :old.N_S_ord AND Ord_del.Delivery = :old.Delivery;

IF (NUMROWS > 0)

THEN raise_application_error(

-20005, "Cannot update Ord because Ord_del exists."

);

END IF;

END IF;

/* ERWIN Builtin Trigger */

/* Good Ord on child update restrict */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Good"

CHILD_OWNER="", CHILD_TABLE="Ord"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_4", FK_COLUMNS="ID_good" */

SELECT count(*) INTO NUMROWS

FROM Good

WHERE

/* %JOINFKPK(:%New,Good," = "," AND") */

:new.ID_good = Good.ID_good;

IF (

/* %NOTNULLFK(:%New," IS NOT NULL AND") */

NUMROWS = 0

)

THEN raise_application_error(

-20007, "Cannot update Ord because Good does not exist."

);

END IF;

/* ERWIN Builtin Trigger */

/* Orderer Ord on child update restrict */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Orderer"

CHILD_OWNER="", CHILD_TABLE="Ord"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_5", FK_COLUMNS="N_S_ord" */

SELECT count(*) INTO NUMROWS

FROM Orderer

WHERE

/* %JOINFKPK(:%New,Orderer," = "," AND") */

:new.N_S_ord = Orderer.N_S_ord;

IF (

/* %NOTNULLFK(:%New," IS NOT NULL AND") */

NUMROWS = 0

)

THEN raise_application_error(

-20007, "Cannot update Ord because Orderer does not exist."

);

END IF;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TI_Ord_del BEFORE INSERT ON Ord_del for each row

- ERWIN Builtin Trigger

- INSERT trigger on Ord_del

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Ord Ord_del on child insert restrict */

/* ERWIN_RELATION:CHECKSUM="000246d2", PARENT_OWNER="", PARENT_TABLE="Ord"

CHILD_OWNER="", CHILD_TABLE="Ord_del"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_7", FK_COLUMNS="ID_ordering""Summ""N_S_ord""Delivery" */

SELECT count(*) INTO NUMROWS

FROM Ord

WHERE

/* %JOINFKPK(:%New,Ord," = "," AND") */

:new.ID_ordering = Ord.ID_ordering AND :new.Summ = Ord.Summ AND :new.N_S_ord = Ord.N_S_ord AND :new.Delivery = Ord.Delivery;

IF (

/* %NOTNULLFK(:%New," IS NOT NULL AND") */

NUMROWS = 0

)

THEN raise_application_error(

-20002, "Cannot insert Ord_del because Ord does not exist."

);

END IF;

/* ERWIN Builtin Trigger */

/* Courier Ord_del on child insert restrict */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Courier"

CHILD_OWNER="", CHILD_TABLE="Ord_del"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_8", FK_COLUMNS="N_S_cour""Phone_cour""ID_courier" */

SELECT count(*) INTO NUMROWS

FROM Courier

WHERE

/* %JOINFKPK(:%New,Courier," = "," AND") */

:new.ID_courier = Courier.ID_courier AND :new.N_S_cour = Courier.N_S_cour AND :new.Phone_cour = Courier.Phone_cour;

IF (

/* %NOTNULLFK(:%New," IS NOT NULL AND") */

NUMROWS = 0

)

THEN raise_application_error(

-20002, "Cannot insert Ord_del because Courier does not exist."

);

END IF;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TU_Ord_del AFTER UPDATE ON Ord_del for each row

- ERWIN Builtin Trigger

- UPDATE trigger on Ord_del

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Ord Ord_del on child update restrict */

/* ERWIN_RELATION:CHECKSUM="000239d1", PARENT_OWNER="", PARENT_TABLE="Ord"

CHILD_OWNER="", CHILD_TABLE="Ord_del"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_7", FK_COLUMNS="ID_ordering""Summ""N_S_ord""Delivery" */

SELECT count(*) INTO NUMROWS

FROM Ord

WHERE

/* %JOINFKPK(:%New,Ord," = "," AND") */

:new.ID_ordering = Ord.ID_ordering AND :new.Summ = Ord.Summ AND :new.N_S_ord = Ord.N_S_ord AND :new.Delivery = Ord.Delivery;

IF (

/* %NOTNULLFK(:%New," IS NOT NULL AND") */

NUMROWS = 0

)

THEN raise_application_error(

-20007, "Cannot update Ord_del because Ord does not exist."

);

END IF;

/* ERWIN Builtin Trigger */

/* Courier Ord_del on child update restrict */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Courier"

CHILD_OWNER="", CHILD_TABLE="Ord_del"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_8", FK_COLUMNS="N_S_cour""Phone_cour""ID_courier" */

SELECT count(*) INTO NUMROWS

FROM Courier

WHERE

/* %JOINFKPK(:%New,Courier," = "," AND") */

:new.ID_courier = Courier.ID_courier AND :new.N_S_cour = Courier.N_S_cour AND :new.Phone_cour = Courier.Phone_cour;

IF (

/* %NOTNULLFK(:%New," IS NOT NULL AND") */

NUMROWS = 0

)

THEN raise_application_error(

-20007, "Cannot update Ord_del because Courier does not exist."

);

END IF;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TD_Orderer AFTER DELETE ON Orderer for each row

- ERWIN Builtin Trigger

- DELETE trigger on Orderer

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Orderer Ord on parent delete restrict */

/* ERWIN_RELATION:CHECKSUM="0000c238", PARENT_OWNER="", PARENT_TABLE="Orderer"

CHILD_OWNER="", CHILD_TABLE="Ord"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_5", FK_COLUMNS="N_S_ord" */

SELECT count(*) INTO NUMROWS

FROM Ord

WHERE

/* %JOINFKPK(Ord,:%Old," = "," AND") */

Ord.N_S_ord = :old.N_S_ord;

IF (NUMROWS > 0)

THEN raise_application_error(

-20001, "Cannot delete Orderer because Ord exists."

);

END IF;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TU_Orderer AFTER UPDATE ON Orderer for each row

- ERWIN Builtin Trigger

- UPDATE trigger on Orderer

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Orderer Ord on parent update restrict */

/* ERWIN_RELATION:CHECKSUM="0000ebc7", PARENT_OWNER="", PARENT_TABLE="Orderer"

CHILD_OWNER="", CHILD_TABLE="Ord"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_5", FK_COLUMNS="N_S_ord" */

IF

/* %JOINPKPK(:%Old,:%New," "," OR ") */

:old.N_S_ord :new.N_S_ord

THEN

SELECT count(*) INTO NUMROWS

FROM Ord

WHERE

/* %JOINFKPK(Ord,:%Old," = "," AND") */

Ord.N_S_ord = :old.N_S_ord;

IF (NUMROWS > 0)

THEN raise_application_error(

-20005, "Cannot update Orderer because Ord exists."

);

END IF;

END IF;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TI_Players BEFORE INSERT ON Players for each row

- ERWIN Builtin Trigger

- INSERT trigger on Players

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Good Players on child insert restrict */

/* ERWIN_RELATION:CHECKSUM="0001219d", PARENT_OWNER="", PARENT_TABLE="Товар"

CHILD_OWNER="", CHILD_TABLE="Players"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="is_a", FK_COLUMNS="ID_good""Producer""Model""Price""Others" */

SELECT count(*) INTO NUMROWS

FROM Good

WHERE

/* %JOINFKPK(:%New,Good," = "," AND") */

:new.ID_good = Good.ID_good AND :new.Price = Good.Price AND :new.Producer = Good.Producer AND :new.Model = Good.Model AND :new.Others = Good.Others;

IF (

/* %NOTNULLFK(:%New," IS NOT NULL AND") */

NUMROWS = 0

)

THEN raise_application_error(

-20002, "Cannot insert Players because Good does not exist."

);

END IF;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TU_Players AFTER UPDATE ON Players for each row

- ERWIN Builtin Trigger

- UPDATE trigger on Players

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Good Players on child update restrict */

/* ERWIN_RELATION:CHECKSUM="0001232a", PARENT_OWNER="", PARENT_TABLE="Товар"

CHILD_OWNER="", CHILD_TABLE="Players"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="is_a", FK_COLUMNS="ID_good""Producer""Model""Price""Others" */

SELECT count(*) INTO NUMROWS

FROM Good

WHERE

/* %JOINFKPK(:%New,Good," = "," AND") */

:new.ID_good = Good.ID_good AND :new.Price = Good.Price AND :new.Producer = Good.Producer AND :new.Model = Good.Model AND :new.Others = Good.Others;

IF (

/* %NOTNULLFK(:%New," IS NOT NULL AND") */

NUMROWS = 0

)

THEN raise_application_error(

-20007, "Cannot update Players because Good does not exist."

);

END IF;

- ERWIN Builtin Trigger

END;

CREATE TRIGGER TI_Proectors BEFORE INSERT ON Proectors for each row

- ERWIN Builtin Trigger

- INSERT trigger on Proectors

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Good Proectors on child insert restrict */

/* ERWIN_RELATION:CHECKSUM="00011a67", PARENT_OWNER="", PARENT_TABLE="Товар"

CHILD_OWNER="", CHILD_TABLE="Proectors"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="is_a", FK_COLUMNS="ID_good""Producer""Model""Price""Others" */

SELECT count(*) INTO NUMROWS

FROM Good

WHERE

/* %JOINFKPK(:%New,Good," = "," AND") */

:new.ID_good = Good.ID_good AND :new.Price = Good.Price AND :new.Producer = Good.Producer AND :new.Model = Good.Model AND :new.Others = Good.Others;

IF (

/* %NOTNULLFK(:%New," IS NOT NULL AND") */

NUMROWS = 0

)

THEN raise_application_error(

-20002, "Cannot insert Proectors because Good does not exist."

);

END IF;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TU_Proectors AFTER UPDATE ON Proectors for each row

- ERWIN Builtin Trigger

- UPDATE trigger on Proectors

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Good Proectors on child update restrict */

/* ERWIN_RELATION:CHECKSUM="00011d9b", PARENT_OWNER="", PARENT_TABLE="Товар"

CHILD_OWNER="", CHILD_TABLE="Proectors"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="is_a", FK_COLUMNS="ID_good""Producer""Model""Price""Others" */

SELECT count(*) INTO NUMROWS

FROM Good

WHERE

/* %JOINFKPK(:%New,Good," = "," AND") */

:new.ID_good = Good.ID_good AND :new.Price = Good.Price AND :new.Producer = Good.Producer AND :new.Model = Good.Model AND :new.Others = Good.Others;

IF (

/* %NOTNULLFK(:%New," IS NOT NULL AND") */

NUMROWS = 0

)

THEN raise_application_error(

-20007, "Cannot update Proectors because Good does not exist."

);

END IF;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TI_TV_monit BEFORE INSERT ON TV_monit for each row

- ERWIN Builtin Trigger

- INSERT trigger on TV_monit

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Good TV_monit on child insert restrict */

/* ERWIN_RELATION:CHECKSUM="00012519", PARENT_OWNER="", PARENT_TABLE="Товар"

CHILD_OWNER="", CHILD_TABLE="TV_monit"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="is_a", FK_COLUMNS="ID_good""Producer""Model""Price""Others" */

SELECT count(*) INTO NUMROWS

FROM Good

WHERE

/* %JOINFKPK(:%New,Good," = "," AND") */

:new.ID_good = Good.ID_good AND :new.Price = Good.Price AND :new.Producer = Good.Producer AND :new.Model = Good.Model AND :new.Others = Good.Others;

IF (

/* %NOTNULLFK(:%New," IS NOT NULL AND") */

NUMROWS = 0

)

THEN raise_application_error(

-20002, "Cannot insert TV_monit because Good does not exist."

);

END IF;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TU_TV_monit AFTER UPDATE ON TV_monit for each row

- ERWIN Builtin Trigger

- UPDATE trigger on TV_monit

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Good TV_monit on child update restrict */

/* ERWIN_RELATION:CHECKSUM="00012c81", PARENT_OWNER="", PARENT_TABLE="Товар"

CHILD_OWNER="", CHILD_TABLE="TV_monit"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="is_a", FK_COLUMNS="ID_good""Producer""Model""Price""Others" */

SELECT count(*) INTO NUMROWS

FROM Good

WHERE

/* %JOINFKPK(:%New,Good," = "," AND") */

:new.ID_good = Good.ID_good AND :new.Price = Good.Price AND :new.Producer = Good.Producer AND :new.Model = Good.Model AND :new.Others = Good.Others;

IF (

/* %NOTNULLFK(:%New," IS NOT NULL AND") */

NUMROWS = 0

)

THEN raise_application_error(

-20007, "Cannot update TV_monit because Good does not exist."

);

END IF;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TI_Warehouse BEFORE INSERT ON Warehouse for each row

- ERWIN Builtin Trigger

- INSERT trigger on Warehouse

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Internet_store Warehouse on child insert restrict */

/* ERWIN_RELATION:CHECKSUM="0000f534", PARENT_OWNER="", PARENT_TABLE="Internet_store"

CHILD_OWNER="", CHILD_TABLE="Warehouse"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_1", FK_COLUMNS="ID_store" */

SELECT count(*) INTO NUMROWS

FROM Internet_store

WHERE

/* %JOINFKPK(:%New,Internet_store," = "," AND") */

:new.ID_store = Internet_store.ID_store;

IF (

/* %NOTNULLFK(:%New," IS NOT NULL AND") */

NUMROWS = 0

)

THEN raise_application_error(

-20002, "Cannot insert Warehouse because Internet_store does not exist."

);

END IF;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TD_Warehouse AFTER DELETE ON Warehouse for each row

- ERWIN Builtin Trigger

- DELETE trigger on Warehouse

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Warehouse Good on parent delete restrict */

/* ERWIN_RELATION:CHECKSUM="0000ca01", PARENT_OWNER="", PARENT_TABLE="Warehouse"

CHILD_OWNER="", CHILD_TABLE="Good"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_2", FK_COLUMNS="ID_warehouse" */

SELECT count(*) INTO NUMROWS

FROM Good

WHERE

/* %JOINFKPK(Good,:%Old," = "," AND") */

Good.ID_warehouse = :old.ID_warehouse;

IF (NUMROWS > 0)

THEN raise_application_error(

-20001, "Cannot delete Warehouse because Good exists."

);

END IF;

- ERWIN Builtin Trigger

END;

/

CREATE TRIGGER TU_Warehouse AFTER UPDATE ON Warehouse for each row

- ERWIN Builtin Trigger

- UPDATE trigger on Warehouse

DECLARE NUMROWS INTEGER;

BEGIN

/* ERWIN Builtin Trigger */

/* Warehouse Good on parent update restrict */

/* ERWIN_RELATION:CHECKSUM="00020a7b", PARENT_OWNER="", PARENT_TABLE="Warehouse"

CHILD_OWNER="", CHILD_TABLE="Good"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_2", FK_COLUMNS="ID_warehouse" */

IF

/* %JOINPKPK(:%Old,:%New," "," OR ") */

:old.ID_warehouse :new.ID_warehouse

THEN

SELECT count(*) INTO NUMROWS

FROM Good

WHERE

/* %JOINFKPK(Good,:%Old," = "," AND") */

Good.ID_warehouse = :old.ID_warehouse;

IF (NUMROWS > 0)

THEN raise_application_error(

-20005, "Cannot update Warehouse because Good exists."

);

END IF;

END IF;

/* ERWIN Builtin Trigger */

/* Internet_store Warehouse on child update restrict */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Internet_store"

CHILD_OWNER="", CHILD_TABLE="Warehouse"

P2C_VERB_PHRASE="", C2P_VERB_PHRASE="", FK_CONSTRAINT="R_1", FK_COLUMNS="ID_store" */

SELECT count(*) INTO NUMROWS

FROM Internet_store

WHERE

/* %JOINFKPK(:%New,Internet_store," = "," AND") */

:new.ID_store = Internet_store.ID_store;

IF (

/* %NOTNULLFK(:%New," IS NOT NULL AND") */

NUMROWS = 0

)

THEN raise_application_error(

-20007, "Cannot update Warehouse because Internet_store does not exist."

);

END IF;

- ERWIN Builtin Trigger

END;

Размещено на .ru

Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность
своей работы


Новые загруженные работы

Дисциплины научных работ





Хотите, перезвоним вам?