Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.15 KB | None | 0 0
  1. -- Generated by Oracle SQL Developer Data Modeler 17.3.0.261.1529
  2. -- at: 2018-01-23 11:43:41 CET
  3. -- site: Oracle Database 11g
  4. -- type: Oracle Database 11g
  5.  
  6. CREATE TABLE definicje_wlasciwosci (
  7. kod_wlasciwosci NUMBER(3) NOT NULL,
  8. nazwa VARCHAR2(20) NOT NULL,
  9. czy_opcjonalna CHAR(1) DEFAULT 'N' NOT NULL,
  10. typ_danych CHAR(1) DEFAULT 'C' NOT NULL
  11. );
  12.  
  13. ALTER TABLE definicje_wlasciwosci
  14. ADD CONSTRAINT czy_opcjonalna_constraint CHECK ( czy_opcjonalna IN (
  15. 'N',
  16. 'T'
  17. ) );
  18.  
  19. ALTER TABLE definicje_wlasciwosci
  20. ADD CONSTRAINT typ_danych_constraint CHECK ( typ_danych IN (
  21. 'C',
  22. 'D',
  23. 'N'
  24. ) );
  25.  
  26. COMMENT ON TABLE definicje_wlasciwosci IS
  27. 'Definicje wlasciwosci dla danego typu nosnika';
  28.  
  29. COMMENT ON COLUMN definicje_wlasciwosci.nazwa IS
  30. 'Opisuje definicje wlasciwosci';
  31.  
  32. COMMENT ON COLUMN definicje_wlasciwosci.czy_opcjonalna IS
  33. 'Przyjmuje wartosci
  34. ''T'' - tak
  35. lub
  36. ''N'' - nie
  37. domyslnie N';
  38.  
  39. COMMENT ON COLUMN definicje_wlasciwosci.typ_danych IS
  40. 'Przyjmuje wartosci
  41. ''C'' - (char) znakowa
  42. ''N'' - numeryczna
  43. ''D'' - data
  44. domyslnie C';
  45.  
  46. ALTER TABLE definicje_wlasciwosci ADD CONSTRAINT dw_pk PRIMARY KEY ( kod_wlasciwosci );
  47.  
  48. ALTER TABLE definicje_wlasciwosci ADD CONSTRAINT dw_uk UNIQUE ( nazwa );
  49.  
  50. CREATE TABLE nosniki (
  51. id_nosnika NUMBER(5) NOT NULL,
  52. nazwa VARCHAR2(20) NOT NULL,
  53. opis VARCHAR2(200),
  54. model VARCHAR2(20) NOT NULL,
  55. kod_typu_nosnika NUMBER(3) NOT NULL
  56. );
  57.  
  58. COMMENT ON TABLE nosniki IS
  59. 'Nosniki w archiwum
  60. np. SSD, HDD, Tasmy magnetyczne, CD';
  61.  
  62. COMMENT ON COLUMN nosniki.nazwa IS
  63. 'opisuje nosnik
  64. np. ADATA';
  65.  
  66. COMMENT ON COLUMN nosniki.model IS
  67. 'nazwa/numer modelu
  68. np. SU800NS38';
  69.  
  70. ALTER TABLE nosniki ADD CONSTRAINT n_pk PRIMARY KEY ( id_nosnika );
  71.  
  72. CREATE TABLE typy_nosnikow (
  73. kod_typu_nosnika NUMBER(3) NOT NULL,
  74. nazwa VARCHAR2(20) NOT NULL,
  75. opis VARCHAR2(200)
  76. );
  77.  
  78. COMMENT ON TABLE typy_nosnikow IS
  79. 'SSD, HDD, LTE, CD, DVD, Blue-ray, dyski magnetyczne itd.';
  80.  
  81. COMMENT ON COLUMN typy_nosnikow.nazwa IS
  82. 'Opisuje typ nosnika';
  83.  
  84. ALTER TABLE typy_nosnikow ADD CONSTRAINT tn_pk PRIMARY KEY ( kod_typu_nosnika );
  85.  
  86. ALTER TABLE typy_nosnikow ADD CONSTRAINT tn_uk UNIQUE ( nazwa );
  87.  
  88. CREATE TABLE wartosci_wlasciwosci (
  89. wartosc VARCHAR2(50) NOT NULL,
  90. id_nosnika NUMBER(5) NOT NULL,
  91. kod_typu_nosnika NUMBER(3) NOT NULL,
  92. kod_wlasciwosci NUMBER(3) NOT NULL
  93. );
  94.  
  95. COMMENT ON TABLE wartosci_wlasciwosci IS
  96. 'tabela wartosci wlasciwosci dla danego typu nosnika';
  97.  
  98. CREATE INDEX ww_wtn_fk_idx ON
  99. wartosci_wlasciwosci ( kod_typu_nosnika ASC,
  100. kod_wlasciwosci ASC );
  101.  
  102. ALTER TABLE wartosci_wlasciwosci
  103. ADD CONSTRAINT ww_pk PRIMARY KEY ( id_nosnika,
  104. kod_typu_nosnika,
  105. kod_wlasciwosci,
  106. wartosc );
  107.  
  108. CREATE TABLE wlasciwosci_typow_nosnikow (
  109. kod_typu_nosnika NUMBER(3) NOT NULL,
  110. kod_wlasciwosci NUMBER(3) NOT NULL
  111. );
  112.  
  113. COMMENT ON TABLE wlasciwosci_typow_nosnikow IS
  114. 'tabela powstala po normalizacji (wczesniej relacje wiele do wielu typu i definicji)';
  115.  
  116. CREATE INDEX wtn_nd_idx ON
  117. wlasciwosci_typow_nosnikow ( kod_wlasciwosci ASC );
  118.  
  119. ALTER TABLE wlasciwosci_typow_nosnikow ADD CONSTRAINT wtn_pk PRIMARY KEY ( kod_typu_nosnika,
  120. kod_wlasciwosci );
  121.  
  122. CREATE TABLE zmiany_statusow (
  123. kod_statusu CHAR(1) NOT NULL,
  124. data_zmiany DATE NOT NULL,
  125. id_nosnika NUMBER(5) NOT NULL
  126. );
  127.  
  128. ALTER TABLE zmiany_statusow
  129. ADD CONSTRAINT mozliwe_kody CHECK ( kod_statusu IN (
  130. 'A',
  131. 'C',
  132. 'D',
  133. 'N',
  134. 'U'
  135. ) );
  136.  
  137. COMMENT ON TABLE zmiany_statusow IS
  138. 'Przy wprowadzeniu nowego nosnika nalezy dodac nowy status o kodzie nowy.
  139. Przechowuje wszelkie statusy, ktore dany nosnik mial';
  140.  
  141. COMMENT ON COLUMN zmiany_statusow.kod_statusu IS
  142. 'N - nowy
  143. D - usuniety
  144. U - uszkodzony
  145. A - online
  146. C - offline';
  147.  
  148. COMMENT ON COLUMN zmiany_statusow.data_zmiany IS
  149. 'Opisuje date zmiany';
  150.  
  151. ALTER TABLE zmiany_statusow ADD CONSTRAINT zs_pk PRIMARY KEY ( data_zmiany,
  152. kod_statusu );
  153.  
  154. ALTER TABLE nosniki
  155. ADD CONSTRAINT n_tn_fk FOREIGN KEY ( kod_typu_nosnika )
  156. REFERENCES typy_nosnikow ( kod_typu_nosnika );
  157.  
  158. ALTER TABLE wlasciwosci_typow_nosnikow
  159. ADD CONSTRAINT wt_nd_fk FOREIGN KEY ( kod_wlasciwosci )
  160. REFERENCES definicje_wlasciwosci ( kod_wlasciwosci );
  161.  
  162. ALTER TABLE wlasciwosci_typow_nosnikow
  163. ADD CONSTRAINT wt_nt_fk FOREIGN KEY ( kod_typu_nosnika )
  164. REFERENCES typy_nosnikow ( kod_typu_nosnika );
  165.  
  166. ALTER TABLE wartosci_wlasciwosci
  167. ADD CONSTRAINT ww_n_fk FOREIGN KEY ( id_nosnika )
  168. REFERENCES nosniki ( id_nosnika );
  169.  
  170. ALTER TABLE wartosci_wlasciwosci
  171. ADD CONSTRAINT ww_wtn_fk FOREIGN KEY ( kod_typu_nosnika,
  172. kod_wlasciwosci )
  173. REFERENCES wlasciwosci_typow_nosnikow ( kod_typu_nosnika,
  174. kod_wlasciwosci );
  175.  
  176. ALTER TABLE zmiany_statusow
  177. ADD CONSTRAINT zs_n_fk FOREIGN KEY ( id_nosnika )
  178. REFERENCES nosniki ( id_nosnika );
  179.  
  180. CREATE OR REPLACE TRIGGER fkntm_wartosci_wlasciwosci BEFORE
  181. UPDATE OF id_nosnika,kod_typu_nosnika,kod_wlasciwosci ON wartosci_wlasciwosci FOR EACH ROW
  182. WHEN (new.id_nosnika <> old.id_nosnika or new.kod_typu_nosnika <> old.kod_typu_nosnika or new.kod_wlasciwosci <> old.kod_wlasciwosci)
  183. BEGIN
  184. raise_application_error(-20225,'Non Transferable FK constraint on table WARTOSCI_WLASCIWOSCI is violated');
  185. END;
  186. /
  187.  
  188. CREATE OR REPLACE TRIGGER fkntm_nosniki BEFORE
  189. UPDATE OF kod_typu_nosnika ON nosniki FOR EACH ROW
  190. WHEN (new.kod_typu_nosnika <> old.kod_typu_nosnika)
  191. BEGIN
  192. raise_application_error(-20225,'Non Transferable FK constraint on table NOSNIKI is violated');
  193. END;
  194. /
  195.  
  196. CREATE OR REPLACE TRIGGER fkntm_zmiany_statusow BEFORE
  197. UPDATE OF id_nosnika ON zmiany_statusow FOR EACH ROW
  198. WHEN (new.id_nosnika <> old.id_nosnika)
  199. BEGIN
  200. raise_application_error(-20225,'Non Transferable FK constraint on table ZMIANY_STATUSOW is violated');
  201. END;
  202. /
  203.  
  204. CREATE OR REPLACE TRIGGER fkntm_wlasciwosci_typow_nosnik BEFORE
  205. UPDATE OF kod_wlasciwosci,kod_typu_nosnika ON wlasciwosci_typow_nosnikow FOR EACH ROW
  206. WHEN (new.kod_wlasciwosci <> old.kod_wlasciwosci or new.kod_typu_nosnika <> old.kod_typu_nosnika)
  207. BEGIN
  208. raise_application_error(-20225,'Non Transferable FK constraint on table WLASCIWOSCI_TYPOW_NOSNIKOW is violated');
  209. END;
  210. /
  211.  
  212.  
  213.  
  214. -- Oracle SQL Developer Data Modeler Summary Report:
  215. --
  216. -- CREATE TABLE 6
  217. -- CREATE INDEX 2
  218. -- ALTER TABLE 17
  219. -- CREATE VIEW 0
  220. -- ALTER VIEW 0
  221. -- CREATE PACKAGE 0
  222. -- CREATE PACKAGE BODY 0
  223. -- CREATE PROCEDURE 0
  224. -- CREATE FUNCTION 0
  225. -- CREATE TRIGGER 4
  226. -- ALTER TRIGGER 0
  227. -- CREATE COLLECTION TYPE 0
  228. -- CREATE STRUCTURED TYPE 0
  229. -- CREATE STRUCTURED TYPE BODY 0
  230. -- CREATE CLUSTER 0
  231. -- CREATE CONTEXT 0
  232. -- CREATE DATABASE 0
  233. -- CREATE DIMENSION 0
  234. -- CREATE DIRECTORY 0
  235. -- CREATE DISK GROUP 0
  236. -- CREATE ROLE 0
  237. -- CREATE ROLLBACK SEGMENT 0
  238. -- CREATE SEQUENCE 0
  239. -- CREATE MATERIALIZED VIEW 0
  240. -- CREATE SYNONYM 0
  241. -- CREATE TABLESPACE 0
  242. -- CREATE USER 0
  243. --
  244. -- DROP TABLESPACE 0
  245. -- DROP DATABASE 0
  246. --
  247. -- REDACTION POLICY 0
  248. --
  249. -- ORDS DROP SCHEMA 0
  250. -- ORDS ENABLE SCHEMA 0
  251. -- ORDS ENABLE OBJECT 0
  252. --
  253. -- ERRORS 0
  254. -- WARNINGS 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement