In [[computer science]], '''data modeling''' is the process of structuring and organizing data, typically using a [[database management system]].
Managing large quantities of structured and unstructured data is a primary function of information systems. Data ismodels seen as falling into two general categories:describe structured and unstructured. Unstructured data (somethingfor ofstorage a misnomer, as allin data beingmanagement managedsystems bysuch computersas requiresrelational somedatabases. baseThey structuretypically indo ordernot todescribe beunstructured translated into digital format) refers todata, such thingsas as[[Word processor|word processing]] documents, emails[[Email|email messages]], pictures, digital audio, and video,. andEarly phases of many software development projects emphasize the like.design of a [[Conceptual Structuredschema|conceptual data ismodel]]. thatSuch storeda bydesign datacan managementbe systemsdetailed suchinto asa relational[[logical databasesdata model]]. AIn spreadsheetlater isstages, athis verymodel simplemay examplebe oftranslated structuredinto [[physical data model]].
==Data model==
Structured data is described by data models. In the early phases of a software development project, emphasis will be on the design of a [[conceptual schema|conceptual data model]]. This can be detailed into a [[logical data model]] sometimes called a [[functional data model]]. In later stages, this model may be translated into [[physical data model]].
The term ''data model'' actually refers to two very different things: a description of data structure and the way data is organized using, for example, a database management system.
===Data structure===
The term ''data modeling'' actually refers to two very different things. In the first sense, aA data model is a description ofdescribes the structure of the data within a given ___domain of concernand, and by implication of, the underlying structure of that ___domain itself. ForA example, adata model may thus represent classes of things of significanceentities about which a company wishes to hold information (''entity classes''), the natureattributes of that information (''attributes''), and relationships among those thingsentities. The organizationmodel of data presented is all about describingdescribes the organization andirrespective is not concerned withof how data might be represented in a computer system.
The entity classesentities represented canby bea thedata tangiblemodel thingscan seen bybe the peopletangible in the businessentities, but thesemodels tendthat toinclude be verysuch concrete andentity subjectclasses tend to change over time. Robust Adata moremodels robustoften approachidentify is "conceptual" identifying more fundamental things[[abstraction]]s of significance--of which the things the business sees aresuch examplesentities. For example, ana entitydata class thatmodel might appearinclude inan aentity givenclass modelcalled is PERSON"<code>Person</code>", representing all the people thatwho interact with an organization is concerned with. [NOTE:Such Exceptan for the word "NOTE" words in all capital letters refer toabstract entity class names.]is typically Entitymore classesappropriate likethan VENDORones andcalled EMPLOYEE"<code>Vendor</code>" areor not appropriate"<code>Employee</code>", becausewhich eachidentify ofspecific these describes a roleroles played by athose PERSON not the person themselfpeople.
ProperlyA done, aproper conceptual data model describes thean organization's semantics. It is a collection of assertions about the nature of the businessorganization. This requires theProper entity classclasses namesare tonamed bewith innatural Englishlanguage (orwords Frenchinstead or Polish or whatever), notof technical termsjargon. Likewise, It also requires discipline inproperly namingnamed relationships so that sentences can be formed from them that representform concrete assertions about the businessorganization. For Oneexample, such discipline makes thean relationship namescalled prepositions"<code>is (notcomposed verbs)of</code>" sooperating thaton theyentity can appear in the sentence Eachclasses "<code>Order<entity 1>/code>" {mustand be|may be}"<code>Line item<<relationship name>/code>" {oneforms andthe onlyconcrete one|oneassertion or more}"Each <code>Order<entity 2/code>>. For example, "Each ORDER must be '''<code>is composed of one</code>''' one or more LINE<code>Line ITEMSitem</code>s."
===Data organization===
The secondAnother kind of data model describes thehow wayto organize data would be organized using a database management system or other data management technology. ThisIt describes, for example, relational tables and columns or object-oriented classes and attributes. Such Thisa data model is sometimes referred to as the "''[[physical" data model]]'', but in the original ANSI three schema architecture, thisit is called "logical". In that worldarchitecture, the physical model describes the storage media (cylinders, tracks, and tablespaces). Ideally, this model will beis derived from the more conceptual onedata justmodel described, if it is to be the basis for a system that will truly serve the organizationabove. It may differ for good and valid reasons, however, since the system designer must nowto account for thingsconstraints like processing capacity, and usage patterns, and the like.
While ''data analysis'' is a common term for data modeling, the activity actually has more in common with the ideas and methods of ''[[synthesis]]'' (inferring general concepts from particular instances) than it does with ''[[analysis]]'' (identifying component concepts from more general ones). {''Presumably we call ourselves [[systems analysts]] because no one can say [[systems synthesists]].''} Data modeling strives to bring the data structures of interest together into a cohesive, inseparable, whole by eliminating unnecessary data redundancies and by relating data structures with [[Relational model|relationships]].
A different approach is through the use of [[adaptive systems]] such as [[artificial neural networks]] that can autonomously create implicit models of data.
==Techniques==
Several techniques have been developed for the design of a 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]]s* [[Object-relationship modeling]]
* [[Artificial neural network]]s
==See also==
|