и номенклатури: тип, марка сталі, розмір.
Атрибути позиції: вага, ціна.
В якості ключових полів будуть виступати їх цілочисельні ідентифікатори.
Програма створення бази даних БД
Реалізовувалася база даних в InterBase 6.0. Для написання SQL-скриптів використовувалася IB Expert 1.0. br/>
Створення БД
DATABASE "D: MYBASE.GDB" = 1000 "SYSDBA" PASSWORD "masterkey";
/* Визначення генераторів */
/* для ІН програми */GENERATOR GEN_PRIL_ID; GENERATOR GEN_PRIL_ID TO 0;
/* для ІН рахунку */GENERATOR GEN_BILL_ID; GENERATOR GEN_BILL_ID TO 0;
/* для ІН позиції */GENERATOR GEN_POZ_ID; GENERATOR GEN_POZ_ID TO 0;
/* для ІН номенклатури */GENERATOR GEN_NOMEN_ID; GENERATOR GEN_NOMEN_ID TO 0;
Створення довідника номенклатури
TABLE NOMEN
(_ID INT NOT NULL PRIMARY KEY, _TYPE CHAR (5), _MARK CHAR (5), _SIZE CHAR (5)
);
/* Тригер, що генерує ІН номенклатури */
TERM!! ; TRIGGER NOMEN_ID_KEY FOR NOMENINSERT.NOMEN_ID = GEN_ID (GEN_NOMEN_ID, 1);!! TERM;!! br/>
Створення таблиці додатків
TABLE PRIL
(_ID INT NOT NULL PRIMARY KEY, _DATE DATE, _NAME CHAR (5), _PREPAY FLOAT
);
/* Тригер, що генерує ІН програми */
TERM!! ; TRIGGER PRIL_ID_KEY FOR PRILINSERT.PRIL_ID = GEN_ID (GEN_PRIL_ID, 1);!! TERM;!! br/>
/* ----- POZ */TABLE POZ
(_ID INT NOT NULL PRIMARY KEY, _W FLOAT, _PRICE FLOAT, _ID INT, _ID INT, KEY (PRIL_ID) REFERENCES PRIL (PRIL_ID), KEY (NOMEN_ID) REFERENCES NOMEN (NOMEN_ID)
);
Тригер, що генерує ІН позиції
TERM!! ; TRIGGER POZ_ID_KEY FOR POZINSERT.POZ_ID = GEN_ID (GEN_POZ_ID, 1);!! TERM;!! br/>
Створення таблиці рахунків
TABLE BILL
(_ID INT NOT NULL PRIMARY KEY, _DATE DATE, _NAME CHAR (5), _PAY FLOAT, _W_FACT FLOAT DEFAULT '0 ', _ID INT, KEY (POZ_ID) REFERENCES POZ (POZ_ID)
);
Тригер, що генерує ІН рахунки
TERM!! ; TRIGGER BILL_ID_KEY FOR BILLINSERT.BILL_ID = GEN_ID (GEN_BILL_ID, 1);!! TERM;!! br/>
Тригери для каскадного видалення
TERM!! ; TRIGGER PRIL_ID_DEL FOR PRILDELETEFROM POZ WHERE PRIL_ID = OLD.PRIL_ID;!! TERM;!! br/>
TERM!! ; TRIGGER POZ_ID_DEL FOR POZDELETEFROM BILL WHERE POZ_ID = ...