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?