These solutions may offer step-by-step problem-solving explanations or good writing examples that include modern styles of formatting and construction of bibliographies out of text citations and references.
Students may use these solutions for personal skill-building and practice.
Unethical use is strictly forbidden.
set echo on;
-- Create a SQL script containing your data definition language (DDL)
-- statements to create your tables, views, triggers, and other
-- required database objects for project 1
-- Drop Statements for All Objects as needed (5 points)
-- At the beginning of your script, ensure that all objects that
-- are required to be dropped are properly dropped.
BEGIN
FOR rec IN
(
SELECT DISTINCT OBJECT_NAME
FROM USER_OBJECTS
WHERE OBJECT_TYPE = 'TABLE'
)
LOOP
EXECUTE immediate 'DROP TABLE '||rec.OBJECT_NAME || ' CASCADE CONSTRAINTS';
END LOOP;
END;
/
-- Create/Alter Statements for All Tables and Constraints (30 points)
-- In an order that is appropriate for repeated executions, ensure
-- that all tables and constraints are properly created and/or
-- altered.
CREATE TABLE CUSTOMER
(
EMAIL VARCHAR2(50) NOT NULL
, NAME VARCHAR2(50)
, ADDRESS VARCHAR2(50)
, PHONE VARCHAR2(20)
, DOB DATE
, CONSTRAINT CUSTOMER_PK PRIMARY KEY
(
EMAIL
)
);
CREATE TABLE BOOKING
(
BOOKING_ID NUMBER NOT NULL
, BOOKING_DATE DATE
, TOTAL_PRICE NUMBER
, STATUS VARCHAR2(20)
, EMAIL VARCHAR2(50)
, CONSTRAINT BOOKING_PK PRIMARY KEY
(
BOOKING_ID
)
);
CREATE TABLE TRANSPORTATION
(
TRANSPORTATION_ID NUMBER NOT NULL
, NAME VARCHAR2(50)
, TRIP_TO VARCHAR2(50)
, TRIP_FROM VARCHAR2(50)
, START_FROM VARCHAR2(50)
, END_AT VARCHAR2(50)
, CONSTRAINT TRANSPORTATION_PK PRIMARY KEY
(
TRANSPORTATION_ID
)
);
CREATE TABLE PACKAGE
(
PACKAGE_ID NUMBER NOT NULL
, START_DATE DATE
, END_DATE DATE
, PRICE NUMBER
, TYPE VARCHAR2(20)
, TRANSPORTATION_ID NUMBER
, CONSTRAINT PACKAGE_PK PRIMARY KEY
(
PACKAGE_ID
)
);
CREATE TABLE TOUR
(
TOUR_ID NUMBER NOT NULL
, TRIP_TO VARCHAR2(50)
, TRIP_FROM VARCHAR2(50)
, START_DATE VARCHAR2(50)
, END_DATE VARCHAR2(50)
, PACKAGE_ID NUMBER
, CONSTRAINT TOUR_PK PRIMARY KEY
(
TOUR_ID
)
);
CREATE TABLE HOTEL
(
HOTEL_ID NUMBER NOT NULL
, NAME VARCHAR2(50)
, ROM VARCHAR2(20)
, START_DATE DATE
, END_DATE DATE
, PACKAGE_ID NUMBER
, CONSTRAINT HOTEL_PK PRIMARY KEY
(
HOTEL_ID
)
);
CREATE TABLE BOOKING_DET
(
BOOKING_DET_ID NUMBER NOT NULL
, BOOKING_ID NUMBER
, PACKAGE_ID NUMBER
, CONSTRAINT BOOKING_DET_PK PRIMARY KEY
(
BOOKING_DET_ID
)
);
-- Your script must also include queries to demonstrate that all
-- objects are created successfully (i.e. selecting from the
-- database catalog/data dictionary using user_objects and
-- user_tables).
SELECT DISTINCT OBJECT_NAME
FROM USER_OBJECTS
WHERE OBJECT_TYPE = 'TABLE';
-- Create Indexes for Natural, Foreign Key, and Frequently Queried Columns (10 points)
-- Unlike primary keys which have unique indexes created
-- automatically, you must create indexes for ever natural key
-- that is not included in the primary/composite key as well as
-- all foreign keys and frequently queried columns. Note: you may
-- not yet have queries built for your database yet but you will
-- during project part 4. Keep this in mind as you will need to
-- create indexes to support these queries.
ALTER TABLE BOOKING
ADD CONSTRAINT BOOKING_FK1 FOREIGN KEY
(
EMAIL
)
REFERENCES CUSTOMER
(
EMAIL
);
ALTER TABLE PACKAGE
ADD CONSTRAINT PACKAGE_FK1 FOREIGN KEY
(
TRANSPORTATION_ID
)
REFERENCES TRANSPORTATION
(
TRANSPORTATION_ID
);
ALTER TABLE TOUR
ADD CONSTRAINT TOUR_FK1 FOREIGN KEY
(
PACKAGE_ID
)
REFERENCES PACKAGE
(
PACKAGE_ID
);
ALTER TABLE HOTEL
ADD CONSTRAINT HOTEL_FK1 FOREIGN KEY
(
PACKAGE_ID
)
REFERENCES PACKAGE
(
PACKAGE_ID
);
ALTER TABLE BOOKING_DET
ADD CONSTRAINT BOOKING_DET_FK1 FOREIGN KEY
(
BOOKING_ID
)
REFERENCES BOOKING
(
BOOKING_ID
);
ALTER TABLE BOOKING_DET
ADD CONSTRAINT BOOKING_DET_FK2 FOREIGN KEY
(
PACKAGE_ID
)
REFERENCES PACKAGE
(
PACKAGE_ID
);
This is only a preview of the solution.
Please use the purchase button to see the entire solution.