Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.23 KB | None | 0 0
  1. CREATE TABLE albume (
  2. id_album NUMBER(3) NOT NULL,
  3. nume_album VARCHAR2(30),
  4. numar_aprecieri NUMBER(10),
  5. case_de_discuri_id_casa NUMBER(2) NOT NULL,
  6. genuri_gen_muzical VARCHAR2(20) NOT NULL
  7. );
  8.  
  9. ALTER TABLE albume
  10. ADD CHECK ( length(nume_album) >= 2 );
  11.  
  12. ALTER TABLE albume ADD CONSTRAINT albume_pk PRIMARY KEY ( id_album );
  13.  
  14. ALTER TABLE albume ADD CONSTRAINT albume_nume_album_un UNIQUE ( nume_album );
  15.  
  16. CREATE TABLE albume_artisti (
  17. artisti_nume_artist VARCHAR2(30) NOT NULL,
  18. albume_id_album NUMBER(3) NOT NULL
  19. );
  20.  
  21. ALTER TABLE albume_artisti ADD CONSTRAINT albume_artisti_pk PRIMARY KEY ( artisti_nume_artist,
  22. albume_id_album );
  23.  
  24. CREATE TABLE albume_clienti (
  25. clienti_cnp VARCHAR2(13) NOT NULL,
  26. albume_id_album NUMBER(3) NOT NULL
  27. );
  28.  
  29. ALTER TABLE albume_clienti ADD CONSTRAINT albume_clienti_pk PRIMARY KEY ( clienti_cnp,
  30. albume_id_album );
  31.  
  32. CREATE TABLE artisti (
  33. nume_artist VARCHAR2(30) NOT NULL,
  34. rank NUMBER(3)
  35. );
  36.  
  37. ALTER TABLE artisti
  38. ADD CHECK ( length(nume_artist) >= 3 );
  39.  
  40. ALTER TABLE artisti ADD CONSTRAINT artisti_pk PRIMARY KEY ( nume_artist );
  41.  
  42. CREATE TABLE case_de_discuri (
  43. id_casa NUMBER(2) NOT NULL,
  44. nume_casa VARCHAR2(30) NOT NULL,
  45. data_infiintare VARCHAR2(10)
  46. );
  47.  
  48. ALTER TABLE case_de_discuri
  49. ADD CHECK ( length(nume_casa) >= 2 );
  50.  
  51. ALTER TABLE case_de_discuri ADD CONSTRAINT case_de_discuri_pk PRIMARY KEY ( id_casa );
  52.  
  53. ALTER TABLE case_de_discuri ADD CONSTRAINT case_de_discuri_nume_casa_un UNIQUE ( nume_casa );
  54.  
  55. CREATE TABLE clienti (
  56. cnp VARCHAR2(13) NOT NULL,
  57. nume_client VARCHAR2(30) NOT NULL,
  58. numar_card NUMBER(16),
  59. adresa VARCHAR2(30)
  60. );
  61.  
  62. ALTER TABLE clienti ADD CHECK ( length(cnp) = 13 );
  63.  
  64. ALTER TABLE clienti
  65. ADD CHECK ( length(nume_client) >= 6 );
  66.  
  67. ALTER TABLE clienti ADD CONSTRAINT clienti_pk PRIMARY KEY ( cnp );
  68.  
  69. ALTER TABLE clienti ADD CONSTRAINT clienti_numar_card_un UNIQUE ( numar_card );
  70.  
  71. CREATE TABLE detalii_albume (
  72. albume_id_album NUMBER(3) NOT NULL,
  73. pret NUMBER(3) NOT NULL,
  74. data_aparitie VARCHAR2(10),
  75. cantitate NUMBER(3)
  76. );
  77.  
  78. ALTER TABLE detalii_albume ADD CONSTRAINT detalii_albume_pk PRIMARY KEY ( albume_id_album );
  79.  
  80. CREATE TABLE genuri (
  81. gen_muzical VARCHAR2(20) NOT NULL
  82. );
  83.  
  84. ALTER TABLE genuri ADD CONSTRAINT genuri_pk PRIMARY KEY ( gen_muzical );
  85.  
  86. ALTER TABLE albume_artisti
  87. ADD CONSTRAINT albume_artisti_albume_fk FOREIGN KEY ( albume_id_album )
  88. REFERENCES albume ( id_album );
  89.  
  90. ALTER TABLE albume_artisti
  91. ADD CONSTRAINT albume_artisti_artisti_fk FOREIGN KEY ( artisti_nume_artist )
  92. REFERENCES artisti ( nume_artist );
  93.  
  94.  
  95. ALTER TABLE albume_clienti
  96. ADD CONSTRAINT albume_clienti_albume_fk FOREIGN KEY ( albume_id_album )
  97. REFERENCES albume ( id_album );
  98.  
  99. ALTER TABLE albume_clienti
  100. ADD CONSTRAINT albume_clienti_clienti_fk FOREIGN KEY ( clienti_cnp )
  101. REFERENCES clienti ( cnp );
  102.  
  103. ALTER TABLE albume
  104. ADD CONSTRAINT albume_genuri_fk FOREIGN KEY ( genuri_gen_muzical )
  105. REFERENCES genuri ( gen_muzical );
  106.  
  107. ALTER TABLE detalii_albume
  108. ADD CONSTRAINT detalii_albume_albume_fk FOREIGN KEY ( albume_id_album )
  109. REFERENCES albume ( id_album );
  110.  
  111.  
  112.  
  113. ALTER TABLE albume
  114. ADD CONSTRAINT albume_case_de_discuri_fk FOREIGN KEY ( case_de_discuri_id_casa )
  115. REFERENCES case_de_discuri ( id_casa );
  116.  
  117.  
  118.  
  119.  
  120. CREATE SEQUENCE albume_id_album_seq START WITH 1 NOCACHE ORDER;
  121.  
  122. CREATE OR REPLACE TRIGGER albume_id_album_trg BEFORE
  123. INSERT ON albume
  124. FOR EACH ROW
  125. WHEN ( new.id_album IS NULL )
  126. BEGIN
  127. :new.id_album := albume_id_album_seq.nextval;
  128. END;
  129. /
  130.  
  131. CREATE SEQUENCE case_de_discuri_id_casa_seq START WITH 1 NOCACHE ORDER;
  132.  
  133. CREATE OR REPLACE TRIGGER case_de_discuri_id_casa_trg BEFORE
  134. INSERT ON case_de_discuri
  135. FOR EACH ROW
  136. WHEN ( new.id_casa IS NULL )
  137. BEGIN
  138. :new.id_casa := case_de_discuri_id_casa_seq.nextval;
  139. END;
  140. /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement