All Topics  
Data modeling

 

   Email Print
   Bookmark   Link






 

Data modeling



 
 
Data modeling in software engineering
Software engineering

Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches....
 is the process of creating a data model
Data model

A data model in software engineering is an abstract model that describes how Data is represented and accessed. Data models formally define data elements and relationships among data elements for a domain of interest....
 by applying formal data model descriptions using data modeling techniques.

Data modeling is a technique for defining business requirement
Requirement

In engineering, a requirement is a singular documented need of what a particular product or service should be or do. It is most commonly used in a formal sense in systems engineering or software engineering....
s for a database
Database

A database is a structured collection of records or data that is stored in a computer system. The structure is achieved by organizing the data according to a database model....
. It is sometimes called database modeling because a data model
Data model

A data model in software engineering is an abstract model that describes how Data is represented and accessed. Data models formally define data elements and relationships among data elements for a domain of interest....
 is eventually implemented in a database.

modeling is a method
Method

Method may refer to:* How to do or make something* Scientific method, a series of steps taken to acquire knowledge* Method , a piece of code associated with a class or object to perform a task...
  used to define and analyze data requirements needed to support the business process
Business process

A business process or business method is a collection of related, structured activities or tasks thatproduce a specific service or product for a particular customer or customers....
es of an organization.






Discussion
Ask a question about 'Data modeling'
Start a new discussion about 'Data modeling'
Answer questions from other users
Full Discussion Forum



Encyclopedia


Data modeling in software engineering
Software engineering

Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches....
 is the process of creating a data model
Data model

A data model in software engineering is an abstract model that describes how Data is represented and accessed. Data models formally define data elements and relationships among data elements for a domain of interest....
 by applying formal data model descriptions using data modeling techniques.

Data modeling is a technique for defining business requirement
Requirement

In engineering, a requirement is a singular documented need of what a particular product or service should be or do. It is most commonly used in a formal sense in systems engineering or software engineering....
s for a database
Database

A database is a structured collection of records or data that is stored in a computer system. The structure is achieved by organizing the data according to a database model....
. It is sometimes called database modeling because a data model
Data model

A data model in software engineering is an abstract model that describes how Data is represented and accessed. Data models formally define data elements and relationships among data elements for a domain of interest....
 is eventually implemented in a database.

Overview

Data modeling is a method
Method

Method may refer to:* How to do or make something* Scientific method, a series of steps taken to acquire knowledge* Method , a piece of code associated with a class or object to perform a task...
  used to define and analyze data requirements needed to support the business process
Business process

A business process or business method is a collection of related, structured activities or tasks thatproduce a specific service or product for a particular customer or customers....
es of an organization. The data requirements are recorded as a conceptual data model with associated data definition
Data definition

Data definition refers to that part of a data model concerned with defining data structures. Within a database sub-language, data definition is achieved through a Data Definition Language ....
s. Actual implementation of the conceptual model is called a logical data model
Logical data model

A logical data model in systems engineering is a representation of an organization's data, organized in terms of a particular data management technology....
. To implement one conceptual data model may require multiple logical data models. Data modeling defines the relationships between data elements and structures. Data modeling techniques are used to model data in a standard, consistent, predictable manner in order to manage it as a resource. The use of this standard is strongly recommended for all projects requiring a standard means of defining and analyzing the data resources within an organization. Such projects include:
  • incorporating a data modeling technique into a methodology;
  • using a data modeling technique to manage data as a resource;
  • using a data modeling technique for the integration of information systems;
  • using a data modeling technique for designing computer databases.


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. Instead a data model should be considered a living document that will change in response to a changing business. The data models should ideally be stored in a repository so that they can be retrieved, expanded, and edited over time. Whitten (2004) determined two types of data modeling:
  • 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
    Information engineering

    Information Engineering or Information Engineering Methodology in software engineering is an approach to designing and developing information systems....
     is a methodology that embraces this approach.
  • Data modeling during systems analysis: In systems analysis
    Systems analysis

    Systems analysis is the interdisciplinary part of Science, dealing with analysis of sets of interacting or entities, the systems, often prior to their automation as computer systems, and the interactions within those systems....
     logical data models are created as part of the development of new databases.


Data modeling topics


Data models

Data model
Data model

A data model in software engineering is an abstract model that describes how Data is represented and accessed. Data models formally define data elements and relationships among data elements for a domain of interest....
s support data and computer systems by providing the definition and format of data
DATA

Debt, AIDS, Trade in Africa is a multinational Non-governmental organization founded in January 2002 in London by U2's Bono along with Robert Sargent Shriver III and activists from the Jubilee 2000 Drop the Debt campaign....
. If this is done consistently across systems then compatibility of data can be achieved. If the same data structures are used to store and access data then different applications can share data. The results of this are indicated above. However, systems and interfaces often cost more than they should, to build, operate, and maintain. They may also constrain the business rather than support it. A major cause is that the quality of the data models implemented in systems and interfaces is poor.
  • Business rules, specific to how things are done in a particular place, are often fixed in the structure of a data model. This means that small changes in the way business is conducted lead to large changes in computer systems and interfaces.
  • Entity types are often not identified, or incorrectly identified. This can lead to replication of data, data structure, and functionality, together with the attendant costs of that duplication in development and maintenance.
  • Data models for different systems are arbitrarily different. The result of this is that complex interfaces are required between systems that share data. These interfaces can account for between 25-70% of the cost of current systems.
  • Data cannot be shared electronically with customers and suppliers, because the structure and meaning of data has not been standardised. For example, engineering design data and drawings for process plant are still sometimes exchanged on paper.
The reason for these problems is a lack of standards that will ensure that data models will both meet business needs and be consistent.

Conceptual, logical and physical schemes

A data model instance may be one of three kinds according to ANSI in 1975:
  • Conceptual schema
    Conceptual schema

    A conceptual schema or conceptual data model is a map of concepts and their relationships. This describes the semantics of an organization and represents a series of Logical assertions about its nature....
     : describes the semantics of a domain, being the scope of the model. For example, it may be a model of the interest area of an organization or industry. This consists of entity classes, representing kinds of things of significance in the domain, and relationships assertions about associations between pairs of entity classes. A conceptual schema specifies the kinds of facts or propositions that can be expressed using the model. In that sense, it defines the allowed expressions in an artificial 'language' with a scope that is limited by the scope of the model.
  • Logical schema
    Logical schema

    A Logical Schema is a data model problem domain expressed in terms of a particular data management technology. Without being specific to a particular database management product, it is in terms of either relational tables and columns, object-oriented classes, or XML tags....
     : describes the semantics, as represented by a particular data manipulation technology. This consists of descriptions of tables and columns, object oriented classes, and XML tags, among other things.
  • Physical schema
    Physical schema

    Physical Schema is a term used in relation to data management.In the Windows-1252 four-schema architecture, the internal schema was the view of data that involved data management technology....
     : describes the physical means by which data are stored. This is concerned with partitions, CPUs, tablespaces, and the like.


The significance of this approach, according to ANSI, is that it allows the three perspectives to be relatively independent of each other. Storage technology can change without affecting either the logical or the conceptual model. The table/column structure can change without (necessarily) affecting the conceptual model. In each case, of course, the structures must remain consistent with the other model. The table/column structure may be different from a direct translation of the entity classes and attributes, but it must ultimately carry out the objectives of the conceptual entity class structure. Early phases of many software development projects emphasize the design of a conceptual data model
Conceptual schema

A conceptual schema or conceptual data model is a map of concepts and their relationships. This describes the semantics of an organization and represents a series of Logical assertions about its nature....
. Such a design can be detailed into a logical data model
Logical data model

A logical data model in systems engineering is a representation of an organization's data, organized in terms of a particular data management technology....
. In later stages, this model may be translated into physical data model
Physical data model

File:Physical Data Model Options.jpgA physical data model is a representation of a data design which takes into account the facilities and constraints of a given database management system....
. However, it is also possible to implement a conceptual model directly.

Data modeling process

In the context of Business Process
Business process

A business process or business method is a collection of related, structured activities or tasks thatproduce a specific service or product for a particular customer or customers....
 Integration, see figure, data modeling will result in database generation. It complements business process modeling
Business process modeling

Business Process Modeling in systems engineering and software engineering is the activity of process modeling of an enterprise, so that the current process may be analyzed and improved in future ....
, which results in application programs to support the business processes.

The actual database design
Database design

Database design is the process of producing a detailed data model of a database. This logical 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....
 is the process of producing a detailed data model
Data model

A data model in software engineering is an abstract model that describes how Data is represented and accessed. Data models formally define data elements and relationships among data elements for a domain of interest....
 of a database
Database

A database is a structured collection of records or data that is stored in a computer system. The structure is achieved by organizing the data according to a database model....
. This logical data model
Logical data model

A logical data model in systems engineering is a representation of an organization's data, organized in terms of a particular data management technology....
 contains all the needed logical and physical design choices and physical storage parameters needed to generate a design in a Data Definition Language
Data Definition Language

A Data Definition Language is a computer language for defining data structure. The term was first introduced in relation to the Codasyl database model, where the schema of the database was written in a Data Definition Language describing the records, fields, and "sets" making up the user Data Model....
, 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
Database system

A database system is a term that is typically used to encapsulate the constructs of a data model, database Management system and database.A database is an organised pool of logically-related data....
. 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
Relational model

The relational model for database management is a database model based on first-order logic, first formulated and proposed in 1969 by Edgar F. Codd....
 these are the tables and views. In an Object database
Object database

An object database is a database model in which information is represented in the form of Object as used in object-oriented programming.Object databases are generally recommended when there is a business need for high performance processing on complex data....
 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
Database management system

A database management system is computer software that manages databases. DBMSes may use any of a variety of database models, such as the network model or relational model....
 or DBMS.

In the process system interfaces account for 25% to 70% of the development and support costs of current systems. The primary reason for this cost is that these systems do not share a common data model. If data models are developed on a system by system basis, then not only is the same analysis repeated in overlapping areas, but further analysis must be performed to create the interfaces between them. Most systems contain the same basic components, redeveloped for a specific purpose. For instance the following can use the same basic classification model as a component:
  • Materials Catalogue,
  • Product and Brand Specifications,
  • Equipment specifications.
The same components are redeveloped because we have no way of telling they are the same thing.

Modeling methodologies

Data model
Data model

A data model in software engineering is an abstract model that describes how Data is represented and accessed. Data models formally define data elements and relationships among data elements for a domain of interest....
s represent information areas of interest. While there are many ways to create data models, according to Len Silverston (1997) only two modeling methodologies stand out, top-down and bottom-up:
  • Bottom-up models are often the result of a reengineering
    Reengineering

    Reengineering is radical redesign of an organization's processes, especially its business processes. Rather than organizing a firm into functional specialties and considering the tasks that each function performs; complete processes from materials acquisition, to production, to marketing and distribution should be considered....
     effort. They usually start with existing data structures forms, fields on application screens, or reports. These models are usually physical, application-specific, and incomplete from an enterprise perspective
    Enterprise architecture

    The term enterprise architecture refers to many things. Like architecture in general, it can refer to a description, a process or a profession....
    . They may not promote data sharing, especially if they are built without reference to other parts of the organization.
  • Top-down logical data model
    Logical data model

    A logical data model in systems engineering is a representation of an organization's data, organized in terms of a particular data management technology....
    s, on the other hand, are created in an abstract way by getting information from people who know the subject area. A system may not implement all the entities in a logical model, but the model serves as a reference point or template.
Sometimes models are created in a mixture of the two methods: by considering the data needs and structure of an application and by consistently referencing a subject-area model. Unfortunately, in many environments the distinction between a logical data model and a physical data model is blurred. In addition, some CASE
Computer-aided software engineering

Computer-Aided Software Engineering , in the field of Software Engineering is the scientific application of a set of tools and methods to a software which results in high-quality, defect-free, and maintainable software products....
 tools don’t make a distinction between logical and physical data model
Physical data model

File:Physical Data Model Options.jpgA physical data model is a representation of a data design which takes into account the facilities and constraints of a given database management system....
s.

Entity relationship diagrams

There are several notations for data modeling. The actual model is frequently called "Entity relationship model", because it depicts data in terms of the entities and relationships described in the data
DATA

Debt, AIDS, Trade in Africa is a multinational Non-governmental organization founded in January 2002 in London by U2's Bono along with Robert Sargent Shriver III and activists from the Jubilee 2000 Drop the Debt campaign....
. An entity-relationship model (ERM) is an abstract conceptual representation of structured data. Entity-relationship modeling is a relational schema database model
Database model

A database model or database schema is the structure or format of a database, described in a formal language supported by the database management system....
ing method, used in software engineering
Software engineering

Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches....
 to produce a type of conceptual data model
Conceptual schema

A conceptual schema or conceptual data model is a map of concepts and their relationships. This describes the semantics of an organization and represents a series of Logical assertions about its nature....
 (or semantic data model
Semantic data model

A semantic data model in software engineering is a data modeling technique to define the meaning of data within the context of its interrelationships with other data....
) of a system, often a relational database
Relational database

A relational database is a database that groups data using common attributes found in the data set. The resulting "clumps" of organized data are much easier for people to understand....
, and its requirements in a top-down fashion.

These models are being used in the first stage of information system design during the requirements analysis
Requirements analysis

Requirements analysis in systems engineering and software engineering, encompasses those tasks that go into determining the needs or conditions to meet for a new or altered product, taking account of the possibly conflicting requirements of the various Stakeholder , such as beneficiaries or users....
 to describe information needs or the type of information
Information

Information as a Conveyed concept has a diversity of meanings, from everyday usage to technical settings. Generally speaking, the concept of information is closely related to notions of constraint, communication, control system, data, form, instruction, knowledge, Meaning , stimulation, pattern, perception, and knowledge representation....
 that is to be stored in a database
Database

A database is a structured collection of records or data that is stored in a computer system. The structure is achieved by organizing the data according to a database model....
. The data model
Data model

A data model in software engineering is an abstract model that describes how Data is represented and accessed. Data models formally define data elements and relationships among data elements for a domain of interest....
ing technique can be used to describe any ontology
Ontology (computer science)

In computer science and information science, an ontology is a formal representation of a set of concepts within a Domain of discourse and the relationships between those concepts....
 (i.e. an overview and classifications of used terms and their relationships) for a certain universe of discourse i.e. area of interest.

Several techniques have been developed for the design of data models. While these methodologies guide data modelers in their work, two different people using the same methodology will often come up with very different results. Most notable are:

  • Bachman diagram
    Bachman diagram

    Bachman diagrams are diagrams which are used to design the data using a network or relational "logical" model, separating the data model from the way the data is stored in the system....
    s
  • Barker's Notation
    Barker's Notation

    Entity-relationship model are a way of modelling real-world problems by organising and structuring the data for a particular area of interest. This structured data is called a data model, and uses a visual language to draw objects, their inter-relationships and other relevant properties; ERDs call them entities, relationships and attributes respec...
  • Business rules
  • Data Vault Modeling
    Data Vault Modeling

    Data Vault Modeling is a hybrid data modeling approach for enterprise data warehousing. Data Vault's real name is: "Common Foundational Integration Modeling Architecture."...
  • Entity-relationship model
    Entity-relationship model

    An Entity-Relationship Model in software engineering is an abstract and conceptual representation of data. Entity-relationship modeling is a relational schema database modeling method, used to produce a type of conceptual schema or semantic data model of a system, often a relational database, and its requirements in a top-down fashion....
  • Extended Backus–Naur form
    Extended Backus–Naur form

    In computer science, Extended Backus?Naur Form is a metasyntax notation used to express context-free grammars: that is, a formal way to describe computer programming languages and other formal languages....
  • IDEF1X
    IDEF1X

    IDEFIX is a data modeling modeling language for the developing of semantic data models. IDEF1X is used to produce a graphical information model which represents the structure and semantics of information within an environment or system....
  • Object-relational mapping
    Object-relational mapping

    Object-relational mapping is a Computer programming technique for converting data between incompatible type systems in relational databases and object-oriented programming languages....
  • Object Role Modeling
    Object role modeling

    Object Role Modeling in the field of software engineering is a method for conceptual modeling, and can be used as a tool for information and rules analysis....
  • Relational Model
    Relational model

    The relational model for database management is a database model based on first-order logic, first formulated and proposed in 1969 by Edgar F. Codd....


Generic data modeling

Generic data model
Generic data model

Generic data models are generalizations of conventional data models. They define standardised general relation types, together with the kinds of things that may be related by such a relation type....
s are generalizations of conventional data model
Data model

A data model in software engineering is an abstract model that describes how Data is represented and accessed. Data models formally define data elements and relationships among data elements for a domain of interest....
s. They define standardised general relation types, together with the kinds of things that may be related by such a relation type. The definition of generic data model is similar to the definition of a natural language. For example, a generic data model may define relation types such as a 'classification relation', being a binary relation
Binary relation

In mathematics, a binary relation is an arbitrary association of elements within a set or with elements of another set.An example is the "divides" relation between the set of prime numbers P and the set of integers Z, in which every prime p is associated with every integer z that is a divisibility of p, and no othe...
 between an individual thing and a kind of thing (a class) and a 'part-whole relation', being a binary relation between two things, one with the role of part, the other with the role of whole, regardless the kind of things that are related.

Given an extensible list of classes, this allows the classification of any individual thing and to specify part-whole relations for any individual object. By standardisation of an extensible list of relation types, a generic data model enables the expression of an unlimited number of kinds of facts and will approach the capabilities of natural languages. Conventional data models, on the other hand, have a fixed and limited domain scope, because the instantiation (usage) of such a model only allows expressions of kinds of facts that are predefined in the model.

Semantic data modeling

The logical data structure of a DBMS, whether hierarchical, network, or relational, cannot totally satisfy the requirements for a conceptual definition of data because it is limited in scope and biased toward the implementation strategy employed by the DBMS. Therefore, the need to define data from a conceptual view has led to the development of semantic data model
Semantic data model

A semantic data model in software engineering is a data modeling technique to define the meaning of data within the context of its interrelationships with other data....
ing techniques. That is, techniques to define the meaning of data within the context of its interrelationships with other data. As illustrated in the figure the real world, in terms of resources, ideas, events, etc., are symbolically defined within physical data stores. A semantic data model is an abstraction which defines how the stored symbols relate to the real world. Thus, the model must be a true representation of the real world.

A semantic data model can be used to serve many purposes, such as:.
  • Planning of Data Resources
  • Building of Shareable Databases
  • Evaluation of Vendor Software
  • Integration of Existing Databases


The overall goal of semantic data models is to capture more meaning of data by integrating relational concepts with more powerful abstraction concepts known from the Artificial Intelligence
Artificial intelligence

Artificial intelligence is the intelligence of machines and the branch of computer science which aims to create it. Major AI textbooks define the field as "the study and design of intelligent agents,"...
 field. The idea is to provide high level modeling primitives as integral part of a data model in order to facilitate the representation of real world situations.

See also

  • Abstraction (computer science)
    Abstraction (computer science)

    In computer science, abstraction is a mechanism and practice to reduce and factor out details so that one can focus on a few concepts at a time....
  • Data (computing)
    Data (computing)

    In computer science, data is anything in a form suitable for use with a computer. Data is often distinguished from computer programs. A program is a set of instruction that detail a task for the computer to perform....
  • Data dictionary
    Data dictionary

    A data dictionary, as defined in the IBM Dictionary of Computing, is a "centralized repository of information about data such as meaning, relationships to other data, origin, usage, and format." The term may have one of several closely related meanings pertaining to databases and Database management system:...
  • Database design
    Database design

    Database design is the process of producing a detailed data model of a database. This logical 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....
  • Data model
    Data model

    A data model in software engineering is an abstract model that describes how Data is represented and accessed. Data models formally define data elements and relationships among data elements for a domain of interest....
  • Document modelling
    Document modelling

    Document Modelling looks at the inherent structure in documents. It looks not at the structure in formatting which is the classic realm of word-processing tools, but at the structure in content....
  • Information Management
    Information management

    Information management is the collection and management of information from one or more sources and the distribution of that information to one or more audiences....
  • Informative Modelling
    Informative Modelling

    Informative modelling is an interdisciplinarity methodological approachlinking information technologies with architectural analysis and modelling...
  • Three schema approach
    Three schema approach

    The three-schema approach, or the Three Schema Concept, in software engineering is an approach to building information systems and systems information management, that promotes the conceptual model as the key to achieving data integration....
  • Zachman framework
    Zachman framework

    File:Simple example Zachman Framework double row.jpgThe Zachman Framework is a framework for enterprise architecture, which provides a formal and highly structured way of view model and defining an enterprise....


Further reading

  • J.H. ter Bekke (1991). Semantic Data Modeling in Relational Environments
  • John Vincent Carlis, Joseph D. Maguire (2001). Mastering Data Modeling: A User-driven Approach.
  • Alan Chmura, J. Mark Heumann (2005). Logical Data Modeling: What it is and how to Do it.
  • Martin E. Modell (1992). Data Analysis, Data Modeling, and Classification.
  • M. Papazoglou, Stefano Spaccapietra, Zahir Tari (2000). Advances in Object-oriented Data Modeling.
  • G. Lawrence Sanders (1995). Data Modeling
  • Graeme C. Simsion, Graham C. Witt (2005). Data Modeling Essentials
  • Graeme Simsion (2007). Data Modeling: Theory and Practice.


External links

  • Article from
  • *
  • Notes on by Tony Drewry]
  • of the Object Management Group