Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Generated by Oracle SQL Developer Data Modeler 17.3.0.261.1529
- -- at: 2018-01-23 11:43:41 CET
- -- site: Oracle Database 11g
- -- type: Oracle Database 11g
- CREATE TABLE definicje_wlasciwosci (
- kod_wlasciwosci NUMBER(3) NOT NULL,
- nazwa VARCHAR2(20) NOT NULL,
- czy_opcjonalna CHAR(1) DEFAULT 'N' NOT NULL,
- typ_danych CHAR(1) DEFAULT 'C' NOT NULL
- );
- ALTER TABLE definicje_wlasciwosci
- ADD CONSTRAINT czy_opcjonalna_constraint CHECK ( czy_opcjonalna IN (
- 'N',
- 'T'
- ) );
- ALTER TABLE definicje_wlasciwosci
- ADD CONSTRAINT typ_danych_constraint CHECK ( typ_danych IN (
- 'C',
- 'D',
- 'N'
- ) );
- COMMENT ON TABLE definicje_wlasciwosci IS
- 'Definicje wlasciwosci dla danego typu nosnika';
- COMMENT ON COLUMN definicje_wlasciwosci.nazwa IS
- 'Opisuje definicje wlasciwosci';
- COMMENT ON COLUMN definicje_wlasciwosci.czy_opcjonalna IS
- 'Przyjmuje wartosci
- ''T'' - tak
- lub
- ''N'' - nie
- domyslnie N';
- COMMENT ON COLUMN definicje_wlasciwosci.typ_danych IS
- 'Przyjmuje wartosci
- ''C'' - (char) znakowa
- ''N'' - numeryczna
- ''D'' - data
- domyslnie C';
- ALTER TABLE definicje_wlasciwosci ADD CONSTRAINT dw_pk PRIMARY KEY ( kod_wlasciwosci );
- ALTER TABLE definicje_wlasciwosci ADD CONSTRAINT dw_uk UNIQUE ( nazwa );
- CREATE TABLE nosniki (
- id_nosnika NUMBER(5) NOT NULL,
- nazwa VARCHAR2(20) NOT NULL,
- opis VARCHAR2(200),
- model VARCHAR2(20) NOT NULL,
- kod_typu_nosnika NUMBER(3) NOT NULL
- );
- COMMENT ON TABLE nosniki IS
- 'Nosniki w archiwum
- np. SSD, HDD, Tasmy magnetyczne, CD';
- COMMENT ON COLUMN nosniki.nazwa IS
- 'opisuje nosnik
- np. ADATA';
- COMMENT ON COLUMN nosniki.model IS
- 'nazwa/numer modelu
- np. SU800NS38';
- ALTER TABLE nosniki ADD CONSTRAINT n_pk PRIMARY KEY ( id_nosnika );
- CREATE TABLE typy_nosnikow (
- kod_typu_nosnika NUMBER(3) NOT NULL,
- nazwa VARCHAR2(20) NOT NULL,
- opis VARCHAR2(200)
- );
- COMMENT ON TABLE typy_nosnikow IS
- 'SSD, HDD, LTE, CD, DVD, Blue-ray, dyski magnetyczne itd.';
- COMMENT ON COLUMN typy_nosnikow.nazwa IS
- 'Opisuje typ nosnika';
- ALTER TABLE typy_nosnikow ADD CONSTRAINT tn_pk PRIMARY KEY ( kod_typu_nosnika );
- ALTER TABLE typy_nosnikow ADD CONSTRAINT tn_uk UNIQUE ( nazwa );
- CREATE TABLE wartosci_wlasciwosci (
- wartosc VARCHAR2(50) NOT NULL,
- id_nosnika NUMBER(5) NOT NULL,
- kod_typu_nosnika NUMBER(3) NOT NULL,
- kod_wlasciwosci NUMBER(3) NOT NULL
- );
- COMMENT ON TABLE wartosci_wlasciwosci IS
- 'tabela wartosci wlasciwosci dla danego typu nosnika';
- CREATE INDEX ww_wtn_fk_idx ON
- wartosci_wlasciwosci ( kod_typu_nosnika ASC,
- kod_wlasciwosci ASC );
- ALTER TABLE wartosci_wlasciwosci
- ADD CONSTRAINT ww_pk PRIMARY KEY ( id_nosnika,
- kod_typu_nosnika,
- kod_wlasciwosci,
- wartosc );
- CREATE TABLE wlasciwosci_typow_nosnikow (
- kod_typu_nosnika NUMBER(3) NOT NULL,
- kod_wlasciwosci NUMBER(3) NOT NULL
- );
- COMMENT ON TABLE wlasciwosci_typow_nosnikow IS
- 'tabela powstala po normalizacji (wczesniej relacje wiele do wielu typu i definicji)';
- CREATE INDEX wtn_nd_idx ON
- wlasciwosci_typow_nosnikow ( kod_wlasciwosci ASC );
- ALTER TABLE wlasciwosci_typow_nosnikow ADD CONSTRAINT wtn_pk PRIMARY KEY ( kod_typu_nosnika,
- kod_wlasciwosci );
- CREATE TABLE zmiany_statusow (
- kod_statusu CHAR(1) NOT NULL,
- data_zmiany DATE NOT NULL,
- id_nosnika NUMBER(5) NOT NULL
- );
- ALTER TABLE zmiany_statusow
- ADD CONSTRAINT mozliwe_kody CHECK ( kod_statusu IN (
- 'A',
- 'C',
- 'D',
- 'N',
- 'U'
- ) );
- COMMENT ON TABLE zmiany_statusow IS
- 'Przy wprowadzeniu nowego nosnika nalezy dodac nowy status o kodzie nowy.
- Przechowuje wszelkie statusy, ktore dany nosnik mial';
- COMMENT ON COLUMN zmiany_statusow.kod_statusu IS
- 'N - nowy
- D - usuniety
- U - uszkodzony
- A - online
- C - offline';
- COMMENT ON COLUMN zmiany_statusow.data_zmiany IS
- 'Opisuje date zmiany';
- ALTER TABLE zmiany_statusow ADD CONSTRAINT zs_pk PRIMARY KEY ( data_zmiany,
- kod_statusu );
- ALTER TABLE nosniki
- ADD CONSTRAINT n_tn_fk FOREIGN KEY ( kod_typu_nosnika )
- REFERENCES typy_nosnikow ( kod_typu_nosnika );
- ALTER TABLE wlasciwosci_typow_nosnikow
- ADD CONSTRAINT wt_nd_fk FOREIGN KEY ( kod_wlasciwosci )
- REFERENCES definicje_wlasciwosci ( kod_wlasciwosci );
- ALTER TABLE wlasciwosci_typow_nosnikow
- ADD CONSTRAINT wt_nt_fk FOREIGN KEY ( kod_typu_nosnika )
- REFERENCES typy_nosnikow ( kod_typu_nosnika );
- ALTER TABLE wartosci_wlasciwosci
- ADD CONSTRAINT ww_n_fk FOREIGN KEY ( id_nosnika )
- REFERENCES nosniki ( id_nosnika );
- ALTER TABLE wartosci_wlasciwosci
- ADD CONSTRAINT ww_wtn_fk FOREIGN KEY ( kod_typu_nosnika,
- kod_wlasciwosci )
- REFERENCES wlasciwosci_typow_nosnikow ( kod_typu_nosnika,
- kod_wlasciwosci );
- ALTER TABLE zmiany_statusow
- ADD CONSTRAINT zs_n_fk FOREIGN KEY ( id_nosnika )
- REFERENCES nosniki ( id_nosnika );
- CREATE OR REPLACE TRIGGER fkntm_wartosci_wlasciwosci BEFORE
- UPDATE OF id_nosnika,kod_typu_nosnika,kod_wlasciwosci ON wartosci_wlasciwosci FOR EACH ROW
- WHEN (new.id_nosnika <> old.id_nosnika or new.kod_typu_nosnika <> old.kod_typu_nosnika or new.kod_wlasciwosci <> old.kod_wlasciwosci)
- BEGIN
- raise_application_error(-20225,'Non Transferable FK constraint on table WARTOSCI_WLASCIWOSCI is violated');
- END;
- /
- CREATE OR REPLACE TRIGGER fkntm_nosniki BEFORE
- UPDATE OF kod_typu_nosnika ON nosniki FOR EACH ROW
- WHEN (new.kod_typu_nosnika <> old.kod_typu_nosnika)
- BEGIN
- raise_application_error(-20225,'Non Transferable FK constraint on table NOSNIKI is violated');
- END;
- /
- CREATE OR REPLACE TRIGGER fkntm_zmiany_statusow BEFORE
- UPDATE OF id_nosnika ON zmiany_statusow FOR EACH ROW
- WHEN (new.id_nosnika <> old.id_nosnika)
- BEGIN
- raise_application_error(-20225,'Non Transferable FK constraint on table ZMIANY_STATUSOW is violated');
- END;
- /
- CREATE OR REPLACE TRIGGER fkntm_wlasciwosci_typow_nosnik BEFORE
- UPDATE OF kod_wlasciwosci,kod_typu_nosnika ON wlasciwosci_typow_nosnikow FOR EACH ROW
- WHEN (new.kod_wlasciwosci <> old.kod_wlasciwosci or new.kod_typu_nosnika <> old.kod_typu_nosnika)
- BEGIN
- raise_application_error(-20225,'Non Transferable FK constraint on table WLASCIWOSCI_TYPOW_NOSNIKOW is violated');
- END;
- /
- -- Oracle SQL Developer Data Modeler Summary Report:
- --
- -- CREATE TABLE 6
- -- CREATE INDEX 2
- -- ALTER TABLE 17
- -- CREATE VIEW 0
- -- ALTER VIEW 0
- -- CREATE PACKAGE 0
- -- CREATE PACKAGE BODY 0
- -- CREATE PROCEDURE 0
- -- CREATE FUNCTION 0
- -- CREATE TRIGGER 4
- -- ALTER TRIGGER 0
- -- CREATE COLLECTION TYPE 0
- -- CREATE STRUCTURED TYPE 0
- -- CREATE STRUCTURED TYPE BODY 0
- -- CREATE CLUSTER 0
- -- CREATE CONTEXT 0
- -- CREATE DATABASE 0
- -- CREATE DIMENSION 0
- -- CREATE DIRECTORY 0
- -- CREATE DISK GROUP 0
- -- CREATE ROLE 0
- -- CREATE ROLLBACK SEGMENT 0
- -- CREATE SEQUENCE 0
- -- CREATE MATERIALIZED VIEW 0
- -- CREATE SYNONYM 0
- -- CREATE TABLESPACE 0
- -- CREATE USER 0
- --
- -- DROP TABLESPACE 0
- -- DROP DATABASE 0
- --
- -- REDACTION POLICY 0
- --
- -- ORDS DROP SCHEMA 0
- -- ORDS ENABLE SCHEMA 0
- -- ORDS ENABLE OBJECT 0
- --
- -- ERRORS 0
- -- WARNINGS 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement