Normalization is a formal process for deciding which attributes should be grouped together in a relation (Elmasri & Navathe, 1994). It involves decomposing relations with anomalies to produce smaller, well-structured relations.
Three problems usually arise in databases where relations are not normalized. First we could have insertion anomaly, this is where adding new rows forces the user to create duplicate data in the database. Secondly we have modification anomaly, i.e. where changing data in a row forces us to make changes to other rows because of duplication. Finally we have deletion anomaly which means that when we delete rows we may cause a loss of data that would be needed for other future rows (Connoly & Begg, 2005).
First Normal Form (1NF) means that all multi-valued attributes are removed, so that we have a single value at the intersection of each row and column of the relation table. Second Normal Form (2NF) means we apply the rule for 1NF then we remove all partial functional dependencies. Third Normal Form means we apply the rules for 2NF then we remove all transitive dependencies.
ASSIGNMENT – client-id#, consultant-id#, start-date, work-hours, job-code, rate-per-hour is in 2NF (second normal form). This is because rate-per hour is transitively dependent on job-code. Therefore to make ASSIGNMENT into third normal form (3NF) we remove rate-per-hour from its attributes to end up with ASSIGNMENT – client-id#, consultant-id#, start-date, work-hours,