Eliminate Redundant Data
In the "Database Relation" above, the primary key is made up of the D-ID and the Emp-ID. The database-name relies only on the D-ID. The similar database-name will appear redundantly every time its associated D-ID appears in the Database Relation. The database relation has redundancy, for example D-ID value 4 is oracle is repetitive twice. In addition, it also experiences insertion anomaly that is we cannot enter Sybase in the relation as no employee has that skill.
The deletion anomaly also exists. For instance, if we remove employee with Emp-ID 3; no employee with FoxPro knowledge lefts and the information that D-ID 3 is the code of FoxPro will be gone.
To avoid these troubles, we require second normal form. To achieve this, we isolate the attributes depending on both parts of the key from those depending only on the D- ID. This result in two relations: "Database" which gives the name for every D-ID,
and "Emp-database" which lists the databases for each employee. The employee relation is already in 2NF as all the EMP-ID determines all different attributes
Employee Relation
|
Emp-ID
|
Emp-Name
|
1
|
Gurpreet Malhotra
|
2
|
Faisal Khan
|
3
|
Manisha Kukreja
|
4
|
Sameer Singh
|
Emp-database
Relation
|
Emp-ID
|
D-ID
|
2
|
1
|
4
|
2
|
3
|
3
|
1
|
4
|
4
|
4
|
|
|
Database Relation
|
D-ID
|
Database
|
1
|
Access
|
2
|
DB2
|
3
|
FoxPro
|
4
|
Oracle
|