Hostel Management System
Hostel Management System
Team Members:
Name: Aniket Dasurkar Roll No: 197109 Section: A
Name: Gayathri Magesh Roll No: 197229 Section: B
Name: S. S. Lakshayapriya Roll No: 197270 Section: B
Introduction
___________________________________________________________________
ER Model Assumptions
● A Student can reside in one hostel room. Multiple students can stay in
a single hostel room. Each student is allotted a hostel room.
● Each hostel is assigned a mess. A mess can provide food for multiple
hostels.
● A student can have multiple visitors.
● Every student has to make a payment towards the hostel. A student
can make multiple payments too.
● Admins are allotted to each hostel. A hostel can have multiple admins.
● A student can have multiple logs in STUDENT_LOG, for each time they
leave the hostel.
1
Entity- Relationship Diagram
2
Creation Of Tables
1. Table MESS
CREATE TABLE MESS (
MESS_NAME VARCHAR2(30),
MESS_NO NUMBER PRIMARY KEY,
BREAKFAST VARCHAR2(30),
LUNCH VARCHAR2(30),
DINNER VARCHAR2(30),
FEES NUMBER
);
INSERT INTO MESS VALUES ('IFC A', 201, '7:00 AM - 8:00 AM', '11:30 AM - 12:30
PM', '7:00 PM - 8:00 PM', 200);
INSERT INTO MESS VALUES ('IFC B', 202, '7:30 AM - 8:30 AM', '1:30 PM - 2:30 PM',
'8:00 PM - 9:00 PM', 350);
INSERT INTO MESS VALUES ('IFC C', 203, '7:00 AM - 8:00 AM', '12:00 PM - 1:00
PM', '7:00 PM - 8:00 PM', 175);
INSERT INTO MESS VALUES ('Kaveri', 204, '8:00 AM - 9:00 AM', '11:30 AM - 12:30
PM', '7:00 PM - 8:00 PM', 250);
INSERT INTO MESS VALUES ('Godavari', 205, '7:00 AM - 8:00 AM', '11:30 AM -
12:30 PM', '7:30 PM - 8:30 PM', 300);
INSERT INTO MESS VALUES ('Ganga', 206, '7:00 AM - 8:00 AM', '1:00 PM - 2:00
PM', '8:00 PM - 9:00 PM', 150);
INSERT INTO MESS VALUES ('Yamuna', 207, '7:30 AM - 8:30 AM', '11:30 AM - 12:00
PM', '7:00 PM - 8:00 PM', 225);
INSERT INTO MESS VALUES ('Narmada', 208, '7:00 AM - 8:00 AM', '1:00 PM - 2:00
PM', '8:30 PM - 9:30 PM', 320);
INSERT INTO MESS VALUES ('Indus', 209, '8:30 AM - 9:30 AM', '12:00 PM - 1:00
PM', '7:00 PM - 8:00 PM', 200);
INSERT INTO MESS VALUES ('Krishna', 210, '7:00 AM - 8:00 AM', '12:30 PM - 1:30
PM', '7:30 PM - 8:30 PM', 400);
3
2. Table HOSTEL
CREATE TABLE HOSTEL (
HOSTEL_ID NUMBER PRIMARY KEY,
HOSTEL_NAME VARCHAR2(30),
FLOORS NUMBER,
NO_OF_ROOMS NUMBER,
MESS_NO NUMBER,
FOREIGN KEY (MESS_NO) REFERENCES MESS(MESS_NO)
);
4
3. Table ROOM
CREATE TABLE ROOM (
ROOM_NO NUMBER PRIMARY KEY,
OCCUPANCY NUMBER,
AVAIL VARCHAR2(30),
HOSTEL_ID NUMBER,
FOREIGN KEY(HOSTEL_ID) REFERENCES HOSTEL(HOSTEL_ID)
);
5
INSERT INTO ROOM VALUES(701, 3, 'YES', 107);
INSERT INTO ROOM VALUES(703, 3, 'YES', 107);
INSERT INTO ROOM VALUES(801, 3, 'YES', 108);
INSERT INTO ROOM VALUES(802, 3, 'YES', 108);
INSERT INTO ROOM VALUES(901, 1, 'YES', 109);
INSERT INTO ROOM VALUES(902, 1, 'NO', 109);
INSERT INTO ROOM VALUES(1001, 2, 'NO', 110);
INSERT INTO ROOM VALUES(1002, 2, 'YES', 110);
4. Table ADMIN
CREATE TABLE ADMIN (
FACULTY_ID NUMBER PRIMARY KEY,
FAC_NAME VARCHAR2(20),
CONTACT_NO NUMBER,
6
HOSTEL_ID NUMBER,
FOREIGN KEY (HOSTEL_ID) REFERENCES HOSTEL(HOSTEL_ID)
);
7
5. Table ENQUIRY
CREATE TABLE ENQUIRY (
COMPLAINT_NO NUMBER PRIMARY KEY,
HOSTEL_ID NUMBER,
FACULTY_ID NUMBER,
E_DATE DATE,
STATUS VARCHAR(20)
FOREIGN KEY(HOSTEL_ID) REFERENCES HOSTEL(HOSTEL_ID),
FOREIGN KEY(FACULTY_ID) REFERENCES ADMIN(FACULTY_ID)
);
8
6. Table STUDENT
CREATE TABLE STUDENT (
STUD_ID NUMBER PRIMARY KEY,
NAME VARCHAR2(30),
YEAR_OF_STUDY NUMBER,
CONTACT NUMBER,
EMAIL VARCHAR2(50),
ROOM_NO NUMBER,
ADDRESS VARCHAR2(30),
HOSTEL_ID NUMBER,
FOREIGN KEY(ROOM_NO) REFERENCES ROOM(ROOM_NO),
FOREIGN KEY(HOSTEL_ID) REFERENCES HOSTEL(HOSTEL_ID)
);
9
INSERT INTO STUDENT VALUES(1979,'KARTIK', 3,
9767834267,'[email protected]', 401, 'MUMBAI', 104);
INSERT INTO STUDENT VALUES(1980,'VENKAT', 2,
9841278327,'[email protected]', 405, 'HYDERABAD',104);
INSERT INTO STUDENT VALUES(1981,'RIDDHI', 2,
7312343902,'[email protected]', 405, 'DELHI',104);
INSERT INTO STUDENT VALUES(1982,'KHUSHI', 3,
9735168313,'[email protected]', 601, 'BIHAR',106);
INSERT INTO STUDENT VALUES(1983,'VINAY', 3,
81246706421,'[email protected]', 602, 'KOLKATA',106);
INSERT INTO STUDENT VALUES(1984,'ANSILA', 2,
9849514939,'[email protected]', 701, 'PUNE',107);
INSERT INTO STUDENT VALUES(1985,'PRANITHA', 2,
9917351846,'[email protected]', 701, 'JAIPUR',107);
INSERT INTO STUDENT VALUES(1986,'SUMAN', 2,
7761945190,'[email protected]', 701, 'DELHI',107);
INSERT INTO STUDENT VALUES(1987,'VARUN', 4,
8414561804,'[email protected]', 703, 'MUMBAI',107);
INSERT INTO STUDENT VALUES(1988,'SHARATH', 4,
8073158532,'[email protected]', 703, 'BHOPAL',107);
INSERT INTO STUDENT VALUES(1989,'MOHAN', 4,
9974159084,'[email protected]', 703, 'KOCHI',107);
INSERT INTO STUDENT VALUES(1990,'AYUSH', 3,
9743243817,'[email protected]', 201, 'CHENNAI',102);
INSERT INTO STUDENT VALUES(1991,'DEVDUTT', 3,
9545234576,'[email protected]', 801, 'PUNE',108);
INSERT INTO STUDENT VALUES(1992,'VIRAT', 2,
9634275665,'[email protected]', 801, 'KOLKATA', 108);
INSERT INTO STUDENT VALUES(1993,'SHAHBAZ', 2,
9403335435,'[email protected]', 801, 'LUCKNOW', 108);
INSERT INTO STUDENT VALUES(1994,'HARSHAL', 3,
9403232123,'[email protected]', 802, 'DELHI', 108);
10
INSERT INTO STUDENT VALUES(1995,'ANANYA', 3,
9827213532,'[email protected]', 802, 'AHMEDABAD',108);
INSERT INTO STUDENT VALUES(1996,'GLEN', 3,
9814326543,'[email protected]', 802, 'CALICUT',108);
INSERT INTO STUDENT VALUES(1997,'RAVINDRA', 4,
9321147837,'[email protected]', 901, 'VIZAG', 109);
INSERT INTO STUDENT VALUES(1998,'PRIYA', 2,
9232991017,'[email protected]', 1002, 'DARJEELING',110);
INSERT INTO STUDENT VALUES(1999,'PRIYANKA', 2,
9328881201,'[email protected]', 1002, 'SRINAGAR', 110);
11
7. Table PAYMENT
CREATE TABLE PAYMENT (
TRANS_ID NUMBER PRIMARY KEY,
MODE_OF_PAYMENT VARCHAR2(20),
HOSTEL_ID NUMBER,
STUD_ID NUMBER,
FOREIGN KEY (HOSTEL_ID) REFERENCES HOSTEL(HOSTEL_ID),
FOREIGN KEY (STUD_ID) REFERENCES STUDENT (STUD_ID)
);
12
INSERT INTO PAYMENT VALUES (1709543, 'RTGS', 108, 1992);
INSERT INTO PAYMENT VALUES (1712589, 'UPI', 108, 1993);
INSERT INTO PAYMENT VALUES (1721569, 'NEFT', 108, 1994);
INSERT INTO PAYMENT VALUES (1705121, 'NEFT', 108, 1995);
INSERT INTO PAYMENT VALUES (1711451, 'DEBIT CARD', 108, 1996);
INSERT INTO PAYMENT VALUES (1724078, 'CASH', 109, 1997);
INSERT INTO PAYMENT VALUES (1782324, 'NEFT', 110, 1998);
INSERT INTO PAYMENT VALUES (1721397, 'RTGS', 110, 1999);
INSERT INTO PAYMENT VALUES (1739862, 'RTGS', 107, 1984);
INSERT INTO PAYMENT VALUES (1723687, 'NEFT', 101, 1972);
INSERT INTO PAYMENT VALUES (1974102, 'RTGS', 109, 1997);
INSERT INTO PAYMENT VALUES (1701479, 'CASH', 104, 1978);
INSERT INTO PAYMENT VALUES (1895420, 'DEBIT CARD', 102, 1990);
13
8. Table VISITOR
CREATE TABLE VISITOR(
VISITOR_ID NUMBER PRIMARY KEY NOT NULL,
VISITOR_NAME VARCHAR2(50) NOT NULL,
STUD_ID NUMBER,
VISITING_DATE DATE,
TIME_IN VARCHAR2(15),
TIME_OUT VARCHAR2(15),
FOREIGN KEY (STUD_ID) REFERENCES STUDENT(STUD_ID)
);
14
INSERT INTO VISITOR VALUES(712,'PRIYANKA
AHUJA',1988,'02-APR-21','18:24','21:02');
INSERT INTO VISITOR VALUES(713,'VEENA
PATEL',1987,'07-APR-21','07:36','10:20');
INSERT INTO VISITOR VALUES(714,'BHARGAVI
REDDY',1980,'11-APR-21','14:41','18:05');
INSERT INTO VISITOR VALUES(715,'SOURAV
DHAWAN',1990,'20-APR-21','12:37','15:58');
9. Table STUDENT_LOG
CREATE TABLE STUDENT_LOG(
STUD_ID NUMBER,
DATE_OF_DEP DATE,
DATE_OF_ARR DATE,
PLACE VARCHAR2(30),
PURPOSE_OF_VISIT VARCHAR2(30),
PRIMARY KEY(STUD_ID, DATE_OF_DEP),
FOREIGN KEY (STUD_ID) REFERENCES STUDENT(STUD_ID)
);
15
INSERT INTO STUDENT_LOG VALUES(1970, '19-NOV-20', '29-NOV-20', 'CHENNAI',
'VACATION');
INSERT INTO STUDENT_LOG VALUES(1972, '20-NOV-20', '28-NOV-20', 'MUMBAI',
'VACATION');
INSERT INTO STUDENT_LOG VALUES(1973, '20-NOV-20', '28-NOV-20', 'KOCHI',
'VACATION');
INSERT INTO STUDENT_LOG VALUES(1984, '21-NOV-20', '29-NOV-20', 'PUNE',
'VACATION');
INSERT INTO STUDENT_LOG VALUES(1991, '21-NOV-20', '29-NOV-20', 'PUNE',
'VACATION');
INSERT INTO STUDENT_LOG VALUES(1986, '09-DEC-20', '12-DEC-20', 'DELHI',
'EMERGENCY');
INSERT INTO STUDENT_LOG VALUES(1975, '22-DEC-20', '30-DEC-20', 'CHENNAI',
'VACATION');
INSERT INTO STUDENT_LOG VALUES(1976, '22-DEC-20', '30-DEC-20',
'HYDERABAD', 'VACATION');
INSERT INTO STUDENT_LOG VALUES(1979, '22-DEC-20', '30-DEC-20', 'MUMBAI',
'VACATION');
INSERT INTO STUDENT_LOG VALUES(1981, '22-DEC-20', '30-DEC-20', 'DELHI',
'VACATION');
INSERT INTO STUDENT_LOG VALUES(1983, '06-JAN-21', '12-JAN-21', 'KOLKATA',
'EMERGENCY');
INSERT INTO STUDENT_LOG VALUES(1985, '09-JAN-21', '14-JAN-21', 'JAIPUR',
'EMERGENCY');
INSERT INTO STUDENT_LOG VALUES(1993, '12-JAN-21', '17-JAN-21', 'LUCKNOW',
'VACATION');
INSERT INTO STUDENT_LOG VALUES(1994, '12-JAN-21', '17-JAN-21', 'DELHI',
'VACATION');
INSERT INTO STUDENT_LOG VALUES(1995, '12-JAN-21', '17-JAN-21',
'AHMEDABAD', 'VACATION');
INSERT INTO STUDENT_LOG VALUES(1973, '22-JAN-21', '17-JAN-21', 'KOCHI',
'EMERGENCY');
16
INSERT INTO STUDENT_LOG VALUES(1981, '03-FEB-21', '17-JAN-21', 'DELHI',
'VACATION');
INSERT INTO STUDENT_LOG VALUES(1994, '14-FEB-21', '17-JAN-21', 'DELHI',
'VACATION');
17
Normalisation:
1. Table MESS
Functional Dependencies:
The given relation is in it’s highest normal form i.e, BCNF, since the LHS of all
the functional dependencies are superkeys (MESS_NO, MESS_NAME) for
the relation.
2. Table HOSTEL
Functional Dependencies:
18
HOSTEL_NAME+ = {HOSTEL_NAME, HOSTEL_ID, FLOORS,
NO_OF_ROOMS, MESS_NO}
Candidate Keys: HOSTEL_ID, HOSTEL_NAME
Primary Key: HOSTEL_ID
The given relation is in it’s highest normal form i.e, BCNF, since the LHS of all
the functional dependencies are superkeys (HOSTEL_ID, HOSTEL_NAME) for
the relation.
3. Table ROOM
Functional Dependencies:
4. Table ADMIN
Functional Dependencies:
19
Candidate Keys: FACULTY_ID, FAC_NAME
Primary Key: FACULTY_ID
The given relation is in it’s highest normal form i.e, BCNF, since the LHS of all
the functional dependencies are superkeys (FACULTY_ID, FAC_NAME) for
the relation.
5. Table ENQUIRY
Functional Dependencies:
6. Table STUDENT
Functional Dependencies:
20
Closure of ROOM_NO:
ROOM_NO+ = {ROOM_NO, HOSTEL_ID}
The given relation is not in BCNF because the LHS of the functional
dependency ROOM_NO → HOSTEL_ID i.e ROOM_NO, is not a super key.
The given relation is in 2NF because there are no partial dependencies, i.e.
the proper subset of any candidate key doesn't determine a non prime
attribute.
● Table STUDENT
CREATE TABLE STUDENT (
STUD_ID NUMBER PRIMARY KEY,
NAME VARCHAR2(30),
YEAR_OF_STUDY NUMBER,
CONTACT NUMBER,
EMAIL VARCHAR2(50),
ROOM_NO NUMBER,
ADDRESS VARCHAR2(30),
FOREIGN KEY(ROOM_NO) REFERENCES ROOM(ROOM_NO)
);
21
INSERT INTO STUDENT VALUES(1971,'GAYATHRI',
2,9787894567,'[email protected]', 101, 'CHENNAI');
INSERT INTO STUDENT VALUES(1972,'KAJAL', 2,
9820934267,'[email protected]', 101, 'MUMBAI');
INSERT INTO STUDENT VALUES(1973,'ANIKET', 3,
9827000987,'[email protected]', 102, 'KOCHI');
INSERT INTO STUDENT VALUES(1974,'RAJESH', 3,
9927234567,'[email protected]', 102, 'BANGALORE');
INSERT INTO STUDENT VALUES(1975,'ROHAN', 3,
9827234567,'[email protected]', 102, 'CHENNAI');
INSERT INTO STUDENT VALUES(1976,'OMAR', 3,
8834934267,'[email protected]', 201, 'HYDERABAD');
INSERT INTO STUDENT VALUES(1977,'AASHNA', 2,
9820002167,'[email protected]', 302, 'DELHI');
INSERT INTO STUDENT VALUES(1978,'ABHISHEK', 3,
9880934208,'[email protected]', 401, 'KOLKATA');
INSERT INTO STUDENT VALUES(1979,'KARTIK', 3,
9767834267,'[email protected]', 401, 'MUMBAI');
INSERT INTO STUDENT VALUES(1980,'VENKAT', 2,
9841278327,'[email protected]', 405, 'HYDERABAD');
INSERT INTO STUDENT VALUES(1981,'RIDDHI', 2,
7312343902,'[email protected]', 405, 'DELHI');
INSERT INTO STUDENT VALUES(1982,'KHUSHI', 3,
9735168313,'[email protected]', 601, 'BIHAR');
INSERT INTO STUDENT VALUES(1983,'VINAY', 3,
81246706421,'[email protected]', 602, 'KOLKATA');
INSERT INTO STUDENT VALUES(1984,'ANSILA', 2,
9849514939,'[email protected]', 701, 'PUNE');
INSERT INTO STUDENT VALUES(1985,'PRANITHA', 2,
9917351846,'[email protected]', 701, 'JAIPUR');
INSERT INTO STUDENT VALUES(1986,'SUMAN', 2,
7761945190,'[email protected]', 701, 'DELHI');
22
INSERT INTO STUDENT VALUES(1987,'VARUN', 4,
8414561804,'[email protected]', 703, 'MUMBAI');
INSERT INTO STUDENT VALUES(1988,'SHARATH', 4,
8073158532,'[email protected]', 703, 'BHOPAL');
INSERT INTO STUDENT VALUES(1989,'MOHAN', 4,
9974159084,'[email protected]', 703, 'KOCHI');
INSERT INTO STUDENT VALUES(1990,'AYUSH', 3,
9743243817,'[email protected]', 201, 'CHENNAI');
INSERT INTO STUDENT VALUES(1991,'DEVDUTT', 3,
9545234576,'[email protected]', 801, 'PUNE');
INSERT INTO STUDENT VALUES(1992,'VIRAT', 2,
9634275665,'[email protected]', 801, 'KOLKATA');
INSERT INTO STUDENT VALUES(1993,'SHAHBAZ', 2,
9403335435,'[email protected]', 801, 'LUCKNOW');
INSERT INTO STUDENT VALUES(1994,'HARSHAL', 3,
9403232123,'[email protected]', 802, 'DELHI');
INSERT INTO STUDENT VALUES(1995,'ANANYA', 3,
9827213532,'[email protected]', 802, 'AHMEDABAD');
INSERT INTO STUDENT VALUES(1996,'GLEN', 3,
9814326543,'[email protected]', 802, 'CALICUT');
INSERT INTO STUDENT VALUES(1997,'RAVINDRA', 4,
9321147837,'[email protected]', 901, 'VIZAG');
INSERT INTO STUDENT VALUES(1998,'PRIYA', 2,
9232991017,'[email protected]', 1002, 'DARJEELING');
INSERT INTO STUDENT VALUES(1999,'PRIYANKA', 2,
9328881201,'[email protected]', 1002, 'SRINAGAR');
23
Functional Dependencies:
STUD_ID → NAME, YEAR_OF_STUDY, CONTACT, EMAIL, ROOM_NO,
ADDRESS
The given relation is in it’s highest normal form i.e, BCNF, since the LHS of all
the functional dependencies are superkeys (STUD_ID) for the relation.
24
● Table ACCOMMODATION
CREATE TABLE ACCOMMODATION (
ROOM_NO NUMBER PRIMARY KEY,
HOSTEL_ID NUMBER,
FOREIGN KEY(ROOM_NO) REFERENCES ROOM(ROOM_NO),
FOREIGN KEY(HOSTEL_ID) REFERENCES HOSTEL(HOSTEL_ID)
);
25
Functional Dependencies:
ROOM_NO → HOSTEL_ID
The given relation is in it’s highest normal form i.e, BCNF, since the LHS of all
the functional dependencies are superkeys (ROOM_NO) for the relation.
7. Table PAYMENT
Functional Dependencies:
26
Closure of TRANS_ID:
TRANS_ID+ = {TRANS_ID, MODE_OF_PAYMENT, HOSTEL_ID, STUD_ID}
Closure of STUD_ID:
STUD_ID+ = {STUD_ID, HOSTEL_ID}
The given relation is not in BCNF because the LHS of the functional
dependency STUD_ID → HOSTEL_ID i.e STUD_ID, is not a super key.
The given relation is in 2NF because there are no partial dependencies, i.e.
the proper subset of any candidate key doesn't determine a non prime
attribute.
● Table PAYMENT
CREATE TABLE PAYMENT (
TRANS_ID NUMBER PRIMARY KEY,
MODE_OF_PAYMENT VARCHAR2(20),
STUD_ID NUMBER,
FOREIGN KEY (STUD_ID) REFERENCES STUDENT (STUD_ID)
);
27
INSERT INTO PAYMENT VALUES (1784910, 'DEBIT CARD', 1974);
INSERT INTO PAYMENT VALUES (1700532, 'PAYTM WALLET', 1975);
INSERT INTO PAYMENT VALUES (1711508, 'UPI', 1976);
INSERT INTO PAYMENT VALUES (1724097, 'NEFT', 1977);
INSERT INTO PAYMENT VALUES (1787646, 'NEFT', 1978);
INSERT INTO PAYMENT VALUES (1754769, 'CREDIT CARD', 1979);
INSERT INTO PAYMENT VALUES (1712345, 'NEFT', 1980);
INSERT INTO PAYMENT VALUES (1798765, 'UPI', 1981);
INSERT INTO PAYMENT VALUES (1774643, 'PAYTM WALLET', 1982);
INSERT INTO PAYMENT VALUES (1723878, 'RTGS', 1983);
INSERT INTO PAYMENT VALUES (1783123, 'NEFT', 1984);
INSERT INTO PAYMENT VALUES (1703232, 'NEFT', 1985);
INSERT INTO PAYMENT VALUES (1785322, 'UPI', 1986);
INSERT INTO PAYMENT VALUES (1776362, 'RTGS', 1987);
INSERT INTO PAYMENT VALUES (1708998, 'NEFT', 1988);
INSERT INTO PAYMENT VALUES (1712324, 'DEBIT CARD', 1989);
INSERT INTO PAYMENT VALUES (1787612, 'CREDIT CARD', 1990);
INSERT INTO PAYMENT VALUES (1778451, 'CASH', 1991);
INSERT INTO PAYMENT VALUES (1709543, 'RTGS', 1992);
INSERT INTO PAYMENT VALUES (1712589, 'UPI', 1993);
INSERT INTO PAYMENT VALUES (1721569, 'NEFT', 1994);
INSERT INTO PAYMENT VALUES (1705121, 'NEFT', 1995);
INSERT INTO PAYMENT VALUES (1711451, 'DEBIT CARD', 1996);
INSERT INTO PAYMENT VALUES (1724078, 'CASH', 1997);
INSERT INTO PAYMENT VALUES (1782324, 'NEFT', 1998);
INSERT INTO PAYMENT VALUES (1721397, 'RTGS', 1999);
INSERT INTO PAYMENT VALUES (1739862, 'RTGS', 1984);
INSERT INTO PAYMENT VALUES (1723687, 'NEFT', 1972);
INSERT INTO PAYMENT VALUES (1974102, 'RTGS', 1997);
INSERT INTO PAYMENT VALUES (1701479, 'CASH', 1978);
INSERT INTO PAYMENT VALUES (1895420, 'DEBIT CARD', 1990);
28
Functional Dependencies:
TRANS_ID → MODE_OF_PAYMENT, STUD_ID
The given relation is in it’s highest normal form i.e, BCNF, since the LHS of all
the functional dependencies are superkeys (TRANS_ID) for the relation.
29
● Table RESIDENCE
CREATE TABLE RESIDENCE (
STUD_ID NUMBER PRIMARY KEY,
HOSTEL_ID NUMBER,
FOREIGN KEY (HOSTEL_ID) REFERENCES HOSTEL(HOSTEL_ID),
FOREIGN KEY (STUD_ID) REFERENCES STUDENT (STUD_ID)
);
30
INSERT INTO RESIDENCE VALUES (1995, 108);
INSERT INTO RESIDENCE VALUES (1996, 108);
INSERT INTO RESIDENCE VALUES (1997, 109);
INSERT INTO RESIDENCE VALUES (1998, 110);
INSERT INTO RESIDENCE VALUES (1999, 110);
Functional Dependencies:
STUD_ID → HOSTEL_ID
The given relation is in it’s highest normal form i.e, BCNF, since the LHS of all
the functional dependencies are superkeys (STUD_ID) for the relation.
31
To ensure that the functional dependencies are preserved, let
F1: TRANS_ID → MODE_OF_PAYMENT, STUD_ID
F2: STUD_ID → HOSTEL_ID
8. Table VISITOR
Functional Dependencies:
32
Primary Key: VISITOR_ID
The given relation is in it’s highest normal form i.e, BCNF, since the LHS of all
the functional dependencies are superkeys (VISITOR_ID, VISITOR_NAME) for
the relation.
9. Table STUDENT_LOG
Functional Dependencies:
The given relation is in it’s highest normal form i.e, BCNF, since the LHS of all
the functional dependencies are superkeys (STUD_ID, DATE_OF_DEP) for
the relation.
33
Relational Schema with Normalised Tables
34