07.03.2014 Aufrufe

Analysis, Design and Development of Information Systems ...

Analysis, Design and Development of Information Systems ...

Analysis, Design and Development of Information Systems ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Pr<strong>of</strong>. Dr. rer.nat.habil. Bernhard Thalheim<br />

<strong>Information</strong> <strong>Systems</strong> Engineering<br />

Institute <strong>of</strong> Computer Science<br />

Christian-Albrechts-University Kiel<br />

Olshausenstr. 40<br />

D - 24098 Kiel<br />

<br />

Skript zur Vorlesung<br />

<strong>Analysis</strong>, <strong>Design</strong> <strong>and</strong> <strong>Development</strong> <strong>of</strong> <strong>Information</strong> <strong>Systems</strong><br />

& Modellierung von <strong>Information</strong>ssystemen<br />

& Web-<strong>Information</strong>ssysteme<br />

2. Strukturierung von IS ab SS 2012<br />

Sonderfarben der Seiten im Skript für zusätzliches Material.<br />

Forschung<br />

Hintergrundinformation (auch Inhalte der Grundvorlesungen)<br />

Zusatzliteratur und Lesest<strong>of</strong>f<br />

1 Einführung<br />

In den Vorlesungen werden vier zentrale Spezifikationssprachen zur Spezifikation von <strong>Information</strong>ssystemen im<br />

Co-<strong>Design</strong>-Zugang vorgestellt: die Strukturierung und die Funktionalität auf der Grundlage des erweiterten Entity-<br />

Relationship-Modellen HERM, die Verteilung auf der Grundlage der Verteilungsspezifikationsprache DistrLang und<br />

die Spezifikation durch die Web-<strong>Information</strong>ssystem-Spezifikationssprache SiteLang.<br />

Übungen: jeweils eine Übung zur Spezifikation der Strukturierung, zur Spezifikation der Funktionalität, zur Spezifikation<br />

der Medientypen und zur Spezifikation der Interaktivität.<br />

Es werden die Systeme ERWin und Silverrun, sowie DBMain zur Modellierung der Strukturierung bzw. Funktionalität<br />

eingesetzt.<br />

2 Strukturierung von <strong>Information</strong>ssystemen<br />

Strukturierung = Struktur + statische Integritätsbedingungen (+ Modellinhärentes !!!)<br />

HERM : higher-order entity-relationship model<br />

EER : extended ER model (meist auch nur für die Definition der Struktur(ierung) genutzt!!!)<br />

Bemerkung: Modell meint hier eigentlich Sprache.<br />

Brief Survey: The Higher-Order Entity-Relationship Model (HERM).<br />

The entity-relationship model has been extended by more than three-score proposals in the past. Some <strong>of</strong> the extensions contradict other<br />

extensions. Within this chapter we use the higher-order (or hierarchical) entity relationship model (HERM). It is a special case <strong>of</strong> an extended<br />

entity-relationship model (EER) e.g. [EWH85, Gog94, Hoh93, Tha00].<br />

The higher-order ER model used in this chapter has the following basic <strong>and</strong> extended modeling constructs:<br />

Simple attributes: For a given set <strong>of</strong> domains there are defined attributes <strong>and</strong> their corresponding domains.<br />

Complex attributes: Using basic types, complex attributes can be defined by means <strong>of</strong> the tuple <strong>and</strong> the set constructors The tuple<br />

constructor is used to define complex attributes by Cartesian aggregation. The set constructor allow construction <strong>of</strong> a new complex<br />

attribute by set aggregation. Additionally, the bag, the list, <strong>and</strong> the variant constructors can be used.


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 152<br />

Entities: Entity types are characterized by their attributes. Entity types have a set <strong>of</strong> attributes which serve to identify the elements <strong>of</strong> the<br />

class <strong>of</strong> the type. This concept is similar to the concept <strong>of</strong> key known for relational databases.<br />

Clusters: A disjoint union ·<br />

∪ <strong>of</strong> types whose identification type is domain compatible is called a cluster. Cluster types (or variant types) are<br />

well known in programming languages, but are <strong>of</strong>ten overlooked in database models, where this absence creates needless fragmentation<br />

<strong>of</strong> the databases, confusing mixing <strong>of</strong> generalization <strong>and</strong> specialization <strong>and</strong> confusion over null values.<br />

First-order relationships: First-order relationship types are defined as associations between single entity types or clusters <strong>of</strong> entity<br />

types. They can also be characterized by attributes.<br />

Higher-order relationships: The relationship type <strong>of</strong> order i is defined as an association <strong>of</strong> relationship types <strong>of</strong> order less than i or <strong>of</strong><br />

entity types <strong>and</strong> can also be characterized by attributes.<br />

Integrity constraints: A corresponding logical operator can be defined for each type. A set <strong>of</strong> logical formulas using this operator can<br />

define the integrity constraints which are valid for each instance <strong>of</strong> the type.<br />

Operations: Operations can be defined for each type.<br />

• The generic operations insert, delete, <strong>and</strong> update are defined for each type.<br />

• The algebra consists <strong>of</strong> classical set operations, such as union, intersection, difference <strong>and</strong> restricted complement, <strong>and</strong> general<br />

type operations, such as selection, map (particular examples <strong>of</strong> this operation are (tagged) nest, unnest, projection, renaming),<br />

<strong>and</strong> pump (particular examples <strong>of</strong> this operation are the classical aggregation functions). The fixpoint operator is not used.<br />

• Each type can have a set <strong>of</strong> (conditional) operations.<br />

• Based on the algebra, query forms <strong>and</strong> transactions can be specified.<br />

The extensions <strong>of</strong> the ER model should be safe in the sense that appropriate semantics exist. There is a large variety <strong>of</strong> proposals which are<br />

not safe. Some reasons for this include higher-order or function types, such as those used for the definition <strong>of</strong> derived attributes, or the loss <strong>of</strong><br />

identification.<br />

It can be observed that higher-order functions can be attached to the type system. However, in this case types do not specify sets, although<br />

their semantics can be defined by topoi [Sch94, Gol06]. This possibility limits simplicity for the introduction <strong>of</strong> constraints <strong>and</strong> operations.<br />

Furthermore, these semantics are far too complex to be a c<strong>and</strong>idate for semantics. The ER model is simpler than OO models.<br />

Es taucht <strong>of</strong>t die Frage auf, ob dies adäquat ist. In [HL07] wurde dazu ein Vergleich von englischen Sprachäußerungen<br />

und dem HERM vorgenommen. Eine der Tabellen dazu ist die folgende<br />

English sentence concept HERM feature<br />

transitive verb<br />

relationship type<br />

common noun<br />

component <strong>of</strong> relationship type<br />

adjective<br />

attribute <strong>of</strong> component<br />

adverb<br />

attribute <strong>of</strong> relationship type<br />

numerical expression attribute <strong>of</strong> object type<br />

preposition<br />

role name <strong>of</strong> component<br />

gerund<br />

relationship type that is component <strong>of</strong> another relationship type<br />

clause<br />

relationship type with components<br />

complex sentence relationship type <strong>of</strong> order higher than 1<br />

alternative phrase cluster type<br />

plural collection type/nested attribute<br />

“IsA” sentence<br />

specialisation<br />

Comparison to Chen’s original correspondences by [HL07]<br />

Peter P.-S. Chen: English Sentence Structure <strong>and</strong> ER Diagrams, Inf. Sci. 29(2-3): 127-149, 1983<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 153<br />

English sentence ER feature<br />

concept<br />

transitive verb relationship type<br />

common noun entity type<br />

adjective<br />

attribute <strong>of</strong> entity type<br />

adverb<br />

attribute <strong>of</strong> relationship type<br />

numerical expression attribute <strong>of</strong> entity or relationship type<br />

gerund<br />

relationship-converted entity type<br />

clause<br />

high-level entity type abstracted from group <strong>of</strong> interconnected low-level entity <strong>and</strong><br />

relationship types<br />

complex sentence one or more entity types connected by relationship type in which each entity type can<br />

be decomposed recursively into low-level entity types interconnected by relationship<br />

types<br />

Conclusions:<br />

EER reflects (English) sentence structures more soundly <strong>and</strong> naturally<br />

higher-order object types reflect dependence between sentences<br />

this provides justification for introduction <strong>of</strong> new ER features<br />

ER model does not just provide safe constructs that result in good database design, but also features that enable<br />

good communication between designer <strong>and</strong> user<br />

essential to best approximate requirements<br />

additional EER features justified in the sense that modelling becomes more natural<br />

provides also a justification why the EER features exist<br />

higher-order object types reminiscent <strong>of</strong> nested sentence structure in natural language text<br />

2.1 Spezifikation der Struktur von Datenbanken<br />

eine Vorlesung (da bereits in der Vorlesung <strong>Information</strong>ssystem in Grundzügen in abweichender Form beh<strong>and</strong>elt)<br />

2.1.1 Modellierungsannahmen<br />

• Konstruktiver Aufbau mit kompositioneller Semantik<br />

damit dann auch induktive Sprache<br />

(inkrementelle Modellierung als resultierende Variante des Modellierens)<br />

Vorteil: die Semantik wird kompositional<br />

• Abstraktionsresistenz, Verfeinerungsstrategie (scaling depending on its modes (visibility (zoom), hierarchy<br />

(fold), manifestation (express, suppress)))<br />

Modularisierbarkeit als Option<br />

• Äquivalenzbegriff für Sprachkonstrukte<br />

• rigide Trennung von Klassen und Typen, aber 1-1-Bindung von Klassen an Typen<br />

• Abbildungseigenschaften<br />

• Wohlfundiertheit<br />

• Einschränkung auf Mengensemantik, keine Kollektionssemantik<br />

• Visualisierung<br />

• Skalierbarkeit/Modularisierbarkeit der Sprachäußerungen je nach Auffassungsmöglichkeiten<br />

Modularisierbarkeit als Option<br />

Modular modelling supports information abstraction <strong>and</strong> hiding by encouraging <strong>and</strong> facilitating the decomposition <strong>of</strong> systems [BM97] into components<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 154<br />

<strong>and</strong> their modular development based on a precise definition <strong>of</strong> interfaces <strong>and</strong> the collaboration <strong>of</strong> components through which the systems are put<br />

together. Implicit modularisation can be achieved by introduction <strong>of</strong> name spaces on signatures. Explicit modularisation <strong>of</strong>fers a better underst<strong>and</strong>ing<br />

<strong>of</strong> structure <strong>and</strong> architecture <strong>of</strong> systems <strong>and</strong> thus supports consideration <strong>of</strong> evolution <strong>of</strong> systems <strong>and</strong> <strong>of</strong> collaboration <strong>of</strong> systems.<br />

Modularisation <strong>of</strong>fers a number <strong>of</strong> advantages: separation <strong>of</strong> concerns, discovery <strong>of</strong> basic concepts, validation <strong>and</strong> verification <strong>of</strong> development, efficiency<br />

<strong>of</strong> tool support, <strong>and</strong> - last but not least - scoped changes. The last advantage <strong>of</strong> modularisation is based on an explicit framing <strong>of</strong> development to a number<br />

<strong>of</strong> elements while preserving all other elements in its current form. We model this impact by introducing name spaces on signatures.<br />

Typically, small submachines capture smaller models that are easier to underst<strong>and</strong> <strong>and</strong> to refine. Small models can better be ascertained as to whether<br />

we need to apply refinements.<br />

Modularization is a specification technique <strong>of</strong> structuring large specifications into modules. It is classically based on structural <strong>and</strong> functional decomposition<br />

[BS00]. We additionally consider control decomposition. Modules form a lattice <strong>of</strong> associated submachines having their own states <strong>and</strong> their<br />

own control.<br />

Modularisation is based on implementation abstraction <strong>and</strong> on localization abstraction. Implementation abstraction selectively hides information about<br />

structures, semantics <strong>and</strong> the behavior <strong>of</strong> ASM concepts. Implementation abstraction is a generalization <strong>of</strong> encapsulation <strong>and</strong> scoping. It provides data<br />

independence through the implementation, allowing the private portion <strong>of</strong> a concept to be changed without affecting other concepts using that concept.<br />

Localization abstraction “factors out” repeating or shared patterns <strong>of</strong> concepts <strong>and</strong> functionality from individual concepts into a shared application<br />

environment. Naming is the basic mechanism for achieving localization. Parametrisation can be used for abstraction over partial object descriptions.<br />

We use the name space for h<strong>and</strong>ling localisation abstraction.<br />

• Agentorientierte Darstellung und damit Separation für verteilte Anwendungen<br />

A submachine consists <strong>of</strong> a vocabulary <strong>and</strong> a set <strong>of</strong> rules. In this case, any clustering <strong>of</strong> rules <strong>and</strong> <strong>of</strong> elements from the vocabulary may define a<br />

submachine. Turbo machines [BS03] capture our notion <strong>of</strong> a submachine by encapsulating elements <strong>of</strong> the vocabulary <strong>and</strong> rules into a machine. They<br />

hide the internals <strong>of</strong> subcomputations within a separate machine. The submachine has its own local state <strong>and</strong> its own interface.<br />

The set <strong>of</strong> functions <strong>of</strong> each submachine can be separated into basic <strong>and</strong> derived functions. Basic functions may be static functions or dynamic functions.<br />

Classically [BS03] dynamic functions can be classified as in(put) functions, out(put) functions, controlled or local functions that are hidden from the<br />

environment, <strong>and</strong> shared functions that are visible to the environment. A similar classification can also be applied to basic static functions. They are<br />

either functions only used by a its own machine or read by several environments. We thus extend the notion <strong>of</strong> shared <strong>and</strong> controlled functions to static<br />

functions as well. We do not use derived static functions since they can be considered as syntactic sugar. We differentiate these functions according to<br />

their role in Figure 1 which displays the functions internal for an agent machine. A similar classification can be developed for functions external to an<br />

agent. An agent machine consists <strong>of</strong> all functions that assigned to the agent <strong>and</strong> <strong>of</strong> rules that are assigned to the agent <strong>and</strong> that use only those functions<br />

assigned to the agent.<br />

function/relation/location<br />

basic<br />

derived<br />

static<br />

non-updatable<br />

by any agent<br />

controlled shared<br />

in (monitored)<br />

non-updatable<br />

by agent<br />

controlled<br />

updatable<br />

by agent<br />

dynamic<br />

shared (interaction)<br />

updatable<br />

by agent<br />

out<br />

updatable<br />

by agent<br />

indirectly<br />

monitored controlled indirectly indirectly<br />

shared<br />

Abbildung 1: The Kinds <strong>of</strong> Internal Functions for Agent Machines<br />

Static functions may also be local functions. They are not updated by any submachine. [BM97] distinguish derived function to whether these functions<br />

are monitored functions, controlled functions, or shared functions. Typically, derived functions are functions that do not exist on their own right, but<br />

may be dynamically computed from one or more base functions. They provide a powerful <strong>and</strong> flexible information hiding mechanism. Updates made<br />

in the base functions that affect the derived function are immediately reflected in derived functions.<br />

We may additionally assume that derived functions are allowed to update dynamic functions. In this case, dynamic functions may be used as a security<br />

mechanism, as an access mechanism, <strong>and</strong> as a simplification mechanism that allows to use complex derived functions in rules instead <strong>of</strong> complex<br />

computations in rules.<br />

• Perspektiven und Stile der Modellierung sind explizit wählbar<br />

Different modelling perspectives can be distinguished:<br />

1. The structure-oriented perspective focuses on structural description <strong>of</strong> the machine. Sometimes, the structure-oriented perspective is unified<br />

with the semantic perspective. In this case, design <strong>of</strong> the structure is combined with design <strong>of</strong> invariants.<br />

2. The behavior-oriented perspective is concerned with the behavior <strong>of</strong> the machine during its lifetime. It can be based on event approaches or on<br />

Petri-net approaches <strong>and</strong> predicate transition systems.<br />

3. The process-oriented perspective is concerned with the operation <strong>of</strong> the system.<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 155<br />

The structure-oriented perspective is <strong>of</strong>ten used for data-intensive applications. Almost all recognized database design approaches are based on the<br />

structure-oriented perspective. The process-oriented perspective uses approaches considered in s<strong>of</strong>tware engineering. The behavior-oriented perspective<br />

is a high-level descriptive approach to an integrated specification <strong>of</strong> the vocabulary <strong>and</strong> rules.<br />

Modelling styles provide a very abstract description <strong>of</strong> a particular set <strong>of</strong> general characteristics <strong>of</strong> a model. Different constructional notations may be<br />

useful for describing a machine. We use the Turbo machine approach for component or submachine description. Typically, the role <strong>of</strong> the components<br />

<strong>of</strong> the system follow the rules specified by the style. The modelling style explains the structure, the abstraction <strong>and</strong> grouping <strong>of</strong> the elements. Parts <strong>of</strong><br />

the system may follow different modelling styles.<br />

The style <strong>of</strong> modelling is a specification <strong>of</strong> the high level structure <strong>and</strong> organisation <strong>of</strong> system modelling. The structure describes the h<strong>and</strong>ling <strong>of</strong><br />

elements <strong>of</strong> the vocabulary, the topology or relationships between elements, the semantical limitations for their usage, <strong>and</strong> the interaction mechanism<br />

between the elements such as blackboard, submodule calls,etc. The organisational style describes relevant local <strong>and</strong> global structures, the decomposition<br />

strategy, <strong>and</strong> control mechanisms between parts <strong>of</strong> the machine. The organisational style is based on the architectural style. It is our aim to maintain <strong>and</strong><br />

to preserve the strategy over the life cycle <strong>of</strong> the system.<br />

The perspective <strong>and</strong> the style result in strategies that are use for step-wise development <strong>of</strong> specifications. The different strategies [Tha00] based on the<br />

structure-oriented perspective are sketched in Figure 2.<br />

structure-oriented strategies<br />

✙ <br />

flat<br />

second-order<br />

controlled<br />

(first-order)<br />

(uncontrolled)<br />

(one-dimensional)<br />

✠ ❘ ✠ ❘<br />

mixed<br />

modular<br />

✠<br />

❘ (skeleton-based flat) (design by modules)<br />

bottom-up<br />

1. design all<br />

basic concepts<br />

2. build more<br />

complex concepts<br />

from them<br />

top-down 1. design general<br />

module schema<br />

(bottom-up or top-down)<br />

1. design (skeleton)<br />

all main concepts<br />

2. refine concepts<br />

2. refine each module<br />

(bottom-up or<br />

top-down)<br />

1. design basic modules<br />

with interface<br />

2. (iteration step)<br />

connect modules<br />

or design<br />

combined modules<br />

Abbildung 2: Structure-Oriented Specification Strategies<br />

inside-out<br />

(by neighborhood)<br />

1. design central type<br />

2. (recursion step)<br />

design next level<br />

(bottom-up or<br />

top-down)<br />

design or attach<br />

concept<br />

• Integritätsbedingungen werden anh<strong>and</strong> von Mustern definiert und eingesetzt<br />

Invariants, e.g. integrity constraints in database applications, are used to define semantics <strong>of</strong> applications. We know different pattern for their specification:<br />

• Operational representation <strong>of</strong> invariants incorporates invariants into the programs or rules. The invariant enforcement mechanism may be hidden<br />

because <strong>of</strong> control conditions or to the specification <strong>of</strong> actions.<br />

• Descriptive representation uses explicit specification <strong>and</strong> refinement obligations. These descriptions are combined with the specification <strong>of</strong><br />

invariant enforcement:<br />

• Eager enforcement maintains invariants based on a scheduling mechanism for maintenance <strong>of</strong> invariants. Transactional systems are typical<br />

scheduling mechanisms. They bind invariant enforcement to programs.<br />

• Lazy enforcement maintains invariants in a delayed mode. Inconsistency is temporarily tolerated. This tolerance reduces some <strong>of</strong> the cost<br />

<strong>of</strong> enforcing invariants within large structures.<br />

• Refusal enforcement maintains invariants by rollback <strong>of</strong> all activities since the last consistent state <strong>and</strong> by executing a subset <strong>of</strong> activities.<br />

Partially ordered runs are based on refusal enforcement.<br />

Depending on the pattern chosen invariant h<strong>and</strong>ling is varies. If we choose an implicit invariant h<strong>and</strong>ling then any change applied to the current ASM<br />

must explicitly consider all invariants <strong>and</strong> must be entirely aware <strong>of</strong> the effects <strong>of</strong> these. Therefore this pattern is the most inefficient for early design<br />

phases. This pattern is however applicable during implementation if later revision is going to be based on a more general ASM.<br />

The completeness <strong>of</strong> invariant specification is a dream that is never satisfied. Sets <strong>of</strong> invariants are inherently open since we cannot know all invariants<br />

valid in the current application, we cannot envision all possible changes in invariant sets, <strong>and</strong> we cannot choose the most appropriate selection <strong>of</strong><br />

invariants from which all other invariants follow. Therefore, we use a separation into<br />

• hard (or iron) invariants that must be preserved <strong>and</strong> which are valid over a long time in the application <strong>and</strong><br />

• s<strong>of</strong>t invariants that can be preserved or are causing later corrections or which are not valid for a longer time in the application.<br />

• Modellierung im Local-As-View-Ansatz<br />

• Konzeptuelles Modell ist dann zugleich die globale Sicht<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 156<br />

• Lokale Sichten werden mit der Schema-Algebra über dem konzeptuellen Schema als abgeleitetes Konzept<br />

verwendet<br />

Damit (S, V 1 , ...., V k ) als Modell, das den Anspruch erfüllen könnte, kognitiv vollständig zu sein.<br />

Siehe Arbeit von B. Thalheim zur kognitiven Vollständigkeit der Modellierung mit einem erweiterten<br />

ER-Modell.<br />

• als klassischer Zugang<br />

Alternativ könnte auch der Global-As-View-Ansatz verwendet werden.<br />

• Damit wird eine natürlichere Form der Repräsentation gewählt.<br />

• Damit kann auch unterschiedliche Abstraktion und Granularität verwendet werden.<br />

• Kompromiß ist der sichtenzentrierte Entwurf.<br />

• ((V 1 , ..., V k ), Association Constraints) als Modell-Suite (siehe B. Thalheim, A. Dahanayake)<br />

• Man könnte hier den Komponenten-Zugang nach Thalheim/Hegner verwenden.<br />

Unterschiedliche HERM-Annahmen je nach Abstraktionsschicht<br />

• mit Identifikation<br />

• mit partiellen Constraintmengen (z.B. nur ein Schlüssel)<br />

• Schemavollständigkeitskriterium<br />

Pragmatische strikte Unterscheidung<br />

Wir unterscheiden in modernen Sprachen zwischen<br />

Einführung von Variablen, Daten, die damit auch Rechte an der Modifikation und am Auslöschen mit einschließt,<br />

Mitnutzung von Variablen, Daten, die immer eine entsprechende Koordination mit einschließt und<br />

Mitbenutzung von Variablen, Daten etc., die keine Rechte an Modifikation und Auslöschen einschließt!<br />

siehe auch H<strong>and</strong>book, HERM-Kapitel<br />

Implicit Assumptions <strong>and</strong> Inherent Constraints <strong>of</strong> DB Specification Languages.<br />

Each language used should be based on a clear definition <strong>of</strong> structure, semantics, operations, behavior <strong>and</strong> environment. At the same time,<br />

languages presuppose implicit assumptions <strong>and</strong> constraints. The enhanced or extended ER (EER) model might, for instance, use the following<br />

assumptions:<br />

Set semantics: The default semantics <strong>of</strong> entity <strong>and</strong> relationship types are set semantics. If extended type constructors are used then their<br />

semantics are explicitly defined.<br />

Identifiability: Each entity type is identifiable. Each component type needs to be labelled whenever it cannot be distinguished from<br />

other components. In relationship types components are ordered. Their labels can be omitted whenever there is an identification. Set<br />

semantics implies identifiability <strong>of</strong> any element in the database.<br />

Partial Unique Name Assumption: Attribute names are unique for each entity <strong>and</strong> relationship type. Entity type names <strong>and</strong> relationship<br />

type names are unique for the ER-schema.<br />

Referential Integrity: If a type is based on component types then each value for this type can only use such values in components which<br />

exist as values in the component instance.<br />

Monotonicity <strong>of</strong> Semantics: If integrity constraints Φ are added to a given set <strong>of</strong> integrity constraints Σ, then the set <strong>of</strong> possible<br />

instances which satisfy the extended set <strong>of</strong> constraints Σ ∪ Φ is a subset <strong>of</strong> the set <strong>of</strong> instances which satisfy Σ.<br />

Resulting coincidence theorems as a matter <strong>of</strong> convenience.<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 157<br />

Storage <strong>and</strong> Representation Alternatives.<br />

The classical approach to objects is to store an object based on strong typing. Each real-life thing is thus represented by a number <strong>of</strong><br />

objects which are either coupled by the object identifier or by specific maintenance procedures. This approach has led to the variety <strong>of</strong> types.<br />

Thus, we might consider two different approaches:<br />

Class-wise, strongly identification-based representation <strong>and</strong> storage: Things <strong>of</strong> reality may be represented by several<br />

objects. Such choice increases maintenance costs. For this reason, we couple things under consideration <strong>and</strong> objects in the database<br />

by an injective association. Since we may be not able to identify things by their value in the database due to the complexity <strong>of</strong> the<br />

identification mechanism in real life we introduce the notion <strong>of</strong> the object identifier (OID) in order to cope with identification without<br />

representing the complex real-life identification. Objects can be elements <strong>of</strong> several classes. In the early days <strong>of</strong> object-orientation it<br />

was assumed that objects belonged to one <strong>and</strong> only one class. This assumption has led to a number <strong>of</strong> migration problems which have<br />

not got any satisfying solution. The association among facets <strong>of</strong> the same thing that are represented by several objects is maintained by<br />

the object identifier.<br />

Object-wise representation <strong>and</strong> storage: Graph-based models which have been developed in order to simplify the object-oriented<br />

approaches [BT99] display objects by their sub-graphs, i.e. by the set <strong>of</strong> nodes associated to a certain object <strong>and</strong> the corresponding<br />

edges. This representation corresponds to the representation used in st<strong>and</strong>ardization.<br />

Object-wise storage has a high redundancy which must be maintained by the system thus decreasing performance to a significant extent. Beside<br />

the performance problems such systems also suffer from low scalability <strong>and</strong> poor utilization <strong>of</strong> resources. The operating <strong>of</strong> such systems leads<br />

to lock avalanches. Any modification <strong>of</strong> data requires a recursive lock <strong>of</strong> related objects.<br />

Therefore, objects-wise storage is applicable only under a number <strong>of</strong> restrictions:<br />

• The application is stable <strong>and</strong> the data structures <strong>and</strong> the supporting basic functions necessary for the application do not change during<br />

the lifespan <strong>of</strong> the system.<br />

• The data set is almost free <strong>of</strong> updates. Updates, insertions <strong>and</strong> deletions <strong>of</strong> data are only allowed in well-defined restricted ‘zones’ <strong>of</strong><br />

the database.<br />

A typical application area for object-wise storage is archiving or information presentation systems. Both systems have an update system<br />

underneath. We call such systems play-out system. The data are stored in the way in which they are transferred to the user. The data<br />

modification system has a play-out generator that materializes all views necessary for the play-out system.<br />

Two implementation alternatives are already in use albeit more on an intuitive basis:<br />

Object-oriented approaches: Objects are decomposed into a set <strong>of</strong> related objects. Their association is maintained on the basis <strong>of</strong><br />

OID’s or other explicit referencing mechanisms. The decomposed objects are stored in corresponding classes.<br />

XML-based approaches: The XML description allows to use null values without notification. If a value for an object does not exist,<br />

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<br />

component. Classes are hidden. Thus, we have two storage alternatives for XML approaches which might be used at the same time or<br />

might be used separately:<br />

Class-separated snowflake representation: An object is stored in several classes. Each class has a partial view on the<br />

entire object. This view is associated with the structure <strong>of</strong> the class.<br />

Full-object representation: All data associated with the object are compiled into one object. The associations among the<br />

components <strong>of</strong> objects with other objects are based on pointers or references.<br />

We may use the first representation for our storage engine <strong>and</strong> the second representation for out input engine <strong>and</strong> our output engine<br />

in data warehouse approaches. The input <strong>of</strong> an object leads to a generation <strong>of</strong> a new OID <strong>and</strong> to a bulk insert into several classes. The<br />

output is based on views.<br />

The first representation leads to an object-relational storage approach which is based on the ER schema. Thus, we may apply translation<br />

techniques developed for ER schemata[Tha00].<br />

The second representation is very useful if we want to represent an object with all its facets. For instance, an Address object may be<br />

presented with all its data, e.g., the geographical information, the contact information, the acquisition information etc. Another Address<br />

object is only instantiated by the geographical information. A third one has only contact information. We could represent these three<br />

object by XML files on the same DTD or XSchema.<br />

Grundlegende Strukturbeziehungen<br />

Modellierung muß ist auch eine Ingenieursdisziplin. Deshalb werden auch die Engineering-Annahmen des Einführungskapitels<br />

betrachtet.<br />

The four fundamental structural relations used for construction abstraction are:<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 158<br />

Aggregation/participation characterizing which object consists <strong>of</strong> which object or resp. which object is part <strong>of</strong><br />

which object.<br />

Aggregation is based on constructors such as sets, lists, multisets, trees, graphs, products etc. It may include<br />

naming.<br />

Generalization/specialization characterizing which object generalizes which object or resp. which object specializes<br />

which object.<br />

Hierarchies may be defined through different classifications <strong>and</strong> taxonomies. So, we may have a different<br />

hierarchy for each point <strong>of</strong> view.<br />

Hierarchies are built based on inheritance assumptions. So, we may differentiate between generalization <strong>and</strong><br />

specialization in dependence on whether characterization are not or are inherited <strong>and</strong> on whether transformation<br />

are or are not applicable. Qualifications may form their orthogonal hierarchy (e.g., Bachelorette for Female <strong>and</strong><br />

Single <strong>and</strong> Bachelor for Male <strong>and</strong> sl Single).<br />

Exhibition/characterization specifying which object exhibits which object or resp. which object is characterized<br />

by which object.<br />

Exhibitions may be multi-valued depending <strong>of</strong> the data type used. They may be qualitative or quantitative.<br />

Classification/instantiation characterizing which object classifies which object or resp. which object is an instance<br />

<strong>of</strong> which object.<br />

Define/use separates definition <strong>of</strong> structures/types/objects from deployment <strong>of</strong> those.<br />

Modes <strong>of</strong> States.<br />

• Initial<br />

• Ultimate<br />

• Default<br />

Generalisation und Spezialisierung sind besser zu unterscheiden<br />

Aus der Enzyklopädie der Datenbanksysteme: Langfassung hier (in Enzyklopädie: Kurzfassung<br />

Specialisation <strong>and</strong> Generalisation.<br />

Definition 1 The generalisation <strong>and</strong> specialisation principles are main principles <strong>of</strong> database modelling. Generalisation maps or groups<br />

types or classes to more abstract or combined ones. It is used to combine common features, attributes, or methods. Specialisation is based on<br />

a refinement <strong>of</strong> types or classes to more specific ones. It allows to avoid null values <strong>and</strong> to hide details from non-authorised users. Typically,<br />

generalisations <strong>and</strong> specialisations form a hierarchy <strong>of</strong> types <strong>and</strong> classes. The more general types or classes may be bound by a mapping or by<br />

inheritance <strong>of</strong> attributes <strong>and</strong> methods from the more general one to the more special ones. Clusters <strong>of</strong> types to a type that represents common<br />

properties <strong>and</strong> abstractions from a type are the main kinds <strong>of</strong> generalisations. Is-A associations that specialise a type to a more specific one<br />

<strong>and</strong> Is-A-Role-Of associations that considers a specific behaviour <strong>of</strong> objects are the main kind <strong>of</strong> specialisations used in database modelling<br />

<strong>and</strong> implementation.<br />

Specialisation introduces a new entity type by adding specific properties belonging to that type which are different from the general<br />

properties <strong>of</strong> its generic type. Thus, generalisation introduces the Role-Of relationship or the Is-A relationship between a subtype <strong>and</strong> its<br />

generic type. Therefore, the constructs are different. For generalisation the generic type must be the union <strong>of</strong> its subtypes. Thus, the subtypes<br />

can be virtually clustered by the generic type. This tends not to be the case for specialisation. Specialisation is a refinement or restriction <strong>of</strong><br />

a type to more special ones. Typical specialisations are Is-A <strong>and</strong> Has-Role associations. Exceptions can be modelled by specialisations. We<br />

distinguish different kinds <strong>of</strong> specialisation:<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 159<br />

Structural specialisation T ′ ≼ St T : The structure S ′ is a substructure <strong>of</strong> S. An embedding function η exists which relates each object in<br />

T ′ to one object in T . For instance, the tuple structure (A, B, C) is a substructure <strong>of</strong> (A, B). In addition, structural specialisation requires that<br />

according to η the class T ′C <strong>of</strong> the type T ′ is a subclass <strong>of</strong> T C , i.e., we require that for each o ′ ∈ T ′C an o ∈ T C exists such that o = η(o ′ ).<br />

The relationship among objects can be supported by identifiers or keys. In this case the subtype uses the identifier <strong>and</strong> keys <strong>and</strong> provides<br />

additional attributes <strong>and</strong> methods.<br />

Semantic specialisation T ′ ≼ Se T : The logical language <strong>of</strong> T ′ can be mapped onto the logical language <strong>of</strong> T in such a way that the<br />

constraints on T ′ are stronger than the constraints on T , i.e., a mapping θ from L T ′ to L T exists such that θ(Σ ′ s) |= Σ s . The constraints used<br />

in T ′ are stronger than those used in T .<br />

The constraint sets <strong>of</strong> types are partitioned into static constraints Σ s (applicable to elements <strong>of</strong> the type sets) <strong>and</strong> dynamic constraints Σ d<br />

(applicable to operations <strong>of</strong> the types).<br />

The strong semantic specialisation T ′ ≼ St,Se T is defined on the basis <strong>of</strong> both mappings η <strong>and</strong> θ whereas θ is created using η as the<br />

mapping primitive.<br />

Pragmatical specialisation T ′ ≼ P r T : Objects may be used in different contexts. Pragmatical specialisation allows to separate the<br />

different usage <strong>of</strong> objects in contexts. The identification <strong>of</strong> objects is not changed. Therefore pragmatical specialisation can be based on<br />

structural specialisation. We require that the additional properties <strong>of</strong> objects in T ′C represent the additional properties that context requires.<br />

Operational specialisation T ′ ≼ Op T : The operations defined for T can also be applied to T ′ objects.<br />

The strong operational specialisation T ′ ≼ St,Op T requires that mappings η : Struc ′ → Struc, θ : L T ′ → L T <strong>and</strong> ζ : Ops ′ → Ops<br />

exist which commute, i.e., for any n-ary operation o ′ from Ops <strong>and</strong> arbitrary objects o ′ 1, ..., o ′ n from T ′ t the equality η(o ′ (o ′ 1, ..., o ′ n)) =<br />

ζ(o ′ )(η(o ′ 1), ..., η(o ′ n)) <strong>and</strong> ζ(θ(Σ ′ d)) |= Σ d .<br />

Type specialisation T ′ ≼ T ype T requires strong operational <strong>and</strong> strong semantic specialisation.<br />

Is-A specialisation T ′ Is − A T requires structural <strong>and</strong> strong semantic specialisation. Is-A relationship (types) are typical semantical<br />

specialisations. We require that the properties <strong>of</strong> objects in T ′C specialise those in T C or are not applicable to T .<br />

Is-A-Role-Of specialisation T ′ Is − A − Role − Of T requires structural, pragmatical <strong>and</strong> strong semantic specialisation. We require that<br />

the additional properties <strong>of</strong> objects in T ′C represent the additional properties that context requires.<br />

Generalisation can be treated in a similar manner <strong>and</strong> is based either on abstraction or on grouping. The cluster construct <strong>of</strong> the<br />

extended ER model is used to represent generalisations. Generalisation tends to be an abstraction in which a more general (generic) type is<br />

defined by extracting common properties <strong>of</strong> one or more types while suppressing the differences between them. These types are subtypes<br />

<strong>of</strong> the generic type. New types are created by generalizing classes that already exist. Typical such feature abstractions are the separation or<br />

extraction <strong>of</strong> constructors, destructors, <strong>and</strong> identification from the rest <strong>of</strong> the type. Similarity <strong>of</strong> attributes or methods may be used for the<br />

development <strong>of</strong> more abstract ones. Grouping allows to combine types that partially share properties or methods into a new type that represents<br />

the commonalities.<br />

We thus consider structural combination, semantical combination, <strong>and</strong> pragmatical combinations <strong>of</strong> types into a more general one.<br />

Structural combination typically assumes the existence <strong>of</strong> a unifiable identification <strong>of</strong> all types. Typically unambiguity is assumed, i.e. the<br />

combination is based on a disjoint union <strong>of</strong> the types. Semantical combination allows the disjunction <strong>of</strong> types through the linear sum <strong>of</strong><br />

semantics. Pragmatical generalisation is based on building collections whenever applications require a consideration <strong>of</strong> commonalties.<br />

Abstraction is the opposite <strong>of</strong> refinement. In this case, generalisation can been seen as the inverse <strong>of</strong> specialisation. The main difference is<br />

however which <strong>of</strong> the types has a practical relevance or importance. Kernel types can be generalised to more general types by abstraction from<br />

some attributes or methods, by consideration <strong>of</strong> generic methods with parameters that are mapped to the kernel type methods by instantiating<br />

parameters or by introduction <strong>of</strong> more general attributes.<br />

Generalisation <strong>and</strong> specialisation are supported by inheritance <strong>of</strong> properties <strong>and</strong> methods. It helps to factor out shared specifications<br />

<strong>and</strong> implementations. Type inheritance is defined on the basis <strong>of</strong> the definition <strong>of</strong> types <strong>and</strong> can be further partitioned into aggregation/decomposition<br />

inheritance, classification/instantiation inheritance <strong>and</strong> generalisation/specialisation inheritance. Localisation inheritance is<br />

based on localisation abstraction. Naming, parametrisation <strong>and</strong> binding are basic mechanisms to extract repeating or shared patterns. Implementation<br />

inheritance is concerned with the encapsulation <strong>and</strong> hiding <strong>of</strong> types. A typical kind <strong>of</strong> implementation inheritance is that <strong>of</strong> the<br />

operational environment <strong>of</strong> a type. Interface inheritance or view inheritance can cause some confusion since these can reverse other inheritance<br />

approaches, e.g. inclusion inheritance. Object-oriented databases allow four different kinds <strong>of</strong> inheritance: Substitution inheritance, inclusion<br />

inheritance, constraint inheritance, <strong>and</strong> specialisation inheritance,<br />

Specialisation <strong>and</strong> generalisation are based on the concept <strong>of</strong> refinement. We may use refinement steps such as refinement through instantiation<br />

replacing types by partially instantiated, refinement through separation using decomposition operators enabling in vertical or horizontal<br />

decomposition, refinement through specialisation specializing types to structurally, behaviorally or semantically more specific subtypes, <strong>and</strong><br />

refinement through structural extension extending types by other components, additional semantical constraints or functions.<br />

B. Thalheim. Entity-relationship modeling – Foundations <strong>of</strong> database technology. Springer, Berlin, 2000.<br />

J. H. Ter Bekke. Semantic data modelling. Prentice-Hall, London, 1992.<br />

J. C. Mitchell. Type systems for programming languages. In J. Van Leeuwen, editor, H<strong>and</strong>book <strong>of</strong> Theoretical Computer Science,<br />

Vol. B - Formal Models <strong>and</strong> Semantics, pages 365–458. Elsevier, Amsterdam, 1990.<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 160<br />

Modellierungsstil im HERM<br />

Aus den Annahmen heraus können wir uns einen spezifischen Modellierungsstil leisten:<br />

Mengensemantik als präferierte Semantik obwohl auch eine Listensemantik oder eine Referenzsemantik nicht ausgeschlossen<br />

ist<br />

Modularisierung innerhalb der Spezifikation als eine strukturelle Separation von Aspekten<br />

Bevorzugung der struktur-orientierten Spezifikation gegenüber der prozeß-orientierten Spezifikation<br />

Inhärente Unvollständigkeit der Spezifikation wird toleriert.<br />

Agenten-orientierte Spezifikation für verteilte Anwendungen mit expliziter Separation der Einheiten des gesamten<br />

Namensraumes der Modelle in<br />

• Input-Einheiten<br />

• Sharing-Einheiten<br />

• Control-Einheiten und<br />

• Output-Einheiten<br />

IS als Transaktionssysteme mit resultierender Steuerung und Ableitbarkeit von <strong>Information</strong>en aus Daten<br />

anstatt eines prozeduralen Systemes<br />

Resultierende Annahmen.<br />

• Grunddatentypen werden als unstrukturiert vorausgesetzt<br />

in OLAP-Anwendungen ist dies nicht mehr aufrecht zu erhalten!!!!!!<br />

• Pragmatik der Typeneindeutigkeit für jede Einheit<br />

z.B. Typen sind entweder Attribut- oder ... Cluster-Typen<br />

• Eine linguistische Semantik der Namen für Einheiten kann verwendet werden.<br />

Es wird dazu ein Stil der Benennung im Vornherein vereinbart und dann eingehalten.<br />

Wir verwenden damit für alle Namen eine Minisemantik.<br />

• Es wird eine Pragmatik für die Repräsentation zugelassen und vorher vereinbart.<br />

• Wir unterscheiden explizit zwischen Rolle und Objektexistenz.<br />

Kern-Objekte sind in der Existenz unabhängig und werden durch Entity-Typen dargestellt.<br />

An object is a thing that has the potential <strong>of</strong> stable, unconditional physical or mental existence.<br />

Existence is derived from ‘be’, ‘have being’, ‘continue to be’. Existence means to st<strong>and</strong> out, to show<br />

itself, <strong>and</strong> have a identifiable, distinct uniqueness with the physical or mental realm.(D.Dori, Websters<br />

dictionary)<br />

2.2 HERM-Strukturen<br />

Abstrakter Datentyp mit allen Eigenschaften der Grunddatentypen<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 161<br />

Finiteness Granularity Expression<br />

Textual Symbolic Numeric<br />

Finite Discrete Text-enumerated Symbol-enumerated Integer-enumerated<br />

Continuous - Symbol-floating-enumerated Floating-enumerated<br />

Infinite Discrete - - Integer<br />

Continuous - - Floating-point<br />

Eine Sprache zur Beschreibung der Strukturierung von Datenbank-Anwendungen verfügt über Konstrukte zur<br />

Darstellung der Struktur einer Anwendung. Falls diese Sprache nicht-zyklisch und induktiv aufgebaut ist, ist damit<br />

auch eine Einbettung in die Sprache der Prädikatenlogik (der ersten Stufe) gegeben. Deshalb lassen sich dann statische<br />

Integritätsbedingungen als Formeln der Prädikatenlogik mit einer St<strong>and</strong>ardinterpretation angeben. Mit der<br />

Sprachkonstruktion und mit Annahmen aus dem Umfeld werden implizite Integritätsbedingungen aufgenommen. Die<br />

Sprache zur Beschreibung der Strukturierung von Datenbanksystemen wird genutzt, um diese mit einem sogenannten<br />

Datenbank-Schema zu beschreiben. Inhalte eines statischen Modelles sind daher:<br />

Strukturen einer Anwendung,<br />

Statische Integritätsbedingungen einer Anwendung (meist für die zusätzliche Beschränkung evt. in einer Anwendung<br />

vorkommender Daten) und<br />

Common-sense-Annahmen (über das Modell, die Modellierungsart, über die Interpretation der Daten etc.).<br />

Damit wird das Wissen über die statischen Gesichtspunkte einer Anwendung modelliert durch:<br />

Die Spezifikation der Struktur in Abhängigkeit vom Typensystem mit der Spezifikation des Seienden (entity), der<br />

Beziehungen (relationship) und der Eigenschaften (Attribute).<br />

Dinge stehen in Beziehung bzw. besitzen Eigenschaften, die klassifiziert werden durch eine Rolle oder durch<br />

Klassenbildung.<br />

Die Gesamtheit der Dinge wird unter Berücksichtigung der Beziehungen unterein<strong>and</strong>er modelliert:<br />

• Aussonderung (Separation/Spezialisierung),<br />

• Verallgemeinerung (Generalisierung von Gemeinsamkeiten) und<br />

• Aggregation (zur Darstellung komplexerer Daten mit entsprechenden Operationen).<br />

Die Spezifikation der statischen Semantik, d.h. durch einschränkende Bedingungen für wirklichkeitsgetreue Nachbildung<br />

der Anwendung wie<br />

• die eindeutige Bestimmung aller Objekte durch Schlüsselbedingungen,<br />

• die Hierarchie der Objekte (Aussonderungsbedingungen (specialization, IsA), Verallgemeinerungsbedingungen<br />

(partition constraints, uniqueness constraints))<br />

• und Bedingungen für Beziehungsklassen wie die folgenden:<br />

• Darstellung eines funktionalen Zusammenhangs (viele-eins-Bedingung),<br />

• Bedingungen zur Assoziation mit Komponentenobjekten (Seinsbedingung (existence constraint))<br />

und<br />

• Verweisbedingungen auf Objekte der Komponentenklassen,<br />

sowie<br />

• allgemeine Bedingungen (inhärente Bedingungen des Modells) wie die folgenden:<br />

• Gesamtheitsregel (universe <strong>of</strong> discourse)<br />

• Verneinungsregel<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 162<br />

Sichten und abgeleitete Begriffe sind erschließbare Objekte und werden durch Anwendung von Spezifikationen aus<br />

den Objekten der Datenbank erzeugt.<br />

Das allgemeine Vorgehen der statischen Datenbankmodellierungssprachen läßt sich somit wie folgt charakterisieren:<br />

• Typen sind über ihre Typausdrücke definiert. Den (freien) Variablen werden wiederum Typen zugeordnet.<br />

• Die Zuordnungsvorschrift für Typausdrücke kann sowohl hierarchisch als auch zyklisch sein. Wählt man<br />

eine zyklische Struktur, dann sind meist nur Topoi-Semantiken geeignet. Wählt man hierarchische<br />

Strukturen, dann kann meist eine Mengensemantik noch garantiert werden.<br />

• Typen haben eine assoziierte statische Semantik.<br />

• Typen haben Operationen zu ihrer Manipulation und Veränderung. Man kann diese Operationen generisch<br />

definieren, wenn die Typenstruktur hierarchisch aufgebaut ist. Einige Operationen können auch Prädikate<br />

sein.<br />

A type constructor is a function from types to a new type. The constructor can be supplemented<br />

• with a selector for retrieval (like Select) with a retrieval expression <strong>and</strong> update functions (like Insert,<br />

Delete, <strong>and</strong> Update) for value mapping from the new type to the component types or to the new type,<br />

• with correctness criteria <strong>and</strong> rules for validation,<br />

• with default rules,<br />

• with one or several user representations, <strong>and</strong><br />

• with a physical representation or properties <strong>of</strong> the physical representation.<br />

• Klassen sind Typen zugeordnet.<br />

• Sie stellen “Container” für die Objekte des jeweiligen Typs dar.<br />

• Die assoziierte statische Semantik der Typen muß zu jedem Zeitpunkt für eine Klasse erfüllt sein.<br />

• Die Operationen der Typen werden auf Klassen ausgeführt.<br />

Wir bezeichnen Typen mit ihrem Namen, z.B. T und die zugehörigen Klassen mit einer Annotation zum Typennamen,<br />

z.B. T C (C steht für Klasse).<br />

Es sind verschiedene Modelle möglich. Jedes Modell ist durch eine Menge von inhärenten Bedingungen gekennzeichnet.<br />

Jeder benutzte Typ hat neben Konstruktor, Selektoren (für Retrieval) und Updatefunktionen, Korrektheitskriterien,<br />

default-Regeln auch eine Benutzerrepräsentation und eine physische Repräsentation.<br />

Günstig ist eine graphische Repräsentation.<br />

Eines der populärsten Modelle ist das Entity-Relationship-Modell. Wir erweitern dieses Modell zu einem<br />

Higher-Order Entity-Relationship-Modell (HERM).<br />

2.2.1 Attribut-Typen<br />

können einfache oder auf der Grundlage von Konstruktoren wie Mengenkonstruktor, Tupelkonstruktor, Listenkonstruktor,<br />

Multimengenkonstruktor induktiv konstruierte komplexe Attribut-Typen sein. Sie werden induktiv definiert:<br />

Basis-Datentypen sind parametrisierte Typen T = (dom(T ), ops(T ), pred(T )) des DBMS. Sie sind gegeben<br />

durch eine Bezeichnung T (evt. auch mit Abkürzung), einen Wertebereich dom(T ), eine Menge von Funktionen<br />

ops(T ) und eine Menge pred(T ) von Prädikaten.<br />

Oft wird auch der Basis-Datentyp mit einem <strong>Information</strong>styp assoziiert.<br />

Ein Beispiel ist der Typ der ganzen Zahlen in der 4-Byte-Repräsentation<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 163<br />

integer := (IntegerSet 4Byte , {0, s, +, -, *, ÷, }, { =, ≤ }) mit der Nachfolgefunktion s .<br />

Basis-Datentypen verfügen neben dem Wertebereich auch über Funktionen und Prädikate. Sie sind außerdem<br />

durch eine Reihe von Eigenschaften eingeschränkt, die im Datenbanksystem zu beachten sind und <strong>of</strong>t im Entwurf<br />

übersehen werden:<br />

• Die Präzision und Genauigkeit sind ggf. für Typen wie REAL eingeschränkt.<br />

• Die Granularität von Daten kann sehr unterschiedlich sein. Die Skalierung von Datentypen kann sich<br />

ggf. auch auf die Funktionalität auswirken.<br />

• Datentypen verfügen nur ggf. über eine eigene Ordnungsbeziehung.<br />

• Datentypen verfügen ggf. über eine Klassifikation innerhalb der Daten des Wertebereiches. Diese Klassifikation<br />

kann einfach oder mehrfach hierarchisch, analytisch oder synthetisch, monothetisch oder polythetisch<br />

und ein- oder mehrdimensional sein.<br />

• Datentypen können über unterschiedliche Präsentationsformen verfügen. Das Format umfaßt Länge und<br />

Größe.<br />

• Datentypen können auf unterschiedliche Art abgespeichert werden.<br />

• Datentypen verfügen über eigenständige Default- und Nullwerte.<br />

• Datentypen können durch Casting-Funktionen aufein<strong>and</strong>er abgebildet werden.<br />

• Datentypen sind bestimmten Anwendungen und Arbeitsgebieten zugeordnet.<br />

• Die Funktionen und Prädikate lassen unterschiedliche Berechnungen zu, die sich auf die Erfassung, Berechnung,<br />

Algorithmen etc. auswirken.<br />

• Bestimmte Funktionen, wie z.B. der Durchschnitt, sind evt. <strong>and</strong>ers oder gar nicht definiert.<br />

• Datentypen sind <strong>of</strong>t mit Maßeinheiten ausgewiesen, womit auch Berechnungen unterlegt werden müssen.<br />

Basis-Datentypen sind meist auch in einem Typenverb<strong>and</strong> geordnet.<br />

Neben den Basis-Datentypen des DBMS kann auch eine Anwendung über eigene Basis-Datentypen verfügen.<br />

Wir können z.B. den Typ varnumbersequence20 zur Darstellung von Telefonnummern mit einer angepaßten<br />

Ordnungsbeziehung und ohne Unterdrückung führender Nullen einführen. Analog kann ein Typ EmailTyp oder<br />

URL eingeführt werden.<br />

Kind <strong>of</strong> data type Natural order Natural zero Predefined functions Example<br />

extension based<br />

absolute + +/- +/- number <strong>of</strong> boxes<br />

ratio + +/- +(type dependent) length, weight<br />

intension based<br />

nominal - - (-) (except concatenation) names <strong>of</strong> cities<br />

ordinal + - - preferences<br />

rang + + - competitions<br />

interval + - (+)(e.g., concatenation) time, space<br />

Tabelle 1: Data types <strong>and</strong> their main canonical assumptions<br />

Attribut-Typen werden über einem Basis-Datentypen-System und einem Markierungssystem L für Attributnamen<br />

induktiv ausschließlich durch die folgenden beiden Regeln definiert:<br />

• Ein Attribut-Typ ist für eine Markierung A und einen Basis-Datentyp durch einen Ausdruck A :: T<br />

gegeben. Der Wertebereich dom(A) des Attribut-Typs ist der Wertebereich des Basis-Datentyps. Der<br />

Wertebereich des leeren Datentyps λ besteht aus ⊥.<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 164<br />

• Sind X 1 , ..., X n , Y Attribut-Typen und A, B, C, D Markierungen, dann sind A(X 1 , ..., X n ) (Tupel- oder<br />

Produkt-Konstruktor), A{Y } (Mengen-Konstruktor), A < Y > (Listenkonstruktur), A[Y ] (Konstruktor<br />

für optionale Elemente), A{| Y |} (Konstruktor für Multimengen).<br />

Die entsprechenden Wertebereiche sind durch Anwendung der Konstruktion gegeben, z.B.<br />

dom(A(X 1 , ..., X n )) = dom(X 1 ) × ... × dom(X n ) und dom(A{Y }) = 2 dom(Y ) .<br />

Markierungen können auch weggelassen werden.<br />

Beispiele von komplexeren Attributen sind<br />

Name (Vornamen,<br />

Familienname :: varstring30, [Geburtsname :: varstring30,]<br />

[Titel:{AkademischeTitel :: varstring10 } ∪ ·<br />

FamilienTitel :: varstring10])<br />

Kontakt (Tel({dienstl :: varnumbersequence20 }, privat :: varnumbersequence20),<br />

email :: emailType, ...)<br />

Geburtsdatum :: date .<br />

Attribute können in einer verkürzten Notation verwendet werden, wenn dies eindeutig im Schema bleibt. Das Attribut<br />

Kontakt ist z.B. dann auch ohne seine Best<strong>and</strong>teile verwendbar.<br />

Attribute sind hierarchisch strukturiert wie - im Falle des Namens einer Person - der Baum in Bild 3 zeigt. Diese<br />

Name<br />

❄<br />

( ... )<br />

✾<br />

Vornamen<br />

❄<br />

< ... ><br />

❄<br />

( ... )<br />

✮<br />

<br />

Vorname Benutzung<br />

❄<br />

string1<br />

❄<br />

varstring15<br />

✠<br />

Familienname<br />

❄<br />

varstring30<br />

3<br />

[ ... ]<br />

❄<br />

Geburtsname<br />

❄<br />

varstring30<br />

✾<br />

{ ... }<br />

❄<br />

AkademischeTitel<br />

❄<br />

varstring10<br />

3 [ ... ]<br />

❄<br />

Titel<br />

❄·<br />

∪<br />

3<br />

Familientitel<br />

❄<br />

varstring10<br />

Abbildung 3: Semi-strukturiertes Attribut Name<br />

hierarchische Struktur ermöglicht auch Elemente auszuzeichnen, z.B. mit der Eigenschaft Element eines Schlüssels<br />

zu sein. So kann z.B. zum Schlüssel das Teilattribut<br />

Name (Vornamen, Familienname, [Geburtsname ])<br />

hinzugenommen werden, wobei wir als Abkürzungsregel benutzen, daß mit dem Nennen eines Bezeichners auch der<br />

damit verbundene Teilbaum mit übernommen wird, z.B. für Vornamen auch die gesamte Teilstruktur Vornamen .<br />

Kontrollfrage: Ist richtig Plz:String oder Plz:Number ?<br />

2.2.2 HERM-Typen<br />

werden induktiv aufein<strong>and</strong>er basierend definiert.<br />

Grundlagen aus der Theorie der <strong>Information</strong>ssysteme<br />

Wir unterscheiden zwischen der formalen Definition und der graphischen Repräsentation. Die graphische Darstellung kann unterschiedlichen<br />

Paradigmen folgen.<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 165<br />

Begründung: Da die Werkzeuge zum Datenbank-Entwurf meist einschränkend sind bei der graphischen Darstellung, sollte man sich hier die unterschiedlichen<br />

Darstellungsformen erschließen und parallel benutzen.<br />

Allgemeiner Definitionsrahmen für Typen: für korrekte Separation wird verwendet<br />

• T ⊜ (compon T ; identif T ; integrity T )<br />

Die drei Elemente eines Typen (compon T ; identif T ; integrity T ) können als Folge definiert werden,<br />

wenn man die Separation durch das Semikolon benutzt.<br />

• Wird eine Folge verwendet, dann kann auch die Reihenfolge der Elemente für die Annotation verwendet<br />

werden.<br />

• Oft wird anstatt ⊜ auch einfach das Gleichheitszeichen verwendet. Dies ist eine Form der Bezeichnungsökonomie,<br />

hat aber nichts mit der mathematischen Gleichhet zu tun.<br />

• alternativ aber weniger korrekt T ⊜ (compon T , identif T , integrity T )<br />

Verwendung von Marken ist für alle Typen zugelassen.<br />

I.a. wird dazu die Form Marke:Bezeichner gewählt. Dies erlaubt dann auch die Marke als Abkürzung<br />

oder alias zu verwenden.<br />

Unique-Name-Assumption für alle Bezeichner des Schemas, d.h. alle Entity-, Relationship- und Cluster-Typen,<br />

sowie für Komponenten der Typen selbst. Ansonsten wird eine Marke notwendig.<br />

Alternativen in der Darstellung<br />

Wir verwenden - wo immer es möglich ist - das Kartesische Produkt als Typenkonstruktoren.<br />

Begründung: Die Darstellung im Stile der funktionalen Programmierung mit Funktionen hat sich nicht bewährt und wurde in den 1980ern verworfen.<br />

Entity-Typ: Eine Seiendenklasse (Objektklasse) (Entity-Klasse im weiteren) wird durch einen Entity-Typ dargestellt.<br />

Ein Entity-Typ besteht aus einer nichtleeren Folge von Attributen und einer Menge von statischen Integritätsbedingungen.<br />

Der Primärschlüssel wird direkt durch Unterstreichen der Attribute angegeben. Ist die Menge der<br />

statischen Integritätsbedingungen leer, dann kann sie auch weggelassen werden. Eine Klasse von der Struktur<br />

des Entity-Typs ist gültig, falls alle Integritätsbedingungen gelten. Wir folgen der klassischen Notation, bei<br />

der ein Entity-Typ mit einer Definitionsgleichung dargestellt wird. Zum Beispiel ist ein Person-Typ spezifiziert<br />

durch<br />

Person ⊜ (Name, Adresse, Kontakt, GebDatum, PersNr : StudNr ∪ ·<br />

MitarNr, ..., ∅)<br />

mit einer Folge von Attributen. Markierungen sind als solche ausgewiesen.<br />

Ein Entity-Typ wird durch ein Rechteck graphisch repräsentiert.<br />

Eine Entity-Klasse besteht aus einer Menge von Objekten vom Entity-Typ, die die statischen Integritätsbedingungen<br />

des Entity-Typen erfüllt.<br />

Hier verwendete Annahmen:<br />

Wir definieren die Klasse als eine Menge. Multimengen-Semantik wird z.B. im relationalen Modell für Anfragen verwendet. Dort ist die<br />

Multimenge relativ einfach beherrschbar. Wird dagegen ein paralleler Zugriff für unterschiedliche Benutzer erlaubt, dann muß ein explizites<br />

Konzept des sharing eingeführt werden.<br />

Begründung: Kollaboration kann über das 3C-Modell (siehe meine Publikationen) definiert werden. Der sehr komplexe und zugleich sehr schwer zu<br />

realiserende Teil des 3C-Modelles ist die Koordination. Man kann hier Verträge von Benutzern verwenden. Eine Spezifikation von Anwendungen wird<br />

dabei allerdings viel zu komplex.<br />

Zum Beispiel ist das folgende Objekt mit dem Identifikator β<br />

β: ((, Thalheim, {Pr<strong>of</strong>., Dr.rer.nat.habil., Dipl.-Math.}),<br />

BTU Cottbus, (({ +49 355 692700, +49 355 692397}, +49 355 824054),<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 166<br />

thalheim@informatik.tu-cottbus.de), 10.3.52, 637861)<br />

vom Entity-Typ Person, wobei mit ‘z’ der Zusatzname und mit ‘r’ der Rufname bezeichnet wird.<br />

Darstellung im Diagramm durch ein Rechteck mit dem Namen des Typen als Bezeichner und ggf. den Attributen<br />

als Annotationen am Rechteck.<br />

Alternativ kann man auch die UML-artige Notation verwenden mit einer Liste der Attribute innerhalb<br />

eines Rechteckes.<br />

Unterschied zur Vorlesung <strong>Information</strong>ssysteme (4. Semester)<br />

Im Diagramm nutzen wir einen Typen mit annotierten Attributen. Man könnte auch noch Kreise um die Attribute ziehen.<br />

Begründung: Dies ist aber unnötigt. Die Diagramme werden unübersichtlicher.<br />

Hier verwendete Annahmen:<br />

Ein Entity-Typ hat mindestens eine Komponente, die Sinn in der Anwendung macht.<br />

Begründung: Künstliche, vom System erzeugte Identifikation macht für einen Anwender weder Sinn für das Retrieval noch für die Modifikation. Sie<br />

ist ein bequemes und zugleich sehr mächtiges Instrument der Implementation.<br />

Unterschied zur Vorlesung <strong>Information</strong>ssysteme (4. Semester)<br />

Wir verwenden nur eine interne Identifikation über Komponenten des Entity-Typs. Schwache Entity-Typen sind nicht zugelassen.<br />

Begründung: Im Buch [Tha00] wird ausführlich begründet, warum schwache Typen zu schlechten Schemata führen, in eigenartiger Semantik<br />

resultieren und auch mit dem higher-order Relationship-Typ vollständig überflüssig sind.<br />

Unterschied zur Vorlesung <strong>Information</strong>ssysteme (4. Semester)<br />

Wir vermeiden eine ständige Einführung eines Identifiers. Diese Attribut sollte bei der konzeptionellen Modellierung nur dann<br />

eingeführt werden, wenn dies erforderlich ist.<br />

Begründung: Der Identifier ist ein logisches Konzept. Ansonsten erfordert er eine Extra-Verwaltung, die ein Schema verschlimmbessert.<br />

Hinzu kommt der Albtraum, den wir für objekt-orientierte Schemata in aller Problematik kennenlernen mußten.<br />

Grundlagen aus der Theorie der <strong>Information</strong>ssysteme<br />

Konzeptionelle Modellierung orientiert sich an echten, in der Anwendungswelt sinnvollen Konzepten. Künstliche, der Implementation geschuldete<br />

Konstrukte sind strikt zu vermeiden, wenn man den Benutzer nicht verwirren oder von der Anwendung fernhalten möchte.<br />

Begründung: Die Theorie der relationalen Datenbanken hat sich stark an den ersten Systemrealisierungen orientiert und dabei die dort erfolgten Annahmen<br />

einfach als ‘gottgegeben’ akzeptiert. Solche Annahmen sind meist nicht mehr hinnterfragt worden. Sie bedürfen jedoch einer Revision unter<br />

modernen Gegebenheiten.<br />

Grundlagen aus der Theorie der <strong>Information</strong>ssysteme<br />

Die Identifikation kann über minimale Schlüssel definiert werden. Es ist hier nicht nur der Primärschlüssel von Interesse, sondern auch weitere<br />

Schlüssel, die in einer Anwendung Sinn machen.<br />

Begründung: Man betrachte einmal den Typ Lehrstuhl, der sowohl über den Namen (mit ggf. Zusätzen) als auch die Kostenstelle als auch den Raum<br />

oder <strong>and</strong>ere Kantaktformen identifizierbar ist, wobei die spezifische Identifikation für unterschiedliche Assoziationen dann auch benötigt wird.<br />

Einfacher Relationship-Typ: Ein Relationship-Typ (erster Ordnung) besteht aus einer nicht-leeren Folge von Entity-<br />

Typen, einer Menge von Attributen und einer Menge von statischen Integritätsbedingungen. Eine Menge von<br />

der Struktur des Relationship-Typen ist eine gültige Menge, wenn sie den statischen Integritätsbedingungen<br />

genügt. Elemente können markiert sein.<br />

Ein Beispiel sind die Relationship-Typen<br />

InGruppe = (Person, Gruppe, { Zeit(Von [,Bis]), Funktion }, ∅ )<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 167<br />

DirektVoraussetz = (setztVoraus: Kurs, vorausges : Kurs, ∅, ∅ )<br />

Pr<strong>of</strong>essor = (Person, { Berufungsgebiet }, ∅ ) .<br />

Ein Relationship-Typ wird mit einer Raute graphisch repräsentiert. Wir erlauben auch optionale Komponenten<br />

von Relationship-Typen, solange eine Identifikation über die obligatorischen Elemente definiert ist.<br />

Alternativen in der Darstellung<br />

Eine alternative Form ist die IDEF-Notation, bei der Relationship-Typen mit Rechtecken, die abgerundete Ecken haben, verwendet werden. Diese<br />

Form erlaubt auch eine einfache Umformung von Entity-Typen zu Relationship-Typen oder auch die Objektifizierung von Relationship-Typen.<br />

Begründung: Es wird <strong>of</strong>t argumentiert, daß die IDEF-Darstellung die natürlichere Form sei. Sie wird auch von fast allen Werkzeugen unterstützt. In<br />

der Forschungsliteratur hat sich jedoch die ursprüngliche Form durchgesetzt. Dem folgt auch die Lehrbuchliteratur. Ein survey der DAMA zeigt jedoch,<br />

daß diese Form in der Praxis weit verbreitet ist. Die Verbreitung hat sich nicht mit UML geändert, die auch sowohl die Raute als auch das abgerundete<br />

Rechteck erlaubt.<br />

Ein Objekt eines Relationship-Typs ist ein Tupel, das zu den jeweiligen Elementen auf die entsprechenden Objekte<br />

der Klasse der Elemente durch Angabe von identifizierenden Werten (Identifikator bzw. Primärschlüssel<br />

bzw. <strong>and</strong>erer Schlüssel) verweist und Werte für die Attribute des Relationship-Typs besitzt.<br />

Eine Relationship-Klasse besteht aus Objekten des Relationship-Typs, die den statischen Integritätsbedingungen<br />

genügen.<br />

z.B. sind Objekte der Typen Pr<strong>of</strong>essor, InGruppe und DirektVoraussetz<br />

Pr<strong>of</strong>β: ( 637861, Datenbank- und <strong>Information</strong>ssysteme )<br />

Senator3β: ( 637861, Senat, (1995,1998), Dekan)<br />

Senator5β: ( 637861, Senat, (2000), Vorsitzender)<br />

VorausDBIVHaupt: (DBIV, DBI) .<br />

Cluster-Typ Eine disjunkte Vereinigung von bereits konstruierten Typen wird als Cluster-Typ bezeichnet. Ein Cluster-<br />

Typ wird mit einem ⊕ -Zeichen graphisch repräsentiert.<br />

Beispiele sind durch folgende Typen gegeben:<br />

JuristischePerson = Person ∪ ·<br />

Betrieb ∪ ·<br />

Vereinigung<br />

Gruppe = Senat ∪ ·<br />

Arbeitsgruppe ∪ ·<br />

Vereinigung,<br />

die den Typ JuristischePerson bzw. Gruppe als disjunkte Vereinigung von <strong>and</strong>eren Typen einführen.<br />

Cluster-Typen können weitere Attribute besitzen. In diesem Fall wird der Cluster-Typ durch eine Raute mit den<br />

Attributen repräsentiert.<br />

Objekte von Cluster-Typen sind analog zu den Objekten <strong>and</strong>erer Typen durch entsprechende Zuordnung zu den<br />

Element-Typen eingeführt. So können z.B. die Objekte β, LIM, CottbusNet e.V. juristische Personen sein.<br />

Alternativen in der Darstellung<br />

Cluster-Typen werden <strong>of</strong>t nicht zugelassen, so daß dann für alle Typen eine Mixvererbung geführt werden muß.<br />

Begründung: Die Generalisierung ist i.a. nicht die Umkehrung der Spezialisierung. Neben der Mixvererbung sind auch die virtuelle und partielle Vererbung<br />

von Interesse und deshalb nicht von vornherein auszuschließen.<br />

¨<br />

Uber die Nutzung der disjunkten Vereinigung hinaus kann auch der Cluster-Konstrukt für alle algebraischen Operationen genutzt werden.<br />

Ein Beispiel aus dem Titelbild der 7. Auflage des Buches von A. Kemper/ A. Eickler dazu:<br />

The following three schemata are equivalent to each other <strong>and</strong> are tightly associated with each other by transformation mappings. A typical example <strong>of</strong> these two schemata is given in<br />

Figure 4. Students enrolled in a course may be examined by docents that give the course.<br />

The optimised conceptual schema can be easily mapped to a structure that supports smooth operating <strong>of</strong> the database. The sophisticated HERM schema uses the Θ-join for the correct<br />

building <strong>of</strong> the relationship type that records downloads. The optimised conceptual schema is equivalent to this schema due to the equivalence <strong>of</strong> the join decomposition <strong>and</strong> the inclusion<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 168<br />

Examines.Enrolls.Course<br />

= Examines.GivenBy.Course<br />

Θ := Enrolls.Course ✶ P rovides.Course<br />

Course ✛ GivenBy ✲<br />

Docent<br />

Course ✛ GivenBy ✲<br />

Docent<br />

✻<br />

✻<br />

✻<br />

✻<br />

Enrolls<br />

✛<br />

Examines<br />

Enrolls<br />

✛<br />

Θ<br />

Examines<br />

❄<br />

❄<br />

Student<br />

Student<br />

The simple HERM schema<br />

The sophisticated HERM schema<br />

The representational conceptual schema<br />

Student = ({ StudId, ... }, ...),<br />

Course = ({ CourseID,... }, ...),<br />

Docent = ({ DocentID,... }, ...),<br />

Enrolls ✲ Course ✛ GivenBy Enrolls = ({ StudId, CourseID,... }, ...),<br />

Provides = ({ CourseID, DocentID,... }, ...),<br />

Examines = ({ StudId, DocentID, CourseID,... }, ...)<br />

⊇ ✻ ⊆<br />

Examines[StudId, CourseID]<br />

❄<br />

❄<br />

⊆ Enrolls[StudId, CourseID]<br />

Student ✛ Examines ✲ Docent Examines[CourseID, DocentID]<br />

⊆ Provides[CourseID, DocentID]<br />

The “optimized” conceptual schema<br />

The logical relational schema<br />

The association between the “optimised” schema <strong>and</strong> the relational schema<br />

Abbildung 4: The ‘Janus’ schema cluster for conceptual modelling<br />

constraints [Tha00].<br />

Unterschied zur Vorlesung <strong>Information</strong>ssysteme (4. Semester)<br />

Relationship-Typen werden im Stile der funktionalen Programmierung als Funktion des Namen auf die Rollen der Komponenten<br />

eingeführt. Ggf. sind auch Attribute erlaubt.<br />

Begründung: Es ist damit eine Defintion der Rollen unbedingt erforderlich. Rollen sind jedoch eine spezifische Form der Spezialisierung<br />

für die Komponenten und sollten nur dort verwendet werden, wo dies erforderlich ist.<br />

Relationship-Typ höherer Ordnung: Ein Relationship-Typ i-ter Ordnung besteht aus einer nicht-leeren Folge von<br />

Entity- und Relationship-Typen einer Ordnung von maximal (i-1), wobei ein Typ (i-1)-ter Ordnung sein muß,<br />

einer Menge von Attributen und einer Menge von statischen Integritätsbedingungen. Eine Menge von der<br />

Struktur des Relationship-Typen ist eine gültige Menge, wenn sie den statischen Integritätsbedingungen genügt.<br />

Eine Identifikation kann sowohl aus den Elementen bestehen als auch aus den Attributen.<br />

Unterschied zur Vorlesung <strong>Information</strong>ssysteme (4. Semester)<br />

Es wird <strong>of</strong>t für Relationship-Typen höherer Ordnung der Zugang der Objektifizierung genutzt. Dieser Zugang ist äquivalent zu<br />

dem hier genutzten. Er führt jedoch ein weiteres Element im Diagramm ein. Es wird um die Raute ein Rechteck gezogen, so daß<br />

ein weiteres Element entsteht.<br />

Begründung: Man sollte im Diagramm Konstrukte so sparsam wie möglich verwenden. Alles <strong>and</strong>ere verwirrt nur. Hinzu kommt als<br />

Fehler- und Verwirrungsproblem das genaue Anbringen der Attribute an den Typen. Attribute gehören dann wohl eher zum ursprünglichen<br />

Typ und nicht zum objektifiziertem Typ.<br />

Dieser Zugang erlaubt keine Einführung von Clustern.<br />

Alternativen in der Darstellung<br />

Besonders unübersichtlich wird die Objektifizierung über Teilschemata z.B. für einen Relationship-Typen mit seinen Komponenten.<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 169<br />

Begründung: Man verliert sich sehr schnell in solchen Diagrammen.<br />

Mit der expliziten Einführung von Typen höherer Ordnung werden objektifizierte Typen überflüssig!<br />

Es ist mitunter vorteilhaft, über Relationship-Typen höherer Ordnung zu verfügen, wie Bild 5 zeigt. Im oberen<br />

Student’<br />

✻<br />

✶<br />

✯<br />

Pr<strong>of</strong>essor’<br />

eingeschr.<br />

in<br />

Vorlesung<br />

☛ ✾<br />

Semester<br />

✰<br />

Raum<br />

<br />

❄<br />

Kurs<br />

✛<br />

✛<br />

Direkt-<br />

Voraussetz<br />

Student’<br />

✻<br />

✯<br />

Pr<strong>of</strong>essor’<br />

eingeschr.<br />

in<br />

✲<br />

Vorlesung<br />

✾<br />

Semester<br />

✰<br />

Raum<br />

❄<br />

Kurs<br />

✛<br />

✛<br />

Direkt-<br />

Voraussetz<br />

Abbildung 5: HERM Diagramme mit und ohne Relationship-Typen höherer Ordnung<br />

Diagramm muß eine zusätzliche Integritätsbedingung zwischen den Typen eingeschriebenIn und Vorlesung<br />

gelten, weil man sich nur dann einschreiben kann, wenn diese Vorlesung existiert.<br />

Ein etwas komplexeres Beispiel ist das Beispiel in Bild 6. Eine Lehrveranstaltung, z.B. eine Vorlesung, wird<br />

durch einen Lehrstuhl angeboten. Dieses Angebot kann angenommen werden. Dann wird die Lehrveranstaltung<br />

geplant. Wird sie auch gehalten, dann werden die aktuellen Daten in der Klasse zum Typ GehalteneLehrveranst<br />

gespeichert. Der Typus und die Raumzuordnung können sich vom Vorschlag zum Plan und für den Raum<br />

vom Plan zu den gehaltenen Lehrveranstaltungen ändern. Ein Vorschlag für eine Lehrveranstaltung wird durch<br />

Berechtigte eingetragen. Eine Person ist für die Lehrveranstaltung verantwortlich. Eine Lehrveranstaltung kann<br />

für mehrere Studiengänge angeboten werden.<br />

Wir wollen hier nicht die vollständige Entfaltung von Objekten zu Typen höherer Ordnung fordern. Deshalb<br />

erbt ein Relationship-Typ höherer Ordnung nur die Identifikation seiner Elemente oder - wenn wir an einer<br />

vollständigen Wertedarstellung interessiert sind - nur die identifizierenden Werte der Objekte seiner Komponenten.<br />

So können z.B. Objekte vom Typ geplanteLehrveranstaltung in Bild 6 auch nur auf Objekte verweisen,<br />

die Kurs, Semester, Pr<strong>of</strong>essor bezeichnen, wenn wir voraussetzen, daß ein Schlüssel des Typs angeboteneVorlesung<br />

aus Kurs, Semester, Pr<strong>of</strong>essor besteht.<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 170<br />

Kurs Semester Pr<strong>of</strong>essor ✲<br />

✯<br />

❦<br />

✻<br />

✒<br />

Dozent<br />

Person<br />

✶<br />

eingetragen<br />

Verantwortlicher4LV<br />

Studiengang<br />

{}<br />

✛ angebotene Wunsch<br />

Vorlesung<br />

Zeit(Vorschlag,<br />

Vorschlag ✻ Nebenbeding)<br />

✲<br />

✯<br />

✻<br />

Raum<br />

Typus<br />

✰<br />

✛<br />

geplante ✛<br />

Lehrveranst<br />

Zeitrahmen<br />

gehaltene<br />

Lehrveranst<br />

Abbildung 6: HERM Diagramm zu unserem Hauptbeispiel<br />

Ein Objekt vom Typ<br />

angeboteneVorlesung = (Kurs, Semester, Studiengänge,<br />

Pr<strong>of</strong>essor, eingetragen, Verantwortlicher4LV, Raumwunsch, Typus, { Zeit }, ∅) ist z.B.<br />

VorlesungDBIVSS02: (DBIV, SS2002, { Informatik, IMT },<br />

637861, KK, 637861, SR1, Vorlesung/Übung/Praktikum 2+2+2, Mo. 1.DS) .<br />

Generalisierung versus Spezialisierung: Ein Cluster-Typ erlaubt die explizite Darstellung einer Generalisierung.<br />

Ein unärer Relationship-Typ stellt dagegen eine Spezialisierung dar, wenn der Relationship-Typ bzw. Entity-<br />

Typ als sein Element diesen identifiziert. Rollen werden <strong>of</strong>t durch einen generischen Typ mit der Bezeichnung<br />

IsA dargestellt. Da die relationalen Schemata auch ohne diesen Typ auskommen, bevorzugen wir die Darstellung<br />

als Rolle mit unären Relationship-Typen oder ggf. auch mehrstelligen Relationship-Typen, falls die Rolle<br />

durch eine Beziehung zu <strong>and</strong>eren Typen ausgezeichnet ist. Damit sind wir in der Lage, zwischen Generalisierung<br />

und Spezialisierung zu unterscheiden.<br />

Rollen, die exklusiv bzw. hierarchisch sind, lassen sich auch anstelle einer HERM-Rautenstruktur durch hierarchische<br />

Strukturen abbilden, wie in Bild 7 dargestellt. Welche Darstellungsform gewählt wird, hängt vom erforderlichen<br />

Detaillierungsgrad ab. Sollen Attribute mit dargestellt werden, wird das hierarchische ER-Modell<br />

sehr schnell zu unübersichtlich. In den ersten Abstraktionsschichten stellt es aber eine gute Alternative zum<br />

HERM-Diagramm zum.<br />

Person<br />

Student<br />

Diplom<strong>and</strong><br />

Diplom<strong>and</strong><br />

✲<br />

Student<br />

✲<br />

Person<br />

Universitätsmitarbeiter<br />

Pr<strong>of</strong>essor<br />

Projektmitarbeiter<br />

Projektmitarbeiter<br />

✻<br />

✲Universitäts-✛<br />

mitarbeiter<br />

Pr<strong>of</strong>essor<br />

Abbildung 7: Hierarchisches ER-Diagramm versus HERM Diagramm<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 171<br />

Aggregation: Wir können die Konstruktion von Relationship-Typen zu einer allgemeinen Aggregationskonstruktion<br />

erweitern, indem wir weitere Konstruktoren zulassen:<br />

• Vereinigung,<br />

• Mengenbildung,<br />

• Aggregation durch Beziehungsklasse und<br />

• Abstraktion durch Komponentenbildung.<br />

Klassen werden mit der hochgestellten Annotation ‘C’ und dem Typnamen bezeichnet. Z.B. sind Person C und<br />

InGruppe C Klassen entsprechenden Typs.<br />

IsA-Beziehungen können auf sehr unterschiedliche Art repräsentiert werden, ebenso wie unterschiedliche Schemata letztendlich das gleiche<br />

darstellen können.<br />

Three different styles are depicted in Figure 8. We prefer the compact style in the left diagram.<br />

Person<br />

Person<br />

Person<br />

✻<br />

✻<br />

✻<br />

Pr<strong>of</strong>essor<br />

Pr<strong>of</strong>essor<br />

IsA<br />

Pr<strong>of</strong>essor<br />

Abbildung 8: Variants for Representation <strong>of</strong> Unary Relationship Types<br />

IsA-Typen:<br />

hier wurde partielle, nicht disjunkte Darstellung über Teiltypen bevorzugt, denkbar sind jedoch verschiedene Typen:<br />

1. partiell, nicht disjunkt;<br />

dieser Fall wird als der typische Fall angenommen (keine weiteren semantischen <strong>Information</strong>en)<br />

Im HERM darstellbar über unäre Teiltypen.<br />

Person ⊇ Pr<strong>of</strong>essor ∪ Mitarbeiter ∪ Student<br />

E ⊇ E 1 ∪ ... ∪ E n<br />

2. partiell, disjunkt<br />

die Teiltypen erfüllen eine Exklusionsbeschränkung<br />

Person ⊇ Pr<strong>of</strong>essor ∪ Student<br />

E = E 1 ∪ ... ∪ E n<br />

3. total, nicht disjunkt<br />

E = E 1 ∪ ... ∪ E n<br />

Projektmitarbeiter = Pr<strong>of</strong>essor ∪ Mitarbeiter ∪ Student<br />

4. total, disjunkt<br />

E = E 1 ∪ ... ∪ E n<br />

Studenten = StudImVordiplom ∪ StudImHauptstudium ∪ Diplom<strong>and</strong><br />

Weiterhin kann auch für die Spezialisierung mit Partitionsbedingung eine analoge Strukturierung betrachtet werden (wird auch in den<br />

meisten Büchern ‘vergessen’):<br />

1. partiell, nicht disjunkt<br />

E ⊆ E 1 ∪ ... ∪ E n<br />

Teilnehmer ⊆ Vortragender ∪ Organisator ∪ NormalerTeilnehmer<br />

2. partiell, disjunkt<br />

E ⊆ E 1 ∪ ... ∪ E n<br />

Literatur ⊆ Buch ∪ Preprint ∪ Zeitschrift<br />

3. total siehe oben Generalisierung ≠ (Spezialisierung) −1<br />

E = E 1 ∪ ... ∪ E n<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 172<br />

Gewöhnlich wird in der Literatur nur versimplifizierend die IsA-Beziehung als strukturelle Beziehung betrachtet. Richtig ist aber die IsA-<br />

Beziehung im vollen Typeninhalt zu betrachten:<br />

Typ = Struktur + Operationen + Semantik<br />

In diesem Fall wird die Richtung der Vererbung bekanntgegeben.<br />

Damit dann besser modellierbar:<br />

• Vererbung von Eigenschaften von Teiltyp nach Supertyp<br />

• Vererbung von Eigenschaften von Supertyp nach Teiltyp (als Weiterbenutzung, Wiederverwendung)<br />

• Operationen des Teiltyps sind operationale Spezialisierung der Operationen des Supertyps (wenn im supertyp definiert)<br />

• Semantik des Teiltyps (eingeschränkt auf im Supertyp darstellbares) folgt aus Semantik des Supertyps<br />

Unterschied zur Vorlesung <strong>Information</strong>ssysteme (4. Semester)<br />

Oft wird mit dem IsA-Typen eine Mixvererbung verbunden. Das Liskov-Substitutions-Prinzip (Methoden, die Zeiger oder Referenzen<br />

auf Basisklassen benutzen, müssen in der Lage sein, Objekte von abgeleiteten Klassen zu benutzen, ohne es zu bemerken!<br />

Es ist eine <strong>and</strong>ere Formulierung von totalem Polymorphismus. Wenn es für jedes Objekt O 1 vom Typ S ein Objekt O 2 vom Typ T<br />

gibt, so daß sich für alle Programme definiert in T das Verhalten nicht ändert, wenn O 2 durch O 1 ersetzt wird: Dann ist S eine<br />

Subtyp von T .) bei der Vererbung ist nur dann erforderlich, wenn die Objekte wie in Java oder UML zugleich um alle Attribute<br />

des Supertypen im Subtypen angereichert werden.<br />

Begründung: Die Vererbung von Beziehungen des Supertypen erfolgt im Schema ohnehin aufgrund der Integritätsbedingungen. Die automatische<br />

Anreicherung um alle Attribute des Supertypen bringt eine erhöhte Redundanz an Werten, die zudem noch gepflegt werden müssen.<br />

Alternativen in der Darstellung<br />

Abstraktionskonzepte, die in der Informatik entwickelt worden sind:<br />

• Spezialisierung und Generalisierung: Objekte sind (entgegen der üblichen Salami-Slice-Modellierung) selbst strukturiert und können in<br />

spezielle Rollen oder auch in Zusammenfassungen wirksam gemacht werden.<br />

• Dekomposition: Das ist das Prinzip der Trennung einer Abstraktion in ihre Komponenten.<br />

• Instantiierung: Dies wird im zusammenhang mit der Erstellung von Instanzen einer Klasse angew<strong>and</strong>t.<br />

• Individualisierung: Ähnliche Objekte werden für gemeinsamme Zwecke zusammengefaßt.<br />

Begründung: Abstraktion dient der Verkürzung und sollte nicht mit <strong>and</strong>eren Methoden verwechselt werden.<br />

Grundlagen aus der Theorie der <strong>Information</strong>ssysteme<br />

Vererbung, Polymorphie, abstrakte Klassen, Klassenhierarchien und dynamische Binding sind in der objektorientierten Programmierung in einer<br />

spezifischen Form verwendet worden. Sie sind i.a. viel breiter als in der spezifischen dort verwendeten Form.<br />

Begründung: Die Grundlagen von Vererbung, Polymorphie, Objektidentifikation, Prototypen, Generizität etc. sind noch nicht ausreichend verst<strong>and</strong>en und<br />

erforscht. So wird z.B. in einer Subtypenbeziehung eine (unselige) Diskussion zur Kovarianz und Kontravarianz geführt, wobei man eigentlich das Subtypenkonzept<br />

meint.<br />

Statische Integritätsbedingungen: Die Semantikspezifikationssprache umfaßt Schlüssel und Integritätsbedingungen,<br />

wie funktionale Abhängigkeiten, Exklusions- und Inklusionsabhängigkeiten, mehrwertige Abhängigkeiten, Viele-<br />

Eins-Bedingungen, Seinsbedingungen (Existenzbeziehung), Verweisbedingungen, Teiltypenbedingungen und Regeln,<br />

wie z.B. die Gesamtheitsregel, die Verneinungsregel und die Sichtregeln, sowie vor allem Komplexitätsbedingungen<br />

(Kardinalitätbedingungen) zur Spezifikation der Beziehung zwischen einem Relationship-Typen und seinen<br />

Komponenten.<br />

Unterscheidung (s.o.) von<br />

Generalisierung von Typen zur Zusammenfassung gleichartiger Beziehungen, gleichartigen Verhaltens<br />

Spezialisierung von Typen mit Einführung zusätzlicher Charakteristiken (Attribute) und zur Spezialisierung des<br />

Verhaltens<br />

u.a. auch<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 173<br />

• Auszeichnung von Rollen<br />

• Darstellung von Zusatzeigenschaften, ggf. auch optionaler Eigenschaften<br />

• Darstellung von Teiltypen<br />

Unterschiede von Generalisierung Spezialisierung<br />

... ...<br />

Beispiel: Verantwortlichkeit<br />

tbd<br />

Mehrdimensionale Modellierung<br />

Im Schema in Bild 9 beobachten wir mehrere Dimensionen, die relativ unabhängig vonein<strong>and</strong>er betrachtet werden<br />

können:<br />

• Gegenst<strong>and</strong>sdimension, z.B. Partei, Person, Position und Organisation<br />

• Klassifikationen, hierarchische und <strong>and</strong>ere Untergliederungen<br />

• Organisationsmodelle<br />

• Bedienungsmodelle und deren Komponenten, z.B. Verantwortlichkeit, Verantwortlichkeitsbereich<br />

Kind <strong>of</strong><br />

business<br />

✛<br />

Business<br />

hierarchy<br />

Range<br />

Protocol<br />

type<br />

■<br />

✒<br />

✻<br />

Product<br />

type ❨<br />

Responsibility<br />

Amount range<br />

Quantity ■<br />

Position ❦<br />

Person<br />

✛<br />

Resource<br />

type<br />

is <strong>of</strong> type<br />

✠<br />

Party ✛server<br />

Responsibility<br />

⊕ ✛ client<br />

✲<br />

Party<br />

hierarchy<br />

❄ ❄<br />

Party<br />

type<br />

✻ ✻server<br />

client<br />

✲Responsibility<br />

type<br />

✲Responsibility<br />

contract<br />

Product<br />

hierarchy<br />

Rule<br />

❄<br />

❄<br />

✲ Kind ✛<br />

<strong>of</strong> hierarchy Hierarchy ✲ Organization<br />

✻ ✻<br />

✛<br />

son<br />

father<br />

Organization<br />

based on ✲ ✛<br />

type Structure<br />

✒<br />

❄<br />

Time<br />

slot<br />

❄<br />

Responsibility✛<br />

hierarchy<br />

✻<br />

Hierarchical<br />

hierarchy<br />

Layered<br />

hierarchy<br />

Abbildung 9: A generic model <strong>of</strong> responsiblities<br />

Theorie und Technologie der mehrdimensionalen Schema-Architekturen: Siehe R. Noack, B. Thalheim, EJC 2013 !!!<br />

2.2.3 Nullwerte sind keine Werte sondern Marken<br />

• state <strong>of</strong> the art: wide utilisation <strong>of</strong> misinterpretation <strong>of</strong> NULLs, wrong implementation support, confusing logics<br />

• null marker logics<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 174<br />

C.J. Date (Logic <strong>and</strong> Databases - The roots <strong>of</strong> relational theory (2007), 117): “I apologize for the wording “contains a null”; as I’ve written<br />

elsewhere, to talk about anything “containing a null” actually makes no logical sense. Indeed one <strong>of</strong> the problems with nulls is precisely that<br />

you ca‘’t talk about them sensibly! ... the entire topic is a perfect illustration <strong>of</strong> The Principle <strong>of</strong> Incoherence ... ”<br />

(228): “... nulls are ipso facto nonsense ...<br />

E.F. Codd (The Relational Model for Data Management, Version 2 (1990), 172): The basic principle <strong>of</strong> the relational approach to missing<br />

information is that <strong>of</strong> recording the fact that a db-value is missing by means <strong>of</strong> a mark (originally called a null or null value). There is nothing<br />

imprecise about a mark: a db-value is either present or absent in a column <strong>of</strong> a relation in the database.<br />

(197) ... the way the relational model deals with missing values appears to be one <strong>of</strong> its least understood part.<br />

Chris J. Date’s Arguments<br />

• We need a pro<strong>of</strong> that in particular situations NULL’s can’t never give wrong answers. CJD has already shown that in generally NULL’s can result<br />

in wrong answers. NULL’s can give wrong answers <strong>and</strong> at the same time correct answers.<br />

• Three-valued logics does not solve the NULL value problem.<br />

• NULL’s are mixing predicates <strong>and</strong> appear due to bad modelling techniques.<br />

• The introduction <strong>of</strong> NULL’s destroys strong typing in the relational database model.<br />

• Approaches that are better: default (or better special) values for representation <strong>of</strong> the situation (CJ Date), Hugh Darween<br />

(the third gen. manifesto), David Mc Govern (Relational DB writing)<br />

Siehe Vorlesung Datenbankprogrammierung: Der Albtraum der Nullwerte-Programmierung.<br />

Siehe Habilitationsschrift von H.-J. Klein mit fünfwertiger Logik.<br />

Lösung: Siehe K.-D. Schewe, B. Thalheim, EJC 2010!!!<br />

Modelling Advices<br />

• NOT NULL - wherever applicable<br />

• NULLs need additional implementation effort, e.g. an extra bit<br />

• NULLs require specific storage formats, indexes, search support<br />

in any case better: DEFAULT<br />

• Usage <strong>of</strong> conventions, e.g. ISO for gender<br />

0 - unknown; 1 - male; 2 - female; 9 - not applicable<br />

• Special support for arithmetic functions: explicit assignment (unknown, not applicable (-1, ..., nonsense ... 0)<br />

• NULLs are also used if domain types do not support special values extend the domain type<br />

A Simplified But Almost Real Application<br />

CREATE TABLE Student (<br />

MatriculationNo CHAR(6) could be NULL<br />

StudNo CHAR(6) our internalisation<br />

MainProgram VARCHAR(20) could be NULL,<br />

could be more than one<br />

Name VARCHAR(50) far too simple<br />

SecondaryProgram VARCHAR(20) might be more than one<br />

PRIMARY KEY<br />

(StudNo)<br />

FOREIGN KEY (MainProgram)<br />

REFERENCES ProgramAtCAU (ProgName)<br />

ON DELETE RESTRICT<br />

... );<br />

CREATE TABLE Enroll (<br />

StudNo CHAR(6) our internalisation<br />

Course<br />

CHAR(8)<br />

Term<br />

VarCHAR(7)<br />

EnrollmentCondition VARCHAR(10)<br />

Grade VARCHAR(3)<br />

full <strong>of</strong> beans<br />

that is a devils invention<br />

PRIMARY KEY (StudNo, Course, Term)<br />

... );<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 175<br />

Diploma student<br />

Certificate Diploma<br />

Graded Certificate Diploma<br />

Bachelor & Master<br />

Guest Student<br />

During course<br />

After course<br />

Special condition<br />

never<br />

exists<br />

never<br />

exists<br />

not yet<br />

decided<br />

not yet<br />

decided unknown unknown<br />

not<br />

exists known known<br />

not<br />

exists<br />

under<br />

change<br />

under<br />

change<br />

not<br />

applicable<br />

not<br />

applicable<br />

potentially<br />

known<br />

14 (or 20) Kinds <strong>of</strong> NULL ‘Values’ in Databases<br />

1. The property is not applicable for this object but belongs to this class <strong>of</strong> objects.<br />

1.1. Independently from the point <strong>of</strong> time t. “not applicable”<br />

1.2. At the current point <strong>of</strong> time t. “currently not applicable”<br />

2. The property does not belong to the object.<br />

2.1. The property is not representable in the schema.<br />

2.1.1. Due to changes <strong>of</strong> value type (temporarily, fuzzy, ...). “many-typed”<br />

2.2. The property is representable in the schema.<br />

2.2.1. But there is no value for the object. “unknown”<br />

2.2.1.1. Because it has not been transferred from another database.<br />

2.2.1.2. Because is has not yet inserted into the database. “existential null”<br />

2.2.2. The value for the property exists but is “under change”.<br />

2.2.2.1. However the value is trackable.<br />

2.2.2.1.1. But is at the moment forbidden.<br />

2.2.2.1.2. At the moment permitted.<br />

2.2.2.1.2.1. But not defined for the database.<br />

2.2.2.1.2.1.1. Because it is currently under change.<br />

2.2.2.1.2.2. The value is defined for the system.<br />

2.2.2.1.2.2.1. But is currently incorrect.<br />

2.2.2.1.2.2. But is currently doubtful.<br />

2. The property does not belong to the object.<br />

2.2. The property is representable in the schema.<br />

2.2.2. The value for the property exists but is “under change”.<br />

2.2.2.2. The value is not trackable.<br />

2.2.2.2.1. Because <strong>of</strong> changes.<br />

2.2.2.2.2. Because <strong>of</strong> reachability. “place-holder null”<br />

2.2.3. There are several values for the property <strong>of</strong> this object. “partial null”<br />

(2.2.3.1., 2.2.3.2.1, 2.2.3.2.2. similarly to 2.2.2.) “nondeterministic”<br />

2.2.4. There is no value for the property <strong>of</strong> this object. “not exists”<br />

2.2.5. There is never a value for the property <strong>of</strong> this object. “never exists”<br />

3. The property is may-be applicable for this object but it unknown whether it is true for the object in this case. “may-be null”<br />

3.1. It is not known whether the property is applicable to the given object. If it is applicable then its value for this property is<br />

taken from certain domain.<br />

“partial may-be null”<br />

Who can reason with this variety?<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 176<br />

2.3 Statische Integritätsbedingungen<br />

At present we know at least five application fields <strong>of</strong> database constraints theory:<br />

(1) normalization for a more efficient storage, search <strong>and</strong> modification;<br />

(2) reduction <strong>of</strong> relations to subsets with the same information together with the semantic constraints;<br />

(3) utilization <strong>of</strong> dependencies for deriving new relations from basic relations in the view concept or in so-called deductive<br />

databases;<br />

(4) verification <strong>of</strong> dependencies for a more powerful <strong>and</strong> user-friendly, nearly natural language design <strong>of</strong> databases;<br />

(5) transformation <strong>of</strong> queries into more efficient search strategies.<br />

A large number <strong>of</strong> structural <strong>and</strong> dynamical database constraints have been introduced in the past. We must however acknowledge<br />

that a fully fledged theory <strong>of</strong> database constraints is not yet existing.<br />

Separation <strong>of</strong> Integrity Constraints by Their Use <strong>and</strong> Usage.<br />

There are several classifications for integrity constraints:<br />

• either utilization characteristics are used for classification into domain constraints, key <strong>and</strong> functional dependencies, referential integrity<br />

constraints, join dependencies etc.<br />

• or their specific format <strong>of</strong> the formulas is used for classification into tuple-generating dependencies, equality-generating dependencies,<br />

existence constraints, single-table constraints, singleton-tuple constraints, etc.<br />

These characterizations are useful whenever constraints are formally defined. Their practical utility is, however, more restricted. Another<br />

characterization approach has been used in [Tha00] by relating constraints to the phase <strong>of</strong> database modelling into design, structural, semantic<br />

<strong>and</strong> representational constraints. We may combine the three approaches by clustering constraints according to their structural properties into<br />

• constraints expressing identification or partial identification <strong>of</strong> values by other values,<br />

• constraints stating relative independence <strong>of</strong> values in a class or within an object,<br />

• constraints stating existence (or non-existence) <strong>of</strong> values in an object, or values in groups <strong>of</strong> objects, or objects in a class, <strong>and</strong><br />

• constraints expressing redundancy <strong>of</strong> values or objects.<br />

At the same time we may distinguish constraints according to their utilization in the design process. They might be meaningful at the level <strong>of</strong><br />

the user, or at the level <strong>of</strong> the conceptual schema or at the level <strong>of</strong> the implementation. The following table shows this characterization.<br />

Partial identificatiocy<br />

Relative independence Existence dependency Redundancy dependen-<br />

Business<br />

user level<br />

identification structure no null elementary facts<br />

Conceptual<br />

level<br />

Implementation<br />

level<br />

functional,<br />

equality generating<br />

key, uniqueness,<br />

trigger, check<br />

multivalued, hierarchical, join<br />

dependencies, exclusion dependency,<br />

tuple generating, horizontal<br />

decomposition<br />

decomposition, stored procedures,<br />

trigger<br />

null-value-free, union<br />

constraints, numerical,<br />

cardinality constraint<br />

no null, stored procedures,<br />

trigger<br />

inclusion constraint, exclusion<br />

constraint<br />

referential integrity, surrogate,<br />

container<br />

Quality Criteria for Constraint Sets.<br />

Database systems aim in automatic support <strong>of</strong> quality. There are a number <strong>of</strong> quality criteria that have classically been considered in many<br />

textbooks <strong>and</strong> papers. Structural quality criteria are structural completeness, satisfiability <strong>of</strong> the schema, liveness <strong>of</strong> the database, applicability<br />

<strong>of</strong> automatic control features, explicit exception h<strong>and</strong>ling, applicability <strong>of</strong> operations, executability <strong>of</strong> operations <strong>and</strong> framing consistency<br />

procedures. The first three conditions are well discussed in the database literature. Automatically generated tests <strong>and</strong> control conditions are<br />

still an open research field. Operations are currently mainly applied based on the transaction approach, i.e., forcing a rollback after problems<br />

have been detected. Exception h<strong>and</strong>ling <strong>and</strong> execution control use the same approach. The framing or ramification problem is not yet solved.<br />

It requires a separation within a database into data that are not affected by a change <strong>and</strong> into data that are under potential change. A typical<br />

example <strong>of</strong> non-framed executions are trigger avalanches.<br />

Quality control must also consider the abstraction level <strong>of</strong> the stakeholder involved. Integrity constraints may be ambiguous or may be based<br />

on context or ellipses. We therefore need an explicit statement <strong>of</strong> the abstraction level. For instance, join dependencies are a specific vehicle<br />

for structuring the database. They are not used by the requirements engineer. There are however specification constraints at the requirements<br />

level that must be mapped to the internal levels.<br />

Optimisation <strong>of</strong> Behaviour Through Normalisation <strong>of</strong> Database Structuring.<br />

Normalisation has been developed as a vehicle for performance improvement <strong>of</strong> database systems. It addresses at least seven different targets:<br />

(A) Redundancy becomes problematic whenever additional actions are required for consistency management <strong>of</strong> data that are stored within<br />

different objects.<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 177<br />

(B) Blocking <strong>of</strong> management due to the information capacity <strong>of</strong> the schema. For instance, the insertion anomaly occurs since units <strong>of</strong><br />

storage such as schema types do not support insertion <strong>of</strong> partial information.<br />

(C) <strong>Information</strong> loss after database modification occurs whenever data are eagerly deleted despite the importance <strong>of</strong> parts <strong>of</strong> it. The deletion<br />

anomaly is observed whenever facts are deleted together with the objects where they are contained despite its importance for the<br />

application.<br />

(D) Evolution sensitivity <strong>and</strong> instability <strong>of</strong> the database whenever changes are applied to the database.<br />

(E) Different abstractions are used for the database schema at the same time. For instance, views, derived attributes, logs are stored together<br />

with the basic data that are used to derive these values.<br />

(F) Performance problems can also be solved through restructuring. Typical performance problems considered are caused by integrity<br />

constraint maintenance. Update anomalies have been considered as a prominent example <strong>of</strong> a performance problem since singleton<br />

fact operations resulted in complex bulk operations. Performance problems are however also caused by architectures chosen for the<br />

application, by specific behaviour <strong>of</strong> the application, by retrieval requirements, by generation <strong>and</strong> maintenance <strong>of</strong> supporting structures<br />

such as indexes, etc. The last set <strong>of</strong> performance problems is <strong>of</strong>ten resolved by denormalisation, i.e., by intentional acceptance <strong>of</strong> another<br />

normalisation. Denormalisation may decrease complexity <strong>of</strong> retrieval <strong>and</strong> maintenance operations, may avoid additional join operations<br />

<strong>and</strong> may prepare special derived data for support <strong>of</strong> repeating computations. It allows us to consider semantically meaningful units<br />

instead <strong>of</strong> normalised structures. Index management is optimised. Denormalisation increases however complexity <strong>of</strong> some database<br />

operations, leads to redundancy problems, may result in inflexibility against evolutionary changes.<br />

(G) Expensive maintenance, operating <strong>and</strong> modification <strong>of</strong> databases <strong>of</strong>ten occurs due to consistency maintenance. Parallel execution <strong>of</strong><br />

transactions may result in deadlocks.<br />

As far as we know there is not yet any theory that integrates the six targets <strong>of</strong> normalisation. Moreover, (A), (C) <strong>and</strong> (G) are considered to be<br />

the primary issues.<br />

2.3.1 Statische Integritätsbedingungen von HERM<br />

Statische Integritätsbedingungen werden als Formeln der hierarchischen Prädikatenlogik allgemein dargestellt. Wir verwenden<br />

jedoch die üblichen Kurzdarstellungen.<br />

Wir gehen davon aus, daß statische Integritätsbedingungen einer Interpretation mit einer “Normallogik” unterliegen. Mitunter<br />

wird auch im Entwurf eine Integritätsbedingung mit einer schwachen, deontischen Interpretation benutzt, bei der ihre Gültigkeit<br />

für die meisten Objekte einer Datenbank oder einer Klasse gefordert wird. Mitunter wird auch eine strikte Form der Interpretation<br />

genutzt, bei der z.B. obere bzw. untere Schranken für Kardinalitätsbeschränkungen auch durch entsprechende Objektmengen<br />

genau erfüllt sein müssen.<br />

Wir verwenden im weiteren folgende Klassen von Integritätsbedingungen:<br />

Schlüssel dienen der Darstellung der Identifizierbarkeit von Objektmengen, insbesondere in Entity-Klassen). Wir nehmen an,<br />

daß Entity-Klassen stets eigen-identifiziert sind, d.h. Mengen sind. Eine Teilmenge der Strukturelemente kann auch als<br />

Schlüssel dienen. Gewöhnlich hat jeder Typ mehr als einen Schlüssel. Deshalb verwenden wir von vornherein Schlüsselmengen.<br />

Der Primärschlüssel eines Entity-Typs wird direkt angegeben und kann in der Schlüsselmenge weggelassen<br />

werden.<br />

Wir nehmen z.B. für das Diagramm in Bild 6 folgende Schlüssel an:<br />

Key(Person) = { { PersNr }, { Name, Geburtsdatum } }<br />

Relationship-Typen haben ggf. auch eigene Attribute, die auch Best<strong>and</strong>teile eines Schlüssels sind.<br />

Zum Beispiel nehmen wir für das obige Beispiel an, daß die Zeit essentiell für InGruppe ist, d.h.<br />

Key(InGruppe) = {{ Person, Gruppe, Zeit }} oder<br />

Key’(InGruppe) = {{ Person, Gruppe, Zeit, Funktion }}<br />

Weiterhin kann z.B. gelten<br />

Key(Vorlesung) = { {Kurs, Semester}, {Semester, Raum, Zeit}, {Semester, Dozent, Zeit} }<br />

Schlüssel folgen der Komponentenkonstruktion und können auch für einen Teil gelten, z.B.<br />

Name(Vornamen, FamName).<br />

Mindestens ein Schlüssel wird über die Komponente an den Relationship-Typen ‘vererbt’.<br />

Schlüsselvererbung aus den Komponenten heraus<br />

z.B. in Bild 28:<br />

• Projekt, Institution, Mitarbeiter, Labor besitzen ihre Schlüssel; jeweils einer davon kann ausgezeichnet sein<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 178<br />

• fördert leitet, arbeitet in, zugeordnet erben die Schlüssel der jeweiligen Elemente zur Identifikatioon der Relationships<br />

in den jeweiligen Relationship-Klassen<br />

• analog kann auch ein Relationship-Typ höherer Ordnung seine Identifikation durch die Identifikation der Komponenten<br />

beziehen<br />

• ggf. kann auch für einen Relationship-Typen gelten, daß einige seiner Attribute für die Identifikation mit herangezogen<br />

werden<br />

Unterschied zur Vorlesung <strong>Information</strong>ssysteme (4. Semester)<br />

Es wird <strong>of</strong>t Schlüssel anstatt minimaler Schlüssel und Superschlüssel anstatt Schlüssel verwendet.<br />

Begründung: Dies entspricht der ursprünglichen Herangehensweise von E.F. Codd und seinen Nachfolgern. Sie ist jedoch veraltet.<br />

Grundlagen aus der Theorie der <strong>Information</strong>ssysteme<br />

Leider existieren maximal (wobei diese Grenze exakt ist)<br />

( n<br />

⌊ n 2 ⌋ )<br />

minimale Schlüssel für Typen mit n Komponenten. Diese Schätzung wird auch nicht besser im Falle von begrenzten Wertetypen, z.B.<br />

| dom(B i ) |≤ k (1 ≤ i ≤ n) für k 4 < 2n + 1<br />

( ) n<br />

⌊ n 2 ⌋ − ⌊ n 2 ⌋<br />

Es besteht jedoch ein besseres Verhalten im mittleren Fall. Siehe Seleznev/Thalheim.<br />

Begründung: Siehe B. Thalheim: Dependencies in Relational Databases. Teubner, Leipzig, 1991.<br />

Funktionale Abhängigkeiten sind eine wichtige Gruppe von Abhängigkeiten. Eine funktionale Abhängigkeit R : X →<br />

Y ist für einen Typ R und Teilmengen X, Y seiner Elemente definiert. Sie gilt in einer Klasse R C , falls die Gleichheit<br />

von Objekten o, o ′ aus R C über X die Gleichheit über Y für o, o ′ impliziert.<br />

Funktionale Beziehungen von Attributgruppen in unserem Beispiel sind<br />

geplanteLV : {Semester, Zeitrahmen, Raum} → {{Studiengang}, Pr<strong>of</strong>essor, Kurs}<br />

geplanteLV : {Pr<strong>of</strong>essor, Semester, Zeitrahmen} → {Kurs, Raum}<br />

angeboteneLV: {Semester, Kurs} → {Pr<strong>of</strong>essor} .<br />

Grundlagen aus der Theorie der <strong>Information</strong>ssysteme<br />

maximum number N(n) <strong>of</strong> basic functional functional dependencies for types on n components<br />

(<br />

2 n 1 − 4 log ) ( )<br />

2 log 2 n<br />

(1 + o(1)) ≤ N(n) ≤ 2 n 1 − log 3 2<br />

2 n<br />

log 2 e log 2 n<br />

150 √ n<br />

minimal generating sets <strong>of</strong> fd’s (n odd; n even (replace 1 1<br />

n 2 by 5 ) )<br />

n 2 2 n 8<br />

( ) n<br />

⌊ n 2 ⌋ + 1 ( ) n<br />

n 2 (n+3)<br />

2<br />

( )<br />

≤ M(n) ≤ 2 n 1 − log 3 2<br />

2 n<br />

150 √ n<br />

closed families <strong>of</strong> fd’s<br />

2 ( n<br />

⌊ n 2 ⌋ ) ≤ Cl(F, n) ≤ 2<br />

( n<br />

⌊ n 2 ⌋ )(1+o(1))<br />

(J. Demetrovics, G.O.H. Katona, D. Miklos, β (1982-2006))<br />

Begründung: Damit ist eine vollständige Spezifikation von allen notwendigen geltenden funktionalen Abhängigkeiten nicht möglich!<br />

Grundlagen aus der Theorie der <strong>Information</strong>ssysteme<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 179<br />

rather than describing the entire set <strong>of</strong> basic functional dependencies use a Armstrong relations R C which allows to reason on the set <strong>of</strong><br />

constraints<br />

size however<br />

( )<br />

1 n<br />

n 2 ⌊ n 2 ⌋<br />

≤ L {key} (n) ≤<br />

( n<br />

⌊ n 2 ⌋ )<br />

+ 1<br />

c 1 n k−1<br />

2 ≤ L {key(k)} (n) ≤ c 2 n k−1<br />

2<br />

( )<br />

1 n<br />

n 2 ⌊ n 2 ⌋<br />

≤ L F (n) ≤<br />

(J. Demetrovics, G.O.H. Katona & other Hungarians, β (1982-2005))<br />

Begründung: Armstrong-Relationen stellen also auch keinen Ausweg dar!<br />

( n<br />

⌊ n 2 ⌋ )<br />

(1 + c 3<br />

√ n<br />

)<br />

Alternativen in der Darstellung<br />

Anstatt mit logischen Formeln zu rechnen, kann man auf die Boolesche Repräsentation von funktionalen Abhängigkeiten zurückgreifen. Diese<br />

kann auch für funktionale und mehrwertige Abhängigkeiten (sogar hierarchische Abhängigkeiten!!!) verwendet werden und ist um einiges einfacher<br />

als die klassische Kalkül-Ableitung. Auch Chase ist nicht einfacher.<br />

Begründung: Representable by Boolean functions:<br />

Represent A by p A<br />

X = {C 1 , ..., C k } by τ(X) = p C1 ∧ ... ∧ p Ck<br />

τ(X → Y ) = τ(X) → τ(Y )<br />

τ(X →→ Y 1 | Y 2 | ... | Y m) = τ(X) →→ (τ(Y 1 ) ∨ τ(Y 2 ) ∨ ... ∨ τ(Y m)).<br />

{α 1 , ..., α k , β} functional <strong>and</strong> hierarchical dependencies<br />

{α 1 , ..., α k } |= β iff (τ(α 1 ) ∧ ... ∧ τ(α k )) → τ(β) = 1<br />

Kardinalitätsbeschränkungen werden als kombinatorische Beschränkungen in der (min,max)-Notation und der Partizipations-<br />

Semantik als Paar von Kardinalitäten verwendet. Damit unterscheidet sich unsere Notation von der Lookup-Semantik, die<br />

z.B. UML verwendet. Die letztere kann jedoch in einer n..m-Notation ebenso mitgeführt werden. Wir betrachten hierzu<br />

ein vereinfachtes Diagramm in Bild 10.<br />

(gehaltene) ✛<br />

Vorlesung (1,n)<br />

setztVoraus ✻<br />

(0,2)<br />

✻vorausgesetzt<br />

(3,4)<br />

3..4 0..2<br />

Voraussetzung<br />

0..2<br />

legtab ✲<br />

(0,n)<br />

Resultat<br />

(0,n)<br />

❄<br />

Student<br />

Ablageform<br />

Abbildung 10: Kardinalitätsbeschränkungen im Vorlesungsbeispiel<br />

Eine Kardinalitätsbeschränkung card(R, R i ) = (n, m) gilt in einer Klasse R C , falls jedes Objekt o i von R C i in<br />

R C mindestens n-mal und höchstens m-mal vorkommt.<br />

Eine Kardinalitätsbeschränkung card(R, R i ) = (n, 1) für R = (R 1 , ...., R n , attr(R)) ist äquivalent zur funktionalen<br />

Abhängigkeit R : R i −→ R 1 , ...., R i−1 , R i+1 , ..., R n .<br />

Eine Kardinalitätsbeschränkung card(R, R i ) = (1, m) für R = (R 1 , ...., R n , attr(R)) ist äquivalent zur Inklusionsabhängigkeit<br />

R : R i ⊆ π Ri (R).<br />

Eine Kardinalitätsbeschränkung in der Lookup-Notation look(R, R i ) = (n, m) gilt in einer Klasse R C mit k<br />

Elementen, falls zu jeder Kombination von Objekten o j von Rj<br />

C (j ≠ i, 1 ≤ j ≤ k) mindestens n und höchstens m<br />

entsprechende Objekte o i aus Ri<br />

C in der Klasse R C vorkommen.<br />

Im Fall binärer Relationship-Typen ohne Attribute, die zur Identifikation von Relationships herangezogen werden müssen,<br />

kann man damit einem Objekt o von R i mindestens n und höchstens m Objekte aus Rj<br />

C zuordnen, d.h. das Objekt sieht<br />

vermittels R C höchstens m und mindestens n Objekte aus der <strong>and</strong>eren Klasse. Wir erhalten damit das folgende Bild:<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 180<br />

C<br />

A<br />

✛<br />

(a,b)<br />

c...d<br />

A with B<br />

(c,d)<br />

✲<br />

a ...b<br />

A<br />

Abbildung 11: Kardinalitätsbeschränkungen im Vorlesungsbeispiel<br />

Diese Beziehung zwischen lookup und participation-Bedingungen gilt allerdings nicht, wenn die Attribute C bei der<br />

Identifikation des Relationship-Typen herangezogen werden!!!<br />

Eine Kardinalitätsbeschränkung look(R, R i ) = (n, 1) für R = (R 1 , ...., R n , attr(R)) ist äquivalent zur funktionalen<br />

Abhängigkeit R : R 1 , ...., R i−1 , R i+1 , ..., R n −→ R i .<br />

Eine Kardinalitätsbeschränkung look(R, R i ) = (1, m) für R = (R 1 , ...., R n , attr(R)) ist äquivalent zur verallgemeinerten<br />

Inklusionsabhängigkeit<br />

R : ∀o i ∈ R C i ∃(o 1 , ..., o i−1 , o i+1 , ..., o n ) ∈ π R1,....,R i−1,R i+1,...,R n<br />

(R C ) :<br />

(o 1 , ..., o i−1 , o i , o i+1 , ..., o n ) ∈ π R1 ,....,R i−1 ,R i ,R i+1 ,...,R n<br />

(R C ) .<br />

Sie kann auch durch R C i ⊆ π Ri ( R C i × π R1 ,....,R i−1 ,R i ,R i+1 ,...,R n<br />

(R C ) ) dargestellt werden.<br />

Manchmal wird sogar das Kartesische Produkt von R C 1 , ...., R C i−1 , RC i+1 , ..., RC n anstelle der Projektion verst<strong>and</strong>en. Diese<br />

Interpretation wurde z.B. UML unterlegt.<br />

Trotzdem sind Lookup-Abhängigkeiten auch von Nutzen. Man betrachte z.B. Bild 12. Die Lookup-Bedingung<br />

0..1 impliziert direkt ein Pivoting im Schema auf der rechten Seite, das relativ natürlich scheint.<br />

look(Angebot, ver<br />

Kurs<br />

✛<br />

(a,b)<br />

Angebot<br />

0..1✲<br />

verantwortl.<br />

Person<br />

Semester<br />

✻<br />

Person<br />

✻<br />

❄<br />

Semester<br />

Kurs<br />

✛<br />

Angebot<br />

✛ Verantwortlicher<br />

0..1<br />

Abbildung 12: Kardinalitätsbeschränkungen im Vorlesungsbeispiel<br />

0..1<br />

Wird dagegen auch noch card(Angebot, Kurs) = (0, 1) gesetzt, dann ergibt sich natürlich eine viel stärkere Dekomposition<br />

in Bild 13.<br />

Semester<br />

✛<br />

Angebot ✲ Kurs ✛ Verantwortl. ✲<br />

(0,1) (0,1)<br />

Person<br />

Abbildung 13: Kardinalitätsbeschränkungen im Vorlesungsbeispiel<br />

Die Lookup-Notation ist für binäre Relationship-Typen ohne eigene Attribute äquivalent zur Partizipation-Notation. Sie<br />

wird jedoch am <strong>and</strong>eren Element angetragen. Im Beispiel nehmen an, daß<br />

card(Voraussetzung, setztVoraus) = (0,2)<br />

look(Voraussetzung, setztVoraus) = 3..4<br />

card(Voraussetzung, vorausgesetzt) = (3,4)<br />

look(Voraussetzung, vorausgesetzt) = 0..2<br />

gilt. Damit haben wir äquivalente Formen.<br />

Für n-äre Relationship-Typen ohne eigene Attribute ist die Lookup-Notation look(R, R i ) = n..m äquivalent zur verallgemeinerten<br />

Kardinalitätsabhängigkeit card(R, R \ R i ) = (n, m) .<br />

In unserem Beispiel gilt z.B. die Einschränkung, daß erst dann ein Eintrag in die Klasse legtab geführt wird, wenn der<br />

Student eine Vorlesung erfolgreich abgelegt hat.<br />

Die Lookup-Bedingung look(legtab, Ablageform) = 0..2 stellt dar, daß nur Prüfung und Schein bzw. Schein und<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 181<br />

Praktikum bzw. Prüfung und Praktikum absolviert werden müssen. Diese Bedingung ist äquivalent zu<br />

card(legtab, Student Vorlesung) = (0,2).<br />

Eine Kardinalitätsbeschränkung card(R, R i ) = (0, 1) ist äquivalent zur funktionalen Abhängigkeit R : {R i } → R .<br />

Eine Lookup-Kardinalitätsbeschränkung look(R, R i ) = 0..1 ist äquivalent zur funktionalen Abhängigkeit R :<br />

R \ {R i } → R .<br />

Spannend ist das Zusammenwirken von card und look.<br />

Wir betrachten z.B. einmal einen Relationshiptypen in Bild<br />

Weiterhin können wir z.B. fordern, daß nur solche Vorlesungen als gehalten gelten, die auch zu studentischer Beteiligung<br />

geführt haben. Dies wird durch card(legtab, Vorlesung) = (1,n) dargestellt.<br />

Eine strengere Bedingung ist, daß dies auch für das Semester gelten muß. Dann können wir spezifizieren<br />

look(legtab, Student) = 1..n bzw. card(legtab, Vorlesung Semester) = (1,n).<br />

Für Relationship-Typen mit eigenen Attributen ist die Lookup-Notation in verschiedenen Formen definiert.<br />

(DBIV,SS2002,β)<br />

(DBI,WS2002,β)<br />

(Compiler,SS2002,PB)<br />

(Informatik III,WS2002,BvB)<br />

(Informatik III,WS2003,β)<br />

◦<br />

◦ ◦ ◦<br />

◦<br />

◦<br />

◦<br />

◦ ◦ ◦<br />

◦<br />

◦<br />

◦<br />

◦<br />

Schein<br />

Prüfung<br />

◦ Praktikum<br />

Antje Bärbel Cornell Doris Emil Fjodor<br />

Abbildung 14: Beziehungen der Objekte im Vorlesungsbeispiel<br />

Wir betrachten in diesem Beispiel in Bild 14 eine kleine Klasse mit 14 Objekten. Z.B. hat Bärbel sowohl die (Informatik<br />

III,WS2002,BvB) als auch (DBIV,SS2002,β) mit Prüfung und Schein abgelegt, Emil dagegen nur Scheine in (Informatik<br />

III,WS2002,BvB) und (DBI,WS2002,β).<br />

Kardinalitätsbeschränkungen sind mitunter nicht erfüllbar in nicht-leeren, endlichen Klassen. Ein Beispiel einer solchen<br />

nicht-erfüllbaren Menge von Integritätsbedingungen ist das Paar<br />

card(Voraussetzung, setztVoraus) = (0,2)<br />

card(Voraussetzung, vorausgesetzt) = (3,4) .<br />

Wir können dies einfach nachvollziehen, indem wir eine endliche Menge von Vorlesungen z.B. {a, b, c, d, e} betrachten.<br />

Mit der Kardinalitätbeschränkung card(Voraussetzung, vorausgesetzt) = (3,4) kann man z.B. folgende Besetzung für<br />

Voraussetzung betrachten:<br />

{(a, b), (a, c), (a, d)} wird dann weiter fortgeführt zu {(a, b), (a, c), (a, d), (b, a), (b, c), (b, d)}. Damit kommen c, d in<br />

keiner Beziehung auf der rechten Seite mehr vor aufgrund von<br />

card(Voraussetzung, setztVoraus) = (0,2). Wir setzen also fort mit {(c, a), (c, b), (c, e)}. Nun sind auch a, b “verbraucht”.<br />

Dann haben wir bereits für d als linke Seite nicht genug Elemente auf der rechten Seite. Wir benötigen also noch f, g.<br />

Wir können nun weiter fortsetzen und erkennen, daß nur die leere und eine unendliche Menge von Vorlesungen diese<br />

Kardinalitätsbeschränkungen erfüllen.<br />

Dagegen ist<br />

card(Voraussetzung, setztVoraus) = (0,3)<br />

card(Voraussetzung, vorausgesetzt) = (3,4)<br />

erfüllbar und impliziert<br />

card(Voraussetzung, setztVoraus) = (3,3)<br />

card(Voraussetzung, vorausgesetzt) = (3,3) .<br />

Grundlagen aus der Theorie der <strong>Information</strong>ssysteme<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 182<br />

The diagrams can also be labeled by cardinality constraints. It should be noted that there is little agreement [BDK92] between which edge labels<br />

to use <strong>and</strong> what they mean in ER diagrams. The classical notation (see the first five subfigures in Figure 15) is as follows for binary relationship<br />

types R = (E, F, attr(R)) (see for instance [EN89, Vos87]):<br />

The edge R −→ E is labeled<br />

by comp(R, F ) = (n, m) or by 1 if comp(R, F ) ∈ {(0, 1), (1, 1)}<br />

or by n if comp(R, F ) ∈ {(l, k)|l ∈ {0, 1}, l < k, k > 1}.<br />

The edge R −→ F is labeled<br />

by comp(R, E) = (n, m) or by 1 if comp(R, E) ∈ {(0, 1), (1, 1)}<br />

or by n if comp(R, E) ∈ {(l, k)|l ∈ {0, 1}, l < k, k > 1}.<br />

Begründung: Siehe HERM Buch!<br />

ER-designer<br />

E<br />

(0,1)<br />

R<br />

(1,m)<br />

F<br />

comp(R,E)<br />

E<br />

Classical proposal<br />

◦<br />

M<br />

R<br />

F<br />

=<br />

(1,m)<br />

E<br />

◦<br />

Teorey<br />

R<br />

F<br />

comp(R,F)<br />

=<br />

Everest<br />

(0,1)<br />

E<br />

◦<br />

F<br />

Binary ER models<br />

E<br />

✛◦<br />

✲ F<br />

Participation for relationship type<br />

E ✛ R ✲<br />

(1,m) (0,1)<br />

F<br />

Abbildung 15: Lookup <strong>and</strong> Participation Representation<br />

Grundlagen aus der Theorie der <strong>Information</strong>ssysteme<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 183<br />

Using the participation approach another labeling concept can be introduced. Assume a relationship type R = (R 1 , ..., R k , {A 1 , ..., A l }).<br />

For 1 ≤ j ≤ k, the edge R −→ R j can be labeled by comp(R, R j ) = (n, m)<br />

or by 1 if comp(R, R j ) ∈ {(0, 1), (1, 1)}<br />

or by n if comp(R, R j ) ∈ {(l, k)|l ∈ {0, 1}, l < k, k > 1}.<br />

For 1 ≤ j ≤ l, the edge R −→ A j can be labeled by dom(A j ).<br />

The difference between definitions <strong>and</strong> labeling in diagrams is illustrated in Figure 17. In [SS83] a similar notion is used for binary relationship<br />

types.<br />

Since the first notation cannot be extended to ternary relationships, in [Teo89] cardinality constraints for ternary relationships are marked by<br />

shaded areas in the relationship type triangle, provided that the relationship type is “many”. More concretely, for instance, the E 1 -corner<br />

<strong>of</strong> the triangle which represents the relationship type R = (E 1 , E 2 , E 3 , attr(R)) is not shaded if comp(R, E 2 E 3 ) ≤ (1, 1).<br />

This notation is complicated, <strong>and</strong> comp(R, E j )-cardinality constraints are not represented. This proposal could be extended to quadrary<br />

relationship types, but then we lose information about the other cardinality constraints.<br />

Figure 16 shows that this generalization represents different semantics. The representation by Teorey can be used to represent the constraints<br />

P aper, Conference → F irstAuthor<br />

P aper, F irstAuthor → Conference<br />

which are implied by the constraint<br />

P aper → F irstAuthor, Conference .<br />

Other books either avoid the question or present examples for binary relationship types. [TL82] states that “the semantics <strong>of</strong> ternary <strong>and</strong><br />

higher-order relationship sets can become quite complex to comprehend.”<br />

Begründung: Siehe HERM Buch!<br />

Paper → FirstAuthor, Conference<br />

comp(Submitted,Paper) = (0,1)<br />

Paper<br />

✛(0,1)<br />

Submitted<br />

✲<br />

First<br />

Author<br />

❄<br />

Conference<br />

Teorey’s proposal<br />

Paper,Conference → FirstAuthor<br />

Paper, FirstAuthor → Conference<br />

Paper<br />

■<br />

✒<br />

First<br />

Author<br />

Submitted<br />

❄<br />

Conference<br />

Abbildung 16: Different Semantics Represented by Teorey’s Approach<br />

Mehrwertige Abhängigkeiten stellen im Entwurf i.a. die Separation von Gesichtpunkten bzw. Aspekten dar. Sie werden <strong>of</strong>t<br />

weggelassen, da ihre mathematische Notation schwierig nachzuvollziehen ist.<br />

Eine mehrwertige Abhängigkeit X → Y |Z wird für einen Typ R = (U R , Σ R ), mit Teilmengen X, Y ⊆ U R und<br />

Z = U R \ (Y ∪ X) definiert und gilt in einer Klasse Relation R C über R (dargestellt durch R C |= X →→ Y |Z ),<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 184<br />

Review ✛<br />

(1,1) (0,m)<br />

For ✲ Paper ✛<br />

(0,1) (1,m)<br />

Published ✲ Journal<br />

✻(1,m)<br />

Wrote<br />

(1,m)<br />

❄<br />

Author ✛<br />

(1,m) (0,m)<br />

Works ✲ Institute<br />

Teorey<br />

◦ ◦<br />

◦<br />

ER-designer<br />

(0,m) (1,1) (1,m) (0,1)<br />

(1,m)<br />

(1,m)<br />

(0,m) (1,m)<br />

Everest<br />

◦ ◦<br />

Binary<br />

✛✛ ◦ ✛✛ ◦ ✲<br />

✲<br />

✻✻<br />

❄ ❄ ✛✛ ✲✲<br />

◦<br />

◦<br />

Abbildung 17: Different Notions for a Paper Reviewing Database<br />

falls für alle o, o ′ ∈ R C , die den gleichen Wert für die X-Elemente von R haben, ein Objekt o ′′ in R C existiert, das aus<br />

der Faltung von o und o ′ hervorgehen kann, d.h. formal<br />

für alle o, o ′ ∈ R C mit o = X o ′ existiert ein Objekt o ′′ ∈ R C mit o ′′ = X∪Y o und o ′′ = X∪Z o ′ .<br />

Eine nützliche, allgemein bekannte Eigenschaft von mehrwertigen Abhängigkeiten ist die Dekompositionseigenschaft.<br />

Es gilt R C |= X →→ Y |Z genau dann, wenn sich R C nach X ∪ Y und X ∪ Z vertikal dekomponieren läßt, d.h.<br />

formal R C = R C [X ∪ Y ] ✶ R C [X ∪ Z] .<br />

Weniger bekannt ist dagegen, daß die Gültigkeit der mehrwertigen Abhängigkeit zu einem neuen äquivalenten Schema<br />

führt, bei dem der Typ R durch die dekomponierten Typen wie in Bild 18 ersetzt wird.<br />

Y ✛ XY ✲ X ✛ XZ ✲<br />

Z<br />

Abbildung 18: Die Zerlegung von R in zwei Relationship-Typen<br />

Weitere relationale Integritätsbedingungen, z.B. Wertebereichsabhängigkeiten, können im erweiterten ER-Modell verwendet<br />

werden. So gilt in unserem Beispiel<br />

Semester.Bezeichnung<br />

∈ {W S, SS} × {x/x+1|x ∈ 80..99, 00, 01, 02, ..., 17} .<br />

Andere wichtige Klassen von Abhängigkeiten sind Exklusions- und Inklusionsabhängigkeiten.<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 196<br />

Probleme mit Integritätsbedingungen<br />

Zerstörung der Lokalität durch globale Auswirkungen innerhalb von Zyklen<br />

{ 1 }<br />

Reise<br />

✻<br />

✛ besucht<br />

{ 3,4,7 }<br />

richtig: { 3 }<br />

{ 1,2,3,6 } richtig: { 6 }<br />

❄<br />

startet<br />

✲<br />

{ 2,3,5,6 }<br />

richtig: { 2 }<br />

Stadt<br />

Abbildung 26: Lokale Integritätsbedingungen mit globalen Auswirkungen<br />

Pivotisierung durch Identifikation von faktorisierbaren Konstrukten z.B. Integritätsbedingungen, die auf Fakten hinweisen<br />

Übungsleiter<br />

❨<br />

0..1<br />

Pr<strong>of</strong>essor ✛<br />

Kurs<br />

✻<br />

Vorlesung<br />

Plan<br />

Übungsleiter✛<br />

Pr<strong>of</strong>essor ✛<br />

betreut<br />

❄<br />

Vorlesung<br />

✲<br />

(3,5)<br />

Kurs<br />

✻<br />

Angebot<br />

✙<br />

Stud-Gang<br />

❄<br />

Semester<br />

✙<br />

Stud-Gang<br />

Plan<br />

❄<br />

Semester<br />

look(Vorlesung,Übungsleiter) = 0..1 card(Vorlesung, Kurs Semester) = (3,5)<br />

Abbildung 27: Pivotisierungsauswirkungen lokaler Integritätsbedingungen in zwei Facetten<br />

Globalisierende Integrititätsbedingungen hervorgerufen durch Zyklen<br />

weitere Beispiel in Hartmann-Habil<br />

Institution leitet ✲<br />

(0,2)<br />

✻<br />

(0,.)<br />

(1,1)<br />

❄<br />

fördert ✲ Projekt ✛<br />

(1,.)<br />

(0,5)<br />

Mitarbeiter ✛ arbeitet in<br />

(1,1)<br />

✻<br />

(1,3)<br />

(30,50)<br />

❄<br />

zugeordnet ✲ Labor<br />

(0,10)<br />

richtig: (0,30); besser (0,.)<br />

Abbildung 28: Globale Verwicklungen lokaler Integritätsbedingungen<br />

Löcherfraß in den Integritätsbedingungen durch Nichterfüllbarkeit für Konfigurationen<br />

siehe Hartmann-Mitteilung<br />

Warum dann HERM anstatt von UML.<br />

Mod IS<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 197<br />

Übung:<br />

• EER-Modelle<br />

• Struktur<br />

• Komponenten<br />

• stat. Integritätsbed.<br />

Global versus Local Normalisation.<br />

Normalisation is typically carried out on the basis <strong>of</strong> one database type. This type is normalised (e.g. decomposed, split or reduced) according<br />

to a set <strong>of</strong> integrity constraints. The association <strong>and</strong> the influence <strong>of</strong> this normalisation to other types is typically neglected. Therefore,<br />

normalisation is typically local.<br />

Local normalisation <strong>of</strong> a singleton database type is well reflected in most database books (e.g., [AHV95, Bis95, Leo92, Yan86]) <strong>and</strong><br />

publications, most database courses, <strong>and</strong> in actual database practice. It is considered as one <strong>of</strong> the pearls <strong>of</strong> database research <strong>and</strong> known<br />

to almost everybody who knows database technology. The provenance <strong>and</strong> acknowledgement is based on the facility it provides: keeping as<br />

much as possible locally <strong>and</strong> globally supporting only those processes that are inherently global. Both independence concepts <strong>of</strong> databases<br />

(conceptual independence <strong>and</strong> implementation independence) are based on localisation.<br />

Local normalisation <strong>of</strong> database structures aims in derivation <strong>of</strong> such structures <strong>of</strong> databases that can easily be supported by the DBMS.<br />

In the past DBMS have been supporting keys, domain constraints <strong>and</strong> key-based inclusion constraints. Therefore, it is a goal to derive another<br />

equivalent schema to the given one which has an equivalent but supportable set <strong>of</strong> integrity constraints. This approach can be understood as a<br />

procedural approach to optimisation <strong>of</strong> database structuring depending on the platform for implementation.<br />

Normalisation is typically considered to be vertical normalisation. Deductive normalisation <strong>and</strong> horizontal normalisation are alternatives<br />

to vertical normalisation.<br />

Horizontal normalisation [PBGG89] is based on selection <strong>and</strong> union. Horizontal normalisation uses selections based on predicates<br />

α 1, ..., α n which may be pairwise exclusive (α i → ¬α j, i ≠ j) <strong>and</strong> cover the truth value 1 (( ∧ n<br />

i=1<br />

αi) → 1). Horizontal normalisation also<br />

allows us to separate the part <strong>of</strong> a set for which a dependency is valid from the part that invalidates a dependency. For instance 2 , α X−→Y =<br />

(o ∈ R C → ¬∃o ′ ∈ R C (o[X] = o ′ [X] ∧ o[Y ] ≠ o ′ [Y ])) separates those objects in R C for which the functional dependency is valid from<br />

those which invalidate the functional dependency.<br />

Deductive normalisation [Tha91a] is based on reduction <strong>and</strong> extended selection. Deductive normalization reduces relations to<br />

those elements that cannot be generated from the other elements by generation rules. It is the most storage effective <strong>and</strong> the best computational<br />

method for normalisation as long as the tuple-generating dependency used for decomposition is acyclic. Horizontal <strong>and</strong> deductive normalisation<br />

methods have not yet received a support from the database systems vendors. Local normalisation must however take into account these three<br />

kinds <strong>of</strong> normalisation.<br />

Global normalisation aims in normalisation <strong>of</strong> the schema as a whole. It must take into account the three kinds <strong>of</strong> local normalisation.<br />

Global normalisation has not got an appropriate attention in research despite the interest in implementations. Therefore, a systematic treatment<br />

<strong>of</strong> this normalisation has not yet been given in the literature.<br />

2.3.4 Rahmen zur Spezifikation von Integritätsbedingungen<br />

Integritätsbedingungen werden in der Literatur noch immer leichtfertig nur in einfacher Form bzw. Rohform spezifiziert. Eine<br />

Spezifikation der Integritätsbedingungen muß umfassen:<br />

Integritätsbedingung in Rohform: Angabe der Integritätsbedingung als logische Formel<br />

Lokalisierung der Integritätsbedingung im Kontext des Systemens, d.h.<br />

durch Angabe der Schema-Umgebung einer Integritätsbedingung (Schema-Frame-Problem) und<br />

durch Angabe der betr<strong>of</strong>fenen Datenbankobjekte, die neben den betr<strong>of</strong>fenen Objekten kontrolliert werden müssen<br />

(DB-Frame-Problem)<br />

Gültigkeit der Integritätsbedingungen je nach Phase der Anwendung, mindestens für die folgenden Phasen<br />

Einfahrphase des Systemes<br />

Normallauf des Systemes<br />

Archivierung der Datenbestände<br />

Ausführungsmodi zur Kontrolle der Integritätsbedingungen je nach Operation<br />

2 We use the symbol R for type or class specification <strong>and</strong> denote the class <strong>of</strong> elements <strong>of</strong> the type by R C . Tuples (in the case <strong>of</strong> objectrelational<br />

models) or elements <strong>of</strong> R C are denoted by o. X −→ Y is a functional dependency.<br />

Mod IS<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 198<br />

Ausführungszeit der Kontrolle z.B. verzögert, s<strong>of</strong>ort ggf. auch mit Aussetzen unter bestimmten Bedingungen<br />

Anwendungsmonitoring der Kontrolle der Integritätsbedingungen z.B. auf Objektniveau oder auf Anweisungsniveau<br />

Umformung (term rewriting) der Operationen<br />

Beh<strong>and</strong>lung für den Fall des Nichtgeltens der Integritätsbedingung je nach Datenbankereignis:<br />

Zurückweisen der verursachenden Anweisung<br />

Propagierung der Integritätsbedingung<br />

Nutzung von (temporären) Zusatzwerten zur Kennzeichnung der Situation<br />

Rangordnung der Integritätsbedingung unter den Klassen von Integritätsbedingungen zur Ableitung der Kontrollreihenfolge<br />

Daneben können wir Default-Rahmen angeben:<br />

1. harte Integritätsbedingung ohne das Zulassen von Ausnahmen<br />

2. volle Schema- und DB-Umgebung<br />

3. keine Unterscheidung von Phasen<br />

4. s<strong>of</strong>ortige Kontrolle bei Datenbankereignissen ohne Ergänzung der Operationen<br />

5. gleichwertige Klassen von Integritätsbedingungen<br />

Insbesondere nutzen wir die folgenden Rahmen und Erzwingungsmodi:<br />

1. Spezifikation von Existenzabhängigkeiten<br />

Durch die Komplexitäten sind bereits Abhängigkeiten dargestellt worden, die von den generischen Operationen insert,<br />

delete, update eingehalten werden müssen. Ist für eine Komplexität comp(R, R ′ ) = (a, b) a ≥ 1, dann ist jedes insert<br />

in R ′ durch ein insert in R zu unterstützen. Jedes delete in R ′ kann ein delete in R nach sich ziehen. Alle derartigen<br />

Komplexitäten werden zusammengestellt und in den folgenden Schritten angew<strong>and</strong>t.<br />

Man kann für jeden Typen eine insert-, delete- und eine update-Umgebung mit folgendem Algorithmus konstruieren.<br />

(a) Env I (R) := Env D (R) := Env U (R) := {R} für jeden Entity- und Relationshiptypen.<br />

(b) Man generiere die Umgebungend erster Ordnung wie folgt.<br />

i. Gilt comp(R, R ′ ) = (a, b) für a ≥ 1 dann sei Env I (R) := Env I (R ′ )∪Env I (R), Env U (R) := Env U (R ′ )∪<br />

Env U (R) und Env D (R ′ ) := Env D (R) ∪ Env D (R).<br />

ii. Für jeden Relationshiptypen R ′ , in dem R eine Komponente bildet: Env I (R ′ ) := Env I (R) ∪ Env I (R ′ ),<br />

Env U (R ′ ) := Env U (R) ∪ Env U (R ′ ) und Env D (R) := Env D (R) ∪ Env D (R ′ ).<br />

iii. Für jede Exklusionsabhängigkeit R ‖ R ′ gilt Env I (R ′ ) := Env D (R) ∪ Env I (R) und Env U (R ′ ) :=<br />

Env U (R) ∪ Env U (R).<br />

iv. Weitere Abhängigkeiten werden analog beh<strong>and</strong>elt.<br />

(c) Man wiederhole diesen Schritt bis keine der Mengen verändert wird:<br />

i. Gilt comp(R ′′ , R ′ ) = (a, b) für a ≥ 1 und R ′′ ∈ Env I (R ′ ) dann sei Env I (R) := Env I (R ′ ) ∪ Env I (R).<br />

Gilt comp(R ′′ , R ′ ) = (a, b) für a ≥ 1 und R ′′ ∈ Env U (R ′ ) dann sei Env U (R) := Env U (R ′ ) ∪ Env U (R).<br />

Gilt comp(R ′′ , R ′ ) = (a, b) für a ≥ 1 und R ′′ ∈ Env D (R ′ ) dann sei Env D (R ′ ) := Env D (R) ∪ Env D (R).<br />

ii. Für jeden Relationshiptypen R ′′ mit R ′′ ∈ Env I (R ′ ), in dem R eine Komponente bildet, sei Env I (R ′ ) :=<br />

Env I (R) ∪ Env I (R ′ ). Für jeden Relationshiptypen R ′′ mit R ′′ ∈ Env U (R ′ ), in dem R eine Komponente<br />

bildet, sei Env U (R ′ ) := Env U (R) ∪ Env U (R ′ ). Für jeden Relationshiptypen R ′′ mit R ′′ ∈ Env D (R ′ ), in<br />

dem R eine Komponente bildet, sei Env D (R) := Env D (R) ∪ Env D (R ′ ).<br />

iii. Für jede Exklusionsabhängigkeit R ‖ R ′′ mit R ′′ ∈ Env I (R ′ ) gilt Env I (R ′ ) := Env D (R) ∪ Env I (R). Für<br />

jede Exklusionsabhängigkeit R ‖ R ′′ mit R ′′ ∈ Env U (R ′ ) gilt Env U (R ′ ) := Env U (R) ∪ Env U (R).<br />

iv. Weitere Abhängigkeiten werden analog beh<strong>and</strong>elt.<br />

Mod IS<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 199<br />

Diese Umgebungen sind maximale Umgebungen. Sie werden durch Eigenschaften der Anwendung eingeschränkt.<br />

Durch die Hierarchien sind entsprechende Existenzabhängigkeiten gegeben. Die Generalisierung (z.B. eine Person-dejure<br />

ist eine Firma oder eine Person) führt zu einer Existenzabhängigkeit des Supertypen von Subtypen, die unbedingt gepflegt<br />

werden muß (d.h. werden die Daten einer Firma entfernt, dann werden diese auch für die Persona-de-jure entfernt).<br />

Die Spezialisierung führt zu einer Existenzabhängigkeit des Subtypen (in unserem Falle Teiltypen (Relationshiptypen<br />

definiert über dem Supertypen)) vom Supertypen.<br />

2. Erzwingungsregeln für insert- Operationen<br />

Man kann für insert-Operationen verschiedene Optionen bestrachten:<br />

• Abhängigkeit: Eine Einfügung ist nur erlaubt, wenn alle korrespondierenden Objekte bereits existieren.<br />

• Automatismus: Eine Einfügung ist stets erlaubt. Wenn entsprechende Objekte nicht existieren, dann werden sie<br />

ebenfalls eingefügt.<br />

• Nullwertebeh<strong>and</strong>lung: Eine Einfügung ist stets erlaubt. Existieren die entsprechenden Objekte nicht, dann werden<br />

für das neue Objekt Nullwerte benutzt.<br />

• default-Werte: Eine Einfügung ist stets erlaubt. Existieren die entsprechenden Objekte nicht, dann werden für das<br />

neue Objekt default-Werte benutzt.<br />

• Zusätzliche Einfügebedingungen: Ein Einfügen ist nur dann erlaubt, wenn eine zusätzliche Bedingung gilt.<br />

• Keine Einschränkung: Das Einfügen unterliegt keiner Beschränkung.<br />

Die letzten beiden Möglichkeiten betreffen alle Typen außerhalb von Env I (R). Die ersten vier Möglichkeiten sind für<br />

Env I (R) bei der Spezifikation der Anwendung zu nutzen.<br />

3. Erzwingungsregeln für delete-Operationen<br />

Man kann für delete-Operationen verschiedene Optionen bestrachten:<br />

• Beschränkung: Ein Streichen ist nur erlaubt, wenn kein <strong>and</strong>eres Objekt davon betr<strong>of</strong>fen ist.<br />

• Kaskadierung: Ein Streichen zieht das Streichen <strong>and</strong>erer Objekte nach sich.<br />

• Bedingte Kaskadierung: Ein Streichen zieht das Streichen <strong>and</strong>erer Objekte nach sich, die nur aufgrund des zu<br />

streichenden Objektes noch existieren.<br />

• Nullwertebeh<strong>and</strong>lung: Beim Streichen werden Objekte, in die das Objekt eingeht auf einen Nullwert gesetzt.<br />

• default-Werte: Beim Streichen werden Objekte, in die das Objekt eingeht auf einen Nullwert gesetzt.<br />

• Zusätzliche Streichungsbedingungen: Das Streichen ist nur unter bestimmten Bedingungen erlaubt.<br />

• Keine Einschränkung: Das Streichen unterliegt keiner Beschränkung.<br />

Die letzten beiden Möglichkeiten betreffen alle Typen außerhalb von Env D (R). Die ersten vier Möglichkeiten sind für<br />

Env D (R) bei der Spezifikation der Anwendung zu nutzen.<br />

SQL2 läßt in der Vollversion Kaskadierung, Nullwertebeh<strong>and</strong>lung, Default-Werte und Beschränkung (ist default) (als ‘no<br />

action’) zu.<br />

4. Erzwingungsregeln für update-Operationen<br />

• Beschränkung: Ein update ist nur erlaubt, wenn kein <strong>and</strong>eres Objekt davon betr<strong>of</strong>fen ist (z.B. auch über Sekundärschlüsseln,<br />

die nicht in Beziehungen verw<strong>and</strong>t werden).<br />

• Automatismus: Ein update ist stets erlaubt, solange Integritätsbedingungen des Typs nicht verletzt werden.<br />

• Kaskadierung: Ein update löst weitere Operationen aus.<br />

• Nullwertebeh<strong>and</strong>lung: Konflikte werden durch Nullwerte gelöst.<br />

• default-Werte: Zur Konfliktbereinigung werden default-Werte benutzt.<br />

• Zusätzliche update-Bedingungen: Ein update ist nur unter zusätzlichen Bedingungen möglich.<br />

• Keine Einschränkung.<br />

Eine update-Operation ist nicht das Gleiche wie eine delete;insert-Folge.<br />

SQL2 läßt in der Vollversion Kaskadierung, Nullwertebeh<strong>and</strong>lung, Default-Werte und Beschränkung (ist default) zu.<br />

Mod IS<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 200<br />

Erzwingungsregeln<br />

✙<br />

Unbedingte<br />

Erzwingung<br />

❄<br />

Keine<br />

Erzwingung<br />

❥<br />

Bedingte<br />

Erzwingung<br />

Kaskadierung<br />

Abhängigkeit<br />

✙ ❄ ❥<br />

Nullwertebeh<strong>and</strong>lung<br />

default-<br />

Werte<br />

❄<br />

an Existenz<br />

gebunden;<br />

Rollback<br />

Abbildung 29: Mögliche Erzwingungsregeln für generische Operationen<br />

❥<br />

mit zusätzlichen<br />

Einfügebedingungen<br />

;<br />

Prädikat<br />

Die Erzwingung kann auch aufgrund von Regel-Trigger-Systemen spezifiziert werden. Dann ist jedoch das Resultat bei<br />

automatischer Erzwingung falsch. Der GCS-Zugang von Schewe/Thalheim ist ein sicherer automatischer Zugang. Er ist allerdings<br />

für die Betrachtungen hier zu komplex.<br />

Die Integritätsbedingungen sind in SQL-92 in unterschiedlichen Modi und Matching unterstützt, wobei deren Zusammenwirken<br />

nicht erklärt ist.<br />

Integrity Constraint Specification.<br />

Integrity Constraint ϕ<br />

[Localization: < unit name> ]<br />

[Partiality: < validity condition >]<br />

[Exception: < exception condition >]<br />

[In-Context: < enforcement rule, time, granularity >]<br />

[Out-Context: < conditional operation, accept on >] .<br />

Enforcement through<br />

Direct enforcement through declarative constraints with RESTRICT, NO ACTION, CASCADE, SET VALUE (null, default), [INITIALLY] DEFERR<br />

[INITIALLY] IMMEDIATE [DEFERABLE]<br />

Transactions with three mechanisms on failure:<br />

(1) rollback on inconsistency currently exclusive treatment<br />

(2) erasing effects <strong>of</strong> TA: transaction COMPENSATED_ON_FAILURE_BY transaction<br />

(3) raising an exception: transaction CONTINGENTED_ON_EXCEPTION_BY exception<br />

Triggers with the after-before activation time, row-statement granularity,<br />

1-n (SQL:1999, DB2, Informix, SQL Server) , n-1 (Sybase) or n-n (Ingres,Oracle) event-trigger pairs<br />

IC enforcement policy - checking mode (immediate, deferred), triggering, scope, checking time (before, after), row/statement level<br />

Problems to be Solved for Maintenance.<br />

A: Integrity preservation with consideration <strong>of</strong> enforcement policies<br />

User-defined types<br />

SQL’99 constraints in a large variety:<br />

Checking mode<br />

Choice <strong>of</strong> statement or row level<br />

Constraints may be pre- or post-conditions<br />

Scope conditions<br />

Matching conditions<br />

Reference types<br />

Triggers in variations:<br />

Number <strong>of</strong> triggers per events <strong>and</strong> events per triggers<br />

Activation time<br />

Mod IS<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 201<br />

Conflict resolution <strong>of</strong> execution order<br />

Order <strong>of</strong> constraint check differs for DB2 Sybase, Oracle, Informix, Ingres, <strong>and</strong> MS SQL<br />

SQL’92 declarative constraints<br />

B: Effect preservation <strong>of</strong> the intended update operation<br />

Insert effect preservation<br />

Delete effect preservation<br />

Update effect preservation<br />

Resultierende Betrachtungen für die Pflege der Integritätsbedingungen.<br />

• Problems <strong>of</strong> Integrity Maintenance<br />

Incompleteness <strong>of</strong> maintenance<br />

Infeasibility <strong>of</strong> maintenance<br />

Infeasibility <strong>of</strong> programming<br />

• Integrity maintenance is based on:<br />

Integrity constraint checking<br />

Integrity constraint detection<br />

• Integrity maintenance suffers from:<br />

Non-existence <strong>of</strong> integrity constraint axiomatisation<br />

Complexity <strong>of</strong> constraint check<br />

Complexity <strong>of</strong> database maintenance<br />

SQL’99 Proposals for Transactions <strong>and</strong> Consistency Specification.<br />

Level <strong>of</strong> enforcement: On row-level or on statement level<br />

Modus <strong>of</strong> enforcement: Immediate or deferred<br />

Equality functions: full, partial, normal<br />

differences in treatment <strong>of</strong> null values<br />

Check time for constraints: Before execution, after execution<br />

Hinzu kommt dann noch die Herstellung einer globalen Konsistenz der Erzwingungsmechanismen. Man betrachte z.B.<br />

die Erzwingung in Bild 30.<br />

R 1<br />

✾<br />

R 2<br />

restrict<br />

✙<br />

R 3<br />

nullify<br />

cascade<br />

❥<br />

R 4<br />

cascade<br />

3<br />

R 5<br />

cascade<br />

❄<br />

R 6<br />

cascade<br />

❄<br />

R 6<br />

nullify<br />

❄<br />

R 6<br />

default<br />

❄<br />

R 6<br />

restrict NULL NIL ??? DEFAULT<br />

Abbildung 30: Das ‘diamond’-Problem bei der Erzwingung von foreign key constraints<br />

Es werden zwei Wertezuweisungen für den Wert des gleichen Objekts in R 1 vorgenommen ausgehend von gleichen Objekt<br />

in R 6 . Die zugehörigen foreign key constraints sind R 2 ⊆ R 6 , R 3 ⊆ R 6 , R 4 ⊆ R 6 , R 5 ⊆ R 6 , R 1 ⊆ R 2 , R 1 ⊆ R 3 , R 1 ⊆<br />

R 4 , R 1 ⊆ R 5 , .<br />

Mod IS<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 202<br />

2.4 Ein Datenbank-Schema<br />

ER besteht aus einer Menge von Typen {T i = (U Ti , Σ Ti )} und globalen statischen Integritätsbedingungen Σ ER .<br />

Datenbankmodellierung und das Abstraktionsschichtenmodell<br />

Unsere Strukturierungssprache unterstützt das Abstraktionsschichtenmodell. Es kann die Strukturierung der Daten in jeder<br />

Schicht durch das Entity-Relationship-Modell repräsentiert werden. Wir verwenden dazu Schemata unterschiedlicher Abstraktheit<br />

und Granularität.<br />

Datenstrukturierung des Lastenhefts: Es wird ein allgemeines HERM-Diagramm mit den Haupttypen entwickelt.<br />

Datenstrukturierung des Pflichtenhefts: Es wird ein grobes HERM-Diagramm mit entsprechenden Integritätsbedingungen<br />

angegeben, das die Typen des Lastenhefts verfeinert. Die Verfeinerung findet durch Spezialisierung der Typen, Dekomposition,<br />

strukturelle Erweiterung, semantische Einschränkung, Separation von Aspekten und durch Instantiierung statt.<br />

Zusätzlich werden weitere Typen eingeführt.<br />

Anwendungsschema: Das Anwendungsschema repräsentiert alle Typen, die für den Anwender eine Bedeutung haben. Die<br />

Typen stellen eine Verfeinerung der Typen des Pflichtenhefts dar oder sind neu eingeführt.<br />

Konzeptionelles ER-Schema: Auf der konzeptionellen Schicht wird ein detailliertes HERM-Diagramm erstellt, das u.a. auch<br />

für alle Typen des Anwendungsschemas entsprechende Verfeinerungen enthält. Diese Beziehungen finden auch Eingang<br />

in die Sichten-Suite.<br />

Logisches Schema: Das HERM-Schema wird in ein entsprechendes Schema des logischen Datenbank-Modelles transformiert.<br />

Es kann üblicherweise ein objekt-relationales oder relationales Schema, aber auch eine Beschreibung als XML-<br />

Schema oder DTD-Datei (document type definition) sein.<br />

Diese Schemata sind aufein<strong>and</strong>er abbildbar. Demzufolge kann jede Entwurfseinheit einer höheren Schicht - so wie in Bild ??<br />

auf Seite ?? dargestellt - einer Menge von Entwurfseinheiten der folgenden Schicht direkt zugeordnet werden.<br />

Wir merken an, daß wir über zwei unterschiedliche Methoden zur Darstellung, Repräsentation, Verarbeitung und Speicherung<br />

von Objekten verfügen:<br />

Klassen-Separation: Die Menge aller Objekte wird durch ein ER-Schema dargestellt. Jedes Objekt wird genau einer Klasse<br />

zugeordnet und in beliebig vielen <strong>and</strong>eren Klassen auf der Grundlage des ER-Schemas verwendet. Die Verwendung kann<br />

über einen Surrogat-Schlüssel, eine Markierung oder Werte zum ausgewählten Schlüssel des Objektes erfolgen.<br />

Wir nennen diese Form der Beh<strong>and</strong>lung von Objektmengen klassen-separierte Darstellung. Ein Objekt ist dann mit<br />

dem erweiterten ER-Modell als Schneeflocke mit einer Wurzel darstellbar.<br />

Objekt-Entfaltung: Die Menge aller Objekte bildet unter Einbeziehung der Beziehungen der Objekte unterein<strong>and</strong>er einen<br />

Objektmengen-Graphen. Wir können über diesem Graphen beliebige Überdeckungen U bilden, d.h. Mengen von Teilgraphen,<br />

die zusammen den Objektmengen-Graphen ergeben. Ein Teilgraph besitzt evt. ein Wurzel-Objekt, d.h. es gibt<br />

ein Objekt, das rekursiv auf alle <strong>and</strong>eren Objekte des Teilgraphen verweist. Besitzt jeder dieser Teilgraphen ein Wurzelobjekt,<br />

dann heißt U Objekt-Gesellschaft.<br />

Damit ist in Objekt-Gesellschaften jedes Objekt ein volles Objekt mit allen Eigenschaften.<br />

Ein Beispiel für eine Objekt-Entfaltung zum Schema in Bild 6 ist folgendes XML-Dokument:<br />

<br />

<br />

<br />

Montag<br />

Mittwoch<br />

<br />

<br />

Normalvorlesung 2+2+2 <br />

.... ... <br />

Sommersemester 2000, 10.4. 2000 - 15.7.2000<br />

<br />

<br />

Fak.-Ref. Schenk<br />

Mod IS<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 203<br />

Anwendungsschicht<br />

Vorstudie<br />

Skizzierung<br />

Konzeptl<strong>and</strong>karte<br />

Konzept<br />

Lastenheft: Daten<br />

Geschäftsprozeßschicht<br />

Feinstudie<br />

Darstellung<br />

Skizze<br />

Grober Typ<br />

Pflichtenheft: Daten<br />

Aktionsschicht<br />

Entwurf<br />

Entwurf<br />

Skelett<br />

Anwendungstyp<br />

Anwendungsschema<br />

konzeptionelle<br />

Schicht<br />

Implementation<br />

Transformation<br />

Schema<br />

Typ<br />

ER-Schema<br />

Implementationsschicht<br />

Schema<br />

logischer<br />

Typ<br />

logisches Schema<br />

Abbildung 31: Die Arbeitsprodukte im Abstraktionsschichtenmodell für die Strukturierung<br />

Mod IS<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 204<br />

1.4.1999, .... <br />

AB, Montag, 7.30-11.00<br />

Beamer, Netzanschlu&szlig;<br />

Datenbanken I<br />

<br />

Die erste Methode wird meist für die Speicherung und Verarbeitung in relationalen und objekt-relationalen DBMS angew<strong>and</strong>t.<br />

Die Repräsentation erfolgt auf der Grundlage von Sichten, die im Kapitel ?? ausführlich dargestellt werden. OLAP-Zugänge<br />

verwenden <strong>of</strong>t den zweiten Zugang. Die zweite Methode wird auch bei XML-DBMS angew<strong>and</strong>t.<br />

Die Redundanz-Beherrschung ist nach wie vor für beliebige Objektmengen wichtig. Deshalb ist der erste Zugang vorzuziehen.<br />

Wir unterstützen diesen Zugang durch Einführung einer Sichten-Suite.<br />

2.5 Normalisierung versus Denormalisieurng<br />

Normalization aims at solving the following five problems:<br />

Anomalies in operations behavior: If data represent different semantic facts at the same time then operations such as Insert,<br />

Delete <strong>and</strong> Update behave differently. Deletion may lead to the deletion <strong>of</strong> facts which should not be removed from the<br />

database. Updating needs a complete table scan instead <strong>of</strong> a one fact correction. Insertion <strong>of</strong> a fact cannot be made since<br />

other facts are missing. In this case, the tables need to be replaced by tables which represent semantic units <strong>of</strong> facts.<br />

Normalization includes such kinds <strong>of</strong> decomposition.<br />

Existence <strong>of</strong> inconsistent data: Data are interrelated. Any modification applied to objects in the database should also be<br />

accompanied by modifications on related objects. Databases <strong>and</strong> views are <strong>of</strong>ten based on macro-data, i.e., derived data.<br />

If the meaning <strong>of</strong> the derivation is not underst<strong>and</strong>able to the user then wrong conclusions are made on the data provided<br />

by the database. Derived data are shipped to other users who include such data into their databases <strong>and</strong> computations. If<br />

the basic data are changed afterwards then the derived data have to also be changed in order to avoid inconsistencies.<br />

Redundancy <strong>of</strong> data in the database: Data may be stored in the database in different associations. If this is not to be done<br />

intentionally <strong>and</strong> with care then modifications <strong>of</strong> data on one place are not enforced to modifications <strong>of</strong> data on the other<br />

place. Data can be encoded with additional information. For instance, the student’s number <strong>of</strong>ten includes the year <strong>of</strong><br />

admittance. In this case changes to the admittance should be reflected in the number. However, the number is assumed to<br />

be a stable key which does not have modifications.<br />

Instability <strong>of</strong> schemata after changes: Database applications are not stable over a long period <strong>of</strong> time. New requirements,<br />

new structures which have to be included into the existing application <strong>and</strong> changing environments cause restructuring <strong>of</strong><br />

schemata. Thus, the schema resembles a ‘mannerisms cathedral’, that is, it is hard to maintain. A complete documentation<br />

is missing. Schema restructuring is also caused by performance problems. In this case, the physical <strong>and</strong> logical schemata<br />

do not match <strong>and</strong> are not an image <strong>of</strong> the conceptual schema. A wide range <strong>of</strong> legacy problems leads to problematic<br />

database behavior.<br />

Careful design with consideration <strong>of</strong> possible changes can partially solve this problem. Conceptual design with integrated<br />

normalization over the entire life span <strong>of</strong> the database is the best solution. Database schemata can be extended by<br />

propagation patterns [HLM93]. They encourage the reuse <strong>of</strong> specifications as opposed to the structural modification <strong>of</strong><br />

schemata.<br />

Different abstraction level in applications: User groups have different requirements regarding data abstraction, granularity<br />

<strong>and</strong> representation <strong>of</strong> data. Data have different meanings to users <strong>and</strong> users apply a different interpretation to their data.<br />

There are differences in the meaning <strong>of</strong> the functions. Users operate their data in different fashions <strong>and</strong> have different<br />

rights <strong>and</strong> roles. The three level architecture can be used for the solution <strong>of</strong> heterogeneity problems. The integrated<br />

schema should lead to good behavior. Optimization is an important design step. Since normalization is mainly structural<br />

optimization, normalization approaches are applied.<br />

Normalization <strong>and</strong> ER techniques are <strong>of</strong>ten understood as being two opposite techniques. ER techniques are seen as attempts<br />

to provide a taxonomy <strong>of</strong> objects to allow a user to intuitively recognize different types <strong>of</strong> objects, <strong>and</strong> to classify the objects<br />

<strong>and</strong> their relationships. The normalization approach seems to be entirely different: all data are listed <strong>and</strong> then all interrelatedness<br />

rules such as dependencies are identified. In the next step classes are decomposed according to the semantic structure <strong>of</strong> their<br />

objects. In fact, normalization <strong>and</strong> ER techniques reinforce one another in providing needed intuition on behavior <strong>and</strong> structure<br />

<strong>of</strong> objects stored in the database.<br />

Mod IS<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 205<br />

2.5.1 The Normalization Problem<br />

Generally speaking, the normalization problem is defined based on a set <strong>of</strong> scheme transformation operators O <strong>and</strong> a property<br />

P .<br />

For a given scheme ERS, the normalization problem is to determine whether a translation Φ exists in O which can be applied<br />

to ERS such that<br />

1. Φ(ERS) is equivalent to ERS <strong>and</strong><br />

2. Φ(ERS) satisfies the property P .<br />

The translation Φ is called decomposition mapping or transformation mapping if simple operations are used. We usually assume<br />

the existence <strong>of</strong> a reconstruction mapping Ψ such that for each database on ERS C the equality ERS C = Ψ(Φ(ERS C ))<br />

is valid.<br />

A translation Φ is a mapping from a schema ERS to another schema ERS ′ . Integrity constraints are defined for the<br />

schemata: Σ ERS , Σ ERS ′. The set <strong>of</strong> all databases on ERS is denoted by R(ERS). Let SAT (ERS) (SAT (ERS ′ )) be the set<br />

<strong>of</strong> all databases defined on ERS that satisfy Σ ERS (respectively Σ ERS ′). The translation Φ is a mapping from R(ERS) to<br />

R(ERS ′ ).<br />

Some examples <strong>of</strong> properties are the third normal form, the fourth normal form or the BCNF. In this case the operations<br />

used are projections on the type <strong>and</strong> constraint levels. The equivalence <strong>of</strong> the two schemes is maintained by join operations. This<br />

normalization is known as vertical decomposition <strong>of</strong> schemes.<br />

Another kind <strong>of</strong> decomposition is horizontal decomposition. Operations used are selection or general selectors [Sch77]. Reconstruction<br />

mappings are the union or exclusive union.<br />

Deductive normalization is a third example <strong>of</strong> a normalization. Formulas are used for reconstruction mapping. Reduction is the<br />

normalization mapping. The schemes do not change during deductive normalization. Deductive normalization can be used for<br />

archiving large amounts <strong>of</strong> data. Retrieval <strong>of</strong> these data can be effectively supported by indexes which are specified in accordance<br />

with formulas.<br />

In [YT89, VS93b, Vin94], a normalization theory was developed. The main criteria for normalization are maintenance<br />

simplicity, which consists <strong>of</strong> two parts: storage <strong>and</strong> access simplicity, <strong>and</strong> operational simplicity. Since the two parts <strong>of</strong> maintenance<br />

simplicity conflict with the specification <strong>of</strong> the user, the user should specify his/her preferences. On the basis <strong>of</strong> integrity<br />

constraints, several normal forms could be chosen. For instance, if only functional dependencies are specified then the goal <strong>of</strong><br />

normalization is the elementary key normal form (for nested relations). Relationship types inherit the keys <strong>of</strong> underlying component<br />

types. The decomposition <strong>of</strong> keys <strong>of</strong> these types leads to an increase in the arity <strong>of</strong> the relationship type. Therefore, a<br />

decomposition can be rejected for performance reasons. Integrity constraints can be used to decide whether a decomposition is<br />

rejected or not.<br />

Relational normalization procedures incorporate few semantic aspects <strong>of</strong> aggregation. For instance, the entity type<br />

Student = ({StNumber, Course, Address},<br />

{StNumber, Course, Address})<br />

represents the relationship <strong>of</strong> students with a course <strong>and</strong> their addresses. This type is in third normal form but not in fourth<br />

normal form. We cannot possibly define the intentional meaning <strong>of</strong> this relation.<br />

If the maintenance simplicity is considered to be one <strong>of</strong> the most important design criteria, there are at least three requirements<br />

which should be satisfied:<br />

1. The schemes should be normalized in the classical sense.<br />

2. The schemes should be minimal. The information represented in one class should be not repeated in another class.<br />

3. The set <strong>of</strong> integrity constraints used should be simple to maintain.<br />

The last criteria is the most difficult one. The first requirement can be easily represented, even in ER schemes [CCN80]. The<br />

first <strong>and</strong> the second requirement can be represented in HERM schemes but can also be represented in ER schemes.<br />

In [CCN80] normal forms in ER models are discussed on the basis <strong>of</strong> the relational database theory. However this approach<br />

is not completely appropriate, as we have seen in Figures ?? <strong>and</strong> ??.<br />

2.5.2 Local (Vertical) Normalization<br />

Local vertical normalization is based on the operator Φ d = (π X1 , ...π Xn ) for a join dependency d = (X 1 , ...X n ) <strong>and</strong> the<br />

reconstruction operator Ψ =✶. Local vertical normalization on the type level is <strong>of</strong>ten considered to be the ultimate goal <strong>of</strong> the<br />

database design process.<br />

Mod IS<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 206<br />

The argument that normalization beyond third normal form is not useful, <strong>of</strong>fers only little benefit <strong>and</strong> incurs serious performance<br />

costs is based on the observation that most, <strong>and</strong> usually all, <strong>of</strong> the problems associated with unnormalized data are solved<br />

on the basis <strong>of</strong> 3NF or BCNF. Structures that are in 3NF or BCNF still exhibit serious problems, <strong>of</strong> very much the same sort addressed<br />

in the earlier stages <strong>of</strong> normalization: redundancy; insertion, deletion, <strong>and</strong> update complexity; difficulty in storing facts<br />

independently. The main reason for denormalization is performance. The performance argument is valid for all normal forms<br />

in the same strength. Since the behavior has to optimized, we may ultimately need to make compromises to achieve adequate<br />

performance.<br />

The normal forms developed so far have different aims:<br />

Store only basic facts in the database: Facts are represented by entities <strong>and</strong> relationships. Basic facts [Hal95] are assertions<br />

about the database application such as ‘The student “Maier” takes the “database” course’ or ‘The person named “Maier”<br />

is a student’. The adjective ‘basic’ indicates that the fact cannot be split into smaller units <strong>of</strong> information which collectively<br />

provide the same information as the original. The existence <strong>of</strong> a functional dependency indicates that components<br />

represent a fact or a basic fact.<br />

Do not represent the same fact twice: A fact should be represented only once in the database. There is no redundancy. If a<br />

relation is defined on a schema with several functional dependencies <strong>and</strong> the left h<strong>and</strong> sides <strong>of</strong> such dependencies are not<br />

equivalent, then we might store the same fact several times. The address is stored several times in the Student class since<br />

students are taking several courses. Thus we search for a decomposition such that each new schema represents facts only<br />

once. BCNF is the solution to this requirement if functional dependencies are considered.<br />

Do not store unrelated facts in the same type: Facts can be related or unrelated or related via other facts. For instance,<br />

in the Student class above, the courses are related to addresses only through the student’s number. They do not together<br />

represent a unit <strong>of</strong> information. Thus, the class can be decomposed into a class containing objects representing information<br />

on students <strong>and</strong> their addresses <strong>and</strong> another class representing information on students <strong>and</strong> the courses they take. The<br />

class for Student is in BCNF. Nevertheless a multivalued dependency is valid. The update anomaly disappears after<br />

decomposition.<br />

Keep maintenance simple: Maintenance simplicity is one <strong>of</strong> the main goals <strong>of</strong> database design. Whether maintenance procedures<br />

are simple depends on the language provided by the system. If the system allows the expression <strong>of</strong> simple integrity<br />

constraints in a declarative form <strong>and</strong> has other facilities for expressing more complex constraints then design is oriented<br />

to simple integrity constraints. For instance, the domain/key normal form is based on domain, key <strong>and</strong> referential integrity<br />

constraints. They can be expressed in a simple declarative form.<br />

Vertical normalization is achieved through decomposition <strong>of</strong> types into smaller types. The correctness <strong>of</strong> the transformation<br />

mapping is based on several properties:<br />

No loss <strong>of</strong> information: The schema <strong>and</strong> the decomposed schema have the same capacity to store information. We do not lose<br />

information when the class <strong>of</strong> type R is replaced by its projections. The decomposition <strong>of</strong> a type R via a join dependency<br />

d = (X 1 , ..., X n ) is called lossless if for each class R C the equality R C = π X1 (R C ) ✶ ... ✶ π Xn (R C ) is valid.<br />

If the join dependency d is implied by the functional dependencies Σ <strong>of</strong> the type then the decomposition is lossless.<br />

Invariance <strong>of</strong> integrity constraints: The integrity constraints expressible in the decomposed schema <strong>and</strong> derived from the integrity<br />

constraints <strong>of</strong> the original schema imply together with the join dependency the integrity constraints <strong>of</strong> the original<br />

schema:<br />

Given the type R = (compon(R), Σ) where Σ contains only functional dependencies, given the join dependency<br />

d = (X 1 , ..., X n ), let Σ i = {X → Y |X, Y ⊂ X i , Σ |= X → Y }.<br />

The decomposition via d is constraint preserving if<br />

⋃ n<br />

i=1 Σ i |= Σ.<br />

If a decomposition is constraint preserving then functional dependencies can be enforced on the level <strong>of</strong> the decomposed<br />

types. Unfortunately there are types that do not have a constraint preserving lossless decomposition into BCNF. In this<br />

case we might have to sacrifice some dependencies. However, there are two compromises if we do not want to make this<br />

sacrifice: the third normal form or splitting <strong>of</strong> attributes. The first approach can be applied if there is a strong requirement<br />

to constraint preservation. The latter approach is considered at the end <strong>of</strong> this subchapter. The following characterizations<br />

can be given for schemata which are in 3NF <strong>and</strong> not in BCNF:<br />

• Given a type R <strong>and</strong> a set Σ <strong>of</strong> functional dependencies. If the type R is in 3NF but not in BCNF then two different<br />

minimal K, K ′ exist in R with K ∩ K ′ ≠ ∅ [VS93a].<br />

Mod IS<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 207<br />

• Given a type R which is in 3NF according to a set Σ <strong>of</strong> functional dependencies. If all different minimal K, K ′ in<br />

R are disjoint, i.e., K ∩ K ′ = ∅ then R is in BCNF according to Σ [Mok97].<br />

• Given a type R <strong>and</strong> a set <strong>of</strong> functional dependencies. If R is in 3NF <strong>and</strong> all minimal keys consists <strong>of</strong> only one<br />

attribute then R is in BCNF.<br />

The second <strong>and</strong> the first statement are equivalent. The third sufficient condition is a corollary <strong>of</strong> the first.<br />

Adequacy <strong>of</strong> decomposed schemata: A schema S is an adequate representation <strong>of</strong> R if there is a transformation mapping<br />

Φ from R to S such that Φ is a reduction <strong>of</strong> SAT (R) to Φ(SAT (R)) ∩ SAT (S)[AT93]. Adequacy depends on the constraints<br />

Σ S specified in S. Let us consider the case <strong>of</strong> vertical decomposition F d via a join dependency d = (X 1 , ..., X n )<br />

with Σ S ⊆ ⋃ n<br />

i=1 Σ i. Φ d maps relations from R(R) \ SAT (R) to SAT (S). The schema S is called fully adequate if<br />

Φ d (R(R) \ SAT (R)) ⊆ R(S) \ SAT (S) <strong>and</strong> if Φ(SAT (R)) = SAT (S).<br />

Adequacy cannot be based on functional dependencies only. We also need inclusion dependencies <strong>and</strong> other constraints:<br />

For all i, j, 1 ≤ i, j ≤ n <strong>and</strong> S = (S 1 , ..., S n , Σ S ) the inclusion constraints Si C[X i ∩ X j ] ⊆ Sj C[X i ∩ X j ] are implied<br />

from Σ S . Furthermore, Σ S ⊇ ⋃ n<br />

i=1 Σ i.<br />

Let us now consider the pair (Φ d , Ψ) for a set <strong>of</strong> functional dependencies Σ R <strong>and</strong> a decomposition dependency d defined<br />

for R. Thus, Φ ∗ decomposes R into a set <strong>of</strong> projections. Ψ is a S − R-translation. Based on Proposition ?? we observe[MR98]:<br />

Corollary 2 (i) Let Σ be a set <strong>of</strong> functional dependencies. Then Φ # d<br />

(Σ) is equivalent to a set <strong>of</strong> functional dependencies.<br />

(ii) Ψ # (Σ R ) is not necessarily equivalent to a set <strong>of</strong> functional dependencies. It is equivalent to a set <strong>of</strong> weak functional<br />

dependencies. Thus, it is equivalent to a generalized functional dependency.<br />

Therefore, functional dependencies cannot be used to characterize all databases which have been obtained by vertical decomposition.<br />

Dependencies <strong>of</strong> the same class might be not powerful enough for the characterization. The following table shows<br />

to which constraints functional dependencies (FD), general embedded implicational dependencies (EID), equality generating<br />

dependencies (EGD), tuple-generating dependencies (TGD), inclusion dependencies (ID) <strong>and</strong> embedded tuple-generating dependencies<br />

are mapped by translations based on projections (PROJ), based on joins (JOIN) <strong>and</strong> by translations <strong>of</strong> the smallest<br />

set (BASIC) <strong>of</strong> translations which contain projection <strong>and</strong> join <strong>and</strong> which are closed under composition.<br />

dependency class FD EID EGD TGD ID ETGD<br />

PROJ FD EID EGD ETGD ID ETGD<br />

JOIN EGD EID EGD ETGD ETGD ETGD<br />

BASIC EGD EID EGD ETGD ETGD ETGD<br />

Basically closed classes DEP <strong>of</strong> dependencies are such classes for which for each Φ ∈BASIC <strong>and</strong> every Σ ⊆DEP the<br />

property Φ # (Σ) ⊆DEP. In [MR98] the following observation is stated.<br />

Corollary 3 Embedded implicational dependencies are the smallest basically closed class <strong>of</strong> dependencies which contain both<br />

the functional <strong>and</strong> inclusion dependencies.<br />

Embedded implicational dependencies are the smallest basically closed class <strong>of</strong> dependencies which contain (0, 1), (0, m), (1, m), (1, 1)<br />

cardinality constraints.<br />

The pro<strong>of</strong> is based on Proposition ??.<br />

Currently, two approaches to normalization on the basis <strong>of</strong> functional dependencies are known:<br />

Synthesis approach: The synthesis approach is based on a precomputation <strong>of</strong> an appropriate set <strong>of</strong> functional dependencies.<br />

This set can be computed on the basis <strong>of</strong> the axiomatization <strong>of</strong> functional dependencies.<br />

A type R = (compon(R), Σ) has a minimal set <strong>of</strong> constraints if Σ obeys the following properties:<br />

• Each dependency in Σ has the form X → {A} for a component A <strong>of</strong> R.<br />

• No proper subset <strong>of</strong> Σ implies Σ.<br />

• Each dependency in Σ is left-reduced, i.e., there is no proper subset Y <strong>of</strong> X for a functional dependency X → Z<br />

in Σ with Σ |= Y → Z.<br />

We assume that each component appears in at least one functional dependency <strong>of</strong> Σ. We compute the decomposed schema<br />

based on the following choice:<br />

• If for a dependency X → {A} ∈ Σ X ∪ {A} = compon(R) then R cannot be decomposed.<br />

Mod IS<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 208<br />

• For any dependency X → {A} ∈ Σ define a new type with the components X ∪ {A} <strong>and</strong> the key X. We choose a<br />

key K <strong>of</strong> R <strong>and</strong> create a new type with K as its components.<br />

If components do not participate in any functional dependency then we add a new component ω <strong>and</strong> a functional dependency<br />

whose right side is the new component <strong>and</strong> whose left side contains those components together with the ‘dangling’<br />

components which should not be separated from the latter. Then we compute the decomposition <strong>and</strong> remove the new<br />

component at the end.<br />

The same approach can be applied if there are components which should not be separated.<br />

Let us consider a movie display database type [AHV95] containing attributes for the movie (A(ctor), D(irector), M(ovie<br />

title)), the theatre (Th(eatre name), A(ddress), P(hone)) <strong>and</strong> some display data (Ti(me), Pr(ice)). Further we are given the<br />

dependencies:<br />

{ Th } → { Ad, P },<br />

{ Th, Ti, M } → { Pr } <strong>and</strong><br />

{ M } → { D }.<br />

In addition, we assume that the attributes A <strong>and</strong> T cannot be separated.<br />

We obtain the types with the following components <strong>and</strong> the corresponding projected constraints:<br />

{ Th, Ad, P },<br />

{ M, D },<br />

{ Th, Ti, M, Pr },<br />

{ Th, M, Ti, A }.<br />

If we assume furthermore that M →→ A then the last type can be decomposed according to the decomposition approach<br />

into<br />

{ Th, M, Ti } <strong>and</strong><br />

{ M, A }.<br />

Since the first new schema is subsumed by the third type it can be removed. Thus we obtain:<br />

{ Th, Ad , P },<br />

{ M, D },<br />

{ Th, Ti, M, Pr },<br />

{ M, A }.<br />

The synthesis approach will generate a lossless, constraint preserving decomposition to third normal form. BCNF can<br />

only be computed for some sets <strong>of</strong> functional dependencies.<br />

If the inclusion constraints are added then this approach leads to a decomposition which is fully adequate.<br />

Decomposition approach: Given a type R = (compon(R), Σ), we compute stepwise a new schema based on functional dependencies<br />

until all new component schemata are in BCNF by the decomposition step:<br />

Choose a type R ′ = (compon(R ′ ), Σ R ′) which is not in BCNF.<br />

Choose a partition <strong>of</strong> compon(R ′ ) into X, Y, Z such that<br />

Σ R ′ |= X → Y <strong>and</strong><br />

Σ R ′ ̸|= X → {A} for each A ∈ Z.<br />

Replace R ′ = (compon(R ′ ), Σ R ′) by R 1 ′ = (compon(R ′ ) ∩ XY, Σ R ′<br />

XY<br />

) <strong>and</strong> R 2 ′ = (compon(R ′ ) ∩ XZ, Σ R ′<br />

XZ<br />

).<br />

If there are S = (compon(S), Σ S ) <strong>and</strong> T = (compon(T ), Σ T ) in the decomposed schema with compon(S) ⊆<br />

compon(T ) then remove S from the decomposed schema.<br />

Let us consider the same movie display database type. We apply the first dependency <strong>and</strong> obtain the schema<br />

({ Th, Ad, P }, {{ Th } → { Ad, P }})<br />

({ A, D, M, Th, Ti, Pr }, {{ Th, Ti, M } → { Pr },<br />

{ M } → { D }} ).<br />

Now we can apply the third dependency <strong>and</strong> obtain<br />

({ Th, Ad, P }, {{ Th } → { Ad, P }} ),<br />

({ A, M, Th, Ti, Pr }, {{ Th, Ti, M } → { Pr }} ),<br />

({ D, M }, {{ M } → { D }} ).<br />

Furthermore the second type can be decomposed. Thus we obtain:<br />

({ Th, Ad, P }, {{ Th } → { Ad, P }} ,<br />

({ M, Th, Ti, Pr }, {{ Th, Ti, M } → { Pr }} ,<br />

( { A, M, Th, Ti }, { key = { Th, Ti, M, A }} ,<br />

({ D, M }, {{ M } → { D }} .<br />

The third type can be decomposed as well if we consider also the multivalued dependency discussed above.<br />

Mod IS<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 209<br />

The decomposition approach leads to a BCNF schemata <strong>and</strong> a lossless decomposition.<br />

Adequacy requires adding the corresponding inclusion constraints <strong>and</strong> path functional constraints.<br />

The decomposition approach can also be applied if multivalued dependencies are present. In this case we can generate<br />

normal forms higher than the BCNF such as the fourth normal form or the project/join normal form. The fourth normal<br />

form requires that each valid multivalued dependency in the type is a key dependency. Project/join normal form requires<br />

that each join dependency valid for the type is implied by the key dependencies valid for this type.<br />

The decomposition approach is well-based for sets <strong>of</strong> functional dependencies which are hierarchical. In this case, the leaf<br />

dependencies are used for decomposition. The schema obtained in this case is lossless <strong>and</strong> constraint preserving. If the set <strong>of</strong><br />

functional dependencies cannot be represented in a tree then the decomposition approach produces a schema in BCNF which is<br />

not constraint preserving.<br />

For illustration let us extend the type Lecture in the university example. We also consider text books assigned to courses.<br />

Each course is <strong>of</strong>fered in any number <strong>of</strong> sections. Each section has a lecturer <strong>and</strong> a number <strong>of</strong> teaching assistants (graders).<br />

Courses use for their section different labs. Slides <strong>and</strong> additional material are available for courses <strong>and</strong> sections. The type<br />

Lecture ∗ = ( Course, Text, Semester, Room, Lab, Material,<br />

Lecturer : Pr<strong>of</strong>essor, Grader : Person<br />

{ Time(Day,Hour), Section } )<br />

with the set <strong>of</strong> multivalued dependencies<br />

{ Course } →→ { Text },<br />

{ Course, Section, Semester } →→ { Time },<br />

{ Course, Section, Semester } →→ { Room },<br />

{ Course, Section, Semester } −→ { Lecturer },<br />

{ Course, Section, Semester } →→ { Grader },<br />

{ Course, Section, Semester, Lecturer } →→ { Material },<br />

{ Course, Section, Semester, Lecturer } →→ { Lab }<br />

represents the information on lectures.<br />

✮<br />

Text<br />

Course<br />

✾ ✮ ✠ ❘<br />

Lecturer Time Room Grader<br />

✠ ❘<br />

Lab Material<br />

<br />

Section, Semester<br />

Abbildung 32: Tree Dependency in the Extended Relationship Type Lecture ∗<br />

The constraints can be represented by a tree dependency, displayed in Figure 32. The dependency structure allows decomposition<br />

<strong>of</strong> the type Lecture ∗ into the types<br />

CourseText = ( Course , Text , ∅ ),<br />

Lecture 0 = (Course, Semester, { Section }),<br />

Lecture 1 = (Lecture 0 , { Time }),<br />

Lecture 2 = (Lecture 0 , Room, ∅ ),<br />

Lecture 3 = (Lecture 0 , Grader, ∅ ),<br />

Lecture 4 = (Lecture 0 , Lecturer, ∅ ),<br />

Lecture 41 = (Lecture 4 , Lab, ∅ ),<br />

Lecture 42 = (Lecture 4 , Material, ∅ ).<br />

We can prefer the following decomposition which is more appropriate in the application context:<br />

CourseText = ( Course , Text , ∅ ),<br />

LectureActual = (Course, Semester, Lecturer, Room, { Section, Time } ),<br />

LectureMaterial = (LectureActual, Material, ∅ ),<br />

LectureLab = (LectureActual, Lab, ∅ ),<br />

LectureGrading = (LectureActual, Grader, ∅ ) .<br />

In this case the grading results for each student are assigned to<br />

LectureGrading.<br />

Mod IS<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 210<br />

The decomposition approach does not lead to a lossless, constraint preserving <strong>and</strong> adequate schema if the dependency<br />

{ Course, Section, Semester, Lecturer } →→ { Material }<br />

is changed to the dependency<br />

{ Course, Semester, Lecturer } →→ { Material }.<br />

The latter constraint causes a split virtual key problem. This problem can be solved if additional redundant types are introduced<br />

with a corresponding explicit treatment <strong>of</strong> redundancy:<br />

LectureTerm = (Course, Semester, ∅ ),<br />

LecturerAssignment = (LectureTerm, Lecturer, { Section } ),<br />

LectureActual = (LecturerAssignment, Room, { Time } ),<br />

LectureMaterial = (LectureTerm, Lecturer, Material, ∅ ).<br />

The types LecturerAssigment <strong>and</strong> LectureMaterial are correlated by inclusion constraints <strong>and</strong> their components LectureTerm<br />

<strong>and</strong> Lecturer.<br />

We note that the decomposition steps can be applied to relationship types as well. In this case the components <strong>of</strong> other<br />

relationship types have to be changed as well. We shall consider this case below.<br />

2.5.3 Flaws <strong>of</strong> the Classical Synthesis Algorithm<br />

Erfassung der äquivalenten linken Seiten<br />

.<br />

Einige Synthesealgorithmen verzichten auf die Bildung von Äquivalenzklassen. Damit kann ggf. ein Schema entstehen, das<br />

zwar normalisiert, aber nicht sinnvoll ist.<br />

Es ist jedoch sinnvoll, die folgende Ergänzung vorzunehmen.<br />

Problem<br />

Problem dieser Vereinfachung: Es können unnötig viele Relationstypen erzeugt werden.<br />

Als Beispiel betrachte man das Schema<br />

({A, B, C}, {{A} → {B}, {B} → {C}, {C} → {A}})<br />

das man ggf. nach der Reduktion erhalten hat. Dann entstehen drei neue Teilschemata.<br />

Behebung Es werden im ersten Schritt (1 (d)) der Normalisierung Äquivalenzklassen von Teilmengen von Attributmengen<br />

eingeführt. Dann wird eine Zusammenfassung der FD’s mit äquivalenten linken Seiten vorgenommen (statt gleiche linke Seiten).<br />

Die Sammlung erfolgt dann für eine Äquivalenzklasse.<br />

Im Beispiel gilt dann [{A}] = [{B}] = [{C}] und somit wird nicht dekomponiert.<br />

Pragmatische Separation von Schemata<br />

.<br />

Der klassische Normalisierungalgorithmus empfiehlt im vorletzten Schritt<br />

die Zusammenführung aller funktionalen Abhängigkeiten mit der gleichen rechten Seite.<br />

Man betrachte dazu folgende Relation:<br />

AG AGNummer Bezeichn Institut WebAdr Fax Sachgebiet Sekr.Ort Sekr.Tel EmailKontakt ...<br />

... ... ... ... ... ... ... ... ... ...<br />

AG AGNummer ... Lieferadr Besuchsadr Postadr Kostenstelle Leiter Anreisekarte ...<br />

... ... ... ... ... ... ... ...<br />

In dieser Relation ist das Attribut AGNummer ein Schlüssel, wobie durchaus <strong>and</strong>ere sinnvolle Schlüssel existieren, z.B. das<br />

Attribut Kostenstelle.<br />

Beobachtung: Diese Relation vereinigt zuviele unterschiedliche Aspekte, die eigentlich getrennt werden sollten.<br />

Mod IS<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 211<br />

Eine günstige Darstellung findet man im folgenden Schema im erweiterten ER-Modell 3 . Sie zeigt auf, daß man die Arbeitsgruppeneigenschaften<br />

separieren kann in ArbeitsgruppeDirekt und ArbeitsgruppeFinanzen sowie als Option ArbeitsgruppeSekretariat.<br />

Es ist durchaus eine Separation von ArbeitsgruppeKontakt sinnvoll (aufgrund der Besonderheiten von Daten wie<br />

Karten).<br />

Fonds<br />

✻<br />

Kostenstelle<br />

Sachgebiet<br />

✲<br />

Sachgebiets-<br />

Klassifikation<br />

AGNummer<br />

Bezeichnung<br />

WebAdr<br />

...<br />

Fax<br />

❄<br />

Arbeitsgruppe<br />

✻ ❑<br />

✙<br />

✛<br />

■<br />

Hauptzuordnung<br />

✲<br />

Institut<br />

Tel<br />

Ort<br />

Sekretariat<br />

✻<br />

Postadresse<br />

Lieferadresse<br />

Kontakt Besuchsadresse<br />

Anreisekarte<br />

EmailKontakt<br />

Sekretär(in)<br />

Leiter<br />

❄<br />

Person<br />

✠<br />

Abbildung 33: Ein HERM-Diagramm mit einer Separation von Gesichtspunkten<br />

2.5.4 Normalisation <strong>and</strong> its Impact<br />

Classical database books don’t tell the full truth about normalisation. Any (vertical) decomposition <strong>of</strong> a type T into types<br />

T 1 , ..., T n results in additional integrity constraints.<br />

Pairwise inclusion constraints: In the case <strong>of</strong> vertical decomposition we introduce pairwise inclusion constraints on components<br />

compon(T i ) <strong>of</strong> the types T i .<br />

T i [compon(T i ) ⊓ compon(T j )] ⊆ ⊇ T j [compon(T i ) ⊓ compon(T j )] ∀i, j(1 ≤ i < j ≤ n)<br />

We denote by ⊓ the componentwise intersection <strong>of</strong> the elements.<br />

Beobachtung 1.<br />

These pairing inclusion constraints have an impact on integrity maintenance <strong>and</strong> thus limit the impact <strong>of</strong> normalisation.<br />

2.5.5 Denormalisation Ruins Normalisation<br />

Strict local normalisation may be inadequate. Therefore a large number <strong>of</strong> publications, e.g., [Cel95, Dat05, SW05] advocate<br />

denormalisation whenever problems are observed within database structures. A theory <strong>of</strong> denormalisation has not yet been<br />

3 Unäre Relationship-Typen stellen u.a. auch Spezialisierungen dar, so daß der Typ Sekretariat z.B. auch die Identifikation vom Typ Arbeitsgruppe<br />

erbt.<br />

Die Darstellung der funktionalen Abhängigkeiten als (0,1)-Kardinalitäten sind dabei ausgelassen.<br />

Mod IS<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 212<br />

proposed as far as we know. Instead, a number <strong>of</strong> heuristic rules for denormalisation are provided. These rules are based on<br />

observations for performance traps for some <strong>of</strong> the platforms <strong>and</strong> <strong>of</strong>ten use the 80/20% rule.<br />

It is well known that denormalisation is bad for updates since they are harder to formulate <strong>and</strong> can jeopardise database<br />

integrity. Denormalisation may also lead to complications for query formulation. It becomes easier to formulate incorrectly<br />

a query to a request meaning that the query does not correspond to the request. Typically, tricky view creation is used for<br />

denormalised tables. Therefore, it seems that normalisation is the best way for optimisation <strong>of</strong> database behaviour.<br />

Despite these advantages <strong>of</strong> normalisation the denormalisation is considered a method for performance improvement method.<br />

It is based on precomputing derived data, on minimising the need <strong>of</strong> joins, on reducing the number <strong>of</strong> foreign keys in<br />

relations, on reducing the number <strong>of</strong> indexes <strong>and</strong> on reducing the number <strong>of</strong> relations. OLAP <strong>and</strong> data warehouse techniques<br />

rely on denormalisation. We shall however detect in the next sections that denormalisation can be minimised if global normalisation<br />

is applied. [LTN07] lists some key effects <strong>of</strong> thoughtful denormalisation: definite improvement in query time, a potential<br />

increase in update time or in storage space, a potential loss <strong>of</strong> data integrity due to certain deletions, the necessity for program<br />

transformations for all relevant queries <strong>and</strong> the overhead needed to reorganise some tables.<br />

Physical database design should follow logical database design. Logical database design should follow conceptual database<br />

design. We thus need the ‘Janus’ schema cluster for translating conceptual queries <strong>and</strong> programs to logical programs. Denormalisation<br />

is an approach to improve efficiency <strong>and</strong> performance <strong>of</strong> the database. Since we advocate co-design <strong>of</strong> structuring <strong>and</strong><br />

functionality we develop a broader view to optimisation. Typical denormalisation techniques are<br />

• the introduction <strong>of</strong> controlled redundancy for avoiding joins, e.g. by copying attributes to other tables,<br />

• the introduction <strong>of</strong> nested types such as repetition groups,<br />

• the composition or join <strong>of</strong> tables which are separated by functional or multivalued dependencies <strong>and</strong> which would not be<br />

separated if exceptions for these dependencies would be separately stored, <strong>and</strong><br />

• the maintenance <strong>of</strong> lookup tables that keep referenced values <strong>of</strong> other tables without having additional attributes.<br />

The first technique is supported by restrictions to modifications <strong>of</strong> redundant components <strong>and</strong> by flooding their values from the<br />

base table. The second technique is supported by modern object-relational systems. If nested types are used in minimal keys then<br />

surrogate key can be introduced. The third technique uses horizontal decomposition into the (rare) exceptional cases together<br />

with vertical decomposition <strong>of</strong> the exception table. The fourth technique uses enumeration domains <strong>and</strong> thus supports domain<br />

constraints.<br />

Mod IS<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 240<br />

2.10 Transformation von Schemata in <strong>and</strong>ere Modelle<br />

Man kann für die Übersetzung zwei verschiedene Zugänge unterscheiden:<br />

Interpretation: Typen des Ausgangschemas werden in einer bestimmten Reihenfolge in Konstrukte der Zielsprache überführt.<br />

Compilierung: Eine Transformation kann zu Schemata führen, die ein ungünstiges Verhalten haben. Deshalb wird <strong>of</strong>t von<br />

einem Entwerfer erwartet, daß er nach einer Übersetzung das Zielschema ‘glättet’. Ein Compilierungszugang dagegen 4<br />

berücksichtigt Eigenschaften der Zielsprache bei der Übersetzung mit. Übersetzer können wie ein klassischer Compiler<br />

aufgebaut sein.<br />

siehe auch H.C. Mayr’s Vorlesungen<br />

siehe Embley-Kapitel im H<strong>and</strong>buch<br />

Wir stellen zuerst einige Transformationstechniken vor. Diese Techniken stellen den Hintergrund der betrachteten Konzeptualisierung.<br />

Sie können bereits in diesem Schritt angew<strong>and</strong>t werden. Da wir uns hier jedoch vollständig auf den konzeptionellen<br />

Entwurf konzentrieren und nicht mit mehreren Entwurfsmodellen und -sprachen den Entwerfer verwirren wollen, dient die folgende<br />

Darstellung der Transformationstechniken nur dem Verständnis der folgenden Schritte. Erst im letzten Schritt wenden wir<br />

eine Transformation an. Dadurch wird gesichert, daß sich der Entwerfer nur mit einem Modell beschäftigen muß. Er kann die<br />

Transformation am Ende als vollständig automatisierbares Verfahren anwenden, ohne gezwungen zu sein, das physische oder<br />

das logische Schema im Detail zu betrachten. Spätere Änderungen oder Anpassungen sind dadurch stets auf konzeptionellen<br />

Niveau darzustellen. Dieser Vorteil rechtfertigt das Verschieben der Transformation auf den letzten Schritt.<br />

Grundkenntnisse.<br />

Übersetzungstechniken kann man analog zu den Ansätzen der Theorie der Programmiersprachen unterscheiden nach<br />

ER-Modellen: Es gibt eine Vielzahl von erweiterten Entity-Relationship-Modellen. Meist sind jedoch nur strukturelle Erweiterungen<br />

vorgeschlagen wurden.<br />

Einbeziehen von Integritätsbedingungen: Ein Schema hat implizite und explizite Integritätsbedingungen. Übersetzungstechniken<br />

verwenden <strong>of</strong>t nur einen Teil der entwickelten semantischen Bedingungen.<br />

Prozeßunterstützung: Einige erweiterte Entity-Relationship-Modelle lassen das explizite Modellieren von Prozessen z.B.<br />

durch Transaktionen zu. Andere dagegen erlauben keine Operationen. Aufgrund der Integritätserzwingungsmechanismen,<br />

die in Kapitel ?? bereits entwicklet wurden, sind generische Operationen bereits modelliert. Darüber hinausgehende<br />

Mechanismen können angew<strong>and</strong>t werden.<br />

Entwerferinteraktion: Einige Transformationstechniken sind nichtdeterministisch und lassen eine direkte Interaktion mit dem<br />

Entwerfer zu.<br />

Übersetzungsvoraussetzungen: Oft setzen Übersetzungen spezifische Normalformen voraus. Weiterhin werden <strong>of</strong>t Metaannahmen<br />

(unique-name-assumption u.a.) vorausgesetzt.<br />

Erhaltung der gesamten Entwurfsinformation: Es ist möglich, die gesamte Entwurfsinformation in das logische Zielmodell<br />

zu transformieren. Meist fehlt aber eine Umsetzung in ein physischen Modell, so daß darauf auch für physische Modelle<br />

verzichtet werden muß.<br />

Qualität des Zielschemas: Durch eine Reihe von Zugängen kann ein minimales, normalisiertes oder nichtredundantes Schema<br />

für verschiedene Arten von Ausgangsschemata erreicht werden.<br />

4 Die Arbeit Incremental translation <strong>of</strong> database schemas as an optimization process von N. Runge und P.C. Lockemann ist leider nach einer turbulenten<br />

EMISA-Tagung in Tutzingen 1996 nach unberechtigter Kritik von der Veröffentlichung zuruückgezogen worden. Wir verwenden diesen Ansatz aufgrund seiner<br />

Richtigkeit jedoch im weiteren.<br />

Mod IS IS ADD WebIS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 241<br />

2.10.1 Interpreter-Zugang<br />

Interpretation von ER-Konstrukten durch relationale Konstrukte.<br />

Fast alle Bücher und auch die entsprechenden Vorlesungen bieten nur den interpretierenden Zugang<br />

an!!!<br />

Mehrschrittverfahren wobei Semantik und Funktionalität mit übertragen werden muß<br />

Schlüssel und funktionale Abhängigkeiten in Schlüssel, funktionale und mehrwertige Abhängigkeiten<br />

implizite Komponenten in Inklusionsabhängigkeiten<br />

Exklusionsabhängigkeiten in Exklusionsabhängigkeiten<br />

Kardinalitätsbedingungen in funktionale, Inklusions- und No-null-Abhängigkeiten<br />

1. Herstellen der ersten Normalform (Tupelattribute durch Verkettungsregel, Mengenattribute entweder über Wiederholung<br />

in Tupeln oder durch eigene Relation); Neuberechnung der Schlüssel (bei Mengenattributen, die bislang im Schlüssel<br />

vorkamen, wird dann eine mehrwertige Abhängigkeit generiert und der Schlüssel verändert sich stark)<br />

2. Flache Entity-Typen werden in Relationenschema überführt<br />

3. Schwache flache Entity-Typen werden in Relationenschema übersetzt, wobei die Attributmenge um die Schlüssel der<br />

identifizierenden Schemas erweitert werden.<br />

4. Hierarchien von Typen sind in einem der folgenden Zugänge überführbar<br />

• event-nonseparation: Student, Pr<strong>of</strong>essor, Person<br />

• event-separation: Student, Pr<strong>of</strong>essor, AnderePerson<br />

• union: Person = Student + Pr<strong>of</strong>essor + AnderePerson<br />

• weak universal relation: Person<br />

5. Relationship-Typen werden entsprechend ihrer Ordnung überführt<br />

• Binäre 1:1-Relationship-Typen :<br />

Mehrere Optionen:<br />

• Einbetten in vorh<strong>and</strong>enes Relationenschema (möglichst der ‘m<strong>and</strong>atory’-Seite; d.h. bei (1,1):(0,1)-Typen in<br />

ersten Typ) des Primärschl¨ssels des <strong>and</strong>eren Typen, sowie der Attribute des Relationship-Typen (Einfügen<br />

eines Fremdschlüssels)<br />

• Definieren eines separaten Relationenschemas mit Primärschlüssel der Komponenten und Attributen des Relationship-<br />

Typen<br />

• Zusammenfügen der beiden Relationenschemas unter Beifügung der entsprechenden Relationship-Typ-Attribute<br />

falls Attribute keine Nullwerte enthalten dürfen, dann nur bei (1,1):(1,1)-Typen<br />

• N-äre 1:...-Relationship-Typen (n > 2):<br />

Mehrere Optionen:<br />

• Einbetten in vorh<strong>and</strong>enes Relationenschema (möglichst der ‘m<strong>and</strong>atory’-Seite; d.h. bei (1,1):(0,1)...-Typen in<br />

ersten Typ) des Primärschl¨ssels des <strong>and</strong>eren Typen, sowie der Attribute des Relationship-Typen (Einfügen<br />

eines Fremdschlüssels)<br />

• Definieren eines separaten Relationenschemas mit Primärschlüssel der Komponenten und Attributen des Relationship-<br />

Typen<br />

• Zusammenfügen der beiden Relationenschemas unter Beifügung der entsprechenden Relationship-Typ-Attribute<br />

falls Attribute keine Nullwerte enthalten dürfen, dann nur bei (1,1):(1,1)-Typen<br />

• Binäre 1:n-Relationship-Typen :<br />

Mehrere Optionen:<br />

• Einbetten in vorh<strong>and</strong>enes Relationenschema (möglichst der ‘m<strong>and</strong>atory’-Seite; d.h. bei (1,1):(0,1)-Typen in<br />

ersten Typ) des Primärschl¨ssels des <strong>and</strong>eren Typen, sowie der Attribute des Relationship-Typen (Einfügen<br />

eines Fremdschlüssels)<br />

• Definieren eines separaten Relationenschemas mit Primärschlüssel der Komponenten und Attributen des Relationship-<br />

Typen<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 242<br />

• N-äre 1:n...-Relationship-Typen (n > 2):<br />

Mehrere Optionen:<br />

• Einbetten in vorh<strong>and</strong>enes Relationenschema (möglichst der ‘m<strong>and</strong>atory’-Seite; d.h. bei (1,1):(0,1)...-Typen in<br />

ersten Typ) des Primärschl¨ssels des <strong>and</strong>eren Typen, sowie der Attribute des Relationship-Typen (Einfügen<br />

eines Fremdschlüssels)<br />

• Definieren eines separaten Relationenschemas mit Primärschlüssel der Komponenten und Attributen des Relationship-<br />

Typen<br />

• n:m -Relationship-Typen<br />

Definieren eines separaten Relationenschemas mit Primärschlüssel der Komponenten und Attributen des Relationship-<br />

Typen<br />

• Rekursive Relationship-Typen<br />

wier normale Relationship-Typen aber unter Beibehaltung der Rollennamen<br />

• Is-A-Relationship-Typen<br />

• Einbetten in vorh<strong>and</strong>enes Relationenschema (möglichst der ‘m<strong>and</strong>atory’-Seite; d.h. bei (1,1):(0,1)-Typen in<br />

ersten Typ) des Primärschl¨ssels des <strong>and</strong>eren Typen, sowie der Attribute des Relationship-Typen (Einfügen<br />

eines Fremdschlüssels)<br />

• Definieren eines separaten Relationenschemas mit Primärschlüssel der Komponenten und Attributen des Relationship-<br />

Typen<br />

• Zusammenfügen der beiden Relationenschemas unter Beifügung der entsprechenden Relationship-Typ-Attribute<br />

falls Attribute keine Nullwerte enthalten dürfen, dann nur bei (1,1):(1,1)-Typen<br />

• Cluster<br />

Mehrere Optionen:<br />

• Definieren eines separaten Relationenschemas mit Primärschlüssel der Komponenten und Attributen des Relationship-<br />

Typen unter Einbeziehung der Rollennamen<br />

• Einbetten in vorh<strong>and</strong>enes Relationenschema (möglichst der ‘m<strong>and</strong>atory’-Seite) des Primärschl¨ssels des <strong>and</strong>eren<br />

Typen (Einfügen eines Fremdschlüssels) unter Beibehaltung der Rollennamen<br />

• Einführen eines virtuellen Clusters durch Nutzung der Indexisierung<br />

CREATE CLUSTER<br />

und damit eines Typs, der nur die Schlüssel vereinigt!<br />

Interpretation durch XML-Modelle (DTD).<br />

Nach Lipeck/Kleiner [KL02]<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 243<br />

Der Algorithmus nach Lipeck/Kleiner:<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 244<br />

Übersetzung von HERM in XML-Bäume.<br />

HERM ist besser geeignet als einfache ER-Modelle<br />

• Typen bereits genestete Struktur<br />

• Typen höherer Ordnung<br />

• unäre Kardinalitätsbeschränkungen mit Participation-Semantik<br />

HERM ist besser geeignet als UML<br />

• Typen haben klar definierte Semantik<br />

• Schematakomponenten sind integriert<br />

• durch Codesign auch Pragmatik und Entwicklungsmethodik<br />

XML ist Einschränkung von HERM<br />

• XML Schema und XForms geeignet für hierarchische Extrakte von HERM<br />

• HERM-Spezialisierung entspricht Schema-Typen-Spezialisierung<br />

• einelementige Kardinalitäten<br />

ansonsten clustering mit pivoting<br />

• Varianten von I-Objekten über XDNL-Zugang<br />

• XML - objekt-orientiertes hierarchisches Datenmodell<br />

• Mehrfach-Szenarien werden mit XDNL-Varianten verbunden<br />

damit ist Übertragung von HERM-Schemata in XML Schemata determiniert<br />

Übersetzung<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 245<br />

• Objektifizierung mit Master-Slave-Mirror<br />

für Auflösung mit ID’s<br />

alle Typen, auf die verwiesen wird<br />

unter Beachtung der Exklusionsabhängigkeiten<br />

• starke Aggregationen sind exklusiv (Komponente gehört zu genau einem Supertyp)<br />

• schwache (nicht-exklusive) Aggregationen werden in (evt. auch künstliche) Mirror-Beziehung abgebildet<br />

evt. mit Varianten je nach Interaktion un Szenarien<br />

• schrittweise Übersetzung von HERM-Typen von 0. Ordnung bis zu i. Ordnung<br />

Entity-Typen werden direkt übertragen<br />

Attributtypen sind auch in HERM exklusiv, gehören zu ER-Typen<br />

Cluster-Typen werden in Varianten übertragen<br />

Relationship-Typen werden ggf. auch kolladiert ((1, 1)(1, 1)-Typen) bzw. objektifiziert<br />

Hierarchien müssen nicht aufgelöst werden, sondern werden direkt als Subtypen realisiert<br />

• Sichten werden als Anfragen in XML-QL formuliert, falls nicht bereits in Schema-Definition eingegangen<br />

• Integritätsbedingungen der Datenbank für XML-Interaktion müssen spezifisch beh<strong>and</strong>elt werden<br />

• Translationsmechanismus wird analog für die Datenbank mit HERM-Reengineering-Zugang erweitert<br />

damit ist dann Direktanbindung der Datenbank möglich<br />

Interpretation durch Netzwerk- und hierarchische Modelle.<br />

Netzwerkmodell<br />

Zwei Konstrukte: Recordtyp, Settyp<br />

stark implmentationsabhängig trotz Codasyl-St<strong>and</strong>ards<br />

Recordtyp : Name, Menge von Attributen mit ihren Wertebereichen<br />

Attribute<br />

• einfache Attribute<br />

• mengenwertige Attribute: Vektor<br />

• zusammengesetzte mengenwertige Attribute: Wiederholgruppe<br />

Settyp : beschreibt 1-m-Beziehung zwischen Recordtypen<br />

Records, die mit mehreren <strong>and</strong>eren Records in Beziehung stehen: Owner<br />

die in Beziehung gesetzten: Member<br />

hat eigenen Namen und keine Attribute<br />

Settypen können auch mehrere Membertypen haben, meist wird jedoch Zweistelligkeit der Beziehung hervorgehoben<br />

und nur jeweils ein Membertyp zugelassen; damit dann graphische Repräsentation durch Bachman-Diagramme<br />

Settyp ist kein Mengentyp !! Codasyl empfiehlt Liste !!<br />

Pr<strong>of</strong>essor<br />

hält<br />

✲<br />

Vorlesung<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 246<br />

Ein Pfeil wird von A nach B gezeichnet, wenn eine partielle Funktion von B C nach A C existiert. entgegen der<br />

Pfeilrichtung<br />

Settyp (Member-Records eines Sets) wird kann auf folgende Art und Weise implementiert:<br />

• entweder first/last: neuer Record stets als erstes/letztes Mitglied einer Set-Occurrence eingefügt<br />

• oder next/prior: Einfügen jeweils vor bzw. nach laufendem Pointer (z.B. letzte Anfrag)<br />

• oder System Default: wird durch System übernommen<br />

• oder Sortiert: nach Werten vorgegebener Attribute<br />

Einschränkungen :<br />

jeder Record - Member in höchstens einer Occurrence eines gegebenen Settyps<br />

Member-Record kann nicht im gleichen Settyp Owner sein<br />

erlaubt ist jedoch zusätzlich:<br />

ein Record kann mehrfach Owner-Record verschiedener Settypen sein<br />

ein Record kann gleichzeitig Member-Record verschiedener Settypen sein<br />

es können gleichzeitig mehrere Settypen zwischen gleichen Paaren von Recordtypen gebildet werden<br />

Abfederung der Inflexibilität durch:<br />

Set-Insertion-Option Einfügen eines neuen Member-Records vom Typ R<br />

• Automatisch: falls R Membertyp in Settyp S, dann neuer Record auch in S eingefügt<br />

• Manual: Einfügen in S ist Programmierersache<br />

Set-Retention-Option Member-Record vom Typ R in S löschen<br />

• Optional: Record kann ohne Mitgliedschaft in Set-Occurrence in DB existieren<br />

• M<strong>and</strong>atory: Record muß in eine Occurrence eingebunden sein<br />

• Fixed: Record R muß in S verbleiben<br />

Da im obigen Schema Vorlesung kein Attribut haben darf:<br />

• entweder Hinzunahme der Vorlesungsattribute zum Pr<strong>of</strong>essor<br />

• oder<br />

Übersetzung von ER-Schemata in Netzwerkdiagramme<br />

Verschiedene Strukturen müssen aufgelöst werden:<br />

• Relationship-Typen höherer Ordnung (> 1) bzw. Arität (> 2)<br />

• Relationship-Typen mit eigenen Attributen<br />

• rekursive Relationship-Typen<br />

• IsA-Relationship-Typen<br />

• z.T. 1-1-Beziehungen<br />

• Cluster<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 247<br />

Folgende Strukturen können im wesentlichen erhalten bleiben:<br />

• Entity-Typen mit genesteten Attributen<br />

• attributlose, binäre 1:n Relationshiptypen<br />

Übersetzung der Problemfälle<br />

• 1-1-Beziehungen ohne Attribute: entweder Zusammenfassen zu einem Typ oder Bildung eines Settyps für einen<br />

der beiden Typen<br />

• m-n-Beziehungen bzw. nicht-binaäre Beziehungen: Einführen mehrerer Settypen und eines Membertyps (Kett-<br />

Typ) mit Set-Beziehungen zwischen diesem und dem Ownertypen<br />

Attribute werden dem Kett-Typen zugeordnet<br />

• IsA-Beziehungen: wie 1-1-Beziehungen in umgekehrter Richtung<br />

Unterscheidung total/partiell geht verloren; muß über DML gelöst werden<br />

• Rekursive Typen: Duplizierung des Recordtyps mit Umbenennung oder Einbeziehung eines Dummy-Member-<br />

Typs<br />

Person<br />

IsA<br />

IsA<br />

❄<br />

Pr<strong>of</strong>essor<br />

✠<br />

Student<br />

✠ betreut<br />

hält<br />

❘<br />

Vorlesung<br />

besucht wird-besucht<br />

❘<br />

✠<br />

Stud-Vorles<br />

Vorlesung<br />

Vorlesung<br />

Vorlesung<br />

setzt<br />

voraus IsA<br />

❄ ❄<br />

Dummy<br />

wird vorausgesetzt<br />

von IsA<br />

✻<br />

❄<br />

Vorausges<br />

Vorlesung<br />

✻ wird vorausgesetzt<br />

von<br />

✻<br />

IsA<br />

Vorausges<br />

Vorlesung<br />

Optimierung der Übersetzung durch entsprechende ER-Normalisierung<br />

Ersetzung der genesteten Strukturen durch flache:<br />

Mengennestung wird durch Einführung eines neuen Kett-Typs aufgehoben mit entsprechender Set-Typen-Einführung<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 248<br />

Tupelnestung wird verflacht<br />

Integritätsbedingungen sind Programmiereraufgabe bis auf:<br />

Domain-Bedingungen: mit CHECK-Klausel<br />

Intrarecord-Bedingung: duplicates are not allowed for < Attribut ><br />

ist aber keine Schlüsselbedingung<br />

Interrecord-Bedingung: gleichbenannte Attribute können über CHECK getestet werden (damit referentielle Integrität<br />

möglich)<br />

Hierarchisches Modell<br />

alle Daten durch Baumstrukturen dargestellt<br />

Datenbank durch Wald strukturiert<br />

Beziehungen sind 1:1 oder 1:n<br />

Wurzel ist nicht optional<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 321<br />

2.14 Ein Beispiel<br />

2.14.1 Ein HERM-Beispiel<br />

2.14.2 Die relationale Transformation des Beispieles<br />

Annahmen für die Transformation im Vorlesungsbeispiel:<br />

• volle ID-Entfaltung<br />

• rigides Nullwerte-Management<br />

• Separation von Schemadefintion und Integritätsbedingungen<br />

• minimale Indexunterstützung (nur Schl¨ssel (Primär- und Fremd-))<br />

• minimale Menge von Wertebereichen<br />

• vollständige Verflachung<br />

• Auflösung aller Cluster-Typen<br />

• Event-Nonseparation mit Surrogat-Auflösung<br />

• Einbettung von (0,1)-*-Beziehungen<br />

• Namensgenerierung mit Präfixerweiterung und vorgegebener Präfixmenge, Trennung durch<br />

als Delimiter<br />

-- Database Section<br />

-- ________________<br />

create database DB1_Vorlesungsbeipiel;<br />

-- DBSpace Section<br />

-- _______________<br />

-- Table Section<br />

-- _____________<br />

create table Studiengang (<br />

ID_Stu char(10) not null,<br />

SName char(1) not null,<br />

Betreuer char(1) not null,<br />

Pruefungsamt char(6) not null,<br />

ID_Ins char(10) not null,<br />

primary key (ID_Stu));<br />

create table Kurs (<br />

ID_Kur char(10) not null,<br />

KursNr char(7) not null,<br />

Bezeichnung char(20) not null,<br />

primary key (ID_Kur));<br />

create table Raum (<br />

ID_Rau char(10) not null,<br />

Gebaeude char(4) not null,<br />

Raumnr numeric(5) not null,<br />

primary key (ID_Rau));<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 322<br />

Name(First,Fam,{Title})<br />

Person<br />

Adr(Zip,Town,Street(Name,Nr))<br />

❃<br />

❑<br />

■<br />

Person’s number<br />

Supervisor<br />

Since<br />

StudNr<br />

✙<br />

Student<br />

❖<br />

✠<br />

■<br />

Major<br />

Minor<br />

Department<br />

✸<br />

Phones{Phone}<br />

Director<br />

✛<br />

DName<br />

In<br />

✲<br />

❃<br />

❥<br />

Pr<strong>of</strong>essor<br />

✻<br />

Primary<br />

Investigator<br />

Speciality<br />

Member<br />

Result<br />

Time(Day,Hour)<br />

Enroll ✲ Lecture Has<br />

⊕<br />

✾<br />

✰<br />

❄<br />

Semester<br />

Year Season<br />

Nr<br />

Room<br />

Building<br />

✻<br />

Course<br />

✻<br />

CNu<br />

CName<br />

❄<br />

Project<br />

Prerequis<br />

Begin<br />

Num<br />

End<br />

PName<br />

Abbildung 82: HERM-Diagram <strong>of</strong> the University Database<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 323<br />

create table Institut (<br />

ID_Ins char(10) not null,<br />

RaumSekret char(8) not null,<br />

Kostenstelle char(12),<br />

Telefon numeric(4) not null,<br />

IName char(1) not null,<br />

Sprecher char(15) not null,<br />

Fakultaet char(1) not null,<br />

primary key (ID_Ins));<br />

create table Semester (<br />

ID_Sem char(10) not null,<br />

Jahreszeit char(2) not null,<br />

Jahr numeric(4) not null,<br />

primary key (ID_Sem));<br />

create table Projekt (<br />

ID_Pro char(10) not null,<br />

Projektnr char(8) not null,<br />

Beschreibung varchar(90) not null,<br />

Bezeichnung char(20) not null,<br />

primary key (ID_Pro));<br />

create table Student (<br />

ID_Stu char(10) not null,<br />

ID_Per char(10) not null,<br />

MatrNr char(7) not null,<br />

primary key (ID_Stu),<br />

unique (ID_Per));<br />

create table Pr<strong>of</strong>essor (<br />

ID_Pro char(10) not null,<br />

ID_Per char(10) not null,<br />

Spezialisierung char(1) not null,<br />

primary key (ID_Pro),<br />

unique (ID_Per));<br />

create table Person (<br />

ID_Per char(10) not null,<br />

Geburtsort char(15) not null,<br />

Adresse char(40) not null,<br />

Personenname char(25) not null,<br />

Geburtsdatum date not null,<br />

primary key (ID_Per));<br />

create table Betreuer (<br />

ID_Pro char(10) not null,<br />

ID_Stu char(10) not null,<br />

von date not null,<br />

bis date,<br />

Thema varchar(30) not null,<br />

primary key (ID_Pro, ID_Stu));<br />

create table eingeschrieben in (<br />

E_S_ID_Stu char(10) not null,<br />

ID_Stu char(10) not null,<br />

von date not null,<br />

bis date not null,<br />

primary key (ID_Stu, E_S_ID_Stu));<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 324<br />

create table hoert (<br />

ID_Stu char(10) not null,<br />

ID_Vor char(10) not null,<br />

Resultat char(10) not null,<br />

Note char(2),<br />

primary key (ID_Vor, ID_Stu));<br />

create table Projektmitarbeiter (<br />

ID_Pro char(10) not null,<br />

ID_Stu char(10) not null,<br />

P_P_ID_Pro char(10) not null,<br />

primary key (ID_Pro),<br />

unique (ID_Stu),<br />

unique (P_P_ID_Pro));<br />

create table Vorlesung (<br />

ID_Vor char(10) not null,<br />

Wochentag char(2) not null,<br />

Block char(2) not null,<br />

Nummer char(9) not null,<br />

ID_Pro char(10) not null,<br />

ID_Sem char(10) not null,<br />

ID_Rau char(10) not null,<br />

ID_Kur char(10) not null,<br />

primary key (ID_Vor));<br />

create table In (<br />

ID_Pro char(10) not null,<br />

Seit char(1) not null,<br />

ID_Ins char(10) not null,<br />

primary key (ID_Pro));<br />

create table wirkt mit (<br />

W_P_ID_Pro char(10) not null,<br />

ID_Pro char(10) not null,<br />

bis date not null,<br />

Kontraktnr char(6) not null,<br />

von date not null,<br />

primary key (ID_Pro, W_P_ID_Pro));<br />

-- Constraints Section<br />

-- ___________________<br />

alter table Studiengang add constraint FKverantwortlich fuer<br />

foreign key (ID_Ins)<br />

references Institut;<br />

--alter table Student add constraint<br />

-- check(exists(select * from eingeschrieben in<br />

-- where eingeschrieben in.E_S_ID_Stu = ID_Stu));<br />

alter table Student add constraint FKPer_Stu<br />

foreign key (ID_Per)<br />

references Person;<br />

--alter table Pr<strong>of</strong>essor add constraint<br />

-- check(exists(select * from In<br />

-- where In.ID_Pro = ID_Pro));<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 325<br />

alter table Pr<strong>of</strong>essor add constraint FKPer_Pro<br />

foreign key (ID_Per)<br />

references Person;<br />

alter table Betreuer add constraint FKBet_Stu<br />

foreign key (ID_Stu)<br />

references Student;<br />

alter table Betreuer add constraint FKBet_Pro<br />

foreign key (ID_Pro)<br />

references Pr<strong>of</strong>essor;<br />

alter table eingeschrieben in add constraint FKein_Stu_1<br />

foreign key (ID_Stu)<br />

references Studiengang;<br />

alter table eingeschrieben in add constraint FKein_Stu<br />

foreign key (E_S_ID_Stu)<br />

references Student;<br />

alter table hoert add constraint FKhoer_Vor<br />

foreign key (ID_Vor)<br />

references Vorlesung;<br />

alter table hoert add constraint FKhoer_Stu<br />

foreign key (ID_Stu)<br />

references Student;<br />

alter table Projektmitarbeiter add constraint FKStu_Pro<br />

foreign key (ID_Stu)<br />

references Student;<br />

alter table Projektmitarbeiter add constraint FKPro_Pro<br />

foreign key (P_P_ID_Pro)<br />

references Pr<strong>of</strong>essor;<br />

alter table Vorlesung add constraint FKliest<br />

foreign key (ID_Pro)<br />

references Pr<strong>of</strong>essor;<br />

alter table Vorlesung add constraint FKim<br />

foreign key (ID_Sem)<br />

references Semester;<br />

alter table Vorlesung add constraint FKveranstaltet<br />

foreign key (ID_Rau)<br />

references Raum;<br />

alter table Vorlesung add constraint FKzu<br />

foreign key (ID_Kur)<br />

references Kurs;<br />

alter table In add constraint FKIn_Pro<br />

foreign key (ID_Pro)<br />

references Pr<strong>of</strong>essor;<br />

alter table In add constraint FKIn_Ins<br />

foreign key (ID_Ins)<br />

references Institut;<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 326<br />

alter table wirkt mit add constraint FKwir_Pro_1<br />

foreign key (ID_Pro)<br />

references Projektmitarbeiter;<br />

alter table wirkt mit add constraint FKwir_Pro<br />

foreign key (W_P_ID_Pro)<br />

references Projekt;<br />

-- Index Section<br />

-- _____________<br />

create unique index ID<br />

on Studiengang (ID_Stu);<br />

create index FKverantwortlich fuer<br />

on Studiengang (ID_Ins);<br />

create unique index ID<br />

on Kurs (ID_Kur);<br />

create unique index ID<br />

on Raum (ID_Rau);<br />

create unique index ID<br />

on Institut (ID_Ins);<br />

create unique index ID<br />

on Semester (ID_Sem);<br />

create unique index ID<br />

on Projekt (ID_Pro);<br />

create unique index ID<br />

on Student (ID_Stu);<br />

create unique index FKPer_Stu<br />

on Student (ID_Per);<br />

create unique index ID<br />

on Pr<strong>of</strong>essor (ID_Pro);<br />

create unique index FKPer_Pro<br />

on Pr<strong>of</strong>essor (ID_Per);<br />

create unique index ID<br />

on Person (ID_Per);<br />

create unique index IDBetreuer<br />

on Betreuer (ID_Pro, ID_Stu);<br />

create index FKBet_Stu<br />

on Betreuer (ID_Stu);<br />

create index FKBet_Pro<br />

on Betreuer (ID_Pro);<br />

create unique index IDeingeschrieben in<br />

on eingeschrieben in (ID_Stu, E_S_ID_Stu);<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 327<br />

create index FKein_Stu_1<br />

on eingeschrieben in (ID_Stu);<br />

create index FKein_Stu<br />

on eingeschrieben in (E_S_ID_Stu);<br />

create unique index IDhoert<br />

on hoert (ID_Vor, ID_Stu);<br />

create index FKhoer_Vor<br />

on hoert (ID_Vor);<br />

create index FKhoer_Stu<br />

on hoert (ID_Stu);<br />

create unique index ID<br />

on Projektmitarbeiter (ID_Pro);<br />

create unique index FKStu_Pro<br />

on Projektmitarbeiter (ID_Stu);<br />

create unique index FKPro_Pro<br />

on Projektmitarbeiter (P_P_ID_Pro);<br />

create unique index ID<br />

on Vorlesung (ID_Vor);<br />

create index FKliest<br />

on Vorlesung (ID_Pro);<br />

create index FKim<br />

on Vorlesung (ID_Sem);<br />

create index FKveranstaltet<br />

on Vorlesung (ID_Rau);<br />

create index FKzu<br />

on Vorlesung (ID_Kur);<br />

create unique index FKIn_Pro<br />

on In (ID_Pro);<br />

create index FKIn_Ins<br />

on In (ID_Ins);<br />

create unique index IDwirkt mit<br />

on wirkt mit (ID_Pro, W_P_ID_Pro);<br />

create index FKwir_Pro_1<br />

on wirkt mit (ID_Pro);<br />

create index FKwir_Pro<br />

on wirkt mit (W_P_ID_Pro);<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 340<br />

Literatur<br />

[AFT92] S. S. Al-Fedaghi <strong>and</strong> B. Thalheim. The key concept in database models. Unpublished manuscript, 1992.<br />

[AHV95] S. Abiteboul, R. Hull, <strong>and</strong> V. Vianu. Foundations <strong>of</strong> databases. Addison-Wesley, Reading, MA, 1995.<br />

[All84] J.F. Allen. Towards a general theory <strong>of</strong> action <strong>and</strong> time. Artificial intelligence, (6):123–154, 1984.<br />

[AT93]<br />

[BDK92]<br />

[Bis95]<br />

[BM97]<br />

[BS00]<br />

[BS03]<br />

P. Atzeni <strong>and</strong> R. Torlone. A metamodel approach for the management <strong>of</strong> multiple models <strong>and</strong> the translation<br />

<strong>of</strong> schemes. <strong>Information</strong> <strong>Systems</strong>, 18(6):349–362, 1993.<br />

P. Buneman, S. Davidson, <strong>and</strong> A. Kosky. Theoretical aspects <strong>of</strong> schema merging. In A. Pirotte, C. Delobel,<br />

<strong>and</strong> G. Gottlob, editors, Proc. 3rd Int. Conf. on Extending Database Technology - EDBT’92, LNCS<br />

580, pages 152–167, Vienna, 1992. Springer, Berlin/New York.<br />

J. Biskup. Foundations <strong>of</strong> information systems. Vieweg, Wiesbaden, 1995. In German.<br />

E. Börger, , <strong>and</strong> L. Mearelli. Integrating ASM into the s<strong>of</strong>tware development life cycle. J. Universal<br />

Computer Science, 3(5):603–665, 1997.<br />

E. Börger <strong>and</strong> W. Schulte. Architecture <strong>Design</strong> <strong>and</strong> Validation Methods, chapter Modular design for the<br />

Java virtual machine architecture, pages 297–357. Springer, Berlin, 2000.<br />

E. Börger <strong>and</strong> R. Stärk. Abstract state machines - A method for high-level system design <strong>and</strong> analysis.<br />

Springer, Berlin, 2003.<br />

[BT92] C. Beeri <strong>and</strong> B. Thalheim. Identification is well-founded in object-oriented databases. Manuscript, 1992.<br />

[BT95] C. Beeri <strong>and</strong> B. Thalheim. Can I see your identification, please? - Identification is well-founded in<br />

object-oriented databases. Manuscript, Cottbus/Jerusalem, 1995.<br />

[BT99]<br />

[Cad76]<br />

C. Beeri <strong>and</strong> B. Thalheim. Identification as a primitive <strong>of</strong> database models. In Proc. FoMLaDO’98, pages<br />

19–36. Kluwer, London, 1999.<br />

J.-M. Cadiou. On semantic issues in the relational model <strong>of</strong> data. In A. W. Mazurkiewicz, editor, Proc. 5th<br />

Symp. on Mathematical Foundations <strong>of</strong> Computer Science - MFCS’76, LNCS 45, pages 23–38, Gdańsk,<br />

1976. Springer, Berlin.<br />

[CCN80] P. P. Chen, I. Chung, <strong>and</strong> F. Nakamura. Entity-relationship normal forms. unpublished manuscript, 1980.<br />

[Cel95]<br />

[CGT90]<br />

[CL73]<br />

J. Celko. Joe Celko’s SQL for smarties - Advanced SQL programming. Morgan Kaufmann, San Francisco,<br />

1995.<br />

S. Ceri, G. Gottloba, <strong>and</strong> L. Tanca. Logic programming <strong>and</strong> databases. Springer, Heidelberg/New York,<br />

1990.<br />

C. L. Chang <strong>and</strong> R. C. T. Lee. Symbolic logic <strong>and</strong> mechanical theorem proving. Academic Press, New<br />

York, 1973.<br />

[Das92] S. K. Das. Deductive databases <strong>and</strong> logic programming. Addison-Wesley, Wokingham, Engl<strong>and</strong>, 1992.<br />

[Dat05] C.J. Date. Database in depth: Relational theory for practitioners. O’Reilly, Sebastopol, 2005.<br />

[DMT04]<br />

J. Demetrovics, A. Molnar, <strong>and</strong> B. Thalheim. Graphical <strong>and</strong> spreadsheet reasoning for sets <strong>of</strong> functional<br />

dependencies. In ER’2004, LNCS 3255, pages 54–66, 2004.<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 341<br />

[DMT07]<br />

[EN89]<br />

[EWH85]<br />

[Fag81]<br />

[Fownn]<br />

[Gog94]<br />

J. Demetrovics, A. Molnar, <strong>and</strong> B. Thalheim. Graphical axiomatisation <strong>of</strong> sets <strong>of</strong> functional dependencies<br />

in relational databases. In Alkalmazott Matematikai Lapok, volume 24, pages 223–264. 2007.<br />

R. Elmasri <strong>and</strong> S. B. Navathe. Fundamentals <strong>of</strong> database systems. Benjamin/Cummings, Redwood City,<br />

1989.<br />

R. Elmasri, J. Weeldreyer, <strong>and</strong> A. Hevner. The category concept: An extension to the entity-relationship<br />

model. DKE, 1(1):75–116, 1985.<br />

R. Fagin. A normal form for relational data bases that is based on domains <strong>and</strong> keys. ACM TODS,<br />

6(3):387–415, 1981.<br />

M. Fowler. Analysemuster. Addison-Wesley, 1999, Bonn.<br />

M. Gogolla. An extended entity-relationship model - fundamentals <strong>and</strong> pragmatics. LNCS 767. Springer,<br />

Berlin, 1994.<br />

[Gol06] R. Goldblatt. Topoi: The Categorial <strong>Analysis</strong> <strong>of</strong> Logic. Dover Books on Mathematics, 2006.<br />

[GSS89]<br />

G. Gottlob, M. Schrefl, <strong>and</strong> M. Stumptner. On the interaction between closure <strong>and</strong> functional dependencies.<br />

LNCS 364, pages 187–206, Visegrád, Hungary, Jun 26 - 30, 1989, 1989. Springer, Berlin.<br />

[Hal95] T. A. Halpin. Conceptual schema <strong>and</strong> relational database design. Prentice-Hall, Sydney, 1995.<br />

[HL07]<br />

[HLM93]<br />

[Hoh93]<br />

[KL02]<br />

[Kle07]<br />

[KR97]<br />

S. Hartmann <strong>and</strong> S. Link. English sentence structures <strong>and</strong> eer modeling. In APCCM, volume 67 <strong>of</strong><br />

CRPIT, pages 27–35. Australian Computer Society, 2007.<br />

W. L. Hürsch, K.-J. Lieberherr, <strong>and</strong> S. Mukherjea. Object-oriented schema extension <strong>and</strong> abstraction. In<br />

Proc. 1993 ACM/SIGAPP Symp. on Applied Computing: States <strong>of</strong> the Art <strong>and</strong> Practice - SAC’93, pages<br />

54–62, Indianapolis, 1993. ACM Press, New York.<br />

U. Hohenstein. Formale Semantik eines erweiterten Entity-Relationship-Modells. Teubner, Stuttgart,<br />

1993.<br />

Carsten Kleiner <strong>and</strong> Udo W. Lipeck. Automatische Erzeugung von XML DTDs aus konzeptuellen Datenbankschemata.<br />

Datenbankspektrum, 1(2):14–22, 2002.<br />

M. Klettke. Modellierung, Bewertung und Evolution von XML-Dokumentkollektionen. Advanced PhD<br />

(Habilitation Thesis), Rostock University, Faculty for Computer Science <strong>and</strong> Electronics, 2007.<br />

H.-J. Klein <strong>and</strong> J. Rasch. Value based identification <strong>and</strong> functional dependencies for object databases.<br />

In Proc. 3rd Basque Int. Workshop on <strong>Information</strong> Technology, pages 22–34. IEEE Computer Science<br />

Press, New York, 1997.<br />

[Lei60] G.W. Leibniz. Fragmente zur Logik. Berlin, 1960.<br />

[Leo92] M. Leonard. Database design theory. MacMillan, Houndsmills, 1992.<br />

[LTN07] S. Lightstone, T. Teorey, <strong>and</strong> T. Nadeau. Physical database design. Morgan Kaufmann, 2007.<br />

[MN83] J. Minker <strong>and</strong> J.-M. Nicolas. On recursive axioms in deductive databases. <strong>Information</strong> <strong>Systems</strong>, 8(1):1–<br />

13, 1983.<br />

[Mok97] W. Y. Mok. On keys <strong>and</strong> normal forms. <strong>Information</strong> Processing Letters, 62(5):255–258, 1997.<br />

[MR92]<br />

H. Mannila <strong>and</strong> K.-J. Räihä. The design <strong>of</strong> relational databases. Addison-Wesley, Wokingham, Engl<strong>and</strong>,<br />

1992.<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 342<br />

[MR98]<br />

J. A. Makowsky <strong>and</strong> E. V. Ravve. Dependency preserving refinements <strong>and</strong> the fundamental problem <strong>of</strong><br />

database design. DKE, 24(3):277–312, 1998. Special Issue: ER’96 (ed. B. Thalheim).<br />

[PBGG89] J. Paredaens, P. De Bra, M. Gyssens, <strong>and</strong> D. Van Gucht. The structure <strong>of</strong> the relational database model.<br />

Springer, Berlin, 1989.<br />

[PS89]<br />

[RK02]<br />

C. Parent <strong>and</strong> S. Spaccapietra. Complex objects modelling: An entity-relationship approach. In S. Abiteboul,<br />

P. C. Fischer, <strong>and</strong> H.-J. Schek, editors, Nested Relations <strong>and</strong> Complex Objects, Workshop Theory<br />

<strong>and</strong> Applications <strong>of</strong> Nested Relations <strong>and</strong> Complex Objects, LNCS 361, pages 272–296, Darmstadt, 1987,<br />

1989. Springer, Berlin.<br />

J. Rasch <strong>and</strong> H.-J. Klein. Database Integrity: Challenges <strong>and</strong> Solutions, chapter Functional Dependencies<br />

for Value Based Identification in Object-Oriented Databases, pages 250–292. Idea Group Publishing,<br />

2002.<br />

[Sch77] J. W. Schmidt. Some high level language constructs for data <strong>of</strong> type relation. ACM TODS, 2(3):247–261,<br />

1977.<br />

[Sch94]<br />

[SI91]<br />

K.-D. Schewe. The specification <strong>of</strong> data-intensive application systems. Advanced PhD (Habilitation<br />

Thesis), Br<strong>and</strong>enburg University <strong>of</strong> Technology at Cottbus, Faculty <strong>of</strong> Mathematics, Natural Sciences<br />

<strong>and</strong> Computer Science, 1994.<br />

D.-G. Shin <strong>and</strong> K. B. Irani. Fragmenting relations horizontally using a knowledge-based approach. IEEE<br />

TSE, 17(9):872–883, 1991.<br />

[SS83] G. Schlageter <strong>and</strong> W. Stucky. Datenbanksysteme: Konzepte und Modelle. Teubner, Stuttgart, 1983.<br />

[ST93]<br />

[ST98]<br />

K.-D. Schewe <strong>and</strong> B. Thalheim. Fundamental concepts <strong>of</strong> object oriented databases. Acta Cybernetica,<br />

11(4):49–81, 1993.<br />

K.-D. Schewe <strong>and</strong> B. Thalheim. Readings in object-oriented databases. Reprint, BTU-Cottbus, accessible<br />

through http://www.is.informatik.uni-kiel.de/∼thalheim, Collection <strong>of</strong> papers by C. Beeri, K.-D. Schewe,<br />

J.-W. Schmidt, D. Stemple, B. Thalheim, I. Wetzel, 1998.<br />

[SW05] G. Simsion <strong>and</strong> G.C. Witt. Data modeling essentials. Morgan Kaufmann, San Francisco, 2005.<br />

[Teo89]<br />

T. J. Teorey. Database modeling <strong>and</strong> design: The entity-relationship approach. Morgan Kaufmann, San<br />

Mateo, 1989.<br />

[Tha85] B. Thalheim. Abhängigkeiten in Relationen. PhD thesis, TU Dresden, 1985.<br />

[Tha90] A. Thayse, editor. From modal logic to deductive databases. John Wiley & Sons, vol. 1: 1989, vol. 2:<br />

1990.<br />

[Tha91a] B. Thalheim. Dependencies in relational databases. Teubner, Leipzig, 1991.<br />

[Tha91b] B. Thalheim. Reconsidering key <strong>and</strong> identifier definitions in database models. Technical Report CS - 08<br />

- 91, Rostock University, Computer Science Department, 1991.<br />

[Tha00] B. Thalheim. Entity-relationship modeling – Foundations <strong>of</strong> database technology. Springer, Berlin, 2000.<br />

[TL82] D. Tsichritzis <strong>and</strong> F. H. Lochovsky. Data Models. Prentice-Hall, Englewood Cliffs, 1982.<br />

[Vin94]<br />

M. W. Vincent. The semantic justification for normal forms in relational database design. PhD thesis,<br />

Monash University, Melbourne, 1994.<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 343<br />

[Vos87]<br />

G. Vossen. Datenmodelle, Datenbanksprachen und Datenbank-Management-Systeme. Addison-Wesley,<br />

Bonn, 1987. (2nd edition, 1994).<br />

[VS93a] M. W. Vincent <strong>and</strong> B. Srinivasan. A note on relation schemes which are in 3NF but not in BCNF.<br />

<strong>Information</strong> Processing Letters, 48(6):281–283, 1993.<br />

[VS93b]<br />

[Wan98]<br />

M. W. Vincent <strong>and</strong> B. Srinivasan. Redundancy <strong>and</strong> the justification for fourth normal form in relational<br />

databases. Journal <strong>of</strong> Foundations <strong>of</strong> Computer Science, 4(4):355–365, 1993.<br />

G. Wanner. Entwurf eines objektorientierten Datenbankmodells für relationale Datenbanksysteme. DIS-<br />

BIS 46. infix-Verlag, 1998.<br />

[Wit58] L. Wittgenstein. Philosophical Investigations. Basil Blackwell, Oxford, 1958.<br />

[Yan86] C.-C. Yang. Relational Databases. Prentice-Hall, Englewood Cliffs, 1986.<br />

[YT89]<br />

M. Yaseen <strong>and</strong> B. Thalheim. Practical database design methodologies. Technical report, Kuwait University,<br />

Faculty <strong>of</strong> Science, 1989.<br />

[ZB92] J. Zhou <strong>and</strong> P. Baumann. Evaluation <strong>of</strong> complex cardinality constraints. LNCS 645, pages 24–40,<br />

Karlsruhe, Germany, Oct. 7 - 9, 1992, 1992. Springer, Berlin.<br />

Mod IS IS ADD Web IS

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!