volume_mute
An attribute "Age" is found in a "Customer" entity. Why might a BA recommend changing this to "Date of Birth"?
publish date: 2026/03/25 12:14:57.435024 UTC
volume_mute
Correct Answer
"Age" is a derived attribute that changes constantly; "Date of Birth" is static data
Explanation
In data modelling, "Age" is a classic example of a derived attribute — its value is not stored directly but calculated from another piece of data (Date of Birth minus today's date). This makes it problematic to store for several reasons:
- It becomes immediately stale. The moment you store someone's age as 34, it is wrong on their next birthday. Every stored value would need to be updated constantly across potentially millions of records.
- It creates data integrity risk. If the update process misses even one record, the data is inconsistent and untrustworthy.
- It introduces redundancy. Storing both Date of Birth and Age means the same real-world fact is represented twice, violating the principle of a single source of truth.
"Date of Birth" by contrast is static — it never changes after it is recorded. Age can always be accurately derived from it on demand at query time (e.g. DATEDIFF(TODAY, DateOfBirth)), so there is no need to store it at all.
This is also why ERD notation marks derived attributes with a dashed ellipse rather than a solid one — to signal that the value is computed, not stored.
Reference
go-math-science.com
