Advertisement
Guest User

UAS

a guest
Jan 9th, 2017
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.62 KB | None | 0 0
  1. CREATE table author(
  2. author_id char(5) constraint pk_aut primary key,
  3. author_name varchar2(30),
  4. birth_date date,
  5. birth_place varchar2(30)
  6. );
  7.  
  8. CREATE table book(
  9. book_id char(5) constraint pk_book primary key,
  10. book_title varchar2(30),
  11. publish_date date,
  12. genre varchar2(40),
  13. pages varchar2(30),
  14. stock char(5) constraint ck_stock check(stock > 0),
  15. author_id char(5) constraint fk_aut references author(author_id),
  16. publisher_id char(5) constraint fk_pub references publisher(publisher_id)
  17. );
  18.  
  19. CREATE TABLE publisher(
  20. publisher_id char(5) constraint pk_pub primary key,
  21. publisher_name varchar2(100),
  22. headquarter varchar2(100),
  23. founded_year char(4),
  24. founder varchar2(100)
  25. );
  26.  
  27. CREATE TABLE borrower(
  28. borrower_id char(5) constraint pk_bor primary key,
  29. borrower_name varchar2(30),
  30. birth_date date,
  31. address varchar2(30),
  32. phone varchar2(20) constraint bor_phone unique,
  33. email varchar2(30) constraint bor_email unique
  34. );
  35.  
  36. CREATE TABLE transaction(
  37. transaction_id char(5) constraint pk_tran primary key,
  38. transaction_date date default sysdate,
  39. return_date date default sysdate+7,
  40. borrower_id char(5) constraint fk_bor references borrower(borrower_id),
  41. book_id char(5) constraint fk_book references book(book_id),
  42. librarian_id char(5) constraint fk_lib references librarian(librarian_id)
  43. );
  44.  
  45. CREATE TABLE librarian(
  46. librarian_id char(5) constraint pk_lib primary key,
  47. librarian_name varchar2(30),
  48. birth_date date,
  49. address varchar2(30),
  50. phone varchar2(20) constraint lib_phone unique,
  51. email varchar2(30) constraint lib_email unique
  52. );
  53.  
  54. create sequence author_author_id_seq
  55. increment by 1 start with 1 nocache nocycle;
  56.  
  57. create sequence publisher_publisher_id_seq
  58. increment by 1 start with 1 nocache nocycle;
  59.  
  60. create sequence book_book_id_seq
  61. increment by 1 start with 1 nocache nocycle;
  62.  
  63. create sequence borrower_borrower_id_seq
  64. increment by 1 start with 1 nocache nocycle;
  65.  
  66. create sequence librarian_librarian_id_seq
  67. increment by 1 start with 1 nocache nocycle;
  68.  
  69. create sequence transaction_transaction_id_seq
  70. increment by 1 start with 1 nocache nocycle;
  71.  
  72.  
  73. insert into Author
  74. values('AU'||lpad(author_author_id_seq.nextval,3,0),'Robert Muir','23-MAY-62','Frenchs Forest');
  75. insert into Author
  76. values('AU'||lpad(author_author_id_seq.nextval,3,0),'Bruce Weinstein',NULL,NULL);
  77. insert into Author
  78. values('AU'||lpad(author_author_id_seq.nextval,3,0),'Craig Glenday','31-MAY-73','Dundae');
  79. insert into Author
  80. values('AU'||lpad(author_author_id_seq.nextval,3,0),'Stephenie Morgan','24-DEC-73','Hartford');
  81. insert into Author
  82. values('AU'||lpad(author_author_id_seq.nextval,3,0),'Jeffrey Kinney','19-FEB-71','Fort Washington');
  83.  
  84.  
  85. insert into publisher
  86. values ('PU'||LPAD(publisher_publisher_id_seq.nextval,3,0),'William Morrow and Company','New York','1926','William Morrow');
  87. insert into publisher
  88. values ('PU'||LPAD(publisher_publisher_id_seq.nextval,3,0),'Jim Pattison Group','Vancouver','1961','Jim Pattison, Glen Clark');
  89. insert into publisher
  90. values ('PU'||LPAD(publisher_publisher_id_seq.nextval,3,0),'Little, Brown and Company','New York','1837','Charles Coffin Little, James Brown');
  91. insert into publisher
  92. values ('PU'||LPAD(publisher_publisher_id_seq.nextval,3,0),'Amulet Books','New York','2004','Harry N. Abrams, Howard Reeves, Susan Van Metre');
  93. insert into publisher
  94. values ('PU'||LPAD(publisher_publisher_id_seq.nextval,3,0),'Penguin Group','City of Westminster','1935','Allen Lane');
  95.  
  96.  
  97. insert into Borrower
  98. values('BR'||lpad(borrower_borrower_id_seq.nextval,3,0),'Jeffry Steward Witarsah','24-JUL-93','Gading Serpong','08170110049','jeffrysw@yahoo.com');
  99. insert into Borrower
  100. values('BR'||lpad(borrower_borrower_id_seq.nextval,3,0),'Stevian Hebie Valentino','22-SEP-92','Tangerang','08150310074','stevianhv@gmail.com');
  101. insert into Borrower
  102. values('BR'||lpad(borrower_borrower_id_seq.nextval,3,0),'Vincencius Kevin','04-SEP-92','Bengkulu','08780110064','vincenciusk@yahoo.com');
  103. insert into Borrower
  104. values('BR'||lpad(borrower_borrower_id_seq.nextval,3,0),'Billy Permana Halim','21-OCT-92','Bumi Serpong Damai','08190110061','billyph@gmail.com');
  105. insert into Borrower
  106. values('BR'||lpad(borrower_borrower_id_seq.nextval,3,0),'Idul Futra','06-APR-92','Riau','08160110001','idulf@hotmail.com');
  107.  
  108.  
  109. insert into Librarian(librarian_id,librarian_name,birth_date,address,phone,email)
  110. values('LB'|| lpad(librarian_librarian_id_seq.nextval,3,0),'Steven Young','26-Dec-91','Bengkulu','08780110062','steveny@gmail.com');
  111. insert into Librarian(librarian_id,librarian_name,birth_date,address,phone,email)
  112. values('LB'|| lpad(librarian_librarian_id_seq.nextval,3,0),'Lisa Amanda','11-Apr-92','Jakarta','08170310021','lisaa@yahoo.com');
  113. insert into Librarian(librarian_id,librarian_name,birth_date,address,phone,email)
  114. values('LB'|| lpad(librarian_librarian_id_seq.nextval,3,0),'Marsel Widjaja','20-Aug-92','Tangerang','08780110090','marselw@gmail.com');
  115. insert into Librarian(librarian_id,librarian_name,birth_date,address,phone,email)
  116. values('LB'|| lpad(librarian_librarian_id_seq.nextval,3,0),'Giam Cen Jiang','01-Dec-92','Pekalongan','08150110122','giamcj@gmail.com');
  117. insert into Librarian(librarian_id,librarian_name,birth_date,address,phone,email)
  118. values('LB'|| lpad(librarian_librarian_id_seq.nextval,3,0),'Joko Haryanto','07-Jan-92','Serang','08160110137','jokoh@yahoo.com');
  119.  
  120.  
  121. insert into Book
  122. values('BK'||lpad(book_book_id_seq.nextval,3,0), 'Diary of a Wimpy Kid: The Third Wheel', '13-NOV-12', 'Comedy', '217', '5', 'AU005', 'PU004');
  123. insert into Book
  124. values('BK'||lpad(book_book_id_seq.nextval,3,0), 'Guinness World Records 2013', '11-SEP-12', 'Information', '288', '3', 'AU003', 'PU002');
  125. insert into Book
  126. values('BK'||lpad(book_book_id_seq.nextval,3,0), 'Breaking Dawn', '02-AUG-08', 'Paranormal Romance, Young-Adult Fiction', '756', '2', 'AU004', 'PU003');
  127. insert into Book
  128. values('BK'||lpad(book_book_id_seq.nextval,3,0), 'Eclipse', '07-AUG-07', 'Young-Adult, Fantasy, Romance', '629', '2', 'AU004', 'PU003');
  129. insert into Book
  130. values('BK'||lpad(book_book_id_seq.nextval,3,0), 'The Ultimate Ice Cream Book', '19-MAY-99', 'Cookbooks, Food and Drink', '256', '7', 'AU002', 'PU001');
  131. insert into Book
  132. values('BK'||lpad(book_book_id_seq.nextval,3,0), 'Sydney Seafood School Cookbook', '24-OCT-12', 'Food Preparation, Seafood, Recipes', '240', '5', 'AU001', 'PU005');
  133.  
  134.  
  135. insert into Transaction(transaction_id,transaction_date,return_date,borrower_id,book_id,librarian_id)
  136. values('TR' || lpad(transaction_transaction_id_seq.nextval,3,0),'07-Nov-12','14-Nov-12','BR003','BK005','LB001');
  137. insert into Transaction(transaction_id,transaction_date,return_date,borrower_id,book_id,librarian_id)
  138. values('TR' || lpad(transaction_transaction_id_seq.nextval,3,0),'10-Sep-12','17-Sep-12','BR002','BK002','LB004');
  139. insert into Transaction(transaction_id,transaction_date,return_date,borrower_id,book_id,librarian_id)
  140. values('TR' || lpad(transaction_transaction_id_seq.nextval,3,0),'13-Sep-12','20-Sep-12','BR005','BK003','LB003');
  141. insert into Transaction(transaction_id,transaction_date,return_date,borrower_id,book_id,librarian_id)
  142. values('TR' || lpad(transaction_transaction_id_seq.nextval,3,0),'02-Oct-12','09-Oct-12','BR001','BK003','LB002');
  143. insert into Transaction(transaction_id,transaction_date,return_date,borrower_id,book_id,librarian_id)
  144. values('TR' || lpad(transaction_transaction_id_seq.nextval,3,0),'23-Oct-12','30-Oct-12','BR004','BK006','LB002');
  145. insert into Transaction(transaction_id,transaction_date,return_date,borrower_id,book_id,librarian_id)
  146. values('TR' || lpad(transaction_transaction_id_seq.nextval,3,0),'30-Aug-12','06-Sep-12','BR001','BK004','LB001');
  147. insert into Transaction(transaction_id,transaction_date,return_date,borrower_id,book_id,librarian_id)
  148. values('TR' || lpad(transaction_transaction_id_seq.nextval,3,0),'27-Jul-12','03-Aug-12','BR003','BK006','LB003');
  149. insert into Transaction(transaction_id,transaction_date,return_date,borrower_id,book_id,librarian_id)
  150. values('TR' || lpad(transaction_transaction_id_seq.nextval,3,0),'08-Aug-12','15-Aug-12','BR005','BK002','LB004');
  151.  
  152. CREATE OR REPLACE VIEW transaction_view AS
  153. SELECT TO_CHAR(tran.transaction_date,'fmdd Month rrrr') "Transaction Date",
  154. bor.borrower_name "Borrower Name", book.book_title "Book Title",
  155. lib.librarian_name "Librarian Name"
  156. FROM Transaction tran
  157. JOIN Borrower bor on tran.borrower_id=bor.borrower_id
  158. JOIN Librarian lib on tran.librarian_id=lib.librarian_id
  159. JOIN Book book on tran.book_id=book.book_id
  160. ORDER BY tran.transaction_date;
  161.  
  162. SELECT * FROM transaction_view;
  163.  
  164.  
  165.  
  166. SELECT librarian_name as "Librarian Name"
  167. FROM librarian
  168. WHERE librarian_id not in (
  169. SELECT librarian_id from transaction
  170. );
  171.  
  172. insert into Transaction(transaction_id,borrower_id,book_id,librarian_id)
  173. values('TR'||lpad(transaction_transaction_id_seq.nextval,3,0),'BR003','BK003','LB001');
  174.  
  175. update Book
  176. set stock=stock-1
  177. where book_title='Breaking Dawn';
  178.  
  179. CREATE OR REPLACE VIEW cookbooks AS
  180. SELECT book.book_title "Book Title", aut.author_name "Author Name", pub.publisher_name "Publisher Name"
  181. FROM Book book
  182. JOIN Author aut on book.author_id = aut.author_id
  183. JOIN Publisher pub on book.publisher_id = pub.publisher_id
  184. WHERE book.genre LIKE 'Food%' or book.genre LIKE '%Food' or book.genre LIKE '%Food%'
  185. ORDER BY 1 asc;
  186.  
  187. DROP VIEW transaction_view;
  188. DROP VIEW cookbooks;
  189.  
  190. DROP SEQUENCE author_author_id_seq;
  191. DROP SEQUENCE publisher_publisher_id_seq;
  192. DROP SEQUENCE book_book_id_seq;
  193. DROP SEQUENCE borrower_borrower_id_seq;
  194. DROP SEQUENCE librarian_librarian_id_seq;
  195. DROP SEQUENCE transaction_transaction_id_seq;
  196.  
  197. DROP TABLE transaction;
  198. DROP TABLE book;
  199. DROP TABLE author;
  200. DROP TABLE publisher;
  201. DROP TABLE borrower;
  202. DROP TABLE librarian;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement