Advertisement
Guest User

arnob fakibaz

a guest
Nov 2nd, 2019
272
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- DBMS II - Quiz
  2. -- 1.
  3.  
  4. CREATE TABLE ROOM
  5. (
  6.     R_ID NUMBER PRIMARY KEY,
  7.     R_FLOOR NUMBER
  8. );
  9.  
  10. CREATE TABLE DOCTOR
  11. (
  12.     D_ID NUMBER PRIMARY KEY,
  13.     D_NAME VARCHAR2(20),
  14.     D_SPECIALIZATION VARCHAR2(20),
  15.     D_ROOM NUMBER,
  16.     CONSTRAINT D_FK FOREIGN KEY(D_ROOM) REFERENCES ROOM(R_ID)
  17. );
  18.  
  19. CREATE TABLE PATIENT
  20. (
  21.     P_ID NUMBER PRIMARY KEY,
  22.     P_NAME VARCHAR2(20),
  23.     P_AGE NUMBER,
  24.     P_ADDRESS VARCHAR2(30),
  25.     P_CONTACT VARCHAR2(11),
  26.     P_SICKNESS VARCHAR2(20)
  27. );
  28.  
  29. CREATE TABLE CONSULTATION
  30. (
  31.     C_ID NUMBER PRIMARY KEY,
  32.     P_ID NUMBER,
  33.     D_ID NUMBER,
  34.     C_DATE DATE,
  35.     CONSTRAINT C_FK1 FOREIGN KEY(P_ID) REFERENCES PATIENT(P_ID),
  36.     CONSTRAINT C_FK2 FOREIGN KEY(D_ID) REFERENCES DOCTOR(D_ID)
  37. );
  38.  
  39. -- 2.
  40. CREATE TABLE UPDATE_LOG
  41. (
  42.     USERNAME VARCHAR2(20),
  43.     IP_ADDRESS VARCHAR2(20),
  44.     OBJECT_NAME VARCHAR2(20),
  45.     OPERATION VARCHAR2(20),
  46.     UPDATE_TIME DATE,
  47.     OLD_VAL VARCHAR2(20),
  48.     NEW_VAL VARCHAR2(20)
  49. );
  50.  
  51. -- consider that we'll be tracking all the changes in transactions table.
  52.  
  53. CREATE OR REPLACE TRIGGER STORE_UPDATE_LOG
  54. AFTER UPDATE ON TRANSACTIONS
  55. FOR EACH ROW
  56. BEGIN
  57.   INSERT INTO UPDATE_LOG VALUES(ORA_DICT_OBJ_OWNER, ORA_CLIENT_IP_ADDRESS, ORA_DICT_OBJ_NAME, ORA_SYSEVENT, SYSDATE, :OLD.AMOUNT, :NEW.AMOUNT);
  58. END;
  59. /
  60.  
  61. -- 4308 final 17-18
  62. CREATE TABLE SPECIALIZATION
  63. (
  64.     SP_ID NUMBER PRIMARY KEY,
  65.     SUB_NAME VARCHAR2(20),
  66.     SP_NAME VARCHAR2(20)
  67. );
  68.  
  69. CREATE TABLE PUBLISHER
  70. (
  71.     P_ID NUMBER PRIMARY KEY,
  72.     P_NAME VARCHAR2(20),
  73.     P_COUNTRY VARCHAR2(20),
  74.     REPUTATION VARCHAR2(10),
  75.     CHECK REPUTATION IN('Excellent', 'Good', 'Bad')
  76. );
  77.  
  78. CREATE TABLE BOOK
  79. (
  80.     ISBN NUMBER PRIMARY KEY,
  81.     B_NAME VARCHAR2(30),
  82.     P_ID NUMBER,
  83.     B_SPECIALIZATION NUMBER,
  84.     PURCHASE_DATE DATE,
  85.     CONSTRAINT BOOK_FK1 FOREIGN KEY(P_ID) REFERENCES PUBLISHER(P_ID),
  86.     CONSTRAINT BOOK_FK2 FOREIGN KEY(B_SPECIALIZATION) REFERENCES SPECIALIZATION(SP_ID)
  87. );
  88.  
  89. CREATE TABLE BOOK_COPY
  90. (
  91.     C_ID NUMBER PRIMARY KEY,
  92.     ISBN NUMBER,
  93.     AVAILABILITY CHAR(1),
  94.     CONSTRAINT BOOK_COPY_FK FOREIGN KEY(ISBN) REFERENCES BOOK(ISBN)
  95. );
  96.  
  97. CREATE TABLE BORROWER
  98. (
  99.     BOR_ID NUMBER PRIMARY KEY,
  100.     BOR_NAME VARCHAR2(20)
  101. );
  102.  
  103. CREATE TABLE ISSUED
  104. (
  105.     I_ID NUMBER PRIMARY KEY,
  106.     COPY_ID NUMBER,
  107.     BOR_ID NUMBER,
  108.     BORROW_DATE DATE,
  109.     RETURN_DATE DATE,
  110.     CONSTRAINT ISSUED_FK1 FOREIGN KEY(COPY_ID) REFERENCES BOOK_COPY(C_ID),
  111.     CONSTRAINT ISSUED_FK2 FOREIGN KEY(BOR_ID) REFERENCES BORROWER(BOR_ID)
  112. );
  113.  
  114. CREATE TABLE SHARED
  115. (
  116.     S_ID NUMBER PRIMARY KEY,
  117.     MAJ_ID NUMBER,
  118.     U2_ID NUMBER,
  119.     U3_ID NUMBER,
  120.     BOOK_ID NUMBER,
  121.     CONSTRAINT SHARED_FK1 FOREIGN KEY(MAJ_ID) REFERENCES BORROWER(BOR_ID),
  122.     CONSTRAINT SHARED_FK2 FOREIGN KEY(U2_ID) REFERENCES BORROWER(BOR_ID),
  123.     CONSTRAINT SHARED_FK3 FOREIGN KEY(U3_ID) REFERENCES BORROWER(BOR_ID),
  124.     CONSTRAINT SHARED_FK4 FOREIGN KEY(BOOK_ID) REFERENCES BOOK_COPY(C_ID)
  125. );
  126.  
  127. SELECT ISBN, B_NAME, P_NAME, P_COUNTRY, PURCHASE_DATE
  128. FROM BOOK NATURAL JOIN PUBLISHER;
  129.  
  130. SELECT ISBN AS BOOK_NO, B_NAME, P_NAME, P_COUNTRY, (SELECT COUNT(*)
  131.             FROM BOOK_COPY
  132.             WHERE ISBN = BOOK_NO) AS TOTAL_COUNT, (SELECT COUNT(*)
  133.             FROM BOOK_COPY WHERE ISBN = BOOK_NO AND AVAILABILITY = 'Y') AS TOTAL_AVAILABLE
  134. FROM BOOK NATURAL JOIN PUBLISHER;
  135.  
  136. SELECT B_NAME
  137. FROM BOOK NATURAL JOIN BOOK_COPY NATURAL JOIN ISSUED NATURAL JOIN BORROWER
  138. WHERE BOR_ID = 12345
  139. AND AVAILABILITY = 'N'
  140. UNION
  141. SELECT B_NAME
  142. FROM BOOK NATURAL JOIN BOOK_COPY NATURAL JOIN SHARED NATURAL JOIN BORROWER
  143. WHERE (MAJ_ID = 12345 OR U2_ID = 12345 OR U3_ID = 12345)
  144. AND AVAILABILITY = 'N';
  145.  
  146. SELECT B_NAME
  147. FROM BOOK NATURAL JOIN BOOK_COPY NATURAL JOIN ISSUED NATURAL JOIN BORROWER
  148. WHERE BOR_ID = 12345
  149. AND (SYSDATE - BORROW_DATE) < 30
  150. UNION
  151. SELECT B_NAME
  152. FROM BOOK NATURAL JOIN BOOK_COPY NATURAL JOIN SHARED NATURAL JOIN BORROWER
  153. WHERE (MAJ_ID = 12345 OR U2_ID = 12345 OR U3_ID = 12345)
  154. AND (SYSDATE - BORROW_DATE) < 30;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement