2

Does this table comply with 1NF, even if CourseNo and StudentNo?

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

2 Answers 2

4

If all the attributes/columns of that relation/table always contain atomic values (i.e., they accept exactly one value —neither no value, nor two or more, nor NULL marks— of the corresponding simple domain1, 2 per tuple/row), then yes, that relation/table meets first normal form (1NF); otherwise, no, it is not in 1NF, it is unnormalized.

Naturally, I do not know the informational characteristics of the business environment of relevance (e.g., what meaning is ascribed to each attribute/column by the end users and business experts, how each attribute/column is associated with the others, etc.), so who knows.

The question so far lacks any sample values (paramount factor to determine the respective domains), lacks any description about the business scenario at hand, lacks details about how the data points of significance are associated with each other, etc. (yes, the attributes/columns are represented by certain words, but the same word may carry different meanings in different contexts, thus an unrelated reader cannot know with exactitude what their connotations are in the scenario under consideration); therefore, as the post stands, it is impossible to evaluate properly the relation/table included in it.

The fact that the question does not contain that kind of necessary information is understandable if you are starting to learn about normalization according to the relational paradigm, but be aware that making guesses when laying out a database is counterproductive. In this regard, it is worth to point out that working closely with the business experts is indispensable in any professional database design project (including normalization at the logical layer, of course).

In case you are involved in a training/school course, I would highly recommend that you request an appropriate contextualization of the exercises from your teacher. If, on the contrary, you are learning on your own, you should look for sound materials in the relational field to optimize your efforts (this advice is more fitting now that you have clarified via comments that you are learning by yourself).

In agreement with the deliberations above, it is opportune to remark that relational database design is a craft that demands high precision.


1 Basically speaking, a domain is a set of values of the same type. N constraints can be attached to a domain. N relations/tables of a database can have n attributes/columns which draw their values from the same domain. An attribute/column can have, in turn, specific constraints only applicable to itself.

2 A domain is simple if (a) it is not comprised of relations/tables and (b) its values cannot be decomposed by the database management system. Avoiding non-simple domains when delineating a database is useful so as to take full advantage of the declarative power of a data sublanguage, which in practice facilitates the implementation of constraints and manipulation operations.

2
  • I am learning on my own, I am only 14 years old. Oct 1, 2019 at 3:34
  • That clarifies several points, then. I remark my suggestion about seeking for sound material, this is the best time to do so as you are starting to learn about these topics.
    – MDCCL
    Oct 1, 2019 at 22:52
0

The table comply with 1NF. The page you link to (https://opentextbc.ca/dbdesign01/chapter/chapter-12-normalization/) is incorrect. The page states that the example has a "repeating group" because there can be multiple courses per student and therefore is not in 1NF. But this is a misunderstanding of 1NF.

1NF is about eliminating domains which have relations as elements. This means no columns should have tables as values. A "repeating group" in the context of 1NF is another word for table-valued attribute.

It does not seem like any of the columns in the example have tables as values, so the example is in 1NF.

The example violates 2NF though. Assuming SudentNo and CourseNo combined is key, then the other attributes only depend on parts of the keys. So you have to split it into three tables to comply with 2NF.

Basically the page confuses 1NF with 2NF.

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.