In data modeling, do surrogate keys (system-generated identifiers) carry meaningful information for end users, or are they intentionally devoid of business meaning?
-
AIncorrect
-
BCorrect
-
CThey are meaningful only in reporting
-
DThey become meaningful after indexing
-
EThey are meaningful only to the database engine
Answer
Correct Answer: Incorrect
Explanation
Introduction / Context:Choosing primary keys is central to relational design. Surrogate keys and natural keys behave differently. This item checks whether you recognize that surrogate keys are deliberately non-semantic identifiers, created to uniquely identify rows without encoding business meaning.
Given Data / Assumptions:
- A surrogate key is typically an integer or UUID generated by the system.
- Natural keys are based on business attributes (e.g., email, SKU).
- End users value stable, interpretable attributes, not arbitrary IDs.
Concept / Approach:Surrogate keys are non-meaningful by design. They simplify joins, avoid composite keys, and remain stable even when business attributes change. End users usually do not interpret them; instead, users rely on descriptive columns (names, codes) for meaning. Therefore, the statement that surrogate keys “have much meaning for users” is false.
Step-by-Step Solution:
Define surrogate key: system-assigned, uniqueness only.Assess user meaning: no embedded business semantics.Compare to natural key: meaningful, but may change or be composite.Conclude: statement is incorrect.Verification / Alternative check:Survey user-facing reports: they display names/codes, not internal row IDs. Database metadata also treats surrogate keys as opaque identifiers.
Why Other Options Are Wrong:
- “Correct” contradicts the purpose of surrogates.
- “Meaningful only in reporting” or “after indexing” conflates performance with semantics.
- “Meaningful only to the database engine” still implies meaning; engines use them for identity, not semantics.
Common Pitfalls:Mistaking human-readable sequences (e.g., invoice numbers) for surrogates; conflating usability (short numbers) with semantic meaning; exposing surrogate keys in public APIs unintentionally.
Final Answer:Incorrect