0% found this document useful (0 votes)
26 views35 pages

Hostel Management System

This document describes a database management system project for a hostel management system. It includes entity relationship diagrams and tables created to store information about students, rooms, hostels, messes, admins, complaints, and other relevant data. The goal of the project is to efficiently store and retrieve student information by computerizing most record keeping tasks.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views35 pages

Hostel Management System

This document describes a database management system project for a hostel management system. It includes entity relationship diagrams and tables created to store information about students, rooms, hostels, messes, admins, complaints, and other relevant data. The goal of the project is to efficiently store and retrieve student information by computerizing most record keeping tasks.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 35

DBMS Project

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

In this project, we have designed a database management system to


organise and store information about college hostels. This database contains
information about students, the rooms, hostels and messes they are
assigned to, a visitor and student log etc. It also stores admin information
and complaints that are lodged by the students. The main aim of this project
is to efficiently store and retrieve student information. Our design helps
facilitate convenient management of data, by computerizing most of the
work and getting rid of manual entry and record systems.

___________________________________________________________________

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)
);

INSERT INTO HOSTEL VALUES(101,'SAROJINI',10,50,201);


INSERT INTO HOSTEL VALUES(102,'PRIYADARSHINI',8,30,203);
INSERT INTO HOSTEL VALUES(103,'1.8K ULTRA MEGA HOSTEL',11,100,201);
INSERT INTO HOSTEL VALUES(104,'1K HOSTEL',12,70,204);
INSERT INTO HOSTEL VALUES(105,'ISH',10,40,202);
INSERT INTO HOSTEL VALUES(106,'BOSE',6,40,203);
INSERT INTO HOSTEL VALUES(107,'AMBEDKAR',12,120,205);
INSERT INTO HOSTEL VALUES(108,'SARABHAI',10,100,206);
INSERT INTO HOSTEL VALUES(109,'GANDHI',6,80,202);
INSERT INTO HOSTEL VALUES(110,'TAGORE',5,120,206);

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)
);

INSERT INTO ROOM VALUES(101, 4, 'YES', 101);


INSERT INTO ROOM VALUES(102, 4, 'YES', 101);
INSERT INTO ROOM VALUES(201, 2, 'YES', 102);
INSERT INTO ROOM VALUES(203, 2, 'NO', 102);
INSERT INTO ROOM VALUES(301, 1, 'NO', 103);
INSERT INTO ROOM VALUES(302, 1, 'YES', 103);
INSERT INTO ROOM VALUES(401, 2, 'YES', 104);
INSERT INTO ROOM VALUES(405, 2, 'YES', 104);
INSERT INTO ROOM VALUES(501, 2, 'NO', 105);
INSERT INTO ROOM VALUES(502, 2, 'NO', 105);
INSERT INTO ROOM VALUES(601, 1, 'YES', 106);
INSERT INTO ROOM VALUES(602, 1, 'YES', 106);

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)
);

INSERT INTO ADMIN VALUES (401, 'Rajesh Shukla', 8912348761, 106);


INSERT INTO ADMIN VALUES (402, 'Srinidhi Prasad', 8937347821, 104);
INSERT INTO ADMIN VALUES (403, 'M. Sashi ', 9123763348, 101);
INSERT INTO ADMIN VALUES (404, 'K. Nirmala', 7341981233, 107);
INSERT INTO ADMIN VALUES (405, 'Rohit Nishad', 8563413123, 105);
INSERT INTO ADMIN VALUES (406, 'Rashmi Suresh', 7453312786, 109);
INSERT INTO ADMIN VALUES (407, 'Umesh Yadav', 7344123121, 101);
INSERT INTO ADMIN VALUES (408, 'Ravi Kumar', 8945321231, 108);
INSERT INTO ADMIN VALUES (409, 'Joseph Davidson', 9464312212, 102);
INSERT INTO ADMIN VALUES (410, 'Gopi Krishna', 8989576231, 107);
INSERT INTO ADMIN VALUES (411, 'D. Bhargavi', 9543423121, 102);
INSERT INTO ADMIN VALUES (412, 'Rohan Malik', 9656342131, 110);
INSERT INTO ADMIN VALUES (413, 'Kiran Kumar', 7452349871, 105);
INSERT INTO ADMIN VALUES (414, 'Priya Varshini', 8213786845, 103);
INSERT INTO ADMIN VALUES (415, 'Asim Das', 8458423578, 106);

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)
);

INSERT INTO ENQUIRY VALUES(1,104,402,'26-JAN-20','PENDING');


INSERT INTO ENQUIRY VALUES(2,101,403,'22-APR-19','PENDING');
INSERT INTO ENQUIRY VALUES(3,102,411,'12-MAR-20','RESOLVED');
INSERT INTO ENQUIRY VALUES(4,102,409,'07-FEB-19','PENDING');
INSERT INTO ENQUIRY VALUES(5,101,407,'21-JUN-20','RESOLVED');
INSERT INTO ENQUIRY VALUES(6,103,414,'15-JUL-20','PENDING');
INSERT INTO ENQUIRY VALUES(7,106,415,'14-AUG-19','RESOLVED');
INSERT INTO ENQUIRY VALUES(8,107,404,'30-JAN-19','RESOLVED');
INSERT INTO ENQUIRY VALUES(9,110,412,'12-OCT-20','PENDING');
INSERT INTO ENQUIRY VALUES(10,109,406,'02-JUL-19','PENDING');
INSERT INTO ENQUIRY VALUES(11,106,415,'21-DEC-20','RESOLVED');
INSERT INTO ENQUIRY VALUES(12,110,412,'13-FEB-20','RESOLVED');
INSERT INTO ENQUIRY VALUES(13,102,409,'18-JUN-19','PENDING');

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)
);

INSERT INTO STUDENT VALUES(1970,'LAKSHA', 2,


9827234567,'[email protected]', 101, 'CHENNAI',101);
INSERT INTO STUDENT VALUES(1971,'GAYATHRI',
2,9787894567,'[email protected]', 101, 'CHENNAI', 101);
INSERT INTO STUDENT VALUES(1972,'KAJAL', 2,
9820934267,'[email protected]', 101, 'MUMBAI', 101);
INSERT INTO STUDENT VALUES(1973,'ANIKET', 3,
9827000987,'[email protected]', 102, 'KOCHI', 101);
INSERT INTO STUDENT VALUES(1974,'RAJESH', 3,
9927234567,'[email protected]', 102, 'BANGALORE', 101);
INSERT INTO STUDENT VALUES(1975,'ROHAN', 3,
9827234567,'[email protected]', 102, 'CHENNAI',101);
INSERT INTO STUDENT VALUES(1976,'OMAR', 3,
8834934267,'[email protected]', 201, 'HYDERABAD',102);
INSERT INTO STUDENT VALUES(1977,'AASHNA', 2,
9820002167,'[email protected]', 302, 'DELHI',103);
INSERT INTO STUDENT VALUES(1978,'ABHISHEK', 3,
9880934208,'[email protected]', 401, 'KOLKATA',104);

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)
);

INSERT INTO PAYMENT VALUES (1789675, 'NEFT', 101, 1970);


INSERT INTO PAYMENT VALUES (1781491, 'UPI', 101, 1971);
INSERT INTO PAYMENT VALUES (1789416, 'CASH', 101, 1972);
INSERT INTO PAYMENT VALUES (1791357, 'RTGS', 101, 1973);
INSERT INTO PAYMENT VALUES (1784910, 'DEBIT CARD', 101, 1974);
INSERT INTO PAYMENT VALUES (1700532, 'PAYTM WALLET', 101, 1975);
INSERT INTO PAYMENT VALUES (1711508, 'UPI', 102, 1976);
INSERT INTO PAYMENT VALUES (1724097, 'NEFT', 103, 1977);
INSERT INTO PAYMENT VALUES (1787646, 'NEFT', 104, 1978);
INSERT INTO PAYMENT VALUES (1754769, 'CREDIT CARD', 104, 1979);
INSERT INTO PAYMENT VALUES (1712345, 'NEFT', 104, 1980);
INSERT INTO PAYMENT VALUES (1798765, 'UPI', 104, 1981);
INSERT INTO PAYMENT VALUES (1774643, 'PAYTM WALLET', 106, 1982);
INSERT INTO PAYMENT VALUES (1723878, 'RTGS', 106, 1983);
INSERT INTO PAYMENT VALUES (1783123, 'NEFT', 107, 1984);
INSERT INTO PAYMENT VALUES (1703232, 'NEFT', 107, 1985);
INSERT INTO PAYMENT VALUES (1785322, 'UPI', 107, 1986);
INSERT INTO PAYMENT VALUES (1776362, 'RTGS', 107, 1987);
INSERT INTO PAYMENT VALUES (1708998, 'NEFT', 107, 1988);
INSERT INTO PAYMENT VALUES (1712324, 'DEBIT CARD', 107, 1989);
INSERT INTO PAYMENT VALUES (1787612, 'CREDIT CARD', 102, 1990);
INSERT INTO PAYMENT VALUES (1778451, 'CASH', 108, 1991);

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)
);

INSERT INTO VISITOR VALUES(701,'MOHIT


KUMAR',1975,'04-JAN-21','17:35','19:10');
INSERT INTO VISITOR VALUES(702,'VIJAY RAJESH',1979,'07-JAN-21','09:21','12:17');
INSERT INTO VISITOR VALUES(703,'RAJASHREE
SHARMA',1991,'12-FEB-21','16:15','19:23');
INSERT INTO VISITOR VALUES(704,'VINAY KOSHY',1983,'13-FEB-21','08:19','10:54');
INSERT INTO VISITOR VALUES(705,'MAHESH
MEHTA',1985,'16-FEB-21','17:33','19:04');
INSERT INTO VISITOR VALUES(706,'ARJUN
PRASAD',1989,'21-FEB-21','15:43','19:02');
INSERT INTO VISITOR VALUES(707,'LAVANYA
RAJESH',1971,'22-FEB-21','13:35','17:07');
INSERT INTO VISITOR VALUES(708,'ROHAN
MALLYA',1977,'26-FEB-21','12:12','16:23');
INSERT INTO VISITOR VALUES(709,'SIDDHARTH
SINGH',1998,'27-FEB-21','10:32','11:06');
INSERT INTO VISITOR VALUES(710,'SWETHA
AGARWAL',1997,'15-MAR-21','19:43','21:07');
INSERT INTO VISITOR VALUES(711,'MAYANK
KHATRI',1974,'17-MAR-21','17:31','20:11');

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:

MESS_NO → MESS_NAME, BREAKFAST, LUNCH, DINNER, FEES


MESS_NAME → MESS_NO, BREAKFAST, LUNCH, DINNER, FEES
Closure of MESS_NO:
MESS_NO+ = {MESS_NO, MESS_NAME, BREAKFAST, LUNCH, DINNER,
FEES}
Closure of MESS_NAME:
MESS_NAME+ = {MESS_NAME, MESS_NO, BREAKFAST, LUNCH,
DINNER, FEES}

Candidate Keys: MESS_NO, MESS_NAME


Primary Key: MESS_NO

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:

HOSTEL_ID → HOSTEL_NAME, FLOORS, NO_OF_ROOMS, MESS_NO


HOSTEL_NAME → HOSTEL_ID, FLOORS, NO_OF_ROOMS, MESS_NO
Closure of HOSTEL_ID:
HOSTEL_ID+ = {HOSTEL_ID, HOSTEL_NAME, FLOORS, NO_OF_ROOMS,
MESS_NO}
Closure of HOSTEL_NAME:

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:

ROOM_NO → OCCUPANCY, AVAIL, HOSTEL_ID


Closure of ROOM_NO:
ROOM_NO+ = {ROOM_NO, OCCUPANCY, AVAIL, HOSTEL_ID}
Candidate Keys: ROOM_NO
Primary Key: ROOM_NO
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.

4. Table ADMIN
Functional Dependencies:

FACULTY_ID → FAC_NAME, CONTACT_NO, HOSTEL_ID


FAC_NAME → FACULTY_ID, CONTACT_NO, HOSTEL_ID
Closure of FACULTY_ID:
FACULTY_ID+ = {FACULTY_ID, FAC_NAME, CONTACT_NO, HOSTEL_ID}
Closure of FAC_NAME:
FAC_NAME+ = {FAC_NAME, FACULTY_ID, CONTACT_NO, HOSTEL_ID}

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:

COMPLAINT_NO → HOSTEL_ID, FACULTY_ID, E_DATE, STATUS


Closure of COMPLAINT_NO:
COMPLAINT_NO+ = {COMPLAINT_NO, HOSTEL_ID, FACULTY_ID,
E_DATE, STATUS}

Candidate Keys: COMPLAINT_NO


Primary Key: COMPLAINT_NO
The given relation is in it’s highest normal form i.e, BCNF, since the LHS of all
the functional dependencies are superkeys (COMPLAINT_NO) for the
relation.

6. Table STUDENT
Functional Dependencies:

STUD_ID → NAME, YEAR_OF_STUDY, CONTACT, EMAIL, ROOM_NO,


ADDRESS, HOSTEL_ID
ROOM_NO → HOSTEL_ID
Closure of STUD_ID:
STUD_ID+ = {STUD_ID, NAME, YEAR_OF_STUDY, CONTACT, EMAIL,
ROOM_NO, ADDRESS, HOSTEL_ID}

20
Closure of ROOM_NO:
ROOM_NO+ = {ROOM_NO, HOSTEL_ID}

Candidate Keys: STUD_ID


Primary Key: STUD_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 not in 3NF because a transitive functional dependency


exists. In the functional dependency ROOM_NO → HOSTEL_ID, both the LHS
and RHS are non - prime attributes and therefore the relation is not in 3NF.

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.

To convert the given relation to a higher normal form, we decompose it into


the following relations STUDENT and ACCOMMODATION:

● 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)
);

INSERT INTO STUDENT VALUES(1970,'LAKSHA', 2,


9827234567,'[email protected]', 101, 'CHENNAI');

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

Candidate Keys: STUD_ID


Primary Key: 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 (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)
);

INSERT INTO ACCOMMODATION VALUES (101,101);


INSERT INTO ACCOMMODATION VALUES (102,101);
INSERT INTO ACCOMMODATION VALUES (201,102);
INSERT INTO ACCOMMODATION VALUES (302,103);
INSERT INTO ACCOMMODATION VALUES (401,104);
INSERT INTO ACCOMMODATION VALUES (405,104);
INSERT INTO ACCOMMODATION VALUES (601,106);
INSERT INTO ACCOMMODATION VALUES (602,106);
INSERT INTO ACCOMMODATION VALUES (701,107);
INSERT INTO ACCOMMODATION VALUES (703,107);
INSERT INTO ACCOMMODATION VALUES (801,108);
INSERT INTO ACCOMMODATION VALUES (802,108);
INSERT INTO ACCOMMODATION VALUES (901,109);
INSERT INTO ACCOMMODATION VALUES (1002,110);

25
Functional Dependencies:
ROOM_NO → HOSTEL_ID

Candidate Keys: ROOM_NO


Primary Key: ROOM_NO

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.

To ensure that the functional dependencies are preserved, let


F1: STUD_ID → NAME, YEAR_OF_STUDY, CONTACT, EMAIL, ROOM_NO, ADDRESS
F2: ROOM_NO → HOSTEL_ID

F1 U F2 = {STUD_ID → NAME, YEAR_OF_STUDY, CONTACT, EMAIL, ROOM_NO,


ADDRESS, ROOM_NO → HOSTEL_ID}

Now we find the closures of STUD_ID and ROOM_NO from F1 U F2,


STUD_ID+ = {STUD_ID, NAME, YEAR_OF_STUDY, CONTACT, EMAIL, ROOM_NO,
ADDRESS, HOSTEL_ID}
ROOM_NO+ = {ROOM_NO, HOSTEL_ID}
As the closures are the same, the dependencies are preserved.
For lossless decomposition; R1 ∩ R2 → R1 (or) R1 ∩ R2 → R2
Here, STUDENT ∩ ACCOMMODATION = ROOM_NO
ROOM_NO → HOSTEL_ID in ACCOMMODATION
i.e, STUDENT ∩ ACCOMMODATION → ACCOMMODATION

Hence this decomposition is lossless.

7. Table PAYMENT
Functional Dependencies:

TRANS_ID → MODE_OF_PAYMENT, HOSTEL_ID, STUD_ID


STUD_ID → HOSTEL_ID

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}

Candidate Keys: TRANS_ID


Primary Key: TRANS_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 not in 3NF because a transitive functional dependency


exists. In the functional dependency STUD_ID → HOSTEL_ID, both the LHS
and RHS are non - prime attributes and therefore the relation is not in 3NF.

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.

To convert the given relation to a higher normal form, we decompose it into


the following relations PAYMENT and RESIDENCE:

● 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)
);

INSERT INTO PAYMENT VALUES (1789675, 'NEFT', 1970);


INSERT INTO PAYMENT VALUES (1781491, 'UPI', 1971);
INSERT INTO PAYMENT VALUES (1789416, 'CASH', 1972);
INSERT INTO PAYMENT VALUES (1791357, 'RTGS', 1973);

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

Candidate Keys: TRANS_ID


Primary Key: TRANS_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)
);

INSERT INTO RESIDENCE VALUES (1970, 101);


INSERT INTO RESIDENCE VALUES (1971, 101);
INSERT INTO RESIDENCE VALUES (1972, 101);
INSERT INTO RESIDENCE VALUES (1973, 101);
INSERT INTO RESIDENCE VALUES (1974, 101);
INSERT INTO RESIDENCE VALUES (1975, 101);
INSERT INTO RESIDENCE VALUES (1976, 102);
INSERT INTO RESIDENCE VALUES (1977, 103);
INSERT INTO RESIDENCE VALUES (1978, 104);
INSERT INTO RESIDENCE VALUES (1979, 104);
INSERT INTO RESIDENCE VALUES (1980, 104);
INSERT INTO RESIDENCE VALUES (1981, 104);
INSERT INTO RESIDENCE VALUES (1982, 106);
INSERT INTO RESIDENCE VALUES (1983, 106);
INSERT INTO RESIDENCE VALUES (1984, 107);
INSERT INTO RESIDENCE VALUES (1985, 107);
INSERT INTO RESIDENCE VALUES (1986, 107);
INSERT INTO RESIDENCE VALUES (1987, 107);
INSERT INTO RESIDENCE VALUES (1988, 107);
INSERT INTO RESIDENCE VALUES (1989, 107);
INSERT INTO RESIDENCE VALUES (1990, 102);
INSERT INTO RESIDENCE VALUES (1991, 108);
INSERT INTO RESIDENCE VALUES (1992, 108);
INSERT INTO RESIDENCE VALUES (1993, 108);
INSERT INTO RESIDENCE VALUES (1994, 108);

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

Candidate Keys: STUD_ID


Primary Key: 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 (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

F1 U F2 = {TRANS_ID → MODE_OF_PAYMENT, STUD_ID, STUD_ID → HOSTEL_ID}

Now we find the closures of TRANS_ID and STUD_ID from F1 U F2,


TRANS_ID+ = {TRANS_ID, MODE_OF_PAYMENT, STUD_ID, HOSTEL_ID}
STUD_ID+ = {STUD_ID, HOSTEL_ID}
As the closures are the same, the dependencies are preserved.

For lossless decomposition; R1 ∩ R2 → R1 (or) R1 ∩ R2 → R2


Here, PAYMENT ∩ RESIDENCE = STUD_ID
STUD_ID → HOSTEL_ID in RESIDENCE
i.e, PAYMENT ∩ RESIDENCE → RESIDENCE

Hence this decomposition is lossless.

8. Table VISITOR
Functional Dependencies:

VISITOR_ID → VISITOR_NAME, STUD_ID, VISITING_DATE, TIME_IN,


TIME_OUT
VISITOR_NAME → VISITOR_ID, STUD_ID, VISITING_DATE, TIME_IN,
TIME_OUT
Closure of VISITOR_ID:
VISITOR_ID+ = {VISITOR_ID, VISITOR_NAME, STUD_ID, VISITING_DATE,
TIME_IN, TIME_OUT}
Closure of VISITOR_NAME:
VISITOR_NAME+ = {VISITOR_NAME, VISITOR_ID, STUD_ID,
VISITING_DATE, TIME_IN, TIME_OUT}

Candidate Keys: VISITOR_ID, VISITOR_NAME

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:

STUD_ID, DATE_OF_DEP → DATE_OF_ARR, PLACE, PURPOSE_OF_VISIT


Closure of (STUD_ID, DATE_OF_DEP):
(STUD_ID, DATE_OF_DEP) + = {STUD_ID, DATE_OF_DEP,
DATE_OF_ARR, PLACE, PURPOSE_OF_VISIT}

Candidate Keys: {STUD_ID, DATE_OF_DEP}


Primary Key: {STUD_ID, DATE_OF_DEP}

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

You might also like