Table of Contents:
What is a Data Model?
Data Model is an abstract representation of an aspect of real world in the form of a list of data elements and their relationships.
Data may be modeled using various techniques - Entity-Relationship Diagrams in relational modeling, UML Class Diagrams in object-oriented modelling, Data Dictionaries, Dimensional Modeling, to name a few.
What is an Entity-Relationship Diagram (ERD)?
ER Diagram is a graphical representation of a data model using entities, their attributes and relationships between those entities. It has a form of a diagram.
Sample ER Diagram created with Dataedo
What is a Data Dictionary?
Data Dictionary is a list of data elements (entity/table and attribute/column) with their attributes and descriptions. It has a form of a set of tables.
Sample Data Dictionary in Dataedo
Which is Better?
- Easier to see the big picture
- Easier to understand table relations
- Possible to use visual cues to communicate information (e.g. location, proximity, color, shape)
- Doesn't work with large data models due to space constraints and clutter
- Supports limited amount of details
- May contain very little descriptions (as notes on a diagram)
- Requires careful layout and fitting into canvas
- Hard to search
- May include many data attributes (e.g. list of values, default values, owner, etc.)
- Includes detailed descriptions of each element (table, column)
- Easily searchable
- Less visually appealing
- More difficult to read
Neither is strictly better. Which one is better for you depends on what you want to achieve and the required level of detail. In my opinion you should use both.
Use ERDs for showing key tables and top level design. Use it to communicate ideas.
Don't add too many elements and details. Instead use multiple diagrams to explain different functional areas of a database.
Use Data Dictionaries for detailed documentation of each table and column. Use it as a reference documentation.
Add as many details as required. Data dictionaries can contain detailed description of each data element and the table form can handle this without losing readability.
You can use tool such as Dataedo to build ERDs connected with Data Dictionary imported from relational databases.