0

Here are the columns of an SQL Table:

Course_Code
Course_Name
Tutor_ID
Tutor_Name
Student_No
Student_Name
DateOfBirth
Gender
LastAttDate

By checking all the NF1 requirements below, I believe this table is NF1.

All data is atmoic
There is no grouping of columns. 
Each column can be identified by a primary key. (Course_Code)

But in this website where I got that question, they make some modifications on the table to make it NF1. I believe that these modification was unnecessary and table was already in NF1.

am I missing something here?

2
  • "Each column can be identified by a primary key. (Course_Code)", does not the checkbox indicate the primary key? If that is the case, (Course_Code, Student_no) is the primary key Commented Jan 19, 2018 at 9:18
  • @Lennart I think the meaning of the checkbox is: CourseCode identifies uniquely a course an StudentId identifies uniquely a student.
    – miracle173
    Commented Jan 20, 2018 at 19:25

1 Answer 1

5

In the site that you have cited, note the parentheses at the right of the attributes in the second part of the initial column:

enter image description here

There is no context in the picture, but the obvious interpretation of such parentheses is that they denote repeated attributes: in other words, for each course (for which there is only one tutor), there are multiple students. So the notation (actually not very clear) should denote a non-flat situation, in which the 5 attributes are repeated.

This is clearly not a relation (or a "table" in 1NF), and the first step in the normalization is to divide these data in two different tables, one for courses and one for students, and of course add to each row of the second table, which should represent a student, a foreign key towards the course to relate that particular student to a particular course.

Related Q & A on Computer Science SE: Does 2NF require 1NF?

2
  • Thanks Renzo, then the section between 4.50 to 6.10 of this video confused me. The person applies NF1, but an item attribute can occur many times for a customer. But in the video it doesn't divide the table into 2, and says that the table is in NF1. Do you think it should be divided or am I missing something there?
    – HOY
    Commented Jan 19, 2018 at 9:30
  • @HOY, 1NF requires that each value is a unique value, not repeated or complex. The fact that the same customer has different item is not in contrast with the 1NF if it is reapeated in different rows, since each row has a single value.
    – Renzo
    Commented Jan 19, 2018 at 11:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.