Difficulty: Easy
Correct Answer: Applies — each component of a composite attribute becomes its own field
Explanation:
Introduction / Context:
Composite attributes (for example, a full address) contain multiple subcomponents (street, city, state, postal_code). Good relational design favors representing each subcomponent as its own field to enable precise querying, indexing, validation, and integrity.
Given Data / Assumptions:
Concept / Approach:
Decomposing a composite attribute improves data quality and performance: constraints (e.g., postal code format), selective indexes (e.g., on city or postal_code), and more granular analytics. Storing the whole composite in one field makes filtering difficult and can require brittle string parsing.
Step-by-Step Solution:
Identify composite attributes (e.g., Address).Split into atomic components (street, city, state, postal_code).Create separate fields with appropriate datatypes and constraints.Index frequently searched components (e.g., postal_code).Use views to recompose for display if needed.
Verification / Alternative check:
Confirm that queries like “find all customers in state = CA and city = San Jose” run efficiently without full-text parsing, demonstrating the benefit of separate fields.
Why Other Options Are Wrong:
Single-field storage (option b) reduces flexibility. Numeric-only (option c) is incorrect; text components benefit heavily. Spreadsheets (option d) are not the target platform. Denormalization (option e) is unrelated; decomposition is a normalization step.
Common Pitfalls:
Cramming multiple values into one field; inconsistent parsing; ignoring internationalization (e.g., different address formats).
Final Answer:
Applies — each component of a composite attribute becomes its own field
Discussion & Comments