Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
DATABASE CONCEPTS
Submission 1
Assumptions
Note: The blue coloured entities are entities identified for future development and/or not covered by this case study.
Sales (Orders) – The main scope of this database is to record sales of food and drink, ORDER table and
ORDER_DETAILS table will record the sales.
Beverages – Because they are only two types of beverages will make more sense to record the drinks in same table
with an attribute (e.g. beverage type) and have an ENUM data type (VARCHAR2 with CHECK in Oracle) as ‘ALC’ and
‘NON-ALC’.
Food – I’m assuming that a customer can order additional elements to the menu. In this table will be stored individual
foods with their prices (e.g. chips, salad, bread etc.). Selecting from individual food items they can be added to the
order which can contain one or more menus, beverages and individual products.
Employees – I’m assuming that the CCP will record all employees details (e.g. name, address, contact etc.) regarding
of the employment type (full-time/FT or part-time/PT), a single table with employee details and an ENUM attribute as
staff type with the values of FT/PT should suffice. However, if the employment schema is more complicated I would
clarify this with the CCP.
SHIFTS - I’m assuming that a part-time staff (e.g. cleaners) can have different shifts in different locations in the same
area (e.g. CCP could have several locations in Portsmouth) or having double shift at the same location.
Figure 2 - Example staff shift
Therefore, a cleaner can have a rota like in Figure 2. Figure 3 - Shift overlap example
However, recording the shifts could generate shifts
overlapping and also an M: M relationship because staff can have multiple shifts at one location and a location would
have multiple staff with multiple shifts.
I’m assuming that REGION and LOCATION entities will be very rarely U/D. Therefore, no analysis was
conducted because it will not have any impact over database performance.
In Figure 7 we can notice the transaction analysis form for the busiest transaction of the database, placing an
order. This analysis is done assuming that every location has 30 orders/h in peak times (30 orders x 60 locations),
creating a total number of transactions of 1800/h, with a total number of 14400/h references.
For the transaction ’adding a shift’ to the database, I’m assuming that is done well in advance and the
transactions will not run frequently. I’m assuming that the entries will be once per month with minimum updates
during the month. Therefore, it will not have any significant performance impact to the daily use of the database.
Transaction: Placing an order by selecting location, shift, menu, beverage and food
TRANSACTION VOLUME
Average: 600/hour
Peak 1: 1800/hour (between 07AM – 10AM)
Peak 2: 1800/hour (between 12PM – 2PM)
Peak 3: 1800/hour (between 6PM – 8PM)
Number of reference
Type of
No. Name Per
Access Per Tran.
Period
1 Entry-requisition ORDER C 1 1800
2 Requisition LOCATION R 1 1800
3 Requisition SHIFT R 1 1800
4 Entry-requisition ORDER_DETAILS C 1 1800
5 Requisition MENU R 1 1800
6 Requisition BEVERAGE R 1 1800
7 Requisition FOOD R 1 1800
8 COMMIT write 1 1800
Total number of references 8 14400
Figure 7 - Transaction analysis form
On another note, in the future, CCP could plan to implement a data warehouse for analytic purposes (a
decision support system). Hence, investing in a different DBMS will not be necessary, because Oracle offers full
support for data warehousing (Oracle, 2017).
If we are looking at the transaction analysis we can notice that on average (at this point) the database perform
240 references per minute in peak time, and adding substantially more locations will increase the number of
transactions. Oracle RDBMS supports on average 100,000 transactions per minute with a top performing benchmark
of over 4m transactions per minute (Burleson, 2017). However, we must be aware that the high performance of a
database is closely linked to the hardware performance and hardware type (e.g. a SSD storage will be significantly
faster than an HDD storage type or an 8 core CPU will have a better performance than a 4 core CPU both of them with
the same speed).
Hardware
Oracle offer all-in-one solution with their own servers, optimized hardware, Intel® Xeon® Processor with up
to 24 cores, an average of 32GB RAM memory/core and 6 TB of main memory (Oracle, 2017). The servers can be
rented or bought. Therefore, investing time and money in new servers/config will be unnecessary. However, if CCP
decides that they would prefer to build their own servers from other brands/manufacturers, in order to optimize the
costs, Oracle RDBMS can be installed on any server configuration (Windows/Linux/AIX/HP-UX etc.) with a
minimum hardware requirements of 1GB RAM, HDD 5.22 GB (not taking in account the business required storage)
and a CPU with 550MHz. We can notice that the minimum requirements are very low and we must be aware that a
low performance system (server) will have impact over the overall database functionality. BMC, a very experience
company in IT management, states that the recommended hardware configuration for Oracle RDBMS should contain
at least 16 GB RAM and a CPU with 2.2 GHz with 4 cores and 16 threads (BMC, 2016).
Both approaches have advantages and disadvantages that must be discussed and clarified with CCP such as
using oracle server will have an initial low cost but on the long run can be proven very expensive, where using own
servers can have and initial very high cost but can save money overtime.
However, for CCP business I would recommend Oracle Server X7-8 System which is a modular system,
perfect compatible with Oracle RDBMS, prebuilt security features (e.g. prevents buffer overflow attacks; private
secure communication; hardware-enforced data execution prevention) and many more (Oracle, 2017). Adding
additional storage space at any point is very easy because the Oracle Server X7-8 System offers hot-swap
functionality.