You are on page 1of 49

CS66 Advanced Oracle

Spring 2002
Group 10
Project Overview

Developed by
Terence Kyle Reynolds
Maria Tsipurskaya
Illeana Grimm
Glen Chen

INTRODUCTION
The purpose of this application was to develop physical RDMS and
its visual representation for general Restaurant Management
operations such as fulfilling customers orders and managing
inventory.
Tools used are Oracle 8i, SQL*Plus, PL/ SQL, Oracle Designer 2000
and Oracle Developer 2000.
The project required well-organized teamwork, squeezed in a strict
time frame, which was successfully carried out by the group.
Due the slow server on which Oracle Designer resided, we had a
difficult time getting things to work correctly while working on the
project. They were many instances in which Oracle Designer
suddenly became unresponsive, preventing us from completing
many parts of our project. Fortunately, we were able to get around
the slowness of the server by using alternative methods or working
on our project when there were less people in the computer lab.

STRATEGY
Strategy Document :
Business main entities that need to be kept records of in the database are
- restaurant products and its categories,
- purchase orders,
- employees records,
- suppliers,
- menu items and categories,
- meal orders and order details
- bills.
Top-level requirements:
The project is very efficient as far as resources are concerned. It will be developed by a
group of 4 students, who will be rewarded with nothing but a class grade for the
implementation of an Oracle database worth thousands.
Political environment:
The Oracle CASE tools will be heavily abused by other developers which expected to
slow down the system response significally. There is also security risk involved because
of the common public access to the application. Backups must be created with any
change in the application.
Work flow plan:
RMS Database must be designed and implemented in the period from Feb 19, 2002 to
June 15, 2002. Developers will meet weekly and complete one of the required sections
of the project. The project must be well planned and documented throughout SDLC, and
all client requirements must be met. Application will be stored in repository. Screen
shots and documentation will be presented to a client by the deadline. The key
deliverables of the strategy phase are the process flow diagram and the entity relationship
diagram. These two diagrams represent the processes and data in the system and will be
used to communicate with the user to ensure that the daily operation of the restaurant is
accurately modeled.
Strategy-level process flows:
The top level business processes that must be covered are:
- management of customer orders,
- management of inventory,
- human resources management.

PRE-ANALYSIS
Logical and Physical Database Diagrams, Process model, physical tables, table data and
forms will be developed using Oracle Designer 2000 and Developer 2000 CASE tools.
Restaurant ERD will be implemented in Entity Relationship Diagrammer. This logical
design "map" will be converted into Server model diagram by running Database
Transformer. All necessary constraints, triggers, procedures and functions must be set in
Design Editor. This can be further edited and transformed into SQL statements, which in
turn, generate real tables. Developers group will write DML SQL statements to populate
the Oracle tables.
Business processes are mirrored in a Process Modeler. This diagram will be transformed
into Function Hierarchy Diagram. Based on the last modules will be generated and
converted into forms. Forms layout can be tested and modified in Developer 2000.

ANALYSIS
The Analysis Document : User Requirements.
---these are not the user requirements/specs for the project.they are OUR
requirements to get an A on the project---pretend youre the user, talk about
why you need someone to design a system for you
1. Logical Database Diagram
2. Physical Database Diagram showing:
Tables
Join Tables
Columns
Relationships
Primary Keys
Foreign Keys
Approximate Row Counts
3. DDL Syntax creating:
Tables
Constraints such as primary keys, foreign keys, checks
Sequences
4. DML Syntax showing:
Table Inserts
5. Project-related PL/SQL Code for:
At least 3 functions
At lease 3 procedures
At lease 3 triggers
At least 1 package
A main program that calls all these functions, procedures, triggers and the
package
6. Screens or Forms
Display screens
Input/Output screens

Restaurant Management System

logical ERD

Function Hierarchy Diagram :

PRE - DESIGN
Design Plan :
Based on the logical ERD Designer 2000 generated a physical model. Foreign and primary keys
relationships were established.

Process model Diagram developed turned out quite large. Here is a preview. More detailed
snapshots are provided below.

(top left corner)

(top right corner)

(bottom left)

(bottom right)
Screen prototype:
The developed forms will look similar to the one below, with buttons near the top of the form to
allow the user to insert, delete, save and query records from the database. The table fields, placed
in the center of the form, will have labels and display existing records in the database.

DESIGN
During the Design phase, modules were generated using the Oracle designer generators.

Modules are converted into forms and edited in the Developer 2000:
Product

Meal Order

Meal Order Detail

Employee

BUILD
The following files are the DDL files that Designer 2000 generated based on the physical
model of our application.
- RMS.sql main script that calls all other scripts.
- RMS.tab creates Oracle tables
- RMS.drop for testing, drops all tables and constrains
- RMS.con creates constraints
- RMS.ind creates table indexes
- RMS.insert inserts database values into the tables
- RMS.trg sets triggers
- RMS.select displays all tables with data

-- RMS.sql --------------------------------------------------------------------------------------------------------- Generated for Oracle 8 on Sun Jun 09 12:47:39 2002 by Server Generator 2.1.19.5.0
SET LINESIZE 1000
SPOOL RMS.lst
@@ RMS.drop
@@ RMS.tab
@@ RMS.ind
@@ RMS.con
@@ RMS.trg
@@ RMS.insert
@@ RMS.select
SPOOL OFF

-- RMS.drop --------------------------------------------------------------------------------------------------ALTER
ALTER
ALTER
ALTER
ALTER
ALTER
ALTER
ALTER
ALTER
ALTER
ALTER
ALTER

TABLE
TABLE
TABLE
TABLE
TABLE
TABLE
TABLE
TABLE
TABLE
TABLE
TABLE
TABLE

RMS_PRODUCT_CATS DROP PRIMARY KEY CASCADE;


RMS_PRODUCTS DROP PRIMARY KEY CASCADE;
RMS_SUPPLIERS DROP PRIMARY KEY CASCADE;
RMS_EMPLOYEES DROP PRIMARY KEY CASCADE;
RMS_PURCHASE_ORDERS DROP PRIMARY KEY CASCADE;
RMS_PURCHASE_ORDER_DETAILS DROP PRIMARY KEY CASCADE;
RMS_MEAL_ORDERS DROP PRIMARY KEY CASCADE;
RMS_PAYMENT_METHODS DROP PRIMARY KEY CASCADE;
RMS_BILLINGS DROP PRIMARY KEY CASCADE;
RMS_MENU_ITEM_CATS DROP PRIMARY KEY CASCADE;
RMS_MEAL_MENU_ITEMS DROP PRIMARY KEY CASCADE;
RMS_MEAL_ORDER_DETAILS DROP PRIMARY KEY CASCADE;

ALTER TABLE RMS_PURCHASE_ORDER_DETAILS DROP CONSTRAINT RMS_PO_CHK1;


DROP
DROP
DROP
DROP
DROP
DROP
DROP
DROP
DROP
DROP
DROP
DROP

TABLE
TABLE
TABLE
TABLE
TABLE
TABLE
TABLE
TABLE
TABLE
TABLE
TABLE
TABLE

RMS_PRODUCTS;
RMS_PURCHASE_ORDER_DETAILS;
RMS_PURCHASE_ORDERS;
RMS_MEAL_ORDERS;
RMS_SUPPLIERS;
RMS_MEAL_MENU_ITEMS;
RMS_PAYMENT_METHODS;
RMS_BILLINGS;
RMS_EMPLOYEES;
RMS_MEAL_ORDER_DETAILS;
RMS_MENU_ITEM_CATS;
RMS_PRODUCT_CATS;

-- RMS.tab -------------------------------------------------------------------------------------------------- Generated for Oracle 8 on Sun Jun 09


Generator 2.1.19.5.0

14:15:41 2002 by Server

PROMPT Creating Table 'RMS_PAYMENT_METHODS'


CREATE TABLE RMS_PAYMENT_METHODS
(PAYMENT_METHOD VARCHAR2(11) NOT NULL
,PAYMENT_METHOD_ID VARCHAR2(4) NOT NULL
,DESCRIPTION VARCHAR2(50)
)
/
PROMPT Creating Table 'RMS_MENU_ITEM_CATS'
CREATE TABLE RMS_MENU_ITEM_CATS

(MENU_ITEM_CAT_ID VARCHAR2(4) NOT NULL


,MENU_CAT_NAME VARCHAR2(20) NOT NULL
,DESCRIPTION VARCHAR2(50)
)
/
PROMPT Creating Table 'RMS_PRODUCTS'
CREATE TABLE RMS_PRODUCTS
(PROD_CAT_PROD_CAT_ID VARCHAR2(10) NOT NULL
,DESCRIPTION VARCHAR2(20)
,UNIT VARCHAR2(15) NOT NULL
,PRODUCT_ID NUMBER(4) NOT NULL
,PRODUCT_NAME VARCHAR2(20) NOT NULL
,QUANTITY VARCHAR2(10)
,UNIT_PRICE NUMBER(4,2) DEFAULT 0 NOT NULL
)
/
PROMPT Creating Table 'RMS_PRODUCT_CATS'
CREATE TABLE RMS_PRODUCT_CATS
(PROD_CAT_ID VARCHAR2(10) NOT NULL
,PROD_CAT_NAME VARCHAR2(15) NOT NULL
,DESCRIPTION VARCHAR2(30)
)
/
PROMPT Creating Table 'RMS_SUPPLIERS'
CREATE TABLE RMS_SUPPLIERS
(ZIP_CODE VARCHAR2(5) NOT NULL
,COUNTRY VARCHAR2(20) NOT NULL
,PHONE_NUMBER VARCHAR2(20) NOT NULL
,FAX_NUMBER VARCHAR2(20)
,STATE VARCHAR2(7) NOT NULL
,SUPPLIER_NAME VARCHAR2(20) NOT NULL
,CONTACT_NAME VARCHAR2(30) NOT NULL
,CONTACT_TITLE VARCHAR2(15)
,ADDRESS VARCHAR2(100) NOT NULL
,CITY VARCHAR2(20) NOT NULL
,SUPPLIER_ID NUMBER(4) NOT NULL
)
/
PROMPT Creating Table 'RMS_PURCHASE_ORDERS'
CREATE TABLE RMS_PURCHASE_ORDERS
(ORDER_DATE DATE NOT NULL
,PURCHASE_ORD_ID VARCHAR2(4) NOT NULL
,DESCRIPTION VARCHAR2(50)
,DATE_PROMISED DATE
,EMP_EMPLOYEE_ID NUMBER(4) NOT NULL
,SUP_SUPPLIER_ID NUMBER(4) NOT NULL
)
/
PROMPT Creating Table 'RMS_EMPLOYEES'
CREATE TABLE RMS_EMPLOYEES
(STATE VARCHAR2(2)
,ZIP_CODE VARCHAR2(5)

,EMPLOYEE_ID NUMBER(4) NOT NULL


,FIRST_NAME VARCHAR2(20) NOT NULL
,LAST_NAME VARCHAR2(20) NOT NULL
,TITLE VARCHAR2(20) NOT NULL
,HOME_PHONE_NO VARCHAR2(20) NOT NULL
,ADDRESS VARCHAR2(30)
,CITY VARCHAR2(30)
)
/
PROMPT Creating Table 'RMS_PURCHASE_ORDER_DETAILS'
CREATE TABLE RMS_PURCHASE_ORDER_DETAILS
(PO_DET_SEQ VARCHAR2(10) NOT NULL
,QUANTITY NUMBER(4,0) DEFAULT 0 NOT NULL
,PO_PURCHASE_ORD_ID VARCHAR2(4) NOT NULL
,PROD_PRODUCT_ID NUMBER(4) NOT NULL
)
/
PROMPT Creating Table 'RMS_BILLINGS'
CREATE TABLE RMS_BILLINGS
(BILLING_ID NUMBER(4) NOT NULL
,PAYMENT_AMOUNT NUMBER(4,2) DEFAULT 0 NOT NULL
,PAYMENT_DATE DATE NOT NULL
,CREDIT_CARD_NO VARCHAR2(20)
,CARD_HOLDER_NAME VARCHAR2(30)
,CREDIT_CARD_EXP_DATE VARCHAR2(5)
,PM_PAYMENT_METHOD_ID VARCHAR2(4) NOT NULL
,MO_MEAL_ORDER_ID VARCHAR2(4) NOT NULL
)
/
PROMPT Creating Table 'RMS_MEAL_ORDERS'
CREATE TABLE RMS_MEAL_ORDERS
(EMP_EMPLOYEE_ID NUMBER(4) NOT NULL
,COMMENTS VARCHAR2(30)
,MEAL_ORDER_ID VARCHAR2(4) NOT NULL
,NUMBER_OF_PEOPLE NUMBER(3,0) DEFAULT 0 NOT NULL
,ORDER_TIME DATE NOT NULL
,TABLE_NUMBER VARCHAR2(3) NOT NULL
,ORDER_DATE DATE NOT NULL
)
/
PROMPT Creating Table 'RMS_MEAL_ORDER_DETAILS'
CREATE TABLE RMS_MEAL_ORDER_DETAILS
(MO_MEAL_ORDER_ID VARCHAR2(4) NOT NULL
,MMI_MENU_ITEM_ID VARCHAR2(4) NOT NULL
,QUANTITY NUMBER(4,0) DEFAULT 0 NOT NULL
,COMMENTS VARCHAR2(30)
,ORD_DET_SEQ VARCHAR2(10) NOT NULL
)
/
PROMPT Creating Table 'RMS_MEAL_MENU_ITEMS'
CREATE TABLE RMS_MEAL_MENU_ITEMS
(MIC_MENU_ITEM_CAT_ID VARCHAR2(4) NOT NULL

,PREP_TIME VARCHAR2(10)
,MENU_ITEM_ID VARCHAR2(4) NOT NULL
,ITEM_NAME VARCHAR2(30) NOT NULL
,DESCRIPTION VARCHAR2(50)
,PRICE NUMBER(4,2) DEFAULT 0 NOT NULL
)
/

-- RMS.ind ----------------------------------------------------------------------------------------------------- RMS.ind


--- Generated for Oracle 8 on Sun Jun 09
Generator 2.1.19.5.0

14:15:41 2002 by Server

PROMPT Creating Index 'PROD_PROD_CAT_FK_I'


CREATE INDEX PROD_PROD_CAT_FK_I ON RMS_PRODUCTS
(PROD_CAT_PROD_CAT_ID)
/
PROMPT Creating Index 'RMS_PO_SUP_FK_I'
CREATE INDEX RMS_PO_SUP_FK_I ON RMS_PURCHASE_ORDERS
(SUP_SUPPLIER_ID)
/
PROMPT Creating Index 'RMS_PO_EMP_FK_I'
CREATE INDEX RMS_PO_EMP_FK_I ON RMS_PURCHASE_ORDERS
(EMP_EMPLOYEE_ID)
/
PROMPT Creating Index 'RMS_POD_PROD_FK_I'
CREATE INDEX RMS_POD_PROD_FK_I ON RMS_PURCHASE_ORDER_DETAILS
(PROD_PRODUCT_ID)
/
PROMPT Creating Index 'RMS_POD_PO_FK_I'
CREATE INDEX RMS_POD_PO_FK_I ON RMS_PURCHASE_ORDER_DETAILS
(PO_PURCHASE_ORD_ID)
/
PROMPT Creating Index 'RMS_BIL_PM_FK_I'
CREATE INDEX RMS_BIL_PM_FK_I ON RMS_BILLINGS
(PM_PAYMENT_METHOD_ID)
/
PROMPT Creating Index 'RMS_BIL_MO_FK_I'
CREATE INDEX RMS_BIL_MO_FK_I ON RMS_BILLINGS
(MO_MEAL_ORDER_ID)
/
PROMPT Creating Index 'MO_EMP_FK_I'
CREATE INDEX MO_EMP_FK_I ON RMS_MEAL_ORDERS

(EMP_EMPLOYEE_ID)

PROMPT Creating Index 'MOD_MO_FK_I'


CREATE INDEX MOD_MO_FK_I ON RMS_MEAL_ORDER_DETAILS
(MO_MEAL_ORDER_ID)
/
PROMPT Creating Index 'MOD_MMI_FK_I'
CREATE INDEX MOD_MMI_FK_I ON RMS_MEAL_ORDER_DETAILS
(MMI_MENU_ITEM_ID)
/
PROMPT Creating Index 'MMI_MIC_FK_I'
CREATE INDEX MMI_MIC_FK_I ON RMS_MEAL_MENU_ITEMS
(MIC_MENU_ITEM_CAT_ID)
/

-- RMS.con ---------------------------------------------------------------------------------------------------- Generated for Oracle 8 on Sun Jun 09


2.1.19.5.0

12:47:39 2002 by Server Generator

PROMPT Creating Primary Key on 'RMS_PAYMENT_METHODS'


ALTER TABLE RMS_PAYMENT_METHODS
ADD CONSTRAINT RMS_PM_PK PRIMARY KEY
(PAYMENT_METHOD_ID)
/
PROMPT Creating Primary Key on 'RMS_MENU_ITEM_CATS'
ALTER TABLE RMS_MENU_ITEM_CATS
ADD CONSTRAINT RMS_MIC_PK PRIMARY KEY
(MENU_ITEM_CAT_ID)
/
PROMPT Creating Primary Key on 'RMS_PRODUCTS'
ALTER TABLE RMS_PRODUCTS
ADD CONSTRAINT RMS_PROD_PK PRIMARY KEY
(PRODUCT_ID)
/
PROMPT Creating Primary Key on 'RMS_PRODUCT_CATS'
ALTER TABLE RMS_PRODUCT_CATS
ADD CONSTRAINT RMS_PROD_CAT_PK PRIMARY KEY
(PROD_CAT_ID)
/
PROMPT Creating Primary Key on 'RMS_SUPPLIERS'
ALTER TABLE RMS_SUPPLIERS
ADD CONSTRAINT RMS_SUP_PK PRIMARY KEY
(SUPPLIER_ID)

/
PROMPT Creating Primary Key on 'RMS_PURCHASE_ORDERS'
ALTER TABLE RMS_PURCHASE_ORDERS
ADD CONSTRAINT RMS_PO_PK PRIMARY KEY
(PURCHASE_ORD_ID)
/
PROMPT Creating Primary Key on 'RMS_EMPLOYEES'
ALTER TABLE RMS_EMPLOYEES
ADD CONSTRAINT RMS_EMP_PK PRIMARY KEY
(EMPLOYEE_ID)
/
PROMPT Creating Primary Key on 'RMS_PURCHASE_ORDER_DETAILS'
ALTER TABLE RMS_PURCHASE_ORDER_DETAILS
ADD CONSTRAINT RMS_POD_PK PRIMARY KEY
(PO_PURCHASE_ORD_ID
,PO_DET_SEQ)
/
PROMPT Creating Primary Key on 'RMS_BILLINGS'
ALTER TABLE RMS_BILLINGS
ADD CONSTRAINT RMS_BIL_PK PRIMARY KEY
(BILLING_ID)
/
PROMPT Creating Primary Key on 'RMS_MEAL_ORDERS'
ALTER TABLE RMS_MEAL_ORDERS
ADD CONSTRAINT RMS_MO_PK PRIMARY KEY
(MEAL_ORDER_ID)
/
PROMPT Creating Primary Key on 'RMS_MEAL_ORDER_DETAILS'
ALTER TABLE RMS_MEAL_ORDER_DETAILS
ADD CONSTRAINT RMS_MOD_PK PRIMARY KEY
(MO_MEAL_ORDER_ID
,ORD_DET_SEQ)
/
PROMPT Creating Primary Key on 'RMS_MEAL_MENU_ITEMS'
ALTER TABLE RMS_MEAL_MENU_ITEMS
ADD CONSTRAINT RMS_MMI_PK PRIMARY KEY
(MENU_ITEM_ID)
/
PROMPT Creating Check Constraints on 'RMS_EMPLOYEES'
ALTER TABLE RMS_EMPLOYEES
ADD CONSTRAINT RMS_EMPLOYEE CHECK (STATE in ('CA'))
/
PROMPT Creating Check Constraints on 'RMS_PURCHASE_ORDER_DETAILS'
ALTER TABLE RMS_PURCHASE_ORDER_DETAILS
ADD CONSTRAINT RMS_PO_CHK1 CHECK (QUANTITY > 0)
/
PROMPT Creating Check Constraints on 'RMS_BILLINGS'

ALTER TABLE RMS_BILLINGS


ADD CONSTRAINT RMS_BILLING_CH CHECK (PAYMENT_AMOUNT>0)
/
PROMPT Creating Check Constraints on 'RMS_MEAL_ORDERS'
ALTER TABLE RMS_MEAL_ORDERS
ADD CONSTRAINT RMS_MEAL_ORDERS_CH CHECK (TABLE_NUMBER<=25)
/
PROMPT Creating Check Constraints on 'RMS_MEAL_ORDER_DETAILS'
ALTER TABLE RMS_MEAL_ORDER_DETAILS
ADD CONSTRAINT RMS_MEAL_ORDER_DETAILS_CH CHECK (QUANTITY>0)
/
PROMPT Creating Foreign Keys on 'RMS_PRODUCTS'
ALTER TABLE RMS_PRODUCTS ADD CONSTRAINT
RMS_PROD_CAT_FK FOREIGN KEY
(PROD_CAT_PROD_CAT_ID) REFERENCES RMS_PRODUCT_CATS
(PROD_CAT_ID)
/
PROMPT Creating Foreign Keys on 'RMS_PURCHASE_ORDERS'
ALTER TABLE RMS_PURCHASE_ORDERS ADD CONSTRAINT
RMS_PO_EMP_FK FOREIGN KEY
(EMP_EMPLOYEE_ID) REFERENCES RMS_EMPLOYEES
(EMPLOYEE_ID) ADD CONSTRAINT
RMS_PO_SUP_FK FOREIGN KEY
(SUP_SUPPLIER_ID) REFERENCES RMS_SUPPLIERS
(SUPPLIER_ID)
/
PROMPT Creating Foreign Keys on 'RMS_PURCHASE_ORDER_DETAILS'
ALTER TABLE RMS_PURCHASE_ORDER_DETAILS ADD CONSTRAINT
RMS_POD_PROD_FK FOREIGN KEY
(PROD_PRODUCT_ID) REFERENCES RMS_PRODUCTS
(PRODUCT_ID) ADD CONSTRAINT
RMS_POD_PO_FK FOREIGN KEY
(PO_PURCHASE_ORD_ID) REFERENCES RMS_PURCHASE_ORDERS
(PURCHASE_ORD_ID)
/
PROMPT Creating Foreign Keys on 'RMS_BILLINGS'
ALTER TABLE RMS_BILLINGS ADD CONSTRAINT
RMS_BIL_PM_FK FOREIGN KEY
(PM_PAYMENT_METHOD_ID) REFERENCES RMS_PAYMENT_METHODS
(PAYMENT_METHOD_ID) ADD CONSTRAINT
RMS_BIL_MO_FK FOREIGN KEY
(MO_MEAL_ORDER_ID) REFERENCES RMS_MEAL_ORDERS
(MEAL_ORDER_ID)
/
PROMPT Creating Foreign Keys on 'RMS_MEAL_ORDERS'
ALTER TABLE RMS_MEAL_ORDERS ADD CONSTRAINT
RMS_MO_EMP_FK FOREIGN KEY
(EMP_EMPLOYEE_ID) REFERENCES RMS_EMPLOYEES
(EMPLOYEE_ID)
/

PROMPT Creating Foreign Keys on 'RMS_MEAL_ORDER_DETAILS'


ALTER TABLE RMS_MEAL_ORDER_DETAILS ADD CONSTRAINT
RMS_MOD_MO_FK FOREIGN KEY
(MO_MEAL_ORDER_ID) REFERENCES RMS_MEAL_ORDERS
(MEAL_ORDER_ID) ADD CONSTRAINT
RMS_MOD_MMI_FK FOREIGN KEY
(MMI_MENU_ITEM_ID) REFERENCES RMS_MEAL_MENU_ITEMS
(MENU_ITEM_ID)
/
PROMPT Creating Foreign Keys on 'RMS_MEAL_MENU_ITEMS'
ALTER TABLE RMS_MEAL_MENU_ITEMS ADD CONSTRAINT
RMS_MMI_MIC_FK FOREIGN KEY
(MIC_MENU_ITEM_CAT_ID) REFERENCES RMS_MENU_ITEM_CATS
(MENU_ITEM_CAT_ID)
/

--RMS.trg --------------------------------------------------------------------------------------------- RMS.trg


--- Generated for Oracle 8 on Sun Jun 09
Generator 2.1.19.5.0

14:15:41 2002 by Server

PROMPT Creating Trigger 'TRIG_PURCH_DATE'


CREATE OR REPLACE TRIGGER TRIG_PURCH_DATE BEFORE INSERT
ON RMS_PURCHASE_ORDERS
REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW
BEGIN
:new.order_date := sysdate;
END;
/

PROMPT Creating Trigger 'TRIG_PURCH_FRESH'


CREATE OR REPLACE TRIGGER TRIG_PURCH_FRESH BEFORE INSERT
ON RMS_PURCHASE_ORDER_DETAILS
REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW
BEGIN
DECLARE
V_PROD_CAT RMS_PRODUCT_CATS.PROD_CAT_ID%TYPE;
V_PROM_DATE DATE;
BEGIN

SELECT RPC.PROD_CAT_ID INTO V_PROD_CAT


FROM RMS_PRODUCT_CATS RPC, RMS_PRODUCTS RP
WHERE PRODUCT_ID = :new.PROD_PRODUCT_ID
AND RP.PROD_CAT_PROD_CAT_ID = RPC.PROD_CAT_ID;
IF V_PROD_CAT IN (2,6,7) THEN
SELECT DATE_PROMISED INTO V_PROM_DATE
FROM RMS_PURCHASE_ORDERS
WHERE PURCHASE_ORD_ID = :new.PO_PURCHASE_ORD_ID;
IF (V_PROM_DATE IS NULL) OR (V_PROM_DATE > SYSDATE + 3) THEN
UPDATE RMS_PURCHASE_ORDERS SET DATE_PROMISED = SYSDATE +3
WHERE PURCHASE_ORD_ID = :NEW.PO_PURCHASE_ORD_ID;
END IF;
END IF;
END;
END;
/
PROMPT Creating Trigger 'TRIG_002'
CREATE OR REPLACE TRIGGER TRIG_002 BEFORE INSERT
ON RMS_BILLINGS
REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW
BEGIN
:new.payment_date := sysdate;
END;
/

-- RMS.insert --------------------------------------------------------------------------------------------------- Product_Cat values


--------------------------------------------------PROMPT Inserting Values into Table 'RMS_PRODUCT_CATS'
INSERT INTO RMS_PRODUCT_CATS
(PROD_CAT_ID, PROD_CAT_NAME, DESCRIPTION)
VALUES
('1', 'Vegetables', 'Assorted veg.');
INSERT INTO RMS_PRODUCT_CATS
(PROD_CAT_ID, PROD_CAT_NAME, DESCRIPTION)
VALUES
('2', 'Meat', 'Poultry, beef, pork');
INSERT INTO RMS_PRODUCT_CATS
(PROD_CAT_ID, PROD_CAT_NAME, DESCRIPTION)
VALUES
('3', 'Bread', 'Sourdough, wheat, rye');
INSERT INTO RMS_PRODUCT_CATS
(PROD_CAT_ID, PROD_CAT_NAME, DESCRIPTION)
VALUES
('4', 'Wine', 'Imported and local');
INSERT INTO RMS_PRODUCT_CATS
(PROD_CAT_ID, PROD_CAT_NAME, DESCRIPTION)
VALUES
('5', 'Sweets', 'Imported, home baked');
INSERT INTO RMS_PRODUCT_CATS
(PROD_CAT_ID, PROD_CAT_NAME, DESCRIPTION)
VALUES
('6', 'Fruits', 'Season Fruits');
INSERT INTO RMS_PRODUCT_CATS
(PROD_CAT_ID, PROD_CAT_NAME, DESCRIPTION)
VALUES
('7', 'Dairy misc', 'Milk, Cheese, yogurt');

--Product values-----------------------------------------------------PROMPT Inserting Values into Table 'RMS_PRODUCTS'


INSERT INTO RMS_PRODUCTS
(PRODUCT_ID, PRODUCT_NAME, PROD_CAT_PROD_CAT_ID, UNIT_PRICE,
DESCRIPTION, QUANTITY, UNIT)
VALUES
('101', 'Steak', '2', 4.79, '', '12', 'lbs');
INSERT INTO RMS_PRODUCTS

(PRODUCT_ID, PRODUCT_NAME, PROD_CAT_PROD_CAT_ID, UNIT_PRICE,


DESCRIPTION, QUANTITY, UNIT)
VALUES
('102', 'Tomatos', '1', 2.35, '', '15', 'lbs');
INSERT INTO RMS_PRODUCTS
(PRODUCT_ID, PRODUCT_NAME, PROD_CAT_PROD_CAT_ID, UNIT_PRICE,
DESCRIPTION, QUANTITY, UNIT)
VALUES
('103', 'Pickles', '1', 7.95, 'tall jar', '1', 'jar');
INSERT INTO RMS_PRODUCTS
(PRODUCT_ID, PRODUCT_NAME, PROD_CAT_PROD_CAT_ID, UNIT_PRICE,
DESCRIPTION, QUANTITY, UNIT)
VALUES
('104', 'Baklava', '5', 12.00, '', '20', 'sheet');
INSERT INTO RMS_PRODUCTS
(PRODUCT_ID, PRODUCT_NAME, PROD_CAT_PROD_CAT_ID, UNIT_PRICE,
DESCRIPTION, QUANTITY, UNIT)
VALUES
('105', 'Chiken', '2', 5.00, '', '50', 'lbs');
INSERT INTO RMS_PRODUCTS
(PRODUCT_ID, PRODUCT_NAME, PROD_CAT_PROD_CAT_ID, UNIT_PRICE,
DESCRIPTION, QUANTITY, UNIT)
VALUES
('106', 'Merlot', '4', 10.00, '', '30', 'bottle');
INSERT INTO RMS_PRODUCTS
(PRODUCT_ID, PRODUCT_NAME, PROD_CAT_PROD_CAT_ID, UNIT_PRICE,
DESCRIPTION, QUANTITY, UNIT)
VALUES
('107', 'Mushrooms', '1', 18.00, '', '3', 'case');
INSERT INTO RMS_PRODUCTS
(PRODUCT_ID, PRODUCT_NAME, PROD_CAT_PROD_CAT_ID, UNIT_PRICE,
DESCRIPTION, QUANTITY, UNIT)
VALUES
('108', 'Chocolate', '5', 9.99, 'milk-choc, black', '12', 'lbs');
INSERT INTO RMS_PRODUCTS
(PRODUCT_ID, PRODUCT_NAME, PROD_CAT_PROD_CAT_ID, UNIT_PRICE,
DESCRIPTION, QUANTITY, UNIT)
VALUES
('109', 'Sourdough Bread', '3', 2.32, '', '30', 'loaf');
INSERT INTO RMS_PRODUCTS
(PRODUCT_ID, PRODUCT_NAME, PROD_CAT_PROD_CAT_ID, UNIT_PRICE,
DESCRIPTION, QUANTITY, UNIT)
VALUES
('110', 'Strawberries', '6', 10.00, '', '2', 'case');
INSERT INTO RMS_PRODUCTS
(PRODUCT_ID, PRODUCT_NAME, PROD_CAT_PROD_CAT_ID, UNIT_PRICE,
DESCRIPTION, QUANTITY, UNIT)
VALUES

('111', 'Cheese', '7', 4.59, '', '5', 'lbs');

-- Supplier values
-------------------------------------------------------PROMPT Inserting Values into Table 'RMS_SUPPLIERS'
INSERT INTO RMS_SUPPLIERS
(SUPPLIER_ID, SUPPLIER_NAME, ADDRESS, CITY, STATE, ZIP_CODE, COUNTRY,
CONTACT_NAME, CONTACT_TITLE, PHONE_NUMBER, FAX_NUMBER)
VALUES
('1', 'Best Foods Int.', '345 Herondo St.', 'Hermosa Beach', 'CA',
'92658', 'USA', 'Jess Carr', 'Sales Repr', '310-298-5752', '310-2985753');
INSERT INTO RMS_SUPPLIERS
(SUPPLIER_ID, SUPPLIER_NAME, ADDRESS, CITY, STATE, ZIP_CODE, COUNTRY,
CONTACT_NAME, CONTACT_TITLE, PHONE_NUMBER, FAX_NUMBER)
VALUES
('2', 'Fat Pigs Int.', '254 Main St.', 'Ontario', 'Quebec', '45867',
'Canada', 'Jason Ferr', 'Sales Repr', '2-3-476-255-4758', '2-3-476-2554759');
INSERT INTO RMS_SUPPLIERS
(SUPPLIER_ID, SUPPLIER_NAME, ADDRESS, CITY, STATE, ZIP_CODE, COUNTRY,
CONTACT_NAME, CONTACT_TITLE, PHONE_NUMBER, FAX_NUMBER)
VALUES
('3', 'Cal. Poultry Co.', '4110 Van Nuys', 'Studio City', 'CA', '95735',
'USA', 'Derek Johnson', 'Sales Manager', '818-485-8375', '818-4858376');
INSERT INTO RMS_SUPPLIERS
(SUPPLIER_ID, SUPPLIER_NAME, ADDRESS, CITY, STATE, ZIP_CODE, COUNTRY,
CONTACT_NAME, CONTACT_TITLE, PHONE_NUMBER, FAX_NUMBER)
VALUES
('4', 'Fresh Vegetables Co', '96 La Fontier', 'San Diego', 'CA',
'93856', 'USA', 'Dave Dubin', 'Sales Repr', '827-425-5735', '827-4255736');
INSERT INTO RMS_SUPPLIERS
(SUPPLIER_ID, SUPPLIER_NAME, ADDRESS, CITY, STATE, ZIP_CODE, COUNTRY,
CONTACT_NAME, CONTACT_TITLE, PHONE_NUMBER, FAX_NUMBER)
VALUES
('5', 'Lazy Potato Co.', '273 Eastern Way Blv.', 'Hatra', 'ID', '36455',
'USA', 'Veronica Johnson', 'Sales Repr', '237-576-2865', '237-5762866');
INSERT INTO RMS_SUPPLIERS
(SUPPLIER_ID, SUPPLIER_NAME, ADDRESS, CITY, STATE, ZIP_CODE, COUNTRY,
CONTACT_NAME, CONTACT_TITLE, PHONE_NUMBER, FAX_NUMBER)
VALUES

('6', 'Produce Unlim Co.', '1076 S. Virgil Ave.', 'Los Angeles', 'CA',
'90004', 'USA', 'Kate Williams', 'Sales Repr', '213-252-9263', '213-2529264');
INSERT INTO RMS_SUPPLIERS
(SUPPLIER_ID, SUPPLIER_NAME, ADDRESS, CITY, STATE, ZIP_CODE, COUNTRY,
CONTACT_NAME, CONTACT_TITLE, PHONE_NUMBER, FAX_NUMBER)
VALUES
('7', 'Cali Cheese Co.', '32 W. Alameda St.', 'Calabassas', 'CA',
'92646', 'USA', 'Alan Benson', 'Distributor', '482-476-3865', '482-4763866');
INSERT INTO RMS_SUPPLIERS
(SUPPLIER_ID, SUPPLIER_NAME, ADDRESS, CITY, STATE, ZIP_CODE, COUNTRY,
CONTACT_NAME, CONTACT_TITLE, PHONE_NUMBER, FAX_NUMBER)
VALUES
('8', 'Glory Foods', '2 Market St.', 'San Francisco', 'CA', '94114',
'USA', 'Mary Smith', 'Sales Repr', '415-431-0692', '415-431-0693');
INSERT INTO RMS_SUPPLIERS
(SUPPLIER_ID, SUPPLIER_NAME, ADDRESS, CITY, STATE, ZIP_CODE, COUNTRY,
CONTACT_NAME, CONTACT_TITLE, PHONE_NUMBER, FAX_NUMBER)
VALUES
('9', 'The Best Int.', '1434 18th Ave.', 'San Francisco', 'CA', '94122',
'USA', 'Ken Cobukki', 'Manager', '415-252-1625', '415-252-1626');
INSERT INTO RMS_SUPPLIERS
(SUPPLIER_ID, SUPPLIER_NAME, ADDRESS, CITY, STATE, ZIP_CODE, COUNTRY,
CONTACT_NAME, CONTACT_TITLE, PHONE_NUMBER, FAX_NUMBER)
VALUES
('10', 'Sweet Sin Int.', '283 Alwer St.', 'Marahn', 'Mar', '1647',
'Iran', 'Abdul Mahrngarukk', 'Manager', '52-3-356-3724', '52-3-3563725');

-- Employee values
------------------------------------------------------PROMPT Inserting Values into Table 'RMS_EMPLOYEES'
INSERT INTO RMS_EMPLOYEES
(EMPLOYEE_ID, FIRST_NAME, LAST_NAME, TITLE, ADDRESS, CITY, STATE,
ZIP_CODE, HOME_PHONE_NO)
VALUES
('1', 'Cris', 'Perez', 'General Manager', '1609 Montana Ave.', 'Santa
Monica', 'CA', '91637', '310-587-0755');
INSERT INTO RMS_EMPLOYEES
(EMPLOYEE_ID, FIRST_NAME, LAST_NAME, TITLE, ADDRESS, CITY, STATE,
ZIP_CODE, HOME_PHONE_NO)
VALUES
('2', 'Hechter', 'Garcia', 'Manager', '3367 Ocean Park Blv.', 'Santa
Monica', 'CA', '91637', '310-450-8665');

INSERT INTO RMS_EMPLOYEES


(EMPLOYEE_ID, FIRST_NAME, LAST_NAME, TITLE, ADDRESS, CITY, STATE,
ZIP_CODE, HOME_PHONE_NO)
VALUES
('3', 'Hermon', 'Santiago', 'Cook', '1707 N Vine St.', 'Hollywood',
'CA', '97255', '323-462-1144');
INSERT INTO RMS_EMPLOYEES
(EMPLOYEE_ID, FIRST_NAME, LAST_NAME, TITLE, ADDRESS, CITY, STATE,
ZIP_CODE, HOME_PHONE_NO)
VALUES
('4', 'Max', 'Colovsky', 'Chef', '1400 Third St.', 'Santa Monica', 'CA',
'91637', '310-587-0755');
INSERT INTO RMS_EMPLOYEES
(EMPLOYEE_ID, FIRST_NAME, LAST_NAME, TITLE, ADDRESS, CITY, STATE,
ZIP_CODE, HOME_PHONE_NO)
VALUES
('5', 'Rene', 'Lopez', 'Cook', '1954 Lincoln Blv.', 'Santa Monica',
'CA', '91637', '310-396-4039');
INSERT INTO RMS_EMPLOYEES
(EMPLOYEE_ID, FIRST_NAME, LAST_NAME, TITLE, ADDRESS, CITY, STATE,
ZIP_CODE, HOME_PHONE_NO)
VALUES
('6', 'Felix', 'Rodrigez', 'Cook', '342 26th St.', 'Santa Monica', 'CA',
'91637', '310-395-0746');
INSERT INTO RMS_EMPLOYEES
(EMPLOYEE_ID, FIRST_NAME, LAST_NAME, TITLE, ADDRESS, CITY, STATE,
ZIP_CODE, HOME_PHONE_NO)
VALUES
('7', 'Raul', 'Ramirez', 'Cook', '401 N La Cienega Blvd', 'Los Angeles',
'CA', '90065', '310-652-7000');
INSERT INTO RMS_EMPLOYEES
(EMPLOYEE_ID, FIRST_NAME, LAST_NAME, TITLE, ADDRESS, CITY, STATE,
ZIP_CODE, HOME_PHONE_NO)
VALUES
('8', 'Derek', 'Demetropolus', 'Waiter', '2025 Pacific Ave.', 'Venice',
'CA', '92653', '310-823-5396');
INSERT INTO RMS_EMPLOYEES
(EMPLOYEE_ID, FIRST_NAME, LAST_NAME, TITLE, ADDRESS, CITY, STATE,
ZIP_CODE, HOME_PHONE_NO)
VALUES
('9', 'Aisha', 'Losherr', 'Waitress', '840 Sunset Blvd', 'West
Hollywood', 'CA', '97056', '323-650-8999');
INSERT INTO RMS_EMPLOYEES
(EMPLOYEE_ID, FIRST_NAME, LAST_NAME, TITLE, ADDRESS, CITY, STATE,
ZIP_CODE, HOME_PHONE_NO)
VALUES
('10', 'Gonzo', 'Lopez', 'Waiter', '8225 Beverly Blvd.', 'Los Angeles',
'CA', '90004', '323-655-6566');

-- Purchase_Order values
--------------------------------------------------PROMPT Inserting Values into Table 'RMS_PURCHASE_ORDERS'
INSERT INTO RMS_PURCHASE_ORDERS
(PURCHASE_ORD_ID, EMP_EMPLOYEE_ID, DESCRIPTION, ORDER_DATE,
SUP_SUPPLIER_ID, DATE_PROMISED)
VALUES
('001', '2', '', '1-APR-02', '1', '4-APR-02');
INSERT INTO RMS_PURCHASE_ORDERS
(PURCHASE_ORD_ID, EMP_EMPLOYEE_ID, DESCRIPTION, ORDER_DATE,
SUP_SUPPLIER_ID, DATE_PROMISED)
VALUES
('002', '2', '', '7-APR-02', '3', '10-APR-02');
INSERT INTO RMS_PURCHASE_ORDERS
(PURCHASE_ORD_ID, EMP_EMPLOYEE_ID, DESCRIPTION, ORDER_DATE,
SUP_SUPPLIER_ID, DATE_PROMISED)
VALUES
('003', '4', '', '7-MAY-02', '3', '10-MAY-02');
INSERT INTO RMS_PURCHASE_ORDERS
(PURCHASE_ORD_ID, EMP_EMPLOYEE_ID, DESCRIPTION, ORDER_DATE,
SUP_SUPPLIER_ID, DATE_PROMISED)
VALUES
('004', '1', '', '8-APR-02', '10', '11-APR-02');
INSERT INTO RMS_PURCHASE_ORDERS
(PURCHASE_ORD_ID, EMP_EMPLOYEE_ID, DESCRIPTION, ORDER_DATE,
SUP_SUPPLIER_ID, DATE_PROMISED)
VALUES
('005', '6', '', '15-APR-02', '10', '18-APR-02');
INSERT INTO RMS_PURCHASE_ORDERS
(PURCHASE_ORD_ID, EMP_EMPLOYEE_ID, DESCRIPTION, ORDER_DATE,
SUP_SUPPLIER_ID, DATE_PROMISED)
VALUES
('006', '2', '', '18-APR-02', '9', '21-APR-02');
INSERT INTO RMS_PURCHASE_ORDERS
(PURCHASE_ORD_ID, EMP_EMPLOYEE_ID, DESCRIPTION, ORDER_DATE,
SUP_SUPPLIER_ID, DATE_PROMISED)
VALUES
('007', '2', '', '2-APR-02', '9', '5-APR-02');
INSERT INTO RMS_PURCHASE_ORDERS
(PURCHASE_ORD_ID, EMP_EMPLOYEE_ID, DESCRIPTION, ORDER_DATE,
SUP_SUPPLIER_ID, DATE_PROMISED)
VALUES

('008', '2', '', '1-MAY-02', '4', '4-MAY-02');


INSERT INTO RMS_PURCHASE_ORDERS
(PURCHASE_ORD_ID, EMP_EMPLOYEE_ID, DESCRIPTION, ORDER_DATE,
SUP_SUPPLIER_ID, DATE_PROMISED)
VALUES
('009', '1', '', '5-MAY-02', '7', '8-MAY-02');
INSERT INTO RMS_PURCHASE_ORDERS
(PURCHASE_ORD_ID, EMP_EMPLOYEE_ID, DESCRIPTION, ORDER_DATE,
SUP_SUPPLIER_ID, DATE_PROMISED)
VALUES
('010', '2', '', '10-MAY-02', '6', '13-MAY-02');
INSERT INTO RMS_PURCHASE_ORDERS
(PURCHASE_ORD_ID, EMP_EMPLOYEE_ID, DESCRIPTION, ORDER_DATE,
SUP_SUPPLIER_ID, DATE_PROMISED)
VALUES
('011', '5', '', '12-MAY-02', '5', '15-MAY-02');
INSERT INTO RMS_PURCHASE_ORDERS
(PURCHASE_ORD_ID, EMP_EMPLOYEE_ID, DESCRIPTION, ORDER_DATE,
SUP_SUPPLIER_ID, DATE_PROMISED)
VALUES
('012', '7', '', '29-MAY-02', '5', '2-JUN-02');

-- Purchase_Order_Detail values
---------------------------------------PROMPT Inserting Values into Table 'RMS_PURCHASE_ORDER_DETAILS'
INSERT INTO RMS_PURCHASE_ORDER_DETAILS
(PO_DET_SEQ, PROD_PRODUCT_ID, PO_PURCHASE_ORD_ID, QUANTITY)
VALUES
('1001', '101', '006', 5);
INSERT INTO RMS_PURCHASE_ORDER_DETAILS
(PO_DET_SEQ, PROD_PRODUCT_ID, PO_PURCHASE_ORD_ID, QUANTITY)
VALUES
('1002', '102', '001', 3);
INSERT INTO RMS_PURCHASE_ORDER_DETAILS
(PO_DET_SEQ, PROD_PRODUCT_ID, PO_PURCHASE_ORD_ID, QUANTITY)
VALUES
('1003', '103', '001', 2);
INSERT INTO RMS_PURCHASE_ORDER_DETAILS
(PO_DET_SEQ, PROD_PRODUCT_ID, PO_PURCHASE_ORD_ID, QUANTITY)
VALUES
('1004', '104', '004', 7);
INSERT INTO RMS_PURCHASE_ORDER_DETAILS

(PO_DET_SEQ, PROD_PRODUCT_ID, PO_PURCHASE_ORD_ID, QUANTITY)


VALUES
('1005', '105', '002', 5);
INSERT INTO RMS_PURCHASE_ORDER_DETAILS
(PO_DET_SEQ, PROD_PRODUCT_ID, PO_PURCHASE_ORD_ID, QUANTITY)
VALUES
('1006', '110', '001', 1);
INSERT INTO RMS_PURCHASE_ORDER_DETAILS
(PO_DET_SEQ, PROD_PRODUCT_ID, PO_PURCHASE_ORD_ID, QUANTITY)
VALUES
('1007', '110', '007', 1);
INSERT INTO RMS_PURCHASE_ORDER_DETAILS
(PO_DET_SEQ, PROD_PRODUCT_ID, PO_PURCHASE_ORD_ID, QUANTITY)
VALUES
('1008', '111', '009', 5);
INSERT INTO RMS_PURCHASE_ORDER_DETAILS
(PO_DET_SEQ, PROD_PRODUCT_ID, PO_PURCHASE_ORD_ID, QUANTITY)
VALUES
('1009', '111', '010', 3);

-- Meal_Order values
----------------------------------------------------------PROMPT Inserting Values into Table 'RMS_MEAL_ORDERS'
INSERT INTO RMS_MEAL_ORDERS
(MEAL_ORDER_ID, EMP_EMPLOYEE_ID, NUMBER_OF_PEOPLE, ORDER_DATE,
ORDER_TIME, TABLE_NUMBER, COMMENTS)
VALUES
('1001', '8', 3, '15-APR-02', to_date('9 AM', 'HH am'), '1', '');
INSERT INTO RMS_MEAL_ORDERS
(MEAL_ORDER_ID, EMP_EMPLOYEE_ID, NUMBER_OF_PEOPLE, ORDER_DATE,
ORDER_TIME, TABLE_NUMBER, COMMENTS)
VALUES
('1002', '9', 2, '15-APR-02', to_date('7 PM', 'HH pm'), '2', 'regular
customer');
INSERT INTO RMS_MEAL_ORDERS
(MEAL_ORDER_ID, EMP_EMPLOYEE_ID, NUMBER_OF_PEOPLE, ORDER_DATE,
ORDER_TIME, TABLE_NUMBER, COMMENTS)
VALUES
('1003', '10', 2, '16-APR-02', to_date('11:30 AM', 'HH:MI am'), '2',
'');
INSERT INTO RMS_MEAL_ORDERS

(MEAL_ORDER_ID, EMP_EMPLOYEE_ID, NUMBER_OF_PEOPLE, ORDER_DATE,


ORDER_TIME, TABLE_NUMBER, COMMENTS)
VALUES
('1004', '10', 2, '16-APR-02', to_date('6 PM', 'HH pm'), '3', '');
INSERT INTO RMS_MEAL_ORDERS
(MEAL_ORDER_ID, EMP_EMPLOYEE_ID, NUMBER_OF_PEOPLE, ORDER_DATE,
ORDER_TIME, TABLE_NUMBER, COMMENTS)
VALUES
('1005', '9', 6, '18-APR-02', to_date('10 AM', 'HH am'), '1', '');
INSERT INTO RMS_MEAL_ORDERS
(MEAL_ORDER_ID, EMP_EMPLOYEE_ID, NUMBER_OF_PEOPLE, ORDER_DATE,
ORDER_TIME, TABLE_NUMBER, COMMENTS)
VALUES
('1006', '8', 4, '18-APR-02', to_date('8 PM', 'HH pm'), '5', '');
INSERT INTO RMS_MEAL_ORDERS
(MEAL_ORDER_ID, EMP_EMPLOYEE_ID, NUMBER_OF_PEOPLE, ORDER_DATE,
ORDER_TIME, TABLE_NUMBER, COMMENTS)
VALUES
('1007', '9', 3, '20-APR-02', to_date('9 AM', 'HH am'), '6', '');
INSERT INTO RMS_MEAL_ORDERS
(MEAL_ORDER_ID, EMP_EMPLOYEE_ID, NUMBER_OF_PEOPLE, ORDER_DATE,
ORDER_TIME, TABLE_NUMBER, COMMENTS)
VALUES
('1008', '8', 1, '22-APR-02', to_date('3 PM', 'HH pm'), '3', '');
INSERT INTO RMS_MEAL_ORDERS
(MEAL_ORDER_ID, EMP_EMPLOYEE_ID, NUMBER_OF_PEOPLE, ORDER_DATE,
ORDER_TIME, TABLE_NUMBER, COMMENTS)
VALUES
('1009', '8', 2, '22-APR-02', to_date('7 PM', 'HH pm'), '1', '');
INSERT INTO RMS_MEAL_ORDERS
(MEAL_ORDER_ID, EMP_EMPLOYEE_ID, NUMBER_OF_PEOPLE, ORDER_DATE,
ORDER_TIME, TABLE_NUMBER, COMMENTS)
VALUES
('1010', '9', 3, '25-APR-02', to_date('6:30 PM', 'HH:MI pm'), '6',
'regular customer');

-- Payment_Method values --------------------------------------------PROMPT Inserting Values into Table 'RMS_PAYMENT_METHODS'


INSERT INTO RMS_PAYMENT_METHODS
(PAYMENT_METHOD_ID, PAYMENT_METHOD, DESCRIPTION)
VALUES
('1', 'Cash', '');
INSERT INTO RMS_PAYMENT_METHODS
(PAYMENT_METHOD_ID, PAYMENT_METHOD, DESCRIPTION)
VALUES

('2', 'Credit Card', 'MasterCard, American Express, Discover');


INSERT INTO RMS_PAYMENT_METHODS
(PAYMENT_METHOD_ID, PAYMENT_METHOD, DESCRIPTION)
VALUES
('3', 'Check', '');

-- Billing values --------------------------------------------------PROMPT Inserting Values into Table 'RMS_BILLINGS'


INSERT INTO RMS_BILLINGS
(BILLING_ID, MO_MEAL_ORDER_ID, PAYMENT_AMOUNT, PAYMENT_DATE,
PM_PAYMENT_METHOD_ID, CARD_HOLDER_NAME, CREDIT_CARD_EXP_DATE,
CREDIT_CARD_NO)
VALUES
('5001', '1001', 10.00, '29-APR-02', '2', 'Stephan Alamedo', '10/04',
'5423 8964 7007 6432');
INSERT INTO RMS_BILLINGS
(BILLING_ID, MO_MEAL_ORDER_ID, PAYMENT_AMOUNT, PAYMENT_DATE,
PM_PAYMENT_METHOD_ID, CARD_HOLDER_NAME, CREDIT_CARD_EXP_DATE,
CREDIT_CARD_NO)
VALUES
('5002', '1001', 10.00,'29-APR-02', '2', 'Steve Brown', '12/02', '3642
2754 2541 4756');
INSERT INTO RMS_BILLINGS
(BILLING_ID, MO_MEAL_ORDER_ID, PAYMENT_AMOUNT, PAYMENT_DATE,
PM_PAYMENT_METHOD_ID, CARD_HOLDER_NAME, CREDIT_CARD_EXP_DATE,
CREDIT_CARD_NO)
VALUES
('5003', '1002', 32.00, '29-APR-02', '2', 'Maria Dan', '03/03', '7245
2754 2645 8964');
INSERT INTO RMS_BILLINGS
(BILLING_ID, MO_MEAL_ORDER_ID, PAYMENT_AMOUNT, PAYMENT_DATE,
PM_PAYMENT_METHOD_ID, CARD_HOLDER_NAME, CREDIT_CARD_EXP_DATE,
CREDIT_CARD_NO)
VALUES
('5004', '1003', 14.00, '16-APR-02', '1', '', '', '');
INSERT INTO RMS_BILLINGS
(BILLING_ID, MO_MEAL_ORDER_ID, PAYMENT_AMOUNT, PAYMENT_DATE,
PM_PAYMENT_METHOD_ID, CARD_HOLDER_NAME, CREDIT_CARD_EXP_DATE,
CREDIT_CARD_NO)
VALUES
('5005', '1003', 20.00, '30-APR-02', '2', 'Andrey Ivanov', '01/05',
'5233 2643 3752 3642');
INSERT INTO RMS_BILLINGS
(BILLING_ID, MO_MEAL_ORDER_ID, PAYMENT_AMOUNT, PAYMENT_DATE,
PM_PAYMENT_METHOD_ID, CARD_HOLDER_NAME, CREDIT_CARD_EXP_DATE,
CREDIT_CARD_NO)

VALUES
('5006', '1004', 15.00, '30-APR-02', '3', 'Aisha Freeman', '', '');
INSERT INTO RMS_BILLINGS
(BILLING_ID, MO_MEAL_ORDER_ID, PAYMENT_AMOUNT, PAYMENT_DATE,
PM_PAYMENT_METHOD_ID, CARD_HOLDER_NAME, CREDIT_CARD_EXP_DATE,
CREDIT_CARD_NO)
VALUES
('5007', '1005', 30.00, '18-APR-02', '2', 'Monte Williams', '08/04',
'6244 1010 0837 1863');
INSERT INTO RMS_BILLINGS
(BILLING_ID, MO_MEAL_ORDER_ID, PAYMENT_AMOUNT, PAYMENT_DATE,
PM_PAYMENT_METHOD_ID, CARD_HOLDER_NAME, CREDIT_CARD_EXP_DATE,
CREDIT_CARD_NO)
VALUES
('5008', '1006', 15.50, '18-APR-02', '1', '', '', '');
INSERT INTO RMS_BILLINGS
(BILLING_ID, MO_MEAL_ORDER_ID, PAYMENT_AMOUNT, PAYMENT_DATE,
PM_PAYMENT_METHOD_ID, CARD_HOLDER_NAME, CREDIT_CARD_EXP_DATE,
CREDIT_CARD_NO)
VALUES
('5009', '1007', 32.80, '4-MAY-02', '3', 'Huan Lopez', '', '');
INSERT INTO RMS_BILLINGS
(BILLING_ID, MO_MEAL_ORDER_ID, PAYMENT_AMOUNT, PAYMENT_DATE,
PM_PAYMENT_METHOD_ID, CARD_HOLDER_NAME, CREDIT_CARD_EXP_DATE,
CREDIT_CARD_NO)
VALUES
('5010', '1008', 5.60, '22-APR-02', '1', '', '', '');
INSERT INTO RMS_BILLINGS
(BILLING_ID, MO_MEAL_ORDER_ID, PAYMENT_AMOUNT, PAYMENT_DATE,
PM_PAYMENT_METHOD_ID, CARD_HOLDER_NAME, CREDIT_CARD_EXP_DATE,
CREDIT_CARD_NO)
VALUES
('5011', '1009', 27.00, '7-MAY-02', '2', 'David Grimm', '05/03', '2456
3567 3565 4867');
INSERT INTO RMS_BILLINGS
(BILLING_ID, MO_MEAL_ORDER_ID, PAYMENT_AMOUNT, PAYMENT_DATE,
PM_PAYMENT_METHOD_ID, CARD_HOLDER_NAME, CREDIT_CARD_EXP_DATE,
CREDIT_CARD_NO)
VALUES
('5012', '1010', 9.70, '25-APR-02', '1', '', '', '');
INSERT INTO RMS_BILLINGS
(BILLING_ID, MO_MEAL_ORDER_ID, PAYMENT_AMOUNT, PAYMENT_DATE,
PM_PAYMENT_METHOD_ID, CARD_HOLDER_NAME, CREDIT_CARD_EXP_DATE,
CREDIT_CARD_NO)
VALUES
('5013', '1010', 20.00, '9-MAY-02', '3', 'Val Delon', '', '');

-- Menu_Items_cat values ---------------------------------------PROMPT Inserting Values into Table 'RMS_MENU_ITEM_CATS'


INSERT INTO RMS_MENU_ITEM_CATS
(MENU_ITEM_CAT_ID, MENU_CAT_NAME, DESCRIPTION)
VALUES
('01', 'Soup', '');
INSERT INTO RMS_MENU_ITEM_CATS
(MENU_ITEM_CAT_ID, MENU_CAT_NAME, DESCRIPTION)
VALUES
('02', 'Entre', '');
INSERT INTO RMS_MENU_ITEM_CATS
(MENU_ITEM_CAT_ID, MENU_CAT_NAME, DESCRIPTION)
VALUES
('03', 'Appetizer', '');
INSERT INTO RMS_MENU_ITEM_CATS
(MENU_ITEM_CAT_ID, MENU_CAT_NAME, DESCRIPTION)
VALUES
('04', 'Dessert ', '');
INSERT INTO RMS_MENU_ITEM_CATS
(MENU_ITEM_CAT_ID, MENU_CAT_NAME, DESCRIPTION)
VALUES
('05', 'Beverage', '');
INSERT INTO RMS_MENU_ITEM_CATS
(MENU_ITEM_CAT_ID, MENU_CAT_NAME, DESCRIPTION)
VALUES
('06', 'Alcoholic beverage', 'Beer, Wine, Liquor');
INSERT INTO RMS_MENU_ITEM_CATS
(MENU_ITEM_CAT_ID, MENU_CAT_NAME, DESCRIPTION)
VALUES
('07', 'Salad', '');
INSERT INTO RMS_MENU_ITEM_CATS
(MENU_ITEM_CAT_ID, MENU_CAT_NAME, DESCRIPTION)
VALUES
('08', 'Gift', '');

-- Meal_Menu_Item values -------------------------------------------PROMPT Inserting Values into Table 'RMS_MEAL_MENU_ITEMS'


INSERT INTO RMS_MEAL_MENU_ITEMS
(MENU_ITEM_ID, ITEM_NAME, MIC_MENU_ITEM_CAT_ID, PRICE, DESCRIPTION,
PREP_TIME)

VALUES
('1', 'Hamburger', '02', 3.85, '', '8');
INSERT INTO RMS_MEAL_MENU_ITEMS
(MENU_ITEM_ID, ITEM_NAME, MIC_MENU_ITEM_CAT_ID, PRICE, DESCRIPTION,
PREP_TIME)
VALUES
('2', 'House special Steak', '02', 12.00, 'seasoned with misc spices',
'40');
INSERT INTO RMS_MEAL_MENU_ITEMS
(MENU_ITEM_ID, ITEM_NAME, MIC_MENU_ITEM_CAT_ID, PRICE, DESCRIPTION,
PREP_TIME)
VALUES
('3', 'Calzone', '02', 7.60, 'a pound of cheese, ham, mushrooms', '45');
INSERT INTO RMS_MEAL_MENU_ITEMS
(MENU_ITEM_ID, ITEM_NAME, MIC_MENU_ITEM_CAT_ID, PRICE, DESCRIPTION,
PREP_TIME)
VALUES
('4', 'Caesar Salad', '07', 4.00, 'with grilled chicken breast', '6
1/2');
INSERT INTO RMS_MEAL_MENU_ITEMS
(MENU_ITEM_ID, ITEM_NAME, MIC_MENU_ITEM_CAT_ID, PRICE, DESCRIPTION,
PREP_TIME)
VALUES
('5', 'Glass of Merlot, 1978', '06', 6.20, '', '');
INSERT INTO RMS_MEAL_MENU_ITEMS
(MENU_ITEM_ID, ITEM_NAME, MIC_MENU_ITEM_CAT_ID, PRICE, DESCRIPTION,
PREP_TIME)
VALUES
('6', 'Mushrooms', '03', 5.00, 'sliced mushrooms in in thick souce',
'');
INSERT INTO RMS_MEAL_MENU_ITEMS
(MENU_ITEM_ID, ITEM_NAME, MIC_MENU_ITEM_CAT_ID, PRICE, DESCRIPTION,
PREP_TIME)
VALUES
('7', 'Fruity Ice Cream', '04', 2.99, 'fat-free ice cream with fresh
strawberries', '');
INSERT INTO RMS_MEAL_MENU_ITEMS
(MENU_ITEM_ID, ITEM_NAME, MIC_MENU_ITEM_CAT_ID, PRICE, DESCRIPTION,
PREP_TIME)
VALUES
('8', 'Sweet and Sour Chicken', '02', 12.00, 'spicy', '35');
INSERT INTO RMS_MEAL_MENU_ITEMS
(MENU_ITEM_ID, ITEM_NAME, MIC_MENU_ITEM_CAT_ID, PRICE, DESCRIPTION,
PREP_TIME)
VALUES
('9', 'Tuna Sandwich', '02', 3.85, 'sourdough bread, tuna, honey
mustard, pickles', '8');
INSERT INTO RMS_MEAL_MENU_ITEMS

(MENU_ITEM_ID, ITEM_NAME, MIC_MENU_ITEM_CAT_ID, PRICE, DESCRIPTION,


PREP_TIME)
VALUES
('10', 'Tomato Soup', '01', 6.50, 'fresshly prepared', '25');

-- Meal_Order_Detail values ----------------------------------------PROMPT Inserting Values into Table 'RMS_MEAL_ORDER_DETAILS'


INSERT INTO RMS_MEAL_ORDER_DETAILS
(ORD_DET_SEQ, MO_MEAL_ORDER_ID, MMI_MENU_ITEM_ID, QUANTITY, COMMENTS)
VALUES
('10', '1001', '1', 2, 'no onions');
INSERT INTO RMS_MEAL_ORDER_DETAILS
(ORD_DET_SEQ, MO_MEAL_ORDER_ID, MMI_MENU_ITEM_ID, QUANTITY, COMMENTS)
VALUES
('12', '1001', '9', 1, '');
INSERT INTO RMS_MEAL_ORDER_DETAILS
(ORD_DET_SEQ, MO_MEAL_ORDER_ID, MMI_MENU_ITEM_ID, QUANTITY, COMMENTS)
VALUES
('13', '1002', '8', 2, 'with steamed rice');
INSERT INTO RMS_MEAL_ORDER_DETAILS
(ORD_DET_SEQ, MO_MEAL_ORDER_ID, MMI_MENU_ITEM_ID, QUANTITY, COMMENTS)
VALUES
('14', '1003', '2', 1, '');
INSERT INTO RMS_MEAL_ORDER_DETAILS
(ORD_DET_SEQ, MO_MEAL_ORDER_ID, MMI_MENU_ITEM_ID, QUANTITY, COMMENTS)
VALUES
('15', '1003', '3', 1, 'chicken added');
INSERT INTO RMS_MEAL_ORDER_DETAILS
(ORD_DET_SEQ, MO_MEAL_ORDER_ID, MMI_MENU_ITEM_ID, QUANTITY, COMMENTS)
VALUES
('16', '1004', '4', 1, 'no dressing');
INSERT INTO RMS_MEAL_ORDER_DETAILS
(ORD_DET_SEQ, MO_MEAL_ORDER_ID, MMI_MENU_ITEM_ID, QUANTITY, COMMENTS)
VALUES
('17', '1004', '10', 1, '');
INSERT INTO RMS_MEAL_ORDER_DETAILS
(ORD_DET_SEQ, MO_MEAL_ORDER_ID, MMI_MENU_ITEM_ID, QUANTITY, COMMENTS)
VALUES
('18', '1005', '1', 6, '');
INSERT INTO RMS_MEAL_ORDER_DETAILS
(ORD_DET_SEQ, MO_MEAL_ORDER_ID, MMI_MENU_ITEM_ID, QUANTITY, COMMENTS)
VALUES
('19', '1006', '7', 4, 'with chocolate');

INSERT INTO RMS_MEAL_ORDER_DETAILS


(ORD_DET_SEQ, MO_MEAL_ORDER_ID, MMI_MENU_ITEM_ID, QUANTITY, COMMENTS)
VALUES
('20', '1007', '2', 1, '');
INSERT INTO RMS_MEAL_ORDER_DETAILS
(ORD_DET_SEQ, MO_MEAL_ORDER_ID, MMI_MENU_ITEM_ID, QUANTITY, COMMENTS)
VALUES
('21', '1007', '5', 1, '');
INSERT INTO RMS_MEAL_ORDER_DETAILS
(ORD_DET_SEQ, MO_MEAL_ORDER_ID, MMI_MENU_ITEM_ID, QUANTITY, COMMENTS)
VALUES
('22', '1007', '3', 1, 'extra mushrooms');
INSERT INTO RMS_MEAL_ORDER_DETAILS
(ORD_DET_SEQ, MO_MEAL_ORDER_ID, MMI_MENU_ITEM_ID, QUANTITY, COMMENTS)
VALUES
('23', '1008', '4', 1, 'dressing on a side');
INSERT INTO RMS_MEAL_ORDER_DETAILS
(ORD_DET_SEQ, MO_MEAL_ORDER_ID, MMI_MENU_ITEM_ID, QUANTITY, COMMENTS)
VALUES
('24', '1009', '8', 2, '');
INSERT INTO RMS_MEAL_ORDER_DETAILS
(ORD_DET_SEQ, MO_MEAL_ORDER_ID, MMI_MENU_ITEM_ID, QUANTITY, COMMENTS)
VALUES
('25', '1010', '10', 3, '');
INSERT INTO RMS_MEAL_ORDER_DETAILS
(ORD_DET_SEQ, MO_MEAL_ORDER_ID, MMI_MENU_ITEM_ID, QUANTITY, COMMENTS)
VALUES
('26', '1010', '4', 1, '');

TEST
The system must be tested to evaluate its functionality in relation to the users expected
functionality. Logical testing was conducted on the database side as well as on the
application side during all stages of the project development to test the system for bugs
before delivering the system to the user.
--Insert snapshots of forms, triggers, etc here

IMPLEMENTATION
The new system will be implemented using phased implementation to ensure that each
component of the new system meets all the user requirements and that its results are
satisfactory before the other components are implemented. The new system will be
slowly phased in to gradually replace the old system. During this phase, the new system
will run in conjunction with the old systems for a specific amount of time. The results
from both systems will be compared after the specified amount of time has elapsed. If
the results are satisfactory, another component of the new system will be added and its
results will be compared again. The process will repeat until the old system is completely
phased out.
Once the system is fully implemented, training sessions will be conducted to familiarize
the users with the new system by showing them how they will use the new hardware and
software in the system. During training they will get a chance to practice on the actual
system and have their questions answered. They will also receive detailed user manuals
for future reference.

MAINTENANCE
Once the new system is fully implemented, it will be continually evaluated and improved
based on suggestions from users. This phase includes continuously monitoring,
maintaining and modifying the system to ensure the system performs as expected and
continues to meet all user needs.
A customer support group will be set up to establish and maintain user liaison. The group
will be available to address concerns and answer questions from users via telephone and

email. It will also keep track of and investigate all user concerns, problems and change
requests for potential improvements to the system.
A list of all user problems and change requests will be forwarded to the software
development department manager for analysis. Each problem is prioritized according to
its urgency and feasibility. The manager then determines which changes are most
important to users and reviews the costs, benefits and impacts of implementing changes
to the system. He also determines the necessary resources to carry out the changes.
Once the problems and user requests are identified and approved for change, the software
development team will analyze and make changes to the system so it continues to meet
all user needs. They will review details of the proposed system changes, design and code
system changes and test system changes to ensure everything is working properly as
planned. In addition, the appropriate user and technical documentation will be revised to
reflect the changes to the system.
Changes are implemented by sending software patches to all users, along with the
updated training materials and documentations. Additional training will be made
available.

CONCLUSION
What We Learned About SDLC and Designer 2000
System Development Life Cycle (SDLC) allows us to break down a complex project into
smaller and more detailed tasks so that we could better understand what we need to
accomplish in each phase of SDLC. It helps guide us through a project so that we can get
a better understanding of all user requirements and the things we need to do to fulfill the
user requirements.
The strategy phase helps us gain a clear understanding of the user environment, processes
and needs to define the scope of the project. The pre-analysis phase helps us create a
strategy plan that ensures the analysis will be carried out correctly. We created the Entity
Relationship and Process Flow Diagrams in the analysis phase based on the information
we gathered from the users and the analysis of their business processes. In the pre-design
phase we made decisions concerning the functionality and screen layout for the forms. In
the design phase we refined the table definitions and created table constraints, functions,
procedures and triggers and created modules based on the tables. In the build phase we
created tables in the database using the Database Design Transformer and generated
forms using the Application Design Transformer. In test phase we came up with a test

plan for testing our system for bugs before the system was implemented. In the
implementation phase we decided how we would implement our system for the user and
the type of user training we would provide. In the maintenance phase we created a plan
to deal with user problems and requests so that the system continues to meet their needs.
Oracle Designer 2000 is an invaluable tool for analyzing business requirements and
designing and creating robust database applications that meet those requirements. It
drastically reduces the amount of time required to design an application by allowing the
user to visually see all the various components of a project and how all the components
relate to one another.
The Entity Relationship Diagram allows us to define graphically all the entities that are
involved in the system we will create for the user and see how one entity relates to
another by defining relationships between them. Attributes for each entity are created to
better describe each entity and used to create primary keys and foreign keys to maintain
data integrity in the system. The Function Hierarchy Diagram allows us to see all the
functions involved in our system in a hierarchical manner like in an organizational chart
and decompose complex functions into more understandable ones. The Process Diagram
allows us to see our systems processes and graphically illustrates the storage and
exchange of data inside our system.
The Database Design Transformer facilitates the script creation process by generating the
SQL scripts and database tables for us from the data models we have created earlier.
Similarly, the Application Design Transformer facilitates the form creation process by
using information on the function hierarchy diagram to generate our forms.

You might also like