Reverse engineering definition: is reverse engineering the process of reading an existing database schema and generating a data model from that schema?
-
ACorrect — reverse engineering derives a data model from an existing schema
-
BIncorrect — reverse engineering creates code from a model, not vice versa
-
CApplies only to object databases
-
DDepends solely on whether ER notation is crow’s foot or IE
Answer
Correct Answer: Correct — reverse engineering derives a data model from an existing schema
Explanation
Introduction / Context:Reverse engineering is a standard activity when inheriting legacy systems or redesigning existing databases. It helps teams understand entities, keys, and relationships embodied in a live schema.
Given Data / Assumptions:
- You have access to the DB schema (tables, columns, constraints).
- Tools or techniques analyze PK/FK structures to infer a model.
- The goal is a conceptual/logical representation independent of vendor specifics.
Concept / Approach:Reverse engineering maps tables to entities, columns to attributes, PKs to identifiers, and FKs to relationships. Associative tables are recognized for many-to-many relationships, and additional rules (unique constraints, check constraints) are captured as model constraints.
Step-by-Step Solution:Extract schema metadata.Identify entities and their identifiers from PKs/unique constraints.Derive relationships from foreign keys and cardinalities.Refine the model by naming standards and business semantics.
Verification / Alternative check:ER tools can automatically generate diagrams from schema and then allow manual adjustments for business meaning.
Why Other Options Are Wrong:Forward engineering is the opposite (model → schema). Database type and notation style do not change the definition.
Common Pitfalls:Assuming schema names always match business semantics; overlooking constraints that imply optionality or exclusivity.
Final Answer:Correct — reverse engineering reads the schema to produce a data model.