I am trying to understand what BCNF is, and I have this attitude:
Student (id, ssn, email, name, surname)
Where
- id is the surrogateโs primary key with non-zero and automatic growth ,
- ssn is a unique key with a non-zero property and
- Email is also a unique key with a null value .
Is there something that BCNF violates, and if so, how can I overcome this situation with a better design?
EDIT
I am trying to write my functional dependencies, but please correct me if I am wrong.
There are three attributes that determine the rest, so it is confusing that ssn and email exist on both the left and right sides of the equations. It seems that this relationship is not in bcnf, but there must be something wrong :)
id -> (ssn, email, name, surname) ssn -> (id, email, name, surname) email -> (id, ssn, name, surname)
source share