You are on page 1of 9

Nama: Hans Christian Conrad

NIM: 2440039322

Essay

Based on the table,

1. Please calculate the cardinality and the degree! (10%) (LO1)


Cardinality adalah jumlah dari tuples, dimana berjumlah 3.
Degree adalah jumlah darii attributes dari relations, dimana berjumlah 7.

2. Please create a relational algebra to view the item which is priced more than 1.000.000
σprice > 100000 (item)
Nama: Hans Christian Conrad
NIM: 2440039322

Case

• A new customer is required to register the account, pick the membership type, and pay the
necessary cost.
• The systems must be able to manage the detailed information of each member.
• There are two membership types: silver dan gold. This membership is necessary to borrow
books and read on the spot.
• Silver membership can be obtained by showing the id card and filling the registration form
without any cost.
• On the other hand, Rp 20000 registration costs and Rp 10000 monthly costs are needed to get a
gold membership.
• Gold member is entitled to special delivery and pick-up services from Vis Library to avoid a late
book return.
• The systems must be able to manage the detailed information of each book including its
availability.
• Each member can borrow only two books in one transaction, and the borrowing period is 7
working days.
• There is an AudioBook version for some of the books. To distinguish the physical book from its
Audio version, a different product_id format will be applied. The physical book will have 10-
Nama: Hans Christian Conrad
NIM: 2440039322

digits numbers, while the audio version id will be started by “AU” and followed by 3-digit
numbers (e.g., AU241).
• Each late book return will be fined Rp 1000 per day, and the maximum fine is Rp. 20000.
• All book borrowing services in Vis Library will be handled by a registered and authorized
operator.
• Book delivery and pick-up service will be scheduled by the operator and to be assigned to a
courier.
• Several forms are required for the system. Three main important ones are:
o Loan Form, capture all information related to a book borrowing transaction
o Return Form, capture detailed information of all books return and the condition.
o Member Profile, capture detailed information of each member

1. Please create a set of third normal form relations. You must show all relations at each stage in
the normalization process! (20%)(LO3)

PrimaryKey(PK)
ForeignKey(FK)
PrimaryKey&ForeignKey(PK&FK)

UNF:

BookId, BookTitle, Edition, ISBN, QTY, AudioBook, Loan, DeliveryFee, LTotal, LLocationAndDate,
LOperator, RMemberID, MemberName, MemberAddress, MemberDOB, RDate, RDay,
ROperatorID, ROperatorName, RMemberType, BookID, BookTitle, Edition, ISBN, QTY,
AudioBook, BookCondition, Fine, PickUpFee, RTotal, RLocationAndDate, ROperator,
MPMemberID, MPIDCardNumber, MPMemberName, MPMemberDOB, MemberPhone,
MPMemberAddress.

1NF:

BookId, BookTitle, Edition, ISBN, QTY, QTY, AudioBookID, AudioBookTitle, BookCondition, Stock,
Loan, MemberID, IDCardNumber, MemberName, MemberAddress, MemberPhone,
MemberDOB, MemberType, RFine, LLocation, RLocation, LDate, RDate, Operator, OperatorID,
OperatorName, OperatorAddress, OperatorPhone, OperatorDOB, DeliveryFee, PickUpFee,
RegistrationFee, SubscriptionFee, LTotalFee, RTotalFee.
Nama: Hans Christian Conrad
NIM: 2440039322

2NF:

MsBook

BookID(PK), BookTitle, Edition, ISBN, AudioBookTitle AudioBookID, Stock.

TrLoan

MemberID(PK), IDCardNumber, MemberName, MemberAddress, MemberPhone,


MemberDOB, MemberType, BookCondition, Loan, LQTY, LLocation, LDate, LOperatorID,
LOperatorName, DeliveryFee, PickUpFee, RegistrationFee, SubscriptionFee, LTotalFee.

TrReturn

ReturnID(PK), IDCardNumber, MemberName, MemberAddress, MemberPhone,


MemberDOB, MemberType, BookCondition, RQTY, RLocation, RDate, ROperatorID,
ROperatorName, DeliveryFee, PickUpFee, RegistrationFee, SubscriptionFee, RTotalFee.

3NF:

MsBook

BookID(PK), BookTitle, Edition, ISBN, Stock, AudioBookID(FK).

MsAudioBook

AudioBookID(PK), AudioBookTitle

MsMembershipType

IDCardNumber(PK), MemberType, RegistrationFee, SubscriptionFee.

MsMember

MemberID(PK), IDCardNumber(FK), MemberName, MemberAddress, MemberPhone,


MemberDOB.

MsOperator

OperatorID(PK), OperatorName, OperatorAddress, OperatorPhone, OperatorDOB.

TrLoanHeader

LoanID(PK), MemberID(FK), Operator(FK).

TrLoanDetail

LoanID(PK&FK), BookID(PK&FK), LQTY, Loan, DeliveryFee, LLocation, LDate, LTotalFee.

TrReturnHeader

ReturnID(PK), MemberID(FK), Operator(FK)

TrReturnDetail
Nama: Hans Christian Conrad
NIM: 2440039322

ReturnID(PK&FK), BookID(PK&FK), RQTY, BookCondition, Fine, RLocation, RDate,


PickUpFee, RTotalFee.

2. Please create an appropriate ERD, including the relationship and multiplicity! (20%)(LO3)
Nama: Hans Christian Conrad
NIM: 2440039322

3. Based on the ERD that you made, please create the entire table and the constraints (based on
the explanation above)! (20%) (LO2)

1. CREATE TABLE MsAudioBook (


2. AudioBookID CHAR(5) PRIMARY KEY,
3. AudioBookTitle VARCHAR(150) NOT NULL,
4. CONSTRAINT ConfirmAudioBookID
5. CHECK(AudioBookID LIKE 'AU[0-9][0-9][0-9]')
6. )
7.
8.
9. CREATE TABLE MsBook (
10. BookID CHAR(10) PRIMARY KEY,
11. BookTitle VARCHAR(150) NOT NULL,
12. ISBN VARCHAR(150) NOT NULL,
13. Edition INT NOT NULL,
14. Stock INT NOT NULL,
15. AudioBookID CHAR(5) NOT NULL
16. CHECK(AudioBookID LIKE 'AU[0-9][0-9][0-9]')
17. FOREIGN KEY REFERENCES MsAudioBook(AudioBookID)
18. ON DELETE
19. CASCADE ON
20. UPDATE CASCADE,
21. CONSTRAINT ConfirmBookID
22. CHECK(BookID LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-
9][0-9]')
23. )
24.
25.
26. CREATE TABLE MsMembershipType (
27. IDCardNumber CHAR(10) PRIMARY KEY,
28. MemberType VARCHAR(15) NOT NULL,
29. CONSTRAINT ConfirmIDCardNumber
30. CHECK(IDCardNumber LIKE 'ID[0-9][0-9][0-9][0-9][0-9][0-9][0-
9][0-9]')
31. )
32.
33.
34. CREATE TABLE MsMember (
35. MemberID CHAR(10) PRIMARY KEY,
36. IDCardNumber CHAR(10) NOT NULL
37. CHECK(IDCardNumber LIKE 'ID[0-9][0-9][0-9][0-9][0-9][0-9][0-
9][0-9]')
38. FOREIGN KEY REFERENCES MsMembershipType(IDCardNumber)
39. ON DELETE
40. CASCADE ON
41. UPDATE CASCADE,
42.
43. MemberName VARCHAR(150) NOT NULL,
44. MemberAddress VARCHAR(150) NOT NULL,
45. MemberPhone VARCHAR(15) NOT NULL,
46. MemberDOB DATE NOT NULL,
47. CONSTRAINT ConfirmMemberID
Nama: Hans Christian Conrad
NIM: 2440039322
48. CHECK(MemberID LIKE 'MEM[0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
49. )
50.
51.
52. CREATE TABLE MsOperator (
53. OperatorID CHAR(10) PRIMARY KEY,
54. OperatorName VARCHAR(150) NOT NULL,
55. OperatorAddress VARCHAR(150) NOT NULL,
56. OperatorPhone VARCHAR(15) NOT NULL,
57. OperatorDOB DATE NOT NULL,
58. CONSTRAINT ConfirmOperatorID
59. CHECK(OperatorID LIKE 'OPE[0-9][0-9][0-9][0-9][0-9][0-9][0-
9]')
60. )
61.
62.
63.
64. CREATE TABLE TrLoanHeader (
65. LoanID CHAR(10) PRIMARY KEY
66. CHECK(LoanID LIKE 'LOA[0-9][0-9][0-9]'),
67. MemberID CHAR(10) NOT NULL
68. CHECK(MemberID LIKE 'MEM[0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
69. FOREIGN KEY REFERENCES MsMember(MemberID)
70. ON DELETE
71. CASCADE ON
72. UPDATE CASCADE,
73. OperatorID CHAR(10) NOT NULL
74. CHECK(OperatorID LIKE 'OPE[0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
75. FOREIGN KEY REFERENCES MsOperator(OperatorID)
76. ON DELETE
77. CASCADE ON
78. UPDATE CASCADE,
79. )
80.
81.
82. CREATE TABLE TrReturnHeader (
83. ReturnID CHAR(10) PRIMARY KEY
84. CHECK(ReturnID LIKE 'RET[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
85. MemberID CHAR(10) NOT NULL
86. CHECK(MemberID LIKE 'MEM[0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
87. FOREIGN KEY REFERENCES MsMember(MemberID)
88. ON DELETE
89. CASCADE ON
90. UPDATE CASCADE,
91. OperatorID CHAR(10) NOT NULL
92. CHECK(OperatorID LIKE 'OPE[0-9][0-9][0-9][0-9][0-9][0-9][0-
9]')
93. FOREIGN KEY REFERENCES MsOperator(OperatorID)
94. ON DELETE
95. CASCADE ON
96. UPDATE CASCADE,
97. )
98.
99.
100. CREATE TABLE TrLoanDetails(
101. LoanID CHAR(10)
102. CHECK (LoanID LIKE 'LOA[0-9][0-9][0-9][0-9][0-9][0-
9][0-9]')
Nama: Hans Christian Conrad
NIM: 2440039322
103. FOREIGN KEY REFERENCES TrLoanHeader(LoanID)
104. ON DELETE
105. CASCADE ON
106. UPDATE CASCADE,
107. BookID CHAR(10)
108. CHECK(BookID LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-
9][0-9][0-9][0-9]')
109. FOREIGN KEY REFERENCES MsBook(BookId)
110. ON DELETE
111. CASCADE ON
112. UPDATE CASCADE,
113. PRIMARY KEY (LoanID, BooKID),
114. Loan INT NOT NULL,
115. DeliveryFee INT NOT NULL,
116. LQTY INT NOT NULL
117. CHECK(LQTY <= 2),
118. LTotalFee INT NOT NULL,
119. LLocation VARCHAR(150),
120. LDate DATE NOT NULL
121.
122. )
123.
124.
125. CREATE TABLE TrReturnDetails(
126. ReturnID CHAR(10)
127. CHECK(ReturnID LIKE 'RET[0-9][0-9][0-9][0-9][0-9][0-
9][0-9]')
128. FOREIGN KEY REFERENCES TrReturnHeader(ReturnID)
129. ON DELETE
130. CASCADE ON
131. UPDATE CASCADE,
132. BookID CHAR(10)
133. CHECK(BookID LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-
9][0-9][0-9][0-9]')
134. FOREIGN KEY REFERENCES MsBook(BookID)
135. ON DELETE
136. CASCADE ON
137. UPDATE CASCADE,
138. PRIMARY KEY (ReturnID, BooKID),
139. Fine INT NOT NULL,
140. PickUpFee INT NOT NULL,
141. RQTY INT NOT NULL,
142. RTotalFee INT NOT NULL,
143. BookCondition VARCHAR(150) NOT NULL,
144. RLocation VARCHAR(150) NOT NULL,
145. RDate DATE NOT NULL,
146. )

4. Based on your table (in point 3), please change the constraint for physical book product_id with this
format: started with “PBV” and followed by 4-digit numbers (e.g., PBV4252)! (10%)(LO2).

ALTER TABLE MsBook


DROP CONSTRAINT ConfirmBookID

ALTER TABLE MsBook


Nama: Hans Christian Conrad
NIM: 2440039322
ADD CONSTRAINT ConfirmBookID
CHECK(BookID LIKE 'PBV[0-9][0-9][0-9][0-9]')

5. Please create a 3-minutes video to explain the normalization process (in point 1). Please include the
link to your video in your answer sheet! (10%)

https://drive.google.com/drive/folders/1euPAZ68AYpAYmGvyk3dSdQVzT77hT8_c?usp=sharing

You might also like