You are on page 1of 32

Module Code & Module Title

CC5051NA Database

Assessment Weightage & Type


50% Individual Coursework

Year and Semester


2018-19 Autumn

Name: Saugat Timilsina


College ID: NP04CP4A170057
University ID: 17030528
I confirm that I understand my coursework needs to be submitted online via Google Classroom under
the relevant module page before the deadline in order for my assignment to be accepted and marked.
I am fully aware that late submissions will be treated as non-submission and a marks of zero will be
awarded.
Contents

Introduction ..................................................................................................................... 1
Business Rules/Policies ............................................................................................................ 1

1. Database Design ....................................................................................................... 2


1.1. E-R Diagram ................................................................................................................. 2
1.2. Assumptions made ...................................................................................................... 3
1.3. Normalization .............................................................................................................. 3

2. Database Implementation ......................................................................................... 7


2.1. Data Dictionary ............................................................................................................ 7
2.2. Creating and Inserting data on Database .................................................................... 11
2.3. Information and Transaction Queries ......................................................................... 21
2.3.1. Information Queries .............................................................................................. 21
2.3.2. Transaction Queries .............................................................................................. 24

3. Critical Evaluation ................................................................................................... 27


Table of Figure

Figure 1: Entity Relationship Diagram of Bindhyawasini theatre operator system ..... 2


Figure 2: Normalized ER diagram .............................................................................. 6
Figure 3: Creating Employee Table .......................................................................... 11
Figure 4: Creating Show Table ................................................................................. 12
Figure 5: Creating Ticket table ................................................................................. 13
Figure 6: Creating Customer table ........................................................................... 14
Figure 7: Creating Book Table ................................................................................. 15
Figure 8: Inserting values on Employee Table ......................................................... 16
Figure 9: Inserting values on Show table ................................................................. 17
Figure 10: Inserting values on Ticket table ............................................................... 18
Figure 11: Inserting values on Customer table ......................................................... 19
Figure 12: Inserting values on Book Table ............................................................... 20
Figure 13: Listing all old and current customers ....................................................... 21
Figure 14: Listing Customers with all their addresses .............................................. 21
Figure 15: Shows user watched ............................................................................... 22
Figure 16: Listing Customers that are also users ..................................................... 23
Figure 17: Listing Users who attended show and had lunch .................................... 24
Figure 18: Listing Shows that will have breakfast at given place and date ............... 24
Figure 19: Listing Employees who worked as user or have attended the show ....... 25
Figure 20: Listing Customers that booked show starting later or on a given date .... 26

Table of Tables

Table 1: Data dictionary of Customer entity ............................................................... 8


Table 2: Data dictionary of Show entity ...................................................................... 9
Table 3: Data dictionary of Employee entity ............................................................... 9
Table 4: Data dictionary of Ticket entity ................................................................... 10
Table 5: Data dictionary of Book entity ..................................................................... 10
CC5051NA Databases

Introduction
Located on the centre of Pokhara, Bindhyawasini Theatre Hall is the oldest theatre
hall in Pokhara. It is located just 2.2 km away from Bus Park (Prithivi Chowk) which
will take approximately 7 minutes if we travel in public bus. It was established on
2060 B.S with the aim to provide a better experience while watching various shows.
Currently, this theatre hall can accommodate 2000 people at once.

Started as a theatre hall to premiere Nepali shows, now this hall shows English,
Hindi and Nepali movies according to market demand and what is trending.

Business Rules/Policies
Since man problems might occur operating a business daily, this theatre hall also
has certain business rules/policies that their employee/customer follow as a whole.
These rules are:
1. All the information we keep might be used for statistics analysing.
2. We might send promotional materials to your phone/email/mailing address.
3. You aren’t allowed to resale our show tickets on high price. If found, you will
be fined twice the amount you sold it for.
4. You are required to show the booking receipt/show ticket before entering the
hall.
5. You should show your show tickets if any of our staff ask for it.
6. If you lost your booking receipt, you can get a copy for 10% of the price. So,
we encourage you to keep the receipt safe.
7. You won’t be allowed to enter theatre hall if you arrive more than 30 minutes
late for the show.
8. Recording show is prohibited. If found, you will be jailed under the existing
National Constitution.
9. Abuse of illegal drugs, drinking and smoking is prohibited. If found, you will be
handed over to local authorities.
10. We won’t be responsible if your possessions/vehicles are damaged/lost within
our premises.

Saugat Timilsina 1
CC5051NA Databases

1. Database Design
Database Design is a collection of processes that facilitate the designing,
development, implementation and maintenance of enterprise data management
systems. The main objectives of database designing are to produce logical and
physical designs models of the proposed database system.

1.1. E-R Diagram

Figure 1: Entity Relationship Diagram of Bindhyawasini theatre operator system

Saugat Timilsina 2
CC5051NA Databases

1.2. Assumptions made

While working on this coursework, I found some inconsistency that made me


confused and I assumed following things which cleared those confusions:
 In the specification paper we are told to record address of every person
which consists of country, province / state / zone, city, street, street
number, and a list of phone numbers to the location of the address and
a list of fax numbers to the location of the address. So, I assumed to
make the length of address attribute longer.
 In the specification, we are told that user won’t pay for the meal and
accommodation. So, I assumed that meal and accommodation will be
provided if the show decides to.
 In the specification, we are told that there can be list of customer’s
addresses with a mailing address which seemed a bit confusing. So, I
decided to make mailing address a separate attribute.

1.3. Normalization

In relational database design, the process of organizing data to minimize


redundancy. Normalization usually involves dividing a database into two or more
tables and defining relationships between the tables. The objective is to isolate
data so that additions, deletions, and modifications of a field can be made in just
one table and then propagated through the rest of the database via the defined
relationships (Beal, n.d.). Here, I am going to normalization up to 3NF.

UNF
Employee(Employee_Name, Employee_Address, Employee_MailingAddress,
Employee_PhoneNumber, Employee_Fax, Employee_Age, Employee_Sex,
Employee_Type, Employee_Email, {Show_Name, Show_Duration, Show_Price,
Show_Place, has_meal, meal_type, has_accomodation, Ticket_IssuedOn,
Ticket_Price, Customer_Name, Customer_Address, Customer_MailingAddress,
Customer_Fax, Customer_Age, Customer_Sex, Customer_Type,

Saugat Timilsina 3
CC5051NA Databases

Customer_Mobile, Is_Employee, Ticket_IssuedOn, Ticket_Price, Booked_On,


Booked_For })

1NF
Employee(Employee_Id, Employee_Name, Employee_Address,
Employee_MailingAddress, Employee_PhoneNumber, Employee_Age,
Employee_Fax, Employee_Sex, Employee_Type, Employee_Email)

Customer(Customer_Id, Ticket_Id, Customer_Name, Custom_Address,


Customer_MailingAddress, Customer_Fax, Customer_Age, Customer_Sex,
Customer_Type, Customer_Mobile, Customer_Email, Is_Employee, Is_User,
Show_Name, Show_Duration, Show_Place, Has_Meal, Meal_type,
Has_accomodation, Ticket_IssuedOn, Ticket_Price, Booked_On, Booked_For)

2NF
Employee(Employee_Id, Employee_Name, Employee_Address,
Employee_MailingAddress, Employee_PhoneNumber, Employee_Age,
Employee_Fax, Employee_Sex, Employee_Type, Employee_Email)

Customer(Customer_Id, Ticket_Id, Customer_Name, Custom_Address,


Customer_MailingAddress, Customer_Fax, Customer_Age, Customer_Sex,
Customer_Type, Customer_Mobile, Customer_Email, Is_Employee, Is_User)

Show(Show_Id, Booking_Id, Show_Name, Show_Duration, Show_Price,


Show_Place, Has_Meal, Meal_type, Has_Accomodation, Booked_On,
Booked_For)

Ticket(Ticket_Id, Show_Id, Ticket_IssuedOn, Ticket_Price)

3NF
Employee(Employee_Id, Employee_Name, Employee_Address,
Employee_MailingAddress, Employee_PhoneNumber, Employee_Age,
Employee_Fax, Employee_Sex, Employee_Type, Employee_Email)

Saugat Timilsina 4
CC5051NA Databases

Customer(Customer_Id, Customer_Name, Customer_Address,


Customer_MailingAddress, Customer_Fax, Customer_Age, Customer_Sex,
Customer_Type, Customer_Mobile, Customer_Email, Is_Employee, Is_User)

Show(Show_Id, Show_Name, Show_Duration, Show_Duration, Show_Place,


Has_Meal, Meal_type, Has_Accomodation)

Ticket(Ticket_Id, Show_Id, Ticket_IssuedOn, Ticket_Price)

Book (Booking_Id, Customer_Id, Ticket_Id, Booked_On, Booked_For)

Saugat Timilsina 5
CC5051NA Databases

Figure 2: Normalized ER diagram

Saugat Timilsina 6
CC5051NA Databases

2. Database Implementation

2.1. Data Dictionary

Entity: Customer
Attribute Name Data type Length Constraint Description
Customer_Id Number Primary Key Unique
Auto-increment identification of
task
Ticket_Id Number Foreign Key Id of the ticket
Not Null customer
bought.
Customer_Name Varchar 25 Not null Name of the
customer
Customer_Address Varchar 200 List of
addresses of
the customer
Customer_MailingAddress Varchar 40 Not null Mailing
address of the
customer
Customer_Fax Varchar 25 Fax number of
the customer
Customer_Age Number Not Null Age of the
Customer
Customer_Sex Varchar 10 Not null Sex of the
Customer
Customer_Type Varchar 15 Not null Type of
customer (Old/
New)
Customer_Mobile Varchar 25 Mobile number
of the customer
Customer_Email Varchar 150 List of E-mail
addresses of

Saugat Timilsina 7
CC5051NA Databases

the customer
Is_Employee Varchar 5 To determine if
the customer is
employee
Is_User Varchar 5 To determine if
the customer is
user of the
system.
Table 1: Data dictionary of Customer entity

Entity: Show

Attribute Name Data type length Constraint Description


Show_Id Number Primary Key Unique
Auto-increment identification of
show
Show_Name Varchar 25 Not Null Name of the
show
Show_Duration Number Not Null Duration of
show in
minutes
Show_Place Varchar 25 Not Null Place where
the show will be
held
Has_Meal Varchar 5 To determine if
the customer
had meal
Meal_Type Varchar 15 To determine
what type of
meal
Has_Accomodation Varchar 5 To determine if
user used
accommodation

Saugat Timilsina 8
CC5051NA Databases

service
Table 2: Data dictionary of Show entity

Entity: Employee

Attribute Name Data type length Constraint Description


Employee_Id Number Primary Key Unique
Auto-increment identification of
Employee
Employee_Name Varchar 20 Not Null Name of the
Employee
Employee_Address Varchar 200 List of Address
of the
Employee
Employee_MailingAddress Varchar 40 Not Null Mailing address
of the
Employee
Employee_PhoneNumber Varchar 25 Not Null Phone Number
of the customer
Employee_Fax Varchar 150 Fax Number of
the customer
Employee_Email Varchar 100 List of Email
address of the
employee
Employee_Age Varchar 5 Not Null To determine if
the customer
had meal
Employee_Sex Varchar 15 Not Null To determine
what type of
meal
Employee_Type Varchar 15 Not Null Type of the
Employee
Table 3: Data dictionary of Employee entity

Saugat Timilsina 9
CC5051NA Databases

Entity: Ticket

Attribute Name Data type length Constraint Description


Ticket_Id Number Primary Key Unique
Auto-increment identification of
Ticket
Show_Id Number Foreign Key Id of the show
Not Null that ticket is for
Ticket_IssuedOn Date Not Null Date when the
ticket was
issued
Ticket_Price Number 25 Not Null Price of the
ticket
Table 4: Data dictionary of Ticket entity

Entity: Book
Attribute Name Data type Length Constraint Description
Book_Id Number Primary Key Unique
Auto-increment identification of
Booking
Customer_Id Number Foreign key Id of the
Not Null customer who
booked.
Ticket_Id Number Foreign Key Ticket Id which
Not Null has been
booked.
Booken_On Date Not Null Date when the
ticket is booked
Booked_For Date Not Null Date when the
ticket is booked
for
Table 5: Data dictionary of Book entity

Saugat Timilsina 10
CC5051NA Databases

2.2. Creating and Inserting data on Database

Figure 3: Creating Employee Table

Query Executed:

CREATE SEQUENCE Employees_sq start with 1 increment by 1 minvalue 1


maxvalue 1000;

CREATE TABLE Employee(


Employee_Id NUMBER NOT NULL,
Employee_Name VARCHAR2(25) NOT NULL,
Employee_Address VARCHAR2(200),
Employee_MailingAddress VARCHAR2(40) NOT NULL,
Employee_PhoneNumber VARCHAR2(25),
Employee_Fax VARCHAR2(150),
Employee_Email VARCHAR2(150),
Employee_Age VARCHAR2(5) NOT NULL,
Employee_Sex VARCHAR2(15) NOT NULL,
Employee_Type VARCHAR2(15) NOT NULL,
CONSTRAINT employee_pk PRIMARY KEY (Employee_Id)

Saugat Timilsina 11
CC5051NA Databases

);

Figure 4: Creating Show Table

Query Executed:

CREATE SEQUENCE Show_sq start with 1 increment by 1 minvalue 1 maxvalue


10000;

CREATE TABLE Show(


Show_Id Number NOT NUll,
Show_Name VARCHAR2(25) NOT NULL,
Show_Duration NUMBER NOT NULL,
Show_Place VARCHAR2(25) NOT NULL,
Has_Meal VARCHAR2(5),
Meal_Type VARCHAR2(15),
Has_Accomodation VARCHAR2(5),
CONSTRAINT show_pk PRIMARY KEY (Show_Id)
);

Saugat Timilsina 12
CC5051NA Databases

Figure 5: Creating Ticket table

Query Executed:

CREATE SEQUENCE Ticket_sq start with 1 increment by 1 minvalue 1 maxvalue


10000;

CREATE TABLE Ticket(


Ticket_Id NUMBER NOT NULL,
Show_Id NUMBER NOT NULL,
Ticket_IssuedOn DATE NOT NULL,
Ticket_Price NUMBER NOT NULL,
CONSTRAINT ticket_pk PRIMARY KEY (Ticket_Id),
CONSTRAINT show_fk FOREIGN KEY(Show_Id) REFERENCES
Show(Show_Id)
);

Saugat Timilsina 13
CC5051NA Databases

Figure 6: Creating Customer table

Query Executed:

CREATE SEQUENCE Customer_sq start with 1 increment by 1 minvalue 1


maxvalue 1000;

CREATE TABLE Customer(


Customer_Id NUMBER NOT NULL,
Ticket_Id NUMBER NOT NULL,
Customer_Name VARCHAR2(25) NOT NULL,
Customer_Address VARCHAR2(200),
Customer_MailingAddress VARCHAR2(40) NOT NULL,
Customer_Fax VARCHAR2(25),
Customer_Age NUMBER NOT NULL ,
Customer_Sex VARCHAR2(10) NOT NULL,
Customer_Type VARCHAR2(15) NOT NULL,
Customer_Mobile VARCHAR2(25),
Customer_Email VARCHAR2(150),
Is_Employee VARCHAR(5),
Is_User VARCHAR(5),

Saugat Timilsina 14
CC5051NA Databases

CONSTRAINT customer_pk PRIMARY KEY (Customer_Id),


CONSTRAINT ticket_fk FOREIGN KEY(Ticket_Id) REFERENCES
Ticket(Ticket_Id)
);

Figure 7: Creating Book Table

Query Executed:

CREATE SEQUENCE Book_sq start with 1 increment by 1 minvalue 1 maxvalue


1000;

CREATE TABLE Book(


Book_Id NUMBER NOT NULL,
Customer_Id NUMBER NOT NULL,
Ticket_Id NUMBER NOT NULL,
Booked_On DATE NOT NULL,
Booked_For DATE NOT NULL,
CONSTRAINT book_pk PRIMARY KEY (Book_Id),
CONSTRAINT customer_fk FOREIGN KEY(Customer_Id) REFERENCES
Customer(Customer_Id),

Saugat Timilsina 15
CC5051NA Databases

CONSTRAINT ticket_fkForBook FOREIGN KEY(Ticket_Id) REFERENCES


Ticket(Ticket_Id)
);

Figure 8: Inserting values on Employee Table

Query Executed:

INSERT INTO Employee values(Employees_sq.nextval, 'Shuman Dhital', '', 'Nepal


Gandaki Pokhara Jarebar 5', '9187356235', '', 'shuman63@yml.com', '25', 'Male',
'Internal');

INSERT INTO Employee values(employees_sq.nextval, 'Akriti Gurung', '', 'Nepal


Gandaki Damauli Byas 2', '9981536675', '9123567', 'akriti@jkl.com', '30', 'Female',
'Internal');

INSERT INTO Employee values(employees_sq.nextval, 'Kripa Poudel', 'Nepal


4Province bagale tol 5', 'Nepali Gandaki Baglung Tar 5', '9881453235', '9256348',
'hello@me.com', '20', 'Male', 'External');

Saugat Timilsina 16
CC5051NA Databases

INSERT INTO Employee values(employees_sq.nextval, 'Rohit Bhandari', 'Nepal


Karnali Gaau besi 2', 'Nepal Gandaki Dulegauda Kawase 6', '9585366235',
'5123523', 'rohit@rm.com', '25', 'Male', 'Internal');

INSERT INTO Employee values(employees_sq.nextval, 'Bidhan Timilsina', '', 'Nepal


Gandaki Thaati Pudi 2', '9481235235', '1235685', 'bidhan@bt.com', '22', 'Male',
'Internal');

INSERT INTO Employee values(employees_sq.nextval, 'Ram Thapa', '', 'Nepal


Gandaki Rupa besi 2', '9856032589', '', 'ram@gmail.com', 'Male', '19', 'Externall');

Figure 9: Inserting values on Show table

Query Executed:

INSERT INTO Show values(Show_sq.nextval, 'Ramayana', 210, 'F block', 'Yes',


'lunch', 'Yes');

INSERT INTO Show values(Show_sq.nextval, 'Primitive', 60, 'A block', 'Yes',


'breakfast', 'No');

Saugat Timilsina 17
CC5051NA Databases

INSERT INTO Show values(Show_sq.nextval, 'Ways of life', 120, 'B block', 'No', '',
'Yes');

INSERT INTO Show values(Show_sq.nextval, 'Aliens', 90, 'E block', 'No', '', 'No');
INSERT INTO Show values(Show_sq.nextval, 'Space', 90, 'D block', 'No', '', 'NO');
INSERT INTO Show values(Show_sq.nextval, 'Mahabharat', 270, 'A block', 'yes',
'lunch', 'Yes');

Figure 10: Inserting values on Ticket table

Query Executed:

INSERT INTO Ticket values(Ticket_sq.nextval, 1, '1/Nov/2018', 100);

INSERT INTO Ticket values(Ticket_sq.nextval, 1, '1/Nov/2018', 50);

Saugat Timilsina 18
CC5051NA Databases

INSERT INTO Ticket values(Ticket_sq.nextval, 2, '1/Nov/2018', 100);

INSERT INTO Ticket values(Ticket_sq.nextval, 3, '16/Nov/2018', 100);

INSERT INTO Ticket values(Ticket_sq.nextval, 6, '17/Nov/2018', 100);

INSERT INTO Ticket values(Ticket_sq.nextval, 6, '18/Nov/2018', 50);

Figure 11: Inserting values on Customer table

Query Executed:
INSERT INTO Customer values(Customer_sq.nextVal, 1, 'Rohit Bhandari', 'Nepal
Karnali Gaau besi 2', 'Nepal Gandaki Dulegauda Kawase 6', 5123523, 25, 'Male',
'Old', '9585366235', 'rohit@rm.com', 'yes', 'yes');

INSERT INTO Customer values(Customer_sq.nextVal, 2, 'Ek Bahadur Gurung', '',


'Nepal Mechi bagan phedi 2', '', 18, 'Male', 'New', '9856325689',
'bahadur@ymail.com', 'no', 'no');

INSERT INTO Customer values(Customer_sq.nextVal, 3, 'Madan Humagain', '',


'Nepal bagmati jorpati kulo 5', '', 17, 'Male', 'New', '9552368975', 'hmg@gmail.com',
'no', 'no');

Saugat Timilsina 19
CC5051NA Databases

INSERT INTO Customer values(Customer_sq.nextVal, 4, 'Kripa Poudel', 'Nepal


Gandaki Baglung Tar 5', 'Nepal Gandaki Baglung Tar 5', '256348', 20, 'Female', 'Old',
'9881453235', 'hello@me.com', 'yes', 'no');

INSERT INTO Customer values(Customer_sq.nextVal, 4, 'Salina Thapa', '', 'Nepal


Gandaki Baglung Tar 5', '256348', 20, 'Female', 'New', '9898563249', '', 'no', 'no');
INSERT INTO Customer values(Customer_sq.nextVal, 4, 'Kripa Poudel', '', 'Nepal
Gandaki Dulegauda Kawase 6', '325689', 17, 'Male', 'Old', '9813060057', '', 'no', 'no');

Figure 12: Inserting values on Book Table

Query Executed:
INSERT INTO Book values(Book_sq.nextval, 1, 1, '1/Nov/2018', '11/Dec/2018');
INSERT INTO Book values(Book_sq.nextval, 2, 2, '1/Nov/2018', '11/Dec/2018');
INSERT INTO Book values(Book_sq.nextval, 3, 3, '1/Nov/2018', '11/Dec/2018');
INSERT INTO Book values(Book_sq.nextval, 4, 4, '16/Nov/2018', '11/Dec/2018');
INSERT INTO Book values(Book_sq.nextval, 5, 5, '17/Nov/2018', '17/Dec/2018');
INSERT INTO Book values(Book_sq.nextval, 6, 6, '18/Nov/2018', '11/Dec/2018');

Saugat Timilsina 20
CC5051NA Databases

2.3. Information and Transaction Queries

2.3.1. Information Queries

Figure 13: Listing all old and current customers

Executed Query:

SELECT Customer_Id, Customer_Name, Customer_Type, Is_User FROM


Customer WHERE Customer_Type = 'Old' OR Customer_Type = 'Current';

Figure 14: Listing Customers with all their addresses

Saugat Timilsina 21
CC5051NA Databases

Executed Query:

SELECT Customer_Id, Customer_Name, Customer_Address,


Customer_MailingAddress from Customer;

Figure 15: Shows user watched

Executed Query:

SELECT Customer.Customer_Id, Customer.Customer_Name,


Ticket.Ticket_Price, Customer.Is_User, Customer.IS_EMPLOYEE
FROM Customer
JOIN Ticket ON Customer.Ticket_Id = Ticket.Ticket_Id
WHERE Customer_Name = 'Rohit Bhandari' AND Customer.IS_User = 'yes';

Saugat Timilsina 22
CC5051NA Databases

Figure 16: Listing Customers that are also users

Executed Query:

SELECT Customer_Id, Customer_Name, Customer_Type, Is_User,


Is_Employee FROM Customer WHERE Is_User = 'yes';

Saugat Timilsina 23
CC5051NA Databases

2.3.2. Transaction Queries

Figure 17: Listing Users who attended show and had lunch

Executed Query:

SELECT Customer.Customer_Id, Customer.Customer_Name,


Show.Show_Id, Show.Show_Name, Show.Has_Meal, Show.Meal_Type
FROM Customer JOIN Ticket ON Customer.Ticket_Id = Ticket.Ticket_Id
JOIN Show ON Ticket.show_Id = Show.Show_Id
WHERE Show.Meal_Type = 'lunch';

Figure 18: Listing Shows that will have breakfast at given place and date

Saugat Timilsina 24
CC5051NA Databases

Executed Query:

SELECT Show.Show_Id, Show.Show_Name, Show.Has_Meal, Show.Meal_Type,


Show.Show_Place, Ticket.Ticket_IssuedOn
FROM Show
JOIN Ticket ON Ticket.Show_Id = Show.Show_Id
WHERE Show.Meal_Type = 'breakfast' AND Show.Show_Place = 'A block';

Figure 19: Listing Employees who worked as user or have attended the show

Executed Query:

SELECT Book.Book_Id, Customer.Customer_Id, Customer.Customer_Name,


Customer.Customer_Mobile, Customer.Ticket_Id, Customer.Is_User,
Customer.Is_Employee
FROM Customer
Join Book ON Book.Customer_Id = Customer.Customer_Id
JOIN Ticket ON Customer.Ticket_Id = Ticket.Ticket_Id
WHERE Customer.Is_User='yes' OR Customer.Is_Employee='yes';

Saugat Timilsina 25
CC5051NA Databases

Figure 20: Listing Customers that booked show starting later or on a given date

Executed Query:

Select Book.Book_Id, Book.Ticket_Id, Book.Booked_On, Book.Booked_For,


Customer.Customer_Id, Customer.Customer_Name
FROM Book
JOIN Customer ON Book.Customer_Id = Customer.Customer_Id
WHERE Book.Booked_For = '11-Dec-2018' or Book.Booked_For > '11-Dec-
2018';

Saugat Timilsina 26
CC5051NA Databases

3. Critical Evaluation

This task was assigned to us as a coursework for our database module with 50%
weightage for the final result with the aim of giving us a detailed knowledge on
how to work in a real-world scenario. In this Coursework, we were to make
theatre operator system database which could save all the details needed in a
theatre. While doing this coursework I made ERDs, Data dictionary as per the
need of coursework and to make my development work easier too. I used
Draw.io (online software for making diagrams) to make ERDs, Microsoft Word for
Data dictionary and report writing. I also used Oracle’s SQL Developer for writing
and executing SQL queries.

I started working on this coursework by heading to Bindhyawasini Theatre Hall to


research about Theatre hall. After gathering details from staffs working there, I
started by writing down all the necessary attributes and entities. Then, I
normalized all of my tables, made ERD and started writing queries on Oracle
SQL developer. While working on this coursework, I was intimidated by all the
confusions on my mind. Many of those confusions were about inconsistencies
found on the specification paper. I was also confused about Normalization which I
overcame through research on lecture slides, module leader and online
resources.

Our ‘Software Engineering’ module also teaches us similar concept of system


building where we as students learnt how to make Flow charts, Data flow
diagrams, ERDs and Data dictionary. As the proverb goes, “Two heads are better
than one” and in this case two modules are better than one. I got more detailed
explanation on how systems work with the help of these two modules. After
finishing working on this coursework, I am confident and hopeful that my
database skills can now be applied on real world applications which will be
helpful to any organization/Individual with such requirements. This coursework
has filled me up with confidence even though there might be lots of ways to
improve upon my skills. Since we have to do a project on third year I am thinking

Saugat Timilsina 27
CC5051NA Databases

of applying knowledge of Database development I learned in this module to


create my own e-commerce site.

Saugat Timilsina 28