Enterprise Data Models
Enterprise Data Models
Some have said that enterprise data models are either impossible to
construct, or not worth it—or is it just that those who have said so do
not know how to do it?
Cont..
How do you judge whether an application’s data model is fit for
purpose? In many cases applications need to be configured; how does
this affect whether information requirements are being met, now, and
in the future?
Enterprise architecture.
What does this mean for data modeling?
What other elements do they relate to? How does this affect change
management?
“What is the difference between the British, the Germans, and the Italians?”
“I don’t know, what is the difference?”
“Well, for the British it is allowed unless it is forbidden, for the Germans it is
forbidden unless it is allowed, and for the Italians it is allowed especially if it is
forbidden.”
What Is a Data Model?
Well data models are like the Germans. (Previous Example/ Joke)
It is forbidden unless it is allowed.
• Simple
• Memorable
• Capable
In the end, any graphically based language consists of boxes and lines,
or more formally, nodes and links (some may prefer the terms vertex
and edge)
Rules and Constraints
Different data modeling languages allow different rules and constraints
to be defined.
For example, EXPRESS has a rather rich rules capability in its lexical
form.
However, most data modeling languages can only express cardinality
constraints.
Express-G: (EXPRESS-G Data Model)
Attributes and Relationships
for example, if you want to give an entity type called person an
attribute called name that is of type STRING, then you would construct
the model in Figure 2-6.
Reading Relationships and Cardinalities
Reading Relationships and
Cardinalities
Reading Relationships and
Cardinalities
Reading Relationships and
Cardinalities
SOME TYPES AND USES OF DATA MODELS
One of the things you often find people arguing about is what a data
model is, and what it is for. Here’s one of the secrets of analysis: when
you find people arguing passionately about something, try to discover
why they are both right. So it is with data models. Data models have
many purposes. These cause differences in both style and content,
which can cause confusion, surprise, and disagreement.
Physical Data Model
A physical data model represents the actual structure of a database—tables and
columns, or the messages sent between computer processes.
Here the entity types usually represent tables, and the relationship type lines
represent the foreign keys between tables. The data model’s structure will often
be tuned to the particular needs of the processes that operate on the data to
ensure adequate performance. It will typically include
• Restrictions on the data that can be held
• Denormalization to improve performance of specific queries
• Referential integrity rules to implement relationship types
• Rules and derived data that are relevant to the processes of the application(s)
the physical data model serves
Logical Data Model
There is a range of views on what a logical data model is.
A logical data model is a fully attributed data model that is fully normalized.
Fully attributed means that the entity types have all the attributes and
relationship types for all the data that is required by the application(s) it serves.
It may include
• Restrictions on the data that can be held
• Rules and derived data that are relevant to the processes of the application(s)
the logical data model serves The main difference , that many data models that
are described as logical actually have some level of denormalization in them,
particularly where change over time is involved
Conceptual Data Model
A conceptual data model is a model of the things in the business and the
relationships among them, rather than a model of the data about those things.
So in a conceptual data model, when you see an entity type called car, then you
should think about pieces of metal with engines, not records in databases.
As a result, conceptual data models usually have few, if any, attributes.
What would often be attributes may well be treated as entity types or relationship
types in their own right, and where information is considered, it is considered as
an object in its own right, rather than as being necessarily about something else.
A conceptual data model may still be sufficiently attributed to be fully
instantiable, though usually in a somewhat generic way.
Canonical Data Model
In the context of data models, a canonical data model means a data
model that is fully normalized and in which no derived data is held.
So a logical data model might or might not also be a canonical data
model.
Application Data Model
An application data model is (obviously) one that relates to a particular
application.
It may be any or all of the following data models: conceptual, logical,
physical, or canonical.
Business Requirements Data Model
The purpose of a business requirements data model is to capture and
reflect a statement of business requirements. For such a model, it is
important that the notation is simple and easily understood.
This data model will form a basis for further analysis, so it does not
need to capture all the detail.
It can also function as a useful framework for capturing business rules
as part of the definition of the entity types. So this type of data model
is essentially a simplified conceptual data model—perhaps without
cardinalities and without taking account of change over time, since
most users do not understand their implications.
A business requirements data model
for part of an order data model.
Integration Data Model
An integration data model integrates a number of separate
applications.
In order to do this, it needs to be instantiable. Its scope is usually either
all the data for the applications it integrates or any data that is shared
between at least two of these applications.
You can also use an integration data model to share data between
enterprises, for example, in the supply chain.
Enterprise Data Model
An enterprise data model is a type of integration model that covers all
(well, probably most in practice) of the data of an enterprise.
Your Enterprise Architecture may include enterprisewide data models
that are also conceptual, logical, or physical data models.
For most types of data model, it is fairly obvious when you need to
develop them. Enterprise data models, however, seem to be the
exception. There are many cases where enterprise data model projects
have been abandoned, or where the results have languished unused,
even when what was asked for has been delivered.
Business Information Model
Business information models are a type of application data model that
is used in data warehouses for reporting and slicing and dicing your
transaction data.
Instead of being normalized in their structure, these models are
arranged in terms of “facts” (transactions, typically), and the
“dimensions” (such as time, geography, or product lines) used to
specify reports.
Business Information Model
The simplest structure is a “star” pattern, with a fact or group of facts in
the middle, and dimensions radiating out from there. More complex
structures resemble “snowflakes.” There are some special rules that
apply to business information models;