IMAT5103 - Database Systems and Design - Database Modelling Techniques - Assessment
- Subject Code :
IMAT5103
- Country :
United Kingdom
Assessment Task:
The learning outcomes that are assessed by this coursework are:
1. Select and analyse a problem domain so as to identify data requirements in businesses.
2. Design and implement a database system for the identified requirements using database modelling techniques and appropriate data description and manipulation languages.
Tasks
You are to develop a database design (both conceptual and logical) for ABC’s bookings system, and then implement and subsequently query an ORACLE database that is derived from your database
design.
Task 1: Provide a conceptual database design for ABC’s bookings database system
The first task is to develop an EER Diagram that captures the detailed requirements for ABC’s bookingsdatabase system The EER Diagram needs to show any weak and strong entities, the primary keys for strong entities, and any relationships between entities (including any generalisation: specialisation structures). *:* relationships must be decomposed, and any actual traps identified should be eliminated using appropriate methods. For each entity, there should be an associated written list of all the attributes that the entity possesses which are not written on the EER Diagram. Any assumptions made during conceptual database design (i.e., anything that you assume that is not written in the ABC scenario) should be listed.
Task 2: Logical Database Design and DB creation/manipulation
There are five components to this task:
Task 2.1: Provide a Logical Database Design for ABC’s bookings database system
From your conceptual database design, derive a corresponding set of well-normalised tables. Remember to indicate all primary and foreign key fields for each of the tables using suitable and consistent notation. All key and any non-key attributes should be listed within each table.
Task 2.2: Create the tables using Oracle DBMS
You need to create all the tables that you identified within your logical database design. Make sure the appropriate fields are defined as key, and that other suitable data integrity rules are enforced.
Each of your tables should contain your user name as part of the table name. E.g. if your user name is ‘mit13sf’, then if you needed a Booking table then you would create a table ‘mit13sfBooking. (Hint: make sure you create the tables in an appropriate order – for instance, those that have foreign keys
cannot be created first – why? Think about it!).
Task 2.3: Create the four most useful indexes on your tables
You need to create a total of FOUR appropriate indexes on the tables using the CREATE [UNIQUE] INDEX statement. (Hint: it may be useful to consider what queries you wish to perform in Task 2.5 first, and do not forget that primary keys do not need any user-defined indexes as these are provided automatically by Oracle). Write a short explanation as to why you decided to create each particular
index.
Task 2.4: Data Population
Using suitable Oracle statements, populate your Oracle tables with some fictitious yet appropriate test data (about FIVE records per large table and TEN records per small table (or as many rows as is
relevant) should be enough).
Task 2.5: SQL Query writing
Define and run SIX queries of your choice (but appropriate to the scenario). Each query should require TWO or more of the following querying facilities, (and all of these facilities should be used at least once in your set of queries) and should be properly justified as to why the query would be useful to the ABC Hotel:
o Selection of particular table columns o Inner Join of at least 2 tables o Outer Join of at least 2 tables
o Use of count and/or another similar mathematical expression o Use of a sorting/ordering facility o
A condition using “<”, “>”, LIKE etc. o A condition using IN, NOT NULL, or similar. o A sub-query