Is this really 1NF?

Is this table 1NF, even if CourseNo and StudentNo ?

Student(StudentNo, StudentName, Major, CourseNo, CourseName, 
InstructorNo, InstructorName, InstructorLocation, Grade)

1 NF is: any attribute should be an atomic. So yes.

But I asume, DB structure is not optimal due: CourseName, InstructorName, InstructorLocation.

1 Like

I got it from: https://opentextbc.ca/dbdesign01/chapter/chapter-12-normalization/, which does something else, breaks it into two tables and calls it 1NF, is that correct, so this isn’t 1NF from beginning, it is 0NF, right?

1 Like

Wow, those examples are a little clunky.

Technically, yes, it is in 1NF. All first normal form is when the structure does not have any data that can be broken down further.

So let’s take the example you gave. That’s basically giving all information for a student in one lump. If the data is NOT in 1NF, it would be something like this:

StudentNo, StudentName, Major, Courses, Instructors, Locations, Grades
1, "John Smith", "Business", "Intro To Math, Intro To Business,Intro To Music", "Jane Miller, Kamilla Purdy, Bud Nelson", "Bakeless, Sutliff, Old Science", "A,B,A"

That’s a bit confusing if you’d want to get the Intro to Business data. So the 1NF is going to look at all the fields that are repeating and splits them into different rows. So the 1NF table is now going to have information like this:

StudentNo, StudentName, Major, CourseNo, CourseName, InstructorNo, InstructorName, InstructorLocation, Grade
1, John Smith, Business, 123, Intro To Math, 443, Jane Miller, Bakeless, A
1, John Smith, Business, 234, Intro To Business, 542, Kamilla Purdy, Sutliff, B
1, John Smith, Business, 456, Intro To Music, 664, Bud Nelson, Old Science, A

So in both cases, you COULD extract the same data, but it’s much trickier and much more likely to be wrong.

If you want a different site which has demonstrates this topic in a little clearer manner (to me at least), you can try https://www.guru99.com/database-normalization.html

1 Like