A signed copy of this form must be submitted with every assignment.
If the statement is missing your work may not be marked.
I confirm the following details:
CANDIDATE NAME: ABOU JAMI NGOME
CANDIDATE ID NUMBER: P 00185501
QUALIFICATION: LEVEL 5 DIPLOMA IN COMPUTING (L5DC)
UNIT: DATABASE DESIGN AND DVELOPMENT
CENTRE: INSTITUTE OF ADVANCED TECHNOLOGY
I have read and understood both NCC Education’s Academic Misconduct Policy and the Referencing
and Bibliographies document. To the best of my knowledge my work has been accurately referenced
and all sources cited correctly.
I confirm that this is my own work and that I have not colluded or plagiarized any part of it.
CANDIDATE SIGNATURE:
DATE: 7TH
NOVERMBER 2022
2
CONTENTS
TASK 1-DESCRIPTION OF BUSINESS....................................................................................................4
Tourism .....................................................................................................................................................4
ABL Tours and Safaris Database................................................................................................................4
System Requirements...............................................................................................................................5
Software Requirements............................................................................................................................5
TASK 2-ER AND DATA DICTIONARY ...................................................................................................6
Entity-Relationship Model ........................................................................................................................6
Data Dictionary for the Proposed System.................................................................................................7
TASK 3-NORMALIZATION ......................................................................................................................9
Normalization............................................................................................................................................9
TASK 4 ASSESSMENT OF DESIGN.......................................................................................................11
Requirements..........................................................................................................................................11
Functional ...............................................................................................................................................11
Non-functional........................................................................................................................................11
Mapped logical database design to physical database design. ..............................................................12
Derived data Representation..................................................................................................................12
TASK 5 – SCRIPTS TO CREATE TABLE STRUCTURES ....................................................................15
Tables in SQL and scripts as running in the programming environment................................................15
TASK 6 – DATA POPULATION..............................................................................................................18
The SQL insert scripts Data on all the bookings, and guests. .................................................................18
Data for resorts, camps, units, and unit types........................................................................................23
Data on all inventory items for the units................................................................................................24
Data on the facilities found at all the camps. .........................................................................................29
TASK 7 - ENHANCEMENT USING SQL................................................................................................30
TASK 8 – SQL REPORTS.........................................................................................................................31
The query that selects all the guests for a particular booking................................................................31
Statement changing Satpal Singh’s end date at Loche Castle Camping to 29 July 2018........................32
A statement that changes the name of customer ‘Mavis Kingdom’ to ‘Mavis Rickman-Kingdom’ .......33
The query shows all inventory items for all the deluxe caravans...........................................................34
3
The query that shows all the guests who are staying at Camping Freedom Bordeaux and which units
they are staying at ..................................................................................................................................35
The query that produces the output that could be used to give details of all the bookings at Loche
Castle Camping including the dates of the bookings..............................................................................36
Adding a constraint so that only people over 18 can be customers ......................................................37
TASK 9 – FUTURE DEVELOPMENT OF A DISTRIBUTED DATABASE..........................................38
TASK 10 – EVALUATE USING THE GIBBS REFLECTIVE CYCLE (1988) MODEL .......................39
REFERENCE..............................................................................................................................................40
4
TASK 1-DESCRIPTION OF BUSINESS
Tourism
A tourism management system can assist you in planning the ideal trip because most people take
vacations on holidays. Users get access to all pertinent information, including weather, location,
events, and more, through the tourism management system. The main objective is to support
tourism firms in managing clients, lodging, and other business-related factors. Both professional
and business trips can be made use of the system. The proposed system keeps a central repository
that may be utilized to book essential travel arrangements and instantly access data.
ABL Tours and Safaris Database
However a Safari and tours database management system was created to make front-desk activities
easier, management functions better, and customer and reservation experiences better. A hotel can
use the program to increase productivity and successfully handle activities including check-ins,
check-outs, and reservation confirmations.
The software's key features
1. Check-In/Check-Out Procedures
2. Customer/Guest Relationship Management
3. Rooms Administration
4. Reservations/Bookings
5. Adding, Editing, and Deleting System Users
6. Reports on paper
5
System Requirements
1. A Pentium 4 processor with a clock speed of 1.3 GHz is required.
2. A minimum RAM capacity of 512MB is required.
3. A hard disk with at least 100 megabytes of free space.
Software Requirements
1. Windows 7 or higher
6
TASK 2-ER AND DATA DICTIONARY
An entity-relationship model for the proposed database system for ABL TOURS & SAFARIS
Holidays.
Entity-Relationship Model
Customer
Customer Id (PK)
Customer Name
Bookings
Booking Id (PK)
Unit Id (FK)
Inventory
Inventory Id (PK)
Inventory Item
Item Type
Unit Id (FK)
Units
Unit Id (PK)
Unit Name
Unit Type
1 0…
0…
1
1
0…
Customer Bookings
Customer Id (FK)
Booking Id (FK)
Resort
Camp
Facility
Start Date
End Date
1
0…
7
Data Dictionary for the Proposed System.
Customers
Customer ID (PRIMARY KEY)
Customer Name
Age
Bookings
Booking ID (PRIMARY KEY)
Customer ID (FOREIGN KEY)
Resort
Camp
Facility
Start Date
End Date
Unit ID (FOREIGN KEY)
Units
Unit ID (PRIMARY KEY)
Unit Name
Unit Type
8
Inventory
Inventory ID (PRIMARY KEY)
Inventory Item
Item Type
Unit ID (FOREIGN KEY)
9
TASK 3-NORMALIZATION
Normalization
This refers to the process of restructuring data of a database intending to ensure that there is no
redundancy and data dependency are logical.
UNF
Customer Id
Customer Name
Age
Booking Id
Customer Id*
Resort
Camp Name
Facility
Start Date
End Date
Unit Id
Unit Name
Unit Type
Inventory Id
Inventory Item
Item Type
2UNF
Customer Id
Customer Name
Age
Booking Id
Customer Id*
Unit Id*
Resort
Camp Name
Facility
Start Date
End Date
Inventory Id
Inventory Item
Item Type
3UNF
Customer Id
Customer Name
Age
Customer Id*
Booking Id*
Resort
Camp
Facility
Start Date
End Date
Booking Id
Unit Id*
Unit Id
Unit Name
Unit Type
10
Unit Id
Unit Name
Unit Type
Inventory Id
Inventory Item
Item Type
Unit Id*
Each entity in the ER diagram becomes a relation. A properly normalized ER diagram will indicate
where intersection relations are needed.
By using normalization, I made the tables smaller with no duplicate information in each table, that
if you’re looking for something in particular, you don’t have to worry about the unwanted
information, and go right away to the table with what you need and easily get what you need.
The third normalization form is also for eliminating redundant data.
|Having a highly normalized data schema brings about the following listed advantages;
1. Increased consistency. Information is stored in one place and one place only, reducing the
possibility of inconsistent data.
2. Easier object-to-data mapping. Highly-normalized data schemas, in general, are closer
theoretically to object-oriented schemas because the object-oriented goals of promoting
high cohesion and loose coupling between classes result in similar solutions.
11
TASK 4 ASSESSMENT OF DESIGN
Requirements
A good bookings system should satisfy a number of fundamental requirements, both practical and
aesthetic. These are what they are:
Functional
1. For each online reservation, create an account.
2. There should be just one user per account.
3. Enable users to look up and reserve the best available booking options.
Accept the day and hour and check to see if any rooms are available at that time.
5. The email address you supplied should get a confirmation of your reservation.
6. Figure out and show the cost of housing and other utilities.
7. Reservation cancellation
8. Records for visitors are shown and modified.
9. Board and changing rooms
Non-functional
1. Use encryption to stop bots from booking.
2. Results from searches should show within a fair amount of time.
3. When entering incorrect information, users should receive the necessary assistance to
complete the required fields.
4. The system must be capable of receiving payments from various sources.
5. it’s readily available, effective, and easy to use.
6. Keep a log of all papers, activities, and responses.
12
Mapped logical database design to physical database design.
Physical database design is the process through which a database is translated into a real-world
system. However, many physical database attributes depend on the specifics and semantics of the
target DBMS. Logical design can be carried out regardless of the final database platform. Physical
design happens in two stages:
1. Includes pre-deployment design, table definitions, normalization, main and foreign key
associations, and basic indexing (usually carried out by an application developer).
2. Physical database design, which is carried out after deployment (usually by a database
administrator): this entails improving performance, reducing I/O, and streamlining the database.
Derived data Representation
ALTER TABLE bookings
ADD Cleaning_Cost_Pounds INTEGER (11),
ADD Maintenance_Cost_Pounds INTEGER (11);
UPDATE bookings
SET Cleaning_Cost_Pounds="1234", Maintenance_Cost_Pounds="2000"
WHERE booking_id = "B2001";
UPDATE bookings
SET Cleaning_Cost_Pounds="800", Maintenance_Cost_Pounds="1800"
WHERE booking_id = "B2003";
13
UPDATE bookings
SET Cleaning_Cost_Pounds="750", Maintenance_Cost_Pounds="1750"
WHERE booking_id = "B2009";
UPDATE bookings
SET Cleaning_Cost_Pounds="600", Maintenance_Cost_Pounds="1600"
WHERE booking_id = "B2010";
UPDATE bookings
SET Cleaning_Cost_Pounds="500", Maintenance_Cost_Pounds="1500"
WHERE booking_id = "B2013";
14
CREATE VIEW cost AS
SELECT booking_id, unit_id, Cleaning_Cost_Pounds, Maintenance_Cost_Pounds,
(Cleaning_Cost_Pounds+Maintenance_Cost_Pounds) AS Total_Cost_Pounds FROM bookings;
CREATE VIEW pay_rate AS
SELECT booking_id, unit_id, Total_Cost_Pounds,(Total_Cost_Pounds*0.1) AS Staff_Pay
FROM cost;
15
TASK 5 – SCRIPTS TO CREATE TABLE STRUCTURES
Tables in SQL and scripts as running in the programming environment.
16
CREATE TABLE bookings (Booking_Id CHARACTER (5) NOT NULL PRIMARY KEY,
Unit_Id INTEGER, FOREIGN KEY (Unit_Id) REFERENCES units (Unit_Id));
CREATE TABLE customers (Customer_Id INTEGER NOT NULL PRIMARY KEY,
Customer_Name VARCHAR (50), Age INTEGER, CHECK (Age>=18));
CREATE TABLE Customer_Bookings (Customer_Id INTEGER, Booking_Id CHARACTER (5),
Resort VARCHAR (50), Camp VARCHAR (50), Facility VARCHAR (50), Start_Date
VARCHAR (30), End_Date VARCHAR (30), FOREIGN KEY (Customer_Id) REFERENCES
customers (Customer_Id), FOREIGN KEY (Booking_Id) REFERENCES bookings
(Booking_Id));
CREATE TABLE units (Unit_Id INTEGER NOT NULL PRIMARY KEY, Unit_Name
VARCHAR (30), Unit_Type VARCHAR (30));
17
CREATE TABLE Inventory (Inventory_Id INTEGER NOT NULL PRIMARY KEY
AUTO_INCREMENT, Inventory_Item VARCHAR (30), Item_Type VARCHAR (30), Unit_id
INTEGER, FOREIGN KEY (Unit_Id) REFERENCES units(Unit_Id));
18
TASK 6 – DATA POPULATION
The SQL insert scripts Data on all the bookings, and guests.
19
20
21
INSERT INTO customers (Customer_Id, Customer_Name, Age) VALUES ("2399", "Sally
Harvey", "30");
INSERT INTO customers (Customer_Id, Customer_Name, Age) VALUES ("2400", "Robert
Harvey", "28");
INSERT INTO customers (Customer_Id, Customer_Name, Age) VALUES ("2300", "Amie
Johnson", "26");
INSERT INTO customers (Customer_Id, Customer_Name, Age) VALUES ("2301", "Mavis
Kingdom", "29");
INSERT INTO customers (Customer_Id, Customer_Name, Age) VALUES ("1101", "Alison
Walters", "34");
INSERT INTO customers (Customer_Id, Customer_Name, Age) VALUES ("1102", "Dennis
Brown", "40");
INSERT INTO customers (Customer_Id, Customer_Name, Age) VALUES ("2111", "Satpal
Singh", "24");
SELECT * FROM customers;
INSERT INTO bookings (Booking_Id, Unit_Id) VALUES ("B2001", "9934");
INSERT INTO bookings (Booking_Id, Unit_Id) VALUES ("B2003", "4500");
INSERT INTO bookings (Booking_Id, Unit_Id) VALUES ("B2009", "5670");
INSERT INTO bookings (Booking_Id, Unit_Id) VALUES ("B2010", "2321");
INSERT INTO bookings (Booking_Id, Unit_Id) VALUES ("B2013", "2500");
SELECT * FROM bookings;
INSERT INTO Customer_Bookings (Customer_Id, Booking_Id, Resort, Camp, Facility,
Start_Date, End_Date) VALUES ("2399", "B2001", "Bordeaux", "Camping Freedom Bordeaux",
"01-July-2018", "14-July-2018");
INSERT INTO Customer_Bookings (Customer_Id, Booking_Id, Resort, Camp, Facility,
Start_Date, End_Date) VALUES("2399", "B2001", "Bordeaux", "Camping Freedom Bordeaux",
"Swimming Pool, Games, Night Club, Mini-Golf", "01-July-2018", "14-July-2018");
22
INSERT INTO Customer_Bookings (Customer_Id, Booking_Id, Resort, Camp, Facility,
Start_Date, End_Date) VALUES("2400", "B2001", "Bordeaux", "Camping Freedom Bordeaux",
"Swimming Pool, Games, Night Club, Mini-Golf", "01-July-2018", "14-July-2018");
INSERT INTO Customer_Bookings (Customer_Id, Booking_Id, Resort, Camp, Facility,
Start_Date, End_Date) VALUES("2300", "B2003", "Bordeaux", "Camping Freedom Bordeaux",
"Swimming Pool, Games, Night Club, Mini-Golf", "07-July-2018", "14-July-2018");
INSERT INTO Customer_Bookings (Customer_Id, Booking_Id, Resort, Camp, Facility,
Start_Date, End_Date) VALUES("2301", "B2003", "Bordeaux", "Camping Freedom Bordeaux",
"Swimming Pool, Games, Night Club, Mini-Golf", "07-July-2018", "14-July-2018");
INSERT INTO Customer_Bookings (Customer_Id, Booking_Id, Resort, Camp, Facility,
Start_Date, End_Date) VALUES ("1101", "B2009", "Bordeaux", "Riverside Camping",
"Swimming Pool, Cycle Hire", "07-July-2018", "14-July-2018");
INSERT INTO Customer_Bookings (Customer_Id, Booking_Id, Resort, Camp, Facility,
Start_Date, End_Date) VALUES ("1102", "B2009", "Bordeaux", "Riverside Camping",
"Swimming Pool, Cycle Hire", "07-July-2018", "14-July-2018");
INSERT INTO Customer_Bookings (Customer_Id, Booking_Id, Resort, Camp, Facility,
Start_Date, End_Date) VALUES ("2111", "B2010", "Loire Valley", "Camping Freedom Loire",
"Swimming Pool", "07-July-2018", "14-July-2018");
INSERT INTO Customer_Bookings (Customer_Id, Booking_Id, Resort, Camp, Facility,
Start_Date, End_Date) VALUES ("2111", "B2013", "Loche", "Loche Castle Camping",
"Swimming Pool, Cycle Hire, Restaurant", "15-July-2018", "22-July-2018");
mysql> SELECT * FROM Customer_Bookings;
23
Data for resorts, camps, units, and unit types
INSERT INTO units (Unit_Id, Unit_Name, Unit_Type) VALUES ("9934", "Capital", "Standard
Caravan");
INSERT INTO units (Unit_Id, Unit_Name, Unit_Type) VALUES ("4500", "Elizabethan",
"Deluxe Caravan");
INSERT INTO units (Unit_Id, Unit_Name, Unit_Type) VALUES ("5670", "Victoria", "Deluxe
Caravan");
INSERT INTO units (Unit_Id, Unit_Name, Unit_Type) VALUES ("2321", "Glamour", "Small
fixed tent");
INSERT INTO units (Unit_Id, Unit_Name, Unit_Type) VALUES ("2500", "Stanley", "Large
fixed tent");
mysql> SELECT * FROM units;
24
Data on all inventory items for the units.
25
26
27
INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES ("9934", "Set of Bed
Sheets", "Beddings");
INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES ("9934", "Pillows",
"Beddings");
INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("9934", "Coffee
Maker", "Kitchen Equipment");
INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("9934", "Cutlery Set",
"Kitchen Equipment");
INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("9934", "Crockery
Set", "Kitchen Equipment");
INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("9934", "Pan Set",
"Kitchen Equipment");
INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("4500", "Set of Bed
Sheets", "Beddings");
INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("4500", "Pillows",
"Beddings");
INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("4500", "Coffee
Maker", "Kitchen Equipment");
INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("4500", "Cutlery Set",
"Kitchen Equipment");
INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("4500", "Crockery
Set", "Kitchen Equipment");
INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("4500", "Pan Set",
"Kitchen Equipment");
INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("4500", "Sun
Umbrellar", "Outdoor Equipment");
INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("4500", "Lounger
Set", "Outdoor Equipment");
INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("5670", "Set of Bed
Sheets", "Beddings");
28
INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("5670", "Pillows",
"Beddings");
INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("5670", "Microwave
Oven", "Kitchen Equipment");
INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("5670", "Barbeque
Set", "Outdoor Equipment");
INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("2321", "Pillows",
"Beddings");
INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("2321", "Set of Bed
Sheets", "Beddings");
INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("2321", "Barbeque
Set", "Outdoor Equipment");
INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("2500", "Barbeque
Set","Outdoor Equipment");
mysql> SELECT * FROM inventory;
29
Data on the facilities found at all the camps.
30
TASK 7 - ENHANCEMENT USING SQL
SELECT fields rather than SELECT *
Many SQL developers use the shortcut SELECT * (read as "select all") when conducting
exploratory queries to access all of the data in a table. However, if a table has a lot of fields and
rows, it will strain the database's resources by searching a lot of pointless information.
The database will only be queried for the data you need to fulfill your business requirements if you
use the SELECT statement to direct it. In this case, the business requirements call for customer
mailing addresses. For example:
Inefficient:
SELECT *
FROM Customers
This query may pull in other data also stored in the customer table, such as phone numbers,
activity dates, and notes from sales and customer service.
Efficient:
SELECT customers.Customer_Id, customers.Customer_Name, customer_bookings.Booking_Id
FROM customer_bookings FROM Customers
31
TASK 8 – SQL REPORTS
The query that selects all the guests for a particular booking.
SELECT customers.Customer_Id, customers.Customer_Name, customer_bookings.Booking_Id
FROM customer_bookings INNER JOIN customers ON
customer_bookings.Customer_Id=customers.Customer_Id WHERE Booking_ID = "B2003";
32
Statement changing Satpal Singh’s end date at Loche Castle Camping to 29
July 2018
UPDATE customer_bookings SET Start_Date = "29-July-2018" WHERE Customer_Id = "2111"
AND Camp = "Loche Castle Camping";
33
A statement that changes the name of customer ‘Mavis Kingdom’ to ‘Mavis
Rickman-Kingdom’
UPDATE customers SET Customer_Name = "Mavis Rickman-Kingdom" WHERE
Customer_Name = "Mavis Kingdom";
34
The query shows all inventory items for all the deluxe caravans.
SELECT units.unit_id, units.Unit_Type, inventory.Inventory_Item FROM units INNER JOIN
inventory ON units.Unit_Id = inventory.Unit_ID WHERE Unit_Type = "Deluxe Caravan";
35
The query that shows all the guests who are staying at Camping Freedom
Bordeaux and which units they are staying at
SELECT customers.Customer_Name, customer_bookings.Booking_Id,
customer_bookings.Camp, bookings.Unit_Id FROM ((customer_bookings INNER JOIN
customers ON customer_bookings.Customer_Id = customers.Customer_Id) INNER JOIN
bookings ON customer_bookings.Booking_Id = bookings.Booking_Id) WHERE
Camp="Camping Freedom Bordeaux";
36
The query that produces the output that could be used to give details of all the
bookings at Loche Castle Camping including the dates of the bookings
SELECT * FROM customer_bookings WHERE Camp = "Loche Castle Camping";
37
Adding a constraint so that only people over 18 can be customers
Constraint added on the create statement
CREATE TABLE customers (Customer_Id INTEGER NOT NULL PRIMARY KEY,
Customer_Name VARCHAR (50), Age INTEGER, CHECK (Age>=18));
38
TASK 9 – FUTURE DEVELOPMENT OF A DISTRIBUTED
DATABASE
1. An expansion of the organization's size - An expansion of the organization's size causes
the database to become more sophisticated. It makes it difficult and time-consuming to get
multiple records from a single database. In this scenario, a company may decide to
construct a distributed database with local databases. This way, work for the central
database is spread according to where it is needed, making row retrieval simpler and
quicker.
2. Making data accessible across the organization or sites through local autonomy of site
autonomy. Without relying on the central database, the sites or departments can manage
data internally.
3. Performance problems. Data can be quickly accessible on a site or department of a
company without having to get everything from the central database. It will speed up
internal business transactions, resulting in effective performance. Performance can also be
improved through distributed query processing.
4. Data Protection - Implementing distributed databases inside an organization can help to
boost data protection in that in the event of a fire, all data will be lost because they are not
kept across several organizational sites.
39
TASK 10 – EVALUATE USING THE GIBBS REFLECTIVE
CYCLE (1988) MODEL
In order to reduce data redundancy and establish logical data reliance, the work was reformed and
normalized to the 3rd UNF. Because to normalization, the data supplied by ABL TOURS &
SAFARIS vacation is now correctly formatted, resulting in high database transaction performance.
Specifications for ABL TOURS & SAFARIS Holidays
A MySQL database with the ability to store and retrieve data is required for ABL TOURS &
SAFARIS Holidays.
2. To enter client records and their reservations in various camps and units, a database is required.
3. The database must be able to examine every piece of information that is entered into the system.
4. Cost estimates for cleaning and maintenance activities should also be stored in the database.
5. A distributed database will help improve the efficiency of ABL TOURS & SAFARIS Holidays.
The fact that every aforementioned stipulation has been considered and implemented demonstrates
that the standards have been satisfied.
For the ABL TOURS & SAFARIS vacation project, I utilized MySQL to build a statement that
created a database and tables. Records were also added to the database using insert commands.
Views have been added to the database to make it simpler for users to get costs data for cleaning
and maintenance.
40
REFERENCE
The Trustees of Indiana University (2022) https://kb.iu.edu/d/ahux
Groff, J., Weinberg, P & Oppel, A. (1999) SQL the Complete Reference. 3rd Edition. The
McGraw-Hill Companies, United States, pp.247-270
Gibbs, G. (1988). Learning by doing: A guide to teaching and learning methods. Further
Education Unit
Wilton, P., Colby, J. (1969) Beginning SQL. 1st Edition. Wiley Publishing, Canada, pp.117-135
Astera Software. (2022) https://www.astera.com/type/blog/all-you-need-to-know-about-
database-design/
Nixon, R. (2012). Learning PHP, MySQL, JavaScript, and CSS. Sebastopol: O’Reilly Media.
w3schools.com. (n.d.). Retrieved November 1, 2022, from w3schools.com:
https://www.w3schools.com/PHP/php_mysql_update.asp

Database Design and Development 2022 00185501.docx

  • 1.
    A signed copyof this form must be submitted with every assignment. If the statement is missing your work may not be marked. I confirm the following details: CANDIDATE NAME: ABOU JAMI NGOME CANDIDATE ID NUMBER: P 00185501 QUALIFICATION: LEVEL 5 DIPLOMA IN COMPUTING (L5DC) UNIT: DATABASE DESIGN AND DVELOPMENT CENTRE: INSTITUTE OF ADVANCED TECHNOLOGY I have read and understood both NCC Education’s Academic Misconduct Policy and the Referencing and Bibliographies document. To the best of my knowledge my work has been accurately referenced and all sources cited correctly. I confirm that this is my own work and that I have not colluded or plagiarized any part of it. CANDIDATE SIGNATURE: DATE: 7TH NOVERMBER 2022
  • 2.
    2 CONTENTS TASK 1-DESCRIPTION OFBUSINESS....................................................................................................4 Tourism .....................................................................................................................................................4 ABL Tours and Safaris Database................................................................................................................4 System Requirements...............................................................................................................................5 Software Requirements............................................................................................................................5 TASK 2-ER AND DATA DICTIONARY ...................................................................................................6 Entity-Relationship Model ........................................................................................................................6 Data Dictionary for the Proposed System.................................................................................................7 TASK 3-NORMALIZATION ......................................................................................................................9 Normalization............................................................................................................................................9 TASK 4 ASSESSMENT OF DESIGN.......................................................................................................11 Requirements..........................................................................................................................................11 Functional ...............................................................................................................................................11 Non-functional........................................................................................................................................11 Mapped logical database design to physical database design. ..............................................................12 Derived data Representation..................................................................................................................12 TASK 5 – SCRIPTS TO CREATE TABLE STRUCTURES ....................................................................15 Tables in SQL and scripts as running in the programming environment................................................15 TASK 6 – DATA POPULATION..............................................................................................................18 The SQL insert scripts Data on all the bookings, and guests. .................................................................18 Data for resorts, camps, units, and unit types........................................................................................23 Data on all inventory items for the units................................................................................................24 Data on the facilities found at all the camps. .........................................................................................29 TASK 7 - ENHANCEMENT USING SQL................................................................................................30 TASK 8 – SQL REPORTS.........................................................................................................................31 The query that selects all the guests for a particular booking................................................................31 Statement changing Satpal Singh’s end date at Loche Castle Camping to 29 July 2018........................32 A statement that changes the name of customer ‘Mavis Kingdom’ to ‘Mavis Rickman-Kingdom’ .......33 The query shows all inventory items for all the deluxe caravans...........................................................34
  • 3.
    3 The query thatshows all the guests who are staying at Camping Freedom Bordeaux and which units they are staying at ..................................................................................................................................35 The query that produces the output that could be used to give details of all the bookings at Loche Castle Camping including the dates of the bookings..............................................................................36 Adding a constraint so that only people over 18 can be customers ......................................................37 TASK 9 – FUTURE DEVELOPMENT OF A DISTRIBUTED DATABASE..........................................38 TASK 10 – EVALUATE USING THE GIBBS REFLECTIVE CYCLE (1988) MODEL .......................39 REFERENCE..............................................................................................................................................40
  • 4.
    4 TASK 1-DESCRIPTION OFBUSINESS Tourism A tourism management system can assist you in planning the ideal trip because most people take vacations on holidays. Users get access to all pertinent information, including weather, location, events, and more, through the tourism management system. The main objective is to support tourism firms in managing clients, lodging, and other business-related factors. Both professional and business trips can be made use of the system. The proposed system keeps a central repository that may be utilized to book essential travel arrangements and instantly access data. ABL Tours and Safaris Database However a Safari and tours database management system was created to make front-desk activities easier, management functions better, and customer and reservation experiences better. A hotel can use the program to increase productivity and successfully handle activities including check-ins, check-outs, and reservation confirmations. The software's key features 1. Check-In/Check-Out Procedures 2. Customer/Guest Relationship Management 3. Rooms Administration 4. Reservations/Bookings 5. Adding, Editing, and Deleting System Users 6. Reports on paper
  • 5.
    5 System Requirements 1. APentium 4 processor with a clock speed of 1.3 GHz is required. 2. A minimum RAM capacity of 512MB is required. 3. A hard disk with at least 100 megabytes of free space. Software Requirements 1. Windows 7 or higher
  • 6.
    6 TASK 2-ER ANDDATA DICTIONARY An entity-relationship model for the proposed database system for ABL TOURS & SAFARIS Holidays. Entity-Relationship Model Customer Customer Id (PK) Customer Name Bookings Booking Id (PK) Unit Id (FK) Inventory Inventory Id (PK) Inventory Item Item Type Unit Id (FK) Units Unit Id (PK) Unit Name Unit Type 1 0… 0… 1 1 0… Customer Bookings Customer Id (FK) Booking Id (FK) Resort Camp Facility Start Date End Date 1 0…
  • 7.
    7 Data Dictionary forthe Proposed System. Customers Customer ID (PRIMARY KEY) Customer Name Age Bookings Booking ID (PRIMARY KEY) Customer ID (FOREIGN KEY) Resort Camp Facility Start Date End Date Unit ID (FOREIGN KEY) Units Unit ID (PRIMARY KEY) Unit Name Unit Type
  • 8.
    8 Inventory Inventory ID (PRIMARYKEY) Inventory Item Item Type Unit ID (FOREIGN KEY)
  • 9.
    9 TASK 3-NORMALIZATION Normalization This refersto the process of restructuring data of a database intending to ensure that there is no redundancy and data dependency are logical. UNF Customer Id Customer Name Age Booking Id Customer Id* Resort Camp Name Facility Start Date End Date Unit Id Unit Name Unit Type Inventory Id Inventory Item Item Type 2UNF Customer Id Customer Name Age Booking Id Customer Id* Unit Id* Resort Camp Name Facility Start Date End Date Inventory Id Inventory Item Item Type 3UNF Customer Id Customer Name Age Customer Id* Booking Id* Resort Camp Facility Start Date End Date Booking Id Unit Id* Unit Id Unit Name Unit Type
  • 10.
    10 Unit Id Unit Name UnitType Inventory Id Inventory Item Item Type Unit Id* Each entity in the ER diagram becomes a relation. A properly normalized ER diagram will indicate where intersection relations are needed. By using normalization, I made the tables smaller with no duplicate information in each table, that if you’re looking for something in particular, you don’t have to worry about the unwanted information, and go right away to the table with what you need and easily get what you need. The third normalization form is also for eliminating redundant data. |Having a highly normalized data schema brings about the following listed advantages; 1. Increased consistency. Information is stored in one place and one place only, reducing the possibility of inconsistent data. 2. Easier object-to-data mapping. Highly-normalized data schemas, in general, are closer theoretically to object-oriented schemas because the object-oriented goals of promoting high cohesion and loose coupling between classes result in similar solutions.
  • 11.
    11 TASK 4 ASSESSMENTOF DESIGN Requirements A good bookings system should satisfy a number of fundamental requirements, both practical and aesthetic. These are what they are: Functional 1. For each online reservation, create an account. 2. There should be just one user per account. 3. Enable users to look up and reserve the best available booking options. Accept the day and hour and check to see if any rooms are available at that time. 5. The email address you supplied should get a confirmation of your reservation. 6. Figure out and show the cost of housing and other utilities. 7. Reservation cancellation 8. Records for visitors are shown and modified. 9. Board and changing rooms Non-functional 1. Use encryption to stop bots from booking. 2. Results from searches should show within a fair amount of time. 3. When entering incorrect information, users should receive the necessary assistance to complete the required fields. 4. The system must be capable of receiving payments from various sources. 5. it’s readily available, effective, and easy to use. 6. Keep a log of all papers, activities, and responses.
  • 12.
    12 Mapped logical databasedesign to physical database design. Physical database design is the process through which a database is translated into a real-world system. However, many physical database attributes depend on the specifics and semantics of the target DBMS. Logical design can be carried out regardless of the final database platform. Physical design happens in two stages: 1. Includes pre-deployment design, table definitions, normalization, main and foreign key associations, and basic indexing (usually carried out by an application developer). 2. Physical database design, which is carried out after deployment (usually by a database administrator): this entails improving performance, reducing I/O, and streamlining the database. Derived data Representation ALTER TABLE bookings ADD Cleaning_Cost_Pounds INTEGER (11), ADD Maintenance_Cost_Pounds INTEGER (11); UPDATE bookings SET Cleaning_Cost_Pounds="1234", Maintenance_Cost_Pounds="2000" WHERE booking_id = "B2001"; UPDATE bookings SET Cleaning_Cost_Pounds="800", Maintenance_Cost_Pounds="1800" WHERE booking_id = "B2003";
  • 13.
    13 UPDATE bookings SET Cleaning_Cost_Pounds="750",Maintenance_Cost_Pounds="1750" WHERE booking_id = "B2009"; UPDATE bookings SET Cleaning_Cost_Pounds="600", Maintenance_Cost_Pounds="1600" WHERE booking_id = "B2010"; UPDATE bookings SET Cleaning_Cost_Pounds="500", Maintenance_Cost_Pounds="1500" WHERE booking_id = "B2013";
  • 14.
    14 CREATE VIEW costAS SELECT booking_id, unit_id, Cleaning_Cost_Pounds, Maintenance_Cost_Pounds, (Cleaning_Cost_Pounds+Maintenance_Cost_Pounds) AS Total_Cost_Pounds FROM bookings; CREATE VIEW pay_rate AS SELECT booking_id, unit_id, Total_Cost_Pounds,(Total_Cost_Pounds*0.1) AS Staff_Pay FROM cost;
  • 15.
    15 TASK 5 –SCRIPTS TO CREATE TABLE STRUCTURES Tables in SQL and scripts as running in the programming environment.
  • 16.
    16 CREATE TABLE bookings(Booking_Id CHARACTER (5) NOT NULL PRIMARY KEY, Unit_Id INTEGER, FOREIGN KEY (Unit_Id) REFERENCES units (Unit_Id)); CREATE TABLE customers (Customer_Id INTEGER NOT NULL PRIMARY KEY, Customer_Name VARCHAR (50), Age INTEGER, CHECK (Age>=18)); CREATE TABLE Customer_Bookings (Customer_Id INTEGER, Booking_Id CHARACTER (5), Resort VARCHAR (50), Camp VARCHAR (50), Facility VARCHAR (50), Start_Date VARCHAR (30), End_Date VARCHAR (30), FOREIGN KEY (Customer_Id) REFERENCES customers (Customer_Id), FOREIGN KEY (Booking_Id) REFERENCES bookings (Booking_Id)); CREATE TABLE units (Unit_Id INTEGER NOT NULL PRIMARY KEY, Unit_Name VARCHAR (30), Unit_Type VARCHAR (30));
  • 17.
    17 CREATE TABLE Inventory(Inventory_Id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, Inventory_Item VARCHAR (30), Item_Type VARCHAR (30), Unit_id INTEGER, FOREIGN KEY (Unit_Id) REFERENCES units(Unit_Id));
  • 18.
    18 TASK 6 –DATA POPULATION The SQL insert scripts Data on all the bookings, and guests.
  • 19.
  • 20.
  • 21.
    21 INSERT INTO customers(Customer_Id, Customer_Name, Age) VALUES ("2399", "Sally Harvey", "30"); INSERT INTO customers (Customer_Id, Customer_Name, Age) VALUES ("2400", "Robert Harvey", "28"); INSERT INTO customers (Customer_Id, Customer_Name, Age) VALUES ("2300", "Amie Johnson", "26"); INSERT INTO customers (Customer_Id, Customer_Name, Age) VALUES ("2301", "Mavis Kingdom", "29"); INSERT INTO customers (Customer_Id, Customer_Name, Age) VALUES ("1101", "Alison Walters", "34"); INSERT INTO customers (Customer_Id, Customer_Name, Age) VALUES ("1102", "Dennis Brown", "40"); INSERT INTO customers (Customer_Id, Customer_Name, Age) VALUES ("2111", "Satpal Singh", "24"); SELECT * FROM customers; INSERT INTO bookings (Booking_Id, Unit_Id) VALUES ("B2001", "9934"); INSERT INTO bookings (Booking_Id, Unit_Id) VALUES ("B2003", "4500"); INSERT INTO bookings (Booking_Id, Unit_Id) VALUES ("B2009", "5670"); INSERT INTO bookings (Booking_Id, Unit_Id) VALUES ("B2010", "2321"); INSERT INTO bookings (Booking_Id, Unit_Id) VALUES ("B2013", "2500"); SELECT * FROM bookings; INSERT INTO Customer_Bookings (Customer_Id, Booking_Id, Resort, Camp, Facility, Start_Date, End_Date) VALUES ("2399", "B2001", "Bordeaux", "Camping Freedom Bordeaux", "01-July-2018", "14-July-2018"); INSERT INTO Customer_Bookings (Customer_Id, Booking_Id, Resort, Camp, Facility, Start_Date, End_Date) VALUES("2399", "B2001", "Bordeaux", "Camping Freedom Bordeaux", "Swimming Pool, Games, Night Club, Mini-Golf", "01-July-2018", "14-July-2018");
  • 22.
    22 INSERT INTO Customer_Bookings(Customer_Id, Booking_Id, Resort, Camp, Facility, Start_Date, End_Date) VALUES("2400", "B2001", "Bordeaux", "Camping Freedom Bordeaux", "Swimming Pool, Games, Night Club, Mini-Golf", "01-July-2018", "14-July-2018"); INSERT INTO Customer_Bookings (Customer_Id, Booking_Id, Resort, Camp, Facility, Start_Date, End_Date) VALUES("2300", "B2003", "Bordeaux", "Camping Freedom Bordeaux", "Swimming Pool, Games, Night Club, Mini-Golf", "07-July-2018", "14-July-2018"); INSERT INTO Customer_Bookings (Customer_Id, Booking_Id, Resort, Camp, Facility, Start_Date, End_Date) VALUES("2301", "B2003", "Bordeaux", "Camping Freedom Bordeaux", "Swimming Pool, Games, Night Club, Mini-Golf", "07-July-2018", "14-July-2018"); INSERT INTO Customer_Bookings (Customer_Id, Booking_Id, Resort, Camp, Facility, Start_Date, End_Date) VALUES ("1101", "B2009", "Bordeaux", "Riverside Camping", "Swimming Pool, Cycle Hire", "07-July-2018", "14-July-2018"); INSERT INTO Customer_Bookings (Customer_Id, Booking_Id, Resort, Camp, Facility, Start_Date, End_Date) VALUES ("1102", "B2009", "Bordeaux", "Riverside Camping", "Swimming Pool, Cycle Hire", "07-July-2018", "14-July-2018"); INSERT INTO Customer_Bookings (Customer_Id, Booking_Id, Resort, Camp, Facility, Start_Date, End_Date) VALUES ("2111", "B2010", "Loire Valley", "Camping Freedom Loire", "Swimming Pool", "07-July-2018", "14-July-2018"); INSERT INTO Customer_Bookings (Customer_Id, Booking_Id, Resort, Camp, Facility, Start_Date, End_Date) VALUES ("2111", "B2013", "Loche", "Loche Castle Camping", "Swimming Pool, Cycle Hire, Restaurant", "15-July-2018", "22-July-2018"); mysql> SELECT * FROM Customer_Bookings;
  • 23.
    23 Data for resorts,camps, units, and unit types INSERT INTO units (Unit_Id, Unit_Name, Unit_Type) VALUES ("9934", "Capital", "Standard Caravan"); INSERT INTO units (Unit_Id, Unit_Name, Unit_Type) VALUES ("4500", "Elizabethan", "Deluxe Caravan"); INSERT INTO units (Unit_Id, Unit_Name, Unit_Type) VALUES ("5670", "Victoria", "Deluxe Caravan"); INSERT INTO units (Unit_Id, Unit_Name, Unit_Type) VALUES ("2321", "Glamour", "Small fixed tent"); INSERT INTO units (Unit_Id, Unit_Name, Unit_Type) VALUES ("2500", "Stanley", "Large fixed tent"); mysql> SELECT * FROM units;
  • 24.
    24 Data on allinventory items for the units.
  • 25.
  • 26.
  • 27.
    27 INSERT INTO inventory(Unit_Id, Inventory_Item, Item_Type) VALUES ("9934", "Set of Bed Sheets", "Beddings"); INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES ("9934", "Pillows", "Beddings"); INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("9934", "Coffee Maker", "Kitchen Equipment"); INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("9934", "Cutlery Set", "Kitchen Equipment"); INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("9934", "Crockery Set", "Kitchen Equipment"); INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("9934", "Pan Set", "Kitchen Equipment"); INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("4500", "Set of Bed Sheets", "Beddings"); INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("4500", "Pillows", "Beddings"); INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("4500", "Coffee Maker", "Kitchen Equipment"); INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("4500", "Cutlery Set", "Kitchen Equipment"); INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("4500", "Crockery Set", "Kitchen Equipment"); INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("4500", "Pan Set", "Kitchen Equipment"); INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("4500", "Sun Umbrellar", "Outdoor Equipment"); INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("4500", "Lounger Set", "Outdoor Equipment"); INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("5670", "Set of Bed Sheets", "Beddings");
  • 28.
    28 INSERT INTO inventory(Unit_Id, Inventory_Item, Item_Type) VALUES("5670", "Pillows", "Beddings"); INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("5670", "Microwave Oven", "Kitchen Equipment"); INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("5670", "Barbeque Set", "Outdoor Equipment"); INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("2321", "Pillows", "Beddings"); INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("2321", "Set of Bed Sheets", "Beddings"); INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("2321", "Barbeque Set", "Outdoor Equipment"); INSERT INTO inventory (Unit_Id, Inventory_Item, Item_Type) VALUES("2500", "Barbeque Set","Outdoor Equipment"); mysql> SELECT * FROM inventory;
  • 29.
    29 Data on thefacilities found at all the camps.
  • 30.
    30 TASK 7 -ENHANCEMENT USING SQL SELECT fields rather than SELECT * Many SQL developers use the shortcut SELECT * (read as "select all") when conducting exploratory queries to access all of the data in a table. However, if a table has a lot of fields and rows, it will strain the database's resources by searching a lot of pointless information. The database will only be queried for the data you need to fulfill your business requirements if you use the SELECT statement to direct it. In this case, the business requirements call for customer mailing addresses. For example: Inefficient: SELECT * FROM Customers This query may pull in other data also stored in the customer table, such as phone numbers, activity dates, and notes from sales and customer service. Efficient: SELECT customers.Customer_Id, customers.Customer_Name, customer_bookings.Booking_Id FROM customer_bookings FROM Customers
  • 31.
    31 TASK 8 –SQL REPORTS The query that selects all the guests for a particular booking. SELECT customers.Customer_Id, customers.Customer_Name, customer_bookings.Booking_Id FROM customer_bookings INNER JOIN customers ON customer_bookings.Customer_Id=customers.Customer_Id WHERE Booking_ID = "B2003";
  • 32.
    32 Statement changing SatpalSingh’s end date at Loche Castle Camping to 29 July 2018 UPDATE customer_bookings SET Start_Date = "29-July-2018" WHERE Customer_Id = "2111" AND Camp = "Loche Castle Camping";
  • 33.
    33 A statement thatchanges the name of customer ‘Mavis Kingdom’ to ‘Mavis Rickman-Kingdom’ UPDATE customers SET Customer_Name = "Mavis Rickman-Kingdom" WHERE Customer_Name = "Mavis Kingdom";
  • 34.
    34 The query showsall inventory items for all the deluxe caravans. SELECT units.unit_id, units.Unit_Type, inventory.Inventory_Item FROM units INNER JOIN inventory ON units.Unit_Id = inventory.Unit_ID WHERE Unit_Type = "Deluxe Caravan";
  • 35.
    35 The query thatshows all the guests who are staying at Camping Freedom Bordeaux and which units they are staying at SELECT customers.Customer_Name, customer_bookings.Booking_Id, customer_bookings.Camp, bookings.Unit_Id FROM ((customer_bookings INNER JOIN customers ON customer_bookings.Customer_Id = customers.Customer_Id) INNER JOIN bookings ON customer_bookings.Booking_Id = bookings.Booking_Id) WHERE Camp="Camping Freedom Bordeaux";
  • 36.
    36 The query thatproduces the output that could be used to give details of all the bookings at Loche Castle Camping including the dates of the bookings SELECT * FROM customer_bookings WHERE Camp = "Loche Castle Camping";
  • 37.
    37 Adding a constraintso that only people over 18 can be customers Constraint added on the create statement CREATE TABLE customers (Customer_Id INTEGER NOT NULL PRIMARY KEY, Customer_Name VARCHAR (50), Age INTEGER, CHECK (Age>=18));
  • 38.
    38 TASK 9 –FUTURE DEVELOPMENT OF A DISTRIBUTED DATABASE 1. An expansion of the organization's size - An expansion of the organization's size causes the database to become more sophisticated. It makes it difficult and time-consuming to get multiple records from a single database. In this scenario, a company may decide to construct a distributed database with local databases. This way, work for the central database is spread according to where it is needed, making row retrieval simpler and quicker. 2. Making data accessible across the organization or sites through local autonomy of site autonomy. Without relying on the central database, the sites or departments can manage data internally. 3. Performance problems. Data can be quickly accessible on a site or department of a company without having to get everything from the central database. It will speed up internal business transactions, resulting in effective performance. Performance can also be improved through distributed query processing. 4. Data Protection - Implementing distributed databases inside an organization can help to boost data protection in that in the event of a fire, all data will be lost because they are not kept across several organizational sites.
  • 39.
    39 TASK 10 –EVALUATE USING THE GIBBS REFLECTIVE CYCLE (1988) MODEL In order to reduce data redundancy and establish logical data reliance, the work was reformed and normalized to the 3rd UNF. Because to normalization, the data supplied by ABL TOURS & SAFARIS vacation is now correctly formatted, resulting in high database transaction performance. Specifications for ABL TOURS & SAFARIS Holidays A MySQL database with the ability to store and retrieve data is required for ABL TOURS & SAFARIS Holidays. 2. To enter client records and their reservations in various camps and units, a database is required. 3. The database must be able to examine every piece of information that is entered into the system. 4. Cost estimates for cleaning and maintenance activities should also be stored in the database. 5. A distributed database will help improve the efficiency of ABL TOURS & SAFARIS Holidays. The fact that every aforementioned stipulation has been considered and implemented demonstrates that the standards have been satisfied. For the ABL TOURS & SAFARIS vacation project, I utilized MySQL to build a statement that created a database and tables. Records were also added to the database using insert commands. Views have been added to the database to make it simpler for users to get costs data for cleaning and maintenance.
  • 40.
    40 REFERENCE The Trustees ofIndiana University (2022) https://kb.iu.edu/d/ahux Groff, J., Weinberg, P & Oppel, A. (1999) SQL the Complete Reference. 3rd Edition. The McGraw-Hill Companies, United States, pp.247-270 Gibbs, G. (1988). Learning by doing: A guide to teaching and learning methods. Further Education Unit Wilton, P., Colby, J. (1969) Beginning SQL. 1st Edition. Wiley Publishing, Canada, pp.117-135 Astera Software. (2022) https://www.astera.com/type/blog/all-you-need-to-know-about- database-design/ Nixon, R. (2012). Learning PHP, MySQL, JavaScript, and CSS. Sebastopol: O’Reilly Media. w3schools.com. (n.d.). Retrieved November 1, 2022, from w3schools.com: https://www.w3schools.com/PHP/php_mysql_update.asp