Re: Must we also create separate tables?

From: Walter Mitty <wamitty_at_verizon.net>
Date: Mon, 27 Oct 2008 11:49:32 GMT

<Srubys_at_gmail.com> wrote in message
> greetings
>
> My book claims that for table to be in 1NF, we must:
>
> * Eliminate remove repeating groups of data
> * Create separate tables for each group of related data and identify
> each row with a unique column ( the primary key )
>
>
> I know that for table to be in 1NF, we must remove repeating groups
> of data. But is it ( for relation to be in 1NF ) also required to
> create separate tables for each group of related data or is that just
> recommended and thus optional?
>
> Say we have non-normalized table STUDENT:
>
> STUDENT ( STUDENT#, STUDENT_NAME, SUBJECT1#, SUBJECT2#, SUBJECT1_NAME,
> SUBJECT2_NAME, TEACHER1_NAME, TEACHER2_NAME )
>
>
> I realize best thing to do would be to create two tables:
>
> STUDENT-SUBJECT ( STUDENT#, SUBJECT#, SUBJECT_NAME, TEACHER_NAME )
>
> STUDENT ( STUDENT#, STUDENT_NAME)
>
>
>
> But would the following table also be considered in 1NF:
>
> STUDENT ( STUDENT#, STUDENT_NAME, SUBJECT, SUBJECT_NAME, TEACHER )
>
> I realize the first option is much better, but my book gives an
> impression as if separate tables must also be created for related
> repeating groups of data in order for table to be 1NF compliant. Which
> doesn't make sense.
>
I have seen both treatments in books. I think you are right, although I haven't looked it over thoroughly. Once you begin to normal;ize to 2NF, 3NF, etc.
you will decompose the table(s) several times, and end up in the same place. Still, the alternative you present might be easier for students to grasp.

BTW, there is a kind of "decomposition" going on in the transition from the 0NF form to the single table 1NF you present. It's just not a table decomposition.
What's happening is that a row containing repeating groups is decomposed into multiple rows, each free from repeating groups. Received on Mon Oct 27 2008 - 12:49:32 CET

Original text of this message