The Enhanced Entity-Relationship Model
The Enhanced Entity-Relationship Model
net/publication/249822321
CITATIONS READS
12 3,444
1 author:
Bernhard Thalheim
Christian-Albrechts-Universität zu Kiel
516 PUBLICATIONS 4,689 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Bernhard Thalheim on 03 November 2014.
4-6
Structuring Specification • Functionality Specification •
4-24
Bernhard Thalheim Semantics of Structuring • Semantics of Functionality
Department of Computer Science,
Christian-Albrechts University Kiel, 4.4 Problems with Modelling and Constraint Specification
24098 Kiel, Germany
thalheim@is.informatik.uni-kiel.de 4-32
0-8493-8597-0/01/$0.00+$1.50
°c 2007 by CRC Press, LLC 4-1
4-2
Object-wise representation and storage: Graph-based models which have been developed in
order to simplify the object-oriented approaches [BT99] display objects by their sub-
graphs, i.e. by the set of nodes associated to a certain object and the corresponding
edges. This representation corresponds to the representation used in standardization.
Object-wise storage has a high redundancy which must be maintained by the system thus
decreasing performance to a significant extent. Aside from performance problems such
systems also suffer from low scalability and poor utilization of resources. The operating of
such systems leads to lock avalanches. Any modification of data requires a recursive lock
of related objects.
Therefore, objects-wise storage is applicable only under a number of restrictions:
• The application is stable and the data structures and the supporting basic functions
necessary for the application do not change during the lifespan of the system.
• The data set is almost free of updates. Updates, insertions and deletions of data are
only allowed in well-defined restricted ‘zones’ of the database.
A typical application area for object-wise storage is archiving or information presentation
systems. Both systems have an update system underneath. We call such systems play-out
systems. The data are stored in the way in which they are transferred to the user. The
data modification system has a play-out generator that materializes all views necessary for
the play-out system.
Two implementation alternatives are already in use albeit more on an intuitive basis:
Object-oriented approaches: Objects are decomposed into a set of related objects. Their as-
sociation is maintained on the basis of OID’s or other explicit referencing mechanisms.
The decomposed objects are stored in corresponding classes.
XML-based approaches: The XML description allows null values to be used without notifica-
tion. If a value for an object does not exist, is not known, is not applicable or cannot
be obtained etc. the XML schema does not use the tag corresponding to the attribute
or the component. Classes are hidden. Thus, we have two storage alternatives for
XML approaches which might be used at the same time or might be used separately:
We may use the first representation for our storage engine and the second represen-
tation for out input engine and our output engine in data warehouse approaches. The
input of an object leads to a generation of a new OID and to a bulk insert into several
classes. The output is based on views.
The first representation leads to an object-relational storage approach which is based
on the ER schema. Thus, we may apply translation techniques developed for ER
schemata[Tha00].
The second representation is very useful if we want to represent an object with all its
facets. For instance, an Address object may be presented with all its data, e.g., the
The Enhanced Entity-Relationship Model 4-5
• The generic operations insert, delete, and update are defined for each
type.
• The algebra consists of classical set operations, such as union, intersection,
difference and restricted complement, and general type operations, such
as selection, map (particular examples of this operation are (tagged) nest,
unnest, projection, renaming), and pump (particular examples of this op-
eration are the classical aggregation functions). The fixpoint operator is
not used.
4-6
The extensions of the ER model should be safe in the sense that appropriate semantics
exist. There is a large variety of proposals which are not safe. Some reasons for this include
higher-order or function types, such as those used for the definition of derived attributes,
or the loss of identification.
It can be observed that higher-order functions can be attached to the type system. How-
ever, in this case types do not specify sets, although their semantics can be defined by
topoi [Sch94, Gol06]. This possibility limits simplicity for the introduction of constraints
and operations. Furthermore, these semantics are far too complex to be a candidate for
semantics. The ER model is simpler than OO models.
Precision and accuracy: Data can be precise to a certain extent. Precision is the de-
gree of refinement in the calculations. Accuracy is a measure of how repeatable the
assignment of values for properties is.
Granularity: Scales can be fine or coarse. The accuracy of data depends on the granularity
of the domain which has been chosen for the representation of properties.
Ordering: The ordering of values of a given domain can be based on ordering schemes
such as lexicographic, geographic or chronological ordering or on exact ordering such
as orderings on natural numbers. The ordering can also be based on ontologies or
categories. Scales have a range with lowest values and highest values. These values
can be finite or infinite. If they are finite then overflow or underflow errors might be
the result of a computation.
Classification: The data can be used for representation of classifications. The classifi-
cation can be linear, hierarchical, etc. The classification can be mono-hierarchical
or poly-hierarchical, mono-dimensional or poly-dimensional, analytical or synthetical,
monotetical or polytetical. The classification can be based on ontologies and can be
maintained with thesauri.
Presentation: The data type can be mapped to different representation types dependent
on several parameters. For instance, in Web applications, the format chosen for pre-
sentation types of pictures depends on the capacity of the channel, on the compression
etc. The presentation might be linear or hierarchical and it can be layered.
Implementation: The implementation type of the attribute type depends on the proper-
ties of the DBMS. The implementation type also influences the complexity of compu-
tations.
Default values: During the design of databases, default values can be assigned in or-
der to store properties regarding the existence of data such as ‘exists but not at the
moment’, ‘exist but not known’, ‘exists but under change’, ‘at the moment forbid-
den/system defined/wrong’, ‘not reachable’, ‘until now not reachable’, ‘not entered
yet’, ‘not transferable/transferred’, ‘not applicable to the object’. Usually, only one
default value is allowed. An example of a specific default value is the null value.
Casting functions: We assume that type systems are (strongly) typed. In this case we
are not able to compare values from different domains and to compute new values
from a set of values taken from different domains. Casting functions can be used to
map the values of a given domain to values of another domain.
It should be noted [LS97, LT01] that the data type restricts the operations which can be
applied. Databases often store units of measure which use a scale of some sort. Scales
can be classified [Cel95] according to a set of properties such as the following: a natural
origin point of scale represented usually by a meaningful ‘zero’ which is not just a numeric
zero; applicability of meaningful operations that can be performed on the units; existence
of natural orderings of the units; existence of a natural metric function on the units. Metric
functions obey triangular property, are symmetric and map identical objects to the scales
origin. For instance, adding weights is meaningful whereas adding shoe sizes looks odd.
The plus operation can be different if a natural ordering exists. Metric values are often
relative values which are perceived in different ways, e.g., the intensity of light.
Typical kinds of data types are compared in the following table:
4-8
We, thus, extend basic data types to extended data types by description Υ of precision
and accuracy, granularity, order, classification, presentation, implementation, special values,
null, default values, casting functions, and scale.
This extended specification approach avoids the pitfalls of aggregation. Aggregation func-
tions can be applied to absolute and ratio values without restriction. Additive aggregation
and min/max functions can be applied to interval values. The average function can only
be applied to equidistant interval values. The application of aggregation functions such as
summarization and average to derived values is based on conversions to absolute or ratio
values. Comparison functions such as min/max functions can be applied to derived values
only by attribution to ratio or absolute values. The average function can only be applied
to equidistant interval values. Aggregation functions are usually not applicable to nominal
values, ordinal values, and rank values.
Given a set of (extended) base types T and a set of names U , a data scheme DD =
(U, T , dom) is given by a finite set U of type names, by a set T of extended base types, and
by a domain function dom : U → T that assigns to each base type name its “domain” type.
We denote DD by {A1 :: dom(A1 ), ...., Am :: dom(Am )} in the case that the set of type
names U = {A1 , ...., Am } of the data scheme is finite. The Ai are called atomic attributes
or basic attributes.
Given additionally a set of names N A different from U and a set of labels L distinct from
N A and U , we inductively introduce the set U N of complex attribute types or shortly
complex attributes:
• Any atomic attribute is a complex attribute, i.e. U ⊆ U N .
• If X ∈ U N then l : X ∈ U N for l ∈ L (labelled attribute).
• If X ∈ U N then [X] ∈ U N (optional attribute).
• If X1 , ..., Xn ∈ U N and X ∈ N A then X(X1 , ..., Xn ) is a (tuple-valued) complex
attribute in U N . This attribute type can also be used in the notion X.
• If X 0 ∈ U N and X ∈ N A then X{X 0 } is a (set-valued) complex attribute in U N .
• No other elements are in U N .
The set L is used as an additional naming language. Each attribute can be labeled by
names or labels from L. Labels can be used as alias names for attributes. They are useful
for shortening expressions of complex attributes. They can carry a meaning but do not
carry semantics. They can be omitted whenever it is not confusing.
Additionally, other type constructors can be used for defining complex attributes:
• lists of values, e.g., < X >,
M ax
• vectors or arrays of values, e.g., XM in (Y ) with an index attribute Y , and minimal
and maximal index values and
• bags of values, e.g., {|X|} .
The Enhanced Entity-Relationship Model 4-9
For reasons of simplicity we restrict the model to tuple and to set constructors. However,
list and bag constructors can be used whenever type constructors are allowed.
Typical examples of complex attributes are
Name : (FirstNames<(FirstName,use)>, FamName, [NameOfBirth,]
·
Title:{AcadTitle} ∪ FamTitle)
Contact : (Phone({AtWork}, private), email, ...)
DateOfBirth :: date
AcadTitel :: titleType
PostalAddress : (Zip, City, Street, HouseNumber)
for dom(Zip) = String7, dom(City) = VarString, dom(Street) = VarString,
dom(HouseNumber) = SmallInt.
Now we can extend the function dom to Dom on U N .
• Dom(λ) = ∅ for the empty word λ.
• For A ∈ U , Dom(A) = dom(A).
• For l : X ∈ U N , Dom(l : X) = Dom(X).
• For [X] ∈ U N , Dom([X] = Dom(X) ∪ λ.
• For X(X1 , ..., Xn ) ∈ U N , Dom(X) = Dom(X1 ) × ... × Dom(Xn )
where M1 × ... × Mn denotes the Cartesian product of the sets M1 , ..., Mn .
• For X{X 0 } ∈ U N , Dom(X{X 0 }) = P ow(Dom(X))
where P ow(M ) denotes the powerset of the set M .
Two attribute types X, Y are called domain-compatible if Dom(X) = Dom(Y ).
For the data scheme DD the set DDD denotes the union of all sets Dom(X) for X ∈ U N .
The subattribute A of B is inductively defined in the same manner (denoted by A ¹ B).
A is a non-proper subattribute of A but not a proper subattribute of A. X(Xi1 , ..., Xim ) and
X(X10 , ..., Xn0 ) are subattributes of X(X1 , ..., Xn ) for subattributes Xj0 of Xj (1 ≤ j ≤ j).
X{X 00 } is a subattribute of X{X 0 } for a subattribute X 00 of X 0 .
The notion of entity types can be extended to entity types with key sets:
E $ (attr(E), {idj (E) | 1 ≤ j ≤ m}) with m keys.
We assume that attributes are unique in an entity type. Therefore, we can omit the set
brackets. Identifiers may be given by underlining the corresponding attributes.
Entities or objects o of E can be now defined as tuples on attr(E).
An entity of the type Person is for instance the object
β: ((<(Karl,SecondChristian),(Bernhard,Christian)>, Thalheim,
{Prof., Dr.rer.nat.habil., Dipl.-Math.}),
CAU Kiel, (({ +49 431 8804472, +49 431 8804054}, ),
thalheim@is.informatik.uni-kiel.de), 10.3.1952, 637861, ...).
At any fixed moment in time t an entity class E C for the entity type E is a set of objects
o on attr(E)
• for which id(E) is a key, i.e., the inequality oid(E) 6= o0id(E) is valid for any two different
objects or tuples o, o0 from E C , and
• the set of integrity constraints Σ is valid.
In some cases, (entity) types may be combined into a union of types or so called cluster
types. Since we need to preserve identification we restrict the union operation to disjoint
unions. Clusters based on entity types can be defined by the disjoint union of types.
Furthermore, we require that the identification types of the components of a cluster are
domain-compatible. Take now the set of types {R1 , ..., Rk } as given.
These types can be clustered by a “category” or a cluster type
C $ l1 : R1 + l2 : R2 + ... + lk : Rk .
Labels can be omitted if the types can be distinguished.
Examples of cluster types are the following types
· ·
JuristicalPerson $ Person ∪ Company ∪ Association ,
· ·
Group $ Senate ∪ WorkingGroup ∪ Association .
For a cluster type C $ l1 : R1 + l2 : R2 + ... + lk : Rk we can similarly define the cluster
class C C as the ‘disjoint’ union of the sets R1C , ..., RkC . If R1 , ..., Rk are entity types then
C is a cluster of entity types. The cluster is defined if R1C , ...RkC are disjoint.
Entity types E1 , ..., Ek are now given. A (first-order) relationship type has the form
R $ (ent(R), attr(R), Σ) where
• R is the name of the type,
• ent(R) = l1 : R1 , ..., ln : Rn is a sequence of (labelled) entity types and of clusters of
these,
• attr(R) = {B1 , ...., Bk } is a set of attributes from U N , and
• Σ is a set of integrity constraints.
First-order relationship types that have only one entity type are called unary, those with
two entity types are called binary and those with several labelled occurrences of the same
entity type are called recursive. Labels can be omitted if the types can be distinguished.
Example of a first-order relationship types are the types
InGroup $ (Person, Group, { Time(From [,To]), Position }),
DirectPrerequisite $ (hasPrerequisite : Course, isPrerequisite : Course),
Professor $ (Person, { Specialization }),
Student $ ( Person, { StudNo } ),
Enroll = (Student, CourseHeld, { Result } ),
Major $ ( Student, Program, ∅ ),
Minor $ ( Student, Program, ∅ ).
The Enhanced Entity-Relationship Model 4-11
The last disjointness condition can be weakened by labels. If we use extended relationship
types then identifying subcomponents can be used instead of the full representation.
A set {E1 , ...En , R1 , ..., Rm } of entity, cluster and (higher-order) relationship types on a
data scheme DD is called complete if any relationship types use the types from
{E1 , ...En , R1 , ..., Rm } as components. A complete set of types is also called EER schema
S. The EER schema is going to be extended by constraints. The EER schema is defined
by the pair (S, Σ).
We can represent a complete set of entity, cluster and relationship types by ER diagrams.
One possible kind of diagram is displayed in Figure 4.1. Entity types are represented
graphically by rectangles. Attribute types are associated with the corresponding type.
Relationship vertices are represented graphically
L by diamonds. Clusters are represented by
diamonds labelled with root illustrated or simply as a common input point to a diamond.
Set4{} Request
Program ¾ Proposed - Room
Course
Time(Proposal, *6
Proposal 6SideCondition)
[] []
+
Kind ¾ Planned ¾ Course
[] Course Held
TimeFrame
This style of drawing diagrams is one of many variants that have been considered in the
literature. The main difference of representation is the style of drawing unary types. Three
different styles are depicted in Figure 4.2. We prefer the compact style in the left diagram.
6 6 6
changed. Variations and versions can be modeled on the basis of hierarchy abstraction.
Hierarchies may be combined and the root types of the hierarchies are generalized to a
common root type. The combination may lead to a graph which is not a tree but a forest,
i.e., an acyclic graph with one root. The variation of the root type is formed by a number
of dimensions applicable to the type. For instance, addresses have specialization dimension,
a language dimension, an applicability dimension and a classification dimension.
Schemata may have a number of dimensions. We observe that types in a database
schema are of very different usage. This usage can be made explicit. Extraction of this uti-
lization pattern shows that each schema has a number of internal dimensions : Specialization
dimension based on roles objects play or on categories into which objects are separated;
association dimension through bridging related types and in adding meta-characterization
on data quality; usage, meta-characterization or log dimension characterizing log informa-
tion such as the history of database evolution, the association to business steps and rules,
and the actual usage; data quality, lifespan and history dimension. We may abstract from
the last two dimensions during database schema development and add these dimensions as
the last step of conceptual modeling. In this case, the schema which is considered until this
step is concerned with the main facets of the application.
The metadata dimension describes the databases data. Metadata guide utilization of
evaluation functions. The management of metadata is based on a number of steps:
Creation of meaningful metadata is based on a proper characterization of the data by their
history, their association to the documents from which the data have been taken, and
an evaluation of the quality of the source. Metadata must be appropriate to their
use within the model suite. At the same time they must be adequate. Meaningful
metadata help to understand the data that are available and provide information how
these data can be used.
Maturing metadata can be based on adding the context of the data and the metadata,
e.g., by a characterization of time and integrity. Any change in the data must be
reflected by changes in the metadata. This change management is based on explicit
maintenance of data heritage with respect to the real world at the time the data was
initially captured and stored and on data lineage depending on the path taken by the
data from initial capture to its present location and how it was altered along that
path.
Management of metadata becomes important whenever the redundancy of data increases,
e.g. in data warehouses, in files of data that are reusing, aggregating and combining
their data from other or own data. Simple metadata management has been built into
data dictionaries, is used in data modelling tools, etc. Extended metadata manage-
ment has been incorporated into data repositories. Nowadays metadata are becoming
an essential source of information and a supporting facility for sophisticated search.
Metadata management supports sophisticated storage, concurrent and secured ac-
cess, and ease of use with browsing, searching, indexing, integration and association
facilities.
Maintenance of metadata must be automated, includes quality assurance, reprocessing,
uses intelligent versioning, configuration and combination, and has refreshment cy-
cles.
Migration and sharing of metadata becomes crucial if data source are kept distributed, are
heterogeneous, if they are shared among different kinds of usages, if interoperability of
different data sources is necessary, and if portability requires a change due to different
operational use while maintaining old applications.
The Enhanced Entity-Relationship Model 4-15
Schemata may have a metastructure and may consist of several components [Tha04].
These components may be interrelated and may intersect. Some of them are completely
independent of interrelated through specific associations (connector types). This meta-
structure is captured by the skeleton of the schema. This skeleton consists of the main
modules without capturing the details within the types. The skeleton structure allows to
separate parts of the schema from others. The skeleton displays the structure at a large.
At the same time, schemata have an internal meta-structure.
Component-based ER modelling does not start with the singleton type. First, a skele-
ton of components is developed. This skeleton can be refined during the evolution of the
schema. Then, each component is developed step by step. Each refinement leads to a com-
ponent database schema. If this component is associated to another component then its
development must be associated with the development of the other component as long as
their common elements are concerned.
Temporality is described for extended ER models in a variety of ways.
• Data may be temporal and depend directly on one or more aspects of time. We
distinguish three orthogonal concepts of time: temporal data types such as instants,
intervals or periods, kinds of time, and temporal statements such as current (now),
sequenced (at each instant of time) and non-sequenced (ignoring time). Kinds of time
are: existence time, lifespan time, transaction time, change time, user-defined time,
validity time, and availability time. The first two kinds of time are not considered
in databases since they are integrated into modelling decisions. Temporal data are
supported by specific temporal functions. These functions generalize Allen’s time logic
[All84].
• The database schema may be temporal as well. The evolution covers the aspect of
changes in the schema. The best approach to handle evolution is the separation of
parts of the schema into those types that are stable and into those types of the schema
that are changing. The change schema is a meta-schema on those components that
evolve.
• Database systems have to support different temporal viewpoints and temporal scopes
of users. Therefore, the database schema has a temporal representation dimension.
Typical large systems such as SAP R/3 support this multi-view concept by providing
views on the same data. These views are updateable and are equivalent to each
other. Another extension of ER model which supports multi-scoping is the explicit
introduction of multiple representations of each type. The types are enhanced by a
controller that supports the generation of the appropriate view on the type.
The EER algebra uses type-preserving functions and type-creating functions. Simple
type-preserving functions generalize the classical set-theoretic functions. Let RC1 and RC2
be classes over the same type R.
The union RC1 ∪ RC2 is the standard set union of RC1 and RC2 .
The difference is RC1 \ RC2 is the standard set difference of RC and RC2 .
The intersection RC1 ∩ RC2 is the set intersection of RC1 and RC2 .
Clearly, the types of the union, the intersection and the difference are T .
Type-creation functions on type systems can be defined by structural recursion [Bee92,
BLS+ 94, Wad87]. Given types T , T 0 and a collection type C T on T (e.g. set of values of type
T , bags, lists) and operations such as generalized union ∪C T , generalized intersection ∩C T ,
and generalized empty elements ∅C T on C T . Given further an element h0 on T 0 and two
functions defined on the types h1 : T → T 0 and h2 : T 0 ×T 0 → T 0 ,
C
we define the structural recursion by insert presentation for R on T as follows:
srech0 ,h1 ,h2 (∅C T ) = h0
srech0 ,h1 ,h2 (|{|s|}|) = h1 (s) for singleton collections |{|s|}| consisting of an object s
srech0 ,h1 ,h2 (|{|s|}| ∪C T RC ) = h2 (h1 (s), srech0 ,h1 ,h2 (RC )) iff |{|s|}| ∩C T RC = ∅C T .
All operations of the relational database model and of other declarative database models
can be defined by structural recursion.
Given a selection condition α. Selection is½defined by σα = srec∅,ια ,∪ for the function
{o} if {o} |= α
ια ({o}) =
0 T ∅ otherwise
and the type T = C .
Selection is a type-preserving function.
Projection is defined by πX = T [X] = srec∅,πX ,∪ for the subtype X of T , the function
πX ({o}) = {o|X }
that restricts any object to the components of X and the type T 0 = C X .
(Natural) Join is defined by 1= srec∅,1T ,∪ for the type T = T1 × T2 , the function
1T ({(o1 , o2 )}) = {o ∈ Dom(T1 ∪ T2 ) | o|T1 = o1 ∧ o|T2 = o2 }
and the type T 0 = C T1 ∪T2 .
The natural join is equal to the Cartesian product of the intersection of T1 and T2 is empty
and is equal to the intersection if T1 and T2 coincide.
The Cartesian product RC × S C is a class of the scheme T = R ◦ S and equals
{t ∈ Dom(T )|t[R] ∈ RC ∧ t[S] ∈ S C } .
The concatenation of types is denoted by ◦.
Renaming is defined by ρX,Y = srec∅,ρX,Y ,∪ for the subtype X of T and a type Y with
Dom(X) = Dom(Y ) and for the function
ρX,Y ({(o)}) = {o0 ∈ Dom((T \ X) ◦ Y ) | o|T \X = o0 |T \X ∧ o|X = o0 |Y }
and the type T 0 = C (T \X)◦Y .
Nesting is defined by νX = srec∅,ρX,{X} ,h2 for the subtype X of T = R,
for the type T 0 = C (R\X)tR {X} , and for the function
h2 ({o0 }, T 0C ) = {o0 } ∪ T 0C if o0 |X 6∈ πX (T 0C )
h2 ({o0 }, T 0C ) ={ o ∈ Dom(T 0 ) | ∃o0 ∈ T 0C : o|R\X = o0 |R\X
∧ o(X) = { o00 [X] | o00 ∈ T 0C ∧ o0 |R\X = o00 |R\X }}
0 0C
in the case that o |X ∈ πX (T ).
Unnesting is defined by µX = srec∅,ρX,{X} ,h2 for the set subtype {X} of T = R,
for the type T 0 = C (R\{X})◦X , and for the function
h2 ({o0 }, T 0C ) = {o0 }∪
{ o ∈ Dom(T 0 ) | ∃o00 ∈ RC : o[R \ {X}] = o00 [R \ {X}] ∧ o|X ∈ o00 |X }
One can distinguish between distributive, algebraic and holistic aggregation functions:
Distributive or inductive functions are defined by structural recursion. They preserve
partitions of sets, i.e. given a set X and a partition X = X1 ∪ X2 ∪ ... ∪ Xn of X into
pairwise disjoint subsets. Then for a distributive function f there exists a function
g such that f (X) = g(f (X1 ), ..., f (Xn )). Functions such as count, sum, min, max
are distributive.
Algebraic functions can be expressed by finite algebraic expressions defined over distribu-
tive functions. Typical examples of algebraic functions in database languages are
average and covariance. The average function for instance can be defined on the
basis of an expression on count and sum.
4-18
Holistic functions are all other functions. For holistic functions there is no bound on
the size of the storage needed to describe a sub-aggregate. Typical examples are
mostFrequent, rank and median . Usually, their implementation and expression
in database languages require tricky programming. Holistic functions are computable
over temporal views.
We use these functions for definition of derived elementary modification functions:
Insertion of objects: The insert-function Insert(RC , o) is the union RC ∪ {o} for classes
RC and objects o of the same type R.
Deletion/removal of objects: The delete-function Delete(RC , o) is defined through the dif-
ference RC \ {o} for classes RC and objects o of the same type R.
Update of objects: The modification Update(RC , α, γ) of classes RC uses logical conditions
α and replacement families γ = {(o, RCo )} that specify which objects are to be re-
placed by which object sets. The update-function Update(RC , α, γ) is defined through
the set [
RC \ σα (RC ) ∪ RCo .
o∈σα (RC )
0
We notice that this definition is different from the expression RC \ σα (RC ) ∪ RC
that is often used by DBMS instead of update operations, e.g. by Delete(RC , o);
0
InsertUpdate(RC , o0 ) . If for instance σα (RC ) = ∅ and RC 6= ∅ then the effect of
the update operation is lost.
Structural recursion on collection types together with the canonical operations provide us
with a powerful programming paradigm for database structures. If collections are restricted
to ‘flat’ relations then they express precisely those queries that are definable in the rela-
tional algebra. By adding a fixed set of aggregate operations such as sum, count, max, min
to comprehension syntax and restricting the input to ‘flat’ relations, we obtain a language
which has the expressive power of SQL. It should be noticed that structural recursion is
limited in expressive power as well. Nondeterministic tuple-generating (or object generat-
ing) while programs cannot be expressed. The definition of structural recursion over the
union presentation uses the separation property since the h2 function is only defined for
disjoint collections. Therefore, programs which are not definable over the disjoint union of
parts are not representable. However, most common database operations and all database
operations in SQL are based on separation. The traversal combinator [FSS92] concept is
more general. It capture a large family of type-safe primitive functions. Most functions
that are expressed as a sequence of recursive programs where only one parameter becomes
smaller at each recursive call are members of this family. However, this restriction excludes
functions such as structural equalities and ordering because they require their two input
structures to be traversed simultaneously. The uniform traversal combinator generalizes
this concept by combinators each takes functions as inputs and return a new function as
output which performs the actual reduction.
An EER query is simply an EER expression of the EER algebra. The expression
EER query is defined on the EER types R1 , ..., Rn and maps to the target type S1 , ..., Sm .
Any database schema D that contains R1 , ..., Rn is therefore mapped to the schema S q =
{S1 , ..., Sm }. EER queries may be enhanced by parameters. We can consider these param-
eters as an auxiliary schema A. Therefore an EER query is a mapping from D and A to S,
i.e.
q : D × A → Sq .
A EER query for which the schema S q consists of a singleton atomic attributes and base
type is called singleton-value query.
The Enhanced Entity-Relationship Model 4-19
The relational database model only allows target schemata consisting of one type. This
restriction is not necessary for EER model. The target schema of the EER query is an EER
schema as well. Therefore, we can build query towers by applying queries to the schemata
obtained through query evaluation. Therefore, an EER query is a schema transformation.
Transactions combine modification operations and queries into a single program. Fol-
lowing [LL99], we define a transaction T over (S, Σ) as a finite sequence o1 ; o2 ; o3 ; ...; om
of modification and retrieval operations over (S, Σ). Let read(T ) and write(T ) the set of
basic read and write operations in T .
Transactions may be applied to the database state DC sequentially and form a transition
T (DC ) = om (...(o2 (o1 (DC )))). The result of applying the transaction T to a database
(state) DC is the transition from this database to the database T (DC ). The transaction
semantics is based on two assumptions for a databases schema D = (S, Σ):
Atomicity and consistency: The program is either executed entirely or not executed at
all and does preserve the semantics of the database.
Exhaustiveness: The transaction is executed only once.
The effect of application of T to DC is defined as an atomic constraint preserving transition
½
T (DC ) if T (DC ) |= Σ
T (DC ) =
DC if T (DC ) 6|= Σ
We notice that atomic constraint preserving transitions can only be executed in a form
isolated from each other. Transactions T1 and T2 are competing if read(T1 ) ∩ write(T2 ) 6=
∅ or read(T2 ) ∩ write(T1 ) 6= ∅ or write(T2 ) ∩ write(T1 ) 6= ∅ .
Parallel execution of transactions T1 k T2 is correct if either the transactions are not
competing or the effect of T1 kT2 (S C ) is equivalent to T1 (T2 (S C )) or to T2 (T1 (S C )) for
any database S C . If parallel execution is correct transaction execution can be scheduled in
parallel.
Exhaustiveness can be implemented by assigning two states to each transaction: inactive
(for transactions that are not yet executed) and completed (for transactions that have lead
to a constraint preserving transition).
A large variety of approaches to workflow specification has been proposed in the litera-
ture. We use basic computation step algebra introduced in [TD01]:
• Basic control commands are sequence ; (execution of steps in a sequence), parallel split
|∧| (execute steps in parallel), exclusive choice |⊕| (choose one execution path from many
alternatives), synchronization |sync| (synchronize two parallel threads of execution by a
synchronization condition sync , and simple merge + (merge two alternative execution
paths). The exclusive choice is considered to be the default parallel operation and is
denoted by ||.
• Structural control commands are arbitrary cycles ∗ (execute steps w/out any structural
restriction on loops), arbitrary cycles + (execute steps w/out any structural restriction
on loops but at least once), optional execution [ ] (execute the step zero times or once),
implicit termination ↓ (terminate if there is nothing to be done), entry step in the
step % and termination step in the step &.
The basic computation step algebra may be extended by advanced step commands:
• Advanced branching and synchronization control commands are multiple choice |(m,n)|
(choose between m and n execution paths from several alternatives), multiple merge
(merge many execution paths without synchronizing), discriminator (merge many
execution paths without synchronizing, execute the subsequent steps only once) n-out-
of-m join (merge many execution paths, perform partial synchronization and execute
4-20
subsequent step only once), and synchronizing join (merge many execution paths,
synchronize if many paths are taken, simple merge if only one execution path is
taken).
• We may also define control commands on multiple objects (CMO) such as CMO with
a priori known design time knowledge (generate many instances of one step when a
number of instances is known at the design time), CMO with a priori known run-
time knowledge (generate many instances of one step when a number of instances can
be determined at some point during the runtime (as in for loops)), CMO with no
a priori runtime knowledge (generate many instances of one step when a number of
instances cannot be determined (as in while loops)), and CMO requiring synchroniza-
tion (synchronization edges) (generate many instances of one activity and synchronize
afterwards).
• State-based control commands are deferred choice (execute one of the two alternative
threads, the choice which tread is to be executed should be implicit), interleaved
parallel executing (execute two activities in random order, but not in parallel), and
milestone (enable an activity until a milestone has been reached).
• Finally, cancellation control commands are used, e.g. cancel step (cancel (disable) an
enabled step) and cancel case (cancel (disable) the case).
These control composition operators are generalizations of workflow patterns and follow
approaches developed for Petri net algebras.
Operations defined on the basis of this general frame can be directly translated to database
programs. So far no theory of database behavior has been developed that can be used to
explain the entire behavior and that explain the behavior in depth for a run of the database
system.
Description = “SS00/01”
{} Course Teacher
Program ¾ - Professor
held
retrieve retrieve retrieve
?
Kind
retrieve
Views may be used for distributed or collaborating databases. They can be enhanced by
4-22
• a collaboration style specifying the supporting programs, the style of cooperation and
the coordination facilities, and
• collaboration pattern specifying the data integrity responsibilities, the potential changes
within one view and the protocols for exchange of changes within one view.
types. Aggregation functions are defined for extension based data types. The cube definition
uses the association between attribute types and aggregation functions
The grounding schema of a cube is given by a (cube) relationship type
R = (R1 , ...., Rn , {(A1 , q1 , f1 , ), ..., (Am , qm , fm )}) with
• hierarchical types R1 , ...., Rn which form component (or dimension) types,
• (“fact”) attributes A1 , ..., Am which are defined over extension based data types and
instantiated by singleton-value queries q1 , ..., qm and
• aggregation functions f1 , ..., fm defined over A1 , ..., Am .
The grounding schema is typically defined by a view over a database schema.
Given a grounding schema R = (R1 , ...., Rn , {(A1 , q1 , f1 , ), ..., (Am , qm , fm )}), a class RC ,
and partitions Πi on DOM (Ri ) for any component R1 , ..., Rn . A cell of RC is a non-empty
set σR1 ∈c1 ,...Rn ∈cn (RC ) for ci ∈ Πi and for the selection operation σα . Given named
∗ ∗
partitions Π∗1 , ..., Π∗n for all component types, a cube cubeΠ1 ,...,Πn (RC ) on RC and on Π∗i ,
1 ≤ i ≤ n consists of the set
of all cells of RC for the named partitions Π∗i , 1 ≤ i ≤ n. If Π∗i = >∗ then we may omit the
partition Π∗i .
Therefore, a cube is a special view. We may materialize the view. The view may be
used for computations. Then each cell is recorded with its corresponding aggregations for
the attributes. For instance, sum(πPriceOfGood (σSellingDate∈W eekx (RC ))) computes the total
turnover in week x.
Spreadsheet cubes are defined for sequences Π∗1 ¹ ... ¹ Π∗n of partitions for one or more
dimensional components. For instance, the partitions Days, M onths, Quarters, Y ears
define a spreadsheet cube for components defined over DateT ime.
The cube can use another representation: instead of using cells as sets we may use the
names defining the cells as the cell dimension value. This representation is called named
cube.
This definition of the cube can be now easily used for a precise mathematical defini-
tion of the main operations for cubes and extended cubes. For instance, given a cube
with a partitions Π∗ , Π0∗ for one dimensional component with Π∗ ¹ Π0∗ , the drill-down
operation transfers a cube defined on Π0∗ to a cube defined on Π∗ . Roll-up transfers
a cube defined on Π∗ to a cube defined on Π0∗ . The slice operation is nothing else
but the object-relational selection operation. The dice operation can be defined in two
ways: either using the object-relational projection operation or using > partitions for
all dimensional components that are out of scope. More formally, the following basic
∗ ∗
OLAP query functions are introduced for a cube cubeΠ1 ,...,Πn (RC ) defined on the cube
schema R = (R1 , ...., Rn , {(A1 , q1 , f1 , ), ..., (Am , qm , fm )}) , a dimension i, and partitions
Π∗i ¹ Π0∗ ∗
i ¹ >i :
∗ 0∗
,...,Π∗
Basic drill-down functions map the cube cubeΠ1 ,...,Πi n (RC ) to the cube
∗ ∗ ∗
cubeΠ1 ,...,Πi ,...,Πn (RC ).
∗ ∗ ∗
Basic roll-up functions map the cube cubeΠ1 ,...,Πi ,...,Πn (RC ) to the cube
∗ 0∗ ∗
cubeΠ1 ,...,Πi ,...,Πn (RC ).
Roll-up functions are the inverse of drill-down functions.
Basic slice functions are similar to selection of tuples within a set. The cube
∗ ∗ ∗ ∗
cubeΠ1 ,...,Πn (RC ) is mapped to the cube σα (cubeΠ1 ,...,Πn (RC )).
4-24
The slice function can also be defined through cells. Let dimension(α) the set of all
dimensions that are restricted by α. Let further
½
∅ if Ri ∈ dimension(α) ∧ σα (ci ) 6= ci
σαu (ci ) =
ci otherwise
Close slice functions restrict the cube cells to those that entirely fulfill the selection
criterion α, i.e., {σR1 ∈σαu (c1 ),...Rn ∈σαu (cn ) (RC ) 6= ∅ | c1 ∈ Π1 , ..., cn ∈ Πn }.
Liberal slice functions restrict the cells to those that partially fulfill the selection cri-
terion α, i.e. to cells {σR1 ∈σα (c1 ),...Rn ∈σα (cn ) (RC ) 6= ∅ | c1 ∈ Π1 , ..., cn ∈ Πn }.
Lazy and eager slice functions apply the selection functions directly to values in the
cells.
Basic dice functions are similar to projection in the first-order query algebra. They map
∗ ∗ ∗ ∗ ∗ ∗
the cube cubeΠ1 ,...,Πi ,...,Πn (RC ) to the cube cubeΠ1 ,...,>i ,...,Πn (RC ).
Basic dice functions are defined as special roll-up functions. We also may omit the
dimension i. In this case we loose the information on this dimension.
Generalizing the first-order query algebra, [Tha00] defines additional OLAP operations such
as
join functions for mergers of cubes,
union functions for union of two or more cubes of identical type,
rotation or pivoting functions for rearrangement of the order of dimensions, and
rename functions for renaming of dimensions.
Our new definition of the cube allows to generalize a large body of knowledge obtained for
object-relational databases to cubes. The integration of cubes can be defined in a similar
form [Mol07].
• Constraints are declared at the declaration layer based on logical formulas or con-
structs and based on the schema declaration.
• Constraints are extended at the technical layer by methods for their maintenance, by
rules treatment of their invalidity, by enactment strategies and by auxiliary methods.
Domain constraints restrict the set of values. Given an EER type R, a substruc-
ture T 0 of R, its domain Dom(T 0 ), and a subset D of Dom(T 0 ). The domain constraint
R : T 0 ⊆ D is valid in RC if πT 0 (RC ) ⊆ D .
For instance, we may restrict the year and the description of semesters by the constraints
Semester.Year ⊆ { 1980, ..., 2039 } and
Semester.Description ⊆ { WT, ST }.
Cardinality constraints are the most important class of constraints of the EER model.
We distinguish two main kinds of cardinality constraints. Given a relationship type R $
The Enhanced Entity-Relationship Model 4-27
General cardinality constraints are necessary whenever we consider sets of cardinality con-
straints. There are examples of participation constraints which cannot be expressed through
lookup or participation constraints. At the same time general cardinality constraints can
be inferred from these participation constraints.
If R = R0 then the general cardinality constraint specifies the cardinality bounds of the
relationship class.
The definition of general cardinality constraints can be extended to entity types as well.
Cardinality constraints restrict relationships. We are not able to defer equalities. Con-
sider for instance the relationship type
Spouse $ = (IsSpouse : Person, OfSpouse : Person, { From, To }, Σ) .
Neither card(Spouse, IsSpouse From ) = (0, 1) and card(Spouse, OfSpouse From ) = (0, 1)
nor look(Spouse, IsSpouse ) = 0..1 and look(Spouse, OfSpouse ) = 0..1 express the state-
ment of monogamic societies that the spouse of the spouse is the person itself. The lookup
constraints are only valid if a person can be married once. The Islamic rule would be that
either the spouse of a spouse is the person itself or the spouse of the spouse of the spouse
is the spouse.
Cardinality constraints combine equality-generating and object-generating constraints
into a singleton construct. This convenience for declaration is paid back by the impossibility
to axiomatize these constraints.
Participation cardinality constraints cannot be axiomatized [Tha00]. If axiomatization is
restricted to the upper bound then an axiomatization can be based on the following system
for a one-type derivations [Har03]:
Axioms: card(R, X) = (0, ∞)
Rules:
card(R, X) = (0, b) card(R, X) = (0, b)
card(R, X tR Y ) = (0, b) card(R, X) = (0, b + c)
Functional dependencies can be defined through generalized cardinality constraints, i.e. the
functional dependency R : X −→ Y is equivalent to card(R[X tR Y ], X) = (0, 1) .
The Armstrong axiomatization provided above can be combined with the axiomatization
for upper bound of participation constraints and the following system:
These three systems are complete and correct for derivation of upper bounds.
We may also conclude rules for many-type derivations [Tha00]. A typical rule is the
following one:
card(R, R0 ) = (m, n), card(R0 , R00 ) = (m0 , n0 )
.
card(R, R00 ) = (m · m0 , n · n0 )
Multivalued dependencies are best fitted to the ER model and are difficult to define,
to teach, to handle, to model and to understand within relational database models. Given
an EER type R and partition of components of R into X, Y and Z, the multivalued
dependency X → → Y |Z is ER-valid in a class RC defined over the type R (denoted by
C
R |=ER X → → Y |Z) if the type can be decomposed into three types representing X,
Y , and Z and two mandatory relationship types defined on X ∪ Y and X ∪ Z, respectively.
The multivalued dependency can be represented by a decomposition of the type R dis-
played in Figure 4.4.
We may use more compact schemata given in Figure 4.5. In this case, the relationship
type with the components (X)Z is based on the X-components. We denote the relationship
The Enhanced Entity-Relationship Model 4-29
X-components form
Y ¾ XY - X ¾ XZ - Z a component type of
(1,n) (1,n) the relationship type R
type that relates X with Z by (X)Z or by Z(X). This notion shows the direct decomposition
imposed by the multivalued dependency.
The deductive system in Figure 4.6 consisting of the trivial multivalued dependency, the
root reduction rule, and the weakening rule is correct and complete for inference of mul-
tivalued dependencies. We observe that the axiomatization of functional and multivalued
dependencies can be derived in a similar way.
Axiom X ∪Z - X
Y (X) - X ∪V ¾ (X) Z
Y ∪ Z (X) - X ¾ (X) V
Root
reduction
rule
Y (X) - X ¾ (X) Z ∪V
X 0 ∪ Y (X) - X ¾ (X) X 00 ∪ Z
Weakening
rule
Y X ∪ Z
(X ∪ X 0
- ¾ (X ∪ X 0
∪X 00 ) X 0 ∪X 00 ∪X 00 )
FIGURE 4.6: The Deductive System for ER Schema Derivation of Multivalued Dependen-
cies
The constraints discussed above can be used for decomposition of types and restructuring
of schemata. Pivoting has been introduced in [BP00] and allows to introduce a relationship
4-30
type of higher order after factoring out constraints that are applicable to some but not all
of the components of the relationship type.
Let us consider the schema depicted in Figure 4.1. The relationship type ProposedCourse
has the arity 8. In the given application the following integrity constraints are valid:
{ Course } →→ { Program }
{ Program } →→ { Course }
{ Course, Program } −→ { Responsible4Course : Person } .
The last functional dependency is a ‘dangling’ functional dependency, i.e., the right side
components are not elements of any left side of a functional or multivalued dependency.
Considering the axiomatization of functional and multivalued dependencies we conclude
that right side components of a dangling functional dependency can be separated from
other components. The first two constraints can be used for separation of concern of the
type ProposedCourse into associations among
Course, Program, Responsible4Course : Person
and
Course, Kind, Semester, Professor, Time(Proposal,SideCondition), Room,
InsertedBy : Person.
According to decomposition rules we find additional names for the independent component
sets in ProposedCourse, i.e., in our case CourseObligation.
We additionally observe that InsertedBy : Person can be separated from the last associa-
tion. This separation is based on pivoting, i.e. building a relationship type ‘on top’ of the
‘remaining’ type
ProposedCourseRevised $ (Teacher: Professor, Course, Proposal : Kind,
Request : Room, Semester, { Time(Proposal, SideCondition) }).
Finally, let us consider a constraint on Course and Kind. In the given application we as-
sume that the selection of the kind for a course is independent of the other components, i.e.
ProposedCourseRevised : { Course, Semester } →
→ { Kind } .
This constraint hints on a flaw in modelling. The association between Course and Kind
may vary over semesters for lectures. Kind is an enumeration type that categorizes the
style of how lectures are given. The selection of the kind becomes easier if we develop an
abstraction Applicable that collects all possible associations between Course and Kind.
We may also use a pragmatical rule for naming. If a decomposition leads to a separation
based on roles then we may use the role name for the relationship type name.
One of our separation rules allows us to separate optional components of a relationship
type by pivoting the type into a new relationship type. We use this rule for pivoting
PlannedCourse and CourseHeld.
We finally derive the schema displayed in Figure 4.7. This schema is based on Course-
Proposal, CoursePlanned and Lecture.
6 6
Time(Proposal,
SideCondition)
Kind ¾ Applicable ¾ Course ª - Room
Proposal
6 6 6 O
ª
Semester Course ¾ Assigned
Planned
> TimeFrame
6
Change4
Planning ¾ Change4
Lecture Lecturing
Each finite set of static integrity constraints can be expressed equivalently by a set of
V O V
state-transition constraints or invariants { α∈Σ α −→ α∈Σ α) | O ∈ Alg(M ) }.
Integrity constraints may be enforced
• either at the procedural level by application of
– trigger constructs [LL99] in the so-called active event-condition-action setting,
– greatest consistent specializations of operations [Sch94],
– or stored procedures, i.e., full-fledged programs considering all possible viola-
tions of integrity constraints,
• or at the transaction level by restricting sequences of state changes to those which do
not violate integrity constraints,
• or by the DBMS on the basis of declarative specifications depending on the facilities
of the DBMS,
• or at the interface level on the basis of consistent state changing operations.
Database constraints are classically mapped to transition constraints. These transition
constraints are well-understood as long as they can be treated locally. Constraints can thus
be supported using triggers or stored procedures. Their global interdependence is, however,
an open issue.
The transformation to event-condition-action rules is not powerful enough. Consider the
following example [ST98]:
R1 $ (R3 , R4 , ∅, Σ1 ), card(R1 , R4 ) = (1, n) ,
R2 $ (R5 , R6 , ∅, Σ2 ), card(R2 , R5 ) = (0, 1), card(R2 , R6 ) = (1, n) ,
R3 $ (R6 , ..., ∅, Σ3 ), card(R3 , R6 ) = (0, 1) , and R4 ||R5 .
The greatest consistent specialization of the operation Insert(R1 , (a, c)) is the operation
Insert(R1 , (a, c)) !
if c 6∈ R2 [R5 ] then fail
else begin Insert(R1 , (a, c));
if a 6∈ R1 [R3 ] then Insert(R2 , (a, d)) where d 6∈ R1 [R4 ] ∪ R2 [R5 ] end ;
This operation cannot be computed by trigger constructs. They result in deletion of a from
R1 [R3 ] and deletion of c from R2 [R5 ] and thus permit insertion into R1 .
derivable. For instance, normalization algorithms are based on the elicitation of complete
knowledge on all valid functional dependencies. Therefore, the designer should have tools
or theories about how to obtain all functional dependencies that are independent from the
functional dependencies already obtained and that are not known to be invalid.
Excluded functional constraints X −→/ Y state that the functional dependency X −→ Y
is not valid.
Excluded functional constraints and functional dependencies are axiomatizable by the fol-
lowing formal system [Tha00].
Axioms
X ∪Y → Y
Rules
X −→ Y X −→ Y , Y −→ Z
(1) (2)
X ∪ V ∪ W −→ Y ∪ V X −→ Z
X −→ Y , X −→
/ Z
(3)
Y −→
/ Z
X −→/ Y X ∪ Z −→
/ Y ∪Z
(4) (5)
X −→
/ Y ∪Z X ∪ Z −→/ Y
X −→ Z , X −→/ Y ∪Z Y −→ Z , X −→
/ Z
(6) (7)
X −→/ Y X −→
/ Y
Rules (3) and (7) are one of the possible inversions of rule (2) since the implication α∧β →
γ is equivalent to the implication ¬γ ∧ β → ¬α . Rules (4) and (5) are inversions of
rule (1). Rule (6) can be considered to be the inversion of the following union rule valid for
functional dependencies:
X −→ Y , X −→ Z
(8)
X −→ Y ∪ Z
This rule can be derived from the axiom and rule (2).
Constraint elicitation can be organized by the following approach:
Specification of the set of valid functional dependencies Σ1 : All dependencies that
are known to be valid and all those that can be implied from the set of valid and ex-
cluded functional dependencies.
Specification of the set of excluded functional dependencies Σ0 : All dependencies
that are known to be invalid and all those that can be implied from the set of valid
and excluded functional dependencies.
This approach leads to the following simple elicitation algorithm:
Σ1 Σ1 Σ1 Σ1
Σ0 Σ0 Σ0 Σ0
Initial step Intermediate steps Final step
This algorithm can be refined in various ways. Elicitation algorithms known so far are
all variation of this simple elicitation algorithm.
The constraint acquisition process based on this algorithm is illustrated in Figure 4.8.
References
[All84] J.F. Allen. Towards a general theory of action and time. Artificial intelligence, 6:123–154, 1984.
[Bee92] C. Beeri. New data models and languages - the challenge. In Proc. 11th ACM SIGACT-
SIGMOD-SIGART Symp. on Principles of Database Systems - PODS’92, pages 1–15, San
Diego, California, 1992. ACM Press, New York.
[BLS+ 94] P. Buneman, L. Libkin, D. Suciu, V. Tannen, and L. Wong. Comprehension syntax. SIGMOD
Record, 23(1):87–96, 1994.
[BP00] J. Biskup and T. Polle. Decomposition of database classes under path functional dependencies
and onto contraints. In Proc. FoIKS’2000, LNCS 1762, pages 31–49. Springer, 2000, 2000.
[BT99] C. Beeri and B. Thalheim. Identification as a primitive of database models. In T. Polle, T. Ripke,
and K.-D. Schewe, editors, Proc. FoMLaDO’98, pages 19–36. Kluwer, London, 1999.
[Cel95] J. Celko. Joe Celko’s SQL for smarties - Advanced SQL programming. Morgan Kaufmann,
San Francisco, 1995.
[Che76] P. P. Chen. The entity-relationship model: Toward a unified view of data. ACM TODS,
1(1):9–36, 1976.
[DMT04] J. Demetrovics, A. Molnar, and B. Thalheim. Graphical and spreadsheet reasoning for sets of
functional dependencies. In ER’2004, LNCS 3255, pages 54–66, 2004.
[EWH85] R. Elmasri, J. Weeldreyer, and A. Hevner. The category concept: An extension to the entity-
relationship model. DKE, 1(1):75–116, 1985.
[FSS92] L. Fegaras, T. Sheard, and D. W. Stemple. Uniform traversal combinators: Definition, use and
properties. In D. Kapur, editor, Proc. Automated Deduction - CADE’92, 11th Int. Conf. on
Automated Deduction, Saratoga Springs, New York, pages 148–162, Berlin, 1992. Springer.
[Gog94] M. Gogolla. An extended entity-relationship model - fundamentals and pragmatics. LNCS
767. Springer, Berlin, 1994.
[Gol06] R. Goldblatt. Topoi: The Categorial Analysis of Logic. Dover Books on Mathematics, 2006.
[Har03] S. Hartmann. Reasoning about participation constraints and Chen’s constraints. In ADC,
volume 17 of CRPIT, pages 105–113. Australian Computer Society, 2003.
[HHLS03] S. Hartmann, A. Hoffmann, S. Link, and K.-Di. Schewe. Axiomatizing functional dependencies
in the higher-order entity-relationship model. Inf. Process. Lett., 87(3):133–137, 2003.
View publication stats