What is a Data Model?
A data model is an abstract model, that documents and organizes the enterprise data for communication between developers. Most of the times a data model is represented in a diagram. A data model is used as a plan for developing software, specifically how data is stored and accessed. A data model of your database can support the analysis, design, documentation and migration of underlying database structures.
What is Database Design?
Database design is the process of producing a detailed data model of database. This data model contains all the needed logical and physical design choices and physical storage parameters needed to generate a design in a data definition language, which can then be used to create a database. A fully attributed data model contains detailed attributes for each entity.
The term database design can be used to describe many different parts of the design of an overall database system. Principally, and most correctly, it can be thought of as the logical design of the base data structures used to store the data. In the relational model these are the tables and views. In an object database the entities and relationships map directly to object classes and named relationships. However, the term database design could also be used to apply to the overall process of designing, not just the base data structures, but also the forms and queries used as part of the overall database application within the database management system (DBMS).
The process of doing database design generally consists of a number of steps which will be carried out by the database designer. Usually, the designer must:
- Determine the data to be stored in the database.
- Determine the relationships between the different data elements.
- Superimpose a logical structure upon the data on the basis of these relationships.
A good database design starts with a list of the data that you want to include in your database and what you want to be able to do with the database later on. This can all be written in your own language, without any SQL. In this stage you must try not to think in tables or columns, but just think: “What do I need to know?” Don’t take this too lightly, because if you find out later that you forgot something, usually you need to start all over. Adding things to your database is mostly a lot of work.
Let’s take a quick look at the 3 different levels of database modeling:
- Conceptual Models– Represent business concepts and ideas with no consideration for the technical design. Conceptual models definitely fall under the umbrella of what the business wants.
- When using a conceptual model to represent abstract ideas, it’s important to distinguish between a model of a concept versus a model that is conceptual. That is to say, a model is intrinsically a thing unto itself, but that model also contains a concept of what that model represents — what a model is, as opposed to what a model represents.
- Without diving too deep into the philosophical, recognizing these differences between the model itself and what it represents is critical to understanding the proper use of conceptual models in the first place. It should come as no surprise, then, that conceptual models are often used as an abstract representation of real world objects.
- Logical Models – Make the business concepts theoretically implementable in a database design, but still may not include all of the details of the physical database structure. Logical models fall right in the intersection of what the business wants and how the solution team will implement it.
A logical data model represents the organization of a set of data by standardizing the people, places, things (entities) and the rules and relationships between them using a standard language and notation. It provides a conceptual abstract overview of the structure of the data.
Logical data modeling does not provide any information related to how the structure is to be implemented or the means (technologies) that are needed to implement the data structure shown. It is a technology-independent model of data that is developed from the initial structures identified by the conceptual model of data. Some of the information presented by a logical data model includes the following:
- Attributes of entities
- Key groups (primary keys, foreign keys)
Physical Models – Specify the actual database tables and fields that are created as part of the database. Physical models are under the umbrella of how the database will be designed and implemented.