In this article I will give you a brief overview of 3 basic data modeling techniques - ER Diagrams, UML Class Diagrams and a Data Dictionary.
1. Entity Relationship Diagrams
Also referred to as ER diagrams or ERDs. Entity-Relationship modeling is a default technique for modeling and the design of relational (traditional) databases. In this notation architect identifies:
- Entities representing objects (or tables in relational database),
- Attributes of entities including data type,
- Relationships between entities/objects (or foreign keys in a database).
ERDs work well if you want to design a relational (classic) database, Excel databases or CSV files. Basically, any kind of tabular data. They work well for visualization of database schemas and communication of top-level view of data.
ERD created with Dataedo.
If you want to create and share an ER diagram for the existing database see this tutorial.
2. UML Class Diagrams
UML (Unified Modeling Language) is a standardized family of notations for modeling and design of information systems. It was derived from various existing notations to provide a standard for software engineering. It comprises of several different diagrams representing different aspect of the system, and one of them being a Class Diagram that can be used for data modeling. Class diagrams are equivalent of ERDs in relational world and are mostly used to design classes in object-oriented programming languages (such as Java or C#).
In class diagrams architects define:
- Classes (equivalent of entity in relational world),
- Attributes of a class (same as in an ERD) including data type,
- Methods associated to specific class, representing its behavior (in relational world those would be stored procedures),
- Relationships grouped into two categories:
- Relationships between objects (instances of Classes) differentiated into Dependency, Association, Aggregation and Composition (equivalent to relationships in an ERD),
- Relationships between classes of two kinds Generalization/Inheritance and Realization/Implementation (this has no equivalent in relational world).
You can use class diagrams to design a tabular data (such as in RDBMS), but were designed and are used mostly for object-oriented programs (such as Java or C#).
UML Class Diagram created with Visual Paradigm.
3. Data Dictionary
Last technique I'd like to share with you is a Data Dictionary. Techniques mentioned above were visual and were based on diagrams, and data dictionaries are a tabular definition/representation of data assets. Data dictionary is an inventory of data sets/tables with the list of their attributes/columns.
Core data dictionary elements:
- List of data sets/tables,
- List of attributes/columns of each table with data type.
Optional data dictionary elements:
- Item descriptions,
- Relationships between tables/columns,
- Additional constraints, such as uniqueness, default values, value constraints or calculated columns.
Data dictionary is suitable as detailed specification of data assets and can be supplemented with ER diagrams, as both serve slightly different purpose.
Data Dictionary created with Dataedo.
If you want to build a data dictionary for your databases, supplemented with ERDs and user descriptions, follow this tutorial.
I hope you found this summary useful. This is just a high-level view of each technique and there's much more to learn about each of them. One more thing I'd like you to take away from this article is that there are no better or worse techniques - it all depends on the purpose.