The goal of this activity is for you to practice the technique of using functional
dependencies to normalize a relational database schema and for you to take an
information source and normalise from UNF to 3NF.
We will start with the universal schema, i.e., a single relation database schema, where all
the attributes of interest belong to the single relation in the database schema. However,
we could start from a partially normalized schema as well. In the next task given the
information source you are to undergo the normalisation process to create new relations
that progressively become strong to help avoid insert, update and delete anomalies.
This technique is often applied in real-world software development by a database
designer when a relational database schema already exists but needs expansion, or else
needs to be revised if it has been otherwise modified.
The outcome of this step is a normalized relational database schema.
Tasks 01:
Consider the universal relation:
$$R = \{A,B,C,D,E,F,G,H,I,J\}$$
and the set of functional dependencies:
$$R = \{AB \rightarrow C,A \rightarrow DE, B \rightarrow F, F \rightarrow GH, D \rightarrow
IJ \}$$
- What is the key for \(R\)? Explain your answer.
- Decompose \(R\) into 2NF, then 3NF relations. Explain your decisions.
Tasks 02:
Consider the following information source:
- Show the information source as a table with the associated columns and data in
UNF. Include a short description of the process.
- Convert from UNF to 1NF and show the resulting relations. Include a short
description of the process
- Convert from 1NF to 2NF and show the resulting relations. Include a short
description of the process
- Convert from 2NF to 3NF and show the resulting relations. Include a short
description of the process