Data Modeling
Data modeling in software engineering is the process of creating a data model for an information system by applying formal data modeling techniques. Data modeling is a process used to define and analyze data requirements needed to support the business processes within the scope of corresponding information systems in organizations.
Therefore, the process of data modeling involves professional data modelers working closely with business stakeholders, as well as potential users of the information system.
There are three different types of data models produced while progressing from requirements to the actual database to be used for the information system-
The data requirements are initially recorded as a conceptual data model which is essentially a set of technology independent specifications about the data and is used to discuss initial requirements with the business stakeholders.
The conceptual model is then translated into a logical data model, which documents structures of the data that can be implemented in databases. Implementation of one conceptual data model may require multiple logical data models.
The last step in data modeling is transforming the logical data model to a physical data model that organizes the data into tables, and accounts for access, performance and storage details. Data modeling defines not just data elements, but also their structures and the relationships between them.
Data modeling techniques and methodologies are used to model data in a standard, consistent, predictable manner in order to manage it as a resource. The use of data modeling standards is strongly recommended for all projects requiring a standard means of defining and analyzing data within an organization.
- to assist business analysts, programmers, testers, manual writers, IT package selectors, engineers, managers, related organizations and clients to understand and use an agreed semi-formal model the concepts of the organization and how they relate to one another.
- to manage data as a resource
- for the integration of information systems
- for designing databases/data warehouses
Data modeling may be performed during various types of projects and in multiple phases of projects. Data models are progressive; there is no such thing as the final data model for a business or application. The data models should ideally be stored in a repository so that they can be retrieved, expanded, and edited over time.
Strategic data modeling:
This is part of the creation of an information systems strategy, which defines an overall vision and architecture for information systems is defined. Information engineering is methodology that embraces this approach.
Data modeling during systems analysis:
In systems analysis logical data models are created as part of the development of new databases.
Data modeling is also used as a technique for detailing business requirements for specific databases. It is sometimes called database modeling because a data model is eventually implemented in a database.
Cardinality :
The data model must be capable of representing the number of occurrences object in a given relationship.
Cardinality is the specification of the number of occurrences of one object that can be related to the number of occurrences of another object.
Cardinality is represented as “one” or “many”.
- One to One (1:1) : An occurrence of object ‘X’ can relate to one and only one occurrence of object ‘Y’ and an occurrence of ‘X’ can relate to only one occurrence of ‘Y’ .
- One to many (1:N): One occurrence of object ‘X’ can relate to one or many occurrences of ‘Y’ but an occurrence of ‘Y’ can relate to only one occurrence of ‘X’.
- Many to Many (M:M): An occurrence of object ‘X’ can relate to one or more occurrences of ‘Y’ while an occurrence of ‘Y’ can relate to one or more occurrences of ‘X’.
Modality :
The modality of a relationship is 0, if there is no explicit need for the relationship to occur or the relationship is optional. The modality is 1 if an occurrence of the of the relationship is mandatory.