Розробка бази даних та застосування для Інтернет-магазину комп'ютерної техніки
Основні підходи до проектування баз даних. Опис сайту Інтернет-магазину, характеристика його підсистем для обробки анкет і запитів користувачів. Розробка концептуальної, інфологічної, даталогічної, фізичної моделей даних. Побудова ER-моделі в CASE-засоби.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 01.02.2013 |
Размер файла | 2,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Firm.name = :old.Name AND
Firm.familia = :old.Familia AND
Firm.kod_firm = :old.kod_firn;
IF (NUMROWS > 0)
THEN
raise_application_error(
-20001,
'Cannot delete Koristyvach because Firm exists.'
);
END IF;
-- ERwin Builtin Trigger
END;
/
CREATE TRIGGER tU_Koristyvach AFTER UPDATE ON Koristyvach for each row
-- ERwin Builtin Trigger
-- UPDATE trigger on Koristyvach
DECLARE NUMROWS INTEGER;
BEGIN
/* ERwin Builtin Trigger */
/* Koristyvach Firm on parent update restrict */
/* ERWIN_RELATION:CHECKSUM="00023bc0", PARENT_OWNER="", PARENT_TABLE="Koristyvach"
CHILD_OWNER="", CHILD_TABLE="Firm"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_5", FK_COLUMNS="name""familia""kod_firm" */
IF
/*%JoinPKPK(:%Old,:%New," <> "," OR ") */
:old.Name <> :new.Name OR
:old.Familia <> :new.Familia OR
:old.kod_firn <> :new.kod_firn
THEN
SELECT count(*) INTO NUMROWS
FROM Firm
WHERE
/*%JoinFKPK(Firm,:%Old," = "," AND") */
Firm.name = :old.Name AND
Firm.familia = :old.Familia AND
Firm.kod_firm = :old.kod_firn;
IF (NUMROWS > 0)
THEN
raise_application_error(
-20005,
'Cannot update Koristyvach because Firm exists.'
);
END IF;
END IF;
/* ERwin Builtin Trigger */
/* Korzina Koristyvach on child update restrict */
/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Korzina"
CHILD_OWNER="", CHILD_TABLE="Koristyvach"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_4", FK_COLUMNS="kod_firn" */
SELECT count(*) INTO NUMROWS
FROM Korzina
WHERE
/*%JoinFKPK(:%New,Korzina," = "," AND") */
:new.kod_firn = Korzina.kod_firm;
IF (
/*%NotnullFK(:%New," IS NOT NULL AND") */
NUMROWS = 0
)
THEN
raise_application_error(
-20007,
'Cannot update Koristyvach because Korzina does not exist.'
);
END IF;
-- ERwin Builtin Trigger
END;
/
CREATE TRIGGER tD_Korzina AFTER DELETE ON Korzina for each row
-- ERwin Builtin Trigger
-- DELETE trigger on Korzina
DECLARE NUMROWS INTEGER;
BEGIN
/* ERwin Builtin Trigger */
/* Korzina Koristyvach on parent delete restrict */
/* ERWIN_RELATION:CHECKSUM="0000d7be", PARENT_OWNER="", PARENT_TABLE="Korzina"
CHILD_OWNER="", CHILD_TABLE="Koristyvach"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_4", FK_COLUMNS="kod_firn" */
SELECT count(*) INTO NUMROWS
FROM Koristyvach
WHERE
/*%JoinFKPK(Koristyvach,:%Old," = "," AND") */
Koristyvach.kod_firn = :old.kod_firm;
IF (NUMROWS > 0)
THEN
raise_application_error(
-20001,
'Cannot delete Korzina because Koristyvach exists.'
);
END IF;
-- ERwin Builtin Trigger
END;
/
CREATE TRIGGER tU_Korzina AFTER UPDATE ON Korzina for each row
-- ERwin Builtin Trigger
-- UPDATE trigger on Korzina
DECLARE NUMROWS INTEGER;
BEGIN
/* ERwin Builtin Trigger */
/* Korzina Koristyvach on parent update restrict */
/* ERWIN_RELATION:CHECKSUM="0001065b", PARENT_OWNER="", PARENT_TABLE="Korzina"
CHILD_OWNER="", CHILD_TABLE="Koristyvach"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_4", FK_COLUMNS="kod_firn" */
IF
/*%JoinPKPK(:%Old,:%New," <> "," OR ") */
:old.kod_firm <> :new.kod_firm
THEN
SELECT count(*) INTO NUMROWS
FROM Koristyvach
WHERE
/*%JoinFKPK(Koristyvach,:%Old," = "," AND") */
Koristyvach.kod_firn = :old.kod_firm;
IF (NUMROWS > 0)
THEN
raise_application_error(
-20005,
'Cannot update Korzina because Koristyvach exists.'
);
END IF;
END IF;
-- ERwin Builtin Trigger
END;
/
CREATE TRIGGER tI_Models BEFORE INSERT ON Models for each row
-- ERwin Builtin Trigger
-- INSERT trigger on Models
DECLARE NUMROWS INTEGER;
BEGIN
/* ERwin Builtin Trigger */
/* Komplektuechi Models on child insert restrict */
/* ERWIN_RELATION:CHECKSUM="00015c81", PARENT_OWNER="", PARENT_TABLE="Komplektuechi"
CHILD_OWNER="", CHILD_TABLE="Models"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_2", FK_COLUMNS="kod_firm""kod_modely""kod_komplektuechgo""kod_obladnya" */
SELECT count(*) INTO NUMROWS
FROM Komplektuechi
WHERE
/*%JoinFKPK(:%New,Komplektuechi," = "," AND") */
:new.kod_firm = Komplektuechi.kod_firm AND
:new.kod_modely = Komplektuechi.kod_models AND
:new.kod_komplektuechgo = Komplektuechi.kod_komplektuechego AND
:new.kod_obladnya = Komplektuechi.kod_obladnenya;
IF (
/*%NotnullFK(:%New," IS NOT NULL AND") */
NUMROWS = 0
)
THEN
raise_application_error(
-20002,
'Cannot insert Models because Komplektuechi does not exist.'
);
END IF;
-- ERwin Builtin Trigger
END;
/
CREATE TRIGGER tD_Models AFTER DELETE ON Models for each row
-- ERwin Builtin Trigger
-- DELETE trigger on Models
DECLARE NUMROWS INTEGER;
BEGIN
/* ERwin Builtin Trigger */
/* Models Firm on parent delete restrict */
/* ERWIN_RELATION:CHECKSUM="00012069", PARENT_OWNER="", PARENT_TABLE="Models"
CHILD_OWNER="", CHILD_TABLE="Firm"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_1", FK_COLUMNS="kod_modeli""kod_firm""kod_komplektuechego""kod_obladnya" */
SELECT count(*) INTO NUMROWS
FROM Firm
WHERE
/*%JoinFKPK(Firm,:%Old," = "," AND") */
Firm.kod_modeli = :old.kod_modely AND
Firm.kod_firm = :old.kod_firm AND
Firm.kod_komplektuechego = :old.kod_komplektuechgo AND
Firm.kod_obladnya = :old.kod_obladnya;
IF (NUMROWS > 0)
THEN
raise_application_error(
-20001,
'Cannot delete Models because Firm exists.'
);
END IF;
-- ERwin Builtin Trigger
END;
/
CREATE TRIGGER tU_Models AFTER UPDATE ON Models for each row
-- ERwin Builtin Trigger
-- UPDATE trigger on Models
DECLARE NUMROWS INTEGER;
BEGIN
/* ERwin Builtin Trigger */
/* Models Firm on parent update restrict */
/* ERWIN_RELATION:CHECKSUM="0002e12e", PARENT_OWNER="", PARENT_TABLE="Models"
CHILD_OWNER="", CHILD_TABLE="Firm"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_1", FK_COLUMNS="kod_modeli""kod_firm""kod_komplektuechego""kod_obladnya" */
IF
/*%JoinPKPK(:%Old,:%New," <> "," OR ") */
:old.kod_modely <> :new.kod_modely OR
:old.kod_firm <> :new.kod_firm OR
:old.kod_komplektuechgo <> :new.kod_komplektuechgo OR
:old.kod_obladnya <> :new.kod_obladnya
THEN
SELECT count(*) INTO NUMROWS
FROM Firm
WHERE
/*%JoinFKPK(Firm,:%Old," = "," AND") */
Firm.kod_modeli = :old.kod_modely AND
Firm.kod_firm = :old.kod_firm AND
Firm.kod_komplektuechego = :old.kod_komplektuechgo AND
Firm.kod_obladnya = :old.kod_obladnya;
IF (NUMROWS > 0)
THEN
raise_application_error(
-20005,
'Cannot update Models because Firm exists.'
);
END IF;
END IF;
/* ERwin Builtin Trigger */
/* Komplektuechi Models on child update restrict */
/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Komplektuechi"
CHILD_OWNER="", CHILD_TABLE="Models"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_2", FK_COLUMNS="kod_firm""kod_modely""kod_komplektuechgo""kod_obladnya" */
SELECT count(*) INTO NUMROWS
FROM Komplektuechi
WHERE
/*%JoinFKPK(:%New,Komplektuechi," = "," AND") */
:new.kod_firm = Komplektuechi.kod_firm AND
:new.kod_modely = Komplektuechi.kod_models AND
:new.kod_komplektuechgo = Komplektuechi.kod_komplektuechego AND
:new.kod_obladnya = Komplektuechi.kod_obladnenya;
IF (
/*%NotnullFK(:%New," IS NOT NULL AND") */
NUMROWS = 0
)
THEN
raise_application_error(
-20007,
'Cannot update Models because Komplektuechi does not exist.'
);
END IF;
-- ERwin Builtin Trigger
END;
/
CREATE TRIGGER tD_News AFTER DELETE ON News for each row
-- ERwin Builtin Trigger
-- DELETE trigger on News
DECLARE NUMROWS INTEGER;
BEGIN
/* ERwin Builtin Trigger */
/* News Shogi_tovary on parent delete restrict */
/* ERWIN_RELATION:CHECKSUM="0000f5bf", PARENT_OWNER="", PARENT_TABLE="News"
CHILD_OWNER="", CHILD_TABLE="Shogi_tovary"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_6", FK_COLUMNS="Name_Firm""Name_models" */
SELECT count(*) INTO NUMROWS
FROM Shogi_tovary
WHERE
/*%JoinFKPK(Shogi_tovary,:%Old," = "," AND") */
Shogi_tovary.Name_Firm = :old.Name_firm AND
Shogi_tovary.Name_models = :old.Name_models;
IF (NUMROWS > 0)
THEN
raise_application_error(
-20001,
'Cannot delete News because Shogi_tovary exists.'
);
END IF;
-- ERwin Builtin Trigger
END;
/
CREATE TRIGGER tU_News AFTER UPDATE ON News for each row
-- ERwin Builtin Trigger
-- UPDATE trigger on News
DECLARE NUMROWS INTEGER;
BEGIN
/* ERwin Builtin Trigger */
/* News Shogi_tovary on parent update restrict */
/* ERWIN_RELATION:CHECKSUM="00012959", PARENT_OWNER="", PARENT_TABLE="News"
CHILD_OWNER="", CHILD_TABLE="Shogi_tovary"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_6", FK_COLUMNS="Name_Firm""Name_models" */
IF
/*%JoinPKPK(:%Old,:%New," <> "," OR ") */
:old.Name_firm <> :new.Name_firm OR
:old.Name_models <> :new.Name_models
THEN
SELECT count(*) INTO NUMROWS
FROM Shogi_tovary
WHERE
/*%JoinFKPK(Shogi_tovary,:%Old," = "," AND") */
Shogi_tovary.Name_Firm = :old.Name_firm AND
Shogi_tovary.Name_models = :old.Name_models;
IF (NUMROWS > 0)
THEN
raise_application_error(
-20005,
'Cannot update News because Shogi_tovary exists.'
);
END IF;
END IF;
-- ERwin Builtin Trigger
END;
/
CREATE TRIGGER tD_Obladnenya AFTER DELETE ON Obladnenya for each row
-- ERwin Builtin Trigger
-- DELETE trigger on Obladnenya
DECLARE NUMROWS INTEGER;
BEGIN
/* ERwin Builtin Trigger */
/* Obladnenya Komplektuechi on parent delete restrict */
/* ERWIN_RELATION:CHECKSUM="0000f377", PARENT_OWNER="", PARENT_TABLE="Obladnenya"
CHILD_OWNER="", CHILD_TABLE="Komplektuechi"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_3", FK_COLUMNS="kod_obladnenya" */
SELECT count(*) INTO NUMROWS
FROM Komplektuechi
WHERE
/*%JoinFKPK(Komplektuechi,:%Old," = "," AND") */
Komplektuechi.kod_obladnenya = :old.kod_obladnenya;
IF (NUMROWS > 0)
THEN
raise_application_error(
-20001,
'Cannot delete Obladnenya because Komplektuechi exists.'
);
END IF;
-- ERwin Builtin Trigger
END;
/
CREATE TRIGGER tU_Obladnenya AFTER UPDATE ON Obladnenya for each row
-- ERwin Builtin Trigger
-- UPDATE trigger on Obladnenya
DECLARE NUMROWS INTEGER;
BEGIN
/* ERwin Builtin Trigger */
/* Obladnenya Komplektuechi on parent update restrict */
/* ERWIN_RELATION:CHECKSUM="00011a77", PARENT_OWNER="", PARENT_TABLE="Obladnenya"
CHILD_OWNER="", CHILD_TABLE="Komplektuechi"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_3", FK_COLUMNS="kod_obladnenya" */
IF
/*%JoinPKPK(:%Old,:%New," <> "," OR ") */
:old.kod_obladnenya <> :new.kod_obladnenya
THEN
SELECT count(*) INTO NUMROWS
FROM Komplektuechi
WHERE
/*%JoinFKPK(Komplektuechi,:%Old," = "," AND") */
Komplektuechi.kod_obladnenya = :old.kod_obladnenya;
IF (NUMROWS > 0)
THEN
raise_application_error(
-20005,
'Cannot update Obladnenya because Komplektuechi exists.'
);
END IF;
END IF;
-- ERwin Builtin Trigger
END;
/
CREATE TRIGGER tI_Shogi_tovary BEFORE INSERT ON Shogi_tovary for each row
-- ERwin Builtin Trigger
-- INSERT trigger on Shogi_tovary
DECLARE NUMROWS INTEGER;
BEGIN
/* ERwin Builtin Trigger */
/* News Shogi_tovary on child insert restrict */
/* ERWIN_RELATION:CHECKSUM="0000fd9a", PARENT_OWNER="", PARENT_TABLE="News"
CHILD_OWNER="", CHILD_TABLE="Shogi_tovary"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_6", FK_COLUMNS="Name_Firm""Name_models" */
SELECT count(*) INTO NUMROWS
FROM News
WHERE
/*%JoinFKPK(:%New,News," = "," AND") */
:new.Name_Firm = News.Name_firm AND
:new.Name_models = News.Name_models;
IF (
/*%NotnullFK(:%New," IS NOT NULL AND") */
NUMROWS = 0
)
THEN
raise_application_error(
-20002,
'Cannot insert Shogi_tovary because News does not exist.'
);
END IF;
-- ERwin Builtin Trigger
END;
/
CREATE TRIGGER tD_Shogi_tovary AFTER DELETE ON Shogi_tovary for each row
-- ERwin Builtin Trigger
-- DELETE trigger on Shogi_tovary
DECLARE NUMROWS INTEGER;
BEGIN
/* ERwin Builtin Trigger */
/* Shogi_tovary Firm on parent delete restrict */
/* ERWIN_RELATION:CHECKSUM="0001114b", PARENT_OWNER="", PARENT_TABLE="Shogi_tovary"
CHILD_OWNER="", CHILD_TABLE="Firm"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_7", FK_COLUMNS="name_firm""kod_firm""kod_tovary""name_models" */
SELECT count(*) INTO NUMROWS
FROM Firm
WHERE
/*%JoinFKPK(Firm,:%Old," = "," AND") */
Firm.name_firm = :old.Name_Firm AND
Firm.kod_firm = :old.kod_firm AND
Firm.kod_tovary = :old.kod_tovary AND
Firm.name_models = :old.Name_models;
IF (NUMROWS > 0)
THEN
raise_application_error(
-20001,
'Cannot delete Shogi_tovary because Firm exists.'
);
END IF;
-- ERwin Builtin Trigger
END;
/
CREATE TRIGGER tU_Shogi_tovary AFTER UPDATE ON Shogi_tovary for each row
-- ERwin Builtin Trigger
-- UPDATE trigger on Shogi_tovary
DECLARE NUMROWS INTEGER;
BEGIN
/* ERwin Builtin Trigger */
/* Shogi_tovary Firm on parent update restrict */
/* ERWIN_RELATION:CHECKSUM="00028ee1", PARENT_OWNER="", PARENT_TABLE="Shogi_tovary"
CHILD_OWNER="", CHILD_TABLE="Firm"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_7", FK_COLUMNS="name_firm""kod_firm""kod_tovary""name_models" */
IF
/*%JoinPKPK(:%Old,:%New," <> "," OR ") */
:old.Name_Firm <> :new.Name_Firm OR
:old.kod_firm <> :new.kod_firm OR
:old.kod_tovary <> :new.kod_tovary OR
:old.Name_models <> :new.Name_models
THEN
SELECT count(*) INTO NUMROWS
FROM Firm
WHERE
/*%JoinFKPK(Firm,:%Old," = "," AND") */
Firm.name_firm = :old.Name_Firm AND
Firm.kod_firm = :old.kod_firm AND
Firm.kod_tovary = :old.kod_tovary AND
Firm.name_models = :old.Name_models;
IF (NUMROWS > 0)
THEN
raise_application_error(
-20005,
'Cannot update Shogi_tovary because Firm exists.'
);
END IF;
END IF;
/* ERwin Builtin Trigger */
/* News Shogi_tovary on child update restrict */
/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="News"
CHILD_OWNER="", CHILD_TABLE="Shogi_tovary"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_6", FK_COLUMNS="Name_Firm""Name_models" */
SELECT count(*) INTO NUMROWS
FROM News
WHERE
/*%JoinFKPK(:%New,News," = "," AND") */
:new.Name_Firm = News.Name_firm AND
:new.Name_models = News.Name_models;
IF (
/*%NotnullFK(:%New," IS NOT NULL AND") */
NUMROWS = 0
)
THEN
raise_application_error(
-20007,
'Cannot update Shogi_tovary because News does not exist.'
);
END IF;
-- ERwin Builtin Trigger
END;
/
Размещено на Allbest.ru
Подобные документы
Дослідження підсистем створення облікової анкети на сайті, обробки замовлення та контролю платіжної системи. Проектування концептуальної, логічної і фізичної моделей даних. Визначення в них атрибутів сутностей, типу та розміру. Генерація моделей до СКБД.
курсовая работа [1,6 M], добавлен 30.01.2013Розробка сайту інтернет-магазину комп’ютерної техніки. Структура об’єктів і зв’язків предметної області: головна, таблиці менеджерів, складу, інформація про товар, сторінки користувачів, покупців. Створення резервної копії бази даних, рhp програма.
курсовая работа [3,4 M], добавлен 06.08.2013Аналіз відомих підходів до проектування баз даних. Ієрархічна, мережева та реляційна моделі представлення даних, їх особливості. Концептуальне проектування: приклад документів, побудова ER-діаграми, модель "сутність-зв'язок". Побудова фізичної моделі.
курсовая работа [541,5 K], добавлен 29.01.2013Основні поняття та особливості розробки баз даних в Microsoft Access. Побудова бази даних магазину побутової техніки: створення таблиць та встановлення зв’язків між ними, створення запитів, форм та звітів. Охорона праці і гігієна користувача комп'ютера.
курсовая работа [2,5 M], добавлен 19.01.2010Використання баз даних та інформаційних систем. Поняття реляційної моделі даних. Ключові особливості мови SQL. Агрегатні функції і угрупування даних. Загальний опис бази даних. Застосування технології систем управління базами даних в мережі Інтернет.
курсовая работа [633,3 K], добавлен 11.07.2015Опис вхідних та вихідних повідомлень, процедури перетворення даних. Розробка інфологічної моделі, інформаційні об’єкти та їх характеристика. Автоматизація даталогічного проектування. Опис структур таблиць бази даних на фізичному рівні, реалізація запитів.
курсовая работа [2,5 M], добавлен 02.01.2014Проектування, розробка та введення в експлуатацію бази даних для віртуального магазину "MotorUA". Виявлення еквівалентних сущностей. Переклад глобальної ER-моделі в реляційну форму. Розробка механизмів захисту даних від несанкціонованого доступу.
курсовая работа [857,7 K], добавлен 15.02.2011Розробка бази даних для меблевої фірми. Обстеження і аналіз предметної області та побудова концептуальної, логічної та фізичної моделі цієї бази даних. Використання мови програмування Visual Basic при написанні програмного коду, що обслуговує базу даних.
курсовая работа [1,4 M], добавлен 24.10.2010Обґрунтування потреби, поняття, класифікація, проектування та етапи розробки веб-сайту. Вибір програмних засобів, розробка інтерфейса і бази даних. Динамічна мова розмітки гіпертекстових документів DHTML. Розміщення категорій товарів в on-line магазині.
дипломная работа [1,5 M], добавлен 04.08.2009Специфікація вимог для кожного з двох користувачів. Концептуальне проектування бази даних. Визначення типів сутностей та зв’язків, доменів. Перетворення концептуальної моделі даних у логічну, визначення набору відношень, підтримки цілісності даних.
курсовая работа [55,1 K], добавлен 15.03.2015