Is a continuous-to-categorical functional dependency a violation of 3NF?

45 Views Asked by At

Let's say I have a table in my database with attributes:

{ int Student_Id (primary key), float Grade, category Level },

where the category of the Level variable is completely determined by the Grade via a piecewise function. Something like:

Level = "Top" if 90 <= Grade <= 100;

"High" if 80 <= Grade < 90;

"Basic" if 60 <= Grade < 80; and

"Low" if 0 <= Grade <60.

Obviously there is a functional dependency between non-key attributes (Grade -> Level), which appears to be a 3NF violation. To eradicate that dependency, I would have to create a new table { Grade, Level }, but that table would be practically infinite, because the grades can have any real value between 0 and 100.

Also, the variable Level is very important, so I don't want to do without it in my database, having to "calculate" it every time I need it.

Is there an official way to deal with this type of dependency?

0

There are 0 best solutions below