I am learning Normalization in class. And I found this exercise in this article here
It asks to normalize the following table to 3NF.
This is how I did it.
I would like to know if the way I have organized the tables is correct or not.
I am learning Normalization in class. And I found this exercise in this article here
It asks to normalize the following table to 3NF.
This is how I did it.
I would like to know if the way I have organized the tables is correct or not.
No, it's not.
First, normalization through BCNF is based on functional dependencies. You haven't identified any functional dependencies.
Second, normalization never introduces new attributes that weren't in the relation you started with. You introduced the new attributes "sFirstName", "sLastName", "dateOfBirth", "tuteId", "tutorName", "bookId", and "bookName".
Finally, online exercises like the one you linked to aren't very useful. The author clearly expects you to derive all the functional dependencies from the small table provided, but you can't do that reliably unless the data are representative. For example, you can determine by inspection that Room->Date, but in the real world that doesn't make much sense.
Normalization is based on semantics--what does the data mean? What does "Date" mean here? The data supports all these interpretations. (And more.)
Based solely on the data, you could claim that Grade->Date, but that makes no sense. Nonsense like that tells you the data isn't representative, and that you can normalize the table only by using information that the author didn't provide.