Вы находитесь на странице: 1из 32
Module Code & Module Title CC5051NA Database Assessment Weightage & Type 50% Individual Coursework Year
Module Code & Module Title CC5051NA Database Assessment Weightage & Type 50% Individual Coursework Year

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

Introduction

Databases

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.

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

models of the proposed database system. 1.1. E-R Diagram Figure 1: Entity Relationship Diagram of Bindhyawasini

Figure 1: Entity Relationship Diagram of Bindhyawasini theatre operator system

CC5051NA

1.2. Assumptions made

Databases

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,

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)

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)

CC5051NA

Databases

CC5051NA Databases Figure 2: Normalized ER diagram Saugat Timilsina 6

Figure 2: Normalized ER diagram

CC5051NA

2. Database Implementation

2.1. Data Dictionary

Entity: Customer

Databases

Attribute Name

Data type

Length

Constraint

Description

Customer_Id

Number

 

Primary Key Auto-increment

Unique

identification of

 

task

Ticket_Id

Number

 

Foreign Key

Id of the ticket customer bought.

Not Null

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

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 Auto-increment

Unique

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

CC5051NA

Databases

service
service
service
service

service

Table 2: Data dictionary of Show entity

Entity: Employee

Attribute Name

Data type

length

Constraint

Description

Employee_Id

Number

 

Primary Key Auto-increment

Unique

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

CC5051NA

Entity: Ticket

Databases

Attribute Name

Data type

length

Constraint

Description

Ticket_Id

Number

 

Primary Key Auto-increment

Unique

identification of

 

Ticket

Show_Id

Number

 

Foreign Key

Id of the show that ticket is for

Not Null

Ticket_IssuedOn

Date

 

Not Null

Date when the ticket was issued

Ticket_Price

Number

25

Not Null

Price of the ticket

Entity: Book

Table 4: Data dictionary of Ticket entity

 

Attribute Name

Data type

Length

Constraint

Description

Book_Id

Number

 

Primary Key Auto-increment

Unique

identification of

 

Booking

Customer_Id

Number

 

Foreign key

Id of the customer who booked.

Not Null

Ticket_Id

Number

 

Foreign Key

Ticket Id which has been booked.

Not Null

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

CC5051NA

Databases

2.2. Creating and Inserting data on Database

Databases 2.2. Creating and Inserting data on Database Figure 3: Creating Employee Table Query Executed: CREATE

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)

CC5051NA

);

Databases

CC5051NA ); Databases Figure 4: Creating Show Table Query Executed: CREATE SEQUENCE Show_sq start with 1

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)

);

CC5051NA

Databases

CC5051NA Databases Figure 5: Creating Ticket table Query Executed: CREATE SEQUENCE Ticket_sq start with 1 increment

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

CC5051NA

Databases

CC5051NA Databases Figure 6: Creating Customer table Query Executed: CREATE SEQUENCE Customer_sq start with 1 increment

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

CC5051NA

Databases

CONSTRAINT customer_pk PRIMARY KEY (Customer_Id), CONSTRAINT ticket_fk FOREIGN KEY(Ticket_Id) REFERENCES Ticket(Ticket_Id) );

FOREIGN KEY(Ticket_Id) REFERENCES Ticket(Ticket_Id) ); Figure 7: Creating Book Table Query Executed: CREATE

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

CC5051NA

Databases

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

FOREIGN KEY(Ticket_Id) REFERENCES Ticket(Ticket_Id) ); Figure 8: Inserting values on Employee Table Query Executed:

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

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

'Male', '19', 'Externall'); Figure 9: Inserting values on Show table Query Executed:

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

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

block', 'yes', 'lunch', 'Yes'); Figure 10: Inserting values on Ticket table Query Executed:

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

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

values(Ticket_sq.nextval, 6, '18/Nov/2018', 50); Figure 11: Inserting values on Customer table Query

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

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

'', 'no', 'no'); Figure 12: Inserting values on Book Table Query Executed:

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

CC5051NA

Databases

2.3. Information and Transaction Queries

2.3.1. Information Queries

and Transaction Queries 2.3.1. Information Queries Figure 13: Listing all old and current customers Executed

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

= 'Old' OR Customer_Type = 'Current'; Figure 14: Listing Customers with all their addresses Saugat

Figure 14: Listing Customers with all their addresses

CC5051NA

Executed Query:

Databases

SELECT Customer_Id, Customer_Name, Customer_Address, Customer_MailingAddress from Customer;

Customer_Address, Customer_MailingAddress from Customer; Figure 15: Shows user watched Executed Query: SELECT

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

CC5051NA

Databases

CC5051NA Databases Figure 16: Listing Customers that are also users Executed Query: SELECT Customer_Id, Customer_Name,

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

CC5051NA

2.3.2. Transaction Queries

Databases

CC5051NA 2.3.2. Transaction Queries Databases Figure 17: Listing Users who attended show and had lunch Executed

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

= Show.Show_Id WHERE Show.Meal_Type = 'lunch'; Figure 18: Listing Shows that will have breakfast at given

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

CC5051NA

Executed Query:

Databases

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

'breakfast' AND Show.Show_Place = 'A block'; Figure 19: Listing Employees who worked as user or have

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

CC5051NA

Databases

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

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

CC5051NA

3. Critical Evaluation

Databases

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

CC5051NA

Databases

of applying knowledge of Database development I learned in this module to create my own e-commerce site.