33% found this document useful (3 votes)
859 views

Restaurant Management System

This document describes the creation of tables in a restaurant management database system using SQL. It includes the creation of tables to store information about restaurants, payments, cashiers, bills, customers, waiters, managers, orders, order details, and chefs. Foreign key constraints are defined to link the tables together and model the relationships between entities in the restaurant domain. The database implementation lays the foundation for storing and querying restaurant data.

Uploaded by

Jp Technical
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
33% found this document useful (3 votes)
859 views

Restaurant Management System

This document describes the creation of tables in a restaurant management database system using SQL. It includes the creation of tables to store information about restaurants, payments, cashiers, bills, customers, waiters, managers, orders, order details, and chefs. Foreign key constraints are defined to link the tables together and model the relationships between entities in the restaurant domain. The database implementation lays the foundation for storing and querying restaurant data.

Uploaded by

Jp Technical
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 55

A

Project Report
On
RESTAURANT MANAGEMENT SYSTEM
Developed by
Parmar Jaimin-Department of IT, DD University
Parmar Rajvirsinh-Department of IT, DD University

Guided By
Prof. Sunil K. Vithlani
Department of Information Technology
Faculty of Technology
DD University

Department of Information Technology


Faculty of Technology, Dharmsinh Desai University
College Road, Nadiad-387001

DDU(Faculty of Tech.,Dept. of IT) 1|Page


October-2019

CERTIFICATE

This is to certify that the project entitled “Restaurant Management System” is a bonafied report
of the work carried out by

1) Mr. Jaimin, Student ID No: 17ITUBF013

2) Mr. Rajvirsinh, Student ID No: 17ITUOS068

of Department of Information Technology, semester V, under the guidance and supervision for
the subject Database Management System. They were involved in Project training during
academic year 2019-2020.

Prof. Sunil K. Vithlani


Department of Information Technology,
Faculty of Technology,
Dharmsinh Desai University, Nadiad
Date:

Prof. Vipul Dabhi


Head, Department of Information Technology,
Faculty of Technology,
Dharmsinh Desai University, Nadiad
Date:

DDU(Faculty of Tech.,Dept. of IT) 2|Page


ACKNOWLEDGEMENT

The success and final outcome of this project required a lot of guidance and assistance
from many people and we are extremely privileged to have got this all along the completion of
our project. All that we have done is only due to such supervision and assistance and we would
not forget to thank them.

We respect and thank to Prof. Sunil K Vithlani for providing us an opportunity to do


the project work in DBMS and giving us all support and guidance which made us complete the
project duty. We are extremely thankful to his for providing such a nice support, guidance by
taking keen interest in our project, although he had busy schedule managing the lectures.

We would also like to express our special thanks of gratitude to our HOD Prof. Vipul
Dabhi who gave us the golden opportunity to do this wonderful project on the topic: Restaurant
Management System. We would also like to thank him for including such things in curriculum
making it more interesting and useful practically.
Finally we would like to thank each and every person who was there around us
helping more or less in our project and keeping us motivated to work hard and complete the
project. We would also thank them for inspiring us and sharing their ideas and views to make
this project a success.

Yours sincerely,
Parmar Jaimin (IT-069)
Parmar Rajvirsinh (IT-070)

DDU(Faculty of Tech.,Dept. of IT) 3|Page


TABLE OF CONTENTS

1.Certificate……………………………………………………………………………………2
2.Acknowledgement……………………………………………………………………..……3
3.System Overview……………………………………………………………………………5
4.ER-Diagram……………………………………………………...…….…………………….6
5.Relational SchemaDiagram………………………………………………………….………7
6.Data Dictionary………………………………………………………………………………8
7.Databasa Implementation……………………………………………………………………14
8.Inserting DataValues…………………………………………………………………….…. 21
9.Queries……………………………………………………………………..………………..33
10.PL/SQL…………………………………………………………………………………….38
11.Future Enhancements of the System……………………………………………………… 53
12.Bibliography………………………………………………………………………..………54

DDU(Faculty of Tech.,Dept. of IT) 4|Page


SYSTEM OVERVIEW

Restaurant management is key to any restaurant success. It takes a significant amount


of time and invest to get the formula right – the current mix of all the ingredients that make a
restaurant do well – the operations, the marketing, the user experience online, the guest
experience offline and not to mention good food, that keeps your guests smacking their lips.
The Restaurant Management ecosystem is now very advanced, mostly automated and
will help you focus your time and energy on the quality of your food and customer service at the
restaurant. However, the challenging part is to zero down on a specific system or technology set
that will prove to be the right fit for your restaurant.
The technologies and restaurant software available in the industry will provide you
products for restaurant operations, online ordering, customer relationship management, table
reservation, restaurant analytics, inventory management, loyalty management, website and app
builders and so forth.

What is a Restaurant Management System?

A restaurant management system is the complete stack of technology, restaurant


software and marketing modules that you will need to manage your business. It takes over the
operations and marketing of your business. We will be breaking down all the units that comprise
a successful restaurant stack and drill down very deep into it to provide you a holistic picture of
all that you need.

We will first define the various functions such as table bookings & incoming orders
management, reducing the order processing time, Inventory management, marketing campaigns
management, customer acquisition.

DDU(Faculty of Tech.,Dept. of IT) 5|Page


ER DIAGRAM

DDU(Faculty of Tech.,Dept. of IT) 6|Page


RELATIONAL SCHEMA DIAGRAM

DATA DICTIONARY
DDU(Faculty of Tech.,Dept. of IT) 7|Page
RESTAURANT

PAYMENT

CASHIER

DDU(Faculty of Tech.,Dept. of IT) 8|Page


BILL

CUSTOMER

WAITER

DDU(Faculty of Tech.,Dept. of IT) 9|Page


KEYWC

MANAGER

ORDERS

DDU(Faculty of Tech.,Dept. of IT) 10 | P a g e


KEYOW

ORDERDETAIL

CHEFF

DDU(Faculty of Tech.,Dept. of IT) 11 | P a g e


KEYMACH

KEYORCH

MENU

DDU(Faculty of Tech.,Dept. of IT) 12 | P a g e


KEYMENU

MENUDETAILS

DATABASE IMPLEMENTATION

DDU(Faculty of Tech.,Dept. of IT) 13 | P a g e


CREATE SCHEMA

CREATE TABLE RESTAURANT


(
RID VARCHAR2(15) PRIMARY KEY,
RNAME VARCHAR2(15),
CONTACT VARCHAR2(10),
CITY VARCHAR2(10),
STREET VARCHAR2(10)
);
OUTPUT: TABLE CREATED

CREATE TABLE PAYMENT


(
PID VARCHAR2(15) PRIMARY KEY,
WAY VARCHAR2(10)
);
OUTPUT: TABLE CREATED

CREATE TABLE CASHIER


(
CHID VARCHAR2(15) PRIMARY KEY,
FNAME VARCHAR2(10),
LNAME VARCHAR2(10),
RID VARCHAR2(15),

DDU(Faculty of Tech.,Dept. of IT) 14 | P a g e


PID VARCHAR2(15),
CH_CONTACT VARCHAR2(10),
CITY VARCHAR2(10),
FOREIGN KEY (RID) REFERENCES RESTAURANT(RID),
FOREIGN KEY (PID) REFERENCES PAYMENT(PID)
);
OUTPUT: TABLE CREATED
ALTER TABEL CASHIER ADD SALARY NUMBER(6);
OUTPUT: TABLE ALTERED

CREATE TABLE BILL


(
BILLNO VARCHAR2(15) PRIMARY KEY,
AMOUNT VARCHAR2(50),
CHID VARCHAR2(15),
FOREIGN KEY (CHID) REFERENCES CASHIER(CHID)
);
OUTPUT: TABLE CREATED

CREATE TABLE CUSTOMER


(
CID VARCHAR2(15) PRIMARY KEY,
FNAME VARCHAR2(10),
LNAME VARCHAR2(10),
CONTACT VARCHAR2(10),
STREET VARCHAR2(15),
CITY VARCHAR2(10),
BILLNO VARCHAR2(15),

DDU(Faculty of Tech.,Dept. of IT) 15 | P a g e


FOREIGN KEY (BILLNO) REFERENCES BILL(BILLNO)
);
OUTPUT: TABLE CREATED

CREATE TABLE WAITER


(
WID VARCHAR2(15) PRIMARY KEY,
FNAME VARCHAR2(10),
LNAME VARCHAR2(10),
CONTACT VARCHAR2(10)
);
OUTPUT: TABLE CREATED
ALTER TABEL WAITER ADD SALARY NUMBER(6);
OUTPUT: TABLE ALTERED

CREATE TABLE KEYWC


(
WID VARCHAR2(15),
CID VARCHAR2(15),
FOREIGN KEY (WID) REFERENCES WAITER(WID),
FOREIGN KEY (CID) REFERENCES CUSTOMER(CID)
);
OUTPUT: TABLE CREATED

CREATE TABLE MANAGER


(
MID VARCHAR2(15) PRIMARY KEY,
FNAME VARCHAR2(10),

DDU(Faculty of Tech.,Dept. of IT) 16 | P a g e


LNAME VARCHAR2(10),
CONTACT VARCHAR2(10),
RID VARCHAR2(15),
FOREIGN KEY (RID) REFERENCES RESTAURANT(RID)
);
OUTPUT: TABLE CREATED
ALTER TABEL MANAGER ADD SALARY NUMBER(6);
OUTPUT: TABLE ALTERED

CREATE TABLE ORDERS


(
OID VARCHAR2(15) PRIMARY KEY,
CID VARCHAR2(15),
BILLNO VARCHAR2(15),
MID VARCHAR2(15),
FOREIGN KEY (CID) REFERENCES CUSTOMER(CID),
FOREIGN KEY (BILLNO) REFERENCES BILL(BILLNO),
FOREIGN KEY (MID) REFERENCES MANAGER(MID)
);
OUTPUT: TABLE CREATED

CREATE TABLE KEYOW


(
WID VARCHAR2(15),
OID VARCHAR2(15),
FOREIGN KEY (WID) REFERENCES WAITER(WID),
FOREIGN KEY (OID) REFERENCES ORDERS(OID)
);

DDU(Faculty of Tech.,Dept. of IT) 17 | P a g e


OUTPUT: TABLE CREATED

CREATE TABLE ORDERDETAIL


(
OID VARCHAR2(15),
ITEMNAME VARCHAR2(15),
ITEMQUANTITY VARCHAR2(15),
PRICE VARCHAR2(15),
ODATE VARCHAR(30),
TIME VARCHAR2(10),
FOREIGN KEY (OID) REFERENCES ORDERS(OID)
);
OUTPUT: TABLE CREATED

CREATE TABLE CHEFF


(
CHID VARCHAR2(15) PRIMARY KEY,
FNAME VARCHAR2(10),
LNAME VARCHAR2(10),
CONTACT VARCHAR2(10)
);
OUTPUT: TABLE CREATED
ALTER TABEL CHEFF ADD SALARY NUMBER(6);
OUTPUT: TABLE ALTERED

CREATE TABLE KEYMACH

DDU(Faculty of Tech.,Dept. of IT) 18 | P a g e


(
MID VARCHAR2(15),
CHID VARCHAR2(15),
FOREIGN KEY (MID) REFERENCES MANAGER(MID),
FOREIGN KEY (CHID) REFERENCES CHEFF(CHID)
);
OUTPUT: TABLE CREATED

CREATE TABLE KEYORCH


(
OID VARCHAR2(15),
CHID VARCHAR2(15),
FOREIGN KEY (OID) REFERENCES ORDERS(OID),
FOREIGN KEY (CHID) REFERENCES CHEFF(CHID)
);
OUTPUT: TABLE CREATED

CREATE TABLE MENU


(
MENUID VARCHAR2(15) PRIMARY KEY
);
OUTPUT: TABLE CREATED

CREATE TABLE KEYMECU


(

DDU(Faculty of Tech.,Dept. of IT) 19 | P a g e


MENUID VARCHAR2(15),
CID VARCHAR2(15),
FOREIGN KEY (MENUID) REFERENCES MENU(MENUID),
FOREIGN KEY (CID) REFERENCES CUSTOMER(CID)
);
OUTPUT: TABLE CREATED

CREATE TABLE MENUDETAILS


(
MENUID VARCHAR2(15),
NAME VARCHAR2(20),
PRICES VARCHAR2(15),
SIZES VARCHAR2(15),
FOREIGN KEY (MENUID) REFERENCES MENU(MENUID)
);
OUTPUT: TABLE CREATED

INSERTING DATA VALUES


DDU(Faculty of Tech.,Dept. of IT) 20 | P a g e
RESTAURANT
INSERT INTO RESTAURANT (RID,RNAME,CONTACT,CITY,STREET)
VALUES('R101','MODERN','8598943342','NADIAD','CLG ROAD');
INSERT INTO RESTAURANT (RID,RNAME,CONTACT,CITY,STREET)
VALUES('R102','MODERN','8598954545','NADIAD','MILL ROAD');
INSERT INTO RESTAURANT (RID,RNAME,CONTACT,CITY,STREET)
VALUES('R103','MODERN','8598954546','NADIAD','SANTRAM ROAD')
SELECT *FROM RESTAURANT

PAYMENT
INSERT INTO PAYMENT (PID,WAY) VALUES('P101','CASH');
INSERT INTO PAYMENT (PID,WAY) VALUES('P102','CARD');
INSERT INTO PAYMENT (PID,WAY) VALUES('P103','SCAN');
SELECT *FROM PAYMENT

CASHIER
INSERT INTO CASHIER (CHID,FNAME,LNAME,RID,PID,CH_CONTACT,CITY)
VALUES('CH101','RAVI','PARMAR','R101','P101','1234567890','RAJKOT');
INSERT INTO CASHIER (CHID,FNAME,LNAME,RID,PID,CH_CONTACT,CITY)
VALUES('CH102','MANOJ','TANK','R101','P102','1234567891','BHUJ');

DDU(Faculty of Tech.,Dept. of IT) 21 | P a g e


INSERT INTO CASHIER (CHID,FNAME,LNAME,RID,PID,CH_CONTACT,CITY)
VALUES('CH103','RAJESH','SHARMA','R101','P103','1234567894','NADIAD');
INSERT INTO CASHIER (CHID,FNAME,LNAME,RID,PID,CH_CONTACT,CITY)
VALUES('CH104','SURESH','PARMAR','R102','P101','7096277752','RAJKOT');
INSERT INTO CASHIER (CHID,FNAME,LNAME,RID,PID,CH_CONTACT,CITY)
VALUES('CH105','RAMESH','PARMAR','R102','P102','7096277754','RAJKOT');
INSERT INTO CASHIER (CHID,FNAME,LNAME,RID,PID,CH_CONTACT,CITY)
VALUES('CH106','RAMESH','POPAT','R103','P101','9996177754','ANANAD');
UPDATE CASHIER SET SALARY=’5000’
SELECT *FROM CASHIER

BILL
INSERT INTO BILL (BILLNO,AMOUNT,CHID) VALUES('B101','400','CH101');
INSERT INTO BILL (BILLNO,AMOUNT,CHID) VALUES('B102','450','CH102');
INSERT INTO BILL (BILLNO,AMOUNT,CHID) VALUES('B103','200','CH102');
INSERT INTO BILL (BILLNO,AMOUNT,CHID) VALUES('B104','500','CH103');
INSERT INTO BILL (BILLNO,AMOUNT,CHID) VALUES('B105','600','CH104');
INSERT INTO BILL (BILLNO,AMOUNT,CHID) VALUES('B106','450','CH105');
INSERT INTO BILL (BILLNO,AMOUNT,CHID) VALUES('B107','2500','CH106');
SELECT *FROM BILL

DDU(Faculty of Tech.,Dept. of IT) 22 | P a g e


CUSTOMER
INSERT INTO CUSTOMER (CID,FNAME,LNAME,CONTACT,STREET,CITY,BILLNO)
VALUES('C101','RAJVIR','PARMAR','1234567894','BLOSSOM','NADIAD','B101');
INSERT INTO CUSTOMER (CID,FNAME,LNAME,CONTACT,STREET,CITY,BILLNO)
VALUES('C102','JAIMIN','PARMAR','1234337894','AARAV','NADIAD','B102');
INSERT INTO CUSTOMER (CID,FNAME,LNAME,CONTACT,STREET,CITY,BILLNO)
VALUES('C103','YASH','SUHAGIYA','9277337894','AARAV','NADIAD','B103');
INSERT INTO CUSTOMER (CID,FNAME,LNAME,CONTACT,STREET,CITY,BILLNO)
VALUES('C104','PARAS','SUHAGIYA','9277336761','AARAV','NADIAD','B104');
INSERT INTO CUSTOMER (CID,FNAME,LNAME,CONTACT,STREET,CITY,BILLNO)
VALUES('C105','RAM','PATEL','9277339961','BLOSSOM','NADIAD','B105');
INSERT INTO CUSTOMER (CID,FNAME,LNAME,CONTACT,STREET,CITY,BILLNO)
VALUES('C106','LAXMAN','PATEL','9289339961','BLOSSOM','NADIAD','B106');
INSERT INTO CUSTOMER (CID,FNAME,LNAME,CONTACT,STREET,CITY,BILLNO)
VALUES('C107','JIVAN','PATEL','9267889961','BLOSSOM','NADIAD','B107');
SELECT *FROM CUSTOMER

DDU(Faculty of Tech.,Dept. of IT) 23 | P a g e


WAITER
INSERT INTO WAITER (WID,FNAME,LNAME,CONTACT)
VALUES('W101','BRIJESH','VEKARIYA','8347583745');
INSERT INTO WAITER (WID,FNAME,LNAME,CONTACT)
VALUES('W102','BHARAT','PARMAR','8366583745');
INSERT INTO WAITER (WID,FNAME,LNAME,CONTACT)
VALUES('W103','ABHI','TANK','8366599745');
INSERT INTO WAITER (WID,FNAME,LNAME,CONTACT)
VALUES('W104','BHAUDIP','TANK','8399599745');
INSERT INTO WAITER (WID,FNAME,LNAME,CONTACT)
VALUES('W105','HARDIK','PARMAR','8395678745');
INSERT INTO WAITER (WID,FNAME,LNAME,CONTACT)
VALUES('W106','DEEPAK','RATHOD','8395888745');
INSERT INTO WAITER (WID,FNAME,LNAME,CONTACT)
VALUES('W107','MANOJ','CHOVATIYA','9999090874');
UPDATE WAITER SET SALARY=’10000’
SELECT *FROM WAITER

KEYWC
INSERT INTO KEYWC (WID,CID) VALUES('W101','C101');
INSERT INTO KEYWC (WID,CID) VALUES('W101','C102');
INSERT INTO KEYWC (WID,CID) VALUES('W102','C103');

DDU(Faculty of Tech.,Dept. of IT) 24 | P a g e


INSERT INTO KEYWC (WID,CID) VALUES('W102','C104');
INSERT INTO KEYWC (WID,CID) VALUES('W103','C105');
INSERT INTO KEYWC (WID,CID) VALUES('W103','C106');
INSERT INTO KEYWC (WID,CID) VALUES('W104','C107');
SELECT *FROM KEYWC

MANAGER
INSERT INTO MANAGER (MID,FNAME,LNAME,CONTACT,RID)
VALUES('M101','RAKSESH','KOTECHA','9967345769','R101');
INSERT INTO MANAGER (MID,FNAME,LNAME,CONTACT,RID)
VALUES('M102','BHUPENDRA','PATEL','9967785769','R101');
INSERT INTO MANAGER (MID,FNAME,LNAME,CONTACT,RID)
VALUES('M103','RAJENDRA','CHAUHAN','9960085769','R102');
INSERT INTO MANAGER (MID,FNAME,LNAME,CONTACT,RID)
VALUES('M104','RAVINDRA','MAKVANA','9968885769','R103');
UPDATE MANAGER SET SALARY=’60500’

DDU(Faculty of Tech.,Dept. of IT) 25 | P a g e


SELECT *FROM MANAGER

ORDERS
INSERT INTO ORDERS(OID,CID,BILLNO,MID) VALUES ('O101','C101','B101','M102');
INSERT INTO ORDERS(OID,CID,BILLNO,MID) VALUES ('O102','C102','B102','M101');
INSERT INTO ORDERS(OID,CID,BILLNO,MID) VALUES ('O105','C103','B103','M101');
INSERT INTO ORDERS(OID,CID,BILLNO,MID) VALUES ('O103','C104','B104','M102');
INSERT INTO ORDERS(OID,CID,BILLNO,MID) VALUES ('O104','C105','B105','M102');
INSERT INTO ORDERS(OID,CID,BILLNO,MID) VALUES ('O107','C107','B107','M103');
INSERT INTO ORDERS(OID,CID,BILLNO,MID) VALUES ('O106','C106','B106','M103');
SELECT *FROM ORDERS

DDU(Faculty of Tech.,Dept. of IT) 26 | P a g e


KEWYOW
INSERT INTO KEYOW(WID,OID) VALUES ('W101','O101');
INSERT INTO KEYOW(WID,OID) VALUES ('W102','O102');
INSERT INTO KEYOW(WID,OID) VALUES ('W103','O103');
INSERT INTO KEYOW(WID,OID) VALUES ('W104','O104');
INSERT INTO KEYOW(WID,OID) VALUES ('W105','O105');
INSERT INTO KEYOW(WID,OID) VALUES ('W106','O106');

SELECT *FROM KEYOW

ORDERDETAIL
INSERT ALL INTO
ORDERDETAIL(OID,ITEMNAME,ITEMQUANTITY,PRICE,ODATE,TIME)
VALUES('O101','PUNJABI','2','400','29-AUG-2019','8:00PM')
INTO ORDERDETAIL(OID,ITEMNAME,ITEMQUANTITY,PRICE,ODATE,TIME)
VALUES('O102','CHINESE','3','450','29-AUG-2019','9:15PM')
INTO ORDERDETAIL(OID,ITEMNAME,ITEMQUANTITY,PRICE,ODATE,TIME)
VALUES('O103','GUJARATI','2','500','28-AUG-2019','1:00PM')
INTO ORDERDETAIL(OID,ITEMNAME,ITEMQUANTITY,PRICE,ODATE,TIME)
VALUES('O104','PUNJABI','3','600','28-AUG-2019','1:15PM')

DDU(Faculty of Tech.,Dept. of IT) 27 | P a g e


INTO ORDERDETAIL(OID,ITEMNAME,ITEMQUANTITY,PRICE,ODATE,TIME)
VALUES('O105','SOUTHINDIAN','1','200','27-AUG-2019','10:00PM')
INTO ORDERDETAIL(OID,ITEMNAME,ITEMQUANTITY,PRICE,ODATE,TIME)
VALUES('O106','CHINESE','3','450','27-AUG-2019','9:00PM')
INTO ORDERDETAIL(OID,ITEMNAME,ITEMQUANTITY,PRICE,ODATE,TIME)
VALUES('O107','GUJARATI','10','2500','26-AUG-2019','8:00PM')
SELECT *FROM DUAL;

SELECT *FROM ORDERDETAIL

CHEFF
INSERT INTO CHEFF (CHID,FNAME,LNAME,CONTACT) VALUES
('CH101','ABHIJEET','SINGH','9853669124')
INSERT ALL INTO CHEFF (CHID,FNAME,LNAME,CONTACT) VALUES
('CH102','KIRAN','SHAH','5253669124')
INTO CHEFF (CHID,FNAME,LNAME,CONTACT) VALUES
('CH103','SARTAJ','SINGH','9853612124')
INTO CHEFF (CHID,FNAME,LNAME,CONTACT) VALUES
('CH104','AJAY','PANDEY','9853779124')
SELECT *FROM DUAL;
UPDATE CHEFF SET SALARY=’15000’

SELECT *FROM CHEFF

DDU(Faculty of Tech.,Dept. of IT) 28 | P a g e


KEYMACH
INSERT ALL INTO KEYMACH(MID,CHID) VALUES('M103','CH101')
INTO KEYMACH(MID,CHID) VALUES('M103','CH103')
INTO KEYMACH(MID,CHID) VALUES('M102','CH101')
INTO KEYMACH(MID,CHID) VALUES('M101','CH104')
INTO KEYMACH(MID,CHID) VALUES('M103','CH102')
INTO KEYMACH(MID,CHID) VALUES('M104','CH103')
SELECT *FROM DUAL;
SELECT *FROM KEYORCH

KEYORCH
INSERT INTO KEYORCH(OID,CHID) VALUES('O101','CH102')
INSERT ALL INTO KEYORCH(OID,CHID) VALUES('O103','CH101')
INTO KEYORCH(OID,CHID) VALUES('O105','CH103')
INTO KEYORCH(OID,CHID) VALUES('O102','CH101')

DDU(Faculty of Tech.,Dept. of IT) 29 | P a g e


INTO KEYORCH(OID,CHID) VALUES('O106','CH102')
INTO KEYORCH(OID,CHID) VALUES('O107','CH102')
INTO KEYORCH(OID,CHID) VALUES('O104','CH102')
SELECT *FROM DUAL;

SELECT *FROM KEYORCH

MENU
INSERT ALL INTO MENU(MENUID) VALUES ('ME1')
INTO MENU(MENUID) VALUES ('ME2')
INTO MENU(MENUID) VALUES ('ME3')
SELECT *FROM DUAL;

SELECT *FROM MENU

DDU(Faculty of Tech.,Dept. of IT) 30 | P a g e


KEYMECU
INSERT ALL INTO KEYMECU(MENUID,CID) VALUES('ME1','C107')
INTO KEYMECU(MENUID,CID) VALUES('ME1','C106')
INTO KEYMECU(MENUID,CID) VALUES('ME3','C105')
INTO KEYMECU(MENUID,CID) VALUES('ME2','C101')
INTO KEYMECU(MENUID,CID) VALUES('ME3','C103')
INTO KEYMECU(MENUID,CID) VALUES('ME1','C102')
INTO KEYMECU(MENUID,CID) VALUES('ME2','C104')
SELECT *FROM DUAL;

SELECT *FROM KEYMECU

MENUDETAILS
INSERT ALL INTO MENUDETAILS (MENUID,NAME,PRICES,SIZES) VALUES
('ME1','PUNJABI','250','200')
INTO MENUDETAILS (MENUID,NAME,PRICES,SIZES) VALUES
('ME1','CHINESE','300','150')
INTO MENUDETAILS (MENUID,NAME,PRICES,SIZES) VALUES
('ME1','GUJARATI','500','250')
INTO MENUDETAILS (MENUID,NAME,PRICES,SIZES) VALUES
('ME1','SOUTHINDIAN','450','200')
INTO MENUDETAILS (MENUID,NAME,PRICES,SIZES) VALUES
('ME2','PUNJABI','250','200')

DDU(Faculty of Tech.,Dept. of IT) 31 | P a g e


INTO MENUDETAILS (MENUID,NAME,PRICES,SIZES) VALUES
('ME2','CHINESE','300','150')
INTO MENUDETAILS (MENUID,NAME,PRICES,SIZES) VALUES
('ME2','GUJARATI','500','250')
INTO MENUDETAILS (MENUID,NAME,PRICES,SIZES) VALUES
('ME2','SOUTHINDIAN','450','200')
INTO MENUDETAILS (MENUID,NAME,PRICES,SIZES) VALUES
('ME3','PUNJABI','250','200')
INTO MENUDETAILS (MENUID,NAME,PRICES,SIZES) VALUES
('ME3','CHINESE','300','150')
INTO MENUDETAILS (MENUID,NAME,PRICES,SIZES) VALUES
('ME3','GUJARATI','500','250')
INTO MENUDETAILS (MENUID,NAME,PRICES,SIZES) VALUES
('ME3','SOUTHINDIAN','450','200')
SELECT *FROM DUAL;

SELECT *FROM MENUDETAILS

DDU(Faculty of Tech.,Dept. of IT) 32 | P a g e


QUERIES

1) Find name of all customer whose amount is greater then 1000 bill of
Restaurant

SELECT *FROM CUSTOMER C INNER JOIN BILL B ON C.BILLNO = B.BILLNO


WHERE AMOUNT>1000;

2) Find total detail about customer that give punjabi order


SELECT *FROM CUSTOMER C INNER JOIN ORDERS O ON C.CID = O.CID
INNER JOIN ORDERDETAIL L ON L.OID = O.OID WHERE
L.ITEMNAME='PUNJABI';

3) Find out total details that cashier who works to MILL ROAD branch
SELECT *FROM CASHIER C INNER JOIN RESTAURANT R ON C.RID = R.RID
WHERE C.RID=’R102’

DDU(Faculty of Tech.,Dept. of IT) 33 | P a g e


4) Which customer order taken by abhi as a waiter a customer

SELECT *FROM CUSTOMER C INNER JOIN KEYWC K ON K.CID = C.CID


INNER JOIN WAITER W ON W.WID = K.WID WHERE W.FNAME='ABHI';

5) Find details of all customer who paid amount as a card find out
SELECT *FROM CUSTOMER C INNER JOIN BILL B ON B.BILLNO = C.BILLNO
INNER JOIN CASHIER D ON D.CHID = B.CHID INNER JOIN PAYMENT P ON
P.PID = D.PID WHERE P.PID='P102

6) Find out how many total GUJARATI quntity


SELECT SUM(ITEMQUANTITY) FROM CUSTOMER C INNER JOIN ORDERS O
ON C.CID = O.CID INNER JOIN ORDERDETAIL L ON L.OID = O.OID WHERE
L.ITEMNAME='GUJARATI';

DDU(Faculty of Tech.,Dept. of IT) 34 | P a g e


7) How many manager take CHINESE order

SELECT COUNT(M.MID) FROM MANAGER M INNER JOIN ORDERS O ON


O.MID = M.MID INNER JOIN ORDERDETAIL K ON K.OID = O.OID WHERE
K.ITEMNAME='CHINESE';

8) Find a name of customer that comes from BLOSSOM and give chinese
as a order

SELECT *FROM CUSTOMER C INNER JOIN ORDERS O ON C.CID = O.CID


INNER JOIN ORDERDETAIL L ON L.OID = O.OID WHERE
L.ITEMNAME='CHINESE' AND C.STREET='BLOSSOM';

9) Find a total quntity which is order from blossom

SELECT SUM(ITEMQUANTITY) FROM CUSTOMER C INNER JOIN ORDERS O


ON C.CID = O.CID INNER JOIN ORDERDETAIL L ON L.OID = O.OID WHERE
C.STREET='BLOSSOM';

DDU(Faculty of Tech.,Dept. of IT) 35 | P a g e


10) A customer comes from blossom and what order that gives where
Price equals to 2500
SELECT *FROM CUSTOMER C INNER JOIN ORDERS O ON C.CID = O.CID
INNER JOIN ORDERDETAIL L ON L.OID = O.OID WHERE
C.STREET='BLOSSOM' AND L.PRICE='2500';

11) Display no of CASHIER in particular RESTURANT

SELECT RID,COUNT(CHID) FROM CASHIER GROUP BY RID ORDER BY


COUNT(CHID)

12) Display sum of total quantity in particalar item


SELECT ITEMNAME,SUM(ITEMQUANTITY) FROM ORDERDETAIL
GROUP BY ITEMNAME ORDER BY SUM(ITEMQUANTITY)

DDU(Faculty of Tech.,Dept. of IT) 36 | P a g e


13) count total no of order in particular date=’29-aug-2019’
SELECT COUNT(OID) FROM ORDERS WHERE OID IN(SELECT OID
FROM ORDERDETAIL WHERE ODATE='29-AUG-2019')

DDU(Faculty of Tech.,Dept. of IT) 37 | P a g e


PL/SQL

 EXCEPTION

1) Exception in plsql that gives details of customer if found


DECLARE
c_id customer.cid%type := :c;
c_name customer.fname%type;
c_contact customer.contact%type;
c_city customer.city%type;
BEGIN
SELECT cid,fname,contact,city INTO c_id,c_name , c_contact,c_city
FROM customer
WHERE cid = c_id;
DBMS_OUTPUT.PUT_LINE ('cid is : '|| c_id);
DBMS_OUTPUT.PUT_LINE ('cname is: ' || c_name);
DBMS_OUTPUT.PUT_LINE ('contact is: '|| c_contact);
DBMS_OUTPUT.PUT_LINE ('city is: ' || c_city);
EXCEPTION
WHEN no_data_found THEN
dbms_output.put_line('No such customer!');
WHEN others THEN
dbms_output.put_line('Error!');
END;/
OUTPUT:

DDU(Faculty of Tech.,Dept. of IT) 38 | P a g e


OUTPUT OF EXCEPTION THAT GIVES ERROR:

DDU(Faculty of Tech.,Dept. of IT) 39 | P a g e


2) Userdefined exception that take a salary of waiter if new salry is
less than or equals to 5000 then raise exception otherwise
update it

DECLARE
w_id waiter.wid%type :=:WID;
wsalary waiter.salary%type:=:SALARY;
ex_invalid_salary EXCEPTION;
BEGIN
IF wsalary <= 5000 THEN
RAISE ex_invalid_salary;
ELSE
UPDATE WAITER SET SALARY=wsalary where WID=w_id;
END IF;
EXCEPTION
WHEN ex_invalid_salary THEN
dbms_output.put_line('Minimum Salary must be greater than 5000!');
WHEN no_data_found THEN
dbms_output.put_line('No such waiter is found!');
WHEN others THEN
dbms_output.put_line('Error!');
END; /
OUTPUT : IF WE GENERATE EXECEPTION:

DDU(Faculty of Tech.,Dept. of IT) 40 | P a g e


SELECT *FROM WAITER

IF EXCEPTION IS NOT GENERATE:

SELECT *FROM WAITER

DDU(Faculty of Tech.,Dept. of IT) 41 | P a g e


 FUNCTION

3) Function that count total no of customer and return it


CREATE OR REPLACE FUNCTION totalCustomers
RETURN number IS
total number(2) := 0;
BEGIN
SELECT count(*) into total
FROM customer;
RETURN total;
END; /
OUTPUT: FUCTION IS CREATRED

 Calling totalcustomers function


DECLARE
c number(2);
BEGIN
c := totalCustomers();
dbms_output.put_line('Total no. of Customers: ' || c);
END; /
OUTPUT:

DDU(Faculty of Tech.,Dept. of IT) 42 | P a g e


4) Function take date from user and give total sum of that price
for that date

CREATE OR REPLACE FUNCTION totalprice(D IN VARCHAR2)


RETURN number AS
total number(20) := 0;
BEGIN
SELECT sum(PRICE) into totaL FROM ORDERDETAIL WHERE
ODATE=D;
RETURN total;
END; /
OUTPUT: FUCTION IS CREATRED

 Calling totalprice function


DECLARE
c number(20);
odate varchar2(20):=:DATE;
BEGIN
c := totalprice(odate);
dbms_output.put_line('Total sum of price is: ' || c);
END; /
OUTPUT:

DDU(Faculty of Tech.,Dept. of IT) 43 | P a g e


 PROCEDURE

5) Procedure that give itemname that findout no of quantity on a


give date
CREATE OR REPLACE PROCEDURE SUMQUAN(C IN
ORDERDETAIL.ITEMNAME%TYPE, B IN ORDERDETAIL.ODATE
%TYPE)
IS
TOTAL NUMBER(20);
BEGIN
SELECT SUM(ITEMQUANTITY) INTO TOTAL FROM CUSTOMER C
INNER JOIN ORDERS O ON C.CID = O.CID INNER JOIN
ORDERDETAIL L ON L.OID = O.OID WHERE L.ITEMNAME=C AND
L.ODATE=B;
dbms_output.put_line('ITEMNAME '|| C ||' QUANTITY ' || TOTAL);
END;/
OUTPUT: PROCEDURE IS CREATRED

 Calling sumquan procedure


DECLARE
A ORDERDETAIL.ITEMNAME%TYPE;
B ORDERDETAIL.ODATE%TYPE;
BEGIN
A:=:ITEMNAME;
B:=:DATE;
SUMQUAN(A,B);

DDU(Faculty of Tech.,Dept. of IT) 44 | P a g e


END;/
OUTPUT:

6) Create a procedure to register a new waiter


CREATE OR REPLACE PROCEDURE INSERT_INTO(C IN
WAITER.WID%TYPE,CF IN WAITER.FNAME%TYPE,CL IN
WAITER.LNAME%TYPE,CO IN WAITER.CONTACT%TYPE,CI IN
WAITER.SALARY%TYPE)
IS
BEGIN
INSERT INTO WAITER(WID,FNAME,LNAME,CONTACT,SALARY)
VALUES(C,CF,CL,CO,CI);
END;/
OUTPUT: PROCEDURE IS CREATRED

 Calling insert_into procedure

DECLARE
A WAITER.WID%TYPE;
B WAITER.FNAME%TYPE;
C WAITER.LNAME%TYPE;
D WAITER.CONTACT%TYPE;
E WAITER.SALARY%TYPE;

DDU(Faculty of Tech.,Dept. of IT) 45 | P a g e


BEGIN
A:=:WID;
B:=:FNAME;
C:=:LNAME;
D:=:CONATACT;
E:=:SALARY;
INSERT_INTO(A,B,C,D,E);
END;/
OUTPUT:

DDU(Faculty of Tech.,Dept. of IT) 46 | P a g e


SELECT *FROM WAITER;

 CURSOR

7) Implicit cursor upadate cashier salary


DECLARE
total_rows number(2);
BEGIN
UPDATE cashier
SET salary = salary + 500;
IF sql%notfound THEN
dbms_output.put_line('no cashier selected');
ELSIF sql%found THEN
total_rows := sql%rowcount;
dbms_output.put_line( total_rows || ' cashier is selected ');
END IF;
END;/

DDU(Faculty of Tech.,Dept. of IT) 47 | P a g e


OUTPUT:

SELECT *FROM CASHIER

8) Explicit cursor that take mobileno and cashierid from user and
update the new mobile no
DECLARE
NO VARCHAR2(20):=:MOBILENO;
CAID VARCHAR2(10):=:CASHIERID;
c_id CASHIER.CHID%type;
CNO CASHIER.CH_CONTACT%type;
CURSOR C_CASHIER is SELECT CHID, CH_CONTACT FROM
CASHIER;
BEGIN
OPEN C_CASHIER;
LOOP
FETCH C_CASHIER into c_id, CNO;
EXIT WHEN C_CASHIER%notfound;
UPDATE CASHIER SET CH_CONTACT=NO WHERE CHID=CAID;
END LOOP;

DDU(Faculty of Tech.,Dept. of IT) 48 | P a g e


CLOSE C_CASHIER;
END; /
OUTPUT:

SELECT *FROM CASHIER;

 TRIGGER

9) Trigger of Salary diffrence of waiter(NEW SALARY-OLD


SALARY)

CREATE OR REPLACE TRIGGER display_salary_changes


BEFORE DELETE OR INSERT OR UPDATE ON WAITER

DDU(Faculty of Tech.,Dept. of IT) 49 | P a g e


FOR EACH ROW
WHEN(NEW.SALARY > 0)
DECLARE
sal_diff number;
BEGIN
sal_diff := :NEW.salary - :OLD.salary;
dbms_output.put_line('Old salary: ' || :OLD.salary);
dbms_output.put_line('New salary: ' || :NEW.salary);
dbms_output.put_line('Salary difference: ' || sal_diff);
END;/
OUTPUT: TRIGGER IS CREATED
UPDATE WAITER SET SALARY='20000';

DDU(Faculty of Tech.,Dept. of IT) 50 | P a g e


SELECT *FROM WAITER

DDU(Faculty of Tech.,Dept. of IT) 51 | P a g e


10) Trigger of after insert row in customer table show that
Details
CREATE OR REPLACE TRIGGER DISPLAY AFTER INSERT ON
CUSTOMER FOR
EACH ROW
DECLARE
BEGIN
DBMS_OUTPUT.PUT_LINE('TRIGGER FIRED');
DBMS_OUTPUT.PUT_LINE('CID:'||:NEW.CID);
DBMS_OUTPUT.PUT_LINE('CNAME:'||:NEW.FNAME ||'
'||:NEW.LNAME);
DBMS_OUTPUT.PUT_LINE('CONTACT:'||:NEW.CONTACT);
DBMS_OUTPUT.PUT_LINE('STREET:'||:NEW.STREET);
DBMS_OUTPUT.PUT_LINE('CITY:'||:NEW.CITY);
DBMS_OUTPUT.PUT_LINE('BILLNO:'||:NEW.BILLNO);
END;/
OUTPUT:TRIGGER IS CREATED:

INSERT INTO
CUSTOMER(CID,FNAME,LNAME,CONTACT,STREET,CITY,BILLN
O)
VALUES('C108','KAVISH','KOTHARI','5953958390','BLOSSOM','NAD
IAD','B107')
OUTPUT:

DDU(Faculty of Tech.,Dept. of IT) 52 | P a g e


FUTURE ENHANCEMENTS OF THE SYSTEM

DDU(Faculty of Tech.,Dept. of IT) 53 | P a g e


 All transactions are captured by the system, including orders, payments, voids, promo
deals, and expenses, so your sales data is accurate and spot on to the last item. Revenues,
therefore, are accurately giving you the real health of your operation.

 Better customer service


This is probably the best reason why use restaurant management system: make customers
happy. Most restaurant management systems come with a CRM. This module records
customer information like name, contact details, and transactions. With more knowledge
of your customer’s likes, you can deliver a more satisfying service.

 Access data wherever


Most restaurant management software today is cloud-hosted, which lets you access the
system and your data from a web browser. You get real-time sales transactions and track
employee performance even on the go. That means you can be a hands-on manager while
out of the restaurant premises. Remote data access is also useful when presenting to a
client or investor; you can showcase updated reports on your business.

 Efficient Staff Management


A restaurant management system with an employee scheduler will help you allocate more
staff during peak hours and less on downtime. By aggregating sales data with staff
schedule you can match demand with supply and ensure your resources are optimized,
neither over- or under-utilized.

 Better communication between the kitchen, waiting, and cashier


The perennial problem in running restaurants is that somewhere along the way someone
mixes up information. The result: an angry customer whose order is, if not wrong, remain
unaddressed or improperly billed. A restaurant management system does away with this
scenario. When waiting takes orders via a handheld device that data is automatically
transmitted to the cashier so the right transaction is captured and billing is accurate. At
the same time, the handheld device transmits the order items to the kitchen. Barking
orders to the head cook is a thing of the past.

BIBLIOGRAPHY

DDU(Faculty of Tech.,Dept. of IT) 54 | P a g e


Books:
 Database System Concepts
By:- Henry F.Korth and A.Silberschatz

 PL/SQL Programming
By:- Ivan Bayross

 The Complete Reference


By:- George Koch

THANK YOU

DDU(Faculty of Tech.,Dept. of IT) 55 | P a g e

You might also like