Data modeling formalizes and documents existing processes and events. It captures and translates complex system designs into easily understood representations of the data flows and processes, creating a blueprint for construction and/or re-engineering. A data model can be thought of as a diagram or flowchart that illustrates the relationships between data. Although capturing all the possible relationships in a data model can be very time-intensive, it’s an important step and should not be rushed. Well-documented models allow stakeholders to identify errors and make changes before any programming code has been written. Data modellers often use multiple models to view the same data and ensure that all processes, entities, relationships and data flows have been identified. There are several different approaches to data modeling, including: Conceptual Data Modeling (identifies the highest-level relationships between different entities); Enterprise Data Modeling (similar to conceptual data modeling, but addresses the unique requirements of a specific organization); Logical Data Modeling (illustrates the specific entities, attributes and relationships involved in a business function. Serves as the basis for the creation of the physical data model); Physical Data Modeling (represents an application and database-specific implementation of a logical data model).