3rd Normal Form

Within the EmployeeHours entity, Date, ProjectName, TaskName, Hours and TotalHours are repeating groups because they occur many times within the week. Therefore these data need to be normalized out. ProjectId is assigned as a candidate identifier because this is "Project data".

The EmployeeProject entity is then examined for repeating groups. Date, TaskName and Hours repeat. Normalize them out to EmployeeTask. Now normalize the repeating group "Hours" out to EmployeeTaskHours. There are now no repeating groups in the normalized entity list.

The analyst creates the new entity and assigns it a meaningful name. The name of the original entity, EmployeeTimeReport is modified to reflect the data it now contains.

I find that it is impossible to separate normalization and data modeling, so I start sketching out the model as I go along. When I look at that data, I see this model.

Since a new entity was created by the analyst, it must now be examined to see if it is in 1st Normal Form. This process is highly iterative..