1NF is atomicity, not redundancy (as for higher normal forms). Essentially, if all attributes are atomic, your table is in 1NF.
Obviously, whether the table depends on 1NF on what you define as atomic. What “atomicity” actually means is a matter of some disagreement, but I would suggest a pragmatic approach to each case and just ask:
In the context of the problem I'm trying to solve, does it make sense to have access to 1 of any part of the value, or do I always get access to the whole value?
If I always access the whole, it is atomic in this particular context.
In your example, you probably want to access first_name and last_name separately, so full_name will be non- full_name , and this will cause a 1NF violation. If, however, you know that you will never need access to the first and last name separately, then you can only have full_name and not violate 1NF.
1 “Access to” meaning should be understood quite broadly here. Perhaps this would mean reading it from the database, but you could also use it in a restriction or index it, etc.
source share