Part II. Information Modeling
Information modeling includes several use cases:
- Conceptual (domain) modeling:
- To gain a better understanding of the concepts of a business domain.
- To document, define and visualize a (business) domain vocabulary.
- Design modeling: To make a logical design, respectively a detailed information architecture, of an information system.
- Implementation modeling: To define the data structures (e.g., SQL tables and Java classes) used in the implementation of an information system.
Notice that database design is normally part of the information modeling effort in an IS development project, which leads from a conceptual model of a given business domain via solution design models to platform-specific implementation models, as shown in The information modeling process: from a conceptual model via design to class and table models. below.
There are two important classes of technology platforms for which a class of platform design model can be created:
- Object-Oriented Programming (OOP) languages and frameworks, such as Java EE or Microsoft .NET (based on C#).
- Relational Database Management Systems (RDBMSs), such as SQLite, MySQL, Oracle DB, or Microsoft SQLServer.
For the OOP platform class, an OOP class design model can be made as the basis for deriving platform-specific class models, such as a Java EE class model. Likewise, for the RDBMS platform class, an RDB table design model can be made as the basis for deriving RDBMS-specific table models, such as an SQLite table model. An RDBMS-specific table model defines an RDB schema for a particular RDBMS.
The three different cases of information modeling listed above correspond to the three main phases of an IS development project:
- Analysis of the problem domain: resulting in requirements specifications and a conceptual model of the business domain.
- Design of the system to be built: resulting in a logical (implementation-agnostic or technology-independent) design model.
- Implementation of the system design: resulting in (technology-specific) data models and implementation models, and, finally, in executable code.
Information models are expressed in an information modeling language that may have a textual or a visual syntax. Visual modeling languages allow making model diagrams, which are often preferred to textual models because "a picture is worth a thousand words". Historically, the first widely used diagram language for information modeling were Entity Relationship Diagrams (ERDs) proposed by Peter Chen in 1976. Later, several variants of ERDs have been proposed by refining and extending the original language. Some of them are still popular in database design.
Today, there is a widely established standard for information modeling: the Class Diagram language of the Unified Modeling Language (UML), which allows using a class for different purposes: for representing an entity type or for defining a relational table, a complex datatype, or a library of functions. Since UML Class Diagrams are essentially more expressive than ERDs, and since they are needed anyway for designing the model classes of an IS, it is natural to use them also for designing the schema of its underlying database.