publication

What Is Data Modeling

Miquel Canal

Saturday 16, December 2017
  • Database
  • Information and Security

Introduction to Data Modeling

Data modeling is the practice of translating an information system into models in order to represent its internal structure.

It often involves the use of diagrams and schemas to represent data flow across a software application or a business organization. Data modeling is a method based on first an analysis of data requirements and then the design of models to represent those requirements.

A data model is used to document and represent data structure in a given platform or database, showing the internal relation between entities and how they are connected.

Database Design

The concept of Database Design can refer to several parts of the overall design of a database system, but principally refers to the process of designing the logical data structures used to store data information. It can also involve the definition of forms and queries related to the used DBMS (Database Manager System).

Data Modeling

The previous schema shows the flow process of a typical Database design. The first step is to collect all requirements and analyse them in order to document and understand the data requirements. These requirements should be as detailed as possible and may contain functional requirements related to the application defining how transactions will be applied to the database.

Once the requirements have been analysed, next step is the conceptual design which defines a high-level schema representing each entity type and their relations. The complexity of this schemas is low and can be used to communicate the design approach with nontechnical users. It also helps to visualise the data and simplifies the process of defining data properties. During this phase of the process, the conceptual schema can verify that its structure meets the requirements of the functional application by simulating high-level queries.

The main goal of the logical design (or data model mapping) step is to convert the conceptual ER diagram into a relation schema implementing a certain Database Manager System (DBMS). This step is usually mechanic and there are some tools that cover this process automatically. Normalization is the process used to eliminate redundancy. The main goal is to ensure that data is not replicated across the database and avoid updating issues.

The final step is called physical design where the implementation of the actual database takes place. Specifications related to data types and indexation is defined on this phase.

Entity Relationship Diagram (ERD)

In database modeling the concept of cardinality refers to the relationship between tables inside a database.

An Entity Relationship Diagram (ERD) defines the relationship between entities and their attributes. In example, an ERD contains many-to-many relationships and do not include foreign keys. They are implied. In an ERD, we are simply visualising the entities, their attributes, and the relation between them. We don't care about where foreign keys go or how to implement that many-to-many relationship. Primary keys are underlined.

Relational Model

In a Relational Model we are referring to an implementation of our model. At this point we should be clear about the formats of our attributes, the foreign keys we use, and the linking tables we might need to stitch entities together. A relational model is basically a model of a possible database implementation.

In short, an ERD is an abstract concept of our database, it speaks in entities and attributes, an entity model. A relational model defines formats and relations in a way a database could understand, a data model.

References

The 12-Factor methodology

The 12-Factor methodology

The twelve-factor app is a methodology used to build software-as-a-service apps that are easy to scale up without significant changes to tooling or architecture.

SQL Joins, Group and Union

SQL Joins, Group and Union

Overview of the SQL Join clauses: Inner, Left, Right and Full joins. How to join two or more database tables and how to group them using Group By. What are aggregate functions in SQL and how to Union multiple SQL queries.

Github - User Access Token instead of Passwords

Github - User Access Token instead of Passwords

Github announced its deprecation of user passwords for all Git operations. Git operations that use authentication will require the use of token-based (GitHub User Access Token). The motivation behind this decision from GitHub is to increase user’s security from malicious attackers.

This site uses cookies to ensure a great experience. By continue navigating through the site you accept the storage of these cookies.