|

Overview
IDEF1X is a method for designing relational databases
with a syntax designed to support the semantic constructs necessary
in developing a conceptual schema. A conceptual schema is a single
integrated definition of the enterprise data that is unbiased toward
any single application and independent of its access and physical
storage. Because it is a design method, IDEF1X is not particularly
suited to serve as an AS-IS analysis tool, although it is often
used in that capacity as an alternative to IDEF1. IDEF1X is most
useful for logical database design after the information requirements
are known and the decision to implement a relational database has
been made. Hence, the IDEF1X system perspective is focused on the
actual data elements in a relational database. If the target system
is not a relational system, for example, an object-oriented system,
IDEF1X is not the best method.
There are several reasons why IDEF1X is not well-suited
for non-relational system implementations. IDEF1X requires, for
example, that the modeler designate a key class to distinguish one
entity from another, whereas object-oriented systems do not require
keys to individuate one object from another. Further, in those situations
where more than one attribute or set of attributes will serve equally
well for individuating IDEF1X entities, the modeler must designate
one as the primary key and list all others as alternate keys. Explicit
foreign key labeling is also required. The resulting logical design
IDEF1X models are intended to be used by the programmers who take
the blueprint for the logical database design and implement that
design. However, the IDEF1X modeling language is sufficiently similar
to IDEF1 in that models generated from the IDEF1 information requirements
can be reviewed and understood by the ultimate users of the proposed
system.
In December 1993, the Computer Systems Laboratory
of the National Institute of Standards
and Technology (NIST) released IDEF1X as a standard for Data
Modeling in FIPS
Publication 184.
IDEF1X Concepts
Although the terminology between IDEF1 and IDEF1X
is very similar, there are fundamental differences in the theoretical
foundations and concepts of the two methods. An entity in IDEF1X
refers to a collection or set of similar data instances that can
be individually distinguished from one another. Individual members
of the set are called entity instances. Thus, a box in IDEF1X represents
a set of data items in the real-world realm. An attribute is a slot
value associated with each individual member of the set. The relationship
that exists between individual members of these sets is given a
name. In this case, this relation establishes a referential integrity
constraint.
A powerful feature of IDEF1X is its support for modeling
logical data types through the use of a classification structure
or generalization/specialization construct. This construct is an
attempt to overlay models of the natural kinds of things that the
data represents whereas the boxes, or entities, attempt to model
types of data things. These categorization relationships represent
mutually exclusive subsets of a generic entity or set. Subsets of
the superset cannot have common instances. For example, a generic
entity PERSON has two subsets representing all complete categories,
namely, MALE and FEMALE. No instance of the MALE subset can be an
instance of the FEMALE subset, and vice versa. The unique identifier
attribute for each subset is the same attribute as that for a generic
entity instance.
Syntax and Semantics of IDEF1X
Entities
In IDEF1X, entities are either identifier-independent
or identifier-dependent. Instances of identifier-independent entities
can exist without any other entity instance, while instances of
identifier-dependent entities are meaningless (by definition) without
another associated entity instance. Dependence and independence
are specific to a model.
Connection Relationships
Connection relationships (solid or dashed lines with
filled circles at one or both ends) denote how entities (sets of
data instances) relate to one another. The connection relationships
are always between exactly two entities. The connection relationship
beginning at the independent parent entity and ending at the dependent
child entity is labeled with a verb phrase describing the relationship.
Each connection relationship has an associated cardinality. The
cardinality specifies the number of instances of the dependent entity
that are related to an instance of the independent entity.
Categorization Relationships
Categorization relationships allow the modeler to
define the category of an entity. An entity can belong to only one
category. For instance, there could be an entity CAR that is the
generic entity in a category showing different types of cars. Each
category entity must have the same primary key as CAR. Also, there
must be a way of distinguishing between the category entities. The
category entities are distinguished by a discriminator attribute
which must have a different value for each category entity.
Attributes
Attributes are properties used to describe an entity.
Attribute names are unique throughout an IDEF1X model, and the meaning
of the names must be consistent. For example, the attribute "color"
could have several possible uses for hair color, skin color, or
a color in a rainbow. Each use has a range of meaningful values,
and thus, the entity must be distinctly named. Each attribute is
owned by exactly one entity. The attribute "social security
number," for example, could be used in many places in a model,
but would be owned by only one entity (e.g., PERSON). Other occurrences
of the social security number attributes would be inherited across
relations.
Every attribute must have a value (No-Null Rule),
and no attribute may have multiple values (No-Repeat Rule). Rules
enforce creating proper models. In a situation where it seems that
a rule cannot hold, the model is likely wrong.
Keys
A key is a group of attributes that uniquely identify
an entity instance. There are primary and alternate keys. Every
entity has exactly one primary key displayed above the horizontal
line in the entity box. Entities can have alternate keys that also
uniquely identify the entity, but are not used for describing relationships
with other entities.
In a connection relationship, the primary key of the
parent migrates to the child. If the relationship is a category
relation, the primary key of the child is the same as the generic.
If the relationship is an identifying relationship, the primary
key of the child must contain attributes inherited from the parent.
Besides the fact that a key must uniquely identify
an entity, all attributes in the key must contribute to the unique
identification (Smallest-Key Rule). Thus, when deciding whether
an inherited attribute should be part of a key, an issue is whether
that attribute is necessary for unique identification. It is not
sufficient that it contributed to the unique identification of the
parent.
There are also two dependency rules: The Full-Functional-Dependency
Rule states that if the primary key is composed of multiple attributes,
all non-key attributes must be functionally dependent on the entire
primary key. The No-Transitive-Dependency Rule states that every
non-key attribute must be functionally dependent only on key attributes.
Foreign Keys
Foreign keys are not really keys at all, but attributes
inherited from the primary keys of other entities. Foreign keys
are labeled (FK) to show that they are not owned by that entity.
Foreign keys are significant because they show the relationships
between entities. Because entities are described by their attributes,
if an entity is composed of attributes inherited from other entities,
that entity is similar to those entities.
Strengths of IDEF1X
IDEF1X is a powerful tool for data modeling even though
there are numerous other data modeling methods including ER and
ENALIM. One strength of IDEF1X lies in its roots. Due to the strict
standardization of DoD projects, IDEF1X will probably escape having
the numerous variants that have hindered the use of ER. Having a
standard and adhering to it are crucial to transferring knowledge
between organizations.
A weakness of nearly all methods including IDEF1X
is that the modeler must be experienced in order to create good
models. Modeling is not an intuitive process, and many times models
will be discarded due to a poor start. The simpler the method is
to use, the better, but the method must still have the necessary
expressive power. A good example of a powerful concept which can
be abused is the category relation. Whereas there are cases when
categories are necessary, there are other cases when they are used
to create meaningless entities. Many inexperienced IDEF1X modelers
tend to fall into the trap of using the categorization features
of IDEF1X to model natural taxonomies as opposed to data taxonomies
as they are intended. Because of the categorization components of
the IDEF1X method, many domain experts have fallen into the trap
of using the method for concept and terminology definition. Unfortunately,
the data modeling considerations built into the IDEF1X rules do
not allow it to function adequately for this purpose. The result
is that much of the information gathered cannot be expressed or
is expressed erroneously. For example, to function adequately as
a language for concept and terminology definition, IDEF1X would
have to be capable of expressing facts such as "A statement
of work is a document and is a legal contract" and "A
square is a polygon with four equal sides."
KBSI has developed an automated Information and Data
Modeling tool, SMARTER®,
to support the IDEF1 and IDEF1X methods.
|