Content deleted Content added
Changing short description from "(in software engineering) process of creating a data model for an information system by applying certain formal techniques" to "Creating a model of the data in a system" (Shortdesc helper) |
|||
(37 intermediate revisions by 27 users not shown) | |||
Line 1:
{{Short description|Creating a model of the data in a system}}
▲{{duplicates|dupe=Data model}}
{{Use mdy dates|date=March 2016}}
[[File:4-3 Data Modelling Today.svg|420px|thumb|The data modeling process. The figure illustrates the way data models are developed and used today . A [[Conceptual schema|conceptual data model]] is developed based on the data [[requirement]]s for the application that is being developed, perhaps in the context of an [[activity diagram|activity model]]. The data model will normally consist of entity types, attributes, relationships, integrity rules, and the definitions of those objects. This is then used as the start point for interface or database design.<ref name="MW99"/>]]{{Software development process}}
'''Data modeling''' in [[software engineering]] is the process of creating a [[data model]] for an [[information system]] by applying certain formal techniques. It may be applied as part of broader [[Model-driven engineering]] (MDE) concept.
== Overview ==
Line 14 ⟶ 12:
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, e.g., using data modeling:
* to assist business analysts, programmers, testers, manual writers, IT package selectors, engineers, managers, related organizations and clients to understand and use an agreed
* to manage data as a resource
* to integrate information systems
* to design databases/[[data
Data
* Strategic data
* Data
Data
== Topics ==
Line 30 ⟶ 28:
{{main|Data model}}
[[File:3-4 Data model roles.svg|thumb|320px|How data models deliver benefit.<ref name="MW99"/>]]
Data models provide a framework for [[data]] to be used within [[information system]]s by providing specific
Some common problems found in data models are:
* 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. So, business rules need to be implemented in a flexible way that does not result in complicated dependencies, rather the data model should be flexible enough so that changes in the business can be implemented within the data model in a relatively quick and efficient way.
* Entity types are often not identified, or are identified incorrectly. This can lead to replication of data, data structure and functionality, together with the attendant costs of that duplication in development and maintenance. Therefore, data definitions should be made as explicit and easy to understand as possible to minimize misinterpretation and duplication.
* 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
* Data cannot be shared electronically with customers and suppliers, because the structure and meaning of data
=== Conceptual, logical and physical schemas ===
[[File:4-2 ANSI-SPARC three level architecture.svg|thumb|320px|The ANSI/SPARC three
In 1975 [[American National Standards Institute|ANSI]] described three kinds of data-model ''instance'':<ref>American National Standards Institute. 1975. ''ANSI/X3/SPARC Study Group on Data Base Management Systems; Interim Report''. FDT (Bulletin of ACM SIGMOD) 7:2.</ref>
* [[Conceptual schema]]: describes the semantics of a ___domain (the scope of the model). For example, it may be a model of the interest area of an organization or of an industry. This consists of entity classes, representing kinds of things of significance in the ___domain, and
* [[Logical schema]]: describes the structure of some ___domain of information. This consists of descriptions of (for example) tables, columns, object-oriented classes, and XML tags. The logical schema and conceptual schema are sometimes implemented as one and the same.<ref name="RS001"/>
* [[Physical schema]]: describes the physical means used to store data. This is concerned with partitions, CPUs, [[tablespace]]s, and the like.
Line 51 ⟶ 49:
=== Data modeling process ===
{{further|Database design}}
[[File:Data modeling context.svg|thumb|360px|Data modeling in the context of [[
In the context of [[Business process modeling#Business process integration|business process integration]] (see figure), data modeling complements [[business process modeling]], and ultimately results in database generation.<ref name="SS93"/>
The process of designing a database involves producing the previously described three types of schemas
In the process, system [[Interface (computer science)|interface]]s 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 within an organization contain the same basic data, redeveloped for a specific purpose. Therefore, an efficiently designed basic data model can minimize rework with minimal modifications for the purposes of different systems within the organization<ref name="MW99"/>
=== Modeling methodologies ===
{{See also|Model-driven engineering}}
Data models represent information areas of interest. While there are many ways to create data models, according to [[Len Silverston]] (1997)<ref name="SIG97">Len Silverston, W.H.Inmon, Kent Graziano (2007). ''The Data Model Resource Book''. Wiley, 1997. {{ISBN|0-471-15364-8}}. Reviewed by [http://www.tdan.com/view-book-reviews/5593 Van Scott on tdan.com]. Accessed November 1, 2008.</ref> only two modeling methodologies stand out, top-down and bottom-up:
* Bottom-up models or View Integration models are often the result of a [[reengineering (software)|reengineering]] 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 architecture|enterprise perspective]]. They may not promote data sharing, especially if they are built without reference to other parts of the organization.<ref name="SIG97"/>
* Top-down [[logical data model]]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.<ref name="SIG97"/>
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.
=== Entity–relationship diagrams ===
Line 70:
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]].<ref name="WBD04"/> An entity–relationship model (ERM) is an abstract conceptual representation of structured data. Entity–relationship modeling is a relational schema [[database model]]ing method, used in [[software engineering]] to produce a type of [[conceptual schema|conceptual data model]] (or [[semantic data model]]) of a system, often a [[relational database]], and its requirements in a [[Top-down and bottom-up design|top-down]] fashion.
These models are being used in the first stage of [[information system]] design during the [[requirements analysis]] to describe information needs or the type of [[information]] that is to be stored in a [[database]]. The [[data model]]ing technique can be used to describe any [[Ontology (computer science)|ontology]] (i.e. an overview and classifications of used terms and their relationships) for a certain [[Domain of discourse|universe of discourse]] i.e. the 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:
Line 89:
[[File:HL7 Reference Information Model.jpg|thumb|320px|Example of a Generic data model.<ref>Amnon Shabo (2006). [http://healthit.hhs.gov/portal/server.pt?open=512&objID=1263&mode=2 Clinical genomics data standards for pharmacogenetics and pharmacogenomics] {{Webarchive|url=https://web.archive.org/web/20090722232240/http://healthit.hhs.gov/portal/server.pt?open=512&objID=1263&mode=2 |date=July 22, 2009 }}.</ref>]]
Generic data models are generalizations of conventional [[data model]]s. They define standardized general relation types, together with the kinds of things that may be related by such a relation type.
The definition of the 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]] 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
=== Semantic data modeling ===
Line 97:
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. That is unless the semantic data model is implemented in the database on purpose, a choice which may slightly impact performance but generally vastly improves productivity.
[[File:A2 4 Semantic Data Models.jpg|thumb|320px|Semantic data models.<ref name="FIPS184"/>]]
Therefore, the need to define data from a conceptual view has led to the development of [[semantic data model]]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.,
The purpose of semantic data modeling is to create a structural model of a piece of the real world, called "universe of discourse". For this, three fundamental structural relations are considered:
* Classification/instantiation: Objects with some structural similarity are described as instances of classes
* Aggregation/decomposition: Composed objects are obtained by joining their parts
* Generalization/specialization: Distinct classes with some common properties are reconsidered in a more generic class with the common attributes
A semantic data model can be used to serve many purposes, such as:<ref name="FIPS184"/>
*
*
*
*
The overall goal of semantic data models is to capture more meaning of data by integrating relational concepts with more powerful [[Abstraction (computer science)|abstraction]] concepts known from the [[
== See also ==
* [[Architectural pattern
* [[Comparison of data modeling tools]]
* [[Data (
* [[Data dictionary]]
* [[Document modelling|Document modeling]]
* [[Enterprise data
* [[Entity Data Model]]
* [[Information management]]
* [[Information model]]
* [[Building information modeling]]
* [[Metadata modeling]]
* [[Three
* [[Zachman Framework]]
Line 126 ⟶ 132:
== Further reading ==
* {{cite thesis
* J.H. ter Bekke (1991). ''Semantic Data Modeling in Relational Environments''▼
|first = Johannes Hendrikus
|last = ter Bekke
|date = 1991-06-04
|title = Semantic Data Modeling in Relational Environments
|degree = PhD
|___location = Technische Universiteit Delft
|url = https://scispace.com/pdf/semantic-data-modeling-in-relational-environments-k59h4x8kip.pdf
|url-status = live
|archive-url = https://web.archive.org/web/20250402180443/https://scispace.com/pdf/semantic-data-modeling-in-relational-environments-k59h4x8kip.pdf
|archive-date= 2025-04-02
|access-date = 2025-04-02
}}
▲<!-- * 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''.
Line 138 ⟶ 157:
{{Commons category|Data modeling}}
* [http://www.agiledata.org/essays/agileDataModeling.html Agile/Evolutionary Data Modeling]
* [http://www.softdevarticles.com/modules/weblinks/viewcat.php?cid=21 Data modeling articles] {{Webarchive|url=https://web.archive.org/web/20100307022237/http://www.softdevarticles.com/modules/weblinks/viewcat.php?cid=21 |date=March 7, 2010 }}
* [http://www.methodsandtools.com/archive/archive.php?id=9 Database Modelling in UML]
* [http://www.agiledata.org/essays/dataModeling101.html Data Modeling 101]
* [http://www.jhterbekke.net/SemanticDataModeling.html Semantic data modeling]
* [http://www.cems.uwe.ac.uk/~tdrewry/modeling.htm System Development, Methodologies and Modeling] {{Webarchive|url=https://web.archive.org/web/20120307100041/http://www.cems.uwe.ac.uk/~tdrewry/modeling.htm |date=March 7, 2012 }} Notes on by Tony Drewry
* [http://www.omg.org/cgi-bin/doc?ab/05-12-02 Request For Proposal - Information Management Metamodel (IMM)] of the Object Management Group
* [https://web.archive.org/web/20120625215800/http://www.ipl.com/papers/Data%20modelling%20is%20NOT%20JUST%20for%20DBMS%20part%201.pdf Data Modeling is NOT just for DBMS's Part 1] Chris Bradley
|