NORMIT: a data normalisation tutor
Overview of NORMIT
NORMIT is an ITS that teaches data normalisation. NORMIT is a problem-solving environment in which students can improve their skills. We assume that students would already be familiar with the data normalisation theory from lectures, but the system does provide some support for acquiring domain knowledge.
We require the student to go through the following steps in NORMIT:
- Determine candidate keys: the student needs to analyze the given table and functional dependencies to determine all candidate keys. A candidate key is an attribute or a set of attributes that has two properties: uniqueness (its value is unique within the table) and irreducibility (no attribute can be removed from the key so that each value of the key is still unique).
- Determine the closure of a set of attributes: if the student is unsure whether a set of attributes makes a candidate key, he/she may compute the closure of that set under the given set of functional dependencies.
- Determine prime attributes (a prime attribute is an attribute that belongs to any candidate key).
- Simplify functional dependencies: if any of the given functional dependencies has more than one attribute on the right-hand side, the student needs to turn it into as many dependencies as there are attributes on its right-hand side (this step is the application of the decomposition rule).
- Determine the normal form the table is in. During this task, when necessary, the student will also be asked to specify functional dependencies that violate normal forms.
- If necessary, decompose the table so that all tables are in the Boyce-Codd normal form. For decomposition, we use the relational synthesis algorithm.
NORMIT is an adaptive system. The tailoring of instruction is done in two ways: by adapting the level of complexity of problems and by generating informative feedback messages.
The architecture of the system is illustrated in the following figure: