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

1. Einführung 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 />

Dieses Skript ist ein kombiniertes Skript für drei Vorlesungen und wird im Verlaufe des kommenden<br />

Jahres auch um die Vorlesungen <strong>Information</strong> <strong>Systems</strong> Integration, Evolution <strong>and</strong> Migration, Systematische Datenanalyse<br />

und Datenbank-Programmierung ergänzt.<br />

0. Vorbemerkungen<br />

Gebraucht der Zeit, sie geht so schnell von hinnen!<br />

Doch Ordnung lehrt Euch Zeit gewinnen.<br />

Mein teurer Freund, ich rat euch drum<br />

Zuerst Collegium Logicum.<br />

J.W. Goethe, Faust, Erster Teil, Studierzimmer, Mephistopheles<br />

Gründe zum Besuch dieser Vorlesung<br />

Viele in der Industrie fehlgegangene Projekte.<br />

• SAP - am R<strong>and</strong>e des Abgrundes<br />

• Lufthansa-Projekt<br />

• DW - ein hype und eine Riesenenttäuschung<br />

• Fehlerpyramide<br />

• siehe auch St<strong>and</strong>ish Group oder Gartner reports


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 2<br />

• Hartz-IV-Programme, Maut-Probleme<br />

• ...<br />

Material<br />

Hauptreferenzen für alle Vorlesungen<br />

• D. Embley, B. Thalheim. H<strong>and</strong>book <strong>of</strong> Conceptual Modelling. Springer 2011<br />

• B. Thalheim: Entity-Relationship-Modeling. Springer 2000<br />

(rabattierte Exemplare des Bches können über den Lehrstuhl TIS bestellt und ’abgeholt’ werden)<br />

• Preprint 15/2003 der BTU Cottbus (als Ergänzung zur Co-<strong>Design</strong>-Methodik)<br />

• Die Vorlesungen finden im wesentlichen als Tafelvorlesung statt. (Verwendete) Folien werden deshalb nicht im<br />

Netz extra verfügbar sein. Sie sind jedoch über die unten zitierten Foliensammlungen erreichbar.<br />

• Parallel zur Vorlesung Web-<strong>Information</strong>ssysteme wird das Buchprojekt <strong>Design</strong> <strong>and</strong> <strong>Development</strong> <strong>of</strong> Web <strong>Information</strong><br />

<strong>Systems</strong> (K.-D. Schewe, B. Thalheim), das beim Springer-Verlag 2012 veröffentlicht wird, erarbeitet.<br />

Es werden zu diesem Buch Folien zu einem Konferenz-Tutorials entstehen, die verfügbar gemacht werden.<br />

Die folgenden Bücher sind als Ergänzung des St<strong>of</strong>fes sehr gut geeignet:<br />

Joachim Biskup: Grundlagen von <strong>Information</strong>ssystemen, Vieweg, 1995 1<br />

Das Skriptum zu Vorlesungen zu diesem Buch ist abgelegt unter:<br />

http://www.is.informatik.uni-kiel.de/∼thalheim/vorlesungen/biskup/Biskup.pdf<br />

Alfons Kemper, André Eickler: Datenbanksysteme - Eine Einführung, 5. Auflage. Oldenbourg 2003<br />

Die Skripte zur Vorlesung sind abgelegt unter:<br />

http://www.is.informatik.uni-kiel.de/∼thalheim/vorlesungen/kemper/kapitel1.pdf — kapitel 13.pdf<br />

Einige Argumente zum ER-Modell und seinen Erweiterungen<br />

http://www.is.informatik.uni-kiel.de/∼thalheim/HERM/hermdiscussion/HERMdiscussion.html<br />

Ergänzende Literatur<br />

• R. Wieringa. <strong>Design</strong> Methods for reactive systems.<br />

• C. Batini, S. Ceri, S. Navathe. Conceptual database design (der ‘Klassiker’)<br />

• Conolly/Begg. Database solutions.<br />

• D. Dori. Object-process methodology. Springer<br />

• H. Dreßler. Datenbankentwurf (eines der klügsten Praxisbücher) (DAMA)<br />

• Simsio. Data modeling essentials.<br />

• Hay. Data model patterns.<br />

1 Dieses Buch ist leider nicht in der Bibliothek der CAU Kiel vorh<strong>and</strong>en und mittlerweile vergriffen. Es wird trotzdem empfohlen, weil es<br />

eine der bestverst<strong>and</strong>enen Einführungen in die Datenbanktechnologie darstellt. Außerdem ist das Entwurfskapitel einzigartig. Antiquarisch ist<br />

dieses Buch jedoch erhältlich.<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 3<br />

• P. Wise. Metapattern. Addison 2001<br />

• M. Jennings. Universla meta data models.<br />

• Inmon/Zachman/Geiger. Data warehouse <strong>and</strong> the Zachman framework<br />

• M. Brackett. Data resource quality. (ein Praktikerbuch) (DAMA)<br />

• Reingruber/Gregory. Data modeling h<strong>and</strong>book.<br />

• Pascal. Practical issues in database management. (DAMA)<br />

Weitere empfehlenswerte Literaturquellen zu <strong>Information</strong>ssystemen sind:<br />

• Ramesh Elmasri, Sham B. Navathe: Fundamentals <strong>of</strong> Database <strong>Systems</strong> (4nd Edition), Benjamin/Cummings,<br />

Redwood City etc., 2004 (auch in Deutsch)<br />

• Jeffrey D. Ullman, Jennifer Widom: A First Course in Database <strong>Systems</strong>. Prentice-Hall 1997<br />

• Carlo Batini, Stefano Ceri, Shamkant Navathe: Conceptual Database <strong>Design</strong> - An Entity-Relationship Approach,<br />

Addison-Wesley, 1991<br />

• Toby J. Teorey: Database Modeling & <strong>Design</strong>, Morgan Kaufmann, 1998<br />

• Robert J. Muller: Database <strong>Design</strong> for Smarties - Using UML for Data Modeling, Morgan Kaufmann, 1999<br />

• David Harel, Michal Politi: Modeling Reactive <strong>Systems</strong> - the Statemate Approach, McGraw Hill, 1998<br />

• Frank Leymann, Dieter Roller: Production Workflow - Concepts <strong>and</strong> Techniques, Prentice Hall, 1999<br />

Weitere Literatur des Lehrstuhles für alle Vorlesungen<br />

• Co-<strong>Design</strong> von <strong>Information</strong>ssystemen<br />

http://www.is.informatik.uni-kiel.de/∼thalheim/pdffiles/Auckl<strong>and</strong>06CodesignTalk.pdf<br />

http://www.is.informatik.uni-kiel.de/∼thalheim/CodesignPapers.pdf<br />

und Content-Management<br />

http://www.is.informatik.uni-kiel.de/∼thalheim/ContentManagement.pdf<br />

sowie Kollaboration von <strong>Information</strong>ssystemen<br />

http://www.is.informatik.uni-kiel.de/∼thalheim/CollaborationManagement.pdf<br />

• Modell-Engineering<br />

http://www.is.informatik.uni-kiel.de/∼thalheim/ModelEngineering.pdf<br />

• Business Process Modelling <strong>and</strong> Notation<br />

http://www.is.informatik.uni-kiel.de/∼thalheim/BPMN.pdf<br />

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

http://www.is.informatik.uni-kiel.de/∼thalheim/WIS.pdf<br />

Einige Vorträge des Lehrstuhles<br />

2008: http://www.is.informatik.uni-kiel.de/∼thalheim/BThalheim2008Talks.pdf<br />

2009: http://www.is.informatik.uni-kiel.de/∼thalheim/BetaAllTalks2009.pdf<br />

2010: http://www.is.informatik.uni-kiel.de/∼thalheim/BetaAllTalks2010.pdf<br />

Vorsicht: Files sind etwas größer!<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 4<br />

LaTex und ER-Diagramme<br />

Das Zeichnen von ER-Diagrammen ist einfach, wenn man sich in der LaTex-Umgebung bewegt. Es gibt zwei Sourcen:<br />

http://www.svenies-welt.de/?page id=26<br />

http://www.is.informatik.uni-kiel.de/∼thalheim/bilder.sty<br />

Werkzeuge für den Entwurf<br />

DBMain<br />

ERWin<br />

Silverrun<br />

RADD (ist leider nicht mehr betreibbar, dank Solaris). Unterstützt aber Co-<strong>Design</strong><br />

Werkzeuge für die Funktionalität<br />

Advantage Modeler (das ausgerefteste BPMN Werkzeug)<br />

VisualSQL (unsere Eigenentwicklung sowohl unter Java als auch .Net<br />

http://www.informatik.uni-kiel.de/en/information-systems-engineering/<br />

miscellaneous/visualsql/<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 5<br />

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

Beschreibung<br />

Es werden ausgehend von der Erfassung und Beschreibung des Anwendungsbereiches Problembeschreibungen abgeleitet,<br />

mit denen eine Exploration des Lösungsraumes vorgenommen und entsprechende Anforderungen abgeleitet<br />

werden können. Es werden weitere moderne Modellierungskonzepte zur Modellierung von Strukturierung, Funktionalität<br />

und Interaktivität eingeführt und detailliert analysiert.<br />

Die Betrachtung dieser Modellierungsmethoden dient dazu, Sicherheit bei ihrer Anwendung zu gewinnen und<br />

Vorgehensweisen und Heuristiken zu beschreiben und kritisch zu bewerten.<br />

Themen<br />

Die Vorlesung betrachtet den Entwicklungsprozeß für <strong>Information</strong>ssystemanwendungen als ganzheitlichen Prozeß<br />

auf der Grundlage der Co-<strong>Design</strong>-Methodik, die eine Spezifikation der Strukturierung, Funktionalität, Interaktivität<br />

und Verteilung von Anwendungen unterstützt. Es werden daneben auch Methoden des Projektmanagement im Detail<br />

eingeführt und praktiziert.<br />

Lehrziel<br />

Die Studenten beherrschen nach der Vorlesung und den praktikumsorientierten Übungen die wesentlichen Methoden<br />

zur Modellierung von Strukturen von <strong>Information</strong>ssystemen, deren Semantik,zur Modelllierung und Umsetzung von<br />

Datenbankfunktionalität und zur Kollaboration von Systemen und Benutzern. Sie können entwickelte Schemata umsetzen<br />

und in entsprechenden Umgebungen realisieren. Die Studierenden sind in der Lage, selbständig einen Anwendungsbereich<br />

mit seinen Probleme, Beschränkungen, Risiken und Möglichkeiten zu analysieren und dafür wichtige<br />

Probleme einer adäquaten Lösung durch eine <strong>Information</strong>ssystem zuzuführen. Sie kennen wesentliche Techniken zur<br />

Modellierung von Strukturierung, Funktionalität und Interaktivität und zur Umsetzung dieser Modelle in aktuellen<br />

Systemumgebung. Die Studierenden sollen aktuelle angew<strong>and</strong>te Technologien (EJBs, SOA etc.) ebenso kennen wie<br />

aktuelle Forschungsschwerpunkte, z.B. Modelltransformationen zur Erzeugung von S<strong>of</strong>tware-Prototypen.<br />

Inhaltliche Voraussetzungen:<br />

Die Vorlesung stellt die wesentlichen Herangehensweisen für die Entwicklung von Strukturierung, Funktionalität<br />

und Interaktivität von <strong>Information</strong>ssystemen vor. Es werden vorlesungsbegleitend zwei große und komplexe Anwendungen<br />

vorgestellt. Die Studierenden entwickeln selbständig Schemata für Strukturierung, Funktionalität und<br />

Interaktivität einer webbasierten Anwendung ausgehend von der Analyse eines Anwendungsgebietes, der Ableitung<br />

entsprechender Entwicklungsanforderungen und der Entwicklung einer adäquaten Architektur. Diese Lösung wird<br />

mit entsprechenden Werkzeugen innerhalb einer Systemumgebung realisiert.<br />

Zentrale Literatur für diese Vorlesung<br />

D. Embley, B. Thalheim. H<strong>and</strong>book <strong>of</strong> Conceptual Modelling. Springer 2011 (Kapitel 6, 4, 5, 7, 8)<br />

B. Thalheim. Entity-relationship modeling. Springer 2008.<br />

Weitere Literatur für diese Vorlesung<br />

A. M. Langer. <strong>Analysis</strong> <strong>and</strong> <strong>Design</strong> <strong>of</strong> <strong>Information</strong> <strong>Systems</strong>. Springer 2008.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 6<br />

Abschlußbedingungen:<br />

Ein Übungsschein wird ausgegeben bei:<br />

(1) 90 % aller Übungsblätter, die mit mindestens 50 % erfüllt sind<br />

(2) erfolgreiches vorlesungsbegleitendes Projekt<br />

Studenten, die einen Übungsschein benötigen, müssen sich in der ersten Übung definitiv einschreiben. Einschreibungen<br />

danach werden nicht mehr berücksichtigt. Am Ende der Vorlesungsperiode wird eine Klausur angeboten,<br />

die keine Zulassungsvoraussetzungen hat, die sich aber in starkem Maße auf alle (30) Vorlesungen und auf alle (12)<br />

Übungen stützt.<br />

Benutzte Systemumgebungen:<br />

Oracle Developer 2000<br />

DB2, Sybase und Oracle als Systeme<br />

ERWin<br />

Silverrun (Mahagony)<br />

DBMain<br />

Advantage Modeler<br />

Zeit und Ort:<br />

siehe UnivIS<br />

Übungen durch Team des Lehrstuhles koordiniert durch Dipl.Inf. Kai Jannaschk und Dipl.Inf. Ove Sörensen<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 7<br />

Vorlesungsbegleitendes Projekt:<br />

Erstellen einer informationsintensiven Website mit entsprechender Pflege des Inhaltes, Storyboarding<br />

Eine E-Health-Anwendung<br />

siehe auch eine Einführung in Kapitel<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 8<br />

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

Kurzfassung<br />

Die Vorlesung betrachtet den Entwicklungsprozeß für <strong>Information</strong>ssystemanwendungen als ganzheitlichen Prozeß<br />

auf der Grundlage der Co-<strong>Design</strong>-Methodik, die eine Spezifikation der Strukturierung und Funktionalität, sowie<br />

im weiteren Interaktivität und Verteilung von Anwendungen unterstützt. Es werden daneben auch Methoden des<br />

Projektmanagement im Detail eingeführt und praktiziert.<br />

Lernziele<br />

Die Studierenden verfügen über grundlegende Kenntnisse der Stärken und Schwächen verschiedener Modellierungsansätze<br />

und ihrer Anwendungsmöglichkeiten. Sie verstehen die Grundlagen von Datenbankmodellen und deren historischer<br />

Entwicklung, können DBMS basierend auf erweiterten Datenbankmodellen einsetzen und haben eine Befähigung<br />

zum Entwurf und zur Entwicklung einer Datenbank mit Hilfe erweiterter Datenbankmodelle.<br />

Lehrinhalte<br />

Modellierung ist im Kontext von <strong>Information</strong>ssystemen ist für viele Aspekte von zentraler Bedeutung z.B. für die Entwicklung<br />

von Systemen, umfaßt das Verstehen der Funktionalität der Systeme und berücksichtigt die Unterstützung<br />

der Wartung und der Weiterentwicklung. Es werden in dieser Vorlesung die wesentlichen Aspekte der Datenbanksystemund<br />

<strong>Information</strong>ssystemmodelliering vorgestellt.<br />

Voraussetzungen<br />

<strong>Information</strong>ssysteme, S<strong>of</strong>twaretechnik<br />

Lehr- und Lernmethoden<br />

Vorlesung und anwendungsorientierte Übungen<br />

Verwendbarkeit<br />

Modul innerhalb des Wirtschaftsinformatik-Studienganges<br />

Lehrsprache<br />

Deutsch, ggf. Englisch<br />

Zentrale Literatur für diese Vorlesung<br />

D. Embley, B. Thalheim. H<strong>and</strong>book <strong>of</strong> Conceptual Modelling. Springer 2011 (Kapitel 3, 4, 5)<br />

B. Thalheim. Entity-relationship modeling. Springer 2008.<br />

Weitere Literatur für diese Vorlesung<br />

John Carlis <strong>and</strong> John Magure. Mastering data modeling - A user-driven approach. Addison Wesley, 2001.<br />

Terry Halpin. <strong>Information</strong> modeling <strong>and</strong> relational databases. Morgan Kaufmann, 2001.<br />

Bernhard Rumpe. Modellierung mit UML. Springer, 2004.<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 9<br />

Vorlesungsbegleitendes Projekt:<br />

Erstellen einer informationsintensiven Website mit entsprechender Pflege des Inhaltes, Storyboarding<br />

Eine E-Commerce-Anwendung (Cottbus Interaktiv)<br />

Übersicht über Komponenten der Anwendung<br />

1. Personen, Rollen und Beziehungen<br />

2. Kontakte für E-Commerce-Anwendungen<br />

3. Beschreibung des Benutzer-Logins<br />

4. Objekte in Web-Inhalten<br />

5. Beschreibung des Bedarfs von Parteien<br />

6. Beschreibung der Subskriptionen<br />

7. Modellierung der Web-Benutzung<br />

Auswertungsschemata<br />

1. Auswertung der Besuche<br />

2. Benutzer-Pr<strong>of</strong>ile<br />

3. Abrechnung für kostenpflichtige Inhalte<br />

Teil 1<br />

Personen, Rollen und Relationships<br />

Personen und Organisationen als Partei<br />

Modellierung als Spezialisierungshierarchie<br />

agieren (als Relationship-Typ)<br />

in Rollen für Person : Webmaster<br />

Employee<br />

für Organisation : ISP<br />

Supplier<br />

Interne Org.<br />

für SW-Agent : Hosting Server<br />

in Beziehungsrolle : Besucher<br />

Kunde<br />

möglicher Kunde (Prospekt)<br />

Subscriber<br />

Konsultant<br />

und unterschiedl. Ausprägungen der Beziehungen<br />

z.B. Webmaster-Auftrag<br />

Besucher - ISP<br />

Host-Server-Besucher<br />

mit Attributen (Von, Bis, Kommentar).<br />

Teil 2<br />

Kontakte für E-Commerce-Anwendungen<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 10<br />

Möglichkeiten mit Partei Kontakt aufzunehmen<br />

über<br />

Postadresse (u. Liste)<br />

Telefonnummer<br />

Elektronische Adresse (email oder web oder IP)<br />

mit Kontakt-Mechanismus-Typ,<br />

wobei Kontakte aufein<strong>and</strong>er verweisen können.<br />

Der Kontaktmechanismus ist eine Beziehung zwischen<br />

Partei(en) und<br />

den Kontaktmöglichkeiten<br />

unter Berücksichtigung des Partei-Rollen-Typs<br />

Kontakte dienen einem Ziel (als Beziehung zwischen<br />

Ziel-Typ und dem Kontaktmechanismus.<br />

Fast alle Beziehungen sind zeitlich begrenzt.<br />

Teil 3<br />

Beschreibung des Benutzer-Logins<br />

Nutzer haben Zugriff auf Web-Content<br />

in unterschiedlichen Rollen (Gast, ...)<br />

und sind Partei(en).<br />

Es wird der Zugriff als Zugriffsgeschichte erfasst.<br />

Nutzern werden Präferenzen je nach Präferenz-Typ zugeordnet.<br />

Für Parteien wird je nach Web-Content-Rollen-Typ eine Web-Content-Rolle benutzt, um Beziehung zum Web-<br />

Content herzustellen.<br />

Web Content ist charakterisiert durch entsprechende<br />

Web-Adressen, den Web-Content-Typ<br />

sowie den Web-Content-Status-Typ.<br />

Es gibt außerdem je nach Funktionstyp<br />

Beziehungen zwischen Web-Content.<br />

Es sind entsprechend adäquate Attribute hinzuzufügen und alle Kardinalitätsabhängigkeiten auszuspezifizieren.<br />

Teil 4<br />

Objekte in Web-Inhalten<br />

Web-Inhalte (Content) bestehen aus Objekten (die in diesen verwendet werden).<br />

Objekte können Parteien zugeordnet sein in unterschiedlichen Zuordnungstypen.<br />

Objekte sind charakterisiert durch Namen, Beschreibung und URI. Sie können Text-Objekte sein, Bildobjekte,<br />

Video-Objekte, Audio-Objekte oder sonstige Objekte. Der Objekt-Typ wird separat beschrieben.<br />

Einige Objekte sind Produkte.<br />

Produkte besitzen Hauptmerkmale. Der Hauptmerkmals-Typ ist einfach charakterisiert durch eine Identifikation und<br />

durch eine Beschreibung.<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 11<br />

Diese Hauptmerkmale sind auch Objekten zugeordnet.<br />

Objekte sind mit <strong>and</strong>eren Objekten in unterschiedlicher Art und Weise assoziiert. Assoziationen können didaktisch,<br />

inhaltlich oder vom Kontakt her determiniert sein.<br />

Produkte sind kategorisiert anh<strong>and</strong> einer Kategorie-L<strong>and</strong>karte.<br />

Teil 5<br />

Bedarf von Parteien<br />

Parteien (insbesondere Kunden mit den Teiltypen) haben einen Bedarf, der<br />

klassifiziert wird durch einen Bedarfstyp (mit Identifikation und einer Beschreibung),<br />

auf Produkte (mit Identifikation und Kategorisierung orientiert),<br />

durch Kommunikationsereignisse, die durch eine Identifizierung, eine Startzeit und<br />

optimale Endzeichen und Kommentare beschrieben sind, verweist und<br />

durch Clicks zu einem Zeitpunkt auf Webcontent einen Zugriff indiziert.<br />

Teil 6<br />

Subskriptionen<br />

Ein Benutzer kann in der Rolle des Abonnenten (Subscriber) auftreten. Er bestellt i.A. ein<br />

Produkt oder eine Produktpalette (ab einem Zeitpunkt, mit einem Bestelldatum, mit<br />

weiteren Anmerkungen).<br />

Eine Subskription wird durch eine Subskriptionsabwicklung erfüllt. Die Subskriptionsabwicklung folgt dem Subskriptionstyp<br />

der Subskription oder kann auch einem eigenständigen folgen. Es wird geliefert an einen Kontaktmechanismus<br />

je nach Parteienbedarf und Subskription.<br />

Eine Abwicklung kann auch stückweise durch eine Lieferliste erfolgen.<br />

Kennzeichen von Elementen einer Lieferliste oder auch Gesamtabwicklungen sind Anzahl, Preis/ Einheit, Vereinbarungspreis,<br />

vorläufiges Zustelldatum, Zustellinstruktionen, ein Laufzettel und weitere Kommentare.<br />

Teil 7<br />

Modellierung der Web-Benutzung<br />

Die Web-Benutzung wird charakterisiert mit dem Zachman-Pattern<br />

wer-wann-was-womit-worauf-mit welchem Vertrag,<br />

d.h. durch<br />

ein User login mit der User ID, dem aktuellen Benutzer, seinem Paßwort,<br />

eine Session bzw. einen Besuch auf eine Webadresse<br />

mit einer ID, einem Beginn, einem optionalen Ende, einer Aufzeichnung<br />

wie z.B. einem Cookie<br />

einen Content,<br />

einem Benutzeragenten,<br />

einer identifizierten IP-Adresse bzw. einer referenzierten Web-Adresse<br />

und einem Server-Hit-Typ<br />

sowie durch die Traffic-Parameter Zeit, Anzahl Bytes.<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 12<br />

Ein Benutzeragent ist ein virtuelles Objekt, das charakterisiert ist durch eine Plattform (mit<br />

ID, Name, Version), einen Browser-Typ (mit ID, Name, Version, einen Agentenmethoden-<br />

Typ (mit ID und Beschreibung) sowie einen Agenten-Typ (mit ID und Beschreibung) und<br />

einen Protokoll-Typ (ID, Beschreibung)).<br />

Man beachte, daß sowohl Web-Adresse als auch ID-Adresse Spezialisierungen von elektronischen<br />

Adressen sind als auch letztere eine Spezialisierung von Kontaktmechanismus ist.<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 13<br />

Abschlußbedingungen:<br />

Ein Übungsschein wird ausgegeben bei:<br />

(1) 90 % aller Übungsblätter, die mit mindestens 50 % erfüllt sind<br />

(2) erfolgreiches vorlesungsbegleitendes Projekt<br />

Studenten, die einen Übungsschein benötigen, müssen sich in der ersten Übung definitiv einschreiben. Einschreibungen<br />

danach werden nicht mehr berücksichtigt. Am Ende der Vorlesungsperiode wird eine Klausur angeboten,<br />

die keine Zulassungsvoraussetzungen hat, die sich aber in starkem Maße auf alle (30) Vorlesungen und auf alle (12)<br />

Übungen stützt.<br />

Benutzte Systemumgebungen:<br />

Oracle Developer 2000<br />

DB2, Sybase und Oracle als Systeme<br />

ERWin<br />

Silverrun (Mahagony)<br />

DBMain<br />

Advantage Modeler<br />

Zeit und Ort:<br />

siehe UnivIS<br />

Übungen durch Team des Lehrstuhles koordiniert durch Dipl.Inf. Kai Jannaschk und Dipl.Inf. Ove Sörensen<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 14<br />

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

Kurzfassung<br />

In der Vorlesung wird in die Entwicklung von Web-<strong>Information</strong>ssystemen, das Storyboarding von Web-Anwendungen<br />

und die Entwicklung von e-Business, edutainment, infotainment, community und identity websites eingeführt. Es<br />

werden die wesentlichen Spezifikations- und Programmiertechniken eingeführt. Ziel der Vorlesung ist es, Kenntnisse<br />

über Grundlagen und weitergehende Methoden und Techniken des Web Engineering zu vermitteln.<br />

Lernziele<br />

Die Studierenden werden mit dem Einsatz von <strong>Information</strong>ssystemen in Web-Anwendungen bekannt gemacht. Sie<br />

sind in der Lage, Web-<strong>Information</strong>ssysteme für Anwendungen schrittweise zu entwickelt, Datenbanksysteme in<br />

<strong>Information</strong>ssystem-Anwendungen einzubetten und dafür aufzubereiten und geeignete Realisierungsvarianten und<br />

Architekturen auszuwählen. Die Studierenden haben einen Überblick über die derzeit vorh<strong>and</strong>enen und gebräuchlichen<br />

Lösungen und können damit ihre persönliche <strong>Information</strong>sumgebung besser nutzen und gestalten. Nach Abschluss<br />

des Modules besitzenden die Studierenden detailierte Kenntnisse über existierende Ansätze, Technologien<br />

und Systeme und sind in der Lage auf diesen Grundkenntnissen aufbauend, selbst webbasierte Systeme zu entwerfen<br />

und zu gestalten.<br />

Lehrinhalte<br />

Das Modul beh<strong>and</strong>elt die Disziplin des Web Engineering. Im Vordergrund stehen Vorgehensweise und Methoden, die<br />

zu einer systematischen Konstruktion webbasierter Anwendungen und Systeme führen, wobei auf dedizierte Phasen<br />

und Aspekte des Lebenszyklus eingegangen wird. Das Phänomen “Web” wird dabei aus unterschiedlichen Perspektiven<br />

wie Web <strong>Design</strong>er, Analysten, Architekten oder Ingenieuren betrachtet. Es werden Methoden vorgestellt, mit<br />

denen Web-Anwendungen systematisch aufgesetzt, betrieben, gewartet und erweitert werden können. Darüber hinaus<br />

werden Beispiele aufgezeigt, welche die Notwendigkeit für die agile Ausrichtung von Teams, Prozessen und<br />

Technologien aufzeigen.<br />

Voraussetzungen<br />

<strong>Information</strong>ssysteme, S<strong>of</strong>twaretechnik, Programmierung<br />

Prüfungsleistung<br />

WIS-Projekt mit anschließender Verteidigung<br />

Lehr- und Lernmethoden<br />

Es werden in der Vorlesung Sprachen der Entwicklung eingeführt, im Detail vorgeführt und gemeinsam mit den<br />

Studierenden erprobt. In der Übung erarbeiten die Studierenden ein Storyboard und eine prototypische Lösung für<br />

eine Anwendungsaufgabe. Das Übungspraktikum wird in Kleingruppen durchgeführt.<br />

Verwendbarkeit<br />

Akzentmodul in der Säule: Entwicklung und Management von <strong>Information</strong>ssystemen<br />

Web IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 15<br />

Zentrale Literatur für diese Vorlesung<br />

D. Embley, B. Thalheim. H<strong>and</strong>book <strong>of</strong> Conceptual Modelling. Springer 2011 (Kapitel 10,11)<br />

B. Thalheim. Entity-relationship modeling. Springer 2008.<br />

Weitere Literatur für diese Vorlesung<br />

G. Alonso, F. Casati, H. Kuno, V. Machiraju, Web Services, Springer Verlag, 2003<br />

Web IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 16<br />

Vorlesungsbegleitendes Projekt<br />

Erstellen einer informationsintensiven Website mit entsprechender Pflege des Inhaltes, Storyboarding<br />

Eine Edutainment-Anwendung<br />

Web IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 17<br />

Abschlußbedingungen:<br />

Ein Übungsschein wird ausgegeben bei:<br />

(1) 90 % aller Übungsblätter, die mit mindestens 50 % erfüllt sind<br />

(2) erfolgreiches vorlesungsbegleitendes Projekt<br />

Studenten, die einen Übungsschein benötigen, müssen sich in der ersten Übung definitiv einschreiben. Einschreibungen<br />

danach werden nicht mehr berücksichtigt. Am Ende der Vorlesungsperiode wird eine Klausur angeboten,<br />

die keine Zulassungsvoraussetzungen hat, die sich aber in starkem Maße auf alle (30) Vorlesungen und auf alle (12)<br />

Übungen stützt.<br />

Benutzte Systemumgebungen:<br />

Oracle Developer 2000<br />

DB2, Sybase und Oracle als Systeme<br />

ERWin<br />

Silverrun (Mahagony)<br />

DBMain<br />

Advantage Modeler<br />

Zeit und Ort:<br />

siehe UnivIS<br />

Übungen durch Team des Lehrstuhles koordiniert durch Dipl.Inf. Kai Jannaschk und Dipl.Inf. Ove Sörensen<br />

Web IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 18<br />

Literatur und Pr<strong>of</strong>il des Lehrstuhles<br />

Unsere Kompetenz<br />

Kompetenz des Lehrstuhles<br />

• Modellierungserfahrung seit 1985<br />

• größte Schematabibliothek<br />

• SAP-Sabbatical<br />

• Rückkopplung international: DAMA und ER<br />

• Extra-Website zum erweiterten ER-Modell:<br />

http://www.is.informatik.uni-kiel.de/∼thalheim/HERM.htm<br />

• Kapitel 4 aus dem H<strong>and</strong>book<br />

http://www.is.informatik.uni-kiel.de/∼thalheim/HERMH<strong>and</strong>book.pdf<br />

Literatur für alle Vorlesungen<br />

D. Embley, B. Thalheim. H<strong>and</strong>book <strong>of</strong> Conceptual Modelling. Springer 2011 (Kapitel 6, 4, 5, 7, 8)<br />

B. Thalheim. Entity-relationship modeling. Springer 2008.<br />

HERM ’bible’<br />

H<strong>and</strong>book<br />

Practical Database <strong>Design</strong> Methodologies.<br />

Kuwait University<br />

Press, 1989<br />

Web IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 19<br />

Instead <strong>of</strong> a Personal Pr<strong>of</strong>ile: Editing (until 2011)<br />

ADBIS ASM CM EJC e-Bus. ER<br />

FoIKS MFDBS NLDB Semantics WIS WISE<br />

i.e., almost reaching the big triple ”3”s (3, 30, 300)<br />

(3 (habilitation students, pr<strong>of</strong>s, books), 30 (PhD students, editorials, projects), 300 (master/diploma students 200, papers, presentations))<br />

Instead <strong>of</strong> a Personal Pr<strong>of</strong>ile: General (until 2011)<br />

Source: http://dblp.uni-trier.de/ und http://www.wordle.net/<br />

Instead <strong>of</strong> a Personal Pr<strong>of</strong>ile: My Co-Authors (until 2011)<br />

Source: http://dblp.uni-trier.de/ und http://www.wordle.net/<br />

Web IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 20<br />

Most Cited Papers (h ≥ 25) (until 2011)<br />

Source: http://quadsearch.csd.auth.gr/index.php?lan=1&s=2 und http://www.wordle.net/<br />

Web IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 21<br />

1 Einführung<br />

Denn eben, wo Begriffe fehlen,<br />

Da stellt ein Wort zur rechten Zeit sich ein.<br />

Mit Worten läßt sich trefflich streiten,<br />

Mit Worten ein System bereiten,<br />

An Worte läßt sich trefflich glauben,<br />

von einem Wort läßt sich kein Jota rauben.<br />

J.W. Goethe, Faust, Erster Teil, Studierzimmer, Mephistopheles<br />

In der ersten einführenden Vorlesung werden Spezifika, Probleme und Lösungsmethodiken der Entwicklung<br />

großer <strong>Information</strong>ssysteme beleuchtet, die Separation von Gesichtspunkten für <strong>Information</strong>ssysteme und darauf aufbauend<br />

eine Herangehensweise zur Begleitung von Entwicklungsprojekten vorgestellt und das Abstraktionsschichtenmodell,<br />

das eine systematische und integrierte Entwicklung aller Aspekte von <strong>Information</strong>ssystemanwendungen<br />

erlaubt, eingeführt. Die Themen der einführenden Vorlesungen werden in den späteren Übungen vertieft.<br />

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

1.1.1 Ausgangslage<br />

Modellierung ist ein iterativer Prozeß, d.h. die Entwicklung eines konzeptuellen Schemas erfolgt in iterativen Verfeinerungsund<br />

Restrukturierungsschritten<br />

dies gilt auch dann, wenn das konzeptuelle Schema durch die Abbildung eines konzeptuellen Vorentwurfsschemas<br />

entst<strong>and</strong>en ist<br />

siehe schrittweise Entwicklung, wesentliche Phasen<br />

Anhaltspunkte (Faustregeln) für diese Schritte erforderlich, um Konsistenz zu erhalten<br />

Transformationsregeln<br />

1.1.2 Besonderheiten bei der Modellierung von <strong>Information</strong>ssystemen<br />

Ich bin nicht ihr bester Freund.<br />

Ich bin ihr einziger Freund!<br />

Danny DeVito in Das Geld <strong>and</strong>erer Leute<br />

Datenbank- und <strong>Information</strong>ssysteme sind heute integrierte, eingebettete oder selbständige Anwendungen und<br />

integraler Best<strong>and</strong>teil der Infrastruktur von vielen Betrieben. Meist wird zwischen diesen Systemtypen nicht unterschieden.<br />

Wir wollen im weiteren jedoch Datenbanksysteme als die Hauptkomponente von <strong>Information</strong>ssystemen<br />

auffassen. <strong>Information</strong>ssysteme verfügen außerdem über eine Reihe von Anwendungsschnittstellen im Rahmen von<br />

Präsentationssystemen. Ein Datenbanksystem umfaßt wiederum ein Datenbank-Management-System (DBMS) und<br />

eine Reihe von Datenbanken. <strong>Information</strong> umfaßt immer eine Deutung von Daten. <strong>Information</strong> ist aus unserer Sicht<br />

nicht einfach ‘Mikro’-Wissen oder eine Menge von Daten. Wir unterschieden zwischen<br />

dem Datum als Folge von Symbolen,<br />

Nachrichten als übermittelte Daten,<br />

dem Wissen als validierter, wahrer Glaube bzw. zusammengefaßte, kondensierte Fakten (Daten) und Regeln und<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 22<br />

<strong>Information</strong>en als gedeutete Nachrichten, Daten oder Mitteilungen, die ein Empfänger mit bestimmten Regeln<br />

intuitiv oder explizit auswählt innerhalb eines Kontextes, verarbeitet und in seinen <strong>Information</strong>s-, Daten- bzw.<br />

Wissensbest<strong>and</strong> integriert.<br />

Darauf aufbauend sind verschiedene Entwurfsszenarios möglich:<br />

Datenstrukturgetriebener Entwurf: Es wird zuerst die Struktur der Anwendung dargestellt, darauf aufbauend die<br />

Funktionalität und die Interaktion. Dieser Zugang wird am häufigsten im <strong>Information</strong>ssystementwurf angew<strong>and</strong>t.<br />

Prozeßorientierter Entwurf: Es werden zuerst die Prozesse und die erwünschte Funktionalität der Anwendung<br />

dargestellt und auf dieser Grundlage die Struktur und Interaktion. Dieser Zugang wird im Rahmen der S<strong>of</strong>twaretechnologie<br />

angew<strong>and</strong>t, er ist aber für den Datenbankentwurf in dieser Ausprägung wenig sinnvoll.<br />

Architekturdominierter Entwurf: Es wird zuerst ein “Bauplan” des <strong>Information</strong>ssystemes anh<strong>and</strong> der Anwendung<br />

abgeleitet. Die Architektur basiert auf Komponenten und Assoziationen zwischen den Komponenten. Es werden<br />

die einzelnen Komponenten unter Berücksichtigung ihrer Assoziationen und daraus entstehender Obligationen<br />

entwickelt.<br />

Interaktionszentrierter Entwurf: Es wird zuerst der Interaktionsraum oder der Storyraum modelliert und daraus<br />

werden dann Anforderungen an die Strukturierung und Funktionalität abgeleitet. Diese Anforderungen führen<br />

zur Ableitung des Anwendungssystemes.<br />

Weitere Strategien sind möglich, wie z.B. parallele Entwicklung verschiedener Konzepte bzw. Teilkonzepte.<br />

Orthogonal dazu sind verschiedene Unabhängigkeitskonzepte möglich:<br />

Unabhängigkeit des Endnutzers von spezifischer konzeptueller Repräsentation<br />

Unabhängigkeit der Repräsentation der Implementierung.<br />

Diese Unabhängigkeitskonzepte sind an der Vorgehensweise zur Implementation und der 3-Ebenen-Architektur (Endnutzerebene,<br />

Konzeptionelle Ebene, Implementationsebene) orientiert.<br />

Im Datenbankentwurf wird die Struktur, Funktionalität und Semantik einer Datenbankanwendung so spezifiziert,<br />

daß die infragekommende Anwendung auf einer Plattform bzw. einem Datenbankverwaltungssystem (DBMS)<br />

effizient verwaltet und bearbeitet sowie in benutzerfreundlicher Form dargestellt werden kann. Damit ist neben<br />

der Speicherkomplexität und der Verarbeitungskomplexität auch die Einfachheit der Benutzung zu optimieren. Diese<br />

Aufgabe ist sehr komplex. Aufgrund dieser Komplexität tendieren viele Entwurfsmethodiken zu einem Teilentwurf<br />

oder einem partiellen Entwurf. Oft wird nur die Struktur einer Anwendung entworfen. Die Semantik wird z.T. als<br />

intuitiv erklärt vorausgesetzt. Es wird dann angenommen, daß - auf der Grundlage der aus der Struktur ableitbaren<br />

generischen Operationen und Transaktionen - jede Funktion auch in einfacher Form dargestellt und entwickelt<br />

werden kann. Da 4GL-Sprachen eine benutzerfreundliche Notation nachgesagt und deshalb eine Benutzeroberfläche<br />

nicht entwickelt wird, ist ein Datenbanksystem nach wie vor extrem benutzerunfreundlich. Viele DBMS erlauben<br />

deshalb die Erstellung von sichtenbasierten Formularen bzw. Menüs. Aufgrund dieser Vorgehensweise wird durch<br />

die Struktur einer Anwendung die gesamte Funktionalität und Benutzbarkeit durch den Strukturentwurf dominiert.<br />

Der Datenbankentwurf ist Best<strong>and</strong>teil jedes Datenbankkurses. Zwischen 30 und 50 % des Umfanges von Datenbankbüchern<br />

werden diesem Teil gewidmet. Oft wird z.B. in der folgenden Reihenfolge vorgegangen: Struktur des<br />

Entwurfsprozesses, Anforderungsanalyse, Modellierung mit dem Entity-Relationship-Modell, relationale Modellierung<br />

und Normalisierung, objekt-orientierte Modellierung, Sichtenentwurf, Übersetzung in logische Datenmodelle,<br />

physischer Entwurf, verteilte Datenbanken, Tuning und Optimierung. Eine Methodologie für den Datenbankentwurf<br />

ist damit jedoch nicht gegeben. Eine Methodik 2 wird allerdings durch die Reihenfolge der Kapitel vorgegeben.<br />

2 Eine Methodik, die auf der strukturellen Rekursion aufsetzt, besteht i.a. aus drei Best<strong>and</strong>teilen: einer Sprache zur Darstellung der Urteile<br />

(Entwurfsurteile), einer Menge von Regeln zur Konstruktion neuer Urteile und einer Menge von Konsistenzregeln, mit denen falsche<br />

Konstruktionen ausgesondert werden können. Eine Entwurfsentscheidung geht meist als Urteil über die darzustellende Realität ein.<br />

und<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 23<br />

Diese <strong>of</strong>t empfohlene, aber den Entwerfer grausam überfordernde Methodik bedeutet, für jeden Schritt ein <strong>and</strong>eres<br />

Modell zu verwenden: für die Anforderungsanalyse ein Fragment der natürlichen Sprache, für den Strukturentwurf<br />

das Entity-Relationship-Modell, für den Semantikentwurf das relationale Modell, für den operationalen Entwurf eine<br />

Methodik der S<strong>of</strong>twaretechnologie, für den physischen Entwurf verschiedene Datenstrukturen, für das Tuning ein<br />

operationales Modell etc. Die Beschränkung ist nicht nur, daß kaum jem<strong>and</strong> alle diese Modelle im Detail beherrscht<br />

und filigran anwenden kann, sondern das damit verbundene Abbildungs- und Konsistenzproblem. Man entwirft mit<br />

einem Modell, setzt diesen Entwurf im <strong>and</strong>eren Modell fort und muß die bisherigen Resultate in das <strong>and</strong>ere Modell<br />

transformieren. Dabei geht meist bereits entwickeltes Entwurfswissen verloren und muß neu entwickelt werden. Hier<br />

verwenden wir dagegen durchgehend ein erweitertes Entity-Relationship-Modell, das es gestattet, das vollständige<br />

Entwurfswissen in nur einem Modell darzustellen. Die Transformation auf die logischen und physischen Modelle<br />

ist bereits seit längerer Zeit vollständig erforscht. Diese Transformation kann uns ein Entwurfswerkzeug vollständig<br />

abnehmen.<br />

Wenige geübte Datenbankentwerfer sind in der Lage, beim Strukturentwurf auch die Funktionalität, die Benutzbarkeit<br />

und die Effizienz in Einklang zu bringen. Diese ‘Genialität’ wird jedoch nur in jahrelangem Training erworben<br />

und ist spätestens bei einer Modifikation der Anwendung, die bereits meist nach kurzer Einführungszeit erfolgt, zum<br />

Scheitern verurteilt. Deshalb benötigen wir eine Entwurfsmethodik, die Struktur, Funktionalität, Benutzbarkeit und<br />

Effizienz in gleichem Maße berücksichtigt.<br />

Die Qualität von Schemata wird bestimmt durch:<br />

1. Für den Benutzer:<br />

Natürlichkeit impliziert ein einfaches Verstehen und einfaches Formulieren von Anfragen. Deshalb ist für die<br />

Akquisition die Darstellung semantischer Einheiten von zentralem Interesse. Schemata werden<br />

leicht lesbar und selbsterklärend, wobei enkryptische Namen vermieden werden und die Bedeutung einfach<br />

erhalten werden kann. Dadurch werden Integritätsbedingungen in verständlicher Form formulierbar<br />

und künstliche abstrakte Typen vermieden.<br />

Minimalität impliziert ein eindeutiges Verstehen der Komponenten des Schemas. Unterschiedliche Gesichtspunkte<br />

werden vermieden. Ein Schema ist konzeptuell minimal, wenn nicht alle möglichen Teilfälle,<br />

sondern nur die relevanten dargestellt werden.<br />

Sichtendarstellung für einzelne Benutzergruppen unterstützt die Verständlichkeit und die Benutzbarkeit des<br />

Schemas.<br />

Systemunabhängigkeit und das Ausschließen unnatürlicher Systembeschränkungen ermöglichen eine Konzentration<br />

auf die inhaltlichen Konzepte der Anwendung.<br />

Verständliche Darstellung komplexer Zusammenhänge vereinfacht das Erfassen und Verstehen komplexer<br />

Integritätsbedingungen und eine hohe Anzahl von Integritätsbedingungen.<br />

Ein Verständnis der Speicherung gibt dem Benutzer einen intuitiven Überblick über die Implementation<br />

der Datenbank.<br />

2. Für die Unterstützung durch das System:<br />

Wenig oder keine Redundanz verringert den Pflegeaufw<strong>and</strong>, der durch das System zu leisten ist. Damit<br />

werden Inkonsistenz und update-Anomalien vermieden. Mitunter ist eine Pflege so aufwendig, daß kein<br />

System diese leisten kann.<br />

Durch Systemunabhängigkeit wird eine Portierbarkeit erleichtert.<br />

Durch eine adäquate Sichtenunterstützung kann jede Sicht eines Benutzers auf einfache Weise unterstützt<br />

werden.<br />

3. Für die Anwendung:<br />

Mod IS<br />

Bei Vollständigkeit werden alle Aspekte der Anwendung, die notwendig sind, repräsentiert.


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 24<br />

Durch Flexibilität bedingen Änderungen in der Anwendung nicht s<strong>of</strong>ort Änderungen aller Teilschemata.<br />

Werden relevante Dinge repräsentiert und nicht alle möglichen Situationen, dann kann ein Schema einfacher<br />

gepflegt, erweitert und verst<strong>and</strong>en werden.<br />

Betriebliche Modelle dienen der Repräsentation betrieblicher Einschränkungen (operationale Beschränkungen,<br />

Gesetze, Regulierungen, Planung, Kontrolle, etc.).<br />

Daraus können Prinzipien des Entwurfes abgeleitet werden:<br />

• Was wird modelliert? In einer korrekten Repräsentation verkörpert jeder dargestellte Typ Objekte einer bestimmten<br />

Klasse in der realen Welt und jede relevante Klasse wird aufgezeigt. Der Grad der Detailliertheit<br />

wird nur soweit vorangetrieben, daß Anfragen und Updates in einer einfachen Form möglich sind, aber zugleich<br />

soweit, daß die Entwicklung von Anwendungen unterstützt wird. Prinzipiell werden nur stabile Strukturen<br />

repräsentiert. Teiltypenhierarchien können ansonsten bis ins letzte Detail aufgespleißt werden, so daß jede<br />

Änderung in der Anwendung eine <strong>and</strong>ere Hierarchie bringt.<br />

• Die Darstellung semantisch sinnvoller Einheiten ist so einfach wie möglich zu gestalten. Damit ist die<br />

Bedeutung einfach herauslesbar. Jede semantische Einheit besitzt eine einfach erklärbare Bedeutung.<br />

• Jeder Fakt wird nur einmal repräsentiert, wodurch Anomalien vermieden werden. Jede Assoziation erscheint<br />

nur einmal. Zerlegbare Fakten sollten in Abhängigkeit von den updates auch zerlegt dargestellt werden. Beispiele<br />

eines ungünstigen Entwurfes sind solche, die eine update Anomalie besitzen. Surrogat-Attribute werden<br />

demzufolge erst auf logischen Niveau wirksam.<br />

• Durch Sicherung der Identifizierbarkeit jeden Faktes wird auch eine Modifikation einzelner Fakten ermöglicht.<br />

• Durch eine saubere Unterscheidung der Nullwerte (unbekannt, nicht anwendbar, etc.) kann auch eine entsprechende<br />

Funktionalität unterstützt werden. Nicht anwendbare Werte deuten auf unsaubere Modellierung.<br />

Eine bessere Modellierung ist die Darstellung durch Teiltypen. Schwierigkeiten bei Anfrageauswertung und<br />

-formulierung können so umgangen werden. Es gibt strukturelle Nullwerte und Ausnahmenullwerte.<br />

• Wir benötigen klare Regeln für die Zuordnung zu den Konzepten (Attribut oder Entity-Typ oder Relationship-<br />

Typ). Mitunter muß auch für Konzepte, die eigentlich durch Attribute dargestellt werden, ein Entitytyp eingeführt<br />

werden.<br />

• Attributnamen dienen einer intuitiv verständlichen Charakterisierung von Objekten der Datenbank.<br />

• Hierarchische Strukturen sind meist einfacher zu beh<strong>and</strong>eln. Insbesondere wird die Pflege der Integritätsbedingungen<br />

und die Generierung von Operationen einfacher.<br />

• Surrogate sollten im konzeptuellenn Entwurf nur in Ausnahmefällen verwendet werden. Modifikationen werden<br />

ansonsten schwieriger.<br />

Damit können kritische Faktoren für die Entwicklung einer Entwurfsstrategie abgeleitet werden:<br />

1. Ein schrittweiser Entwurf kann unterstützt werden.<br />

2. Rollen und Verantwortlichkeiten müssen wohldefiniert sein.<br />

3. Eine klare Unterscheidung zwischen allgemeinen und produktspezifischen Entwurfstechniken erleichtert die<br />

Migration zu <strong>and</strong>eren Werkzeugen.<br />

4. Das Datenwörterbuch (data dictionary) sollte auch Versionen und weitergehende <strong>Information</strong>en enthalten.<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 25<br />

5. Der Entwurf basiert auf einem und nur einem Modell, das mindestens die gesamte Funktionalität von logischen<br />

Datenmodellen repräsentieren kann.<br />

6. Durch die Darstellung der Entwurfsentscheidungen für ein späteres Reviewing und Einführung von Checkpoints,<br />

denen sich Entwerfer unterwerfen müssen, insbesondere zum Einholen von Kompetenz, kann eine<br />

spätere Modifikation und die Diskussion von Varianten vereinfacht werden.<br />

7. Der Struktur-, Funktions- und Semantikentwurf wird integriert durchgeführt.<br />

8. Durch übersichtliche Repräsentationstechniken wird ein Entwurf intuitiv auch in seiner Entwurfsgeschichte<br />

verständlich.<br />

Außerdem muß eine entsprechende Transformationstechnik existieren, mit der ein Prototyping, z.B. in relationalen<br />

DBMS, erleichtert wird.<br />

In diesem Skript wird eine Methodik vorgestellt, die sich ein Entwerfer selbst verändern kann. Wir gehen davon<br />

aus, daß jeder Entwerfer seine eigene Methodik verwendet. Es gibt zwar Gemeinsamkeiten, aber die Wahl der<br />

Methodik hängt nicht nur von den Kenntnissen und Erfahrungen des Entwerfers ab, sondern wird auch durch das<br />

Anwendungsgebiet und durch die Projektpartner mitbestimmt. Deshalb wird im Skript auch dargestellt, wie man<br />

die Methodik, die im Hauptteil des Co-<strong>Design</strong>-Buches vorgestellt wird, durch eine eigene Methodik ersetzen kann.<br />

Unsere Methodik hat sich in den mehr als 100 (DB) 2 -Anwendergruppen als eine der am häufigsten und am weit<br />

verbreiteten Methodiken erwiesen. Neben dieser Methodik existieren viele verschiedene <strong>and</strong>ere Methodiken.<br />

Die Modellierung wird immer von der Verfeinerung begleitet. Verifikation und Validierung dienen der Kontrolle<br />

der Resultate wie in Bild 1 dargestellt.<br />

Modellierung<br />

“was”, “wie”, “wo”, “wer”, “wann”, ...<br />

Realität<br />

❄<br />

Modell<br />

✻<br />

Validierung<br />

Wird das richtige Produkt erstellt?<br />

✻<br />

Verfeinerung<br />

Verifikation<br />

Qualitätsforderungen<br />

Wird das Produkt richtig erstellt?<br />

❄<br />

Implementation<br />

Abbildung 1: Modellierung, Verfeinerung, Verifikation und Validierung<br />

Obwohl ein Datenbankentwurf immer für eine bestimmte Umgebung und damit für eine bestimmte Plattform<br />

durchführt wird, sollte der Entwurf zuerst die Anwendung adäquat widerspiegeln und zuletzt erst durch die Implementationseinschränkungen<br />

der gewählten Plattform getragen werden. Ein solcher Entwurfszugang ist erst durch die<br />

Entwicklungen der Datenbanktechnologie und der -theorie während der letzten 10 Jahre ermöglicht worden. Es gibt<br />

erst in Ansätzen methodische Umsetzungen auf dem internationalen Markt.<br />

In diesem Skript stellen wir eine Zugang vor, der auf tiefliegenden theoretischen Erkenntnissen beruht. Es ist in<br />

diesem Skript nicht unser Ziel, die Datenbanktheorie in aller Tiefgründigkeit vorzustellen, sondern eine Methodik<br />

zu entwickeln, die auf den Erkenntnissen dieser Theorie beruht, diese aber nicht vordergründig verwendet. Viele der<br />

Tips in diesem Skript haben Lehrsätze im Hintergrund. Wir versuchen weiterhin, die Fallen und Untiefen, die mit<br />

ungeschickten Methodiken verbunden sind, zu vermeiden oder zu umschiffen. Dadurch wird auch eine Reihenfolge<br />

der Entwurfsschritte mit diktiert.<br />

Es gibt eine umfangreiche Literatur zum Datenbankentwurf auf der Grundlage des relationalen Modelles. Das relationale<br />

Modell eignet sich jedoch nur für einige Entwurfsphasen. Die Semantik und der Zusammenhang zwischen<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 26<br />

den relationalen Schemata ist nur relativ umständlich und abstrakt darstellbar. Das damit erforderliche Abstraktionsniveau<br />

überfordert auch aufgrund der Komplexität die Entwerfer. Selbst die ‘Perle’ der relationalen Theorie, die<br />

Normalisierungstheorie, erfordert vom Entwerfer umfangreiche und tiefgehende Kenntnisse. Die Werkzeuge generieren<br />

meist nur eine von vielen möglichen Normalisierungen, so daß eine Korrektur per H<strong>and</strong> <strong>of</strong>t erforderlich ist.<br />

Aus diesem Grund hat sich das auf eine graphische Darstellung stützende Entity-Relationship-Modell für die ersten<br />

Entwurfsphasen durchgesetzt. Es gibt heute fast kein Entwurfssystem, das dieses Modell nicht in irgendeiner Form<br />

benutzt. Wir folgen diesem Trend, erweitern aber das Modell, um auch die <strong>and</strong>eren Entwurfsphasen mit diesem<br />

Modell durchführen zu können.<br />

Es gibt allerdings bislang keine Theorie der Modellierung von <strong>Information</strong>ssystemen 3 . In der Literatur finden<br />

sich nur einige Best<strong>and</strong>teile einer solchen Theorie: Theorie relationaler Schemata, Theorie der Petri-Netze, Theorie<br />

von Workflows. Wir benötigen einen vollständigen Zugang, der eine Modellierung der Strukturierung, Funktionalität<br />

und Interaktivität unterstützt. Außerdem sollten Aspekte der Verteilung dargestellt werden. Unsere Theorie<br />

stützt sich auf zwei Darstellungssprachen: das erweiterte Entity-Relationship-Modell (HERM) und die Webseiten-<br />

Beschreibungssprache SiteLang, sowie der Verteilungssprache DistrLang. Mit der ersteren können wir alle datenbankbasierten<br />

Aspekte wie Strukturierung, Funktionalität, Verteilung und Sichten-Suiten (als Verallgemeinerung des Sichtenbegriffes)<br />

darstellen. Mit SiteLang können wir alle Aspekte der Interaktivität und der Einbettung von Datenbanksystemen<br />

in interaktive Systeme darstellen. SiteLang umfaßt neben der Darstellung von Interaktion und Stories auch<br />

die entsprechenden Kontextbedingungen, zu denen insbesondere der Gestaltungsrahmen, der Kommunikationsrahmen<br />

und der Arbeitsrahmen gehören. DistrLang stellt die Dienste und die Kollaboration für die Verteilung dar. Die<br />

unterschiedlichen Elemente unseres Modellierungsansatzes sind auf Seite ?? zusammengefaßt.<br />

Modellieren ist das Herstellen, Modifizieren, Analysieren und Nutzen von Modellen zur Herstellung von Vorstellungen<br />

zu Dingen der Realität. Der Modellbegriff basiert auf drei Abstraktionsmerkmalen:<br />

• Abbildungsmerkmal: Ein Modell stellt einen Ausschnitt der Realität dar. Es werden somit Objekte Dingen<br />

der Realität zugeordnet.<br />

• Verkürzungsmerkmal: Ein Modell abstrahiert von den Eigenschaften der Realität. Es werden nur einige “relevante”<br />

bzw. “wichtige” Eigenschaften dargestellt.<br />

• Pragmatisches Merkmal: Ein Modell wird nicht ein für alle mal bestimmt, sondern hängt von den Zeitpunkten,<br />

dem Anwendungskontext und den Auffassungen der beteiligten Individuen ab. Diese können sich jederzeit<br />

ändern.<br />

Damit werden in der Modellierung Urteile durch den Modellierer gefällt, welche Dinge der Realität für welchen<br />

Ausschnitt mit welchen Eigenschaften von Interesse sind. Es gibt eine ganze Reihe von Urteilen, die für uns von<br />

Interesse sind:<br />

• Existenzurteile konstatieren die Existenz von Dingen.<br />

• Belegurteile dienen dem Belegen von Beobachtungen.<br />

• Beziehungsurteile stellen Dinge in ihren Beziehungen dar.<br />

• Bestimmungsurteile dienen der Assoziierung von Urteilen mit Eigenschaften.<br />

• Assoziierungsurteile erlauben die Assoziierung, die Aggregation und die Komposition.<br />

• Abhängigkeitsurteile stellen semantische Beschränkungen dar.<br />

Ein Urteil ist bei weitem nicht absolut. Wir stellen deshalb die Modalität explizit dar. Die Modalität erlaubt je nach<br />

Urteilsart auch die Entwicklung logischer Theorien. Ein Modellierungsurteil kann eine Annahme, eine Meinung, eine<br />

Hypothese, eine Gedankenverbindung oder auch eine Frage darstellen.<br />

3 Einen ersten Ansatz liefert die Arbeit [Kas03], in der ein Theorieansatz angegeben wird. Wir verdichten diesen Ansatz im folgenden.<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 27<br />

Ein Modellierer ist ein Individuum, das in einem Kontext (z. B. der Anwendung oder in einem kulturellen Kontext)<br />

Urteile fällt. Oft folgt das Modellierungsurteil einer Referenzdarstellung. Demzufolge fassen wir ein Modellierungsurteil<br />

als ternäre Beziehung zwischen Eigenschaft, Theorien und den im Kontext agierenden Individuen auf.<br />

Weiterhin kann im Entwicklungsprozeß ein Urteil wieder revidiert werden.<br />

Redundanz kann eine sinnvolle Eigenschaft sein, sollte aber explizit erfaßt und gepflegt werden. Inkonsistenz ist<br />

selten sinnvoll. Vollständigkeit ist eines der Hauptkriterien bei der Beurteilung der Qualität neben diesen Kriterien.<br />

Ein wichtiger Problemkreis vor Einführung eines <strong>Information</strong>ssystemes ist das Abwägen, ob dieser Einsatz nicht<br />

zu höheren Kosten führt. Der Nutzen von <strong>Information</strong>ssystemen besteht<br />

1. in der gemeinsamen und parallelen Benutzung von Daten bei gleichzeitiger Benutzung unterschiedlicher Sichtweisen<br />

auf die Daten,<br />

2. in kontrollierter Redundanz von gleichen Datenbeständen,<br />

3. in der Unterstützung von eingeschränktem Benutzerzugriff, die auch Sicherheitsmechanismen einschließt,<br />

4. in der Bereitstellung verschiedener Schnittstellen für unterschiedliche Benutzungsgruppen,<br />

5. in der Darstellung komplizierter Beziehungen der Daten,<br />

6. in der Bereitstellung von Mechanismen zur automatischen Integritätserzwingung und<br />

7. in einer Robustheit, die einen Wiederanlauf auch nach Systemfehlern erlaubt.<br />

Ein Einsatz von Datenbank-Management-Systemen (DBMS) ist besonders sinnvoll<br />

• zur Unterstützung heterogener Benutzergruppen, die eine gemeinsame Datenhaltung präferieren,<br />

• falls keine oder kontrollierte Redundanz gewünscht ist,<br />

• falls eine Benutzerverwaltung und Authorisierung sinnvoll ist,<br />

• falls unterschiedliche Schnittstellen für unterschiedlich geschulte Benutzer bereitgestellt werden sollen,<br />

• falls komplexe Daten oder komplexe Beziehungen zwischen den Daten vorliegen,<br />

• falls Integritätsmechanismen genutzt werden sollen,<br />

• falls eine Fehlerbeh<strong>and</strong>lung und Archivierung erforderlich ist und<br />

• falls eine geringe Entwicklungszeit für sich ändernde Anwendungen bevorzugt wird.<br />

Ein DBMS sollte man nicht benutzen,<br />

• wenn ein hoher zusätzlicher Aufw<strong>and</strong> entsteht<br />

• durch hohen initialen Aufw<strong>and</strong> für Hardware und S<strong>of</strong>tware bei geringem Nutzen durch den späteren<br />

Betrieb,<br />

• durch hohe Allgemeinheit der vorh<strong>and</strong>enen Funktionen und<br />

• durch die Einführung von Algorithmen zur Unterstützung von Sicherheit, konkurrierenden bzw. parallelen<br />

Betrieb,<br />

• wenn die Anwendung und die Datenbank eher einfach sind,<br />

• wenn Real-Zeit-Forderungen nicht vom DBMS unterstützt werden können und<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 28<br />

• wenn kein Mehrfachparallelzugriff auf Daten vorliegt.<br />

Das Skript beabsichtigt nicht, eine vollständige Einführung in die Datenbank- oder zumindest in die Datenbankentwurfsliteratur<br />

zu geben. Das Literaturverzeichnis wurde bewußt kurz gehalten 4 . Die Referenzen in [Tha00a] und<br />

[Tha91], sowie in [GMUW00] und [FvH89] sind stattdessen für weitere Studien zu verwenden. Wir gehen in diesem<br />

Skript davon aus, daß der Leser bereits grundlegende Begriffe der Datenbanktechnologie kennt. Eine Reihe von<br />

Fachbegriffen, die st<strong>and</strong>ardisiert verwendet werden, werden deshalb nicht nochmals eingeführt 5 .<br />

Dieses Skript konzentriert sich auf die Spezifikation der konzeptuellen, Benutzer-, Geschäftprozeß- und strategischen<br />

Schicht. Deshalb werden Aspekte der Darstellung auf logischer oder physischer Schicht vollständig ausgelassen.<br />

Für die Spezifikation von Strukturierung und Funktionalität auf logischer Sicht verweisen wir auf [Tha03].<br />

Wir wollen kein XML- oder auch HTML-Buch ersetzen. Dieser Buchmarkt ist unübersichtlich und strotzt vor vorgespiegelter<br />

Einfachheit. Unter den soliden Einführungen sticht [KM03] hervor. Zum Storyboarding gibt es leider auch<br />

meist nur Erzählliteratur von Autoren, denen eine sehr kleine Website als Illustration und Erfahrungshintergrund<br />

dient. Zur Spezifikationstheorie verteilter Systeme auf logischer Sicht kann am besten [ALSS03, DGH03] herangezogen<br />

werden. Auf höherem Abstraktionsniveau existiert unserer Beobachtung nach keine einzige Literaturquelle.<br />

4 Die Bibliographie in [Tha00a] ist bereits länger als 50 Seiten.<br />

5 Stattdessen empfehlen wir [Bis95, KE96] oder den Klassiker der Modellierung [LM78].<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 29<br />

Relationales<br />

Paradigma<br />

ER-basierte<br />

Struktur<br />

Statische ER-<br />

Semantik<br />

ER-basierte<br />

Prozesse<br />

Dynamische<br />

ER-Semantik<br />

Konzeptionelle Aspekte von <strong>Information</strong>ssystemen im Codesign-Zugang zur integrierten Entwicklung von<br />

<strong>Information</strong>ssystemen<br />

Zugrundegelegte<br />

Sprache<br />

Verwendete Instanzenwelt<br />

Modell zur iterativen Konstruktion der Syntax<br />

Theorie<br />

Klasse Objekte Schema AggregationBeziehungenBasistyp Grundtyp<br />

Mengenlehre<br />

Relationenalgebra<br />

bzw.<br />

-kalkül<br />

Tabelle Tupel relationales<br />

Schema<br />

implizit<br />

durch Integritätsbedingungen<br />

rudimentär,<br />

z.B. IsA<br />

Relation(entyp)<br />

Steuerbedingung<br />

Unterstützende<br />

Sichten-<br />

Suite<br />

HERM-<br />

Algebra<br />

HERM<br />

Abstract<br />

State Machines<br />

Temporale<br />

Logik<br />

Workflow-<br />

Klasse<br />

Workflow-<br />

Objekt<br />

Workflow-<br />

Schema<br />

HERM - - Semantik des<br />

Workflow-<br />

Schemas<br />

Programm<br />

Workflow-<br />

Feld<br />

Prozeß<br />

Dynamische Integritätsbedingung<br />

HERM Sichtenklasse Sichtenobjekt Sichtenschema Sichtentyp Kooperative<br />

Sichten<br />

Sichtentyp<br />

Attribut<br />

Attribut-Typ<br />

Mengenlehre HERM Klasse Objekte ER-Schema Relationship- Cluster- und Entity-Typ<br />

Typ<br />

Teiltyp<br />

Prädikatenlogik<br />

HERM - - Semantik des Statische Integritätsbedingungen<br />

ER-Schemas<br />

Datentyp-<br />

Semantik<br />

Read/Write-<br />

Operation<br />

Sichten-<br />

Attribut-Typ<br />

Interaktion Mengenlehre SiteLang Content-<br />

Klasse<br />

Content-<br />

Objekt<br />

Content-<br />

Typen-Raum<br />

Content-Typ Container Content-Typ Content-Typ-<br />

Attribut<br />

Stories (Story- SiteLang Szenario Szenarium Storyraum Story Kooperative Dialogszene Dialogschritt<br />

Boarding)<br />

Stories<br />

Modellierung Organisationstheorie<br />

SiteLang Klasse von Benutzer Akteurschema Gruppen Kooperative Akteur Rolle<br />

von Benutzern<br />

Benutzern<br />

Akteure<br />

Kollaborationsrahmevertraschemwirken<br />

Gruppenarbeit SiteLang Kollaborations-<br />

Arbeitsgruppe Kollaborations-<br />

Zusammen-<br />

Kollaboration, Zusammen-<br />

Aufgabe<br />

Kooperation wirken<br />

Gestaltungsrahmen<br />

User- SiteLang Interfaceklasse Interface Arbeitsplatzsuite Arbeitsplatz Menus Oberflächen-<br />

Layoutform<br />

Interfaces<br />

typ<br />

Arbeitsrahmen Methoden<br />

Auftragsklasse Auftrag Arbeitsfeld Portfolio Verfahren, Arbeitsschritt Aufgabe, Ressourcen<br />

des Problemlösens<br />

(Teil-)Lösung<br />

Verteilung<br />

Abstract<br />

State<br />

Machines<br />

DistLang<br />

Akte,<br />

Logfile<br />

Protokollinstanz,<br />

Kontraktinstanz<br />

Schema<br />

des verteilten<br />

<strong>Systems</strong><br />

Komponente, Kollaborationsrahmen,<br />

Proto-<br />

Komponente, Knoten<br />

Architektur<br />

Kontrakt kolltyp,<br />

Logtyp<br />

Modellierung der Strukturierung: ER-basierte Struktur und statische ER-Integritätsbedingungen<br />

Modellierung der Funktionalität: ER-basierte Prozesse und dynamische ER-Integritätsbedingungen<br />

Modellierung der Verteilung: Schema des verteilten Systemes mit Architektur und Komponenten, sowie deren Kollaboration<br />

Modellierung der Interaktivität: Content-Typen und Story-Raum mit Akteuren unterlegt durch Arbeits-, Kommunikationsund<br />

Gestaltungsrahmen<br />

Sichten-Suiten zur Unterstützung der Interaktivität und Verteilung: Sichtenschema mit Sichtentypen<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 30<br />

1.2 Computer Science - an Engineering Discipline<br />

die vier Quellen der modernen Informatik<br />

Mathematik mit den 4 Prinzipien<br />

1. Abstraktion<br />

2. Strukturierung im großen und im kleinen<br />

3. Evolution im im großen und im kleinen<br />

4. Kollaboration<br />

Electrical engineering und die Kunst der Hardware<br />

Applications such as medical, biological, .... computer science<br />

Engineering as the art <strong>of</strong> building with completely different success criteria<br />

Übung:<br />

• “Scientists look at things that are <strong>and</strong> ask ‘why’; engineers dream <strong>of</strong> things that never were <strong>and</strong> ask ‘why<br />

not’.” (Theodore von Karman)<br />

• “Engineers use materials, whose properties they do not properly underst<strong>and</strong>, to form them into shapes,<br />

whose geometries they cannot properly analyse, to resist forces they cannot properly assess, in such a<br />

way that the public at large has no reason to suspect the extent <strong>of</strong> their ignorance.” (John Ure 1998)<br />

•<br />

Lesen und Interpretieren eines Anwendungsschemas<br />

Language Layers <strong>of</strong> Specification<br />

Specification Engineering: Separation <strong>and</strong> Abstraction<br />

1. Declaration layer based on logical formulas or constructs description<br />

2. Technical layer, e.g., methods for maintenance, by rules for compensation, enactment strategies, auxiliary<br />

methods<br />

operational semantics<br />

3. Technological layer under explicit consideration <strong>of</strong> implementation <strong>and</strong> refinement context<br />

application<br />

4. Organizational layer by integration into the architecture <strong>of</strong> the system, by obligations for users <strong>and</strong> for components<br />

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

establishment<br />

5. Economical layer: (economical <strong>and</strong> technological) feasibility, quality satisfaction<br />

6. H<strong>and</strong>ling satisfaction <strong>of</strong> properties <strong>and</strong> predicting changes <strong>of</strong> satisfaction<br />

7. Optimisation for evolution <strong>and</strong> adaptation<br />

8. Experiences utilisation for innovation <strong>and</strong> generalisation


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 31<br />

Engineering<br />

see Encyclopedia Britannica<br />

ingenerare, “to create” <strong>and</strong>/or “to contrive”<br />

application <strong>of</strong> science to the optimum conversion<br />

<strong>of</strong> the resources <strong>of</strong> nature to the uses <strong>of</strong> humankind<br />

The field has been defined by the Engineers Council for Pr<strong>of</strong>essional <strong>Development</strong>, in the United States, as the creative application <strong>of</strong><br />

“scientific principles to design or develop structures, machines, apparatus,<br />

or manufacturing processes, or works utilizing them singly or in combination; or to<br />

construct or operate the same with full cognizance <strong>of</strong> their design; or to forecast<br />

their behaviour under specific operating conditions; all as respects an intended function,<br />

economics <strong>of</strong> operation <strong>and</strong> safety to life <strong>and</strong> property”<br />

The term engineering is sometimes more loosely defined, especially in Great Britain, as the manufacture or assembly <strong>of</strong> engines, machine<br />

tools, <strong>and</strong> machine parts.<br />

The words engine <strong>and</strong> ingenious are derived from the same Latin root, ingenerare, which means “to create.” The early<br />

English verb engine meant “to contrive.” Thus the engines <strong>of</strong> war were devices such as catapults, floating bridges, <strong>and</strong> assault towers;<br />

their designer was the “engine-er,” or<br />

The counterpart <strong>of</strong> the military engineer was the engineering: military - civil - , who applied essentially the same knowledge<br />

<strong>and</strong> skills to designing buildings, streets, water supplies, sewage systems, <strong>and</strong> other projects. mechanical - chemical - industrial<br />

Associated with engineering is a great body <strong>of</strong> special knowledge<br />

preparation for pr<strong>of</strong>essional practice involves extensive training in the application <strong>of</strong> that knowledge<br />

st<strong>and</strong>ards <strong>of</strong> engineering practice<br />

are maintained through the efforts <strong>of</strong> pr<strong>of</strong>essional societies, usually organized on a national or regional basis, with each member acknowledging<br />

a responsibility to the public over <strong>and</strong> above responsibilities to his employer or to other members <strong>of</strong> his society.<br />

functions: (scientist; to know verified, systematized knowledge <strong>of</strong> the physical world),<br />

(engineer; to do <strong>and</strong> bring knowledge to bear on practical problems) The scientist adds to the store <strong>of</strong> verified, systematized<br />

knowledge <strong>of</strong> the physical world; the engineer brings this knowledge to bear on practical problems. Engineering is based principally<br />

on physics, chemistry, <strong>and</strong> mathematics <strong>and</strong> their extensions into materials science, solid <strong>and</strong> fluid mechanics, thermodynamics, transfer <strong>and</strong><br />

rate processes, <strong>and</strong> systems analysis.<br />

Unlike the scientist, the engineer is not free to select the problem that interests him, solves problems as they arise<br />

solution must satisfy conflicting requirements<br />

(technical, technological, economical, ..., social)<br />

Usually efficiency costs money; safety adds to complexity; improved performance increases weight. The engineering solution is the optimum<br />

solution, the end result that, taking many factors into account, is most desirable. It may be the most reliable within a given weight limit, the<br />

simplest that will satisfy certain safety requirements, or the most efficient for a given cost. In many engineering problems the social costs are<br />

significant.<br />

Engineers employ two types <strong>of</strong> resources: materials, information <strong>and</strong> energy . Materials are useful because <strong>of</strong> their properties: their<br />

strength, ease <strong>of</strong> fabrication, lightness, or durability; their ability to insulate or conduct; their chemical, electrical, or acoustical properties.<br />

Important sources <strong>of</strong> energy include fossil fuels (coal, petroleum, gas), wind, sunlight, falling water, <strong>and</strong> nuclear fission. Since most resources<br />

are limited, the engineer must concern himself with the continual development <strong>of</strong> new resources as well as the efficient utilization <strong>of</strong> existing<br />

ones.


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 32<br />

1.3 Modelle der Informatik sind sprachbasiert<br />

Denn eben, wo Begriffe fehlen,<br />

Da stellt ein Wort zur rechten Zeit sich ein.<br />

Mit Worten läßt sich trefflich streiten,<br />

Mit Worten ein System bereiten,<br />

An Worte läßt sich trefflich glauben,<br />

von einem Wort läßt sich kein Jota rauben.<br />

J.W. Goethe, Faust, Erster Teil, Studierzimmer, Mephistopheles<br />

Sprachen sind meist konstruktiv gegeben. Damit betrachten wir semantische Dreiecke wie z.B. die folgenden in<br />

Bild 2. Man kann die vollen Aufw<strong>and</strong> in eines der Ecken verwenden oder auch das Gesamtbild betrachten.<br />

Parallelisierung<br />

Semantik<br />

Zeit<br />

Kommunikationsbedarf<br />

Komplexität<br />

der Aufgabe<br />

Syntax<br />

Pragmatik<br />

Energie<br />

<strong>Information</strong><br />

Abbildung 2: Das linguistische, Schimmler und quantenphysikalische Dreieck<br />

Als Lehre aus dem Einführungskapitel betrachten wir das Co-<strong>Design</strong>-Dreieck in Bild 3. Es hat seine Wiederspiege-<br />

Kollaboration<br />

Strukturierung<br />

Entwicklung<br />

Integrität<br />

Verwaltungsfunktion<br />

Akteur<br />

Struktur<br />

Sicht<br />

Anfragefunktion<br />

Modifikationsfunktion<br />

System<br />

Aufgabe<br />

Abbildung 3: Das Co-<strong>Design</strong>-Dreieck<br />

lung in den unterschiedlichen Aspekten wie im unteren Teil von Bild 3.<br />

Why we do not concentrate on object-oriented approaches?<br />

• 88 pitfalls <strong>of</strong> object-orientation (see DBS I)<br />

• Encapsulation challenge (146 UML diagrams)<br />

• Model multiplicity challenge (errors encountered in oo models)<br />

• Complexity management challenge<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 33<br />

Generelle Aspekte von <strong>Information</strong>ssystemen<br />

Strukturierung<br />

Funktionalität<br />

Interaktivität<br />

Verteilung<br />

Qualität<br />

Struktur<br />

Statische<br />

Integritätsbedingungen<br />

Prozesse<br />

Content-Objekte<br />

Dynamische<br />

Integritätsbedingungen<br />

Stories<br />

Dienste<br />

Kollaborationsrahmen<br />

Szenarien<br />

Aufgaben<br />

Benutzergruppen<br />

Konzeptionelle Spezifikation von <strong>Information</strong>ssystemen<br />

ER-Schema<br />

Datenbank-Maschine<br />

Interaktionsraum<br />

Diensteraum<br />

Content-Typen<br />

Story-Raum<br />

Drehbuch<br />

Architektur<br />

Sicht Container<br />

Funktionalität Szenen<br />

Akteure<br />

Kollaborationsrahmen<br />

Logische Spezifikation von <strong>Information</strong>ssystemen<br />

relationales Schema<br />

XML-Schema<br />

... Schema<br />

Stored procedures<br />

Transaktionen<br />

Programme, Trigger<br />

Dialogverwaltungssystem<br />

Oberflächen<br />

Dienste- und Kollaborationsverwaltungssystem<br />

Verteilung, Protokolle, Qualität<br />

Abbildung 4: Integrierte Entwicklung von Strukturierung, Funktionalität, Interaktivität und Verteilung<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 34<br />

Wir wollen im weiteren zeigen, wie sich die vier Aspekte Strukturierung, Funktionalität, Interaktivität und Verteilung<br />

verbinden lassen. Eine allgemeine Vorstellung der integrierten Elemente vermittelt Bild 4.<br />

Wir beabsichtigen, den vollen Entwicklungsprozeß in seiner Gesamtheit zu begleiten. Deshalb ist für eine Spezifikation<br />

eines <strong>Information</strong>ssystemes auch eine Beschreibung der Datenbank-Maschine und eine Beschreibung der<br />

Content-Objekte und des Story-Raumes sowie des Diensteraumes notwendig.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 35<br />

1.4 Modellierung und Synthese<br />

1.4.1 Introducing modelling <strong>and</strong> synthesis for structural integrity<br />

Engineering is oriented towards encapsulation <strong>of</strong> <strong>of</strong> experiences with design problems pared down to a manageable<br />

scale.<br />

Real-life engineering is full <strong>of</strong> uncertainties <strong>and</strong> risks, impossible to replicate effectively in a formalised way in a<br />

text.<br />

• Engineering component means any engineering structure, which may be constructed from several interconnected<br />

elements into a single entity.<br />

• Effectively withst<strong>and</strong>ing loads is defined as the capacity to accept service loads without exceeding either the<br />

specified maximum stress, specified maximum deflection, <strong>of</strong> both <strong>of</strong> this specifications.<br />

force - moment - pressure<br />

information processing capacity, traffic intensity<br />

• Service loads are those loads, specified or unspecified, that the designer considers as creditable to be imposed<br />

on the component during its service life.<br />

Two main factors<br />

• service load estimation<br />

• structural modelling<br />

Assumptions <strong>of</strong> engineering<br />

1. Engineers are inherently concerned with failure <strong>and</strong> our vision <strong>of</strong> success is t develop modelling tools to avoid<br />

it.<br />

2. Engineering failures may be categorised as technical, operational or unpredictable.<br />

3. Incentives to avoid engineering failures are related to failure intensity - the degree <strong>of</strong> seriousness <strong>of</strong> the failure.<br />

4. Failure is essentially related to risk: given extreme conditions, all structures <strong>and</strong> systems can fail.<br />

• Generate design specifications that best meet the required operating conditions <strong>of</strong> the system with acceptable<br />

levels <strong>of</strong> risk;<br />

• Identify the limits <strong>of</strong> know-how associated with the structure or system <strong>and</strong> assign factors <strong>of</strong> ignorance<br />

(commonly referred as factors <strong>of</strong> safety) to cope with these limits, also within acceptable levels <strong>of</strong> risk<br />

(notion <strong>of</strong> worst credible accident).<br />

<strong>Design</strong>ers are typically only aware <strong>of</strong> “normal”, or expected, or most likely operating conditions<br />

Be aware <strong>of</strong> abnormal situations.<br />

Estimation is a euphemism for informed guess.<br />

• heuristic rules <strong>of</strong> thumb<br />

• insurance against loss<br />

Key elements <strong>of</strong> engineering<br />

• work is well-spaced


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 36<br />

• assumptions <strong>and</strong> simplifications are stated unambiguously<br />

• the arguments unfolds in a logical sequence<br />

• good balance between algebra <strong>and</strong> calculation<br />

• useful intermediate values are calculated<br />

• important intermediate results are highlighted<br />

• related results are summarised<br />

• you know when you have got a ridiculous answer<br />

• awareness <strong>of</strong> meaningful accuracy<br />

Structural distillation<br />

process <strong>of</strong> structural decomposition into meaningful components<br />

• simple engineering components<br />

• simple behaviour<br />

meaning component models<br />

focus on the way a system is to be used; operational loads<br />

1.4.2 <strong>Design</strong> against failure<br />

based on integrity constraints etc,<br />

“The concept <strong>of</strong> failure is central to the design process, <strong>and</strong> it is by thinking in terms <strong>of</strong> obviating failure that<br />

successful designs are achieved. It has long been practically a truism among practicing engineers <strong>and</strong> designers that<br />

we learn much more from failures than from successes. Indeed, the history <strong>of</strong> engineering is full <strong>of</strong> examples <strong>of</strong><br />

dramatic failures that were once considered confident extrapolations <strong>of</strong> successful designs; it was the failures that<br />

ultimately revealed the latent flaws in design logic that were initially masked by large factors <strong>of</strong> safety <strong>and</strong> a design<br />

conservatism that became relaxed with time.” Henri Petroski, 1994<br />

• study <strong>of</strong> properties <strong>and</strong> operating<br />

• predictive power <strong>of</strong> experimental science<br />

<strong>Design</strong> choices<br />

Engineering component<br />

Operating conditions<br />

Failure focus<br />

analysing each component for its influence on the eventual failure<br />

• <strong>Design</strong> variables: material, local character (static loading, time dependent loading), geometry (distribution,<br />

stress intensity factors), environment


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 37<br />

• Failure focus: rupture yielding, excessive deflection, fatigue, buckling, wear, corrosion, stress corrosion, creep<br />

Failures due to<br />

• the component breaks<br />

• the component sustains plastic, nonrecoverable, deformation<br />

• the component experiences a time dependent failure mechanism known as fatigue<br />

• the component experiences a form <strong>of</strong> elastic instability with large lateral deflections under compressive loading<br />

• at elevated temperatures there is a long-term, relatively slow, plastic deformation <strong>of</strong> the component under steady<br />

load<br />

• the component experience elastic or plastic deformation beyond some permitted bound<br />

• one r more surfaces <strong>of</strong> the component suffer local failure due to high local rubbing or concentrated loads<br />

• the material suffers some form <strong>of</strong> degradation or chemical conversion<br />

based on material selection<br />

• will it work<br />

• will it last<br />

• can it be made<br />

• can it be done within specified limits<br />

Kinds <strong>of</strong> Exceptions<br />

Exceptions caused by errors: operation errors, design errors, organizational errors, hardware errors<br />

explicit error treatment<br />

recovery management based on explicit specification <strong>of</strong> errors<br />

Exceptions caused by r<strong>and</strong>omness or non-determinancy: appear <strong>and</strong> vanish at any point <strong>of</strong> time<br />

cannot be eliminated not described<br />

extensions <strong>of</strong> recovery management?<br />

Exceptions caused by incompleteness: modelling, specification incomplete due to complexity, limitations <strong>of</strong><br />

languages <strong>and</strong> abilities<br />

robust system specification?<br />

Exceptions as systems flexibility: exceptions as ‘normal’ states or ‘normal’ reactions<br />

exception h<strong>and</strong>ler: exceptional situations <strong>and</strong> correct treatment<br />

Occurrence <strong>of</strong> Exceptions: Incompleteness <strong>of</strong> specifications as “modelling gap”<br />

Reasons, causes<br />

Possible resolution<br />

incomplete knowledge<br />

negated specifications<br />

incomplete coverage<br />

robust specifications<br />

macrodata modelling<br />

redesign to microdata<br />

inability to represent<br />

approximative specifications


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 38<br />

Occurrence <strong>of</strong> Exceptions: Insufficiency to represent the current knowledge<br />

Reasons, causes<br />

Possible resolution<br />

implementation restrictions<br />

extending by theories <strong>and</strong> languages<br />

advanced logics<br />

restricted attention <strong>of</strong> developers<br />

⇈ scope <strong>of</strong> reference models<br />

non-axiomatizabilty<br />

change <strong>of</strong> logics<br />

locality <strong>of</strong> reasoning<br />

interference reasoning<br />

Occurrence <strong>of</strong> Exceptions: Dynamic changes over time due to evolution<br />

Reasons, causes<br />

Possible resolution<br />

change-sensitive normalization change <strong>of</strong> normal form<br />

time overload <strong>and</strong> mingling separate TA, user, validity time<br />

non-temporal types<br />

temporal types<br />

too restrictive models<br />

flexibility<br />

instability <strong>of</strong> schema<br />

dynamic schemata<br />

temporary runtime error<br />

similar to 9 kinds <strong>of</strong> nulls<br />

Occurrence <strong>of</strong> Exceptions: Hidden cases due to limiting to “normal case”<br />

Reasons, causes<br />

Possible resolution<br />

pragmatic assumptions<br />

explicit modelling<br />

hidden assumptions<br />

iterative testing<br />

self-restrictions<br />

detection <strong>of</strong> reasons<br />

restricted scope <strong>of</strong> users<br />

education, sharpening<br />

overlooked cases<br />

analysis, verification<br />

1.4.3 <strong>Design</strong> synthesis <strong>of</strong> some generic engineering components<br />

1.4.4 <strong>Design</strong> <strong>of</strong> connections<br />

1.4.5 Revisiting structural integrity <strong>of</strong> engineering systems<br />

Problem solving strategies: An engineering culture<br />

1.4.6 The evolution <strong>of</strong> problems<br />

1.4.7 Economic, social <strong>and</strong> environmental issues


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 39<br />

1.5 Probleme der Entwicklung von <strong>Information</strong>ssystemen<br />

Übung:<br />

Lesen und Interpretieren eines Anwendungsschemas<br />

1.5.1 Die Theorie der konzeptuellen Modellierung<br />

Siehe Manifesto (Kapitel 1) im H<strong>and</strong>buch:<br />

Modellierung als Programmierung von “morgen”<br />

1. Assembler-Programmierung<br />

2. Programmierung der zweiten Generation mit Compiler<br />

Verlust der Hardwareprogrammierung<br />

physische Unabhängigkeit<br />

Programmierung mit Konstrukten<br />

3. Programmierung der dritten Generation mit Compiler<br />

Verlust der externen Optimierung<br />

logische Unabhängigkeit<br />

Damit bald:<br />

• Modellierung<br />

• Modellierung mit Konstrukten<br />

• Modellierung mit Compiler<br />

There is no “Swiss Knife” for models, modelling, to model!!!!


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 40<br />

1975 1985 1990 1995 2000 2004 2006 2008 2010 2012<br />

Business applications<br />

Internet<br />

Content<br />

Components<br />

Banking<br />

Artificial intelligence<br />

XML<br />

<strong>Information</strong><br />

Engineering applications<br />

Complexity<br />

St<strong>and</strong>ards<br />

Usability<br />

gains:<br />

+ application<br />

+ decomposition<br />

losses:<br />

- exclusivity<br />

+ usability<br />

+ HC interfaces<br />

+ MVC<br />

- simplicity<br />

- faith<br />

+ availability<br />

+ services<br />

+ infrastructure<br />

+ adaptation<br />

+ generation<br />

+ context<br />

- homogeneity - centralisation<br />

- Seeheim/Arch<br />

- redundancy freeness<br />

- programming culture<br />

Abbildung 5: Modern Kondradjeff Cycles <strong>of</strong> Computer Science<br />

+ production<br />

+ architectures<br />

+ composition<br />

- programming<br />

Modellierung: Verfahren zur Konstruktion von Modellen, die der Gewinnung oder Vermittlung von Erkenntnissen<br />

oder als Ersatz der Funktion dynamischer Systeme dienen. Die Modellierung kann rein semiotisch in Gestalt<br />

abstrakter zeichensysteme erfolgen (mathematische, logische Modellierung), der Schaffung realer Modelle auf einer<br />

bestimmten st<strong>of</strong>flich energetischen Grundlage (künstliche, natürliche Modelle) dienen und für den zeitweiligen<br />

oder dauerhaften Ersatz der Funktion bestimmter objektiv-realer Systeme Verwendung finden. [Meyers Neues Lexikon,<br />

VEB Bibliographisches Institut Leipzig, 1974, B<strong>and</strong> 9, 463] (leider sind die <strong>and</strong>eren Lexika ohne eine solche<br />

Definition)<br />

Verfahren: Methode, mit deren Hilfe ein Subjekt einn bestimmten Typ von Aufgabe löst, indem es ein Modell<br />

als ... Repräsentanten bestimmter Eigenschaften eines Originals zweckentsprechend herstellt und im wesentlichen<br />

zur <strong>Information</strong>sgewinnung über das Original benutzt [Philosphisches Wörterbuch, VEB Bibliographisches Institut<br />

Leipzig, 1971, B<strong>and</strong> II, 733]<br />

Hauptabschnitte:<br />

1. Auswahl oder Herstellung eines zweckentsprechenden Modells, ausgehend von der gegebenen Aufgabe, den Eigenschaften<br />

des Originales und den Bedingungen der Situation;<br />

2. Bearbeitung des Modells zwecks Gewinnung von zusätzlichen <strong>Information</strong>en über das Original, insbesondere das<br />

Modellexperiment;<br />

3. Analogieschluss oder <strong>and</strong>ersartige Ableitung von <strong>Information</strong>en über das Original, ausgehend von 2. und vom<br />

Inhalt der gegebenen Modellrelation;<br />

4. Durchführung der Aufgabe direkt gegenüber dem Original durch Nutzung der Ergebnisse von 3., zugleich als ihre<br />

Verifizierung <strong>and</strong> als Entscheidungsgrundlage über die gegebenenfalls zyklische Fortsetzung des Prozesses mit 1. in<br />

Richtung schrittweise verbesserter Modellvarianten.<br />

Modell: ein Objekt, das auf der Grundlage einer Struktur-, Funktions- oder Verhaltensanalogie zu einem entsprechenden<br />

Original von einem Subjekt eingesetzt und genutzt wird, um eine bestimmte Aufgabe zu lösen, deren<br />

Durchführung mittels direkter Operationen am Original zunächst oder überhaupt nicht möglich bzw. unter gegebenen


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 41<br />

Bedingungen zu aufwendig ist.<br />

Modellfunktionen:<br />

1. Erkenntnis durch neue <strong>Information</strong>en über das Original<br />

2. Erklärung und Demonstration durch Hilfsinformationen, die das Verständnis für im Prinzip bekannte, nicht absolut<br />

neue Erkenntnisse über das Original erleichtern bzw. ermöglichen;<br />

3. Indikation zum Sichtbarmachen und Messen von Eigenschaften des Originals;<br />

4. Variation und Optimierung mittels gezielter Operationen<br />

5. Verifikation von Hypothesen ode rauch technischen Konstruktionen am verkleinerten Modell<br />

6. Projektierung oder Konstruktion durch Reproduktion<br />

7. Steuerung<br />

8. Ersatzfunktion<br />

Konzeptional oder konzeptuell?<br />

• abgegrenzt von “konzeptionell”: eine Konzeption betreffend<br />

• konzeptuell: eine Konzeption aufweisend (austauschbar, unabhängig von der Implementierung)<br />

Theorie: System von Begriffen und Regeln<br />

• Theorie deskriptiv mit deduktivem System<br />

• Theorie induktiv mit Beispielen mit ggf. induktiver Theoriebildung<br />

• Theorie abduktiv<br />

• Theorie exemplarisch<br />

1. Define the Purpose <strong>of</strong> the Theory<br />

2. Select a Paradigm for the Theory<br />

3. Determine the Specific Domain, Situation, or Scope <strong>of</strong> the Theory<br />

4. Identify an Optimal Process on Which to Model the Theory<br />

5. Develop general criteria for goals, methods, <strong>and</strong> conditions<br />

6. Develop Goals for the Theory<br />

7. Develop Methods for the Theory<br />

8. Identify Conditions for the Theory<br />

9. Create a Variable Taxonomy for the Theory<br />

10. Finalize the Theory Prototype<br />

11. Formatively Research the Prototype Theory<br />

12. Finalize the Goals, Methods, <strong>and</strong> Conditions<br />

13. Write Up the Theory<br />

Dreieck von Resultat (Inhalt, Konzept, Symbol)<br />

Programmierung ist ggf. Modellierung (wie kann man dies verallgemeinern)[Darstellung von algorithmischer Modellierung]<br />

Zweck: Lehre; bislang: naive Theorie der Modellierung (semiotisches Dreieck, Qualitätsbegriffe (Korrektheit, Vollständigkeit),<br />

Vereinheitlichung der Terminologie, empirische Herangehen (was ist für den Einstieg eine gute Abstraktion<br />

(z.B. prozeßorientiert scheint einfacher in bestimmten Kulturkreis), Begrifflichkeiten) eigentlich Modell-Original<br />

und unterschiedliche Referenzmodi<br />

Modellierung: was ist ein Modell, woraus besteht es, Modell hat reference mode und bezieht sich auf ein “Original”<br />

(deskriptiv, präskriptiv, konstitutiv, prognostizierend) Modell unterscheidet sich mit Absicht vom Original (siehe<br />

Kaschekbeitrag zu den 3 Eigenschaften) , wobei Unterschied durch Zweck determiniert wird; Modell als Mittler<br />

Abbildungen innerhalb der Triade: Realität, Vorstellung, Realisierung


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 42<br />

descriptiv: Realität2Modell<br />

präskriptiv: Modell2Programm<br />

konstitutiv<br />

idealisierend<br />

vorausschauend<br />

Modellieren: Erstellung eines Modells als Triple (Original, Abbild, Abbildung)<br />

Eigenschaften von Abbildungen: Abbildungseigenschaften (als Relation oder besser Funktion), Verkürzungseigenschaften<br />

(Abstarktion), Pragmatismus der Abbildung (Zweck der Modellierung)<br />

unter Berücksichtigung der Subjektebenen (nur Modelle innerhalb einer Gruppe kommunikationsfähig; Gruppe<br />

agiert als “cultural unit”<br />

Lehren aus <strong>and</strong>eren Disziplinen: aus der Programmierkunst für die Modellierkunst lernen<br />

Dimensionen der Modellierung:<br />

semiotische (Repräsentation durch Sprache: syntaktisch, semantisch, pragmatisch) (siehe auch Hesse: conceptualisation,<br />

domain, pragmatics (bei Hesse nicht)) unter Benutzung einer Sprache (metaphysical adequacy (McCarthy,<br />

Hayes bei Hesse)(a representation is called metaphisically adequate if the world could be ...)) mit Zeichen (siehe<br />

Kangassalo Folien von San Diego (auch in Vorlesung IntInfSyst WS2008)) und ggf. deren Annotation (ggf. auch mit<br />

Beschränkungen der Sprache<br />

Assoziation zur realen Welt (siehe auch Einleitung zu SDKB)<br />

Perception <strong>of</strong> a community/culture (willing to agree on a model)<br />

=================<br />

siehe auch Vorlesung IntInfSystKoinzepte (Kangassalo-Teil)<br />

Dynamic Quality Properties <strong>of</strong> Modelling<br />

Monotonicity: any change leads to a refinement<br />

Incrementality: any step is only based on new requirements or obligations <strong>and</strong> on the current specification<br />

Finiteness: any quality criteria can be checked in finite time applying a finite number <strong>of</strong> checks<br />

Application domain consistency: corresponds to the requirements <strong>and</strong> the obligations <strong>of</strong> the application domain<br />

Conservativeness: any model revision that cannot be reflected already in the current specification is entirely based<br />

on changes in the requirements.<br />

at least conservative <strong>and</strong> application domain consistent<br />

any finite modelling process can be transformed into a process<br />

that is application domain consistent<br />

if the modelling process is application domain consistent then it can be<br />

transformed into an incremental one if we can extract such area <strong>of</strong> change<br />

in which consistency must be enforced<br />

Modellieren:.<br />

Erstellung eines Modells als Triple (Original, Abbild, Abbildung)<br />

Eigenschaften von Abbildungen: Abbildungseigenschaften (als Relation oder besser Funktion), Verkürzungseigenschaften<br />

(Abstarktion), Pragmatismus der Abbildung (Zweck der Modellierung)<br />

unter Berücksichtigung der Subjektebenen (nur Modelle innerhalb einer Gruppe kommunikationsfähig; Gruppe agiert<br />

als “cultural unit”<br />

Lehren aus <strong>and</strong>eren Disziplinen: aus der Programmierkunst für die Modellierkunst lernen<br />

to model<br />

• to plan or form after a pattern or shape


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 43<br />

• to make into an organization (as an army, government, or parish)<br />

• to produce a representation or simulation to model a problem<br />

• to construct or fashion in imitation <strong>of</strong> a particular model<br />

Problems<br />

• attitutes, pr<strong>of</strong>iles <strong>of</strong> modellers<br />

• style <strong>of</strong> specification<br />

• multi-model reasoning<br />

• integration<br />

Quality<br />

Static qualities for a model<br />

<strong>Development</strong> quality: pervasiveness, analysability, changeability, stability, testability, privacy <strong>of</strong> the models,<br />

ubiquity<br />

Internal quality: accuracy, suitability, interoperability, robustness, self-contained, independence<br />

Quality <strong>of</strong> use: underst<strong>and</strong>ability, learnability, operability, attractiveness, appropriatedness<br />

Dynamic qualities within a selected development approach<br />

executability, refinement quality, scope restriction, effect preservation, context explicity, completion tracking<br />

modelling properties: monotonicity, incrementality, ...<br />

see below<br />

Pitfalls<br />

formal versus superformal<br />

(1) wrong: formal specification to everybody better: take the formal specification to the implementor so that you<br />

know what happens <strong>and</strong> talk informally to the stakeholder <strong>and</strong> users but have in mind what kinds <strong>of</strong> ambiguities<br />

might appear, what misunderst<strong>and</strong>ings might appear <strong>and</strong> what clarifications must be made <strong>and</strong> what questions<br />

should be ask to the stakeholder in order to be sure that you have the right formal underpinning<br />

(2) assumption <strong>of</strong>ten made: consistent informaiton with respect to the constraints in the schema <strong>and</strong> resulting<br />

assumption: complete information about each term in the schema<br />

Reasoning: Integrating integrity constraints <strong>and</strong> deduction<br />

Religious wars which model ist the right, most appropriate<br />

Representational models: Hui Ma + KDS: variety <strong>of</strong> viewpoints bound to one conceptual model that is<br />

mapped to the relational (logical) model <strong>and</strong> which are interrelated (e.g., MVD sets that conflict) with<br />

each other <strong>and</strong> may be used in their context without causing problems<br />

Overfitted types: rigid type system with lazy/liederlicher application<br />

Ex.: XML uses list types in most cases as set types but sometimes lists becomes important; therefore we<br />

use list types<br />

Functional dependencies together with XML: in reality is interpreted within the weaker type system (sets)<br />

Missing models: storage models: for implementation<br />

Principles: Map2DB world: Mapping property + Truncation property + Pragmatic property + Distortion property<br />

+ Extension property


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 44<br />

Principles: Application l<strong>and</strong>scapes: Funktionseinheiten (Wittgenstein)<br />

Niches (ER’07)<br />

Principles: CWA - closed schemata: allow to use negation as failure<br />

CWA querying <strong>of</strong> databases becomes possible<br />

Principles: OWA - open schemata: <strong>of</strong>ten used in XML<br />

Open problems <strong>and</strong> not yet solved<br />

Reasoning <strong>and</strong> surprises<br />

• (1) Given types system T (or better schema) <strong>and</strong> a weaker types system T ′ . Given constraints defined<br />

over T ′ . How these constraints can be mapped to constraints in T ?<br />

Ex. see pitfalls -¿ overfitting: XML FD’s<br />

• (2) Given a schema that has a precise semantics <strong>and</strong> given a schema defintion language that uses lazy<br />

interpretation. Find a way to express<br />

Forgetful mappings: like in category theory<br />

• (1) Given a conceptual schema, itmapping to a logical schema <strong>and</strong> the portfolio <strong>of</strong> DB usage defined<br />

over the logical schema .<br />

Which constraints <strong>of</strong> the conceptual schema can be forgotten due to the fact that the portfolio does<br />

not invalidate those constraints, i.e. they are maintained by the portfolio.<br />

Define forgetful mappings that allow to use only those constraints that are necessary for db operating.<br />

Define a class <strong>of</strong> constraints or s<strong>of</strong>t constraints that are necessary for underst<strong>and</strong>ing the application<br />

but that are not necessary for running the application.<br />

Die Theorie der konzeptuellen Modellierung umfaßt:<br />

1. Theorie der Modellierungsbegriffe<br />

Auswahl einer Sprache, Sapir-Whorf-Begrenzung<br />

finden einer gemeinsamen Sprache (Menge von Festlegungen zum Sprachgebrauch, Übereinkunft über Benutzung)<br />

Semantik z.B. lexikalische Semantik mit Topics, Ontologien<br />

Einbettung in einen Anwendungsbereich<br />

siehe auch IntInfSystKonzepte mit Konzept (Name, Intension, Extension, Werteverlauf)<br />

(a) Best<strong>and</strong>teile: Konzepte zur Darstellung von Struktur, Verhalten, Kausalität, Protokolle etc.<br />

mit einer Darstellung von Dingen durch Konzepte, mit Begrenzung der Anwendbarkeit, Modalität, Konfidenz<br />

durch einer Gruppe in einer Welt (d,k,a,m,k,g,w)<br />

mit Integritätsbedingungen (gültig, adäquat, dient dem Zweck) und Qualitätseigenschaften zur Anwendung<br />

der Konzepte (ggf. mit Stachowiak’scher Theorie der methodischen Ordnung (erst das Original,<br />

dann das Modell);<br />

β: ergänzt um Abstraktionsordnung (erst Abstraktum dann Konkretum)[wie z.B. beim Architekten (erst<br />

mock-up, Modell, dann Spezifikation; ausgehend von Begrifflichkeiten und Herangehensweisen, vorgefertigten<br />

Begriffen (Fenster, Türen, Mauern, Säulen))], sowie nachvollziehbarer Begründung, Wiederholbarkeit,<br />

Abbildung auf Wirkung;<br />

Regeln und Methoden zur qualitätsorientierten Entwicklung (z.B. ISO-Ansatz (Eignung für Verwendung));<br />

Hegel “Schön”: Kennen des Vertrauten im Neuen;<br />

Architekten betrachten Hunderte von Blaupausen oder haben einen Meister;<br />

intuitive Beh<strong>and</strong>lung von explizit darstellbaren Wissen


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 45<br />

mit Abstraktionseigenschaft<br />

Fachsprache mit Begriffen<br />

rudimentäre Konzepte wie z.B. in UML ausgehend von Metakonzepten<br />

vorgefertigte Konzepte<br />

ggf. auch mit einer kulturkreisbasierten Methode<br />

(b) Referenzmodus<br />

Beziehung zwichen Modell und Original<br />

Präskriptive Beziehung (ausgehend von existierenden Originalen (S<strong>of</strong>tware), dann Beschreibung)<br />

Deskriptiv (frühe Phasen der SW-Entwicklung; erst requirements, dann Schema)<br />

Konstuitutive/prognostizierende<br />

ggf. auch mit Einbeziehung der community und der Kultur der Modellierer, Beobachter, Implementierer<br />

2. Theorie der Modellierungsaktionen<br />

als eine spezifische Theorie des Problemlösens (Istzust<strong>and</strong>, Zielzust<strong>and</strong>, Operationen zur Zust<strong>and</strong>stransformation)<br />

Ausrichtung (vom abstrakten zum konkreten, vom generischen zu parametrisierten zum speziellen; vom speziellen<br />

Beispiel zu Konzept)<br />

pragmatische Begrenzung (siehe amerikanischer Pragmatismus)<br />

Steuerung durch Qualitätssicherung (composability, controllability, most liberal, timing constraints, operating<br />

guideline)<br />

Stile der Anwendung dieser Aktionen (z.B. overlay-Modell, Specialisation model, ...)(siehe bei Stilen)<br />

finden einer adäquaten Sprache für die Abbildung (domain-specific language) und der entsprechenden Repräsentation<br />

(siehe Dezember 08 email von Ulrich Frank)<br />

finden von gemeinsamen, akzeptablen Begriffen<br />

(a) Schritte<br />

schrittweise, halb-algorithmische Entwicklung<br />

ggf. mit entsprechenden Vorgehensmodellen<br />

(b) Abstraktion/Verfeinerung<br />

1:n Verfeinerung,<br />

Verfeinerung bei Erhaltung von Eigenschaften<br />

Abstraktion bestimmt vom Zweck<br />

Abstraktionsarten (Konstruktionsabstraktion, Sichtweisenabstraktion, Implementationsabstraktion)<br />

(c) Validierung/Verifikation<br />

Beweisen von Eigenschaften<br />

Korrektheit/Vollständigkeit<br />

(d) Finden von Konzepten<br />

(e) Qualitätsmanagement<br />

Adäquatheitsbegriff, Robustheit, Modalität, Vollständigkeit<br />

(f) Transformationstechniken<br />

Kompilierung/Interpretation/Abbildung<br />

Kollaboration<br />

Abstraktion/Verfeinerung<br />

(g) Pragmatik<br />

im Sinne des semiotischen Dreiecks (siehe Vorlesung Abschnitt 1.2.)<br />

ggf. mit entsprechenden sinnvollen Beispielen<br />

(h) Inhalte<br />

Kausalität<br />

Statische Begriffe


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 46<br />

3. Theorie der Modellierungseigenschaften<br />

(a) Gegenst<strong>and</strong> der Modellierung<br />

R. Kaschek: Kulturelle Einheit<br />

Anwendungsgebiet ggf. mit einer Fachsprache<br />

mit gewissem Scope<br />

Organisationseinheit<br />

Zweck der Modellierung durch community<br />

Auswahl der Sprache, Herangehen der community zur Bildung von Begriffen, ggf. mit stereotyping<br />

Auswahl der Sprachebene, der Kategorisierung, der Klassifikation, der Terminologie, der Ontologie<br />

(b) Qualität der Modellierung<br />

Anforderungen an eine Theorie der Modellierung<br />

(a) an die Modellierungssprache: Ausdrucksstärke, Unabhängigkeit der Konzepte, Korrektheit von Transformationen<br />

(b) an die Modellierungsabbildungen:<br />

(c) an das Modellierungsresultat: Komplexität des Modelles, an die Größe, an den <strong>Information</strong>sgehalt<br />

(d) an die Möglichkeiten zur formalen Beh<strong>and</strong>lung, z.B. zum Ableiten von Eigenschaften<br />

Messung<br />

• Qualität der Begriffe<br />

• was heißt richtiges Modell? was heißt angemessen?<br />

• relative (bzgl. des Modelltripels) Vollständigkeit<br />

• “richtig” und “korrekt” nur relativ zur verwendeten Theorie; keine absolute Korrektheit möglich<br />

• einfache Modelle: w<strong>of</strong>ür, wann, mit welchen Partnern<br />

• wann ist ein Modell ausreichend (“good enough s<strong>of</strong>tware”)<br />

• gut/schön, schief (“windschief”)<br />

• Qualität der Aktionen<br />

Qualität der Aktionen<br />

Modellqualität (nach ISO 9126, 15504)<br />

Qualität des Modelles (Modell: Beschreibung mit bestimmten Ziel)<br />

je nach Ziel, unterschiedliche Kriterien<br />

Validierung und Relevanz gegenüber Welt<br />

Qualität der Repräsentation<br />

reusability (context-sensitivity)<br />

functionality: suitablity, accuracy, interoperabilty<br />

maturity<br />

underst<strong>and</strong>abiltiy (Komplexitätsmetriken McCabe, Anzahl der Elemente je Digramm, Anzahl der Kreuzungen<br />

von Katen, modularisation), ...<br />

Merkmale der Prozeßqualität für Modellerstellung und -verwendung<br />

(c) Ökonomie der Modellierung<br />

ggf. auch unter Einbeziehung von st<strong>and</strong>ards<br />

sowie mit Darstellung der kognitiven Distanz, wobei Modell einen echten Mehrwert besitzen müssen<br />

4. Modell-Management<br />

Benutzung von entsprechenden Modellfamilien in ihrem Zusammenhang ggf. auch unter Rückgriff auf attributierte<br />

Grammatiken<br />

nicht nur von Metamodellen<br />

je nach Zweck und daraus resultierenden Inhalten<br />

(a) Modifikation von Modellen


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 47<br />

(b) Lebenszyklus von Modellen<br />

Fortschrittsdarstellung<br />

deskriminierende Faktoren, was ist Fortschritt, was ist Qualität<br />

ggf. auch mit Beibehaltung falscher Modelle (“Erde ist eine Scheibe”)<br />

(c) Ökonomie der Modelle<br />

Kosten: Bemessung der verursachten Kosten<br />

variable Nutzungskosten<br />

Fixkosten (Schulung, Erstellung, ... )<br />

in Relation zum vermuteten Nutzen, da Modellierung eine Gemeinkostentreiber ist<br />

Angemessenheit ggf. auch mit einfachen, aber verständlichen Erklärungen (z.B. Atommodell)<br />

Risikovermeidung<br />

“good enough” S<strong>of</strong>tware<br />

Nutzen:<br />

Verhältnis von Kosten und Nutzen - Ökonomie:<br />

(d) Referenzmodellierung<br />

mit generischen Modellen<br />

(e) Strategie/Taktik<br />

Größe der Modelle (unterschiedliche Metriken für die Größe von Modellen; Verfahren zur Bewertung<br />

eienr Abstraktion)<br />

Modularisierung<br />

Architektur der Modelle<br />

5. Aspekte<br />

(a) Statisch<br />

(b) Dynamisch<br />

(c) Kollaborativ<br />

6. Theorie der Modellierungsstile<br />

als Ergebnis der Theorie der CM (siehe rechte Seite mindmap) z.B. auch overlay-Modellierung<br />

(a) Kollaboration<br />

der Akteure mit Kommunikation, Kooperation, Koordination sharing agreed, common representation<br />

(b) Reference model injection<br />

(c) Refinement<br />

(d) Separation <strong>of</strong> concern<br />

7. Ziel der CM<br />

SeparationOfConcern.eps<br />

• Funktionen: analog zu den Funktionen der Sprache<br />

• Analyse<br />

Domänenmodellierung (Probleme, Lösung, Prozesse, Strukturen)<br />

Embedded: MiL , SiL, HiL (model, s<strong>of</strong>tware, hardware), frühe Performanzevaluierung, QoS, Robustheit,<br />

Business: BPM, class diagrams, CSD, business objects, IT as a l<strong>and</strong>scape, cartography<br />

Risikobeurteilung


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 48<br />

• Konstruktion<br />

von Systemen<br />

business: datenintensiv<br />

MDD, MDA, UML: CSD/CD<br />

embedded: berechnungsintensiv<br />

Mißbrauch von Werkzeugen wie MatLab, Simulink, Targetlink<br />

• Kommunikationsfunktion<br />

siehe auch Searle und Hausser zur Pragmatik der Sprachbenutzung<br />

multiple stakeholder<br />

Verständnis<br />

siehe Sk<strong>and</strong>inavienmodell zum kommunikativen Akt (siehe β und WIS book)<br />

für wen: Kunde (systemnutzer, <strong>and</strong>ere Stakeholder) und Entwickler (Komponentenentwickler, Leiter,<br />

Team member), für Zertifizierungsbehörde<br />

typische Quality in use Kriterien wie z.B. Verständlichkeit<br />

reasoning for evolution, Wartbarkeit<br />

Variantenbildung (insbesondere embedded aber auch business (z.B. Lagerverwaltung)) und Adaption<br />

System rationale<br />

Risiken, Aufw<strong>and</strong>sverständnis, Robustheitsbeurteilung<br />

Modelle zur Kommunikation<br />

• Ziel: Requirements; Vertragsgestaltung SLA; Produktbeschreibung, Werbung; Aufw<strong>and</strong>seinschätzung<br />

(Budget/Ressourcen); Entwicklungsvorbereitung; Entwurfsentscheidung; Alignment mit <strong>and</strong>eren<br />

Gruppen; Koordination in der Entwicklung; Wissensweitergabe und Bewahrung (H<strong>and</strong>buch,<br />

Schulungen, Seminare; Systemdoko; H<strong>and</strong>lungsanweisungen)<br />

• Eigenschaften: je nach Zweck und Ziel; Veranschalichung; Durchgängigkeit; einheitliche Begriffswelt<br />

(Glossar); Einfachheit (bzgl. Partner)(Freih<strong>and</strong>tauglichkeit; spontan erstellbar, wenige<br />

Symbole, wenige Konzepte); beispielhaft; Präzision; Angemessenheit; Ästhetik; secondary<br />

notation (Layout, Graphische Muster (Farbcodierung))<br />

• Eigene Rolle: Dolmetscher, Botschafter<br />

• Partnerrolle: Nutzer, Betreiber; Experten; Entwickelr; Zulieferer; Management (Auftragnehmer,<br />

-geber); Support<br />

• Modelltypen: für Prozesse; für Objekte und Verhalten; für Architekturen; preskriptiv und deskriptiv


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 49<br />

• Prüfungsfunktion<br />

Verifikation, Implementierung<br />

Reasoning functions<br />

Entscheidung machen, begründen<br />

Vollständigkeit<br />

Relevanz<br />

weitere Qualitätskriterien<br />

Zachman (bewußt welche, warum, wann wo, warum, ...)<br />

siehe auch Kommunikation für Zertifiizierer<br />

Angemessenheit<br />

Vermarktbarkeit<br />

Ästhetik<br />

embedded: compliance, safety<br />

business: compliance, security<br />

• Dokumentation von Entwurfsentscheidungen<br />

-alternative, verwendete und abgelehnte Konzepte, Varianten, zugrundegelegte Modelle, Paradigmen,<br />

Referenzentscheidungen, Referenzmodelle, Dokumentation des modelling gaps (was wird derzeit<br />

betrachtet, was könnte einmal betrachtet werden, was wird nie betrachtet werden) und orthogonal<br />

dazu (was ist relevant)<br />

• Beherrschung<br />

• Komplexität<br />

Variablität<br />

configuration (siehe auch configuration management)<br />

siehe auch Modularisierung<br />

Unvollständigkeit, Beherrschung der Unvollständigkeit<br />

Beherrschung der Zerlegung (siehe Wissenschaftstheorie: Technologie)<br />

• Verbesserung<br />

• Umsetzung<br />

realistische und umsetzbare Umsetzungsvorschläge<br />

8. Resultate der CM<br />

• Impact: see ER08 PhD workshop<br />

• State <strong>of</strong> the art (Zürich 2009)<br />

(a) Denn sie wissen nicht, was sie tun: Passung der Modelle, Realitätsbezug, Pragmatismus, quantitativ,<br />

qualitativ<br />

(b) Babylonische Sprachverwirrung: Mittel, Zielgruppen, Schulen Domänen, Kompetenzen<br />

(c) It’s not a bug, it’s a feature: de-facto-St<strong>and</strong>ards, Lobbyisten<br />

(d) Was interessiert uns unser Geschwätz von gestern: stetige Aktualisierung von Modellen im Projektfortschritt;<br />

Evolution; Wartbarkeit, Versionierung, ...<br />

(e) Jeden Tag ein neues Rad: Wiederverwendung von Modellen, Varianten von Modellen, Produktlinien<br />

(f) Entscheidend ist was hinten herauskommt: Wirtschaftlichkeit der Modellierung; was bringt die Modellierung,<br />

welche Finanzen<br />

(g) Konkurrenz ist das Geschäft: Inhomogenität, St<strong>and</strong>ardisierung von Modellen, Werkzeuge<br />

(h) Laokoon forever: Komplexität, Modularisierung, Visualisierung = Zeitverschwendung?; abstrakte<br />

versus konkrete Syntax<br />

(i) Wir sind alle Traumtänzer: fehlende mathematische Grundlage; ausgefranste Syntax, unvollständige<br />

formale Semantik


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 50<br />

(j) Friss oder stirb: Kommunizierbarkeit der Modelle (Verständlichkeit, kognitiver Aufw<strong>and</strong>, verschieden<br />

Zielgruppen<br />

(k) Gut leben im Elfenbeintum: fehlende Praktikabilität von Modelltransformationen (horizontal (life<br />

cycle, verschiedene Werkzeuge); vertikal im Entwicklungsprozess z.B. Pragrammtransformation)<br />

(l) Modern times: Automatisierungswahn mit z.B. ausführbaren Modellen<br />

(m) Wo ist der Ariadne-Faden: back tracing z.B. zum Zwecke des debugging, nachträgliches upgrading<br />

von Modellen<br />

9. Principles <strong>of</strong> CM<br />

siehe Brassard/Harel: Kategorisierung von Algorithmen (devide et impera, ...)<br />

(a) Abstraktion<br />

• von unten für oben (Abstraktionsschchten)<br />

• durch Konzentration auf einzelen Aspekte, Facceten, Komponenten, scoping, Lokalisierungsabstraktion<br />

• Kapselung (Implementationsabstraktion)<br />

• Komponentenabstraktion, class, aggregate, hierarchy<br />

• durch Zusammenfassung zu pattern/templates<br />

siehe auch: Wissenschaftstheorie was ist Abstraktion<br />

Modelle für Stakeholder, Nichtmodellierer (siehe auch model suites)<br />

siehe auch Modularisierung<br />

(b) Modularisierung<br />

Implementation <strong>and</strong> localisation abstraction<br />

data, functional, <strong>and</strong> control decomposition<br />

Explicit modularisation: skeleton-based modelling <strong>and</strong> architecturing<br />

interfaces <strong>and</strong> collaboration <strong>of</strong> components<br />

side-effect free computation <strong>and</strong> controlled effect on partners<br />

Implicit modularisation: through name spaces<br />

Advantages<br />

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, scoped changes, evolution <strong>and</strong> extension, analysability, conservativeness, incrementality,<br />

testability<br />

Disadvantages<br />

does not support agile development <strong>and</strong> brute-force prototyping<br />

SOA ML wie wird component zugeschnitten z.B. geschäftsbezogen<br />

Komponente<br />

Schnittstellen: Protokolle, Funktionen, Parameter, Wertebereiche<br />

Verantwortlichkeiten<br />

Ggf. nach Herangehensweise von Technischer Architektur<br />

• Sichten (-gliederung) (Kontextsicht (technische Infrastruktur), Struktursicht, Verhaltenssicht, Abbildungssicht,<br />

Anwendungssicht (Quasar)<br />

• Abstraktion, hierarchische Gliederung u.a. Abstraktionsarten


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 51<br />

• Zerlegung nach Zuständigkeiten<br />

• Schnittstellen mit Zusicherung<br />

• konzeptionelle Integration<br />

Probleme die dabei zu lösen sind<br />

• Bezüge und Abhängigkeiten<br />

• Unvollständigkeit und Ungenauigkeit<br />

• open world potential composability<br />

Konsistenzsicherung zwischen Sichten<br />

Moduldefinition<br />

Architektur als logische Architektur<br />

Modularisierung nach Parnas (siehe Artikel zu aspektorientierter Programmierung) unabhängige Units <strong>of</strong><br />

deployment, maintenance Sichten (reformulation, representation change; J.-D. Zucker) und Abstraktion<br />

(domain hiding, co-domain hiding, domain reduction, co-domain reduction, domain aggregation, transformation;<br />

J.-D. Zucker) meta-structures nach Thalheim funktionale Dekomposition Hierarchisierung,<br />

Layers (Schichtenbildung), Komposition Unabhängigkeitskonzept, Orthogonalisierung<br />

Parametrisierung<br />

Modularisierung bei Architekturen muß mit gewählten Sichtweisen harmonisierbar sein (Kontext-, Daten-<br />

, Funktionen- und Funktionsweisearchitektur)(ggf. <strong>and</strong>ere Arten von Harnesses für jede Art)<br />

Parnas principle <strong>of</strong> information hiding<br />

Liskov principle <strong>of</strong> substitutability (Andere Formulierung von totalem Polymorphismus): Wenn es für<br />

jedes Objekt O 1 vom Typ S ein Objekt O 2 vom Typ T gibt, so daß sich für alle Programme definiert in<br />

T das Verhalten nicht ändert, wenn O 2 durch O 1 ersetzt wird: Dann ist S eine Subtyp von T . (Liskov<br />

Prinzip, 1988)<br />

Skelett-Technik bzw. Kristallisationstechnik zur Modularisierung: Modalisierung durch Einführung eines<br />

Skeletts mit expliziter Assoziation von Teilstrukturen zu Skelett- Elementen und Herausfaktorisierung<br />

von Bindern zu <strong>and</strong>eren Skelett-Elementen<br />

Modularisierung nutzt Abstraktion<br />

• Komponentenabstraktion: Generalisierung, Aggregation, Klassifizierung; Skelett- Technik zur Kristallisation<br />

• Lokalisierungsabstraktion: Lokalisierung des Verständnisses;; Dekontextualisierung; was gehört zusammen,<br />

name space<br />

• Implementationsabstraktion: gemeinsame Nutzung von Komponenten, Separation input/output/sharing<br />

from control; components hide the internal details <strong>and</strong> processing from each other<br />

Data, functional, <strong>and</strong> control decomposition<br />

• Explicit modularisation: skeleton-based modelling <strong>and</strong> architecturing, interfaces <strong>and</strong> collaboration<br />

<strong>of</strong> components, side-effect free computation <strong>and</strong> controlled effect on partners<br />

• Implicit modularisation: through name spaces, Algol 60 functions as parameter<br />

Principle <strong>of</strong> syntactical substitutability: If a composition system or module only binds the declared hooks<br />

<strong>of</strong> the declared composition interface, the composition system can ensure that data are exchanged only<br />

for variants that have syntactically compatible composition interfaces.<br />

• Architektur<br />

ggf. auch für Pattern von Architekture<br />

siehe auch embedded SOA<br />

ganzheitliche Architektur<br />

• Dimension 1:


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 52<br />

• contextual : why<br />

• what: conceptual<br />

• how: logical<br />

• with what: physical<br />

• Integrated architecture framework (IAF) in 3 Dimensionen<br />

• orthogonal dazu:<br />

• Business aspects (business (services), information (services)),<br />

• IT aspects (IS, Technology infrastructure)<br />

• orthogonal dazu (als dritte Dimension): security, governance<br />

SAP-Umfrage 2008<br />

Architektur stark mit Organisation verwoben, Abstimmung, Politik<br />

Evolutionsstrategien zur Weiterentwicklung von Produkten<br />

Enterprise SOA for mid-size companies (Architecture <strong>of</strong> AP /By<strong>Design</strong> (R. Buck- Emden, J. Boeder,<br />

B. Gtoene, M. Luenzmann; internal SAP, 2008)<br />

β-Ansatz wie für workplace <strong>and</strong> workspace<br />

siehe auch Vorlesung IntInfSyst<br />

• logische<br />

• story space architecture<br />

• physische<br />

einschließlich Kontextarchitektur<br />

(c) Kopplung<br />

lose und enge Kopplung, eager/lazy enforcement<br />

10. Special approaches<br />

• instance-based CM<br />

similar to ER’08 PhD workshop: test-driven CM<br />

• model suites<br />

• co-design<br />

11. Choices for Specification: Agents<br />

Context or localisation abstraction<br />

Distributed data, operation <strong>and</strong> control with isolation <strong>of</strong> effects <strong>and</strong> explicit macro-consistency enforcement<br />

Submachines collaboration through specified communication, coordination <strong>and</strong> cooperation,<br />

Advantages<br />

separation into local <strong>and</strong> global behaviour, explicit scopes <strong>of</strong> functions, user oracles <strong>and</strong> open specifications,<br />

monotonicity, testability, changeability, monotonicity, incrementability, interoperability, self-contained, independence<br />

Disadvantages<br />

separation <strong>of</strong> functions depending on agents, abstraction


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 53<br />

The theory fundamentals for modeling<br />

set theory<br />

graph theory<br />

combinatorics<br />

mathematical logics<br />

construction theory<br />

The s<strong>of</strong>tware development or generally the modelling process is intentionally or explicitly ruled by a number <strong>of</strong><br />

development strategies, development steps, <strong>and</strong> development policies. Modelling steps lead to now specifications to<br />

which quality criteria can be applied. Typical quality criteria are completeness <strong>and</strong> correctness in both the syntactical<br />

<strong>and</strong> semantical dimensions. We assume that at least these four quality criteria are taken into consideration. The<br />

modelling process can be characterised by a number <strong>of</strong> (ideal) properties:<br />

Monotonicity: The modelling process is monoton in, if any change to be applied to one specification leads to a<br />

refinement. It thus reflects requirements in a better form.<br />

Incrementality: A modelling process is iterative or incremental if any step applied to a specification is only based<br />

on new requirements or obligations <strong>and</strong> on the current specification.<br />

Finiteness: The modelling process is finite if any quality criteria can be checked in finite time applying a finite<br />

number <strong>of</strong> checks.<br />

Application domain consistency: Any specification developed corresponds to the requirements <strong>and</strong> the obligations<br />

<strong>of</strong> the application domain. The appropriateness can be validated in the application domain.<br />

Conservativeness: A modelling process is conservative if any model revision that cannot be reflected already in the<br />

current specification is entirely based on changes in the requirements.<br />

Typical matured modelling processes are at least conservative <strong>and</strong> application domain consistent. Any finite modelling<br />

process can be transformed into a process that is application domain consistent. The inversion is not valid but depends<br />

on quality criteria we apply additionally. If the modelling process is application domain consistent then it can be<br />

transformed in an incremental one if we can extract such area <strong>of</strong> change in which consistency must be enforced.<br />

Assumptions <strong>of</strong> Layered Modelling<br />

We elaborate one kind <strong>of</strong> modelling in more detail. Layered modelling is based on modularisation <strong>and</strong> on architectures<br />

<strong>of</strong> the system. The language layering approach we use has already been reported in a similar form in [Wal97].<br />

Layered modelling is based on the architectural assumption that the system can be separated into components<br />

<strong>and</strong> a general layering is achievable. We base layered modelling on the unique name assumption, the domain closure<br />

assumption, <strong>and</strong> the universal machine assumption. We may use the closed world assumption <strong>and</strong> the unique meaning<br />

assumption. Layered modelling is not restricted to the last two assumptions.<br />

In general, we use architecture-driven development that starts first with the prescription <strong>of</strong> the architecture pattern<br />

<strong>and</strong> style. The agent-oriented specification <strong>of</strong> allows the development <strong>of</strong> a system as a collaborating society <strong>of</strong> subsystems.<br />

This society uses shared functions where the sharing is based on contracts for the usage <strong>of</strong> these functions,<br />

on workflows that describe the cooperation among these sub-systems, <strong>and</strong> on implicit communication based on the<br />

locations for these functions [ST07]. We may use different views <strong>of</strong> the same architecture [Sie04] such as technical<br />

views displaying the modules with their functionality, application views displaying activity zones depending on the<br />

stage <strong>of</strong> the application, infrastructure views displaying the dependence <strong>of</strong> the system from its infrastructure <strong>and</strong><br />

supporting systems, or the context view that considers the whole organisational, story <strong>and</strong> application context.


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 54<br />

Patterns <strong>and</strong> Styles <strong>of</strong> Modelling<br />

• pattern:<br />

Structure-oriented perspective: structural description <strong>of</strong> the system + semantic perspective<br />

Behavior-oriented perspective: behavior <strong>of</strong> the system during its lifetime<br />

event approaches, Petri-net approaches, predicate transition systems<br />

Process-oriented perspective operation <strong>of</strong> the system<br />

Advantages<br />

development methodology <strong>and</strong> scheduling, results in development strategies (top-down, inside-out, ...), analysability<br />

Disadvantages<br />

depends on whether a system will have this perspective<br />

• styles:<br />

Depending on the style <strong>of</strong> development<br />

Structure-oriented pattern such as<br />

• Compacting patterns<br />

• Typing patterns<br />

• Unfolding patterns<br />

• Union patterns<br />

system rule pattern<br />

separation<br />

pattern<br />

variation<br />

pattern<br />

state transition control virtual machine convenience<br />

pattern pattern pattern pattern<br />

Abbildung 6: Kind <strong>of</strong> System Rule Pattern<br />

Advantages<br />

efficient development with controlled refinement, repeatability, robustness, incrementality<br />

Disadvantages<br />

restrictions in the development style, incrementality<br />

• Choices for Specification: Invariants<br />

Separation <strong>of</strong> concern: syntax, semantics <strong>and</strong> pragmatics


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 55<br />

Operational representation by integration <strong>of</strong> invariants into the programs or rules<br />

Descriptive representation with explicit specification <strong>and</strong> refinement obligations<br />

• Eager enforcement<br />

• Lazy enforcement<br />

• Refusal enforcement<br />

Advantages<br />

analysability, changeability, stability, testability, underst<strong>and</strong>ability, learnability, robustness, separation <strong>of</strong> syntax<br />

<strong>and</strong> semantics<br />

Disadvantages<br />

refinement quality, scope restriction, effect preservation, context explicity, monotonicity, incrementality, completeness<br />

<strong>of</strong> invariant sets, reasoning <strong>and</strong> axiomatisation restrictions<br />

• Choices for Specification: Modelling Assumptions - Never Explicitly Given<br />

First by example: Entity-Relationship Model<br />

• inductivity (updates are essentially atomic)<br />

• compositionality for any type construction<br />

• pragmatic assumptions names by noun as st<strong>and</strong>ard markers<br />

• closed schemata<br />

• context-free specifications<br />

• canonical semantics (e.g. sets instead <strong>of</strong> multisets, ...)<br />

• value-identifiability <strong>of</strong> objects<br />

• explicitly only computable functions <strong>of</strong> low complexity<br />

Additional modelling assumptions <strong>of</strong> the extended ER model (HERM)<br />

• unique name, unique flavour, fully fledged domains<br />

• non-triviality <strong>of</strong> structuring <strong>of</strong> compositional types<br />

• strictly hierarchical schemata<br />

• keys with at least one component<br />

• inside identification, no weak types<br />

• explicit bounded recursion<br />

• Choices for Specification: Modelling Assumptions<br />

Syntactical assumptions<br />

• Unique name assumption<br />

• Closed world assumption<br />

• Domain closure assumption<br />

• Unique meaning assumption<br />

• Universal machine assumption<br />

Architectural assumptions such as layering<br />

Advantages<br />

generic documentation <strong>and</strong> explanation, pervasiveness, stability, testability, underst<strong>and</strong>ability, learnability, ubiquity, monotonicity, incrementality,


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 56<br />

Disadvantages<br />

rigidity <strong>of</strong> requirements<br />

• Typical Styles <strong>of</strong> Functions Declaration<br />

Beispiele zu ASM:<br />

Predicative style based on the notion <strong>of</strong> a characteristic function<br />

Student : StudentID × Birthdate × Address → Boolean<br />

Functional style based rigid function presentation<br />

student : StudentClass × Birthdate → Date<br />

super : Class → Class<br />

Functional dependence style based on implicit invariants<br />

direction : Lift → Direction<br />

crtStateOfLift : Lift → { halting, moving }<br />

floor : Lift → Floor<br />

buttonPressed : Lift × Floor → Boolean<br />

property <strong>of</strong> lift<br />

lift states<br />

relationship<br />

relationship<br />

Complete separation <strong>of</strong> properties based on universal relations<br />

birthdate : StudentID → Birthdate<br />

address : StudentID → Address<br />

Generic style combining properties to a bundle<br />

getData : StudentID × property → string<br />

getData : StudentID × ”BirthDate” → string<br />

globals : Class × Field → Value<br />

folding <strong>of</strong> types<br />

• <strong>and</strong>ere Qualitätscharakteristika<br />

pervasiveness, analysability, changeability, stability, testability,<br />

privacy <strong>of</strong> the models, ubiquity<br />

accuracy, suitability, interoperability, robustness,<br />

self-contained, independence<br />

underst<strong>and</strong>ability, learnability,<br />

operability, attractiveness, appropriatedness<br />

executability,<br />

refinement quality, scope restriction, effect preservation, context explicity, completion tracking<br />

modelling properties: monotonicity, incrementality, ...<br />

Refinement during Modelling<br />

• Layered Modelling<br />

Based on assumptions<br />

1. unique name assumption<br />

2. domain closure assumption<br />

3. universal machine assumption.


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 57<br />

4. additionally: closed world assumption, unique meaning assumption<br />

The system can be separated into components<br />

1. prescription <strong>of</strong> the architecture pattern <strong>and</strong> style<br />

2. explicit sharing <strong>of</strong> functions<br />

3. views <strong>of</strong> the same architecture<br />

• technical views<br />

• application views<br />

• infrastructure views<br />

• context view<br />

• Deriving Plans <strong>and</strong> Primitives for Refinement<br />

Inside-out refinement<br />

Top-down refinement<br />

Bottom-up refinement<br />

Modular refinement<br />

Mixed skeleton-driven refinement<br />

These different kinds <strong>of</strong> refinement styles allow one<br />

Derivation <strong>of</strong> plans for refinement <strong>and</strong> primitives<br />

Generic Refinement Steps <strong>and</strong> Their Correctness<br />

The perspectives <strong>and</strong> styles <strong>of</strong> modelling rule the kind <strong>of</strong> refinement styles. As an example we consider structureoriented<br />

strategies <strong>of</strong> development depicted in Figure 7:<br />

Inside-out refinement: Inside-out refinement uses the given machine for extending it by additional part. These parts<br />

are hocked onto the current specification without changing it.<br />

Top-down refinement: Top-down refinement uses decomposition <strong>of</strong> functions in the vocabulary <strong>and</strong> refinement <strong>of</strong><br />

rules. Additionally, the system may be extended by functions <strong>and</strong> rules that have not yet been considered.<br />

Bottom-up refinement: Bottom-up refinement uses composition <strong>and</strong> generalisation <strong>of</strong> functions <strong>and</strong> <strong>of</strong> rules to more<br />

general or complex ones. Bottom-up refinement also uses generation <strong>of</strong> new functions <strong>and</strong> rules that have not<br />

yet been considered.<br />

Modular refinement: Modular refinement is based on parqueting <strong>of</strong> applications <strong>and</strong> separation <strong>of</strong> concern. Refinement<br />

is only applied to one module <strong>and</strong> does not affect others. Modules may also be decomposed.<br />

Mixed skeleton-driven refinement: Mixed refinement is a combination <strong>of</strong> refinement techniques. It uses a skeleton<br />

<strong>of</strong> the application or a draft <strong>of</strong> the architecture. This draft is used for deriving plans for refinement. Each<br />

component or module is developed on its own based on top-down or bottom-up refinement.


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 58<br />

structure-oriented strategies<br />

✙ <br />

flat<br />

second-order controlled<br />

(first-order)<br />

(uncontrolled)<br />

(one-dimensional)<br />

✠ ❘ ✠ ❘<br />

✠<br />

bottom-up<br />

1. design all<br />

basic concepts<br />

2. build more<br />

complex concepts<br />

from them<br />

mixed<br />

❘ (skeleton-based flat)<br />

top-down 1. design general<br />

module schema<br />

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

1. design (skeleton)<br />

all main concepts 2. refine each module<br />

2. refine concepts (bottom-up or<br />

top-down)<br />

modular<br />

(design by modules)<br />

1. design basic modules<br />

with interface<br />

2. (iteration step)<br />

connect modules<br />

or design<br />

combined modules<br />

Abbildung 7: 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 />

These different kinds <strong>of</strong> refinement styles allow one to derive plans for refinement <strong>and</strong> <strong>and</strong> primitives for refinement.<br />

[Bör03, Sch05] have developed a general theory to refinement. Control <strong>of</strong> correctness <strong>of</strong> refinement takes into<br />

account (a) a notion <strong>of</strong> refined state <strong>and</strong> refined vocabulary, (b) a restriction to states <strong>of</strong> interest, (c) abstract computation<br />

segments, (d) a description <strong>of</strong> locations <strong>of</strong> interest, <strong>and</strong> (e) an equivalence relation among those states <strong>of</strong> interest.<br />

The theory developed in [Bör03, Sch05] allows to check whether a given refinement is correct or not.<br />

A typical engineering approach to development <strong>of</strong> work products such as programs or specifications is based on a<br />

general methodology, operations for specification evolution, <strong>and</strong> a specification <strong>of</strong> restrictions to the modelling itself.<br />

Each evolution step must either be correct according to some correctness criterion or must lead to obligations that<br />

can be used for later correction <strong>of</strong> the specification. The correctness <strong>of</strong> a refinement step is defined in terms <strong>of</strong> two<br />

given system together with the equivalence relations. Already in [Sch05] it has observed that refinement steps can be<br />

governed by contracts. We may consider a number <strong>of</strong> governments [BST06] in the sense <strong>of</strong> [Cho82]. However we<br />

should take into account the choices for style <strong>and</strong> perspectives.<br />

Refinement pattern<br />

Perspectives<br />

<strong>and</strong> styles<br />

✲<br />

❄<br />

Derivation <strong>of</strong><br />

generic<br />

refinement<br />

steps<br />

✛<br />

<strong>Development</strong><br />

contract<br />

❄<br />

Generic refinement step<br />

Consistency<br />

conditions<br />

✲<br />

❄<br />

Derivation <strong>of</strong><br />

specific<br />

refinement<br />

steps<br />

✛<br />

specification<br />

assumptions<br />

❄<br />

Refinement step<br />

Abbildung 8: The Derivation <strong>of</strong> Correct Refinement Steps<br />

Given a refinement pattern, perspectives, styles <strong>and</strong> contract, we may derive generic refinement steps such as data<br />

refinement, purely incremental refinement, submachine refinement, <strong>and</strong> (m,n) refinement. The generic refinement is<br />

adapted to the assumptions made for the given application <strong>and</strong> to consistency conditions. Typically such consistency<br />

are binding conditions <strong>of</strong> rules to state <strong>and</strong> vocabulary through the scope <strong>of</strong> rules. The general approach we envision


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 59<br />

is depicted in Figure 8.<br />

1.5.2 Das Modellierungsloch<br />

Urteile.<br />

extending the Pfänder approach to<br />

(concept, kind, valuation (value, modality, existence, world)) or<br />

(concept (name, world (name, existence)), kind (name, kind expression), valuation (value, modality))<br />

R. Kaschek’s Beobachtung:<br />

Unsere Vorstellung vom Modellierungsurteil haben wir in Bild 9 in vereinfachter Form zusammengefaßt.<br />

“Realität”<br />

Ausschnitt<br />

der Realität<br />

✻<br />

Dinge der<br />

Realität<br />

✛<br />

Beobachtete<br />

Eigenschaft<br />

✲<br />

“Begriff”<br />

Prädikator<br />

✻<br />

✻<br />

Urteilsart<br />

Modellierungsurteil<br />

✻ ✻<br />

Kontext<br />

✻<br />

Theorie<br />

Revision<br />

☛ im Entwicklungsprozeß<br />

❯<br />

agiert<br />

im<br />

✛<br />

unter<br />

Benutzung<br />

❄<br />

Modalität<br />

“Schema”<br />

als Resultat und Ausschnitt<br />

eines Entwicklungsprozesses<br />

❄<br />

Individuum<br />

❄<br />

Referenzmodellierung<br />

Gewißheit<br />

Schärfe<br />

Abbildung 9: Modellierungsurteile durch Individuen im Modellierungskontext und das Dilemma der Modellierung<br />

Mit der Darstellung in Bild 9 wird gleichzeitig auch das Dilemma der Modellierung sichtbar. Sind nach der Modellierung<br />

nur noch die Modellierungsurteile verfügbar, dann sind nicht mehr die impliziten Annahmen, die theoretischen<br />

Grundlagen, die Beobachtung der Realität und <strong>of</strong>t auch die Spezifika des Entwicklers nachvollziehbar. Damit<br />

entstehen Schemata, die der Nachwelt nicht mehr verständlich erscheinen, die zu einer Doppelentwicklung innerhalb<br />

von großen Anwendungen, wie z.B. bei SAP R/3, führen und neben Redundanz- auch erhebliche Konsistenzprobleme<br />

besitzen.<br />

The Knowledge Gap on <strong>Development</strong> Decisions<br />

Recording Decisions Partially Leads to Incompleteness


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 60<br />

1.5.3 Was ist ein Modellierungskonzept<br />

Vorteile konzeptbasierter Modellierung.<br />

Einfacheres Auffinden von Anfragen durch konzeptbasierte Anfrageformulierung und begriffsbasierte Schnittstellen<br />

siehe unten Bild 14<br />

Wiederverwendung von Schemata<br />

...<br />

Die konzeptuelle Beschreibung umfaßt auch der Beschreibung der Funktionsweise eines implementierten <strong>Information</strong>ssystemes,<br />

d.h. auch die Beschreibung der Content-Typen und des Story-Raumes. Gewöhnlich wird dieser Teil<br />

dem Präsentationssystem zugeordnet und erst später entwickelt. Damit werden Performanzengpässe von Anfang an<br />

mit ausgelöst.<br />

Wir führen hier erstmals eine allgemeine Theorie der Content-Objekte 6 und Content-Typen ein. Content ist ein<br />

derzeit häufig überladener Begriff. Man verlangt heute von einem Content-Management-System (CMS), daß folgende<br />

Teilsysteme und Lösungen eingeschlossen werden.<br />

• Portal-Verwaltung, Enterprise Content Management;<br />

• Content-Anlieferung, Agentur-Lösungen, Content-Provider, Customer Relationship Management, E-Commerce-<br />

Lösungen, E-Marketing, Online Payment;<br />

• Dokument-Verwaltung, -Archivierung, und -Suche, Unterstützung von Dokumenten-Arbeitsabläufen;<br />

• Intelligente, benutzerspezifische Erzeugung von Inhalten;<br />

• ASP-Lösungen, Media Asset Management;<br />

• Group-Ware-Lösungen, Intranet-Lösungen;<br />

• Redaktionssystem, Ausspielsystem, Erneuerungssystem;<br />

• Skalierbare Lösung, Agententechnologien, Performance Monitoring, Sicherheitstechnologien, Hochverfügbarkeit;<br />

• Open-Source-Lösungen, Community-Lösungen.<br />

Diese Liste ist zu umfangreich. Außerdem wird damit der Begriff Content vollständig überladen. Stattdessen bevorzugen<br />

wir eine Separation von Gesichtspunkten, Begriffsbildungen und Aspekten so, wie sich dies in der Semiotik,<br />

der Linguistik und der Mathematischen Logik eingebürgert hat. Wir unterscheiden deshalb zwischen<br />

Content als Extension eines Referenzobjektes (Intension), als eine Menge oder i.a. Kollektion von Daten, Nachrichten<br />

oder <strong>Information</strong>en,<br />

Konzept als Plan, als Zusammenfassung eines Vorhabens oder Begriffes in konsistenter, überschaubarer und nachvollziehbarer<br />

Form, mit dem die Gesamtheit der Merkmale zusammengefaßt wird und<br />

6 Obwohl auch diese Arbeit eine weitgehende Verwendung deutschsprachiger Begriffe bevorzugt, müssen wir beim Begriff “Content”<br />

bleiben. Die richtige deutsche Übersetzung führt zum Begriff “Inhalt”. Da dieser Begriff in der Umgangssprache und der Informatik zu breit<br />

verw<strong>and</strong>t wird, bleiben wir beim Begriff “Content”.


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 61<br />

Begriff als Intension oder als Versuch des Zeichenbenutzers, Erscheinungen zu erfassen, in einer kognitiven Einheit<br />

zusammenzufassen und in einen Zusammenhang zu bringen, der eine Abstraktion enthält, die das Wesentliche<br />

für den Interpreten, Benutzer oder auch Benutzergruppen (im weiteren repräsentiert durch Akteure) enthält und<br />

vom Unwesentlichen im derzeitigen Kontext abstrahiert.<br />

Diese Separation von Gesichtspunkten entspricht dem Herangehen der Semiotik, in der zwischen verwendeter Syntax,<br />

der unterlegten Semantik und der Art der Verwendung (Pragmatik) unterschieden wird. In der Semiotik wird unterschieden<br />

zwischen Zust<strong>and</strong>s-, Vorgangs-, Tätigkeits- und H<strong>and</strong>lungsdarstellungen. Syntaktische Formen werden <strong>of</strong>t<br />

in der klassischen SPO-Notation gegeben: Das Subjekt ist Geschehnisträger, Täter, H<strong>and</strong>elnder, Akteur; das Prädikat<br />

ist der Aussagekern; Objekte sind Sinnergänzungen. Außerdem werden freie adverbiale Bestimmungen zur Charakterisierung<br />

des Kontextes verwendet. Die Semiotik unterscheidet vier Aspekte: Syntaktischer Aspekt zur Darstellung<br />

der Beziehung der Zeichen zuein<strong>and</strong>er; sigmatischer Aspekt zur Widerspiegelung der objektiv-realen Wirklichkeit;<br />

semantischer Aspekt zur Interpretation der Welt durch die Sprache; pragmatischer Aspekt zur Konventionalisieurng<br />

der sigmatischen, semantischen und syntaktischen Relationen. Der sigmatische Aspekt spielt in der Modellierung<br />

keine Rolle mehr, nachdem die Urteile zur Modellierung gefällt wurden.<br />

Ebenso wie in der Modellierung spielen pragmatische Annahmen eine Rolle. So werden z.B. die aktuelle Kommunikationssituation<br />

mit der vierstelligen Beziehung zwischen Sender, insbesondere seinem Verständnis, dem Inhalt,<br />

der Beziehung zwischen Sender und Empfänger einer Nachricht und dem Empfänger, insbesondere seinem Verständnis<br />

mit betrachtet. Ein Analogon der Kommunikationssituation ist die Anwendungssituation.<br />

Daraus können wir eine semiotische Triade zu einem <strong>Information</strong>ssystem ableiten: Der Content bestimmt den<br />

syntaktischen Aspekt. Der semantische Aspekt wird durch die Konzeptwelt dargestellt. Der pragmatische Aspekt<br />

wird ggf. durch eine Anwendungssituation determiniert und durch eine Begriffsl<strong>and</strong>karte repräsentiert. In Bild 10<br />

Semantik<br />

Repräsentationswelten,<br />

Datenwelten<br />

Content<br />

Syntax<br />

Allgemeines Verständnis<br />

Pragmatik<br />

Semantik<br />

Erweiterte Sichten<br />

Content<br />

Syntax<br />

Erzeugbarkeit / Darstellbarkeit / Verwaltbarkeit<br />

Pragmatik<br />

Konzepte<br />

Theorienwelten,<br />

Modellierungswelten<br />

Begriffe<br />

Benutzerwelten<br />

je nach Gruppen<br />

-common-sense<br />

Konzepte<br />

Konzeptionelle<br />

Theorien<br />

Begriffe<br />

Begriffsl<strong>and</strong>karte<br />

Abbildung 10: Semiotik-Darstellung von Content, Konzepten und Begriffen<br />

stellen wir die Verbindung zwischen den einzelnen Aspekten kurz dar.<br />

Damit sind auch die theoretischen Grundlagen von CMS gegeben wie in der folgenden Tabelle:<br />

Content Konzepte Begriffe<br />

Theorie erweiterte Sichten und “kleine” logische Theorieverbände<br />

erweiterte Begriffs-<br />

Funktionalität<br />

Spezifikationsresultat erweitertes ER-Schema Konzeptfelder Begriffsl<strong>and</strong>karte<br />

Die Assoziation zwischen Content, Konzepten und Begriffen kann erfolgen durch spezielle Abbildungen. Im<br />

Rahmen unserer Entwicklung hat es sich als ausreichend erwiesen, dabei wenige ausdrucksstarke Verbindungen der<br />

unterschiedlichen Aspekte der Assoziation zu verwenden.


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 62<br />

von / zu Content Konzepte Begriffe<br />

Content Integration Aufbereitung Annotation, allgemeine<br />

Assoziation<br />

Konzepte Spezialisierung Komposition Verbalisierung, allgemeine<br />

Assoziation<br />

Begriffe allgemeine Assoziation Untermauerung Komposition<br />

Content kann z.B. durch eine Datenbankspezifikation wie der folgenden gegeben sein.<br />

create table Benutzer (BenutzerID smallint not null,<br />

FirmaID numeric (18,0) not null<br />

Vorname varchar (20) null,<br />

Name varchar (20) null,<br />

Tel varchar (20) null,<br />

Zugriff tinyint null, ...)<br />

go<br />

create table BPr<strong>of</strong>ile (BPID numeric (18,0) identity (1,1) not null,<br />

BPName char (100) null,<br />

BenutzerID smallint null,<br />

Rechte char (18) null, ... )<br />

go<br />

create view SysusersBenutzer<br />

as select S1.Name as Login, S2.Name as Gruppe, BP.Name as Pr<strong>of</strong>il, BP.Rechte,<br />

B. Name, B.Vorname, B.Tel, B.Funk, B.FirmaID, S1.GID, S1.UID, ...<br />

from Sysusers S1 inner join Sysusers S2 on S1.UID S2.GID <strong>and</strong><br />

S1.GID = S2.UID left outer join<br />

Benutzer B on S1.UID = B.BenutzerID left outer join<br />

BPr<strong>of</strong>ile BP on B.BenutzerID = BP.BenutzerID<br />

where (S1.UID between (select typ_integer from tc_parameter<br />

where Name = ’UserAnzeigenAb’) <strong>and</strong> 16380)<br />

go<br />

Im allgemeinen wird dies nicht ausreichen. Wir verwenden deshalb erweiterte Sichten, die in den nächsten Kapiteln<br />

ausführlich beh<strong>and</strong>elt werden. Sichten müssen um Funktionen erweitert werden, mit denen die Sichten verändert,<br />

<strong>and</strong>ers präsentiert und für das Portfolio des Benutzers aufbereitet werden können. Dazu benutzen wir den Definitionsrahmen:<br />

generate MAPPING : VARS → [temp] OUTPUT STRUCTURE<br />

from DATABASE TYPES where SELECTION CONDITION<br />

represent using GENERAL PRESENTATION STYLE<br />

& ABSTRACTION (GRANULARITY, MEASURE, PRECISION)<br />

& ORDERS WITHIN THE PRESENTATION<br />

& HIERARCHICAL REPRESENTATIONS<br />

& POINTS OF VIEW<br />

& SEPARATION<br />

browsing definition CONDITION<br />

& NAVIGATION<br />

functions SEARCH FUNCTIONS<br />

& EXPORT FUNCTIONS<br />

& INPUT FUNCTIONS<br />

& SESSION FUNCTIONS<br />

& MARKING FUNCTIONS<br />

maintenance functions MAINTENANCE FRAME<br />

& CONTROL (OBLIGATIONS, PERMISSIONS, RESTRICTIONS)<br />

Konzepte können durch Konzeptnetze dargestellt werden. Konzeptnetze widerspiegeln die drei semiotischen<br />

Aspekte Syntax, Semantik und Pragmatik, wobei die Syntax und die Pragmatik durch Kontexte verbunden werden.<br />

Konzepte besitzen allgemeine Parameter, die mit einer Wertebereich-Spezialisierungsbeziehung mit Content unterlegt<br />

werden können. Diese Parameter können optional oder auch allgemein oder obligatorisch sein. Wir können die


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 63<br />

Spezifikation von Konzepten mit einem Definitionsrahmen unterstützen oder durch ein Konzeptnetz der Form von<br />

Bild 11.<br />

Assoziierte<br />

Konzepte<br />

Umfeld<br />

Wort<br />

Bedingungen<br />

Wortformen<br />

Regeln<br />

Constraints<br />

Optionalität<br />

Null<br />

Kontext<br />

[ ]<br />

Syntax<br />

*<br />

Parameter<br />

Default<br />

Valenz<br />

Historie<br />

Pragmatik<br />

Konzept<br />

Bindungsform<br />

Semantische<br />

Fälle<br />

Semantik<br />

Kernsemantik<br />

Anwendungsportfolio<br />

Erweiterungssemantik<br />

Modellwelt<br />

Abbildung 11: Die Mindmap-Strukturierung der Spezifikation von Konzepten<br />

Im allgemeinen wird diese Darstellung durch Konzeptnetze allerdings nicht ausreichend übersichtlich sein. Deshalb<br />

kann man nach einer <strong>and</strong>eren Darstellung suchen. Wir benutzen neben dieser Darstellung auch eine graphische<br />

Darstellung durch erweiterte ER-Modelle, bei denen optional Parameter durch eckige Klammern, Identifikationsparameter<br />

durch eine Unterstreichung und allgemeine Parameter nicht extra ausgewiesen werden.<br />

Im Falle des Person-Konzeptes können wir drei wichtige Parameter auszeichnen: die Charakterisierung von Personen<br />

mit ihren Eigenschaften, die Angabe des Beziehungsumfeldes der Personen und eine Darstellung des Kontextes.<br />

Diese Aspekte sind durch entsprechende Logiken unterlegt. Da wir Personen in einer gewissen Allgemeinheit<br />

beh<strong>and</strong>eln wollen, wird die Semantik und damit die Theorie mit einer epistemischen, temporalen Logik spezifiziert.<br />

Wir betrachten Personen nur im betrieblichen Umfeld und nur aufgrund der Aufgaben, die durch das <strong>Information</strong>ssystem<br />

unterstützt werden. Damit kann man das Person-Konzept holzschnittartig durch eine allgemeine Spezifikation<br />

unterlegen der folgenden Form:<br />

Person(( charakteristik, beziehung, kontext), (Σ DeontTempPL/1<br />

Person<br />

, M Person , Σ EpistemLogik<br />

Person<br />

),<br />

( betriebsIS, aufgabenAkteur)).<br />

Wir können die Parameter spezialisieren. Eine mögliche Spezialisierung ist die folgende:<br />

τ( beziehung) = angestellter ∪ ·<br />

partner<br />

τ( charakteristik) = namen ∪ ·<br />

gebDaten ∪ ·<br />

identDaten ∪ ·<br />

geschlecht<br />

·<br />

∪ familie ∪ ·<br />

weitereCharakt ∪ ·<br />

pr<strong>of</strong>il<br />

Die Formeln zur Darstellung der Semantik können unterschiedliche Bereiche der Anwendung abdecken. So können<br />

wir z.B. festlegen, daß Personen ihr Geburtsdatum nicht verändern. Eine Person, die geschieden ist, war einmal verheiratet.<br />

Wir erhalten damit Formeln der folgenden Form, wobei wir uns der deontischen Quantoren F (forbidden), O


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 64<br />

(obliged) und P (permitted) bedienen:<br />

F(update(Person. gebDaten))<br />

α “geschieden ′′( person) → ∃ past y<br />

(Beziehung(Ist.Partner. y,Von.Partner. person,Ab,Bis)<br />

∧ Bis < today<br />

In analoger Form können wir Adressen spezifizieren:<br />

Adresse(( geographAdr, kontaktAdr, historie), (Σ PL/1<br />

Adresse , M Adresse, Σ Qualität<br />

Adresse ),<br />

( betriebsIS, aufgabenAkteur)).<br />

Die Darstellung der Konzepte kann auch in der Form von ER-Modellen erfolgen. Ein typisches Beispiel wird in<br />

Bild 12 vorgestellt.<br />

externe<br />

interne<br />

Fähigkeitenpr<strong>of</strong>il<br />

+<br />

✻<br />

❄<br />

Bildungspr<strong>of</strong>il<br />

✻<br />

AnzJahreBerufserfahrung<br />

Pr<strong>of</strong>il<br />

CV<br />

LetzterEintrag<br />

✲<br />

[Paß]<br />

Charakterisierung Intervall<br />

Angestellter ✲<br />

❄<br />

Person<br />

Name<br />

Familienname<br />

Vornamen Titel Anrede<br />

Geburtsdaten Biometriedaten<br />

Geschlecht Familiengeschichte<br />

Charakterisierung<br />

Beschreibung<br />

Eigenschaft<br />

❄<br />

Rufname<br />

Art<br />

✙<br />

■<br />

✛<br />

✛<br />

+<br />

Ist<br />

Beschreibung<br />

Organisation<br />

Rollentyp<br />

✻<br />

✻<br />

Partner<br />

✻<br />

Ab<br />

Von<br />

Beziehung<br />

[Kommentar]<br />

Bis<br />

[Kommentar]<br />

Datum<br />

Abschluß<br />

durch<br />

Gegenst<strong>and</strong><br />

Spezialisierung<br />

✲<br />

Bildungseinrichtung<br />

Name<br />

Ort<br />

Beschreibung<br />

[Priorität]<br />

Status<br />

Abbildung 12: Das Person-Konzept mit obligatorischen, allgemeinen und optionalen Best<strong>and</strong>teilen<br />

Konzepte sollen durch Content unterlegt werden können, wobei der Content und seine Struktur variabel sein<br />

können, solange sie mitein<strong>and</strong>er verbunden werden können. Wir schränken diese Verbindung durch die Forderung<br />

einer Spezialisierungsbeziehung ein:<br />

Die Spezifikation des Content stellt eine Verfeinerung der Spezifikation der zugehörigen Konzepte dar.<br />

Konzepte können mitein<strong>and</strong>er kombiniert werden. So kann z.B. wie in Bild 13 das Konzept Person mit dem Konzept<br />

Rolle und dem Konzept Adresse verbunden werden, wobei z.B. nur der Angestellte eine interne Kontaktadresse<br />

und eine externe Partneradresse besitzt. Diese Verbindung wird allgemein durch Filter oder “Theta”-Operatoren sichergestellt.<br />

Wir können dies durch die Algebra unterstützen und erhalten:<br />

Adressen ✶ Θ(α) Personen ✶ Θ(β) Rollen<br />

Eine Algebra zur Verbindung wird aus der HERM-Algebra abgeleitet. Wir verwenden dabei die HERM-Operationen:<br />

∪ , ∩ , \ , π , ✶, µ , ν , ρ NameSpace , Aggr , src h0 ,h 1 ,h 2<br />

.<br />

Eine Spezialisierungsbeziehung zwischen dem Person-Konzept und dem Content erfolgt dann durch Instantiierung<br />

der Parameter, Dadurch “paßt” die Sicht zu Person-Content auch zum Person-Konzept. Ein Beispiel ist die<br />

Spezialisierung des Parameters familie oder des Parameters name:<br />

T (Geburtname, Vater, Mutter) oder<br />

familie ⇋<br />

T (Geburtname, { Kind } )<br />


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 65<br />

Rollenkonzepte<br />

✻<br />

Interne Rolle<br />

•<br />

•<br />

Lieferant<br />

Kunde<br />

Angestellter<br />

Beauftragter<br />

Privatperson<br />

Externe Rolle<br />

•<br />

•<br />

•<br />

Kontaktadresse<br />

•<br />

•<br />

• Partneradresse<br />

✲<br />

Adreßkonzepte<br />

✠<br />

Personenkonzepte<br />

Abbildung 13: Die Kombination von Konzepten Person, Rolle und Adresse<br />

name<br />

⇋<br />

T (Vornamen, FamName, [GebName,]<br />

Titel:{AkadTitel} ∪ ·<br />

FamTitel)<br />

oder<br />

T (Vorname, Familienname, Spitzname)<br />

Begriffe sind i.a. nicht so stark durch Merkmale oder Eigenschaften unterlegt, besitzen häufig eine hohe Ambiguität<br />

und sind <strong>of</strong>t in einer ellipsenartigen Form gegeben. Außerdem werden sie <strong>of</strong>t metaphorisch verwendet. Begriffe<br />

können als Funktionen verst<strong>and</strong>en werden, die Dinge (im weitesten Sinne) mehr oder weniger abbilden. So wird<br />

meist ein Begriff mit einer Menge von Beispielen verbunden, die explizit oder auch abstrakt definiert sein können.<br />

Begriffe sind sprachabhängig, meist jedoch nicht reduzierbar auf die Gebrauchsregeln, von denen sie erzeugt werden.<br />

Das begriffliche Klassifikationssystem, das eine Sprache unterlegt, ist in hohem Maße Ergebnis eines adaptiven und<br />

anwendungskontextgeprägten Sprachw<strong>and</strong>els.<br />

Begriffe können determiniert werden in der Art und Weise, wie ihre Extension determiniert wird. Sie können<br />

scharf begrenzt sein im Sinne “Fregescher Begriffe”. Wir bevorzugen diese Form. In der Alltagspraxis werden Begriffe<br />

nicht so scharf eingegrenzt. Es ist jedoch Aufgabe der Modellierung, Begriffe so exakt wie möglich Extensionen<br />

(Content) und Konzepten zuzuordnen. Begriffe können auch prototypische Begriffe sein oder Familienähnlichkeitsbegriffe.<br />

Ein Beispiel ist das Adreß-Konzept. Wir können mit diesem Konzept unterschiedliche Begriffe verbinden:<br />

• Hauptwohnsitz, Nebenwohnsitz,<br />

• Zustelladresse,<br />

• Anschrift oder Email.


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 66<br />

Nicht verbindbar sind dagegen der Begriff Glückwunschschreiben, der Begriff Speicheradresse oder auch der Begriff<br />

Eingabe (schriftliche Kundgebung).<br />

Analog stellen wir für das Person-Konzept fest, daß Begriffe wie Mensch assoziierbar sind, nicht aber Figur (Akteur)<br />

oder abstrakte Person (“ich für meine Person”).<br />

Wir werden im weiteren uns nicht mehr mit Konzepten oder Begriffen ausein<strong>and</strong>ersetzen, da dies den Rahmen<br />

dieser Arbeit sprengen würde. Für die Spezifikation von <strong>Information</strong>ssystemen spielen Begriffe und Konzepte eine<br />

untergeordnete Rolle. Wenn wir allerdings eine allgemeinere Architektur, wie z.B. in Bild 14 anstreben, dann<br />

kann eine essentielle Verbesserung der Kultur erfolgen. Normalerweise befindet sich ein Benutzer eines <strong>Information</strong>ssystemes<br />

in der SQL-Falle. Er muß sowohl das Schema kennen und verstehen als auch mit SQL seine Anfragen<br />

formulieren können. Einfacher und zugleich sinnvoller ist es, dem Benutzer durch eine Assoziation seiner Begriffe<br />

mit Konzepten und durch eine Verbindung dieser Konzepte mit Anfrage- und Antwortformen zu unterstützen. Die<br />

Anfrageformen können mit dem Datenbankschema ebenso assoziiert werden wie die Antwortformen. Damit erhält<br />

ein Benutzer für seine Frage die richtige Antwort aus dem System heraus.<br />

✲<br />

??<br />

Tina Musterfrau,<br />

zufälliger<br />

Nutzer<br />

Benutzer<br />

in der<br />

DBMS-Falle<br />

✻<br />

✻<br />

❄<br />

Anfrageschnittstelle<br />

Suchanforderung<br />

Begriffsl<strong>and</strong>karte<br />

✿<br />

Konzepte<br />

❄<br />

Suchkonzept<br />

parametrische<br />

HERM-<br />

Ausdrücke<br />

❄<br />

✲ Anfrageform<br />

✲<br />

relationales<br />

Datenbankschema<br />

❄<br />

SQL<br />

query<br />

✛<br />

❄<br />

❄<br />

Ergebniskonzept<br />

✲ Antwortform<br />

❄<br />

SQL Anfragemenge<br />

✛<br />

Datenbank<br />

❄<br />

✮<br />

<br />

Antwort<br />

auf Suche<br />

DBS<br />

DBMS Antwortrepräsentation<br />

Abbildung 14: Konzept- und begriffsbasierte Anfrageschnittstellen von <strong>Information</strong>ssystemen<br />

Mit dieser Lösung kann ein Content-Management-System dem Benutzer maximal entgegenkommen.<br />

Terminological object<br />

1. high-level general concepts steeming from Mathematical logic<br />

2. language for expressing conceptions


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 67<br />

3. modeling based on terminological objects theory defined by axioms named as concept-<strong>of</strong>öntological object<br />

(better terminological): name <strong>of</strong> a theory + axioms <strong>of</strong> a theory models <strong>of</strong> a theory defined as ontological object<br />

result: collection <strong>of</strong> associated terminological conceptions<br />

4. communication schema (encoding) for a database<br />

Best<strong>and</strong>teile:.<br />

Combination<br />

Core integration<br />

Construction<br />

Inductive definition<br />

1.5.4 Qualitätsmanagement<br />

Vollständigkeit, Konsistent, Korrektheit Minimalität, Verständlichkeit, Transparenz<br />

Vollständigkeit: alle relevanten Sachverhalte der Miniwelt (Universe <strong>of</strong> Discourse, UoD) sind im Schema repräsentiert<br />

Abgleich mit den Anforderungsdokumenten<br />

Maßeinheit: Prozentsatz repräsentierter Anwendungssachverhalte<br />

Konsistenz: die möglichen Instantiierungen des Schemas beschreiben im UoD<br />

zulässige (mögliche) Zustände (vgl. Datenbank-Konsistenz)<br />

Konsistenzverletzungen entstehen typischerweise durch<br />

• Schema-Elemente, die kein Urbild im UoD haben<br />

z.B. - Assoziation zwischen zwei Klassen, die in der Realität nicht besteht<br />

• unnötige Charakteristiken/Werte<br />

• falsch gewählte Werttypen<br />

• falsche Kardinalität von Assoziationen, Attributen etc.<br />

• unzweckmäßige Abstraktionen (falsche Vererbung)<br />

• Nichtberücksichtigung von Änderungen im UoD<br />

Korrektheit: richtige Anwendung der Konzepte des zugrundeliegenden Modells<br />

(Begriffssystems) hinsichtlich<br />

• der vorgegebenen syntaktischen Regeln: syntaktische Korrektheit (wird von Tools meistens verhindert)<br />

• ihrer a priori Semantik (vereinbarte Bedeutung): semantische Korrektheit<br />

Typische Verletzungen der semantischen Korrektheit:<br />

• Klasse statt Charakteristik bzw. umgekehrt, z.B.: Klasse mit nur einer Charakteristik<br />

• Aggregation statt Generalisation bzw. umgekehrt<br />

• Assoziation statt Aggregation oder Generalisation<br />

• Klasse statt Assoziation<br />

• fehlende identifizierende Charakteristik(en) bei Klassen<br />

• Verwendung inadäquater Modellierungskonzepte, so daß zusätzliche Beschriftungen (Konsistenzbedingungen)<br />

erforderlich werden


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 68<br />

Minimalität (Redundanzfreiheit): jeder relevante UoD-Sachverhalt ist höchstens einmal im Schema repräsentiert,<br />

d.h. es kann kein Schemaelement ohne <strong>Information</strong>sverlust entfernt werden<br />

beabsichtigte Redundanzen sind zu dokumentieren<br />

Beispiele:<br />

• redundante Charakteristik: H<strong>and</strong>elspartner(Name, Rabattklasse, Anzahl Produkte), Produkt(Produktnr.,<br />

Wert), vertreibt ((0,n) (1,1))<br />

• redundante Assoziation: Unternehmen, Niederlassung, hat Niederlassung , ist Filiale von<br />

Ausdruckskraft/Verständlichkeit: die relevanten UoD-Sachverhalte werden auf intuitiv verständliche Weise dargestellt<br />

• Klarheit<br />

• Detailiertheit<br />

• Ordnung<br />

• Präsentation<br />

• Dokumentation in unterschiedlichen Formatierungen<br />

Beispiel (nach Batini, Ceri, Navathe): Assistant, Seminar, Pr<strong>of</strong>essor, <strong>of</strong>fers(Pr<strong>of</strong>essor, Seminar), Course, supports(Assistant,<br />

Course), teaches(Assistant, Course), Instructor, <strong>of</strong>fers(Instructor, Seminar), teaches(Instructor,<br />

Course), Technician, supports(Technician,Course)<br />

stattdessen: TeachingStaff, SupportingStaff, CourseOffering<br />

Transparenz, Lesbarkeit:<br />

• übersichtliche Darstellung (graphisch, tabellarisch)<br />

• Zusammengehöriges ’<br />

nahe beiein<strong>and</strong>er’<br />

• firmenweit einheitlicher Strukturaufbau (z.B. SERM: von links oben (Kernklassen) nach rechts unten<br />

(Dateilklassen bzw. Abstraktionen von unten nach oben, d.h. Detaillierungen (Spezialisierung, Zerlegung)<br />

von oben nach unten)<br />

• wenige ’<br />

Kreuzungen’ (-¿ möglichst planarer Graph)<br />

• Erkennbarkeit der Kernklassen (Schwerpunkte im Graphen) bzw. Kerngruppen (graphentheoretisch: Cliquen)<br />

• Erkennbarkeit von Symmetrien<br />

Zeitunabhängigkeit<br />

• rechtzeitig: immer dann wenn benötigt<br />

• aktuell: immer auf neuestem St<strong>and</strong><br />

• Frequenz: so <strong>of</strong>t wie benötigt<br />

• Zeitperiode: über alle benötigten Zeiten verfügbar<br />

Qualitätverbessernde Transformationen.<br />

informationserhaltende Transformationen<br />

• Beseitigung von Redundanzen ( Minimalität)


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 69<br />

• Beseitigung von Zyklen<br />

• Beseitigung unnötiger Charakteristiken<br />

• Zusammenfassung (ggf. unter Generalisierung) von Klassen, die dasselbe bzw. Varianten desselben<br />

UoD-Sachverhalts beschreiben<br />

• Beseitigung unnötiger Klassen und ggf. damit verbundener Generalisationen ( Ausdruckskraft)<br />

z.B. wenn die Unterklassen ausser den ererbten keine weiteren Charakteristiken haben, der Oberklasse<br />

also nur die Generalisierungscharakteristik zuzuschlagen ist ’<br />

‘hängende Subklassen’<br />

• Beseitigung ‘hängender Klassen’ (total und n:1 assozierte Klassen mit wenigen Charakteristiken) durch<br />

Übernahme ihrer Charakteristiken in die ‘Masterklasse’ ( Ausdruckskraft)<br />

• Erhöhung von Transparenz und Lesbarkeit (Änderung der Anordnung)<br />

informationsverändernde Transformationen<br />

• erweiternd<br />

Top-down, Bottom-up, Inside-out Transformationen Vollständigkeit, Konsistenz<br />

z.B. Einführung einer Spezialisierung, um genauere Kardinalitäten zu ermöglichen (Teilmengenbildung)<br />

Fahrer/in (Führerscheinklasse,Mitarbeiter/in,MNr.,MName), Firmenfahrzeug(Amtl. Kennzeichen,Typ,Jahr<br />

der Erstzulassung) fährt (Mitarbeiter/in(0,1) Firmenfahrzeug(1,n) )<br />

Stattdessen: Mitarbeiter/in mit Subtypen Fahrer/in<br />

qualitätverbessernde Transformationen<br />

• verringernd: Beseitigung von Schemaelementen, die keinen Bezug zu UoD-Sachverhalten haben Konsistenz<br />

• anpassend<br />

1.5.5 Qualitätsdaten<br />

• Korrekturmaßnahmen<br />

• Anpassung an veränderte UoD-Gegebenheiten<br />

• bei Konflikten (Namen, Typen) während der Integration von Teilschemata (verschiedene Teilbereiche<br />

eines UoD)<br />

Unvereinbarkeit von Datenmassiven<br />

• mißverst<strong>and</strong>ene Geschäftsanforderungen<br />

• unvereinbare Daten z.B. nicht vorh<strong>and</strong>enes Wissen zu vorh<strong>and</strong>enen Datenbeständen, nicht verst<strong>and</strong>ene Semantik<br />

vorh<strong>and</strong>ener Daten, hohe Redundanz, hohe Variabilität (Formate, Inhalte, Bedeutung, Darstellung, DB)<br />

• unvereinbarer Datenfluß (Zyklus: Erzeugung, keine Integration oder Dokumentation, kein Auffinden, Unkenntnis<br />

über Daten)<br />

• unvereinbare Migration und Injektion (z.B. in XML-Welten<br />

• Daten-Ressourcen-Drift hin zu immer schlechterer Qualität<br />

• Auswirkungen auf die <strong>Information</strong>squalität z.B. in OLAP- und DW-Anwendungen<br />

Anforderungen an das Qualtätsmanagement<br />

• Analyse der Fehlerquellen in Datenmassiven


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 70<br />

• Verstehen von Daten als Ressource, als Eigentum und Wert<br />

• integrierte und subjektorientierte Aufbereitung<br />

• gemeinsame Architektur zur Datenhaltung<br />

• anforderungsadäquate, storybasierte Aufbereitung von Daten<br />

• Terminologiemanagement<br />

• Qualitätspflege innerhalb der Daten<br />

• Wertekette von Qualitätsdaten hin zu Wissensdaten, business intelligence, business strategies, business goals<br />

• Risiko- und Unfallmanagement


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 71<br />

1.6 Aspekte von <strong>Information</strong>ssystemanwendungen<br />

1.6.1 Die unterschiedlichen Betrachtungsweisen<br />

1.6.2 Semiotik der Modellierung von <strong>Information</strong>ssystemen<br />

Die Entwicklung eines <strong>Information</strong>ssystemes muß deshalb alle Aspekte einer Anwendung umfassen:<br />

Strukturierung: Die Struktur eines <strong>Information</strong>ssystemes und die statischen Integritätsbedingungen werden im<br />

Datenbank-Schema zusammengefaßt, das die Strukturierung einer Datenbank beschreibt.<br />

Funktionalität: <strong>Information</strong>ssysteme stellen eine Vielzahl von Funktionen, eine Anfrageschnittstelle, eine Modifikationsschnittstelle,<br />

eine Transaktionsverarbeitungskomponente, Programme etc. zur Verfügung. Für eine<br />

Anwendung werden Prozesse auf der Grundlage dieser Funktionen entwickelt. Für die Prozesse gelten dynamische<br />

Integritätsbedingungen. Wir fassen die Prozesse und die dynamischen Integritätsbedingungen in der<br />

Datenbank-Maschine zusammen, die die Funktionalität der Anwendung beschreibt.<br />

Verteilung: <strong>Information</strong>ssysteme werden heutzutage in <strong>and</strong>ere Systeme eingepaßt, sind selbst <strong>of</strong>t nur Best<strong>and</strong>teile<br />

einer Infrastruktur und kooperieren mitein<strong>and</strong>er. Wir entwickeln hier eine allgemeine Spezifikation der Verteilung<br />

basierend auf dem Konzept der Dienste, der Austauschrahmen und der Kooperationsbedingungen. Diese<br />

Spezifikation verallgemeinert Zugänge aus dem Bereich der Kommunikationssysteme, der verteilten Systeme<br />

und der Betriebssysteme.<br />

Interaktivität: Ein <strong>Information</strong>ssystem soll den Benutzer bei einer Vielzahl von Aufgaben unterstützen. Es werden<br />

je nach Anwendungskontext unterschiedliche H<strong>and</strong>lungsabläufe ausgelöst. Wir fassen diese Abläufe im<br />

Story-Raum zusammen. Gruppen von Benutzern werden abstrakt durch Akteure dargestellt. Die einzelnen Arbeitsschritte<br />

fassen wir in Szenen zusammen. Die benötigte Unterstützung durch das Datenbanksystem erfolgt<br />

durch Content-Objekte, die eine Verallgemeinerung von Sichten darstellen und um eine Funktionalität erweitert<br />

wurden. Der Story-Raum und die Content-Objekte werden im Interaktionsraum zusammengefaßt.<br />

Diese vier Aspekte müssen gemeinsam bei der Entwicklung eines <strong>Information</strong>ssystemes betrachtet werden. Wir sprechen<br />

deshalb vom integrierten Entwurf von Strukturierung, Funktionalität, Verteilung und Interaktivität eines<br />

<strong>Information</strong>ssystemes bzw. vom integrierten Entwurf von Strukturierung und Funktionalität eines Datenbanksystemes.<br />

Der Entwurfsprozeß ist ein Prozeß des Abstrahierens und des Konstruierens. Wir können deshalb die unterschiedlichen<br />

Abstraktionsarten und Konstruktionsarten mitein<strong>and</strong>er vergleichen.<br />

Mit dem Zachman-Zugang [IZG97] können wir beim Konstruieren unterschiedliche Aspekte von <strong>Information</strong>ssystemen<br />

unterscheiden:<br />

Strukturierung (was): Die Strukturierung der Anwendung wird durch Datenbankmodelle angegeben. Datenbanklehrbücher<br />

konzentrieren sich meist auf diesen Aspekt.<br />

Funktionalität (wie): Funktionen und Prozesse, die für die Manipulation und das Retrieval benötigt werden, werden<br />

meist erst mit der Entwicklung der Funktionalität der Anwendung auf dem Niveau der Implementierung<br />

betrachtet. Da aber die Optimierung des Verhaltens der Anwendung eine dedizierte Unterstützung durch die<br />

Strukturierung erfahren muß, sollte die Spezifikation der Funktionalität und der Strukturierung abgestimmt<br />

erfolgen.<br />

Lokalisierung (wo): Anwendungen sind meist verteilt auf Struktureinheiten, auf unterschiedliche Orte und auf die<br />

Infrastruktur. Die Verteilung des Datenbanksystemes war von untergeordnetem Interesse, solange eine verteilte<br />

Verarbeitung keine Effizienzvorteile brachte. Mit der Entwicklung der Vernetzung und der effektiven<br />

Unterstützung hat sich dies grundlegend geändert.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 72<br />

Akteure (wer): Mit der Entwicklung der künstlichen Intelligenz wurde auch das Mensch-Maschine-Interface komfortabler.<br />

Spezielle Schnittstellen für unterschiedliche Benutzer, je auch Fähigkeiten, Fertigkeiten, Wissen,<br />

Arbeitsaufgaben, Arbeitsumfeld, Rollen und Rechte, können mittlerweile durch DBMS unterstützt werden.<br />

Demzufolge sind die Akteure als Gruppen von Benutzern mit zu modellieren.<br />

Zeitpunkte (wann): Daten altern auf unterschiedliche Art und Weise je nach der Benutzung, der Sichtweise der<br />

Benutzer, der Erneuerungsstrategie und der zur Verfügung stehenden Infrastruktur und Systeme. Der Alterungsund<br />

Erneuerungsprozeß kann durch Modellierung der Zeitaspekte beherrscht werden.<br />

Motivation (warum): Die Akzeptanz der Systeme wird stark durch die Motivation der Akteure mit bestimmt. Wir<br />

verallgemeinern die Motivationsschicht zur allgemeinen Benutzbarkeitsschicht.<br />

Metaaspekte werden im Zachman-Modell bis auf die Motivation nicht betrachtet. Beispiele solcher Kategorien sind<br />

Qualitätskategorien wie Allgegenwart, Sicherheit, Konsistenz, Bedeutungstreue, Robustheit, Skalierbarkeit<br />

und Dauerhaftigkeit.<br />

Benutzungsaspekte werden im Zachman-Modell vernachlässigt. Es gehören hierzu insbesondere das Aufgabenportfolio<br />

und das Organisationsmodell.<br />

Unser Modell der Entwicklung von <strong>Information</strong>ssystemen im Co-<strong>Design</strong>-Zugang folgt den ersten drei Aspekten<br />

(Strukturierung, Funktionalität und Verteilung) und betrachtet anstelle der letzten drei Aspekte das Storyboard,<br />

d.h. die Interaktivität.<br />

Wir fügen dem Zachman-Modell noch weitere Dimensionen hinzu:<br />

Kompetenz (w<strong>of</strong>ür): Es werden die Aufgaben, die durch das <strong>Information</strong>ssystem unterstützt werden sollen explizit<br />

dargestellt.<br />

Kontext (in welcher Umgebung): Meist werden Kontextentscheidungen implizit in die Modellierung eingebracht.<br />

Dazu gehören nicht nur die technische und organisatorische Umgebung sondern auch die Strategie des Betreibers<br />

des Systemes.<br />

Qualitätsgarantien (in welcher Qualität): Es wird explizit dargestellt, inwieweit bestimmte Qualitätskriterien durch<br />

das System unterstützt werden und welche Qualitätskriterien nicht oder nur bedingt erfüllt werden.<br />

Laufzeitcharakteristiken (wie derzeit): Da die Arbeitsumgebung auch durch Ausnahmesituationen, durch aktuelle<br />

Parameter, durch zeitweilige Verschiebung der notwendigen Schritte zum Abschluß und durch benutzungsspezifische<br />

Aspekte geprägt ist, sollte die Anpassung des Systemes an die Arbeitssituation auch explizit modelliert<br />

werden.<br />

Kollaboration (mit wem): Arbeitsaufgaben werden <strong>of</strong>t in Gruppen bewältigt. Die Kollaboration von Gruppen muß<br />

deshalb explizit dargestellt werden. Wir unterschieden zwischen Kommunikation, Kooperation und Koordination<br />

und stellen dazu Kollaborationsrahmen dar. Damit wird das Akteursmodell weiter ausspezifiziert.<br />

Diese Dimensionen untersetzen z.T. die Zachman-Dimensionen. Da im Verlaufe des Modellierungsprozesses alle<br />

Aspekte der Anwendung explizit dargestellt werden sollten, umfaßt unsere Methodik auch diese Betrachtungswinkel.<br />

Die Semiotik und die Linguistik unterscheiden für Sprachen drei unterschiedliche Betrachtungsweisen, die auch<br />

für unsere Spezifikationssprachen gelten:<br />

Die Syntaktik (bzw. Syntax) untersucht die Beziehungen der Zeichen (Worte) selbst, stellt Regelsysteme zur Erzeugung<br />

korrekter Ausdrücke der Sprache bereit und führt <strong>of</strong>t zu einem Beweissystem, mit dem bestimmte<br />

Eigenschaften für Kollektionen von Ausdrücken dargestellt werden können.<br />

Die Semantik untersucht die Beziehung zwischen Worten und Ausdrücken einer Sprache und den Objekten bzw.<br />

Dingen der Realität. Es werden demzufolge “Welten” Kollektionen von Ausdrücken gegenüber gestellt. Typische<br />

Gegenüberstellungen sind die Gültigkeits- bzw. die Erfüllbarkeitsrelation.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 73<br />

Die Pragmatik untersucht die Beziehung zwischen Worten und Ausdrücken einer Sprache und dem Wort- bzw.<br />

Ausdruckbenutzer und konzentriert sich auf Aspekte der Bedeutung für den Benutzer, für eine Gruppe und für<br />

einen Kontext. Die Pragmatik wird durch eine Reihe von pragmatischen Axiomen geprägt:<br />

• Man kann nicht nicht kommunizieren. Jedes Verschweigen ist auch eine Darstellung. Im allgemeinen akzeptieren<br />

wir für die Modellierung eine closed-world-Annahme, bei der die Nichtdarstellung von Dingen<br />

der Realität auf der Irrelevanz für die Anwendung beruhen.<br />

• Jede Modellierung hat einen Inhalt- und einen Beziehungsaspekt, wobei der letztere den ersteren bestimmt.<br />

Es wird implizit oder ggf. explizit die Beziehung zwischen Benutzer und System dargestellt.<br />

• Die Spezifikation wird durch die Interpunktion der Darstellung mitbestimmt. Interpunktion tritt beim Austausch<br />

von Mitteilungen auf, bei der zwei Seiten eine unterschiedliche Dekomposition der Mitteilung in<br />

Best<strong>and</strong>teile und die Bedeutungszuordnung für diese Best<strong>and</strong>teile vornehmen. Dadurch entstehen unterschiedliche<br />

Sichtweisen auf den gleichen Ausdruck und entsprechende Beziehungskonflikte.<br />

• Kommunikation in den Anwendungen bedient sich digitaler Repräsentation. Da aber die Beobachtungen<br />

<strong>of</strong>t analog möglich sind, entsteht durch falsche Digitalisierung bzw. Abtastung ggf. ein falsches Bild wie<br />

z.B. in der Monatsabrechung bei Lagerhaltungsanwendungen oder Monatsstatistiken.<br />

• Kommunikationsabläufe sind entweder symmetrisch oder asymmetrisch, je nachdem, ob Facetten der<br />

Kollaboration auf Gleichheit oder Unterschiedlichkeit beruhen. Die unterschiedlichen Facetten können<br />

gleichzeitig und in unterschiedliche Symmetrierichtungen wirken und sich komplementär ergänzen wie<br />

in den Beziehungen Fachmann-Laie und Mitarbeiter-Vorgesetzter.<br />

Neben den semiotischen Aspekten erfordert auch eine Spezifikationsmethodik eine explizite Widerspiegelung<br />

des Pragmatismus. Der Pragmatismus ist die Lehre, nach der sich das H<strong>and</strong>eln und Denken am praktischen Leben<br />

orientiert und diesem dient. Durch den Pragmatismus werden pragmatische Annahmen determiniert. Übliche pragmatische<br />

Annahmen sind die Auswahl der Sprache, die (Selbst-) Beschränkung bei der Benutzung der Sprache, die<br />

Wahl der Begriffe und ihrer Assoziationen, sowie die Wahl der Darstellungsmittel im Falle einer Auswahlmöglichkeit.<br />

Typische pragmatische und nicht dokumentierte Annahmen sind die Art der Attributdarstellung, die Auswahl<br />

der Wertebereiche und die H<strong>and</strong>lungsabläufe. Sie werden implizit vorgenommen, z.B. durch eine Annahme zur ersten<br />

Normalform, die nur atomare Attribute zuläßt, wobei der Begriff des Atoms je nach Modellierungsurteil auch variieren<br />

kann. Postleitzahlen werden <strong>of</strong>t als Atom zugelassen, obwohl sie bereits aus Komponenten wie Zustellbereich<br />

und Zustellbezirk zusammengesetzt sind. Pragmatische Annahmen bilden Tatsachen, H<strong>and</strong>lungsweisen, Erfahrungen,<br />

Möglichkeiten, Potenzen und auch Fertigkeiten aus dem Anwendungsgebiet entsprechend dem praktischen Nutzen<br />

ab. Sie dienen damit dem Ziel einer möglichst effektiven Abbildung des Anwendungsgebietes.<br />

Das semiotische Dreieck<br />

• Syntax bzw. Syntaktik<br />

• Semantik<br />

• Pragmatik<br />

ggf. erweitert um Pragmatismus<br />

ergänzt um die Theorie des Content: Bild 11<br />

Abstraktionsarten<br />

1. Konstruktionsabstraktion<br />

2. Sichtweisenabstraktion<br />

3. Implementationsabstraktion<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 74<br />

Computation theory<br />

Computation<br />

Foundation<br />

SemT h<br />

Content<br />

Syntax<br />

Annotation<br />

Intension<br />

☛<br />

✕<br />

Semantical<br />

unit<br />

Asset<br />

❑<br />

❯<br />

Interpretation<br />

Content, Mod<br />

Concepts<br />

Validation<br />

Model theory<br />

Semantics<br />

Pragmatics<br />

Infon<br />

<strong>Information</strong> delivery<br />

Knowledge map Extension, Content<br />

Presentation✲Sym, Intension<br />

Explanation ✛ SemT h<br />

Symbols<br />

Presentation<br />

Presentation theory<br />

Abbildung 15: Das semiotische Content-Modellierungsdreieck<br />

Referent<br />

ViewContentView<br />

Referent<br />

Referent<br />

schema<br />

View ContentView<br />

schema<br />

Referent<br />

schema<br />

Chunk<br />

Unit<br />

Asset<br />

Utterance<br />

Chunk<br />

Unit<br />

Asset<br />

Utterance<br />

Concept Infon Symbol<br />

Chunk Utterance<br />

Referent<br />

Concept<br />

schema<br />

Chunk<br />

Infon<br />

Referent<br />

schema<br />

Symbol<br />

schema<br />

Utterance<br />

Abbildung 16: The schemata <strong>of</strong> the semiotic tetrahedron<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 75<br />

Referent<br />

underst<strong>and</strong>ing<br />

View ContentView<br />

macrodata<br />

Referent<br />

underst<strong>and</strong>ing<br />

Referent<br />

mems<br />

View ContentView<br />

ER schemata<br />

Referent<br />

mems<br />

Chunk<br />

Unit<br />

Asset<br />

Utterance<br />

Chunk<br />

Unit<br />

Asset<br />

Utterance<br />

Concept<br />

world<br />

Chunk<br />

Infon<br />

Referent<br />

underst<strong>and</strong>ing<br />

Symbol<br />

map<br />

Utterance<br />

Logic<br />

theories<br />

Chunk<br />

Infon<br />

Referent<br />

mems<br />

Symbol<br />

l<strong>and</strong>scapes<br />

Utterance<br />

Abbildung 17: The data <strong>and</strong> representation languages <strong>of</strong> the semiotic tetrahedron<br />

ETL<br />

Think<br />

Content<br />

Referent See<br />

Think<br />

Referent<br />

mems ER schemata mems<br />

Interprettate<br />

Anno-<br />

Logic<br />

Symbol<br />

Derive Explain Enrich<br />

theories<br />

l<strong>and</strong>scapes<br />

Look Map<br />

derivation<br />

Compute<br />

Reason<br />

Content<br />

Referent<br />

Query<br />

Reason<br />

Referent<br />

mems ER schemata mems<br />

Develop Add<br />

theory metadata<br />

Logic Represent<br />

l<strong>and</strong>scapes<br />

Symbol<br />

Derive<br />

Integrate<br />

theories<br />

Underst<strong>and</strong> Associate<br />

Referent<br />

mems<br />

Reason<br />

Referent<br />

mems<br />

Think<br />

Abbildung 18: Conceptual abilities <strong>and</strong> activities on “content” within the semiotic tetrahedron<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 76<br />

Content<br />

Symbols<br />

❦ query ✸<br />

Thinking, associate<br />

reasoning<br />

by referent<br />

underst<strong>and</strong><br />

❄<br />

Concepts<br />

Referent<br />

Symbols<br />

❦ provide ✸<br />

Computing<br />

annotate, add meta-data<br />

content<br />

ETL<br />

build theory<br />

❄<br />

Concepts<br />

Content<br />

Symbols<br />

❦ interpret represent<br />

✸<br />

Derivation<br />

<strong>of</strong> concepts<br />

explain<br />

❄<br />

Referent<br />

Content<br />

Referent<br />

❦ add data ✸<br />

Enrich, express<br />

integrate<br />

symbols<br />

explain<br />

❄<br />

Concepts<br />

Abbildung 19: The referents activities <strong>and</strong> mappings within the semiotic tetrahedron<br />

1.6.3 Die Prinzipien der Informatik<br />

Übersicht:<br />

Struktur<br />

Entwicklung<br />

Kollaboration<br />

Abstraktion<br />

Die Informatik hat bislang nicht allzu viele Prinzipien hervorgebracht. Die Mathematik kann man auf die Triade<br />

reduzieren: Strukturierung, Topologie und Symmetrie bzw. Erzeugung. In der Kristallographie unterscheidet man drei<br />

Grundbegriffsarten wie in Bild 20. Diese drei Prinzipien sind analog zu den Prinzipien der Quantenphysik. Dieses<br />

Modell kehrt auch in den Gesellschaftswissenschaften wieder 7 . In analoger Form kann auch die Strukturtheorie der<br />

Mathematik verst<strong>and</strong>en werden.<br />

Gesellschaft<br />

Topologie<br />

Topologie<br />

Gesellschaftswissenschaft<br />

Kristallographie<br />

Strukturierung in der Mathematik<br />

Individuum Entwicklung<br />

Geometrie Symmetrie<br />

Algebra Ordnung<br />

Abbildung 20: Die drei Prinzipien der Kristallographie, der Gesellschaftswissenschaft und der Mathematik<br />

Die Informatik fügt diesen drei Prinzipien ein weiteres Prinzip hinzu: die Abstraktion. Das Abstraktionsprinzip<br />

ist bereits in den Ansätzen der Quantenphysik implizit enthalten und ist bei den Prinzipien der Gesellschaftswissenschaften<br />

verwirklicht. Gleichzeitig erfahren diese Prinzipien viele Ausprägungen.<br />

7 Diese Vorstellung haben wir leider bislang nicht in der Literatur nachweisen können, obwohl sie zur Folklore gehört. Das Dreieck wird<br />

<strong>of</strong>t jedoch als Spannungsdreieck für gesellschaftliche Beziehungen aufgeführt.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 77<br />

Kommunikation<br />

Kooperation<br />

Koordination<br />

Kollaboration<br />

Interaktion<br />

Verteilung<br />

Agenten<br />

Systeme<br />

Zust<strong>and</strong><br />

Architektur<br />

Modellierung<br />

Abbildung<br />

Verfeinerung<br />

Struktur<br />

Abstraktion<br />

Entwicklung<br />

Evolution<br />

Regeln<br />

Konservative Abstraktion<br />

Approximation<br />

Zeitliche Entwicklung<br />

Integration<br />

Migration<br />

Komponentenabstraktion<br />

Lokalisierungsabstraktion<br />

Implementationsabstraktion<br />

Abbildung 21: Die vier Prinzipien der Informatik<br />

e.g.,<br />

• Database engines: structuring, derived rules (for functions), multi-layer abstraction<br />

• Script programming: collaboration through contracts <strong>and</strong> name spaces, local binding<br />

• Communication: protocols <strong>and</strong> services, networks, st<strong>and</strong>ardised rules, packet structuring<br />

Jedes der vier Prinzipien besitzt unterschiedliche Facetten. So sind die Kooperation, die Kommunikation und die<br />

Koordination Facetten der Kollaboration. Eine <strong>and</strong>ere Dimension von Facetten ist auch Verteilung und Interaktion.<br />

Auch für die Abstraktion können wir unterschiedliche Facetten unterscheiden: Facetten des “wie” (Modellierung,<br />

Abbildung, Verfeinerung) und Facetten des “wodurch” (Approximation, konservative Approximation).<br />

Die Strukturierung besitzt die Zachman-Aspekte:<br />

womit materialisiert: Speicher-Struktur, Repräsentationsstruktur und abstrakte Strukturen;<br />

wodurch repräsentiert: direkte Darstellung und kodierte Darstellung;<br />

wie konstruiert: Basis-Typen, Konstruktor-Arten und Abschlußbedingungen.<br />

Je nach Wahl erhalten wir unterschiedliche Sprachen (bzw. “Modelle” wie das relationale oder auch objekt-relationale<br />

Modelle), Erzeugungsregeln und Materialisierungssprachen.<br />

Diese vier Prinzipien werden in Zweigen der Informatik unterschiedlich akzentuiert. So konzentriert sich der klassische<br />

Datenbankentwurf auf die Strukturierung, verwendet eine Art der Abstraktion (die konservative Abstraktion)<br />

und integriert die Kollaboration implizit im Schema. Komponenten werden innerhalb eines Schemas verschmolzen<br />

und sind dann Best<strong>and</strong>teil einer großen Struktureinheit. Gegebenenfalls werden Aspekte der Verteilung separat beh<strong>and</strong>elt.<br />

Die Entwicklung von Systemen wird dagegen gar nicht betrachtet. Da die Approximation gar keine Rolle<br />

spielt, wird sie im weiteren nicht betrachtet.<br />

Programmiersprachen konzentrieren sich eher auf die Entwicklung von Regeln zur Zust<strong>and</strong>stransformation. Zustände<br />

werden durch eine Struktur definiert. Die abstrakten Zust<strong>and</strong>smaschinen erlauben darüber hinaus eine Abstraktion<br />

durch Einführung einer expliziten Verfeinerungsbeziehung. Regeln können sowohl sequentiell, als auch konkurrierend<br />

als auch parallel angew<strong>and</strong>t werden. Erstmals mit den abstrakten Zust<strong>and</strong>smaschinen wurden auch Postulate<br />

aufgestellt [Gur00]:<br />

Postulat der sequentiellen Zeit: Zust<strong>and</strong>stransformationen erfolgen schrittweise mit einer Zeitlogik, die sequentiell<br />

ist.<br />

Postulat der abstrakten Zustände: Zustände können durch eine Struktur über einer Signatur definiert werden, wobei<br />

Zust<strong>and</strong>stransformationen nicht die Struktur ändern und invariant gegenüber Strukturisomorphismen sind.<br />

Postulat der beschränkten Exploration: Zust<strong>and</strong>stransformationen erfolgen für eine beschränkte bzw. endliche Menge<br />

von Zuständen des gesamten Zust<strong>and</strong>sraumes.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 78<br />

Oft ist es sinnvoll, die vier Prinzipien auf spezifische Art zu betrachten. In unserem Anwendungsfall betrachten<br />

wir nicht die allgemeine Kollaboration, sondern nur einige Aspekte: Kollaboration im Rahmen der Verteilung und<br />

Interaktion von System und Akteuren (anstelle von Agenten). Wir betrachten auch im wesentlichen nur die Entwicklung<br />

von <strong>Information</strong> innerhalb eines <strong>Information</strong>ssystemes und weniger die Entwicklung von Systemen selbst. Die<br />

Abstraktion wird ebenfalls nur in als konservative Abstraktion beh<strong>and</strong>elt. Wir nutzen die Modellierung und konzentrieren<br />

uns weniger auf Abbildungen und Verfeinerungsmechanismen. Aus diesen vier Prinzipien leiten wir deshalb<br />

die vier Modellierungsaufgaben ab:<br />

Modellierung der Strukturierung,<br />

Modellierung der Funktionalität,<br />

Modellierung der Verteilung<br />

Modellierung der Interaktivität.<br />

und<br />

Im Abstraktionsprozeß kann man unterschiedliche Aspekte betrachten:<br />

• Wir unterscheiden drei Abstraktionsarten:<br />

• Die Komponentenabstraktion kann aufgrund unterschiedlicher Konstruktoren unterschiedliche Ausprägungen<br />

besitzen:<br />

• Die Klassenabstraktion orientiert sich auf die Unterscheidung von Instantiierung und Klassifizierung.<br />

• Die Konstruktorabstraktion orientiert sich an der Benutzung der im Datenbankmodell vorh<strong>and</strong>enen<br />

Konstruktoren. Daraus resultieren Operationen wie die Aggregation und die Dekomposition.<br />

• Die Beziehungen zwischen Klassen können explizit modelliert sein.<br />

· Durch Teiltypenhierarchien werden die Generalisierung und Spezialisierung von Klassen dargestellt.<br />

· Die Konstruktionsbeziehungen folgen meist der Definitionsbeziehung.<br />

· Abbildungsbeziehungen werden für Datenbanken auf die Sichtenmodellierung reduziert.<br />

• Die Lokalisierungsabstraktion orientiert auf eine Verallgemeinerung ohne Bezug zur konkreten Umgebung.<br />

• Die Wiederholung von Konzepten (Parametrisierung von Konzepten) orientiert auf der Grundlage<br />

einer Anwendungsabstraktion auf analoge Konzepte und Hierarchien artgleicher Konzepte. Der Entwurf<br />

von Einheiten kann auf verschiedene Abstraktionsebenen verteilt werden.<br />

• Durch Sharing von Konzepten, adäquate Namensgebung (Variablenkonzepte) und Verbinden kann<br />

ein Muster von Konzepten wiederholt werden.<br />

• Die Wiederholung von Funktionen kann sowohl für unterschiedliche Strukturen als auch unterschiedliche<br />

Teile der Anwendung sinnvoll sein.<br />

• Die Verteilungsabstraktion auf der Grundlage eines Namensgebungs- und Verbindungskonzeptes<br />

verbessert die Einsichtigkeit und Nachvollziehbarkeit von Konzepten.<br />

• Durch Implementationsabstraktion oder Modularisierung von Struktur, Semantik und Operationalität auf<br />

der Grundlage von Verkapselung und Scoping kann die Konzeptunabhängigkeit verbessert werden. Wichtige<br />

Methoden sind:<br />

• das Verstecken von Konzepten (Sichtenbildung) (private, Gruppen- und Weltkonzepte) und<br />

• Abbildungsmechanismen für Sichten.<br />

• Wir unterscheiden im <strong>Information</strong>ssystementwurfsprozeß Konstruktionsarten. Allgemeine Hilfsmittel<br />

zur Darstellung der einzelnen abstrakten Konstrukte sind in Anlehnung an Konstruktorkonzepte die folgenden<br />

Elemente:<br />

• Elementare Einheiten zur Darstellung von Basiskonzepten,<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 79<br />

• Konstruktionsregeln zur induktiven Konstruktion von komplexeren Konzepten aus bereits konstruierten<br />

oder Basiskonzepten (die meist als Konstruktionsmethodiken verst<strong>and</strong>en werden) und<br />

• Konsistenzregeln wie Integritätsbedingungen und die ‘Normalisierung’ erlauben eine Sicherung der Qualitätsanforderungen.<br />

Einbettungsregeln ermöglichen eine Integration in den bereits vorh<strong>and</strong>enen Entwurf unter Berücksichtigung<br />

von Prioritäten, Anwendbarkeitsregeln etc.<br />

Zur Darstellung von Strukturierung und Funktionalität können verschiedene Repräsentationsmechanismen<br />

gewählt werden.<br />

1.6.4 Herangehensweisen des SW-Entwicklungsprozesses<br />

In der S<strong>of</strong>twaretechnik und der Wirtschaftsinformatik wird <strong>of</strong>t eine Herangehensweise im Rahmen eines S<strong>of</strong>tware-<br />

Entwicklungsprozesses präferiert [HP97]:<br />

1. Definition des Gestaltungsbereiches: Die bisherigen Prozesse werden rudimentär analysiert. Damit kann<br />

eine Definition der Kerngeschäftsbereiche und der wichtigsten Prozesse erfolgen.<br />

2. Formulierung der provisorischen Ziele: Die Probleme und Schwachstellen des derzeitigen Systemes werden<br />

durch Interviews, Fragebogen, Beobachtungen und Experimente aufgefunden.<br />

3. Analyse der bisherigen Prozesse: Die aktuell vorh<strong>and</strong>enen Prozesse werden mit entsprechenden Aktivitäten<br />

verglichen. Es wird die Systemleistung mit Meßkriterien wie Durchlaufzeit, Kosten, Fehlerquote etc. ermittelt.<br />

Die Untersuchung beruht auf einer Reihe von Qualitätsparametern:<br />

• Allgemeine Aspekte wie der Output des Produktes, Abnehmer, Häufigkeit der zukünftigen Änderungen,<br />

• Zeitaspekte wie Länge, Liegezeit, Bearbeitungszeit, Transportzeit, termingerechter Abschluß,<br />

• Qualitätsaspekte und Zufriedenheit wie Arbeitszufriedenheit, Anforderungen der ‘Kunden’, Beanst<strong>and</strong>ungen,<br />

iterative Fehlerreparaturen, weitere Anpassungen des Prozesses,<br />

• Struktur- und Mengendaten, z.B. die Anzahl der Teilnehmer, Häufigkeit, parallele Prozesse, Rollen, Organisationseinheiten,<br />

Anzahl der Aktivitäten, parallele Aktivitäten, Adressaten, Inputinformationen, Koordinierungsaktivitäten,<br />

Verantwortlichkeit, benötigte Sachmittel,<br />

• Aufw<strong>and</strong> und Ertrag versus Kosten/Nutzen, z.B. Materialkosten, Informatikkosten, Personalkosten, Gemeinkosten.<br />

4. Globale Strukturierung und Selektion eines zu verändernden Prozesses: Es wird eine Migrationsstrategie<br />

vom abzulösenden System hin zum neuen System erarbeitet.<br />

5. Formulierung der definitiven Ziele: Es werden die Ziele an den notwendigen Verbesserungen orientiert und<br />

je nach Bedeutung für zukünftige Prozesse gruppiert und geordnet. Dadurch entsteht ein Zielportfolio mit einer<br />

Konzentration auf zentrale Ziele.<br />

6. Ermittlung von organisatorischen Maßnahmen: Zum Erreichen des Zieles werden Maßnahmen anh<strong>and</strong> der<br />

vorher herausgearbeiteten Schwerpunktaufgaben abgeleitet.<br />

7. Ermittlung von technischen Maßnahmen: Darauf aufbauend wird die technische Infrastruktur abgeleitet.<br />

8. Grobmodellierung der Geschäftsprozesse: Im ersten Entwicklungsschritt wird eine Grobstruktur des zukünftigen<br />

Prozesses mit echten obligatorischen Aufgaben abgeleitet. Dazu werden Darstellungsmittel wie ereignisorientierte<br />

Prozeßketten, <strong>Information</strong> Control Nets, Process <strong>Analysis</strong> <strong>and</strong> <strong>Design</strong> Method, Petrinetze, Role<br />

Activity Diagrams, semantische Objektmodelle, Triggermodellierung genutzt. Einzelne Schritte sind dabei:<br />

• Modellierung des Geschäftsvorfalles,<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 80<br />

• Ablaufmodellierung,<br />

• Organisationsmodellierung nach der Iststruktur,<br />

• <strong>Information</strong>smodellierung,<br />

• Definition objektbezogener Business-Regeln und<br />

• Organisationsmodellierung nach der Sollstruktur.<br />

9. Feinmodellierung des zukünftigen Geschäftsprozesses: Es kann nun die Aufgabenverteilung für die einzelnen<br />

Partner im Entwicklungsprozeß abgeleitet werden. Diese analysieren den Daten- und Dokumentenfluß,<br />

die Entscheidungsregeln, die Geschäftsfalldaten, die Kompetenzregeln, die Kooperationsregeln, die Methodenregeln<br />

und die Zeitregeln. Auf dieser Grundlage werden einzelne Komponenten des Systemes erstellt.<br />

10. Evaluierung der einzelnen Komponenten des Systemes: Die erstellten Komponenten werden anh<strong>and</strong> der<br />

Ziele evaluiert. Es werden außerdem Benutzungsoberflächen und die Dokumentation erstellt.<br />

11. Systemkonfiguration: Nach Erstellung der Einzelkomponenten wird das Gesamtsystem entwickelt und konfiguriert.<br />

12. Aus- und Weiterbildung der Mitarbeiter: Die Mitarbeiter im Betrieb werden schrittweise an das neue System<br />

herangeführt.<br />

13. Prüfen der <strong>Systems</strong>icherheit, Wirtschaftlichkeit und Ergonomie: Das System wird anh<strong>and</strong> von Qualitätskriterien<br />

wie<br />

• Sicherheitskriterien, z.B. Integrität, Verbindlichkeit, Verfügbarkeit, Vertraulichkeit<br />

• Wirtschaftlichkeit, wie Anpassungsfähigkeit an veränderte Prozeßabläufe, Durchlaufzeit, Durchschaubarkeit,<br />

Nachvollziehbarkeit der Prozesse, Investitionen und Betriebskosten, Zahl und Qualifikationsniveau<br />

der Mitarbeiter<br />

analysiert.<br />

14. Inbetriebnahme des Systemes: Nach einem Migrationsplan wird das System schrittweise in die Praxis<br />

überführt.<br />

Diese und <strong>and</strong>ere Methodiken zeichnen sich z.T. durch sehr große Detailliertheit aus, sind aber in den wesentlichen<br />

Teilen zu unscharf und wenig brauchbar.<br />

Ein <strong>and</strong>erer, ebenso wenig praktikabler Zugang wird in der klassischen Datenbankliteratur verfolgt. Der klassische<br />

Entwurf einer <strong>Information</strong>ssystemanwendung ist von einer Reihe von Brüchen gekennzeichnet.<br />

Struktur-/Funktionsbruch: Die meisten Methodiken und Werkzeuge unterstützen beim Entwurf keine gleichgewichtige<br />

Sicht auf Strukturierung und Funktionalität von <strong>Information</strong>ssystemen. Prozesse werden meist nur in<br />

einer rudimentären Form spezifiziert. Durch zusätzliche Einflußnahme kann ein Administrator auch Strukturen<br />

und Funktionen im internen Schema einer Datenbank verändern. Damit kann der Zusammenhang mit dem<br />

konzeptuellen Schema vollständig zerstört werden.<br />

Struktur-/Semantikbruch: Datenintensive Anwendungen zeichnen sich meist durch eine komplexe Struktur aus.<br />

Die statische Semantik wird entweder intuitiv durch die angew<strong>and</strong>ten Konstruktoren verst<strong>and</strong>en oder erfordert,<br />

wie im relationalen Fall, tiefgründige Kenntnis der mathematischen Logik. Damit wird aber die Konsistenz in<br />

der Spezifikation entweder willkürlich oder nicht mehr nachvollziehbar.<br />

Funktions-/Verhaltensbruch: Die Funktionen werden durch mehr oder weniger komplexe Prozesse und Operationen<br />

implementiert. Das Verhalten dieser Prozesse kann auf der Grundlage einer kompositionellen Semantik in<br />

einigen Spezialfällen hergeleitet werden. Damit ist aber nur ein Teil der dynamischen Semantik erfaßt. Sobald<br />

Prozesse zumindest in den Strukturen zyklisch werden, ist eine kompositionelle Semantik nur noch mit tiefgründigen<br />

Theorien darstellbar. Noch schwieriger ist die Darstellung der Abhängigkeiten zwischen Prozessen.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 81<br />

Oberflächenbruch: Verschiedene Anwender verlangen unterschiedliche Sichten auf die Datenbank und unterschiedliche<br />

Arbeitsweisen für die Arbeit mit der Datenbank. Werden die Oberflächen erst nachträglich entwickelt,<br />

dann ist eine Vielfalt von Sichten zur Unterstützung unterschiedlicher Benutzungsarten zu entwickeln. Außerdem<br />

verlangt eine Sicht <strong>of</strong>t auch eine eigenständige Funktionalität. Diese Vielfalt ist spätestens bei einer<br />

Modifikation nicht mehr zu überschauen.<br />

Workflow-Bruch: Geschäftsprozesse können analog zu lang<strong>and</strong>auernden Transaktionen im Ablauf unterbrochen<br />

werden, auf <strong>and</strong>eren Geschäftsprozessen basieren und unterschiedliche Granularität besitzen. Damit entsteht<br />

ein komplexes Ausführungsmodell, das von einem Normalentwickler nicht mehr überschaut wird.<br />

CASE-Tool-Bruch: Die meisten Entwicklungsumgebungen erlauben, wenn sie über reine Malprogramme hinausgehen,<br />

nur eine Einbahnstraße in der Entwicklung. Nach der Erzeugung des logischen Modelles aus dem Entwurfsmodell<br />

ist es in der Regel unmöglich oder zumindest sehr schwer, beide Modelle mitein<strong>and</strong>er konsistent<br />

zu halten. Es ist deshalb eine ‘harte Kopplung’ der konzeptuellen, externen und internen Modelle erforderlich.<br />

Jede Modifikation eines Schemas zieht ansonsten schwierige Reorganisationen der Datenbank nach sich.<br />

Diese Brüche entstehen durch unterschiedliche Ziele im Verlaufe des Entwicklungsprozesses, wie z.B.<br />

• Konzentration auf einen Aspekt ohne Berücksichtigung <strong>and</strong>erer Aspekte oder<br />

• Verfügbarkeit einer bestimmten (zumeist unvollständigen) Entwicklungsumgebung oder einer bestimmten Entwicklungsmethodik<br />

und resultieren in<br />

• unterschiedlichen Spezifikationssprachen und<br />

• unterschiedlicher Semantik und Bedeutung der einzelnen Sprachkonstrukte.<br />

Außerdem implizieren sie eine Nichtberücksichtigung der Bedürfnisse des Endbenutzers.<br />

Das Matrixmodell zur Einordnung der Modellierungsmethoden (nach Specker)<br />

primär/sekundär Prozeßsicht Funktionssicht Objektsicht Aufgabensicht Techniksicht<br />

Funktionssicht<br />

Objektsicht<br />

Aufgabensicht<br />

Techniksicht<br />

Werkzeuge<br />

Flußdiagramm<br />

(UML)<br />

<strong>Systems</strong>chrittstellendiagramm<br />

Funktionsmodell<br />

(UML)<br />

Systemfunktionsdiagramm<br />

Sequenzdiagramm<br />

(UML)<br />

Stellenorientiertes<br />

Ablaufdiagramm<br />

Prozeß-<br />

Technologie-<br />

Diagramm<br />

Datenflußdiagramm<br />

(UML)<br />

Use Case Diagramm<br />

(UML)<br />

Prozeßsicht Prozeßmodell Funktionen-<br />

Blockdiagramm<br />

(UML)<br />

Zust<strong>and</strong>sübergangsdiagramm<br />

(UML)<br />

Class-<br />

Responsibility-<br />

Collaborator<br />

(UML)<br />

Objektmodell<br />

(UML)<br />

Kollaborationsdiagramm<br />

(UML)<br />

Stellenorientierter<br />

<strong>Information</strong>sfluß<br />

Stellenfunktionsdiagramm<br />

(UML)<br />

Arbeitsobjektdiagramm<br />

Datenobjektdiagramm<br />

Organisationsdiagramm<br />

Systemnutzungsdiagramm<br />

Funktionsunterstützungsdiagramm<br />

Objektzugriffsdiagramm<br />

Technikeinsatzdiagramm<br />

Systemarchitekturmodell<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 82<br />

1.6.5 Grundlegende Herangehensweisen<br />

• datenflußorientiert,<br />

• prozeßorientiert,<br />

• integriert<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 83<br />

1.7 Komponentenbasierte Herangehensweise<br />

Model-driven architectures<br />

als der erste (leider kleine) Schritt zur Vernunft Data model pattern (Hay), Kompositionslehre<br />

1.7.1 Architekturen von <strong>Information</strong>ssystemanwendungen<br />

einschließlich Realisierungsarchitekturen<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 84<br />

1.8 Das Abstraktionsschichtenmodell<br />

1.8.1 Probleme abgeleiteter Konzepte<br />

Probleme mit Sichten.<br />

Das Sichten-Update-Problem<br />

Sichten-Turm-Probleme z.B. auch mit Wegflutschen von Objekten nach update<br />

Sichten-<br />

Die Modellierung von Strukturierung, Funktionalität und Verteilung wird nicht vollständig durch die vorh<strong>and</strong>ene<br />

DBMS-Welt unterstützt. Ein Hindernis ist das Sichtenupdate-Problem. Da mit der Erzeugung von Sichten ggf.<br />

auch nicht jedes Sichtenobjekt einem Datenbankobjekt zugeordnet werden kann, muß deshalb für eine Modifikation<br />

der Datenbank eine <strong>and</strong>ere Funktion zur Verfügung gestellt werden. Deshalb ist die Architektur in Bild 22 eine<br />

sinnvolle Alternative, die unserem Vorhaben des integrierten Entwurfes entgegenkommt. Wir unterscheiden damit<br />

zwischen Retrieval-Sichten und Modifikationssichten. Dieses Bild zeigt zugleich auch die Unterschiede in der Betrachtungsweise<br />

relativ gut auf. Für den Benutzer oder eine Benutzergruppe ist die Anwendung stets lokal. Er nutzt<br />

Dialoge, um mit dem <strong>Information</strong>ssystem bestimmte Aufgaben zu lösen. Dabei werden ihm entsprechende Daten<br />

zusammengestellt und übermittelt. Diese Zusammenstellung fassen wir mit einem Container zusammen. Außerdem<br />

besitzt dieser Container auch die entsprechende Funktionalität, um den Umgang mit den Daten entsprechend den<br />

Dialoganforderungen zu erleichtern. Die Modifikationssichten und die Retrievalsichten sind hierbei entsprechend zusammengefaßt.<br />

Das DBMS unterstützt die Anwendung durch die Bereitstellung von Prozessen, die Speicherung der<br />

Daten und die Erzeugung und Verarbeitung der Sichten.<br />

Lokalisierungsabstraktion<br />

✻<br />

lokale<br />

unterstützte Sichten,<br />

Funktionalität,<br />

Container<br />

Sichten,<br />

✲<br />

<strong>Information</strong>seinheiten<br />

Szenen<br />

Akteure<br />

✻<br />

✻<br />

Filtrierung<br />

Konstruktion<br />

zugelassene<br />

Modifikationsanforderungen<br />

zugelassene<br />

Prozesse<br />

globale<br />

Datenbankschema<br />

✠<br />

statische Aspekte<br />

✲<br />

bereitgestellte<br />

Prozesse<br />

Prozesse<br />

dynamische Aspekte<br />

Aspektkategorien<br />

✲<br />

Abbildung 22: Die Infrastruktur für die integrierte Entwicklung von <strong>Information</strong>ssystemen<br />

Unsere Vorstellungen zur Infrastruktur wird durch Datenbanksysteme gut unterstützt.<br />

Ein gut entwickeltes Datenbanksystem erlaubt die Pflege der Strukturierung und stellt die entsprechende Funktionalität<br />

für die Prozesse zur Verfügung. Ein Benutzer sieht ein <strong>Information</strong>ssystem aus einer <strong>and</strong>eren Sicht. Ihm<br />

wird ein Interaktionsraum zur Verfügung gestellt. Die Benutzung des Systemes findet im Rahmen des Story-Raumes<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 85<br />

✻<br />

✻<br />

<strong>Information</strong>ssystem<br />

Datenbanksystem<br />

Content-<br />

Typen<br />

✻<br />

Interaktionsraum<br />

Story-<br />

Raum<br />

✲<br />

✲<br />

✲<br />

Abbildung 23: Die Unterstützung von <strong>Information</strong>ssystemen durch Datenbanksysteme und Content-Typen<br />

statt. Durch Content-Typen werden der Interaktionsraum und das Datenbanksystemes zu einem <strong>Information</strong>ssystem<br />

verbunden. Wir werden im weiteren sehen, daß Content-Typen eine komfortable Erweiterung des Sichtenkonzeptes<br />

für <strong>Information</strong>ssysteme darstellen.<br />

Probleme mit abgeleiteten Attributen.<br />

Zyklische Berechnung<br />

Probleme mit Ableitungsoperationen.<br />

Aggregationsfunktionen<br />

Simpson-Paradox<br />

Probleme mit optionalen Konzepten.<br />

Nullwerte<br />

optionale Beziehungen<br />

Modellierungstricks am Beispiel von ERM.<br />

Attribut-/Entitytypen: rigide Trennung in Eigenschaften und Dinge auch auf Objekt- und Attributebene fortgesetzt<br />

Eigenschaften können auch nichtableitbar oder nichtzuordenbar sein: dann eigener Entity-Typ<br />

Entity-/Relationshiptypen: Dinge der Realität mit unabhängiger Existenz stets als Entitytyp<br />

Dinge der Realität, die als Verbindung dienen oder Rollen darstellen können auch durch Relationshiptyp dargestellt<br />

werden<br />

Taxonomische Strukturen zur Abbildung von Teilmengen, Teilrollen, Superrollen, Generalisierungen<br />

• Regeln zur Klassifikation: Vorh<strong>and</strong>ensein eines Klassifikationsattributes für Spezialisierung; Subklassen<br />

sollten eine entsprechende Größe haben; Spezialisierungen sollten informativ sein<br />

• Statische versus dynamische Klassifikation: dynamisches Umshiften von Objektmengen sollte vermieden<br />

werden (z.B. abhängig vom Verwendungszweck (Speichergefäß, Kochgefäß)); ansonsten Migrationsprobleme<br />

• Klassifikation und Abzählungen: jedes Objekt sollte in einer Subtypenhierarchie auch als Wurzelobjekt<br />

auftauchen (ansonsten komplexe Berechnungen); Vorsicht mit Klassifikationen, die zu komplexen Berechnungen<br />

führen<br />

Daumenregel: dividing range wird auf dem Ding-Niveau angesetzt, nicht auf Abstraktionen<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 86<br />

• Teiltypen und Rollen, Supertypen und Abstraktionen: Rollen sollten explizit ausgewiesen werden<br />

(Bsp: Firma - Angestellte(Firma,Person) - Person anstatt Firma - Person(in Rolle Angestellter))<br />

am bestem strikte Modellierung von Rollen<br />

Validierung anh<strong>and</strong> von Daumenregeln<br />

• Konsistenztest ggf. durch Werkzeuge<br />

• Formulierungstest durch einfache Sätze<br />

• Schnappschußtest anh<strong>and</strong> von Beispielen<br />

• Identifikationstest: jedes Objekt muß einfach identifizierbar sein<br />

1.8.2 Aspekte von <strong>Information</strong>ssystemen auf unterschiedlichem Abstraktionsniveau<br />

Gebraucht der Zeit, sie geht so schnell von hinnen!<br />

Doch Ordnung lehrt Euch Zeit gewinnen.<br />

Mein teurer Freund, ich rat euch drum<br />

Zuerst Collegium Logicum.<br />

J.W. Goethe, Faust, Erster Teil, Studierzimmer, Mephistopheles<br />

Natürliche Abstraktion durch unterschiedliche Detailiertheit.<br />

Wir erhalten aus Anforderungen der vorigen Kapitels die Aufgabe, Strukturierung, Funktionalität, Dialoge, Verteilung<br />

und Sichten auf eine Datenbank im Zusammenhang zu entwerfen. Vereinfachend ist dabei, daß die Dialoge<br />

auf den Sichten und den Prozessen aufsetzen und daß die Sichten in das Schema einbindbar sein sollen. Die Prozesse<br />

werden damit über diese Einbindung in das Schema auch für die Sichten benutzbar. Damit erhalten wir ein<br />

Entwurfsviereck, bestehend aus der Datenspezifikation, der Funktionsspezifikation, der Verteilungsspezifikation und<br />

der Dialogspezifikation.<br />

Das Zachman-Modell zur Separation von Aspekten.<br />

Durch Zachman wurden Ende der achtziger Jahre allgemeine Modellierungsregeln eingeführt, die mit dem Abstraktionsschichtenmodell<br />

verallgemeinert werden:<br />

• Es werden verschiedene Dimensionen der Entwicklung unterschieden:<br />

• Die Dimension der statischen Aspekte stellt Strukturierung der Daten und die Sichten dar.<br />

• Die Dimension der dynamischen Aspekte soll die Funktionalität und die Interaktivität der Anwendung<br />

repräsentieren.<br />

• In der Verteilungsdimension wird die Lokalität der Strukturen und Prozesse dargestellt.<br />

• Die Benutzerdimension dient der Darstellung des Systemes aus Benutzersicht einschließlich der Organisationsmodelle.<br />

• In der Zeitdimension wird die Entwicklung der Anwendung dargestellt.<br />

• Mit der Motivationsdimension erfolgt eine explizite Darstellung der Umstände, Ziele und Motive für die<br />

einzelnen Aspekte der Anwendung.<br />

• Jede der Dimensionen verfügt über ein einfaches und eindeutiges Basismodell.<br />

• Jede der Dimensionen repräsentiert genau eine Sichtweise auf die Anwendung.<br />

• Jedes abstrakte Objekt wird nur einmal repräsentiert.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 87<br />

• Entwurfsprodukte sind aufgrund ihrer Architektur und Entwurfsgeschichte rekursiv oder iterativ aufgebaut.<br />

Ziel Produkt R<strong>and</strong>bedingungen<br />

Planer Beschreibung des Spielraumes Beschreibung des Spielraumes Finanzierung, Regeln, Infrastruktur<br />

Besitzer Reales Produkt Geschäftsmodell Strategie, Verwendung, Storyraum<br />

Entwerfer Beschreibung des abstrakten Produktes<br />

System-Modell<br />

Umgebung, Stories, “Chemie”<br />

Implementierer Beschreibung des Produktes und<br />

seiner Verwendung<br />

Technologie-Modell<br />

State-<strong>of</strong>-the-art bei Hard- und S<strong>of</strong>tware,<br />

Verteilung<br />

Komponentenlieferant<br />

Beschreibung der Komponenten Out-<strong>of</strong>-context-Modelle Implementation, Integration<br />

Das Entwicklungsmodell in den unterschiedlichen Sichtweisen<br />

Mit dieser Verallgemeinerung wird die Mitwirkung unterschiedlicher Personen zu unterschiedlichen Zeiten im<br />

Entwicklungsprozeß sichtbar:<br />

Planer in der Anwendungsschicht: Durch den Systemplaner wird eine Analyse des gegebenen Zust<strong>and</strong>es und eine<br />

Zielbestimmung für die gesamte Anwendungsentwicklung vorgenommen.<br />

Besitzer in der Anwendungsschicht: Durch den Besitzer werden die R<strong>and</strong>bedingungen für die Entwicklung vorgegeben.<br />

Entwerfer in der konzeptuellen Schicht: Ein Entwerfer ist hauptverantwortlich in der konzeptuellen Schicht, zugleich<br />

allerdings Partner der <strong>and</strong>eren Personen in allen <strong>and</strong>eren Schichten.<br />

Programmierer und Anwendungsentwickler in der Implementationsschicht verwenden die Entwurfsdokumente<br />

zum Erstellen der Programme. Änderungen der Entwurfsdokumente sind abzustimmen.<br />

Komponentenlieferant in Abhängigkeit vom Entwicklungsmodell: Das Komponentenmodell ist orthogonal zu<br />

den <strong>and</strong>eren Entwicklungsmodellen und wird deshalb auch in die <strong>and</strong>eren Entwurfsdokumente integriert. Je<br />

nach Abstraktionsschicht erfolgt eine unterschiedliche Einbindung.<br />

Das Zachman-Modell der Rollen während der Entwicklung von <strong>Information</strong>ssystemen ist noch relativ grob. Wir<br />

können feiner unterscheiden z.B.<br />

Rollen aus dem Umfeld (Genehmigungsbehörden, Einspruchsberechtigte, Öffentlichkeit),<br />

Rollen der Bestellung (‘Bauherr’, Eigentümer, Finanzgeber (Investor, Finanzierender, Subventionsgeber), Betreiber<br />

(Verwaltung, Erhaltung), Benutzer, Projektleiter, Besteller, Berater),<br />

Rollen der Lenkung: (Gesamtleitung, Leitung Projektierung, Leitung Programmierung, Leitung Administration,<br />

Leitung Infrastruktur),<br />

Rollen der Gestaltung (Projektierung, Architekt, Berater) und<br />

Rollen der Ausführenden (Entwerfer, Graphikdesigner, Programmierer).<br />

Das Zachman-Modell verdeutlicht unterschiedliche Abstraktionsschichten mit unterschiedlicher Spezifikation und<br />

unterschiedlicher Detaillierung. Ein integrierter Entwurf muß deshalb auch unterschiedliche Detaillierungsgrade<br />

ermöglichen. Günstig ist, wenn die Entwurfsdokumente aufein<strong>and</strong>er Bezug nehmen bzw. eine Untersetzung der Entwurfsdokumente<br />

der nächsthöheren Schicht wie in Bild 24 darstellen.<br />

Gleichzeitig beobachten wir, daß drei Dimensionen in der Modellierung ausein<strong>and</strong>er gehalten werden müssen:<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 88<br />

✌<br />

❄<br />

☛<br />

❄<br />

Abbildung 24: Entwurfseinheiten auf verschiedenen Abstraktionsebenen<br />

Abstraktionsschicht: Die Schichtung sollte hierarchisch wie in Bild 24 erfolgen, damit die Entwurfsdokumente<br />

zuein<strong>and</strong>er einfach in Beziehung gesetzt werden können.<br />

Architektur der Komponenten: Können die Komponenten der Anwendung separiert werden, dann kann auch eine<br />

Architektur der Komponenten mit expliziter Darstellung ihrer Zusammenhänge erfolgen.<br />

Versionen der Entwicklungsresultate: Jedes Entwurfsdokument kann im Verlaufe der Entwicklung revidiert werden.<br />

Deshalb sollte man eine explizite Pflege von Versionen in den Entwurfsprozeß integrieren.<br />

Diese drei Dimensionen spannen einen Entwicklungsraum wie in Bild 25 auf.<br />

Abstraktionsschicht<br />

✻<br />

✲ Version<br />

✠<br />

Architekturkomponente<br />

Abbildung 25: Entwicklungsdimensionen für dei Entwurfsdokumente<br />

Das Abstraktionsschichtenmodell zur integrierten und abgestuften Entwicklung.<br />

Wir betrachten explizit unterschiedliche Abstraktionsschichten und integrieren die Darstellung der Architektur<br />

der Anwendung und die Versionierung explizit in die einzelnen Entwurfsschritte. Damit unterscheiden wir folgende<br />

Schichten:<br />

die Motivationsschicht zur Spezifikation der Ziele, der Aufgaben und der Motivation der <strong>Information</strong>ssystemanwendung,<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 89<br />

die Geschäftsprozeßschicht zur Spezifikation der Geschäftsprozesse, der Ereignisse, zur Grobdarstellung der unterlegten<br />

Datenstrukturen und zur Darstellung der Anwendungsstory,<br />

die Aktionsschicht zur Spezifikation der H<strong>and</strong>lungen, der Detailstruktur der Daten im Sinne eines Vorentwurfs, zur<br />

Darstellung eines Sichtenskeletts und zur Darstellung von Szenarien zu den einzelnen Anwendungsstories,<br />

die konzeptuelle Schicht zur Darstellung der Prozesse, des konzeptuellen Schemas, der konzeptuellen Sichten und<br />

der Dialoge in zusammenhängender Form,<br />

die Implementationsschicht zur Spezifikation der Programme, der physischen und logischen Schemata, der externen<br />

Sichten und zur Darstellung der Inszenierung.<br />

Die Motivationsschicht kann als strategische Schicht aufgefaßt werden. Es werden alle strategischen Entscheidungen<br />

zum <strong>Information</strong>ssystem getr<strong>of</strong>fen. Die Geschäftsprozeßschicht wird <strong>of</strong>t auch als Anforderungsspezifikationsschicht<br />

bezeichnet. Im Rahmen dieser Schicht werden neben den Anforderungen jedoch auch konkrete Entscheidungen<br />

zur Realisierung getr<strong>of</strong>fen, so daß wir diese Schicht zur Spezifikation der Anforderungen, der pragmatischen<br />

Annahmen, der Systemumgebung und der Systemorganisation und -architektur erweitern müssen. Die Aktionsschicht<br />

ist mit dem Abstraktionsschichtenmodell eingeführt worden, um eine explizite Darstellung der Anwendungsszenario<br />

vornehmen zu können. Im klassischem Systementwurf wird diese Schicht meist übergangen und zu einem späteren<br />

Zeitpunkt durch entsprechende Sichten-Suiten hinzu gefügt. Damit entsteht ein Systembruch, den wir mit der<br />

expliziten Darstellung vermeiden können.<br />

Die Betrachtung der physischen Realisierung ist keine Aufgabe des <strong>Information</strong>ssystementwurfes und wird ebenso<br />

wie die Pflege- und Einführungsschicht in diesem Buch nicht beh<strong>and</strong>elt. Die Verteilungs- und die Sicherheitsaspekte<br />

sind orthogonale Aspekte und werden mit den Entwicklungsschritten verflochten.<br />

Das Abstraktionsschichtenmodell in Bild 26 erlaubt eine Entwicklung von <strong>Information</strong>ssystemen im Zusammenhang.<br />

Wir können ein schichtenorientiertes Vorgehensmodell ebenso wie ein Modell anwenden, das sich zuerst auf<br />

einen der Aspekte orientiert.<br />

Die Spezifikationssprachen können sich für die Schichten und die einzelnen Spezifikationsteile stark unterscheiden.<br />

Eine solche Sprachvielfalt ist jedoch nicht immer angebracht. Wir können aber einen Sprachmix verwenden,<br />

der sich mit jeder weiteren Schicht immer stärker auf die formalen Teile orientiert. Vorstellbar und praktikabel ist ein<br />

Sprachmix aus natürlichsprachigen Äußerungen, Formulartechniken und formalen Darstellungsmitteln wie Diagrammen<br />

zur Darstellung der Datenstrukturen und der Sichten, formalen Prozeßsprachen und Skriptsprachen zur Darstellung<br />

von Drehbüchern. Für die Implementationsschicht benötigen wir eine formale Darstellung mit exakt definierter<br />

Semantik, für die konzeptuelle Schicht ist dies ebenso notwendig. Wenn wir uns für einen Sprachmix entscheiden,<br />

dann sollten wir in jedem Fall die Abbildbarkeit der Konstrukte von Schicht zu Schicht garantieren können.<br />

Auf die natürliche Sprache sollte schon aufgrund des ihr innewohnenden Potentials keinesfalls verzichtet werden.<br />

Formulartechniken sind eine Vorstufe der formalen Darstellung. Formale Techniken wie ER-Modelle oder CSP-<br />

Modelle sind für den direkten Anwender weniger geeignet, sind aber - mit einer entsprechenden Semantik versehen<br />

- sehr gut zur Darstellung in der konzeptuellen Schicht geeignet.<br />

Wir werden im weiteren zuerst einmal die einzelnen Spezifikationsteile im Abstraktionsschichtenmodell untersuchen.<br />

Dabei können wir auf die Erkenntnisse, die in den vorangegangenen Kapiteln dargestellt sind, zurückgreifen.<br />

Anschließend zeigen wir, wie ein schichtenorientiertes Vorgehensmodell im Sinne eines allgemeinen Top-down-<br />

Modelles sinnvoll, einfach und im Zusammenhang angew<strong>and</strong>t werden kann.<br />

Mit unserem Vorgehen entsteht für eine etwas umfangreichere Anwendung mit etwa 500 Entity-, Relationshipund<br />

Cluster-Typen im ersten Schritt ein kurzes (sechsseitiges) Essay mit der Beschreibung der Ideen und Motive,<br />

ein längeres (30-seitiges) Treatment (Lastenheft) zur groben Darstellung der Strukturen, Prozesse, Dialoge und Zusammenhänge,<br />

ein (100-seitiges) Rohbuch (Pflichtenheft) zur Darstellung der Aktionen, Vorentwürfe, H<strong>and</strong>lungen,<br />

Sichtenskelette, Szenarien, ein (200-seitiges) Buch zur Darstellung des konzeptionellen Entwurfes und ein (500-<br />

seitiges) Werk zur Darstellung der Implementation. Diesem Vorgehen kann entgegengehalten werden, daß ein von<br />

Intuitionen geprägter Entwicklungsprozeß eher geeignet ist, ein Ziel zu erreichen. Damit kann ein einfacher Entwurf<br />

entstehen, der in einem Lehrbuch etc. dargestellt werden kann, nicht aber ein komplexerer Datenbankentwurf. Wie<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 90<br />

Feinstudie<br />

Vorstudie<br />

❄<br />

Entwurf<br />

Implementation<br />

❄<br />

Konzeptionelle<br />

Schicht<br />

❄<br />

Implementationsschicht<br />

❄<br />

Aktionsschicht<br />

Geschäftsprozeßschicht<br />

Anwendungsschicht<br />

Spezifikation<br />

der Strukturierung<br />

Spezifikation<br />

der Verteilung<br />

Spezifikation<br />

der Funktionalität<br />

Spezifikation<br />

der Interaktivität<br />

Abbildung 26: Das Abstraktionsschichtenmodell des <strong>Information</strong>ssystem-Entwicklungsprozesses<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 91<br />

sehr ein intuitiver Stil gepflegt werden kann, hängt auch von der Pr<strong>of</strong>essionalität der Entwerfer ab, die - wie die (DB) 2<br />

bzw. ID 2 community zeigt - z.T. umfangreiche, verarbeitete, bewußte und vor allem unbewußte Kenntnisse über die<br />

Strukturen, Prozesse und Dialoge einer Anwendung besitzen.<br />

In den nächsten Teilkapiteln stellen wir zuerst die Datenspezifikation, die Funktionsspezifikation und die Sichtenspezifikation<br />

in aller Kürze vor. Anschließend führen wir exemplarisch die Dialogspezifikation detailliert ein. Da<br />

für die ersten drei Spezifikationen bereits viele Untersuchungen existieren, für die letzte aber kaum Material existiert,<br />

versuchen wir damit auch zugleich eine Lücke in der Datenbankliteratur zu schließen.<br />

Resultate der Entwicklung auf unterschiedlichem Abstraktionsniveau.<br />

Das Abstraktionsschichtenmodell erlaubt die Darstellung der Entwicklungsresultate auf unterschiedlichem Abstraktionsniveau.<br />

Wir folgen hier im wesentlichen dem induktiven Ansatz zur Beschreibung. Damit ist jedes Resultat<br />

aus jeder Sichtweise (Strukturierung, Funktionalität, Interaktivität, Unterstützung der Interaktivität) als generelle Einheit<br />

oder Basiseinheit spezifizierbar. Resultate der Entwicklung der <strong>Information</strong>ssystemanwendung sind:<br />

Produkte zur Darstellung der Strukturierung sollen die Strukturierung der Daten auf unterschiedlichem Abstraktionsniveau<br />

beschreiben. Wir nutzen dazu eine Separation der Spezifikation in<br />

Schema zur Beschreibung der gesamten Strukturierung und<br />

Daten-Typ zur Beschreibung der einzelnen Struktur und der Integritätsbedingungen.<br />

Produkte zur Darstellung der Funktionalität sollen eine Darstellung der Funktionsaspekte ermöglichen. Wir unterscheiden<br />

Workflows zur Darstellung der Folgen von<br />

Prozessen der Anwendung.<br />

Produkte zur Darstellung der Interaktivität sollen eine Beschreibung der Anwendung aus der Sicht der Benutzer<br />

ermöglichen. Deshalb wird die Interaktivität als Raum von H<strong>and</strong>lungsabläufe der Benutzer oder ihrer Abstraktionen<br />

als Akteure, d.h. als Story-Raum beschrieben. Dieser Story-Raum fußt auf<br />

Szenen zur Beschreibung eines generellen Schrittes der Anwendung und auf<br />

Dialogschritten zur Beschreibung der einzelnen Aktionen.<br />

Produkte zur Darstellung der Unterstützung der Verteilung sind im Rahmen von Anwendungen der <strong>Information</strong>ssysteme<br />

Sichten auf die Datenbanksysteme,<br />

Dienste zur Bereitstellung der erweiterten Sichten und deren<br />

Austauschrahmen.<br />

Wir wollen diese Entwicklungsresultate auf unterschiedlichem Abstraktionsniveau darstellen. Wir können jeweils die<br />

Resultate mit der Abstraktionsschicht verbinden. Dann sind die Abstraktionsschichten mit folgenden Entwicklungsresultaten<br />

verbunden:<br />

Motivationsschicht mit dem Lastenheft,<br />

Geschäftsprozeßschicht mit dem Pflichtenheft,<br />

Aktionsschicht mit der Aktionsspezifikation und den vier Aspekten Anwendungsschema, Nutzer-Maschine, Storyboard<br />

und Aktionssichten-Suite,<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 92<br />

Konzeptionelle Schicht auf Grundlage der konzeptuellen Spezifikation und der Beschreibung der vier Aspekte durch<br />

ER-Schema, Workflow-Maschine, Drehbuch und Sichten-Suite,<br />

Implementationsschicht auf Grundlage der logischen Spezifikation und einer Beschreibung der vier Aspekte durch<br />

logisches Schema, Datenbank-Maschine, Inszenierung und logische Sichten-Suite.<br />

Demzufolge können wir die Entwicklungsprodukte für die entsprechenden Abstraktionsschichten wie auf der folgenden<br />

Seite darstellen.<br />

Anwendungsschichschicht<br />

Geschäftsprozeß-Aktionsschicht<br />

Konzeptionelle Implementationsschicht<br />

Schicht<br />

repräsentiert<br />

im<br />

Konzept<br />

Datenteil des<br />

Lastenheftes<br />

Workflow Workflow durch<br />

Produktfunktionalität<br />

Prozeß Prozeß durch<br />

repräsentiert<br />

im<br />

benutzt in<br />

Workflow durch<br />

Geschäftsprozesse<br />

Prozeß durch<br />

Arbeitsschritt<br />

Funktionenteil<br />

des Pflichtenheftes<br />

Produktfunktion<br />

Funktionenteil<br />

des Lastenheftes<br />

Szene Szene im Anwendungsgebiet<br />

Dialogschritt Dialogschritt<br />

durch Anwendungsschritt<br />

repräsentiert Diskursteil<br />

im<br />

des Lastenheftes<br />

Schema<br />

Skizze<br />

durch<br />

Datentyp durch<br />

groben Typ<br />

Datenteil des<br />

Pflichtenheftes<br />

Schema Schema durch<br />

Konzeptl<strong>and</strong>karte<br />

Datentyp Datentyp durch<br />

Schema durch konzeptuelles<br />

Anwendungsschema<br />

Schema<br />

Datentyp durch konzeptueller<br />

Anwendungstyp Datentyp<br />

Anwendungsschema ER-Schema<br />

Workflow durch<br />

H<strong>and</strong>lungen<br />

konzeptueller<br />

Workflow<br />

Prozeß durch konzeptueller<br />

Aktion<br />

Prozeß<br />

NutzermaschineWorkflow-<br />

Maschine<br />

Content-<br />

Typen<br />

Content-<br />

Typen<br />

logisches Schema<br />

logischer Datentyp<br />

logischen<br />

Schema<br />

Module<br />

Programm<br />

Datenbank-<br />

Maschine<br />

Content-<br />

Typen<br />

Szene in einer Szene im Plot Szene im Szenenraum<br />

Szene im<br />

Story<br />

des Präsentations-<br />

Drehbuchs raum<br />

Dialogschritt Dialogschritt konzeptueller Dialogschritt<br />

durch Anwendungsereignis<br />

durch Thema Dialogschritt durch Arbeitso-<br />

der Anwendung<br />

berfläche<br />

H<strong>and</strong>lungsrahmenteil<br />

Storyboard Drehbuch Inszenierung<br />

des<br />

Pflichtenheftes<br />

Content- Content- Content-<br />

Typen Typen Typen<br />

benutzt direkt<br />

Sicht Produktdatensicht Skizze der Sicht Skelett der Sicht Schema der<br />

Sicht<br />

Typ der Produktdatentyp Typ durch ontologische<br />

Kerntyp konzeptueller<br />

Sicht<br />

Einheit<br />

Typ<br />

repräsentiert Sichtenteil Sichtenteil Aktionssichten- Sichtenim<br />

des Lastenheftetenheftes<br />

des Pflich-<br />

Suite Suite<br />

benutzt in<br />

Content- Content-<br />

Typen Typen<br />

Entwicklungsprodukte auf den entsprechenden Abstraktionsschichten<br />

Ein Vorgehensmodell.<br />

Anfragemenge<br />

der Sicht<br />

Anfrage des Typen<br />

logische<br />

Sichten-<br />

Suite<br />

Wir können mit dem Abstraktionsschichtenmodell zur Entwicklung von <strong>Information</strong>ssystemen eine Reihe verschiedener<br />

Entwicklungsmodelle unterstützen:<br />

In der Strukturierungsorientierten Entwicklung wird zuerst die Datenbank-Struktur weitestgehend entwickelt. Dar-<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 93<br />

auf aufbauend werden die Prozesse und die Sichten und abschließend die Präsentationskomponente entworfen<br />

und implementiert. Diese Vorgehensweise entspricht dem klassischen Entwicklungsansatz, hat aber den Nachteil<br />

einer hohen Modifikationsrate aller vorher erstellten Dokumente.<br />

In der prozeßorientierte Entwicklung wird zuerst die Funktionalität der Anwendung entworfen und prototypisch<br />

realisiert. Danach werden die entsprechenden Datenstrukturen entwickelt und abschließend die Präsentationskomponente<br />

und die entsprechenden Sichten. Dieser Zugang wird im S<strong>of</strong>tware-Engineering präferiert, entspricht<br />

aber selten den Gegebenheiten der Entwicklung von <strong>Information</strong>ssystemen.<br />

Interaktionsraum-determinierte Entwicklung: Es werden zuerst die Stories und Szenarien der Anwendung abgenommen.<br />

Auf dieser Grundlage werden die entsprechenden Medientypen konzipiert. Damit sind die Anforderungen<br />

für die Strukturierung und die Funktionalität bekannt, so daß eine Entwicklung dieser Aspekte integriert<br />

erfolgen kann. Diese Vorgehensweise entspricht der Entwicklungsmethodik von informationsintensiven Websites.<br />

Sie bedingt jedoch eine weitestgehende Erfassung aller Szenarien der Anwendung.<br />

Sichtenorientierte Entwicklung: Es wird ein Skelett oder eine Architektur der Anwendung entwickelt. Die einzelnen<br />

Sichten werden schrittweise und an ihren Schnittstellen integriert entwickelt. Darauf aufbauend können die<br />

Strukturierung, der Story-Raum und die Funktionalität entwickelt werden. Diese Vorgehensweise eignet sich<br />

besonders für gut strukturierte Anwendungsgebiete mit separierbaren Datenbeständen. Sie bedingt jedoch eine<br />

höhere Disziplin und Koordinierung bei der integrierten Entwicklung.<br />

Schichtenbasierte Entwicklung: Es werden zuerst alle Aspekte auf der Motivationsschicht, danach auf der Geschäftsprozeßschicht,<br />

dann auf der Aktionsschicht und abschließend die Aspekte auf der konzeptuellen Schicht entwickelt.<br />

Nach Abschluß des konzeptuellen Entwurfes wird eine Transformation hin zur logischen Spezifikation<br />

vorgenommen. Dieser Zugang erfordert wenige Korrekturen im Entwicklungsprozeß und erscheint deshalb<br />

besonders geeignet. Er wird im weiteren präferiert.<br />

Wir kombinieren diese Vorgehensmodelle zu einem schichtenbasierten Vorgehensmodell. Innerhalb einer Abstraktionsschicht<br />

determiniert der Interaktionsraum die <strong>and</strong>eren Aspekte.<br />

Damit erhalten wir ein Vorgehensmodell, dessen Schrittfolge in Bild 27 dargestellt wird und das als Grundlage<br />

für die einzelnen Entwicklungsschritte dient.<br />

Die einzelnen Schritte in Bild 27 sind die folgenden:<br />

* Motivationsschicht<br />

1. Entwicklung der Motivation und der Ziele der Anwendung, <strong>Information</strong>sanalyse<br />

2. Entwicklung des Lastenheftes zur Anwendung<br />

* Geschäftsprozeßschicht<br />

3. Separation der Systemes in Komponenten und Entwicklung der Architektur des Systemes<br />

4. Skizzierung des Story-Raumes, Formulierung der Interaktivität für das Pflichtenheft<br />

5. Skizzierung der Sichten-Suite für die einzelnen Komponenten, der Dienste und des Austauschrahmens, Formulierung<br />

der Verteilung und Strukturierung für das Pflichtenheft<br />

6. Spezifikation der Business-Prozesse, Formulierung der Funktionalität für das Pflichtenheft<br />

* Aktionsschicht<br />

7. Spezifikation der Szenario der Anwendung<br />

8. Beschreibung der Haupttypen der einzelnen Sichten und deren Assoziationen<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 94<br />

Geschäftsprozeßschicht<br />

Motivationsschicht<br />

Implementationsschicht<br />

(Fkt.) Struktur Verteilung Dialoge Funktionen (Str.)<br />

1<br />

2<br />

3<br />

5 4 6<br />

8 7<br />

(8)<br />

Aktionsschicht<br />

10 9<br />

11<br />

14<br />

12<br />

16 13 15<br />

Konzeptionelle<br />

Schicht<br />

18<br />

19<br />

20<br />

17<br />

21<br />

(22d) 22<br />

22c<br />

22d<br />

23 (23)<br />

(24d) 24a 24b 24c 24d<br />

25 25<br />

(26) 27 (27) 26 (27)<br />

28a 28b 28c 28d<br />

Abbildung 27: Schritte in unserem Vorgehensmodell<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 95<br />

9. Entwicklung der Integritätsbedingungen und deren Erzwingungsstrategie<br />

10. Spezifikation der Benutzeraktionen, Rollen, Skizzierung der Content-Typen<br />

11. Spezifikation der Qualitätsanforderungen und deren Umsetzung im System, Entwicklung von Sicherungsstrategien<br />

* Konzeptionelle Schicht<br />

12. Spezifikation des Story-Raumes<br />

13. Spezifikation der Akteure, ihrer Portfolio, Rollen, Rechte, Pr<strong>of</strong>ile<br />

14. Spezifikation der Sichten-Suite, der Dienste und Austauschrahmen<br />

15. Entwicklung der Workflows<br />

16. Kontrolle der Content-Typen anh<strong>and</strong> von Content-Objekten, Validierung der statischen Semantik, Kontrolle<br />

der Integritätserzwingung<br />

17. Spezifikation der Szenen, der Dialogschritte, der Bedingungen für die Stories, der H<strong>and</strong>lungsübergänge<br />

18. Spezifikation der Content-Typen-Suite, der notwendigen Funktionalität zu deren Unterstützung<br />

19. Modulare Verfeinerung der Datentypen<br />

20. Normalisierung der entwickelten Datentypen<br />

21. Kontrolle des Story-Raumes anh<strong>and</strong> der Szenario, Ableitung weiterer möglicher Szenario, Blockierung unerwünschter<br />

Szenario, Ableitung der Verlinkungs- und Navigationsstruktur, Kontrolle der unterstützten Funktionalität<br />

22. Spezifikation der Funktionalität, Kontrolle des Verhaltens der Anwendung, Abstimmung der Unterstützung für<br />

Dienste, Austauschrahmen, Kollaboration<br />

23. Integration der Sichten-Suite anh<strong>and</strong> der Architektur des Systemes, Auflösung der Entwurfsobligationen<br />

* Implementationsschicht<br />

24. Transformation der konzeptuellen Modelle in logische Modelle zur Darstellung der Strukturierung, Funktionalität,<br />

Interaktivität und Verteilung<br />

25. Restrukturierung und Optimierung auf der Grundlage von Performanzbetrachtungen und des Tuning<br />

26. Ableitung des Dienstverwaltungssystemes, der Protokolle und der Funktionen zur Unterstützung der Verteilung<br />

27. Transformation der logischen Modelle in physische Modelle des DBMS<br />

28. Kontrolle der Dauerhaftigkeit und der Skalierbarkeit der Lösung, Entwicklung von Erweiterungs- und Migrationstrategien<br />

unter Berücksichtigung möglicher Technologieentwicklungen und Veränderungen in der Anwendung<br />

Das Verfeinerungsmodell der abstrakten Zust<strong>and</strong>smaschinen.<br />

Given two ASM’s M, M ∗ , refinement is based on<br />

refinement <strong>of</strong> states<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 96<br />

states <strong>of</strong> interest S, S ∗ , correspondence between the states <strong>of</strong> interest<br />

abstract computation segments τ 1 , ...., τ m on M <strong>and</strong> σ 1 , ...., σ n on M ∗<br />

(m,n)-refinement<br />

locations <strong>of</strong> interest<br />

equivalence relation ≡ on locations <strong>of</strong> interest<br />

M ∗ is a correct refinement <strong>of</strong> M if<br />

there for each M ∗ -run S ∗ 0 , ...., S∗ k , ... there is an M-run <strong>and</strong> sequences i 0 < i 1 < .... <strong>and</strong> j 0 < j 1 < ... such that<br />

i 0 = j 0 = 0 S ik ≡ S ∗ j k<br />

for each k <strong>and</strong> either<br />

• both runs terminate <strong>and</strong> their final states are the last pair <strong>of</strong> equivalent states, or<br />

• both runs <strong>and</strong> both sequences are infinite.<br />

Complete refinement: M correct refinement <strong>of</strong> M ∗ <strong>and</strong> M ∗ correct refinement <strong>of</strong> M<br />

Abgeleitete Schichten der Verfeinerung.<br />

siehe oben<br />

Abstraktionsschichten.<br />

Modellannahmen je nach Abstraktionsschicht (Identifizierung, Makro- versus Mikrodaten, Striktheit)<br />

(Wiederholung) Modellierung ist ein iterativer Prozeß, d.h. die Entwicklung eines konzeptuellen Schemas erfolgt in<br />

iterativen Verfeinerungs- und Restrukturierungsschritten<br />

dies gilt auch dann, wenn das konzeptuelle Schema durch die Abbildung eines konzeptuellen Vorentwurfsschemas<br />

entst<strong>and</strong>en ist<br />

Anhaltspunkte (Faustregeln) für diese Schritte erforderlich, um Konsistenz zu erhalten<br />

Transformationsregeln<br />

Unterschiedliche Strategien (Literatur) [im weiteren eigene Strategie]<br />

Top-Down-Regeln (Verfeinerung)<br />

• T1: class ↣ associated classes<br />

• T2: class ↣ generalization<br />

• T3: class ↣ aggregation<br />

• T4: class ↣ unrelated classes<br />

• T5: association ↣ parallel associations<br />

• T6: association ↣ class with associations<br />

• T7: attribute development (auch für Assoziationen)<br />

• T8: attribute refinement (auch für Assoziationen)<br />

Anm.: Nicht alle möglichen Schemata können ausgehend von einer Klasse mit den Regeln T1-T8 erzeugt<br />

werden<br />

Bottom-Up-Regeln (Einführung neuer Konzepte, die im ursprünglichen Entwurf nicht enthalten waren)<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 97<br />

• B1: class generation<br />

• B2: association generation<br />

• B3: generalization generation<br />

• B4: aggregation generation<br />

• B5: attribute aggregation<br />

• B6: composite value aggregation<br />

Top-Down-Strategie<br />

Bottom-Up-Strategie<br />

- beginne mit einer Klasse - beginne mit Attributen<br />

- wende nur top-Down Regeln an - wende nur Bottom-Up Regeln an<br />

- schrittweise Verfeinerung n - häufige Restrukturierungen erforderlich<br />

- keine unerwünschten Seiteneffekte - leichter Start<br />

- erfordert hohe Abstraktionsfähigkeit bereits zu Beginn - leichte lokale Entwurfsentscheidungen<br />

Inside-Out Strategie<br />

• Spezialfall der Bottom-Up Strategie<br />

• beginnt mit den wichtigsten oder evidentesten Konzepten<br />

• breitet sich von dort aus (‘Ölfleck’)<br />

• Konzepte, die ’<br />

nahe’ zu bereits modellierten sind, können leicht erkannt werden<br />

• leicht am Start<br />

• eine globale Sicht entsteht erst am Ende<br />

Gemischte Strategie (‘divide <strong>and</strong> conquer’)<br />

• Top-Down Verfeinerung der Best<strong>and</strong>teile eines Schemaskeletts (‘skeleton schema’)<br />

• Bottom-up Zusammenfassung (‘Integration’) auf Basis des Schemaskeletts Schemaskelett hat zentrale<br />

Bedeutung, d.h. über die Grobstruktur des Gesamtschemas wird bereits zu Beginn des Entwurfsprozesses<br />

entschieden (Bestimmung der zentralen Klassen (Chen: ‘key entity sets’)<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 98<br />

1.8.3 Modellierung der Verteilung<br />

Ein Aspekt, der nicht vernachlässigt werden kann, bislang aber nur auf strukturellem Niveau beh<strong>and</strong>elt wurde, ist die<br />

Verteilung. Es sind dazu eine Reihe von Ansätzen bekannt:<br />

Dienste in verteilten Systemen überwinden die räumliche Trennung von Systemen durch eine Funktionalität zur<br />

Datenübertragung und eine zeitliche (gemeinsame) Taktung der Datenspeicherung. Es können in diesem Zusammenhang<br />

Dienstgeber und Dienstnehmer unterschieden werden. Der Austausch wird durch durch eine<br />

entsprechende Dienstgeber-Dienstnehmer-Architektur unterstützt. Meist basiert diese Architektur auf einer<br />

Trennung der Datenverwaltung und des Datenaustausches bzw. der Datenübertragung. Dienste werden charakterisiert<br />

durch<br />

eine Dienstleistungsvereinbarung als verbindliche Regelung des Dienstverhältnisses,<br />

eine Sammlung von Funktionen, die zur Erfüllung des Dienstes abgerufen werden können, und<br />

Dienstmerkmalen zur Darstellung der Qualitätsparameter.<br />

Die Funktionalität des Dienstes und die Dienstmerkmale werden <strong>of</strong>t als Diensteigenschaften zusammengefaßt.<br />

Verteilte Datenbanksysteme setzen auf Datenbanksystemen auf, erlauben eine Verteilung der Daten durch Partitionierung<br />

der Daten, Allokation der Partitionen zu Knoten und eine verteilte Bearbeitung von Daten auf der<br />

Grundlage von erweiterten Protokollen für den Abschluß von Transaktionen.<br />

Eine klassische Darstellung der Verteilung wird <strong>of</strong>t anh<strong>and</strong> von drei Modellen dargestellt:<br />

Das Kollaborationsmodell oder Interaktionsmodell dient der Spezifikation der kommunizierenden Prozesse, ihrer<br />

Kommunikation und ihrer Koordination. Es wird meist ein Zeitmodell unterlegt, das auch erlaubt, die Verzögerung<br />

der Kollaboration darzustellen.<br />

Das Fehlermodell definiert und klassifiziert die auftretenden Fehler, die Behebungsmöglichkeiten und die Ausführung<br />

der Kompensation.<br />

Das Sicherheitsmodell klassifiziert und definiert die Form, mit der Angriffen und Systemgefährdungen begegnet<br />

werden kann.<br />

Die Kollaboration führt <strong>of</strong>t zu einer Einschränkung der Leistung von Systemen. Außerdem kann relativ selten ein globales<br />

Zeitkonzept realisiert werden. Deshalb unterscheiden wir auch verteilte Systeme in asynchrone und synchrone<br />

Systeme. Die Kollaboration kann <strong>of</strong>t durch Interaktionsdiagramme, die die Abfolge der Kollaborationsereignisse<br />

darstellen, unterstützt werden. Typische Modelle zur Darstellung sind dann Weg-Zeit-Diagramme.<br />

Im Datenbank- und <strong>Information</strong>ssystementwurf ist jedoch eine größere Vielfalt von Anwendungen darzustellen.<br />

So sind z.B. e-Business-Anwendungen mit den Methoden der OSI-Schichtung, mit einfachen Diensten und auf<br />

der Grundlage von einfachen Austauschprotokollen nur partiell darstellbar. Deshalb wird versucht, über mehrdimensionale<br />

Strukturierung, wie z.B. in [ALSS03], mit den Dimensionen Datenübertragungssystem und Datenverwaltungssystem<br />

und den klassischen Schichten des OSI-Modelles (Bitübertragung, Sicherung, Netz und Vermittlung,<br />

Transport, Anwendung wie z.B. Middleware) und des verallgemeinerten 5-Schichten-ANSI-Modelles (extern, intern,<br />

physisch, Segment, Datei) mit Erweiterungen zu einer dritten Dimension, die durch HW-SW-Systeme determiniert<br />

wird, sich eine Übersicht zu verschaffen. Anwendungssysteme wie Middleware-Systeme unterstützen die Kopplung<br />

von <strong>Information</strong>ssystemen. Middleware kann bei der Überwindung der Heterogenietät durch entsprechende Transformationsmechanismen<br />

zur Typkonversion und Aufrufumformung unterstützen. Diese Umformungen können auf<br />

der Grundlage von Regeln vorgenommen werden. Stummel-Objekte werden dienstnehmerseitig erzeugt und Gerüst-<br />

Objekte werden dienstgeberseitig bereitgestellt. Es wird ein Funktionsaufruf wie in Bild 28 realisiert.<br />

Die Vermittlung von Dienstgebern basiert auf einem Vermittlungsdienst, einem Namendienst mit einem Namensraum<br />

und einer entsprechenden Navigationsunterstützung. Innerhalb des verteilten Systemes werden Dienste aktiviert


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 99<br />

Dienstnehmer<br />

Dienstgeber<br />

Dienstnehmercode Stummel Gerüst Dienstgebercode<br />

✕<br />

Verpacken<br />

Parameter<br />

✲<br />

Senden<br />

✲<br />

Empfangen ✲<br />

Auspacken✲<br />

Parameter<br />

Funktionseintritt<br />

Funktionsaufruf<br />

❑<br />

Auspacken<br />

Ergebnis ✛<br />

(Warten)<br />

❄<br />

Empfangen<br />

✛<br />

Senden<br />

✛<br />

Verpacken<br />

Ergebnis<br />

✛<br />

Funktionsende<br />

❄<br />

Abbildung 28: Entfernter Funktionsaufruf mit einer Schichtung [ALSS03]<br />

und beendet, Lasten verteilt, die Sicherheit und die Persistenz garantiert und eine verteilte Transaktionsverwaltung mit<br />

einem Ressourcen-Verwalter, einem Synchronisationsdienst und einem Transaktionsverwalter unterstützt. Typische<br />

Architekturen für Middleware-Systeme sind CORBA und Web-Dienste.<br />

Wir sind jedoch mehr an einer konzeptionellen Modellierung der Verteilung interessiert. Eine CORBA- oder Web-<br />

Dienste-Spezifikation ist eine physische oder logische Umsetzung. Deshalb verwenden wir das Diensteverwaltungssystem<br />

mit den entsprechenden Schnittstellen und Protokollen auf dem Implementationsniveau. Zur Spezifikation der<br />

Verteilung abstrahieren und verallgemeinern die Ansätze zur Verteilung:<br />

Die Verteilung ist gegeben durch eine Spezifikation der Dienste des Kollaborationsrahmens und der Architektur.<br />

Dienste setzen auf Sichten-Suiten auf. Der Kollaborationsrahmen faßt die Kommunikation, die Koordination<br />

und die Kooperation zusammen. Die Architektur stellt den Zusammenhang der Komponenten dar.<br />

Dienste S = (I, F, Σ S ) sind gegeben durch die <strong>Information</strong>seinheiten, durch das Dienstverhalten, und durch<br />

den Dienstvertrag, insbesondere die Qualitätsparameter.<br />

<strong>Information</strong>seinheiten I = (V, M, Σ T ) bestehen aus Content-Typen der Sichten-Suite, einem <strong>Information</strong>seinheit<br />

Manager und einer Menge von Regeln zur Darstellung der Kompetenz.<br />

Das Dienstverhalten wird<br />

• innerhalb der Aktionsschicht durch Vereinbarungen zur Dienstgüte,<br />

• innerhalb der konzeptuellen Schicht durch konzeptuelle Eigenschaften und<br />

• innerhalb der Implementationsschicht durch Dienstgüteeigenschaften der Implementation<br />

angegeben.<br />

Der Dienstvertrag legt die Rahmenbedingungen des Dienstes fest.<br />

Das Vertragsschema stellt die Bedingungen des Vertrages dar. Insbesondere werden Parameter wie<br />

• das Benutzungsmodell (mit den Akteuren, ihren Beziehungen, Rollen und Rechten),<br />

• das Zeitmodell,<br />

• der Vertragskontext und<br />

• die vertraglich vereinbarte Qualität<br />

spezifiziert.<br />

Qualitätsparameter der Dienste sind je nach Abstraktionsniveau<br />

• innerhalb der Aktionsschicht Eigenschaften wie Allgegenwart (ubiquity) und Sicherheit,<br />

• innerhalb der konzeptuellen Schicht Eigenschaften wie Bedeutungstreue und Konsistenz und<br />

• innerhalb der Implementationsschicht Eigenschaften wie Dauerhaftigkeit, Performanz, Robustheit<br />

und Skalierbarkeit.


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 100<br />

Der Kollaborationsrahmen ist durch die Darstellung der verschiedenen Facetten der Kollaboration spezifiziert:<br />

Der Kommunikationsrahmen legt die Art der Kommunikation und die benutzten Austauschmechanismen<br />

fest.<br />

Der Kooperationsrahmen bestimmt die Art des Zusammenwirkens der unterschiedlichen Akteure und Komponenten<br />

im Rahmen des Portfolios bzw. der Arbeitsprozesse.<br />

Der Koordinationsrahmen bestimmt die Synchronisation der Kollaboration, die Organisation und die Aufgabenverteilung.<br />

Die Facetten der Kollaboration werden durch jeweils drei Teilspezifikationen angegeben:<br />

Der Diskurs bestimmt den Ablauf der Kollaboration. Er basiert auf den <strong>and</strong>eren drei Best<strong>and</strong>teilen des Co-<br />

<strong>Design</strong>-Ansatzes:<br />

Die Daten werden zu Content verdichtet und durch Sichten über dem Datenbanksystem angegeben.<br />

Die Funktionalität wird durch Angabe der unterstützenden Systemfunktionen dargestellt.<br />

Die Interaktivität basiert auf dem Storyboard der Anwendung.<br />

Der Stil der Kollaboration legt die vertraglichen Vereinbarungen fest. Er wird durch<br />

• die Unterstützungsprogramme wie Sitzungsverwaltung, Benutzerverwaltung und der Abrechnung,<br />

• den Datenzugriffsrahmen mit den Varianten zwischen broadcast und peer-to-peer, dem gemeinsamen<br />

Benutzen von Ressourcen und den Zugriffsformen und<br />

• die Art wie peer-to-peer- oder der Ereignis- oder der Komponentenkollaboration sowie<br />

• den Koordinations-Workflow mit den Partnerbeziehungen, dem Diskurstyp, dem Namensraum und<br />

den Workflow-Regeln<br />

determiniert.<br />

Die Kollaborationsarchitektur bzw. das Kollaborationsmuster verbinden die Komponenten. Das Kollaborationsmuster<br />

ist eine Verallgemeinerung der Protokolle mit einer Darstellung der Partner, ihrer Aufgaben,<br />

ihrer Rollen und Rechte. Wir unterschieden zwischen<br />

• Proxy-Kollaboration,<br />

• Broker- bzw. Trader-Customer-Kollaboration,<br />

• Client-Dispatcher-Kollaboration,<br />

• Publisher-Subscriber-Kollaboration und<br />

• Model-View-Controller-Kollaboration.<br />

Die Architektur kann als Verallgemeinerung der Architektur verteilter Datenbanksysteme angesehen werden. Architekturen<br />

föderierter Systeme, von Datenbank-Farmen und inkrementellen Datenbanksystem-Suiten basieren<br />

auf einer Trennung in lokale und globale Komponenten und auf der expliziten Spezifikation der Austauschbeziehungen<br />

zumindest für die Strukturierung von Objekt-Suiten, mitunter auch die Funktionalität von Objekt-<br />

Suiten.<br />

Architekturen können durch entsprechende Austauscharbeitsplätze unterstützt werden.<br />

Unsere konzeptuelle Darstellung kann auf die logische und physische Ebene abgebildet werden durch:<br />

Abbildungsregeln zur Transformation von Sichten,<br />

Abbildungsregeln zur Erzeugung der Architektur,<br />

Abbildungsregeln zur Erzeugung des Kollaborationsmodelles,<br />

Abbildungsregeln zur Erzeugung des Fehlermodelles und<br />

Abbildungsregeln zur Erzeugung des Sicherheitsmodelles.


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 101<br />

1.8.4 Auswahl der Ausrichtung auf bestimmte Aspekte<br />

Preprint S. 39o-39m<br />

1.8.5 Abstraktionsschichtung zur integrierten und abgestuften Entwicklung<br />

KADS-Methode bzw. <strong>and</strong>ere klassischen Zugänge.<br />

Machbarkeitsstudie<br />

Kick<strong>of</strong>f<br />

Verfeinerung<br />

Evaluierung<br />

Erweiterung nd Anpassung<br />

Die Abstraktionschichtung dieser Vorlesung.<br />

Preprint S. 34 - 36<br />

1.8.6 Resultate der Entwicklung auf unterschiedlichem Abstraktionsniveau<br />

Preprint S. 36-37<br />

1.8.7 Resultate der Entwicklung auf unterschiedlichem Abstraktionsniveau<br />

Preprint S. 39<br />

Pragmatik der Modellauswahl.<br />

Typenwahl<br />

IC-Auswahl<br />

Erzwingung<br />

Pragmatik der Abbildung.<br />

Pragmatik der Modellierung.<br />

Theorie der Trennlinie, Typengrat (stripline; dividing wall/rule; separator type; ridge).<br />

1.8.8 Methodik<br />

Guide for application <strong>of</strong> methods


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 102<br />

1.8.9 Architektur von <strong>Information</strong>ssystem-Anwendungen<br />

am Beispiel von data-warehouse-Anwendungen<br />

OLTP Schemata.<br />

wie bereits besprochen<br />

Classes <strong>of</strong> Aggregation Functions.<br />

• The simplest class <strong>of</strong> aggregation functions turn data into information by (one-pass) aggregation. One typical<br />

example is the statistical summary from that data. Into this class fall the following functions: count (tally),<br />

average (arithmetic mean), sum (total), min, max.<br />

• More complex aggregation functions are used in cumulative or running statistics which relate data values to the<br />

whole data, e.g., changes in an aggregate value over time or any dimension set (b<strong>and</strong>ed reports, control break<br />

reports, OLAP dimensions). Typical examples the queries:<br />

“What percentage each customer contributes to total sales?”<br />

“Total sales in each territory, ordered from high to low!”<br />

“Total amount <strong>of</strong> sales broken down by salesman within territories”.<br />

These functions are <strong>of</strong>ten weak descriptive statistics since minor database changes result in major reflection<br />

within the aggregation.<br />

In [LT01] we distinguished between distributive, algebraic <strong>and</strong> holistic aggregation functions:<br />

Distributive or inductive functions are defined based on structural recursion. Given a types T , T ′ <strong>and</strong> a collection<br />

type C T on T <strong>and</strong> operations such as generalized union ∪ C T , generalized intersection ∩ C T , <strong>and</strong> generalized<br />

empty elements ∅ C T on C T <strong>and</strong> given further an element h 0 on T ′ <strong>and</strong> two functions defined on the types<br />

h 1 : T → T ′ <strong>and</strong><br />

h 2 : T ′ × T ′ → T ′ ,<br />

then we define the structural recursion by union presentation for R C on T as follows<br />

srec h0 ,h 1 ,h 2<br />

(∅ C T ) = h 0<br />

srec h0 ,h 1 ,h 2<br />

(|{|s|}|) = h 1 (s) for singleton<br />

collections |{|s|}|<br />

srec h0 ,h 1 ,h 2<br />

(R1 C ∪ C T RC 2 ) =<br />

h 2 (srec h0 ,h 1 ,h 2<br />

(R1 C), srec h 0 ,h 1 ,h 2<br />

(R2 C))<br />

iff R1 C ∩ C T RC 2 = ∅ C T .<br />

Distributive functions preserve partitions <strong>of</strong> sets, i.e. given a set X <strong>and</strong> a partition X = X 1 ∪ X 2 ∪ ... ∪ X n <strong>of</strong><br />

X into pairwise disjoint subsets. Then for a distributive function f there exist a function g such that f(X) =<br />

g(f(X 1 ), ..., f(X n )). Functions such as count, sum, min, max are distributive.<br />

Algebraic functions can be expressed by finite algebraic expressions defined over distributive functions. Typical<br />

examples <strong>of</strong> algebraic functions in database languages are average <strong>and</strong> covariance. The average function<br />

for instance can be defined on the basis <strong>of</strong> an expression on count <strong>and</strong> sum.<br />

Holistic functions are all other functions. For holistic functions there is no bound on the size <strong>of</strong> the storage needed<br />

to describe a sub-aggregate. Typical examples are mostFrequent, rank <strong>and</strong> median . Usually, their<br />

implementation <strong>and</strong> expression in database languages require tricky programming.<br />

Holistic functions are computable over temporal views. We will not discuss in detail these functions within this<br />

paper.


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 103<br />

OLTP-OLAP Transformations.<br />

OLTP-OLAP transformations are based on transforming functions<br />

• grouping G,<br />

• aggregation F, <strong>and</strong><br />

• linear transformations <strong>and</strong> nonlinear transformations such as the conversion <strong>of</strong> fuel consumption<br />

miles<br />

gallon .<br />

l<br />

100km<br />

Since we require for application frameworks that properties must be provable we need a formal framework for OLTP-<br />

OLAP transformations too. This framework is based on the theory <strong>of</strong> aggregation functions introduced next.<br />

Aggregation functions are very powerful. SQL-92 is not first-order [Lib01] due to the existence <strong>of</strong> these functions.<br />

The higher expressive power is based on aggregation functions, on grouping <strong>and</strong> on arithmetical functions<br />

that can be applied to numerical values. In general, an aggregation function is definable as a specific family<br />

F = {f 0 , ...., f k , ..., f ω } with functions f k : Bag k → Num that map bags with k elements to a numerical value.<br />

Definition 1 [CMM02] The family <strong>of</strong> functions<br />

(f k : Bag k → Num|k ∈ N 0 )<br />

for bags on dom(M j ) is called aggregation function on M j if<br />

• the equalities f k (min, ...., min) = min <strong>and</strong><br />

f k (max, ..., max) = max are valid for the minimal <strong>and</strong> maximal elements in dom(M j ) <strong>and</strong><br />

• they are monotone according to the order <strong>of</strong> dom(M j ).<br />

Additionally, aggregation functions<br />

F = {f 0 , ...., f k , ..., f ω }<br />

may have the following properties:<br />

Idempotent: f k (x, ...., x) = x for all x ∈ dom(M j ),<br />

Continuous: lim xi →x f(x i ) = f(x) for all sequences x i <strong>of</strong> size k,<br />

Lipschitz property: |f k (x 1 , ..., x k ) − f k (y 1 , ..., y k )|<br />

≤ c ∑ n<br />

i=1 |x i − y j | for some constant c,<br />

Symmetric: f k (x 1 , ..., x k ) = f k (x ρ(1) , ..., x ρ(k) ) for any k-permutation ρ,<br />

Self-identical: f k (x 1 , ..., x k ) =<br />

f k+1 (x 1 , ..., x k , f k (x 1 , ..., x k )),<br />

Shift-invariant: f k (x 1 + b, ..., x k + b) =<br />

f k (x 1 , ..., x k ) + b,<br />

Homogeneous: f k (bx 1 , ..., bx k ) = bf k (x 1 , ..., x k ),<br />

Additive: f k (x 1 + y 1 , ..., x k + y k ) =<br />

f k (x 1 , ..., x k ) + f k (y 1 , ..., y k ),<br />

Associative: f r (f k1 (x 1 ), ..., f kr (x r )) =<br />

f k1 +...+k r<br />

(x 1 , ..., x r ).<br />

Proposition 1 The aggregation functions <strong>of</strong> the first-order query algebra have the following properties:<br />

↦→


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 104<br />

max, min are idempotent, continuous, symmetric, self-identical, additive, homogeneous, <strong>and</strong> associative <strong>and</strong> obey<br />

the Lipschitz property,<br />

sum is continuous, symmetric, homogeneous, additive, associative, obeys the Lipschitz property, <strong>and</strong> is not idempotent,<br />

not self-identical, not shift-invariant,<br />

avg is idempotent, continuous, symmetric, shift-invariant, homogeneous, additive, obeys the Lipschitz property, is<br />

not self-identical, not associative,<br />

count is continuous, symmetric, associative, obeys the Lipschitz property, not idempotent, not self-identical, not<br />

shift-invariant, not homogeneous, not additive.<br />

The pro<strong>of</strong> <strong>of</strong> the proposition is straight-forward <strong>and</strong> thus omitted.<br />

Depending on these properties, the behavior <strong>of</strong> aggregation functions varies. For instance, if the aggregation<br />

function is not associative then roll-up may falsify the result.<br />

The existence or the non-existence <strong>of</strong> null values in<br />

dom(M j ) is not only a design issue but heavily influences the behavior <strong>of</strong> aggregation functions. For instance, as<br />

noted in [LT01] the min <strong>and</strong> max functions will not remain to be idempotent, the average function can be defined in<br />

at least nine different ways.<br />

The OLAP Cube.<br />

The data cube [GCB + 97] also know as the multidimensional database in OLAP systems is based on attributes<br />

that are categorized into dimension attributes <strong>and</strong> measure attributes. The measure attributes <strong>of</strong> those records with the<br />

same functional attributes are combined (mainly summed up) into an aggregate value. The intuition behind the cube<br />

is intriguing. Since it seems so simple to combine values the cube operator is applied whenever a summary is needed.<br />

But intuition may fail or may be misled. [VS00] introduces a general theory <strong>of</strong> the cube. We extend <strong>and</strong> simplify this<br />

definition.<br />

Definition 2 A dimension D is given<br />

• by a lattice L D = ({L 1 , ..., L nD }, ≼) <strong>of</strong> domain data types (dom(L i ), op(L i ), pred(L i )) with a partial order,<br />

• by a family F D <strong>of</strong> composite, equivalence-invariant <strong>and</strong> monotone functions anc L i,L j<br />

such that for each pair<br />

L i ≼ L j the function anc L i,L j<br />

maps each element <strong>of</strong> the domain dom(L i ) to an element <strong>of</strong> dom(L j ).<br />

The type L 1 is called the root type <strong>of</strong> the dimension. The family F D is associated to the family R D <strong>of</strong> relationships<br />

desc L i,L j<br />

inverse to anc L i,L j<br />

. Instead <strong>of</strong> using a family <strong>of</strong> functions we may use a family <strong>of</strong> values associations A D<br />

<strong>of</strong> relations ass L i,L j<br />

that associate elements <strong>of</strong> the domain dom(L i ) to elements <strong>of</strong> dom(L j ) for each pair L i ≼ L j .<br />

The types NONE <strong>and</strong> ALL are consisting <strong>of</strong> all possible elements or <strong>of</strong> none <strong>and</strong> may thus be added to any dimension<br />

hierarchy. Dimensions may by composed <strong>of</strong> n dimensions by cartesian product <strong>of</strong> each <strong>of</strong> their types <strong>of</strong> the<br />

lattice.<br />

A typical example <strong>of</strong> a dimension may be the time dimension with the types Seconds, Minutes, Hours, Days,<br />

Weeks, Months, Year <strong>and</strong> the linear partial orders Seconds ≼ Minutes ≼ Hours ≼ Days ≼ Months ≼ Years, Days ≼<br />

Weeks, Weeks ⋠ Months, Weeks ⋠ Years, where the function anc Minutes,Hours maps minutes (e.g. 10:02 am) to the<br />

hour they are embedded (e.g. 11 am). We may add also FiscalDays, WorkingDays etc.<br />

Definition 3 A cube is given by<br />

• a family D <strong>of</strong> dimensions D i = (L D i<br />

, F D i<br />

) (1 ≤ i ≤ m) with a partial association among dimensions,<br />

• a cube scope (p 1 , ...., p m ) with 1 ≤ p i ≤ n Di , <strong>and</strong><br />

• a set <strong>of</strong> aggregation functions agg 1 (M 1,1 ), ...,<br />

agg 1 (M 1,p 1<br />

), agg 2 (M 1,1 ), ..., agg k (M k,p k)<br />

which form the fact types.


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 105<br />

The cube may be canonically based on the root types <strong>of</strong> the dimensions. The associations among dimensions may lead<br />

to a snowflake structure <strong>of</strong> the cube. In the usual case, however, the cube is computed by one aggregation function,<br />

e.g. count while grouping objects based on desc L i,L j<br />

<strong>and</strong> applying the aggregation function to groups.<br />

[LS97] have shown that summarizability is depends on three properties:<br />

Disjointness: The objects can be distinguished at any level <strong>of</strong> summarization.<br />

Completeness: None <strong>of</strong> the objects is lost during summarization at some level.<br />

Atomicity <strong>and</strong> Timelessness: The attributes values are atomar <strong>and</strong> discrete. They are not used for storing complex<br />

values like comparison or scaled values or flow values.<br />

The first two properties lead directly to a restriction <strong>of</strong> the lattice association functions.<br />

Theorem 1 Disjointness <strong>and</strong> completeness can be guaranteed within a cube iff the values associations A D are total<br />

functions.<br />

This theorem forces us to consider dimensions for which each value <strong>of</strong> a more detailed type is associated to one <strong>and</strong><br />

only one value. Monotonicity <strong>and</strong> compositionality is required if we consider aggregation functions.<br />

The cube algebra consists <strong>of</strong><br />

• navigation functions on the basis <strong>of</strong> compositions <strong>of</strong> the anc L i,L j<br />

functions for associated types,<br />

• selection functions which is the equivalent <strong>of</strong> relational selection <strong>and</strong><br />

• projection functions on fact types.<br />

This definition demonstrates the complexity <strong>of</strong> the data cube. In the sequel we show that cube operations must be<br />

applied <strong>and</strong> used with care <strong>and</strong> with full underst<strong>and</strong>ing <strong>of</strong> the properties <strong>of</strong> the data taken from the application domain.<br />

OLAP Query Operations.<br />

The data cube is mainly queried by selection <strong>and</strong> navigation. Selection is based on a criterion that is evaluated<br />

against data or levels <strong>of</strong> dimension in order to restrict the set <strong>of</strong> retrieved data. Possible navigation operations which<br />

can be applied to a cube are roll-up (aggregation <strong>of</strong> data from a lower level to a higher level <strong>of</strong> granularity within a<br />

dimensions hierarchy), drill-down (the inverse to roll-up) <strong>and</strong> slice (by grouping <strong>of</strong> data with respect to a subset <strong>of</strong><br />

dimensions <strong>of</strong> a cube).<br />

More formally, the following basic OLAP query functions are introduced for a cube C = {(l 1 , ..., l m , m 1 , ..., m k )}<br />

defined on the cube schema (L 1 , ..., L m , M 1 , ..., M k ) , the lattice ({L 1 , ..., L n , ALL}, ≼) <strong>of</strong> dimensions, <strong>and</strong> the set<br />

<strong>of</strong> aggregation functions<br />

agg 1 (M 1,1 ), ..., agg 1 (M 1,p 1<br />

), ..., agg k (M k,p k):<br />

Basic drill-down functions are used for decomposing groups <strong>of</strong> data along a hierarchy. They refine grouping for<br />

one dimension L i ≼ L ′ i . The values for the fact values on M 1, ..., M k are obtained through anc L i,L ′ i by decomposition.<br />

We obtain the cube<br />

C ′ = {(l 1 ′ , ..., l′ m, m ′ 1 , ..., m′ k )}<br />

∑<br />

that is bound to C by the condition m j =<br />

(l i ,l i ′)∈ancL i ,L′ i,(l 1 ,...,l ′ i,...,l m, ,...,m ′′ m′′<br />

j , ,..., )∈C′ j .<br />

We observe that the corresponding aggregation functions must be additive along L i ≼ L ′ i .<br />

Basic dice functions are similar to projection in the first-order query algebra. Given a dimension L i ≼ ALL. The<br />

projection C ′ = π L1 ,...,L i−1 ,L i+1 ,...,L n<br />

(C) computes the cube C ′ with objects<br />

(l 1 , ..., l i−1 , l i+1 , ..., l m , m ′ 1 , ..., m′ k , ) ∈ C′ such that<br />

m ′ j = ∑ (l 1 ,...,l m,m 1 ,...,m k )∈C m j<br />

for all j(1 ≤ j ≤ k).<br />

We observe that the corresponding aggregation functions must be additive along L i ≼ L ′ i .


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 106<br />

Basic slice functions similar to selection <strong>of</strong> tuples within a set. Given a dimension L i <strong>and</strong> a set D <strong>of</strong> values d with<br />

the granularity <strong>of</strong> L i , i.e. such values d for which desc ALL,L i<br />

is defined. The cube δ Li ∈D(C) consists <strong>of</strong> those<br />

objects (l 1 , ..., l m , m 1 , ..., m k ) ∈ C for which l i ∈ D.<br />

These operations may be combined using superposition <strong>of</strong> functions in the classical way. We, thus, obtain drill-down<br />

functions by superposing drill-down functions.<br />

Generalizing the first-order query algebra, [Tha00a] defines additional OLAP operations such as<br />

join functions supporting combination <strong>of</strong> cube,<br />

union functions for union <strong>of</strong> two or more cube <strong>of</strong> the same type,<br />

rotate functions functions for rearrangement <strong>of</strong> the order <strong>of</strong> dimensions <strong>of</strong> cube, <strong>and</strong><br />

rename functions functions for renaming <strong>of</strong> dimensions.<br />

We observe:<br />

Proposition 2 The slice, drill-down, dice, union, rotate, <strong>and</strong> rename functions form a relationally complete query<br />

algebra <strong>of</strong> OLAP operations.<br />

The pro<strong>of</strong> is based on the relational completeness <strong>of</strong> the corresponding operations <strong>of</strong> the first-order query algebra.


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 107<br />

1.9 Architektur von <strong>Information</strong>ssystemen<br />

1.9.1 Definition <strong>of</strong> Architecture<br />

• Architecture in civil engineering: discipline dealing with the principles <strong>of</strong> design <strong>and</strong> construction <strong>and</strong> ornamentation<br />

<strong>of</strong> fine buildings; “architecture <strong>and</strong> eloquence are mixed arts whose end is sometimes beauty <strong>and</strong><br />

sometimes use”<br />

• art <strong>and</strong> science <strong>of</strong> designing buildings <strong>and</strong> other physical structures<br />

• Bass, Clements, <strong>and</strong> Kazman. S<strong>of</strong>tware Architecture in Practice 2nd ed, Addison-Wesley 2003:<br />

The s<strong>of</strong>tware architecture <strong>of</strong> a program or computing system is the structure or structures <strong>of</strong> the system, which<br />

comprise s<strong>of</strong>tware elements, the externally visible properties <strong>of</strong> those elements, <strong>and</strong> the relationships among<br />

them.<br />

• UML 1.3:<br />

Architecture is the organizational structure <strong>of</strong> a system. An architecture can be recursively decomposed into<br />

parts that interact through interfaces, relationships that connect parts, <strong>and</strong> constraints for assembling parts. Parts<br />

that interact through interfaces include classes, components <strong>and</strong> subsystems.<br />

• Bass, Clements, <strong>and</strong> Kazman. S<strong>of</strong>tware Architecture in Practice, Addison-Wesley 1997:<br />

The s<strong>of</strong>tware architecture <strong>of</strong> a program or computing system is the structure or structures <strong>of</strong> the system, which<br />

comprise s<strong>of</strong>tware components, the externally visible properties <strong>of</strong> those components, <strong>and</strong> the relationships<br />

among them.<br />

By “externally visible” properties, we are referring to those assumptions other components can make <strong>of</strong> a<br />

component, such as its provided services, performance characteristics, fault h<strong>and</strong>ling, shared resource usage,<br />

<strong>and</strong> so on. The intent <strong>of</strong> this definition is that a s<strong>of</strong>tware architecture must abstract away some information from<br />

the system (otherwise there is no point looking at the architecture, we are simply viewing the entire system)<br />

<strong>and</strong> yet provide enough information to be a basis for analysis, decision making, <strong>and</strong> hence risk reduction.”<br />

• Garlan <strong>and</strong> Perry, guest editorial to the IEEE Transactions on S<strong>of</strong>tware Engineering, April 1995:<br />

S<strong>of</strong>tware architecture is “the structure <strong>of</strong> the components <strong>of</strong> a program/system, their interrelationships, <strong>and</strong><br />

principles <strong>and</strong> guidelines governing their design <strong>and</strong> evolution over time.”<br />

• IEEE Std. 610.12-1990:<br />

Architecture is the organizational structure <strong>of</strong> a system.<br />

• s<strong>of</strong>tware architecture workshops:<br />

S<strong>of</strong>tware architecture is:<br />

an overall view <strong>of</strong> the solution to a problem<br />

the high-level design <strong>of</strong> modular components <strong>and</strong> how they interact<br />

a foundation that one can build on to solve a problem (e.g., rules, policies, attributes, etc.)<br />

an efficient method to meet a fixed set <strong>of</strong> well-defined attributes<br />

• Phaniraj Adabala (<strong>Systems</strong> Manager, Prasad Film Laboratories, Chennai, TN, India): S<strong>of</strong>tware Architecture is<br />

defined as a style that is proven scientifically <strong>and</strong> adopted by the engineering discipline, with which a s<strong>of</strong>tware<br />

is developed so as to sustain <strong>and</strong> adopt to the growing needs <strong>of</strong> the industry from time to time.<br />

• Ozten Chelai (University lecturer, Ovidius University <strong>of</strong> Constantza, Constanta, Romania): A system architecture<br />

represents the conceptual model <strong>of</strong> a system. A conceptual model is the map <strong>of</strong> concepts, relationships <strong>and</strong><br />

constraints.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 108<br />

• Ebenezer Adegbile (Consultant, Self Employed, London, Engl<strong>and</strong>): S<strong>of</strong>tware Architecture can be defined as<br />

language-independent representation <strong>of</strong> a given s<strong>of</strong>tware system. It represents the skeleton <strong>of</strong> a s<strong>of</strong>tware system,<br />

emphasizing a clear definition <strong>of</strong> the structure, communication <strong>and</strong> interrelationship <strong>of</strong> the body <strong>of</strong> the<br />

components that fulfills the purpose <strong>of</strong> a given s<strong>of</strong>tware system. The components <strong>of</strong> the architecture should<br />

expose the protocol <strong>of</strong> the components only to its clients. S<strong>of</strong>tware architecture should implement a clear separation<br />

<strong>of</strong> concerns in all the core observable <strong>and</strong> non-observable behaviour <strong>of</strong> a s<strong>of</strong>tware system.<br />

• Vijaya Agarwal (Associate Consultant, ICFAI, Hyderabad, India): S<strong>of</strong>tware architecture is aligning the s<strong>of</strong>tware<br />

components with proper collaboration <strong>and</strong> integration to sustain in the changing business environment by<br />

utilizing <strong>and</strong> abstracting the involver at maximum.<br />

• Wahab Ahmed (S<strong>of</strong>tware Engineer, National, Islamabad, Federal, Pakistan): S<strong>of</strong>tware architecture is a coherent<br />

set <strong>of</strong> abstract patterns, or principles, guiding the design <strong>of</strong> each aspect <strong>of</strong> a large s<strong>of</strong>tware system. S<strong>of</strong>tware architecture<br />

is a sketchy map <strong>of</strong> the system. S<strong>of</strong>tware architecture describes the coarse grain components (usually<br />

describes the computation) <strong>of</strong> the system. The connectors between these components describe the communication,<br />

which are explicit <strong>and</strong> pictured in a relatively detailed way. In the implementation phase, the coarse<br />

components are refined into “actual components”, e.g., classes <strong>and</strong> objects. In the object-oriented field, the<br />

connectors are usually implemented as interfaces.<br />

• Charlie Alfred (Technical Director, Foliage S<strong>of</strong>tware <strong>Systems</strong>, Inc., Burlington MA USA): S<strong>of</strong>tware architecture<br />

consists <strong>of</strong> the rules <strong>and</strong> principles for how a system is decomposed into its component parts, the rationale<br />

for how responsibilities are allocated among those parts, <strong>and</strong> the policies <strong>and</strong> mechanisms that coordinate the<br />

interactions between those parts as they collaborate to fulfill the purpose <strong>of</strong> the system. S<strong>of</strong>tware architecture is<br />

at once the partitioning <strong>of</strong> a system into its significant elements, <strong>and</strong> the organization <strong>and</strong> integration <strong>of</strong> those<br />

elements into a cohesive whole.<br />

• Christophe Alviset (Applications <strong>and</strong> Projects Department Head, INSEE, Paris, France): A systems architecture<br />

is the set <strong>of</strong> components, their attributes <strong>and</strong> the ways <strong>of</strong> using them that are necessary to build a system or a<br />

set <strong>of</strong> systems. It depends on the set <strong>of</strong> people working to build the systems, their skills <strong>and</strong> the current state <strong>of</strong><br />

the art. It helps them to agree on their respective roles. It aims to achieve some desirable functionalities in the<br />

systems that are built, such as evolutivity, robustnesss, redundancy, <strong>and</strong> so forth.<br />

• Wouter Beneke (Paradigm <strong>Systems</strong> Technology): The architecture <strong>of</strong> a system is an abstraction <strong>of</strong> the system<br />

giving the semantics <strong>and</strong> specification for the patterns <strong>of</strong> information content <strong>and</strong> context.<br />

• Wallace Byczek (Director <strong>of</strong> <strong>Development</strong>/Integration, U. Mass. Medical Center): S<strong>of</strong>tware architecture is the<br />

blueprinted or mapped definition <strong>of</strong> the component relationships formed by the domain architectural models,<br />

business related functions, application structure, <strong>and</strong> architecture inclusive <strong>of</strong> information architecture <strong>and</strong> its<br />

supporting infrastructure: tools, best practices, methods. In its modeled form it also establishes the dependencies<br />

between components – in short, it is a model <strong>of</strong> the “ultrastructure” <strong>of</strong> systems.<br />

• Ramayya Darbhamulla (S<strong>of</strong>tware Engineering Manager, Boeing Australia Limited, Brisbane QLD Australia):<br />

S<strong>of</strong>tware Architecture is a subset <strong>of</strong> the overall system architecture <strong>and</strong> it defines the contribution <strong>of</strong> s<strong>of</strong>tware to<br />

the overall functionality <strong>of</strong> the system, by defining the location, distribution <strong>and</strong> the interaction <strong>of</strong> the s<strong>of</strong>tware<br />

components. System architecture on the other h<strong>and</strong> defines the physical, logical <strong>and</strong> information elements <strong>of</strong><br />

the system which come together to realise a required set <strong>of</strong> functionality.<br />

• Kameshwar Eranki (Senior Product Manager, PeopleS<strong>of</strong>t Inc., Pleasanton, CA, USA): S<strong>of</strong>tware Architecture<br />

defines the fundamental elements, components <strong>and</strong> the framework in which the elements/components work <strong>and</strong><br />

how they interact with each other to deliver the desired business expectations, meeting the cost performance<br />

criteria <strong>and</strong> defined constraints, <strong>and</strong> taking into account the requirements <strong>of</strong> scalability, reliability, usability,<br />

<strong>and</strong> maintainability factors.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 109<br />

• Philippe Kruchten (Director <strong>of</strong> Process <strong>Development</strong>, Rational S<strong>of</strong>tware Corporation, Vancouver, B.C.): S<strong>of</strong>tware<br />

Architecture encompasses the significant decisions about<br />

* the organization <strong>of</strong> a s<strong>of</strong>tware system,<br />

* the selection <strong>of</strong> the structural elements <strong>and</strong> their interfaces by which the system is composed together with -<br />

their behavior as specified in the collaboration among those elements,<br />

* the composition <strong>of</strong> these elements into progressively larger subsystems,<br />

* the architectural style that guides this organization, these elements <strong>and</strong> their interfaces, their collaborations,<br />

<strong>and</strong> their composition.<br />

S<strong>of</strong>tware architecture is not only concerned with structure <strong>and</strong> behavior, but also with usage, functionality,<br />

performance, resilience, reuse, comprehensibility, economic <strong>and</strong> technological constraints <strong>and</strong> trade<strong>of</strong>fs, <strong>and</strong><br />

aesthetics.<br />

1.9.2 Paradigms <strong>of</strong> Programming in the Large<br />

Architecture with a variety <strong>of</strong> viewpoints (application architecture, technical (component/module) architecture, infrastructure<br />

architecture)<br />

Component construction via components, interfaces, connectors<br />

<strong>Development</strong> methodology for teamwork, team chairing, chair, roles, responsibilities, obligations<br />

Integration/Collaboration <strong>of</strong> components, also dynamic<br />

Distributed <strong>and</strong> embedded systems via networks<br />

Testing, verification, validation for control <strong>and</strong> coherence/consistency check<br />

Open source development under guru supervision<br />

Pattern-based refinement<br />

Mit dem integrierten Entwurf dieses Buches kann die Entwicklung “im Kleinen” sehr gut für alle Aspekte von<br />

<strong>Information</strong>ssystemen gemeistert werden. Wir können sogar die Entwicklung “im Großen” gut unterstützen. Dies<br />

gründet sich auf eine Reihe von Vorteilen, die unser Zugang bietet:<br />

Architektur von Systemen: Es wird eine allgemeine Architektur von <strong>Information</strong>ssystemen unter gleichberechtigter<br />

Berücksichtigung von Strukturierung, Funktionalität, Interaktivität und Verteilung ermöglicht.<br />

Einbettung in die Infrastruktur: Unser Zugang erlaubt <strong>Information</strong>ssysteme als eingebettete Komponente mit Einspielund<br />

Ausspielsystemen im Sinne der Data-Warehouse-Architektur wie in Kapitel ?? zu betrachten.<br />

Integration versus Kooperation: Da eine vollständige Integration weder möglich noch gewünscht ist für viele Anwendungen<br />

werden mit diesem Zugang die Kooperationsbeziehungen explizit dargestellt. Damit eignet sich<br />

auch Skriptprogrammierung für die Unterstützung der Kooperationsbeziehungen.<br />

<strong>Information</strong>seinheiten und Container: Dem Akteur werden die <strong>Information</strong>en in der erforderlichen Granularität<br />

bereitgestellt ohne ihn zu überfluten mit Daten.<br />

IS-Farmen: Integrierte, verteilte <strong>Information</strong>ssysteme sind selten möglich. Stattdessen präferieren wir Farmen von<br />

<strong>Information</strong>ssystemen als Mehr-Datenbanksysteme mit Austauschprotokollen, Be- und Entladung von Containern.<br />

Globale versus lokale Funktionalität: Jede lokale Anwendung verfügt über eine eigenständige Funktionalität und<br />

wird durch expliziten Anschluß mit ‘Fern’anwendungen integriert.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 110<br />

Kontrollierte Redundanz und Replikation: Redundanz kann zugelassen werden, damit Datenbestände eine höhere<br />

Verfügbarkeit besitzen.<br />

Kontrollierte Inkonsistenz: Da eine vollständige Konsistenz aller Komponenten nicht erforderlich ist, können ‘Alt’anwendun<br />

und z.T. unzuverlässige Kommunikation mit Mechanismen des Aufladens unterstützt werden.<br />

Eine etwas überraschene Entdeckung können wir mit den Diskussionen in [Jac07] machen. Dort wird lang und<br />

breit erläutert, wie man eine Straßenkreuzung doch nicht vollständig modellieren kann. Das Erstaunliche daran ist<br />

allerdings, daß einfach die falsche Granularität für das Modell gewählt wurde. Es wird dort statt einer Modellierung<br />

im Globalen eine Modellierung im Lokalen genutzt. Damit versucht der Autor leider, eine Kreuzung vom Verhalten<br />

der einzelnen Best<strong>and</strong>teile zu erklären, was aufgrund der vielen Nebenbedingungen eine Spaghetti-Modellierung<br />

wird, bei der einfache Zusätze wie z.B. die Möglichkeit für Fußgänger zur Rufen des grünen Signals zum Albtraum<br />

werden.<br />

Im H<strong>and</strong>buch (Kapitel 17) wird ein globales Modell entwickelt, das in seiner Einfachheit besticht und mit einem<br />

Local-As-View-Konzept auch die einzelne Komponente von Kreuzungen abbildet.<br />

Eine allgemeine Konstruktionslehre verfügt über Potentiale wie die folgenden:<br />

St<strong>and</strong>ardisierte Komponenten: St<strong>and</strong>ardisierte Komponenten sind einfach instantiierbar, relativ einfach mit Methoden<br />

von Skriptsprachen integrierbar und sind selbst parametrisierbar. Damit werden die Komposition und<br />

deren Effekte beherrschbar.<br />

Kooperation von Komponenten: Mit einer Input-Output-Assoziierung von Komponenten und einer Separation<br />

von Einspiel- und Ausspielmaschine ist eine variable Integration in Web-Anwendungen möglich.<br />

Adaptierbarkeit: Komponenten und <strong>Information</strong>ssysteme auf der Grundlage von Komponenten erlauben eine Adaption<br />

an Anwendungen mit Bildung von Variationen je nach Benutzung, Benutzern, (technischer) Infrastruktur<br />

und Netz.<br />

Beherrschbarkeit von Anwendungen: Die Pflege, die Veränderung, der Versionswechsel, eine Erweiterung, die<br />

Integration, die Weiterverwendung von Teilen und die Altlasten-Beherrschung werden einer neuartigen Lösung<br />

zugeführt.<br />

1.9.3 Examples <strong>of</strong> Layered Architectures: Presentation-Control-Mediator-Entity-Foundation Layering<br />

Presentation layer: communication user-control<br />

Control layer: intermediate to domain layer<br />

Domain layer: consists <strong>of</strong> entity <strong>and</strong> mediator components<br />

Foundation layer: intermediate between domain <strong>and</strong> service systems (DBMS,...)<br />

Main principles:<br />

Downward-dependency principle<br />

Upward-dependency principle:<br />

Neighbor communication principle<br />

Explicit association principle<br />

Cycle elimination principle<br />

Class naming principle<br />

Acquaintance package principle<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 111<br />

1.9.4 Examples <strong>of</strong> Layered Architectures: Database System Architecture<br />

Application<br />

system<br />

(workflow<br />

(functionality))<br />

Presentation<br />

system<br />

(playout<br />

(story))<br />

❄✻<br />

✛<br />

✲<br />

DBMS<br />

Communication subsystem<br />

Input-output<br />

processor<br />

Parser<br />

Update<br />

processor<br />

Optimizer<br />

Code generation<br />

Compiler<br />

Query<br />

processor<br />

Access plan<br />

generation<br />

Authority<br />

control<br />

Pre-compiler<br />

Integrity<br />

control <strong>and</strong><br />

enforcement<br />

Distribution management<br />

DBS =<br />

DBMS +<br />

{ DB }<br />

Synchronization<br />

<strong>of</strong> parallel<br />

access<br />

✻❄<br />

Supporting<br />

systems<br />

(graphical<br />

etc. )<br />

Storage management<br />

Data manager<br />

✻❄ ✻<br />

Log Data<br />

book✲ ✛<br />

dictionary<br />

Recovery<br />

Transaction manager<br />

management<br />

Scheduler<br />

Buffer manager<br />

❄<br />

Database<br />

✻❄<br />

Operating<br />

system<br />

1.9.5 Examples <strong>of</strong> Layered Architectures: OLTP-OLAP: Generalized Data Warehouse Architecture<br />

1.9.6 Examples <strong>of</strong> Layered Architectures: Componentised Architectures<br />

SAP R/3 ARIS schemata are huge, unsurveyable, incomprehensible<br />

Templates definieren eine Familie von Typen oder Funktionen. Teile ihrer Definitionen sind parametrisiert, so daß<br />

sie nach einer Instantiierung leicht unterschiedliche Merkmale haben können.<br />

Komponenten werden zwei Bedeutungen gebraucht:<br />

als Teil eines S<strong>of</strong>t- und Hardwaresystems oder<br />

als Asset als Produkt des S<strong>of</strong>twareleebenszyklus, das möglicherweise wieder verwendet werden kann.<br />

Wir verwenden hier die erste Form und weichen damit bewußt von der Micros<strong>of</strong>t-Auffassung ab.<br />

Pattern bieten für ein Problem eine Lösung an, ggf. auch mit Parametern zur Anpassung an einen Kontext, in der<br />

diese Lösung greift. Sie beinhalten keinen Code, sondern eine Beschreibung einer Technik. Sie sind damit<br />

abstrakter als Frameworks, da sie keiner Beschränkung des Anwendungsbereiches unterliegen.<br />

Frameworks erfassen die Gemeinsamkeiten von Anwendungen und werden im Entwurfsprozeß erstellt. Mit Frameworks<br />

wird dargestellt, wie eine Menge von abstrakten und konkreten Klassen mit welchen Schnittstellen<br />

zusammenarbeiten. Sie enthalten i.a. mehrere Pattern und sind für einen speziellen Anwendungsbereich festgelegt.<br />

Ein Framework kann als Komponente aufgefaßt werden. Sie liefern auch eine wieder verwendbare Umgebung<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 112<br />

Units generator<br />

Unit, applet,<br />

data provider<br />

Purger<br />

Storage<br />

Workspace<br />

Gate<br />

User pr<strong>of</strong>iles<br />

Payment<br />

manager<br />

Active acquisition<br />

Data suites<br />

Access, history<br />

manager<br />

OLTP<br />

data<br />

Foreign<br />

Data<br />

Legacy<br />

Data<br />

✲<br />

Micro-data<br />

✲ import<br />

export<br />

✲ tools<br />

✲<br />

Content<br />

management<br />

system<br />

OLAP/DW System<br />

✲<br />

Macro-data<br />

extractors<br />

database<br />

mining<br />

✲Anonymous<br />

user<br />

✲<br />

✲<br />

Business<br />

unit user<br />

EIS/DSS<br />

user<br />

Abbildung 29: Data Warehouse Architecture <strong>of</strong> the DaMiT System<br />

für Komponenten, z.B. zur Beh<strong>and</strong>lung von Fehlern, zum Austausch von Daten und Prozessen. Sie erleichtern<br />

die Entwicklung neuer Komponenten, da sie eine Spezifikation für neue Komponenten und Templates zu ihrer<br />

Implementation bereitstellen.<br />

Generatoren sind S<strong>of</strong>tware-Werkzeuge, die S<strong>of</strong>tware-Entwürfe und Anforderungsbeschreibungen nutzen, um Teile<br />

einer S<strong>of</strong>tware-Anwendung automatisch zu generieren, einschließlich des Codes und Anweisungen zur Programmsteuerung.<br />

Wir weichen leicht von diesen Begriffen ab und verwenden eine Begriffsumgebung, die in <strong>and</strong>eren Ingenieurdisziplinen<br />

üblich ist.<br />

Characterisation<br />

classification<br />

schemes<br />

Contracted<br />

party<br />

✛✮<br />

✐<br />

Supplier<br />

deliverer<br />

supporter<br />

Ontology<br />

Thesauri<br />

Official<br />

glossaries<br />

Marketing<br />

Organization<br />

✛✮<br />

✐<br />

✲<br />

✶<br />

✍ ✻▼<br />

Characterisation<br />

◆ ❄✌<br />

Product<br />

✛✮<br />

✐<br />

Production<br />

Instruments<br />

✍ ✻▼<br />

Production<br />

process<br />

✲<br />

✶<br />

◆ ❄✌<br />

Production<br />

Asset<br />

✍ ✻▼<br />

Production<br />

act<br />

◆ ❄✌<br />

✍ ✻▼<br />

◆ ❄✌<br />

◆ ❄✌<br />

Associated<br />

company<br />

✛✮<br />

✐<br />

Technical/<br />

application/<br />

... architecture<br />

Construction<br />

technology<br />

Person<br />

personality<br />

SAP R/3, Version 3: 4.200 relational types, ≈ 90 % are relationship types<br />

≈ 20 k attributes , ≈ 11 k views<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 113<br />

Layered Solution<br />

Lebenszyklusmodelle von Komponenten von Schemata.<br />

Flußmodelle entlang der Entwicklung<br />

darauf aufbauend Flußmodelle der Semantik<br />

Darstellung durch<br />

Phasen-Darstellung (Objekttyp ← Ist In → Phase)<br />

Nachteil: Historie schwierig nachvollziehbar<br />

Universalrelationen-Objekttyp<br />

Vorteil: einfache Struktur<br />

Subtypenstruktur mit einer based on Konstruktion<br />

Beispiel: Lebenszyklus eines Studenten<br />

mit Identifikationsvererbung<br />

ggf. mit Identifikationsanreicherung<br />

Nachteil: linearisierte Verläufe nur darstellbar, ansonsten verwirrend<br />

Detailstruktur<br />

Erweiterbarkeit, geringe Flexibilität Vorteil: Kodierung, IC-Pflege<br />

Typische Entwicklungmodelle: siehe Bestellungsmodellierung<br />

Based On-Modellierung: Typ(Typentyp, Agent, Proponent)<br />

ggf. erweitert um Rollen von Agenten und Proponenten<br />

Vorteil: einfach, übersichtlich<br />

Nachteil: schwierige Agent-Proponent-Dimension<br />

Auffaltung<br />

Inkrementelle Entwicklung Beispiel: wissenschaftliche Arbeit<br />

Grundtyp mit Spezialisierung je nach Dimension der Charakterisierung<br />

Vermischung mit based on<br />

Kreismodelle am besten mit Typ in Phase<br />

Varianten bzw. Variantionen bzw. Versionen<br />

ggf. mit Baumdarstellung<br />

Assoziationen mit vollem erweiterten ER-Modell<br />

ggf.mit dynamischen Aktivitätenmodell<br />

sowie Rechten zur Modifikation<br />

Bindungsarten (siehe 89 Arten von Links)<br />

• streng<br />

• ...<br />

• referenziert<br />

Metacharakterisierung unterschiedliche Arten:<br />

• Log<br />

• history<br />

• Archiv<br />

• Qualität<br />

• Benutzungsinformation (eingebettet in Story-Raum)<br />

• Autorenschaft<br />

• allgemeine Charakterisierung<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 114<br />

siehe auch Metainformationsst<strong>and</strong>ards<br />

Verlaufscharakterisierung mit dockets<br />

Zusatzlösungen für Architekturen von Komponenten von Schemata.<br />

Typisches Beispiel: Dreiebenenarchitektur von DBS mit Sicht(weis)en über der logischen (objekt-relationalen) Datenbank,<br />

Ausspiel, Einspiel, ...<br />

Architektur und Komponenten von Schemata.<br />

Für die Entwicklung im Großen präferieren wir eine allgemeine Konstruktionslehre für <strong>Information</strong>ssysteme, die man folgendermaßen<br />

charakterisieren kann:<br />

IS-Planung und IS-Engineering: Es wird ein Skelett oder eine Architektur eines <strong>Information</strong>ssystemes entwickelt, die eine<br />

komponentenbasierte Entwicklung unterstützt.<br />

‘Komponentenkunde’: Wir entwickeln eine allgemeine Methodik zu Klassifikation, zu Definition von Basiskomponenten, zu<br />

Konstruktor und Konstruktion von komplexen Systemen aus Komponenten.<br />

Grundlagen des Konstruierens: Die komponentenbasierte Entwicklung von Systemen kann dargestellt werden als Entwicklung<br />

von Strukturierung, Funktionalität und Interaktivität sowie Verteilung von Komponenten und aus Komponenten<br />

bestehenden <strong>Information</strong>ssystemen.<br />

Allgemeiner Konstruktionsprozeß: Die Entwicklung von <strong>Information</strong>ssystemen basiert auf Funktionskomponenten und erlaubt<br />

restriktionsgerechtes Konstruieren. Damit wird auch eine Minimierung und Kostenreduktion unterstützt.<br />

Funktionsbauweisen: Es können allgemeine Kostruktionsprinzipien abgeleitet werden für unterschiedliche Typen von <strong>Information</strong>ssystemen<br />

wie Mono-<strong>Information</strong>ssysteme, Multi-<strong>Information</strong>ssysteme und Farmen von <strong>Information</strong>ssystemen.<br />

St<strong>and</strong>ardisierung: Komponenten können zu Gruppen in Baukästen zusammen gefaßt werden und damit zur Konstruktion<br />

neuer <strong>Information</strong>ssysteme herangezogen werden.<br />

Anwendungsspezifischer Konstruktionsprozeß: Der Konstruktionsprozeß kann den Spezifika, den spezifische (quantitative)<br />

Parameter, der Optimierung, der unterschiedlichen Bewertung un Interaktion Rechnung tragen.<br />

Die allgemeine Grundlage des Konstruierens ist der hier propagierte Prozeß des integrierten Entwurfes. Sie basiert auf<br />

der Entwicklung des Skeletts der Anwendung mit Einheiten und Assoziationen der Einheiten bzw. Assoziationen, auf Meta-<br />

Charakteristiken der Einheiten und Assoziationen,<br />

Entwicklung der Basiskomponenten meist als Stern-Schema oder auch als Schneeflocken-Schema wie in diesem Kapitel dargestellt,<br />

auf der Konstruktion der Meta-Strukturen im Schema, die unterschiedliche Aspekte darstellen wie<br />

strukturelle Aspekte der Komponenten-Architektur, der Faltung nach Analogie und konstruktor-basierte Entwicklung,<br />

Lebensphasen-Aspekte je nach Art der Lebensphasen wie zyklische, gesteuerte, nicht-deterministisch, duplizierende<br />

Lebensläufe,<br />

Aspekte zu Kontext-Dimensionen zur Meta-Charakterisierung, zu Benutzung und zur Qualität,<br />

und<br />

der Detailentwicklung nach unserem Entwicklungszugang ‘im Kleinen’ zur Entwicklung von Strukturierung, Funktionalität,<br />

Interaktivität und Verteilung von <strong>Information</strong>ssystemen.<br />

Konstruktionslehre für <strong>Information</strong>ssysteme ?<br />

• Basiskonstrukte (Strukturierung, Funktionalität, Sichtweisen, Import-Export)<br />

• Konstruktion von komplexen Systemen mit<br />

• Konstruktoren (Verbindungen der Import-Export-Sichten)<br />

• Konstruktionskunde durch Regeln und Methodik<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 115<br />

• Sinnvoll und möglich?<br />

Beobachtungen in unserer Schema-Bibliothek<br />

Zusammenfassung zu wenigen verallgemeinerten Schemata<br />

Wiederholungen gleicher Strukturen<br />

Mehrdimensionalität in Schemata zur Darstellung von Aspekten<br />

(Spezialisierung, Assoziation, Kontext, Benutzung,<br />

Geschichte, Meta-Charakteristik)<br />

Versionen und Sichten zur Darstellung von Benutzungsaspekten<br />

Allgemeine Herangehensweise:<br />

Komponentenbasierte S<strong>of</strong>tware-Entwicklung<br />

• Aufbau von Anwendungen aus existierenden Komponenten<br />

als Meta-Programming-Paradigma<br />

Denken in interoperablen Komponenten statt einzelnen Elementen<br />

• S<strong>of</strong>twarewiederverwendung statt Neuentwicklung<br />

• Strukturerhaltende Modellierung der Anwendung<br />

• Ausnutzung von Domänenwissen<br />

• Produzenten/Konsumenten-Idee<br />

• interaktive Entwicklung<br />

S<strong>of</strong>twareproduktion<br />

Komponententechnologie<br />

OO-Technologie<br />

3GL-Technologie<br />

Abbildung 30: Evolutionsstrategie der S<strong>of</strong>tware- (Datenbank-) Entwicklung<br />

Dabei werden verallgemeinernd die Komponenten charakterisiert wie in der Pattern-Technologie (Entwurfsmuster)<br />

(Dort meist noch ungeordnet (2 Linien: Gamma-Linie (siehe sein Buch) und Siemens-Linie) und unstrukturiert. Besser bereits einmal<br />

benutzt bei der Erstellung von Programmbibliotheken.) :<br />

• Name (Akronym oder Bedeutung)<br />

auch mit einer Angabe von Alias-Namen (Also-Known-As bzw. Save-As)<br />

• Kontext (sowohl system-orientiert als auch human-oriented)<br />

Anwendungsbereich mit einer Charakterisierung von Anwendungsfällen (Known-Uses)<br />

Einbindung in Umgebungen mit einer Angabe der Integrationsstrategie und related pattern und der<br />

Konsequenzen der Anwendung dieses Musters<br />

Charakterisierung von Akteuren und deren Rollen<br />

und einer Darstellung der Intension bzw. Motivation<br />

Gründe für die Darstellung der Motivation<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 116<br />

Selektive Wahrnehmung von Benutzern und Entwerfern (multi-perspective approach)<br />

multiple angled<br />

Semantik versus Vorstellung (unterschiedliche Semantik der Darstellung) (‘paralysis by the analysis<br />

syndrome’) notwendig wird ein einheitliches Basis-Modell<br />

uniqueness <strong>of</strong> the basic model (guardian)<br />

‘not invented here’ Syndrom (shared meaning (diplomatic))<br />

minimal appeal: Entwickler warten auf Lösung durch <strong>and</strong>ere<br />

initializable (strawman)<br />

unterschiedliche Abstraktion der gleichen Realität und damit Konsistenzprobleme<br />

consistency (validator)<br />

Zerlegung bzw. Modularisierung erfordert meist bereits tiefgründiges Verständnis<br />

adversarial (devil’s advocate)<br />

‘knee jerk’ Effekte: meist werden unlösbare Probleme übersehen<br />

lateral (fact-finder)<br />

• Charakterisierung des Problemes<br />

• Angabe der Lösung<br />

Struktur<br />

Funktionalität<br />

Semantik (sowohl statisch als auch dynamisch)<br />

Angabe von Beispielen<br />

Implementation und Charakterisierung von Plattformen<br />

mit einer Angabe von Varianten<br />

und sample code<br />

Ein Beschreibung der Komponenten umfaßt:<br />

allgemeine Architektur der Anwendung als Komponenten-Schema<br />

Zusammenhänge der Komponenten<br />

Abgrenzung der Komponenten vonein<strong>and</strong>er,<br />

Kooperationsbeziehungen der Komponenten auf der Grundlage eines Kooperationsvertrages bzw. Föderierungsvertrages<br />

Vererbung und Steuerung von Strukturierung und Funktionalität einer Komponente durch <strong>and</strong>ere Komponenten.<br />

Stern-Schema als Komponente Produkte haben neben spezifischen Eigenschaften<br />

Spezialisierungen z.B. materielles Gut, Service,<br />

Versionen,<br />

und Beziehungen, Kontext (z.B. Klassifikation). Dreidimensionale Meta-Struktur!<br />

Spezielle Sichten für Assoziation<br />

Schneeflocken-Schema als Komponente<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 117<br />

Produktkode<br />

Einführdatum<br />

BeginnVerkaufDatum<br />

BeginnServiceDatum<br />

Kommentar<br />

Gut Service ProduktVersion<br />

Produktspezifische<br />

Eigenschaften<br />

<br />

✶<br />

❄<br />

Produkt<br />

✻<br />

✮<br />

✐<br />

Weitere<br />

Eigenschaften<br />

Name<br />

UniversalProductCode<br />

...<br />

EndeVerkaufDatum<br />

EndeServiceDatum<br />

Kategorisierungen<br />

Spiegel von<br />

Kurs<br />

✛<br />

Basiert<br />

Auf<br />

Kurs<br />

✻<br />

✒<br />

Raum<br />

IstEin<br />

Feiertag<br />

✲<br />

Tag<br />

✛<br />

❥<br />

Vorlesung<br />

❄<br />

Lehrkraft<br />

✻<br />

Arbeitet<br />

In<br />

✲Studiengang<br />

✲<br />

✻<br />

Angeboten<br />

Durch<br />

❄<br />

Institut<br />

Vorlesung-Lehrkraft-ArbeitetIn-Institut ⊆ ⊇<br />

Vorlesung-Studiengang-AngebotenDurch-Institut<br />

Vorlesung-Kurs ‖ Vorlesung-BasiertAuf-Kurs<br />

Konstruktionslehre<br />

Komponenten, aufbereitet zur Komposition<br />

• die zentrale Komponente Product Intext Data:<br />

Product, Item, Service, ProductCharacteristics,<br />

• Categorization Schema (α, Code;<br />

ProductCategoryClass(α,ProductCategory(Code)) ,<br />

• Availability Schema (α; ProductObsolesence(α)) ,<br />

• Product Associations Schema (α, β, δ;<br />

Associates(what : α, toWhat : β, kind : δ)) ,<br />

• Inventory Schema (γ, ɛ; Inventory(what : γ, store : ɛ))<br />

Marken (what, store)<br />

für binären Relationship-Typen InventoryItem,<br />

• Container Schema (ζ, η; Container(kind : ζ, partyAddress : η))<br />

• Producer Schema (α; ProducerOf(α, Organization))<br />

• Pricing Schema (α; ProductPriceComponent(α))<br />

Konstruktion aus Komponenten<br />

Product Schema ✶ α:=CategorySet Categorization Schema<br />

✶ α:=P roduct Availability Schema<br />

✶ α:=P roduct,β:=P roduct,δ=P roductSubstitute<br />

⊕ ConsistsOf<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 118<br />

Product Association Schema<br />

✶ ζ:=ContainerT ype,η:=Address Container Schema<br />

✶ γ:=Item,ɛ:=Container<br />

⊕ Address Inventory Schema<br />

✶ α:=P roduct Producer Schema<br />

✶ α:=AdditionalCharacteristics Pricing Schema<br />

Komposition durch<br />

• Parameter-Instantiierung mit entsprechender Gleichungslogik,<br />

• Unifikation der Ausdrücke mit Methoden des term rewriting,<br />

• ER-Restrukturierung mit Methoden der ER-Schematologie und<br />

• Ableitung der Sichten-Kooperation mit Graph-Grammatik-Methoden.<br />

Als Beispiel betrachten wir folgende Schemata:<br />

Dimension<br />

Type<br />

✛<br />

Dimension<br />

OfType<br />

✲<br />

Dimension<br />

❑<br />

Color<br />

✻<br />

Other<br />

Characteristic<br />

✕<br />

Quantity<br />

Break<br />

✻ ✕<br />

Price<br />

Component<br />

Type<br />

Party<br />

Type<br />

Br<strong>and</strong><br />

Name<br />

Used To<br />

Base Define<br />

Purchaser<br />

Of<br />

Product ■<br />

Product<br />

Price Discount LocationGeographic<br />

Type<br />

Level UsedToDefine<br />

❦<br />

✿Boundary<br />

Product<br />

Quality<br />

2<br />

Component Discount<br />

OptionalComponent<br />

❫❯<br />

Product<br />

Price Estimated<br />

DependentOn ✒ UsedTo<br />

Component Product Define<br />

UOM<br />

UnitOf ✛<br />

⊕ Specified ✗<br />

Cost<br />

Costed<br />

Measure<br />

Product<br />

2<br />

✙ For Priced<br />

By<br />

Characteristic<br />

Product<br />

may be<br />

Surcharge By<br />

Converted<br />

❘ ✌ Supplier<br />

converted Conversion in<br />

Component Product<br />

Product ✻<br />

✲ RatingType<br />

Factor<br />

Supplier<br />

Obsolesence<br />

AReplacementNeededFor ❘ Product<br />

SuperceededBy Characterized<br />

Product<br />

❘ Supplier<br />

Substitute Product<br />

Consists Product<br />

Of ✲ ❥ Preference<br />

By UsedAs ❘❘ ❄<br />

✠<br />

MadeUpOf<br />

❫<br />

✛ Producer ✲ Organization<br />

UsedIn<br />

Of<br />

✻ WorkIn ✻ ✻<br />

Progress<br />

Prod<br />

Category<br />

Additional<br />

Raw Class<br />

❂ Material<br />

✛<br />

✾<br />

Identification Item<br />

Item ✛ Finished ❄<br />

Type<br />

Good Product<br />

Category<br />

✻<br />

✛ Market<br />

Identification<br />

Interest<br />

Item<br />

Item Shrinkage ✲ Inventory<br />

❄<br />

Variant Item ⊕<br />

Party<br />

Overages<br />

WarehousedAt<br />

Type<br />

StorageFor<br />

Service<br />

✮ ❄<br />

Party ✛ Container ✲ Container<br />

Address Type<br />

❄<br />

❃<br />

The Specialization <strong>and</strong> Product-Product-Association Dimensions<br />

Product<br />

Obsolesence<br />

Product<br />

Substitute ✲ ❥ ❘❘<br />

Consists<br />

Of<br />

✻<br />

Product<br />

✻<br />

WorkIn<br />

Progress<br />

Additional<br />

❂ Material<br />

Raw<br />

✛<br />

✾<br />

Identification Item<br />

Item ✛ Finished<br />

Type<br />

Good<br />

Identification<br />

✻<br />

Item<br />

Item Shrinkage ✲ Inventory<br />

Variant Item ⊕<br />

Overages<br />

WarehousedAt<br />

StorageFor<br />

Service<br />

✮ ❄<br />

Party ✛ Container ✲ Container<br />

Address Type<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 119<br />

Dimension<br />

Type<br />

✛<br />

Dimension<br />

OfType<br />

Br<strong>and</strong><br />

Name<br />

Product<br />

Type<br />

✲<br />

Dimension<br />

❑<br />

■<br />

❦<br />

Color<br />

✻<br />

Product<br />

Quality<br />

2<br />

UOM<br />

UnitOf ✛<br />

⊕<br />

Measure<br />

Product<br />

2<br />

may be<br />

Characteristic<br />

converted in Converted<br />

Conversion<br />

Factor ✻<br />

❘ Product<br />

Characterized<br />

❄<br />

Product<br />

Other<br />

Characteristic<br />

✕<br />

The Characterization Dimension<br />

Consists<br />

Of ✲ ✲ ✻<br />

Used To<br />

Base Define<br />

Purchaser<br />

Of<br />

Product<br />

Price Discount LocationGeographic<br />

Level UsedToDefine ✿Boundary<br />

Component Discount<br />

OptionalComponent<br />

❫❯<br />

Product<br />

Price Estimated<br />

DependentOn ✒ UsedTo<br />

Component Product Define<br />

Specified ✗<br />

Cost<br />

Costed<br />

Product ✙ For Priced<br />

By<br />

Characteristic Surcharge By<br />

Product<br />

❘ ✌ Supplier<br />

Component Product ✲ RatingType<br />

Supplier<br />

Product<br />

Characterized<br />

Product<br />

❘ Supplier<br />

Preference<br />

❄<br />

Product<br />

Quantity<br />

Break<br />

✻ ✕<br />

✠<br />

✛<br />

❄<br />

Price<br />

Component<br />

Type<br />

Producer<br />

Of<br />

❃<br />

❫<br />

✲<br />

Party<br />

Type<br />

Organization<br />

The Producer, Supplier <strong>and</strong> Pricing Dimensions<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 120<br />

The Product-Product-Association <strong>and</strong> Categorization Dimensions<br />

Product<br />

Obsolesence<br />

AReplacementNeededFor<br />

SuperceededBy<br />

Substitute<br />

Product<br />

By<br />

Consists<br />

Of ✲ ❥ UsedAs<br />

MadeUpOf<br />

UsedIn<br />

❘❘<br />

Product<br />

✻<br />

Prod<br />

Category<br />

Class<br />

❄<br />

Product ✛<br />

Category<br />

Market<br />

Interest<br />

❄<br />

Party<br />

Type<br />

Meta-Strukturen in Schemata.<br />

Komponenten-Schema<br />

wie vorher<br />

hier noch einmal Suite (wie bereits bei Sichten (Aktionssichtensuite)) Mikro-Strukturen in Schemata.<br />

Komposition von Schemata.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 121<br />

1.10 The Loss <strong>of</strong> Architectural Knowledge during System Evolution<br />

Observation: Once a system has been developed, architectural solutions are kept in the documentation. During evolution<br />

phases, architectural knowledge is not updated.<br />

Result: architectural decay, outdated architecture, loss <strong>of</strong> essential dependencies among components <strong>and</strong> introduction<br />

<strong>of</strong> undocumented dependencies.<br />

Typical dependencies in the code: invocation <strong>of</strong> a method/constructor, access <strong>of</strong> an attribute (field, property),<br />

extensions <strong>of</strong> classes or structures by implementing an interface, usage <strong>of</strong> a class (structure, enumeration) as a type<br />

for an attribute (field, variable, parameter), annotation <strong>of</strong> an attribute.<br />

Explicit quality (coherence, conformance) checks, explicit architecture monitors (at least for the technical architecture),<br />

continuous architecture analysis.<br />

Metrics might be useful.<br />

Application features drive evolution <strong>and</strong> the technical architecture.<br />

Tactics (Brass) for evolution to influence quality.<br />

1.10.1 QuaSAR Architecture: Separation <strong>of</strong> Viewpoints<br />

Abbildung 31: Der Alptraum einer falschen Architektur; besser gleich mit QuaSAR<br />

Source von Bild 31:<br />

Technische Open Source Komponenten implementieren - Die Referenzarchitektur Quasar<br />

Dr. Bernhard Humm, sd&m Research, Bremen, 17. September 2004


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 122<br />

Viewpoints: application zones, system structure, infrastructure embedding<br />

Geometry!!<br />

ground plan<br />

pr<strong>of</strong>ile view<br />

top view<br />

Architecture!!<br />

function view<br />

infrastructure view<br />

deployment view<br />

1.10.2 S<strong>of</strong>tware Architecture: Our Approach<br />

A system architecture represents the conceptual model <strong>of</strong> a system.<br />

• Different abstractions: application domain .... specification ... coding ... sub-coding<br />

• Different viewpoints: module structure, ...<br />

• Different concerns: structure, functionality, distribution, interaction<br />

• Differences for stakeholders: programmers view, embedding into infrastructure, business user view<br />

Application domain description<br />

Architecture<br />

blueprint<br />

Requirements<br />

prescription<br />

S<strong>of</strong>tware specification<br />

Abbildung 32: The S<strong>of</strong>tware Engineering Quadruple<br />

What is now the problem?<br />

How architecture concerns can be integrated into systems development?<br />

Integration into IS development processes: late, early, escorting<br />

Architecturing as an orthogonal concern


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 123<br />

S<strong>of</strong>tware Architectures Description Language.<br />

ADL<br />

Architecture Modeling Features<br />

Components<br />

Interface<br />

Types<br />

Semantics<br />

Constraints<br />

Evolution<br />

Non-functional properties<br />

Connectors<br />

Interface<br />

Types<br />

Semantics<br />

Constraints<br />

Evolution<br />

Non-functional properties<br />

Component-Based Specification.<br />

Architectural<br />

Configurations<br />

Underst<strong>and</strong>ability<br />

Compositionality<br />

Refinement <strong>and</strong><br />

traceability<br />

Heterogeneity<br />

Scalability<br />

Evolution<br />

Dynamism<br />

Constraints<br />

Non-functional<br />

properties<br />

Tool Support<br />

Active Specification<br />

Multiple Views<br />

<strong>Analysis</strong><br />

Refinement<br />

Implementation<br />

Generation<br />

Dynamism<br />

S<strong>of</strong>tware architecture as the starting point<br />

Signature:<br />

COMPONENT = (Name, Exported Services, Imported Services,<br />

Usage Constraints )<br />

Functions <strong>of</strong> the component:<br />

• Exports: COMPONENT → P(EXP SERVICE)<br />

• Imports: COMPONENT → P(IMP SERVICE)<br />

• Constraint: COMPONENT → CONSTRAINT<br />

• Name: COMPONENT → STRING<br />

Views <strong>of</strong> the component:<br />

• Application architecture view<br />

• Infrastructure architecture view<br />

• Technical architecture view<br />

Services <strong>of</strong> Components.<br />

defined by the union <strong>of</strong><br />

SERVICE = EXP SERVICE ∪ IMP SERVICE<br />

Signature:<br />

SERVICE = (Name, , ServiceResType,<br />

Component, Quality <strong>of</strong> service )


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 124<br />

Functions <strong>of</strong> the service:<br />

• ServiceParam: SERVICE → (TYPE × MODE) ∗<br />

• MODE = { in, out, inout }<br />

• ServiceResType: SERVICE → TYPE<br />

• Component: SERVICE → COMPONENT<br />

• Name: SERVICE → STRING<br />

Services <strong>of</strong> Components.<br />

defined by the union <strong>of</strong><br />

SERVICE = EXP SERVICE ∪ IMP SERVICE<br />

Signature:<br />

SERVICE = (Name, , ServiceResType,<br />

Component, Quality <strong>of</strong> service )<br />

Exported services exported by the component<br />

• ExportStructure: EXP SERVICE → P(USE STRUCTURE)<br />

Imported services based on corresponding signature<br />

• ContainedServices: USE STRUCTURE → P(IMP SERVICE)<br />

• MeetsConstraint: USE STRUCTURE × CONSTRAINT → BOOL<br />

Interfaces <strong>of</strong> Components.<br />

defined through an interface signature SPEC<br />

• ProvidedServices: VIEW × EXP SERVICE → SPEC<br />

• RequiredServices: VIEW × IMP SERVICE → SPEC<br />

• SatisfiesConstraint: VIEW × SPEC × SPEC → BOOL<br />

Connections among the components based on CONNECTOR<br />

• Connector: IMP SERVICE × EXP SERVICE → CONNECTOR<br />

• ImportServices: CONNECTOR → IMP SERVICE<br />

• ExportServices: CONNECTOR → EXP SERVICE<br />

Interfaces <strong>of</strong> Components.<br />

defined through an interface signature SPEC<br />

• ProvidedServices: VIEW × EXP SERVICE → SPEC<br />

• RequiredServices: VIEW × IMP SERVICE → SPEC<br />

• SatisfiesConstraint: VIEW × SPEC × SPEC → BOOL<br />

with constructors axioms


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 125<br />

Application domain<br />

layer<br />

Scoping<br />

❄<br />

Requirements<br />

acquisition<br />

layer<br />

❄<br />

Conceptual<br />

layer<br />

Implementing<br />

specification<br />

Structuring<br />

❄<br />

Implementation<br />

layer<br />

Variating<br />

❄<br />

Business user<br />

layer<br />

<strong>Design</strong>ing<br />

Distribution<br />

specification<br />

Functionality<br />

specification<br />

Dialogue<br />

specification<br />

Abbildung 33: Abstraction Layers <strong>and</strong> Model Categories in WIS Co-<strong>Design</strong><br />

• s imp ∈ ContainedServices(ImportStructure(s exp ))<br />

• acyclic connections (no exported service used in its body an imported service that is connceted<br />

• each imported service is conncted with at most one exported service through a connector or an abstract connector<br />

Abstraction Layers <strong>and</strong> Model Categories in WIS Co-<strong>Design</strong>.


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 126<br />

Description/<br />

prescription<br />

layer<br />

<strong>Design</strong><br />

Refinement<br />

Application<br />

area<br />

description<br />

Requirements<br />

prescriptions<br />

WIS description<br />

<strong>and</strong> prescription<br />

Conceptual<br />

layer<br />

Implementation<br />

layer<br />

Presentation system<br />

specification<br />

Implementation<br />

Transformation<br />

WIS specification<br />

<strong>Information</strong> system<br />

specification<br />

<strong>Information</strong><br />

system<br />

Presentation<br />

system<br />

Web information system<br />

Abbildung 34: The classical dichotomy <strong>of</strong> human-computer systems <strong>and</strong> the systems ladder<br />

1.10.3 Web <strong>Information</strong> <strong>Systems</strong> Architectures<br />

So far: Presentation is driven by the system<br />

Content Management: Known Choices.<br />

Media type architecture has been settled but ...<br />

Example: Architectures <strong>of</strong> Web <strong>Information</strong> <strong>Systems</strong>: Infrastructure Collaboration.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 127<br />

Application domain<br />

layer<br />

Scoping<br />

❄<br />

Requirements<br />

acquisition<br />

layer<br />

❄<br />

Conceptual<br />

layer<br />

Implementing<br />

specification<br />

Structuring<br />

❄<br />

Implementation<br />

layer<br />

Variating<br />

❄<br />

Business user<br />

layer<br />

<strong>Design</strong>ing<br />

Distribution<br />

specification<br />

Functionality<br />

specification<br />

Dialogue<br />

specification<br />

Abbildung 35: Abstraction Layers <strong>and</strong> Model Categories in WIS Co-<strong>Design</strong><br />

Presentation<br />

systems<br />

✻<br />

❄<br />

Web middleware<br />

system<br />

✻<br />

❄<br />

Application logic<br />

system<br />

✻<br />

❄<br />

DBMS<br />

Support systems<br />

✻ ✻ ✻<br />

❄ ❄ ❄<br />

Layout/ playout<br />

systems<br />

✻<br />

❄<br />

Web middleware<br />

system<br />

✻<br />

❄<br />

Storybord layout/<br />

playout system<br />

✻<br />

❄<br />

Media type<br />

management system<br />

✻<br />

❄<br />

DBMS<br />

Support systems<br />

✻ ✻ ✻<br />

❄ ❄ ❄<br />

Classical 3-tier web server<br />

Media type architecture<br />

PCMEF architecture<br />

Web IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 128<br />

Community<br />

& leisure<br />

groups<br />

Web <strong>Information</strong> <strong>Systems</strong><br />

Infrastructure Management<br />

Forum &<br />

discussion<br />

corner<br />

Minor art events<br />

✮<br />

✛<br />

✐<br />

Inject<br />

Book<br />

Response<br />

<strong>Information</strong> logistics<br />

<br />

✲<br />

✶<br />

Big events<br />

Restaurant<br />

City administration<br />

events<br />

Educational<br />

institutes<br />

events<br />

◆ ❄✌<br />

Sport events Traffic about 25 other<br />

collaboration<br />

DBS<br />

✠<br />

Architectures<br />

Signatures/ schemata/ specification languages<br />

✻founded annotated aggregated macro-schema<br />

annotated aggregated macro-schema<br />

aggregated macro-schema<br />

macro-schema<br />

schema<br />

(sensor) micro-schema<br />

Feature A Aspect B<br />

mainframe<br />

client/server<br />

federated<br />

collaborated<br />

collaborating on dem<strong>and</strong><br />

✲Processes <strong>and</strong> products<br />

<strong>of</strong> development<br />

Abbildung 36: The <strong>Development</strong> Space for Web <strong>Information</strong> <strong>Systems</strong><br />

Web IS


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 129<br />

Description/<br />

prescription<br />

layer<br />

Conceptual<br />

layer<br />

Implementation<br />

layer<br />

<strong>Design</strong><br />

Refinement<br />

Implementation<br />

Transformation<br />

Application<br />

area<br />

description<br />

Presentation system<br />

specification<br />

Presentation<br />

system<br />

Requirements<br />

prescriptions<br />

WIS description<br />

<strong>and</strong> prescription<br />

WIS specification<br />

<strong>Information</strong> systems<br />

specification<br />

Web information system<br />

<strong>Information</strong><br />

system<br />

Abbildung 37: The dichotomy <strong>of</strong> human-computer systems <strong>and</strong> the systems ladder<br />

1.11 Modellierung im Großen als der Normalfall<br />

1.11.1 CIDOC als gewachsenes Beispiel<br />

Siehe Bild 38 bzw. 39<br />

1.11.2 Eine einfache Website-Anwendung<br />

Siehe Bild 40.<br />

1.11.3 Eine etwas problematische Website-Anwendung<br />

siehe Bild 41<br />

1.11.4 Vorlesungsverzeichnis als ein einfaches System<br />

Siehe Bild 42<br />

1.11.5 Zwei nicht allzu pr<strong>of</strong>essionelle DB-Schema<br />

Siehe Bild 43 bzw. 44


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 130<br />

Abbildung 38: CIDOC Conceptual Reference Model Diagram V9<br />

Abbildung 39: CIDOC Conceptual Class Hierarchy V9


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 131<br />

Abbildung 40: Das Stadtinformationssystem der Stadt Forst


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 132<br />

untitled -- Display1 / <br />

Nutzer<br />

n_id<br />

f_id (FK)<br />

nutzername<br />

nutzerpw<br />

nutzernr<br />

k_id<br />

sprach_id<br />

Liefzahlbed<br />

lzb_id<br />

f_id (FK)<br />

liefzahlbed<br />

Firma<br />

f_id<br />

firma1<br />

firma2<br />

firmakurz<br />

gesellform<br />

l<strong>and</strong>_id<br />

bl_id<br />

reg_id<br />

plz<br />

ort<br />

strasse<br />

tel<br />

fax<br />

html<br />

email<br />

gruendjahr<br />

mitarbzahl<br />

umsatz<br />

waehrung<br />

hrb<br />

ust<br />

institution<br />

iso9000<br />

oko<br />

frei<br />

letzteaender<br />

hrort<br />

hrart<br />

hrbnr<br />

cmitarbzahl<br />

cumsatz<br />

herkunft<br />

Anzeigen<br />

f_id (FK)<br />

anz_id<br />

anzeige<br />

zeigen<br />

zeigen2<br />

1, 1 / 3, 4 -- 09:14:44 , 02/08/1999<br />

Abbildung 41: Das Web-<strong>Information</strong>ssystem Wirtschaft Online


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 133<br />

Abbildung 42: Das Web-<strong>Information</strong>ssystem zur Vorlesungsplanung


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 134<br />

Abbildung 43: Das DB-Schema von Facebook 1.0


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 135<br />

Abbildung 44: Das DB-Schema von MediaWiki 1.0<br />

1.11.6 Entwurfsheuristiken für große Schemata<br />

Große Schemata erfordern ein diszipliniertes Herangehen an die Entwicklung. Dies wird jedoch erschwert durch die<br />

inhärente Unvollständigkeit der Entwurfsinformationen. Damit sich unvollständige oder verspätet erkannte <strong>Information</strong>en<br />

nicht auswirken benötigen wir allgemeine Entwurfsregeln, Entwurfsheuristiken und Entwurfsstrategien<br />

Für die Darstellung mit dem ER-Model können wir pragmatische Regeln entwickeln:<br />

Entity-Typen: Ein Entity-Typ ist kein relationaler Typ. Er hat die Aufgabe, Konzepte der Anwendung zu beschreiben.<br />

Damit muß auch aufgezeigt werden, warum dieser Typ in der Anwendung relevant ist. Existenzregeln und<br />

Streichungsregeln gehören zur vollständigen Definition von Typen.<br />

Oft werden <strong>Information</strong>en archiviert. Damit muß eine Möglichkeit existieren zur Darstellung der Gleichheit<br />

von Objekten. Namenskonventionen sollten nachvollziehbar sein. Für schwache Entitytypen sollte die Relevanz<br />

für die Anwendung besonders geprüft werden. Variationen von Typen können durch verschiedene Benutzergruppen<br />

gefordert werden. Die Darstellung kann meist über Sichten erreicht werden. Ist dies nicht möglich,<br />

dann sind die ‘analogen’ Typen durch entsprechende Integritätsbedingungen zu verknüpfen. Sichten sind <strong>of</strong>t<br />

einer komplexeren Struktur vorzuziehen, weil damit auch die Zuordnung von ‘Besitz’verhältnissen erleichtert<br />

wird.<br />

Relationship-Typen: Zur vollständigen Relationship-Typ-Definition ist auch die Angabe der Kardinalitätsbeschränkungen<br />

notwendig. Die Spezifikation der Rollen ist notwendig für die relationale Untersetzung des Entwurfes.<br />

Verschiedene Schlüssel der Komponententypen können in die Definition einbezogen werden. Mitunter ist<br />

ein Sekundärschlüssel eher für einen Relationshiptypen geeignet.<br />

Unterscheidung von Spezialisierung und Generalisierung: Gerade im klassischen ER-Modell und insbesondere<br />

in binären ER-Modell wird die Generalisierung nicht von der Spezialisierung unterschieden. Sie sind auf die


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 136<br />

gleiche Art über IsA-Relationshiptypen modelliert. In späteren Entwurfstadien ist jedoch ein unterschiedliches<br />

Verhalten für generalisierte bzw. spezialisierte Typen darzustellen. Außerdem muß eine Generalisierungs- und<br />

Spezialisierungshierarchie von einer Art-von-Verknüpfung von Typen unterschieden werden.<br />

Attribute: Eine Attributdefinition erfordert auch die exakte und vollständige Darstellung der zugrunde gelegten Typen.<br />

Operationen: Anwendungsszenarien verwenden verschiedene Operationen in unterschiedlicher Häufigkeit und Priorität.<br />

Diese <strong>Information</strong> für die Optimierung der Funktionalität essentiell. Deshalb gehört auch zur Darstellung<br />

der Anwendung eine Darstellung der Verwendung der Operationen. Damit werden Schlüssel gewichtet, die<br />

dann wiederum durch geeignete Mechanismen der DBMS zur Effizienzsteigerung benutzt werden können.<br />

Die Optimierung kann durch eine Spezifikation der Größe der Extension erleichtert werden. Minimale, durchschnittliche<br />

und maximale Anzahl von Objekten, die zu einer Klasse gehören, erleichtern das konzeptuelle<br />

Tuning. Der Strukturentwurf geht mit dem Entwurf der Funktionen einher. So kann z.B. eine Relationship<br />

einen begrenzte Einfügeoperation haben, ohne daß ein extra Teiltyp dafür eingeführt werden muß.<br />

Die Anwendungsszenarien können auch eine unterschiedliche Häufigkeit und Priorität ergeben. Oft gibt es<br />

voraussehbare plötzliche Veränderungen im Systemverhalten wie z.B. den Semesterbeginn in der Universitätsanwendung.<br />

Entwurfsheuristiken werden benutzt, um eine Zuordnung von Konstrukten der Realität zu den verschiedenen Typen<br />

zu erleichtern.<br />

Unterscheidung von Entity- und Relationship-Typen: Modelle, in denen zwischen Entity- und Relationship-Typen<br />

nicht unterschieden werden kann, führen zu Konfusion und auch zu falschen Attributzuordnungen. Entity-<br />

Typen sollten auf die unabhängig vonein<strong>and</strong>er existierenden Objekte der Realität konzentriert werden. Relationship-<br />

Typen sollten insbesondere Anwendung finden bei der Darstellung von Rollen.<br />

Kerntypen: Vonein<strong>and</strong>er potentiell unabhängige Mengen von Dingen der Anwendung werden in Kerntypen dargestellt,<br />

die pragmatisch als Entity-Typ spezifiziert werden.<br />

Unterscheidung von Attribut-Typen und Entity-Typen: In Entity-Typen werden Objekte mit ihren Daten dargestellt.<br />

In Attribut-Typen werden Charakteristika von Objekten materialisiert. Die Attribute selbst können wieder<br />

strukturiert sein. Ein wichtiges Unterscheidungsmerkmal ist die unabhängige Existenz. Werte existieren nur<br />

im Zusammenhang mit Objekten. Entity-Typen können auch im Entwicklungsprozeß is zur konzeptionellen<br />

Schicht ohne Attribute existieren.<br />

Ob eine Eigenschaft vorliegt oder ein Ding der Realität entscheidet die Anwendung. So ist z.B. eine Adresse<br />

meist dargestellt als Attribut-Typ. H<strong>and</strong>elt es sich jedoch um eine Anwendung der Post, dann ist eine Adresse<br />

besser durch einen Entity-Typ.<br />

Materialisierung von Funktionen: Funktionen sollten nur dann materialisiert werden, wenn durch ihre Speicherung<br />

aus verschiedenen Gründen wirklich erforderlich ist, z.B. bei Änderung der definierenden Werte bei Beibehaltung<br />

des errechneten Wertes oder bei hoher Komplexität und wiederholter Benutzung.<br />

Synonym-, Homonym- und Alias-Typen: Oft werden gleiche Dinge der Ralität in unterschiedlichen Sichtweisen<br />

unterschiedlich dargestellt. Diese unterschiedliche Darstellung führt zu einer höheren Redundanz und bedingt<br />

die Einführung von entsprechenden Beziehungstypen bzw. Alias-Typen.<br />

Andererseits werden <strong>of</strong>t Eigenschaften mit der gleichen Bezeichnung dargestellt, obwohl sie unterschiedliche<br />

Bedeutung haben. Deshalb wird <strong>of</strong>t empfohlen, diese Unterscheidung explizit in der Bezeichnung mitzuführen<br />

wie z.B. IName, PName für einen Institutsnamen und einen Personennamen. Diese Unterscheidung ist jedoch<br />

auch mit dem zugehörigen Typ Institut bzw. Person gegeben, so daß eine Unterscheidung im Schema mit<br />

Institut.Name und Person.Name bereits gegeben ist.


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 137<br />

Namenskonventionen: Die einführung von Namenskonventionen kann aus dem Anwendungsbereich abgeleitet<br />

werden. Häufig und allgemein verständliche Bezeichnungen kann man einfach übernehmen.<br />

Eine allgemeine Technik für das Einführen von Namen z.B für Teil-Typen mit Verweis auf Supertypen, Generalisierungen<br />

mit Verweis auf Komposita, Relationship-Typen, Attribut-Typen, Wertebereichen, Entity-Typen<br />

z.B. nach Konzepten) und deren Unterscheidung (Homonyme) ist eine Aufgabe der Vorbereitung vor dem Entwicklungsprozeß.<br />

Dazu gehören auch St<strong>and</strong>ards für Abkürzungen, eine konsistente Benutzung von # und $,<br />

die Berücksichtigung von existierenden St<strong>and</strong>ards und die Benutzung eines Fachwörterbuches.<br />

Relationship-Typen und Entity-Typen: Teiltypen, die durch eine <strong>and</strong>ers geartete Funktionalität erforderlich sind<br />

(z.B. Vorlesungen in der Weiterbildung, im Fernstudium und im Präsenzstudium können verschiedenen Bedingungen<br />

unterliegen), sollten nicht eingeführt werden, wenn die Verwaltung auf <strong>and</strong>ere Art einfach erfolgen<br />

kann. Außerdem sollten Versionen nicht in Typenbildung integriert werden.<br />

Sichtenbeh<strong>and</strong>lung: Die späte Einführung von Sichten im konzeptionellen Entwurf nach der Definition des ER-<br />

Schemas führt sehr schnell zu einer Sichtenlawine für unterschiedliche Aspekte der Anwendung. Damit werden<br />

Sichten gleicher Art auf unterschiedliche Art unterstützt. Außerdem sollten Sichten stets Akteuren zugeordnet<br />

sein.<br />

Zulassen unvollständiger <strong>Information</strong>en: Nullwerte sollten eine wohlverst<strong>and</strong>ene Bedeutung besitzen. Die Benutzung<br />

von Default-Werte ist mitunter eine Alternative, die eine einfachere Verwaltung ermöglicht. Das Weglassen<br />

von Werten sollte nicht zur impliziten Typspezifikation benutzt werden.<br />

Schlüssel und Identifizierung: Schlüssel sollten zumindest bis zum konzeptionellen Entwurf eine eigenständige<br />

Bedeutung in der Anwendung besitzen. Werden sie erweitert, dann sollte die Bedeutung und die Schlüsseleigenschaft<br />

nicht verloren gehen. Namen sind gewöhnlich schlechte Identifikationen. Attribut-Typen, die Nullwerte<br />

zulassen sollten bewußt mit dieser Option eingesetzt werden.<br />

Dagegen läßt die DBMS-Technologie Nullwerte in Primärschlüsseln nicht zu. Deshalb sollten für Primärschlüssel<br />

alle Werte zu insert-Zeit bekannt sein.<br />

Die Update-Häufigkeit sollte bei der auswahl der Identifikation berücksichtigt werden<br />

Identifikatoren sollten legal sein und nicht über Sicherheitsmechanismen zu schützen sein (Beschäftigtennummer<br />

als Gegenbeispiel). Allen Akteuren, die sie benutzen müssen, sollten sie bekannt sein.<br />

Eine Pflege der Identifikation wird durch selbstkontrollierende Werte gut unterstützt.<br />

Die konzeptionelle Modellierung sollte alle <strong>Information</strong>en erfassen, die für eine effiziente Speicherung und ein effizientes<br />

Verarbeiten notwendig sind.<br />

Die Ausarbeitung einer ER-Entwurfsstrategie ist auch aus <strong>and</strong>eren Gründen notwendig:<br />

Unvollständigkeit der Integritätsbedingungen: Normalisierungszugänge erfordern die Angabe der vollständigen<br />

Menge von funktionalen und evt. der mehrwertigen Abhängigkeiten. Damit ist ein Entwerfer <strong>of</strong>tmals überfordert.<br />

Einige Abhängigkeiten sind zu <strong>of</strong>fensichtlich, um modelliert zu werden. Andere sind zu komplex oder zu<br />

tiefgründig.<br />

Darstellung von semantisch sinnvollen Einheiten: Jeder Entity-Typ und jeder Relationship-Typ sollte natürlich<br />

sein. Damit wird eine spätere Erweiterung und Überarbeitung gut unterstützt. Sind alle Typen “nat¨rlich”, dann<br />

ist auch die Formulierung von Anfragen wesentlich einfacher.<br />

Relationale Entwurfsstrategien dominieren die verwendeten Methodiken zur Entwicklung von <strong>Information</strong>ssystemen.<br />

Damit wird jedoch die Entwicklung für objekt-relationale und semi-strukturierte Datenbanksysteme<br />

erschwert. Durch relationale Strategien wird z.B. über Erzwingungsmechanismen für referentielle Integrität<br />

viel diskutiert, nicht aber für <strong>and</strong>ere Abhängigkeiten.


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 138<br />

Weiterhin ist die Verwendung von verschiedenen Typen einer Kontrolle zu unterziehen. Oft werden in der Literatur<br />

problematische Entwurfsentscheidungen propagiert wie die folgenden:<br />

Schwache Entity-Typen: Da der Identifizierungs- und Pflegeaufw<strong>and</strong> nicht zu vernachlässigen ist, sind bei Einführung<br />

von schwachen Entity-Typen besondere Vorsichtsmaßnahmen einzuleiten.<br />

Binarisierung von Relationshiptypen: Da sich nicht jeder n-ärer Relationship-Typ durch eine Menge von binären<br />

Typen darstellen läßt, ist eine Ausrichtung auf ein binäres ER-Modell mit einer hohen, meist nicht mehr überschaubaren<br />

Komplexität verbunden.<br />

Noch problematischer ist die Ausrichtung auf Modelle, die bestimmte Darstellungsrichtungen fordern oder<br />

binaäre Relationship-Typen weiter einschränken.<br />

Abstrakta: Die einzige sichere Binarisierung ist die Einführung abstrakter Entitytypen analog zur Netzwerkrepräsentationen<br />

. Abstrakta besitzen selbst keine zusätzliche Semantik. Ihre Semantik wird aus der Konstruktion hergeleitet<br />

und ist dadurch weder für den Entwerfer durchschaubar noch beherrschbar.<br />

Daraus können wir auch einige Fallen vermeiden wie z.B die folgenden:<br />

Verlassen auf Diagramme: Oft wird das Modellieren einer Anwendung mit dem Erstellen eines ER-Diagrammes<br />

verwechselt. Meist ist mit dem Diagramm nicht einmal die Interpretation des Diagramms klar.<br />

Klare Definitionen sind aus einer Reihe von Gründen notwendig:<br />

Grundlage für <strong>Information</strong>saustausch: Die Bedeutung der einzelnen entworfenen Typen und der benutzten<br />

Terminologie ist eine Grundlage für die Kommunikation mit dem Benutzer eines <strong>Information</strong>ssystemes<br />

und der Entwerfer unterein<strong>and</strong>er.<br />

Elimination der Ambiguität und Verminderung der Vagheit: Klare Definitionen eliminieren die Ambiguität<br />

und Mißverständnisse. Vague oder unscharfe Begriffe der Anwendung werden schärfer gefaßt. Da Worte<br />

der natürlichen Sprache <strong>of</strong>t mehrere Bedeutungen und eine intensionalen und extensionale Erklärung<br />

haben, wird durch Defintionen die Interpretation auf die intendierte Darstellung der Anwendung eingegrenzt.<br />

Bedeutung wird erklärt: Die Bedeutung der einzelnen Typen wird erklärt. Sie ist damit einfacher erfaßbar<br />

und zu einem späteren Zeitpunkt einfacher modifizierbar.<br />

Abstrakte Konzepte sind theoretisch basiert: Abstrakte Konzepte unterliegen nicht der Variationsbreite natürlichsprachlicher<br />

Konstrukte. Eine Einigung ist einfacher.<br />

Gewählter Darstellungsweg wird verständlich: Oft existieren verschiedene äquivalente Darstellungen der<br />

gleichen Anwendung. Mit einer sauberen Definition wird die ausgewählte Darstellung erklärt.<br />

St<strong>and</strong>ardisierung: Mitunter wird ein neue Anwendung beispielhaft neu entworfen. Der gewählte Weg kann<br />

als St<strong>and</strong>ardweg weiterentwickelt werden, wenn seine Definitionen klar und unmißverständlich sind. Damit<br />

werden weitere analoge Entwicklungen vorgeprägt.<br />

Lexikondefinition: Durch ein unmißverständliche Darstellung wird das benutzte Lexikon verfeinert.<br />

Analyse wird ermöglicht: Spätestens während der Analyse und der Optimierung des Verhaltens sind präzise<br />

Definitionen notwendig.<br />

Für das klare Definieren kann man verschiedene Techniken anwenden.<br />

Verweis auf Beispiele: Durch Beispiele kann zusätzliche Semantik, die mitunter schwer formal gefaßt werden<br />

kann, dargestellt werden.<br />

Animation: Insbesondere für die Darstellung von Funktionalität ist die Animation von Entscheidungen zur<br />

Strukturierung, Funktionalität und Semantik sinnvoll.


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 139<br />

Erklärendes Lexikon: Anwendungsspezifische Synonyme, das Aufzeigen des spezifischen Unterschieds zu<br />

<strong>and</strong>eren Darstellungen können die Entwurfsentscheidungen verdeutlichen.<br />

Zu wenig Strukturierung (Müllkorb-Entwurf): Es wird die gesamte Variantenbreite auf einen Typ reduziert, der um<br />

viele optionale Elemente, mit ‘flags’ auf die Teiltypen und einer komplexen Semantik dargestellt werden muß.<br />

Damit wird die Beh<strong>and</strong>lung der Operationen zu schwierig.<br />

Oftmals werden auch Megaattribute verwendet. die alles umfassen, die allerdings ausgefeilter Funktionen<br />

bedürfen, damit sie benutzt werden können. Das Attribut Adresse ohne Teilstruktur ist ein solches Beispiel.<br />

Analog wird <strong>of</strong>t der Name von Personen mit einem flachen Attribut dargestellt.<br />

Überstrukturierung: Das <strong>and</strong>ere Extrem ist der Entwurf im Elfenbeinturm, bei dem eine zu detaillierte Strukturierung<br />

entsteht, die dann auch durch eine stark ausgebaute aber unnütze Funktionalität unterstützt werden muß.<br />

Unwesentliche Teile der Anwendung: Ein Entwurf kann auch überladen werden mit Typen, die für die eigentliche<br />

Anwendung weniger Bedeutung haben und die <strong>Information</strong> darstellen, die in einem Kommentarfeld viel<br />

einfacher dargestellt ist.<br />

Ungeeignete Schlüssel: Es werden Schlüssel verwendet, die in der Anwendung einen vollständigen Zugriff auf<br />

alle Aspekte auch solchen Benutzern ermöglichen, die dafür keine Berechtigung besitzen. Beispiele solcher<br />

Schlüssel sind Immatrikulationsnummer, Personalnummer oder Versichertennummer.<br />

Zyklische Definitionen: Zyklische Definitionen erfordern einen Rekursionsmechanismus zu ihrer Beh<strong>and</strong>lung. Damit<br />

wird aber dem DBMS eine Funktionalität abgefordert, die durch ein einfacheres Schema nicht erforderlich<br />

wäre.<br />

Ein typisches Beispiel zyklischer Definitionen sind Attribute, die aus <strong>and</strong>eren Attributen abgeleitet werden, die<br />

dann in der Konsequenz wieder auf die gerade eingeführten Attribute verweisen.<br />

Definitionen über die Negation: Begriffe werden mitunter in der negierten Form eingeführt, ohne die Art der Negation<br />

genau darzustellen. Ein Begriff wie AndereVeranstaltung als Teiltyp von Lehrveranstaltung macht nur<br />

in diesem Kontext Sinn. Der Kontext muß bei der Negation angegeben werden. Ansonsten trifft der Typ AndereVeranstaltung<br />

auch auf Sitzungen oder auch Studiengänge zu.<br />

Namenskollisionen: Insbesondere bei Attributen sollte der Kontext klar gestellt werden. Ansonsten besteht die<br />

Möglichkeit einer Konfusion und damit einer falschen Verwendung z.B. in Anfragen.<br />

Zu viel Redundanz: Redundanz ist <strong>of</strong>t für einen schnellen Zugriff notwendig. So kann z.B. eine Wiederholung von<br />

Attribut-Typen in Teiltypen sinnvoll sein. In diesem Fall sollte allerdings die Redundanz kontrollierbar und<br />

damit berechenbar sein.


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 140<br />

1.11.7 An Application Example: Health <strong>Information</strong> <strong>Systems</strong><br />

The application example is a compilation <strong>of</strong> about two dozen <strong>of</strong> application schemata developed with ID 2 tool mainly<br />

in the 90ies in Arabian <strong>and</strong> Asian countries <strong>and</strong> the schemata discussed in [SIG97, MJ04, Sil01] 8 . It is based on<br />

approaches developed in [Tha00b, Hay95, Wis01, Noc04, Keren, Fownn, Jac06]. The schema has been used for an<br />

international response answering a call for proposals issued by the health care organisation in the Gulf area. The<br />

approach has been extended to [BST06]. It resulted in [Bie08].<br />

Like a typical application schema the health application schema is based on a multi-shell meta-model.<br />

General data shell: The general information is typically representing the conventions for data structures. Typical<br />

conventional data use in health care applications are<br />

• data on people based on a commonly used format for data on people,<br />

• data on equipment used for medical services, <strong>and</strong><br />

• data on general associations <strong>and</strong> relationships <strong>of</strong> people.<br />

Installation <strong>and</strong> preparation shell: The preparation shell reflects data that are rather stable, are updated only in<br />

special situations <strong>and</strong> that are necessary for keeping other production data. These data reflect the chosen solution<br />

for the problems to be reflected. They are <strong>of</strong>ten considered to be the knowledge data since they represent the<br />

knowledge or pr<strong>of</strong>essional skill level. Typical such data in health care applications reflect types representing<br />

• roles <strong>of</strong> people in health care applications such as being a patient or a health care pr<strong>of</strong>essional,<br />

• services <strong>of</strong>fered in a health care organisation,<br />

• agreements on which the health care process is based,<br />

• parties that act in a health care application such as insurance companies, financial institutions <strong>and</strong> pr<strong>of</strong>essional<br />

organisations, <strong>and</strong><br />

• types that specify the general categorisation <strong>of</strong> data.<br />

The last structures allow to define a component structure <strong>of</strong> types.<br />

Production data shell: Production data reflect the production process as such. The process has typically a process<br />

workflow. Therefore production data are typically reflected by horizontally layered sub-model suites with<br />

data that are used in steps that follow up but that are not modified in these steps. Therefore, the ER schema<br />

results in higher-order relationship types since this layering allows to keep track on the based-on layers.<br />

Production data also may reflect variants for a production.<br />

The workflow may either be recorded by log data or may result only in final data.<br />

After-production data shell: The production process is typically realised <strong>and</strong> their results are sold to other partners.<br />

Therefore, the after-production business may require additional data structures.<br />

Typical after-production data structures in health care reflect the<br />

• billing data <strong>and</strong> their tracking,<br />

• after care data,<br />

• education progress data <strong>of</strong> employees, <strong>and</strong><br />

• referral data with their inherent redundancy.<br />

8 We do not use the SAP R/3 schema for health management. It contains far more data structures that allow to capture <strong>and</strong> to track the health<br />

status <strong>of</strong> an employee. Many companies use this part <strong>of</strong> the schema for deriving measures against health problems <strong>of</strong> their employees.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 141<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 142<br />

Archive data shell: Archive data types allow to archive the health care processes for<br />

• track keeping <strong>of</strong> the main application processes <strong>and</strong> their outcome,<br />

• analysis <strong>of</strong> data <strong>and</strong> decision or management support, experience record,<br />

• exchange with other partners at the current <strong>and</strong> later stage, <strong>and</strong><br />

• education <strong>of</strong> people involved into one <strong>of</strong> the processes.<br />

The archive data shell needs a special bookkeeping facility for privacy <strong>and</strong> security reasons.<br />

These shells may be refined to recursive shells <strong>and</strong> are sometimes not strict but interleaved <strong>and</strong> tunnelled. A typical<br />

tunnelling process is the early collection <strong>of</strong> data upon their first appearance. For instance, health care processes typically<br />

start with collection <strong>of</strong> billing data. This eager data collection is not only raising privacy concerns but also<br />

results in badly maintained data [Bra00, Ols03].<br />

Health care information systems store data on<br />

• people <strong>and</strong> organisations that are concerned with patients, health care provider organisations, individual practitioners,<br />

insurance companies,<br />

• relationships between parties such as patient relationships <strong>and</strong> practitioners relationships,<br />

• types <strong>of</strong> services <strong>and</strong> goods available from the health care providers,<br />

• types <strong>of</strong> agreements that exist between the various parties,<br />

• records <strong>of</strong> health care services performed,<br />

• claims submitted <strong>and</strong> the status <strong>of</strong> the claim,<br />

• amounts directly owned from the patients as well as payments made by the patients,<br />

• other supporting information such as accounting information to create the financial statements <strong>and</strong> human<br />

resource information to track personnel.<br />

People <strong>and</strong> organisations in health care.<br />

Health care organisations need to track information about people <strong>and</strong> organisations with which they interact.<br />

Typical people involved into health care processes are patients, insured individuals, individual health care practitioners,<br />

administrators, provider staff support, <strong>and</strong> contact people such as those within an insurance company <strong>and</strong> in a<br />

pharmaceutical company.<br />

They also need to track information about organisations involved in health care such as health care providers,<br />

employers <strong>and</strong> associated groups, insurance companies, health care networks, <strong>and</strong> health care associations.<br />

There are some generic dimensions <strong>of</strong> people such as CONTACT, EMPLOYEE. A health care organisation may<br />

need to record various contacts within pharmaceutical companies, third party administration organisations, or insurance<br />

companies.<br />

Various st<strong>and</strong>ard organisation rules include EMPLOYER, SUPPLIER, HOUSEHOLD, REGULATORY AGENCY, OR-<br />

GANISATIONAL UNIT <strong>and</strong> INTERNAL ORGANISATION. ORGANISATION UNITS are subtyped into PARENT ORGA-<br />

NISATION, SUBSIDIARY, DIVISION, DEPARTMENT, <strong>and</strong> OTHER ORGANISATION. Depending on the purpose <strong>of</strong> the<br />

information system, we may represent them by role types, kind types, <strong>and</strong> special subtypes. The last opportunity<br />

is only chosen if there are essential <strong>and</strong> specific properties <strong>and</strong> thus attributes.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 143<br />

Typical health care industry organisations are HEALTH CARE PROVIDER ORGANISATION, GROUP, NETWORK,<br />

EMPLOYER, THIRD PARTY ADMINISTRATOR, INSURANCE PROVIDER, PAYOR, <strong>and</strong> HEALTH CARE ASSOCIA-<br />

TION. Providers may be subtyped into INSTITUTION, HEALTH CARE PRACTICE, or others. An INSTITUTIONAL<br />

PROVIDER represents organisations providing health facilities such as hospitals <strong>and</strong> psychiatric institutions. A HE-<br />

ALTH CARE PRACTICE represents one or more individual health care practitioner who form a coalition to provide<br />

health care to patients. A NETWORK is a collection <strong>of</strong> HEALTH CARE PROVIDER ORGANISATIONS that are linked<br />

together to provide services under certain guidelines established by the organisation that set up the network. A GROUP<br />

is a collection <strong>of</strong> individuals who are classified within an organisation to receive coverage through the organisation.<br />

Typical groups are EMPLOYER, THIRD PARTY ADMINISTRATOR, INSURANCE PROVIDER, PAYOR (organisation<br />

that pays for the claims), <strong>and</strong> HEALTH CARE ASSOCIATION.<br />

Insurance is a major constituent <strong>of</strong> health care. A person may be insured for health care. The INSURED PARTY<br />

role captures information about people or organisations that have insurance. The INSURED ORGANISATION is the<br />

organisation that is insured <strong>and</strong> covers individuals for health care. It may also play the role <strong>of</strong> an EMPLOYER. INSU-<br />

RED INDIVIDUALS are important to track for proper insurance reimbursement. The INSURED CONTRACT HOLDER<br />

is the main party that is covered for the insurance. The INSURED DEPENDENT is a person being covered for a policy<br />

in addition to the insured contract holder.<br />

An alternative model could also to be include the INSURED ORGANISATION as a subtype <strong>of</strong> the ORGANISATION<br />

ROLE <strong>and</strong> the INSURED PERSON as a subtype <strong>of</strong> PERSON ROLE. Because there is probably more common information<br />

about the insurance information surrounding these parties, the decision to sub-type based on the INSURANCE<br />

PARTY has been preferred.<br />

We observe in applications a number <strong>of</strong> st<strong>and</strong>ard relationships such as ORGANISATION CONTACT RELATION-<br />

SHIP, SUPPLIER RELATIONSHIP EMPLOYMENT, ORGANISATION ROLLUP. The FAMILY DEPENDENCY is a typical<br />

example <strong>of</strong> a HOUSEHOLD MEMBERSHIP. Health care uses also some specific relationship types such as PATIENT<br />

PRACTITIONER RELATIONSHIP, PATIENT PROVIDER RELATIONSHIP, PRACTICE AFFILIATION, <strong>and</strong> PROVIDER<br />

NETWORK. A doctor may act as a primary care provider (PCP). The PATIENT PROVIDER RELATIONSHIP identifies<br />

which patients are with which HEALTH CARE PROVIDER ORGANISATION. The PRACTICE AFFILIATION type identifies<br />

which INDIVIDUAL HEALTH CARE PRACTITIONERS are associated with which HEALTH CARE PROVIDER<br />

ORGANISATION.<br />

People <strong>and</strong> organisations may play a variety <strong>of</strong> roles. The PARTY ROLE type stores the kind <strong>of</strong> role somebody<br />

may play. The PARTY RELATIONSHIP type links roles to relationships that exist between parties. A party has in a<br />

certain party role a party relationship with another party <strong>and</strong> its role.<br />

Health care facilities such as HOSPITAL, OFFICE, ROOM, CLINIC are used in health care. Therefore, we use the<br />

generic type FACILITY that combines these facilities. Additional subtypes <strong>of</strong> FACILITY are MEDICAL BUILDING,<br />

AMBULATORY SURGERY CENTER, <strong>and</strong> FLOOR. We might also include specific facilities such as BED, which would<br />

be related to ROOM.<br />

PATIENT, INDIVIDUAL HEALTH CARE PRACTITIONER, HEALTH CARE PROVIDER ORGANISATION are typical<br />

examples <strong>of</strong> PARTY ROLE. The PARTY QUALIFICATION <strong>and</strong> PARTY SKILL are associative types that maintain<br />

the competencies <strong>and</strong> background expertise for PARTY. To avoid redundancy we introduce the SKILL TYPE <strong>and</strong><br />

QUALIFICATION TYPE that allow to collect all related information into one type.<br />

Health care is also based on LICENCE restrictions that are valid for certain states or a GEOGRAPHIC BOUNDARY<br />

for which the licence may apply.<br />

Specific patient information may be kept in types such as MEDICAL CONDITION <strong>and</strong> PHYSICAL CHARACTERI-<br />

STIC.<br />

Health care products.<br />

Health care organisations still consider themselves as being service-oriented. They are service providers, they<br />

perform procedures, <strong>of</strong>fer diagnoses, <strong>and</strong> help patients through their time <strong>and</strong> expertise. What about pharmaceuticals,<br />

supplies, <strong>and</strong> medical equipment they may <strong>of</strong>fer? Therefore they <strong>of</strong>fer at the same time goods <strong>and</strong> services. We thus<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 144<br />

may generalise services <strong>and</strong> goods to Products. To be more neutral we model them by by HEALTH CARE OFFERING.<br />

It contains however typical product characteristics such as supplier product, inventory item storage, price components,<br />

cost components, <strong>and</strong> price components.<br />

Health care orders.<br />

Health care shipments <strong>and</strong> delivery.<br />

Health care claims.<br />

Payment settlement.<br />

Health care referral.<br />

Reporting schemata.<br />

Reporting schemata are typically OLAP cubes. OLAP cubes can be represented by relationship types which components<br />

are OLAP dimensions <strong>and</strong> which attribute types are derived functions [LST99, LT09].<br />

Cubes used for health applications analyse how successful the health care enterprises have been treating patients.<br />

These cubes need to support the following:<br />

Financial analysis: Balance sheets <strong>and</strong> statement trends allow to determine trends on the income <strong>and</strong> the pr<strong>of</strong>itability<br />

over time, incident types, patient types, health care practitioner types etc.<br />

Human resource analysis: Employees can be classified regarding age, gender, marital status, position <strong>and</strong> other<br />

demographic information.<br />

Claims analysis: History <strong>of</strong> claims <strong>and</strong> settlements can be classified regarding service codes, types <strong>of</strong> diagnosis,<br />

episode types, geographic areas, dates, <strong>and</strong> payors. Trend analysis allows an insight what types <strong>of</strong> health care<br />

deliveries have been reimbursed <strong>and</strong> allows to predict what to expect regarding insurance receipts.<br />

Health care delivery outcome analysis: The outcome <strong>of</strong> health care deliveries can be analysed under various circumstances.<br />

Health care episode outcome analysis: The outcome <strong>of</strong> different kinds <strong>of</strong> health care episodes is <strong>of</strong> specific interest<br />

depending on various circumstances.<br />

The cube in Figure 45 accommodates the last need <strong>of</strong> analysis. It allows for instance to analyse the positive outcomes<br />

<strong>of</strong> health care treatment. Questions such as “How successful have health care treatments been in treating patients for<br />

particular health care episodes in particular regions <strong>and</strong> in dependence on treatment time?” can be answered. The fact<br />

type is represented as a relationship type <strong>and</strong> uses derived attribute types for the number <strong>of</strong> episodes, the number <strong>of</strong><br />

health care visits, the average legnth <strong>of</strong> the episode, <strong>and</strong> the total charges associated with the episodes. The purpose<br />

<strong>of</strong> this relationship type is to provide measurements in order to analyse the success <strong>and</strong> lack <strong>of</strong> success for various<br />

health care episodes depending on eight dimensions.<br />

The dimension OUTCOMES provides an explicit representation <strong>of</strong> the outcome <strong>of</strong> the episode. This dimension<br />

OUTCOMES is used as a separation dimension. The seven other dimensions EPISODES, DIAGNOSES, INCIDENTS,<br />

TIMES, PRACTITIONERS, PROVIDES, <strong>and</strong> PATIENTS allow the analysis <strong>of</strong> health care episodes to be viewed under<br />

different conditions. These dimensions are used in the cube for clustering <strong>and</strong> are supported by drill-down, roll-up,<br />

dice <strong>and</strong> slice operations. For instance, the PATIENT dimension supports a separation <strong>of</strong> outcomes depending on the<br />

main characteristics <strong>of</strong> a patient. Typically dimensions are hierarchically structured.<br />

There are several issues to consider when deploying <strong>and</strong> using OLAP cubes within an application. What is the<br />

data volume that needs to be available in the cube? Which part <strong>of</strong> the cube must be materialised <strong>and</strong> which part <strong>of</strong><br />

the cube may remain to be virtualised? Transformation processing time to create <strong>and</strong> to update the cube may go far<br />

beyond what can be tolerated. The data refresh frequency <strong>and</strong> the data transformation processing window size must<br />

be sufficient to meet the business needs. Therefore we need to determine the needs, the query issuing frequency <strong>and</strong><br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 145<br />

(0,n)<br />

(0,n)<br />

(0,1)<br />

(0,n)<br />

EPISODES<br />

ID, Description, ...<br />

■<br />

PRACTITIONERS<br />

ID, Description<br />

Name(Last, ... First),<br />

✻<br />

(0,1)<br />

✒<br />

PROVIDERS<br />

ID, Description,<br />

Name, ...<br />

(0,1)<br />

(0,1)<br />

(0,1)<br />

(0,n)<br />

(0,n)<br />

DIAGNOSES<br />

ID, Description, ...<br />

INCIDENTS<br />

ID, Description, ...<br />

✛<br />

✠<br />

# Of<br />

Episodes HEALTH<br />

CAREEPISODE<br />

Total FACT<br />

Charges<br />

(0,1)<br />

Avg<br />

Length<br />

Of<br />

Episode<br />

❄<br />

TIMES<br />

ID, Description,<br />

Day, Weak, Month,<br />

Quarter, Year<br />

(0,n)<br />

# Of<br />

Visits<br />

# Of<br />

Deliveries<br />

✲<br />

❘<br />

PATIENTS<br />

ID, Description, ...<br />

OUTCOMES<br />

ID, Description, ...<br />

(0,n)<br />

(0,n)<br />

(0,1)<br />

(0,1)<br />

Abbildung 45: The Star Schema for Health Care Episode Outcome <strong>Analysis</strong><br />

the response time behavior in such applications. Depending on the infrastructure, the cube may be build on one server<br />

or may be distributed within a network <strong>of</strong> servers. Therefore we need to consider the computation time within the<br />

distribution. Object-level security needs may increase transformation processing time <strong>and</strong> thus may make it harder to<br />

meet processing window schedules.<br />

Data to be represented in an OLAP schema may have various meta-properties. These meta-properties are <strong>of</strong>ten<br />

dumped into the schema. This approach leads to schemata that are combinatorially exploding 9 . It seems to be more<br />

appropriate to explicitly separate the dimensions within a schema. Such approach is useful for surveying, zooming,<br />

l<strong>and</strong>marking, <strong>and</strong> querying the schema <strong>and</strong> for generating abstractions on the schema.<br />

OLAP cubes typically have a number <strong>of</strong> dimensions. We observe that these dimensions can be separated into:<br />

(A) Specialization dimensions that reflect the specific kinds <strong>of</strong> things represented with in a schema.<br />

(B) Associations to related types bind the objects at the different levels <strong>of</strong> detail <strong>and</strong> are typically represented by<br />

snowflake associations or integrity constraints. Associations among stars <strong>and</strong> snowflake types may be strict <strong>and</strong><br />

thus glue types tightly together or may be volatile, i.e. may be released whenever it is necessary.<br />

(C) Usage <strong>of</strong> data in business processes results in different levels <strong>of</strong> granularity <strong>and</strong> precision <strong>of</strong> data.<br />

(D) Data history <strong>and</strong> source for storing the acquisition <strong>of</strong> data results in a different data quality.<br />

The mind map in Figure 46 represent the main dimensions for star types.<br />

Objects <strong>and</strong> things they represent do not exist as st<strong>and</strong>-alone concepts. They are related to other objects <strong>and</strong> they<br />

have a context in applications. We observe at least four main categories <strong>of</strong> dimensions in schemata that form the<br />

context <strong>of</strong> the star <strong>and</strong> snowflake types:<br />

Schema <strong>and</strong> units associated: Associations are modelled on the basis <strong>of</strong> bridges or hinges. They related units in<br />

the schema with other units. Units are composed <strong>of</strong> star <strong>and</strong> snowflake sub-schemata. Units, thus, form a forest<br />

9 The schemata used in [Sch92] are <strong>of</strong>ten <strong>of</strong> this kind. The separation used there does not lead to a better surveyability. The meta-aspects<br />

blow up the schema to large schemata which seem to have a number <strong>of</strong> internal similarities among the types.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 146<br />

Representational<br />

Restriction<br />

Data<br />

Existence Partiality Exception<br />

Subtype<br />

Contextual<br />

Source<br />

User<br />

Variation<br />

Hierarchy<br />

Role<br />

Accessibility<br />

Process<br />

Category<br />

Intrinsic<br />

Quality<br />

Qualitative<br />

Specialization<br />

TA Time<br />

<strong>Development</strong><br />

User Time<br />

Temporality<br />

Dimensions<br />

Version<br />

Representation<br />

Validity Time<br />

Measure<br />

History<br />

Usage<br />

Association<br />

Related Types<br />

Dialogue step<br />

Meta-Association<br />

Actor<br />

Time<br />

Occasion<br />

Scene<br />

Actual<br />

Orthogonal<br />

Abbildung 46: Mind Map <strong>of</strong> Dimensions Used For Multi-Dimensional Structuring <strong>of</strong> Star Types<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 147<br />

<strong>of</strong> stars. The association among units forms a skeleton <strong>of</strong> the application. The skeleton abstracts from the<br />

internal structuring <strong>of</strong> the units <strong>and</strong> only relates units to other units. Medical applications such as discussed in<br />

[Tha00a] consists <strong>of</strong> three main units:<br />

• The unit Person combined the star type Personnel (<strong>of</strong> the hospital) with its subtypes Nurses, Physician,<br />

Surgeon, Guard, Research Assistent etc. with the star type Patient (with corresponding specialization<br />

types) to the cluster type Person.<br />

• The unit Organization contains the types Pharmacy, Department, Room, Special Room, Medical Equipment,<br />

Supplier Equipment, Labor etc. which are star types. The unit thus combines the star types to a more general<br />

ontological unit.<br />

• The unit Knowledge combines the snowflake type Disease (with Symptom, Disease Association etc.)<br />

with the snowflake type Drug that consists <strong>of</strong> a mixture <strong>of</strong> Factor. The last are related to each other by<br />

potential associations to diseases by the types May Cure, May Cause, May Aggravate etc..<br />

The units have a number <strong>of</strong> hinges between them:<br />

• The work <strong>of</strong> physicians is recorded by types such as Examination Patient, Physician in Charge, Surgeon<br />

<strong>of</strong>, Observe Occurrence <strong>of</strong> Symptoms, <strong>and</strong> Diagnosis.<br />

• The treatment <strong>of</strong> patients is recorded by types such as Description <strong>of</strong> Medicine, Cure Record, Hospitalization,<br />

<strong>and</strong> Surgeon <strong>of</strong>.<br />

• Further, patients may be associated with the knowledge unit. Typical such associations are Sensitivity<br />

to Drug <strong>and</strong> Experimental Treatment.<br />

Therefore, the skeleton consists <strong>of</strong> the sub-schemata Person, Organization, Knowledge <strong>and</strong> connects these units<br />

by a number <strong>of</strong> hinge or bridge types.<br />

Source <strong>and</strong> acquisition: Source <strong>and</strong> acquisition is an orthogonal dimension. This dimension is applicable to all<br />

types <strong>of</strong> the schema.<br />

Time: The time context appears in a number <strong>of</strong> variants. We use storage time, validity time, display time, userdefined<br />

time, transaction time etc. The time context is applicable in a number <strong>of</strong> combinations. Sometimes it<br />

is necessary to use all these characterizations. It is <strong>of</strong>ten observed, however, that only one variant <strong>of</strong> the time<br />

context is necessary.<br />

Version: Versions show the life cycle <strong>of</strong> the objects under consideration. Versions can <strong>of</strong>ten be systematically structured<br />

by database system phases:<br />

• The initialization phase allows to develop objects storing initial information. Integrity constraints are<br />

applicable in a very limited form.<br />

• The production phase is the central phase considered in all database books. It consists <strong>of</strong> the runtime<br />

querying, runtime modification, runtime transaction management etc.<br />

• The maintenance phase is <strong>of</strong>ten not considered in classical database applications. It is, however, used in<br />

productive database applications for clarification <strong>of</strong> s<strong>of</strong>t constraints, for maintenance <strong>of</strong> constraints that<br />

have been cut out from runtime maintenance <strong>and</strong> for changing the structuring <strong>and</strong> functionality <strong>of</strong> the<br />

entire database system. Maintenance phases are used in data warehouse applications for recharging the<br />

data warehouse with actual information.<br />

• The archiving phase is used for archiving the content <strong>of</strong> the database in a form that data relevant for<br />

historical information can easily be retrieved. Data modification is not allowed. The only modification<br />

operation is archive load by new changes.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 148<br />

Security: Security concepts describe encipherment <strong>and</strong> encryption (keys, authentication, signatures, notarisation,<br />

routing control, access control, data integrity, <strong>and</strong> traffic padding) for data exchange.<br />

.<br />

Literatur<br />

[ALSS03]<br />

[Bie08]<br />

[Bis95]<br />

S. Abeck, P.C. Lockemann, J. Schiller, <strong>and</strong> J. Seitz. Verteilte <strong>Information</strong>ssysteme - Integration von<br />

Datenübertragungstechnik und Datenbanktechnik. dpunkt Verlag, Heidelberg, 2003.<br />

A. Bienemann. A generative approach to functionality <strong>of</strong> interactive information systems. PhD thesis,<br />

CAU Kiel, Dept. <strong>of</strong> Computer Science, 2008.<br />

J. Biskup. Foundations <strong>of</strong> information systems. Vieweg, Wiesbaden, 1995. In German.<br />

[Bör03] E. Börger. The ASM refinement method. Formal Aspects <strong>of</strong> Computing, 15:237–257, 2003.<br />

[Bra00] M. H. Brackett. Data resource quality. Addison-Wesley, Boston, 2000.<br />

[BST06]<br />

[Cho82]<br />

[CMM02]<br />

[DGH03]<br />

[Fownn]<br />

[FvH89]<br />

[GCB + 97]<br />

A. Bienemann, K.-D. Schewe, <strong>and</strong> B. Thalheim. Towards a theory <strong>of</strong> genericity based on government<br />

<strong>and</strong> binding. In Proc. ER’06, LNCS 4215, pages 311–324. Springer, 2006.<br />

N. Chomsky. Some concepts <strong>and</strong> consequences <strong>of</strong> the theory <strong>of</strong> government <strong>and</strong> binding. MIT Press,<br />

1982.<br />

T. Calvo, G. Mayor, <strong>and</strong> R. Mesiar. Aggregation operators - New trends <strong>and</strong> applications. Physica,<br />

Heidelberg, 2002.<br />

S. Dustdar, H. Gall, <strong>and</strong> M. Hauswirth. S<strong>of</strong>tware-Architekturen für verteilte Systeme. Springer, Berlin,<br />

2003.<br />

M. Fowler. Analysemuster. Addison-Wesley, 1999, Bonn.<br />

C. C. Fleming <strong>and</strong> B. von Halle. H<strong>and</strong>book <strong>of</strong> relational database design. Addison-Wesley, Reading,<br />

MA, 1989.<br />

J. Gray, S. Chaudhuri, A. Bosworth, A. Layman, D. Reichart, <strong>and</strong> M. Venkatrao. Data cube: A relational<br />

aggregation operator generalizing group-by, cross-tab, <strong>and</strong> sub-totals. Data Mining <strong>and</strong> Knowledge<br />

Discovery, 1(1):29–53, 1997.<br />

[GMUW00] H. Garcia-Molina, J. D. Ullman, <strong>and</strong> J. Widom. Database systems implementation. Prentice-Hall, 2000.<br />

[Gur00] Y. Gurevich. Sequnetial abstract-state machines capture sequential algorithms. ACM TOCL, 1(1):77–<br />

111, 2000.<br />

[Hay95] D. C. Hay. Data model pattern: Conventions <strong>of</strong> thought. Dorset House, New York, 1995.<br />

[HP97] L. J. Heinrich <strong>and</strong> G. Pomberger. Theorie und Praxis der Wirtschaftinformatik 9, 1997.<br />

[IZG97] W. H. Inmon, J. A. Zachman, <strong>and</strong> J. G. Geiger. Data stores, data warehousing <strong>and</strong> the Zachman<br />

framework. McGraw Hill, New York, 1997.<br />

[Jac06] M. Jackson. Problem frames. Pearson, Harlow, 2006.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 149<br />

[Jac07]<br />

[Kas03]<br />

M. Jackson. Problem Frames: Analysing <strong>and</strong> structuring s<strong>of</strong>tware development problems. Pearson<br />

Education, Harlowe, 2007.<br />

R. Kaschek. Konzeptionelle Modellierung. PhD thesis, University Klagenfurt, 2003. Habilitationsschrift.<br />

[KE96] A. Kemper <strong>and</strong> A. Eikler. Datenbanksysteme. Oldenbourg-Verlag, München, 1996.<br />

[Keren]<br />

[KM03]<br />

[Lib01]<br />

[LM78]<br />

J. Kerievsky. Refactoring to patterns. Addison-Weslay, 2005, München.<br />

M. Klettke <strong>and</strong> H. Meyer. XML & Datenbanken - Konzepte, Sprachen und Systeme. dpunkt.verlag,<br />

Heidelberg, 2003.<br />

L. Libkin. Expressive power <strong>of</strong> SQL. In J. Van den Bussche <strong>and</strong> V. Vianu, editors, Database Theory<br />

- ICDT 2001, 8th Intern. Conf., London, UK, Jan 4-6, 2001, Proc., LNCS 1973, pages 1–21. Springer,<br />

Berlin, 2001.<br />

P. C. Lockemann <strong>and</strong> H. C. Mayr. Computer-based information systems. Springer, Berlin, 1978. In<br />

German.<br />

[LS97] H.-J. Lenz <strong>and</strong> A. Shoshani. Summarizability in OLAP <strong>and</strong> statistical databases. In SSDBM IX, 1997,<br />

Washington, 1997.<br />

[LST99] J. Lewerenz, K.-D. Schewe, <strong>and</strong> B. Thalheim. Modeling data warehouses <strong>and</strong> OLAP applications<br />

by means <strong>of</strong> dialogue objects. LNCS 1728, pages 354–368, Paris, France, Nov. 15-18, 1999, 1999.<br />

Springer, Berlin.<br />

[LT01]<br />

[LT09]<br />

H.-J. Lenz <strong>and</strong> B. Thalheim. OLAP Databases <strong>and</strong> Aggregation Functions. In Proc. 13th Intern. Conf.<br />

on Scientific <strong>and</strong> Statistical Database Management, Jul 18-20, 2001, George Mason University, Fairfax,<br />

Virginia, USA, pages 91–100. IEEE Computer Society, 2001.<br />

H.-J. Lenz <strong>and</strong> B. Thalheim. A formal framework <strong>of</strong> aggregation for the OLAP-OLTP model. Journal<br />

<strong>of</strong> Universal Computer Science, 15(1):273 – 303, 2009.<br />

[MJ04] D. Marco <strong>and</strong> M. Jennings. Universal meta data models. Wiley Publ. Inc., 2004.<br />

[Noc04]<br />

C. Nock. Data Access Patterns - Database Interactions in Object Oriented Applications. Addison-<br />

Wesley, Boston, 2004.<br />

[Ols03] J.E. Olson. Data quality - The accuracy dimension. Morgan Kaufman, 2003.<br />

[Sch92]<br />

[Sch05]<br />

A.-W. Scheer. Architektur integrierter <strong>Information</strong>ssysteme - Grundlagen der Unternehmensmodellierung.<br />

Springer, Berlin, 1992.<br />

G. Schellhorn. ASM refinement <strong>and</strong> generalizations <strong>of</strong> forward simulation in data refinement: A comparison.<br />

Theor. Comput. Sci., 336(2-3):403–435, 2005.<br />

[Sie04] J. Siedersleben. Moderne S<strong>of</strong>twarearchitektur. dpunkt-Verlag, Heidelberg, 2004.<br />

[SIG97]<br />

L. Silverston, W. H. Inmon, <strong>and</strong> K. Graziano. The data model resource book. John Wiley & Sons, New<br />

York, 1997.<br />

[Sil01] L. Silverston. The data model resource book. Revised edition, volume 2. Wiley, 2001.<br />

[ST07]<br />

K.-D. Schewe <strong>and</strong> B. Thalheim. <strong>Development</strong> <strong>of</strong> collaboration frameworks for web information systems.<br />

In IJCAI’07 (20th Int. Joint Conf on Artificial Intelligence, Section EMC’07 (Evolutionary<br />

models <strong>of</strong> collaboration), pages 27–32, Hyderabad, 2007.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 1. Einführung ab SS 2012 150<br />

[Tha91] B. Thalheim. Dependencies in relational databases. Teubner, Leipzig, 1991.<br />

[Tha00a]<br />

[Tha00b]<br />

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

2000.<br />

B. Thalheim. The person, organization, product, production, ordering, delivery, invoice, accounting,<br />

budgeting <strong>and</strong> human resources pattern in database design. Technical Report Preprint I-07-2000, Br<strong>and</strong>enburg<br />

University <strong>of</strong> Technology at Cottbus, Institute <strong>of</strong> Computer Science, 2000.<br />

[Tha03] B. Thalheim. Visual sql - an er based introduction into database programming. Technical Report 08/03,<br />

Br<strong>and</strong>enburg University <strong>of</strong> Technology at Cottbus, Insitute <strong>of</strong> Computer Science, May 2003 2003.<br />

[VS00]<br />

[Wal97]<br />

P. Vassiladis <strong>and</strong> S. Skiadopoulos. Modeling <strong>and</strong> optimization issues for multidimensional databases.<br />

In Proc. CAiSE’2000, LNCS 1789, pages 482–497. Springer, Berlin, 2000.<br />

C. Wallace. The semantics <strong>of</strong> the Java programming language. Technical Report CSE-TR-355-97,<br />

University <strong>of</strong> Michigan, EECS Dept., December 1997.<br />

[Wis01] P. Wisse. Metapattern - Context <strong>and</strong> time in information models. Addison-Wesley, Boston, 2001.<br />

IS ADD


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

Unterschiedliche HERM-Annahmen je nach Abstraktionsschicht<br />

• mit Identifikation<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 156<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 />

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

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 157<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 />

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

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

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 158<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 />

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

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 159<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 />

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

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 160<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 />

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

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 161<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 />

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

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 162<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 />

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

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 163<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 />

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

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

2.2.2 HERM-Typen<br />

werden induktiv aufein<strong>and</strong>er basierend definiert.<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 />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 164<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 />

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

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

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

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

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

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

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 165<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 />

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

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

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

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 166<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 />

constraints [Tha00].<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 />

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

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 167<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 />

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

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

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

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 168<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 />

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

Mod IS IS ADD Web IS


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

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

E = E 1 ∪ ... ∪ E n<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 />

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

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

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 170<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 />

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

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

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

Mod IS IS ADD Web IS


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

Business<br />

user level<br />

Conceptual<br />

level<br />

Implementation<br />

level<br />

Partial identificatiocy<br />

Relative independence Existence dependency Redundancy dependen-<br />

identification structure no null elementary facts<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 />

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

Mod IS IS ADD Web IS


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

2.3.1 Revisiting Database Dependency Theory<br />

The Power <strong>of</strong> Simplicity.<br />

Functional <strong>and</strong> multivalued dependencies are a very powerful <strong>and</strong> simple class <strong>of</strong> integrity constraints. It is wellknown<br />

that their reasoning <strong>and</strong> deduction can be based on propositional formulas [Tha91a]. At the same time, a<br />

simple <strong>and</strong> powerful axiomatisation can be given for simple dependencies <strong>and</strong> their negations. As an example we<br />

give an axiomatisation for functional <strong>and</strong> negated functional dependencies:<br />

Axioms<br />

XY → Y<br />

Rules<br />

(1)<br />

(4) X −→/ Y<br />

X −→/ Y Z<br />

X −→ Y<br />

XV W −→ Y V<br />

(5)<br />

XZ −→/ Y Z<br />

XZ −→/ Y<br />

(2)<br />

X −→ Y , Y −→ Z<br />

X −→ Z<br />

(3)<br />

(6)<br />

X −→ Z , X −→/ Y Z<br />

X −→/ Y<br />

X −→ Y , X −→/ Z<br />

Y −→/ Z<br />

(7)<br />

Y −→ Z , X −→/ Z<br />

X −→/ Y<br />

Funktionale Abhängigkeiten umfassen zu viele Aspekte auf einmal.<br />

Explicit declaration <strong>of</strong> partial identification: Functional dependencies are typically explicitly declaring a functional<br />

association among components <strong>of</strong> types. The left h<strong>and</strong> attribute uniquely identify right side attributes, i.e.<br />

X Ident −→ Y .<br />

Identification can either be based on surrogate or on natural attributes.<br />

Tight functional coupling: Functional dependencies may also be numerical constraints. We denote such constraints<br />

by i.e. X Num −→ Y . Another denotation is based on cardinality constraints.<br />

Semantic constraint specific for the given application: Constraints may be stronger than observed in usual life<br />

since the application has a limited scope <strong>and</strong> allows to strengthen the constraint. In this case, constraints restrict<br />

the application only to those cases in which the left side has only one associated right side value despite that<br />

this restriction may not be valid for any application. We denote this case by X −→ Sem Y<br />

Semantical unit with functional coupling: Semantical units are those reducts <strong>of</strong> a type that are essential in the<br />

given application. Their components cannot be separated without loosing their meaning. Semantical units may<br />

have their inner structure. This structure tightly couples dependent object parts to those that are determining<br />

them. We denote this coupling by X Unit −→ Y .<br />

Structural association among units: Semantical units may allow a separation <strong>of</strong> concern for certain elements.<br />

Their separation supports a more flexible treatment while requiring that the dependent part cannot exist without<br />

the determining part. If this dependence is functional we may represent such by the constraint X Struct −→ Y .<br />

Funktionale Abhängigkeiten als Funktion 1 kann direkt ausgelagert werden bereits vor Normalisierung<br />

ISBN kodiert bereits den Verlag<br />

ISBN/ISSN muß aber nicht für Buch existieren (alte Bücher), kann ggf. auch mehrere Ausgaben mit umfassen<br />

oder auch nur genau die Ausgabe mit bezeichnen<br />

ist dann tacit knowledge, auf das die <strong>and</strong>eren Daten aufbauen, das ggf. nicht einen update erfährt<br />

Example 1 Let us consider an abstract example with the functional dependencies<br />

{A} −→ {B, C} <strong>and</strong> {B} −→ {D}.<br />

The functional dependency {A} −→ {C} declares an explicit <strong>and</strong> direct dependency among the attributes.<br />

The functional dependency {A} −→ {B} is an inter-type constraint <strong>and</strong> leaves the scope <strong>of</strong> type T A . These two<br />

dependencies are completely different <strong>and</strong> need different support mechanisms.<br />

IS ADD


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

T A<br />

✛<br />

(1,1)<br />

T A .to.T B<br />

✲<br />

T B<br />

A<br />

C<br />

B<br />

D<br />

The first five cases may be observed for the following instantiations <strong>of</strong> this example:<br />

instantiation<br />

Explicit declaration T B = StudyProgram , B = ProgramCode, D = ProgramName<br />

Tight coupling T A = Student, T A .to.T B = MajorProgram, T B = StudyProgram<br />

Semantic constraint T B = StudyProgram , B = ProgramCode, D = ResponsiblePr<strong>of</strong>essor<br />

Semantical unit T B = StudyProgram , B = ProgramCode, D = ProgramDegree<br />

Structural association T A = Student, T B = RegisteredStudent, A = PersonID, B = StudentNr<br />

Let us consider, for instance, that the type T B represents a study program, <strong>and</strong> the attributes B represent a program<br />

code, D the program name. The functional dependency {B} −→ {D} is an explicit key dependency. If the attribute<br />

D represents the pr<strong>of</strong>essors that are responsible program then we might assume or not assume {B} −→ {D}. This<br />

depends on the given application. Therefore the dependency is a semantical constraint. From the other side, if the<br />

attribute D represents the program degree then this degree cannot be separated from the values for the program<br />

code. In this case the attributes form a semantical unit. Furthermore, in most universities a student is registered for<br />

one <strong>and</strong> only one major degree. The student must have a major program. In this case, the two types Student <strong>and</strong><br />

StudyProgram are thus tightly coupled. Finally, we can separate the student personal data from the student university<br />

data. The person identification number is structurally associated to the student number.<br />

This separation results also in a different meaning <strong>of</strong> derivation rules. For instance, the augmentation rule has a<br />

different meaning depending on the kind <strong>of</strong> functional dependency:<br />

Trivilisation<br />

<strong>of</strong> identification<br />

R : X Ident −→ Y ⊔ R Y ′<br />

R : X ⊔ R X ′<br />

Ident<br />

−→ Y<br />

Adaptation <strong>of</strong><br />

semantics scope<br />

R : X Sem −→ Y ⊔ R Y ′<br />

R : X ⊔ R X ′<br />

Sem<br />

−→ Y<br />

We may also use the Armstrong axiomatisation for derivation <strong>of</strong> functional dependencies <strong>of</strong> a given kind. The following<br />

two rules are examples <strong>of</strong> refined rules:<br />

R : X Ident −→ Y, R : Y Sem −→ Z<br />

R : X Ident −→ Z<br />

R : X Sem −→ Y, R : Y Ident −→ Z<br />

R : X Sem −→ Z<br />

Kinds <strong>of</strong> Key Dependencies..<br />

A key dependency or simply key X is a functional dependency R : X −→ R . A key is called minimal if none<br />

<strong>of</strong> its proper substructures forms a key. The set <strong>of</strong> all minimal keys <strong>of</strong> R is denoted by Keys(R). We notice that this<br />

set may be very large. For instance, an entity type E with n atomic attributes may have ( )<br />

n<br />

⌊ n minimal keys which is<br />

2 ⌋<br />

roughly 2n<br />

c √ n .<br />

The key concept reflects a variety <strong>of</strong> descriptive meanings depending <strong>of</strong> the level <strong>of</strong> consideration. Let us distinguish<br />

between external, conceptual <strong>and</strong> internal levels. The meaning <strong>of</strong> the key concept can be based on the<br />

uniqueness property (each object is unique with this key in the database), the identification property (each object can<br />

be identified by its key values), the existence property (for each object there exist key values), the integrity property<br />

(the database satisfies a key constraint), <strong>and</strong> the accessibility property (the properties <strong>of</strong> an object can be accessed<br />

through the key values <strong>of</strong> the object). These meaning are not equally important at all levels:<br />

• At the language definition level, the uniqueness concept is used to express the key property. The identifier,<br />

existence, integrity <strong>and</strong> accessibility functionalities are not considered.<br />

IS ADD


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

• The uniqueness concept is inherited by the external level <strong>and</strong> expressed mainly via the identification property.<br />

The existence property plays a secondary role. The integrity <strong>and</strong> accessibility concepts are not mainly under<br />

consideration.<br />

• At the conceptual level, the uniqueness concept <strong>of</strong> the language definition level is inherited by the identification<br />

<strong>and</strong> the integrity property. In order to express the identification concept, the surrogate concept is introduced.<br />

The key dependency is the integrity constraint usually used to express the key property.<br />

• At the internal level, the uniqueness concept is completely covered by the identification concept. From the<br />

external level the existence <strong>and</strong> uniqueness concepts are inherited <strong>and</strong> used in implementation restrictions<br />

like the requirement <strong>of</strong> invariant values in keys. The internal levels also inherit the integrity concept <strong>of</strong> the<br />

conceptual level <strong>and</strong> uses this concept for the accessibility property <strong>of</strong> the key.<br />

These descriptive meanings <strong>of</strong> the key concept are pictured in Figure 10.<br />

language definition level<br />

uniqueness<br />

external level<br />

✠<br />

identification<br />

existence<br />

conceptual 7<br />

level internal level<br />

identification<br />

(surrogate)<br />

❯<br />

integrity constraint<br />

(key dependency)<br />

❥ identification<br />

3 accessibility<br />

✲ invariance<br />

Abbildung 10: Descriptive meanings <strong>of</strong> the key concept depending on the levels<br />

Beside the descriptive meanings we may also use implementation concepts such as pointers <strong>and</strong> pragmatic meanings<br />

such as naming.<br />

Typen mit genau einem minimalen Schlüssel.<br />

Menge der Extremalattribute für gegebene Menge Σ von funktionalen Abhängigkeiten und Komponenten R eines<br />

Typs T :<br />

extr(R, Σ) := {B ∈ R | Σ ̸|= R \ {B} −→ {B}}<br />

Corollary 1 Folgende Aussagen sind äquivalent:<br />

• T besitzt genau einen Schlüssel.<br />

• extr(R, Σ) ist ein Schlüssel von T .<br />

• Σ |= extr(R, Σ) −→ R.<br />

The Power <strong>of</strong> Graphical Reasoning.<br />

FD Graphs..<br />

Functional dependencies are typically treated in a linear fashion. Graphical representation can however be used for<br />

reasoning on constraints as well. It is a folklore approach that deserves more attention.<br />

Example 2 Given the set U R = {A, B, C, D, E} <strong>of</strong> attributes <strong>and</strong> the set σ R = {A −→ E, B −→ E, CE −→ D}<br />

<strong>of</strong> functional dependencies. This set can be represented by the following graph: This graph is easier to survey, simpler<br />

for reasoning <strong>and</strong> contains the full information on σ R .<br />

Let us consider for instance, the dependency {A, C} −→ E. The derivation can directly be derived from the<br />

following schema due to the validity <strong>of</strong> the left-side extension rule<br />

IS ADD<br />

X−→Y,Y ∪Z−→V<br />

X∪Z−→V<br />

.


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

A<br />

B<br />

✲<br />

✯<br />

E<br />

C<br />

CE<br />

✲<br />

D<br />

A<br />

AC<br />

✲<br />

D<br />

C<br />

FD graphs can be axiomatised. This axiomatisation mainly follows the rule system <strong>of</strong> the Armstrong axiomatisation<br />

except that right h<strong>and</strong> side attributes are limited to singleton attribute sets. This axiomatisation [DMT04]<br />

provides the first axiomatisation for FD graphs (Y denotes a set; A, B, C denote attributes):<br />

(S) Y → B<br />

Y C → B<br />

Y → A, Y → B<br />

(Q)<br />

Y A → B<br />

(T ) Y → A, Y A → B<br />

Y → B<br />

Y A → B, Y → B<br />

(R)<br />

Y → A<br />

(P ) Y C → B<br />

Y → B<br />

()¬(Y → B, Y → B)<br />

() is a formalization <strong>of</strong> ’→’ being the negation <strong>of</strong> ’→’, i.e., ¬() can be deduced starting with contradictory sets <strong>of</strong><br />

constraints.<br />

Theorem 1 [DMT07] The ST implication system over graphs <strong>of</strong> functional dependencies with rules (S) <strong>and</strong> (T) <strong>and</strong><br />

no axioms is sound <strong>and</strong> complete for functional dependencies.<br />

The PQRST implication system over graphs <strong>of</strong> functional <strong>and</strong> negated functional dependencies with all the presented<br />

rules <strong>and</strong> the symbolic axiom (), which is used for indicating contradiction, is sound <strong>and</strong> complete for functional<br />

dependencies <strong>and</strong> their negations if they are not conflicting.<br />

At the same time reasoning on graphs is more appropriate also for normalisation. Yang [Yan86] has discussed a<br />

reduction algorithm that allows a simple generation <strong>of</strong> canonical covers <strong>and</strong> <strong>of</strong> minimal covers for a set <strong>of</strong> integrity<br />

constraints.<br />

We can also use graphs <strong>of</strong> functional dependencies for detection <strong>of</strong> normal forms that are better than those<br />

generated by classical synthesis algorithms. Synthesis algorithms blindly collect all dependencies with the same left<br />

side at the final step. Using graphical reasoning we may collect only those dependencies that are not covered by any<br />

other group.<br />

Example 3 Given: the set U R = {A, B, D, F, G, I} <strong>of</strong> attributes <strong>and</strong> the set σ R = {A −→ IG, D −→ F G, IAB −→<br />

D, IF −→ AG} <strong>of</strong> functional dependencies. This set can be represented by the graph in the left picture. The graph<br />

I<br />

IF<br />

✛<br />

✯ A<br />

ABI<br />

✙<br />

F<br />

✲<br />

✯<br />

✲<br />

G<br />

✻<br />

D<br />

I<br />

IF<br />

✛<br />

✯<br />

A<br />

AB<br />

F<br />

✙<br />

✯<br />

✲<br />

G<br />

✻<br />

D<br />

in the right picture displays its reduction to a minimal cover.<br />

These graph also support reasoning on redundancy <strong>of</strong> constraints. Consider, for instance, whether AB −→ D<br />

can be redundant. The answer is “no” since D has only one entry point. The same observation is true for A −→ I,<br />

D −→ F .<br />

By a similar reasoning we can derive non-redundancy <strong>of</strong> D −→ G.<br />

Additionally we can directly see that {A −→ I, F I −→ A} creates a structure that cannot be represented by a<br />

BCNF.<br />

Classical synthesis algorithms generate the following relation schemata:<br />

IS ADD


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

(1)<br />

A<br />

(2)<br />

A<br />

(3)<br />

A<br />

C<br />

B<br />

C<br />

B<br />

C<br />

×<br />

×<br />

B<br />

Abbildung 11: Examples <strong>of</strong> the triangle representation. From left to right: (1) The functional dependency {A} → {B}<br />

(filled circle at B side (right side <strong>of</strong> the FD) <strong>of</strong> the AB edge) <strong>and</strong> the implied functional dependency {A, C} → {B}<br />

(circle around node B in the ABC triangle). (2) The functional dependencies {A} → {B}, {B} → {C} <strong>and</strong> their<br />

implied functional dependencies {A} → {C}, {A, B} → {C}, {A, C} → {B}. (3) The negated functional<br />

dependency {A, C} → {B} (crossed filled circle around node B in the ABC triangle) <strong>and</strong> the implied negated<br />

functional dependencies {A} → {B} (crossed circle at B side <strong>of</strong> the AB edge) <strong>and</strong> {C} → {B}.<br />

R 1 = ({A, G, I}, {A −→ GI})<br />

R 2 = ({A, F, I}, {A −→ I, F I −→ A})<br />

R 3 = ({A, B, D}, {AB −→ D})<br />

R 4 = ({D, F, G}, {D −→ F G})<br />

This normalisation is however not minimal. Instead <strong>of</strong> R 1 we can use<br />

R 1 ′ = ({A, G}, {A −→ G}).<br />

The relation schema R 1 is obtained through the relation schema R 2 in combination with R 1 ′ . R 2 is not in BCNF. It<br />

cannot be split into two relation schemata.<br />

The graph in the picture directly allows us to detect this better normalisation since the dependency A −→ I is<br />

covered by R 2 .<br />

This example illustrates the power <strong>of</strong> graphical reasoning. Normalisation is typically driven by goals such as being<br />

dependency preserving, providing the basis for key-based integrity maintenance (BCNF) or being redundancy-free<br />

(3NF) at least at the attribute level or avoiding maintenance problems (e.g., insert anomaly) or avoiding data losses<br />

(e.g., delete anomaly) or occurrence <strong>of</strong> performance traps (e.g., update anomaly). It might be extended to such criteria<br />

as being redundancy-free at the value level.<br />

Textbooks typically dont’t mention that normalisation also introduces additional constraints.<br />

Example 4 The last example results in pairwise inclusion constraints such as the multiple value occurrence bindings<br />

R ′ 1 [A] ⊆⊇ R 2[A] ⊆⊇ R 3 [A]. This inclusion dependency set adds an overhead to integrity maintenance. The functional<br />

dependencies are directly represented through key dependencies. At the same time, any change to A-values in<br />

one <strong>of</strong> the relations must be harmonised with changes to A-values in the other relations.<br />

FD Set Graphs..<br />

Demetrovics, et al., [DMT07] introduce graphical reasoning for sets <strong>of</strong> constraints. We may represent validity <strong>and</strong><br />

invalidity <strong>of</strong> functional dependencies by a graph. Let us illustrate this approach for relational schemata with three<br />

attributes. Visualisations may be based on more complex figures, e.g. a hexagon for six attributes. To do so we<br />

distinguish two kinds <strong>of</strong> functional dependencies <strong>and</strong> display them as follows in Figure 11: Functional dependencies<br />

<strong>of</strong> the form {A} → {B, C} can be decomposed to canonical functional dependencies {A} → {B} <strong>and</strong> {A} → {C}.<br />

They are represented by endpoints <strong>of</strong> binary edges in the triangle representation. Functional dependencies with twoelement<br />

left-h<strong>and</strong> sides {A, B} → {C} cannot be decomposed. They are represented in the triangle on the node<br />

relating their right side to the corner.<br />

This notation has the advantage that we are supported for reasoning on potential validity <strong>of</strong> constraints as well.<br />

We may represent also c<strong>and</strong>idates for excluded functional dependencies by crossed circles for the case that we know<br />

IS ADD


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

Abbildung 12: Graphical versions <strong>of</strong> rules (P), (Q), (R), (S) <strong>and</strong> (T) in terms <strong>of</strong> the triangle representation. The small<br />

black arrows indicate support (necessary context) while the large grey arrows show the implication effects.<br />

that the corresponding functional dependency is not valid in applications or by small circles for the case that we do<br />

not know whether the functional dependency holds or does not hold.<br />

Since the ST implication system is sound <strong>and</strong> complete for non-trivial canonical functional dependencies, rules<br />

(S) <strong>and</strong> (T) can be used for deriving all implied functional dependencies given an initial set. Moreover, the PQRST<br />

implication system forms a sound <strong>and</strong> complete system for both positive <strong>and</strong> negative (excluded) non-trivial singleton<br />

functional constraints, rules (P), (Q) <strong>and</strong> (R) can be applied as complements <strong>of</strong> rules (S) <strong>and</strong> (T) when excluded<br />

functional constraints are taken into account.<br />

These rules can be interpreted in terms <strong>of</strong> the graphical representation as well. A deduction step using one <strong>of</strong><br />

them deals with a node <strong>of</strong> a higher-dimension object (e.g., a triangle as a two-dimensional object with one <strong>of</strong> its three<br />

vertices) <strong>and</strong> one or two <strong>of</strong> its borders (with one dimension lower, e.g., edges <strong>of</strong> the same triangle as one-dimensional<br />

objects).<br />

Graphical versions <strong>of</strong> rules are shown on Figure 12 for the triangle representation (case Y = {C}). The large<br />

grey arrows indicate the implication effect <strong>of</strong> each rule. Rule (S) is a simple extension rule <strong>and</strong> rule (T) can be called<br />

the “rotation rule” or “reduction rule”. We may call the left-h<strong>and</strong> side <strong>of</strong> a functional dependency the determinant <strong>of</strong><br />

it <strong>and</strong> the right-h<strong>and</strong> side the determinate. Rule (S) can be used to extend the determinant <strong>of</strong> a dependency resulting in<br />

another dependency with one dimension higher, while rule (T) is used for rotation, that is, to replace the determinate<br />

<strong>of</strong> a functional dependency by the support <strong>of</strong> another functional dependency with one dimension higher (the small<br />

black arrow at B indicates support <strong>of</strong> AC → B). Another possible way to interpret rule (T) is for reduction <strong>of</strong> the<br />

determinant <strong>of</strong> a higher-dimensional dependency by omitting an attribute if a dependency holds among the attributes<br />

<strong>of</strong> the determinant.<br />

For excluded functional constraints, rule (Q) acts as the extension rule (i.e., it needs the support <strong>of</strong> a positive<br />

constraint, i.e., functional dependency) <strong>and</strong> (R) as the rotation rule (which needs a positive support too). These two<br />

rules can also be viewed as negations <strong>of</strong> rule (T). Rule (P) is the reduction rule for excluded functional constraints,<br />

with the opposite effect <strong>of</strong> rule (Q) (but without the need <strong>of</strong> support). Rule (Q) is also viewed as the negation <strong>of</strong> rule<br />

(S).<br />

Mehrwertige Abhängigkeiten im falschen Modell.<br />

Cadiou-Definition als die zweitbeste Form und ER-Definition als die bei weitem beste Form!!!<br />

It is <strong>of</strong>ten claimed that multivalued dependencies are difficult to model, to teach, to learn <strong>and</strong> to h<strong>and</strong>le. They are<br />

IS ADD


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

introduced in almost any database book. The classical introduction is based on the tuple-generating definition <strong>of</strong> the<br />

multivalued dependency X → Y |Z . It requires that whenever two tuples have the same value on the left-h<strong>and</strong><br />

side then there also exists a tuple in the relation class which matches to the first tuple by the left-h<strong>and</strong> side <strong>and</strong> the first<br />

element <strong>of</strong> the right-h<strong>and</strong> side <strong>and</strong> which matches to the second tuple by the left-h<strong>and</strong> side <strong>and</strong> the second element<br />

<strong>of</strong> the right-h<strong>and</strong> side. This definition has the clarity <strong>of</strong> a mathematical definition <strong>and</strong> the problematic treatment <strong>of</strong>ten<br />

observed for other mathematical constructs.<br />

There are however five other definitions for multivalued dependencies that are easier to underst<strong>and</strong>, to h<strong>and</strong>le,<br />

<strong>and</strong> to represent. We may group these definitions as follows:<br />

Derivation constraint: The classical definition is based on the above mentioned tuple generating property. Another<br />

definition uses the construction approach for hinged Cartesian products <strong>and</strong> binds the validity <strong>of</strong> the multivalued<br />

dependency to the equality on query expressions (σ X=x (R C ))[Y ∪Z] = (σ X=x (R C ))[Y ] ×(σ X=x (R C ))[Z]<br />

is valid for Y, Z with Y ∩ Z = ∅ for all x ∈ R C [X].<br />

Structure constraint: The structure-oriented definition can be given through<br />

• the decomposition <strong>of</strong> the original class into two classes, i.e., the original class can be reconstructed by<br />

applying the natural join to the projection <strong>of</strong> R C to X ∪ Y <strong>and</strong> X ∪ Z respectively or<br />

• the potential structuring by a nested relation class<br />

ν Y (ν Z (R C )) X {Y } {Z}<br />

A 1 ... A k A k+1 ... A m A m+1 ... A n<br />

... ... ... ... ... ... ... ... ...<br />

or<br />

• the potential restructuring in an ER model in the following form<br />

Y ✛ XY ✲ X ✛ XZ<br />

(1,n) (1,n)<br />

✲<br />

Z<br />

Independence concept: The original definition [Cad76] uses relative independence <strong>of</strong> Y -components from Z-<br />

components in a relation class, i.e., the values <strong>of</strong> the X-components determine the values <strong>of</strong> Y-components <strong>of</strong><br />

objects in R C independently from the values <strong>of</strong> Z-components, ( (σ X=x (R C ))[Y ] = (σ (X=x)∧(Z=z) (R C ))[Y ]<br />

for all x-values x ∈ R C [X] <strong>and</strong> all z-values z ∈ R C [Z]).<br />

The generation definition is certainly the most mathematical <strong>and</strong> the least useful among the definitions. The construction<br />

definition provides a facility for checking validity. Both definitions also demonstrate that the relational model<br />

language is not appropriate for reasoning on these constraints. The independence notion is the simplest for modelling<br />

<strong>and</strong> for considering. The structure definitions are certainly the best way for the underst<strong>and</strong>ing <strong>of</strong> these constraints.<br />

The ER approach is the best suited model language for multivalued dependencies.<br />

Example 5 Let us consider a relationship type EmployeeAssociation defined on the entity types: StaffMember,<br />

DependentPerson, Project, Supplier, Product with the following multivalued dependencies:<br />

{ StaffMember } → { Department, DependentPerson }|{ Project, Product, Supplier }<br />

{ StaffMember } → { DependentPerson }|{ Department, Project, Product, Supplier }<br />

{ Project } → { StaffMember, Department, DependentPerson }|{ Product, Supplier }<br />

{ Product } → { Department, StaffMember, DependentPerson, Project }|{ Supplier } .<br />

The ER model allows us to derive a new structuring by the decomposition <strong>of</strong> the relationship type. We obtain the schema<br />

in Figure 13 for which a new type ‘Working’ reflects the separation <strong>of</strong> concern to P P roduct, Department StaffMember<br />

<strong>and</strong> the independence <strong>of</strong> suppliers <strong>and</strong> projects according to the multivalued dependencies.<br />

Inklusions- und Exklusionsabhängigkeiten.<br />

in 2 verschiedenen Facetten<br />

IS ADD


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

Department<br />

Project<br />

<strong>of</strong> Product<br />

✛<br />

✲<br />

Working<br />

0..1<br />

❄<br />

Product<br />

✛<br />

0..1<br />

✲<br />

StaffMember<br />

Supplier<br />

<strong>of</strong> Product<br />

✛<br />

Dependent<br />

Abbildung 13: The decomposition <strong>of</strong> the relationship type based on multivalued dependencies<br />

• Klassenabhängigkeiten zur Existenz von Klassen<br />

daraus resultierend verschiedene Art von Schemata R[X] ⊆ S[Y ]<br />

• partielle Objektredundanz<br />

spezielle Form: referentielle Abhängigkeit mit Fremdschlüssel-Imputation in die existierende Klasse und entsprechender<br />

imputierter zusätzlicher Identifikation<br />

2.3.2 Umgebungsdefinition für Integritätsbedingungen<br />

Allgemeines Herangehen:<br />

Umgebung<br />

Gültigkeit<br />

Ausnahmebeh<strong>and</strong>lung<br />

Erzwingungsstrategie mit Erzwingungsregel und Erzwingungszzeitpunkt, sowie Priorisierung<br />

Nachsorgestrategie<br />

genauere Ausführung nach den HERM-IC<br />

IS ADD


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

2.3.3 Statische Integritätsbedingungen von HERM<br />

Statische Integritätsbedingungen werden als Formeln der hierarchischen Prädikatenlogik allgemein dargestellt. Wir<br />

verwenden jedoch die üblichen Kurzdarstellungen.<br />

Wir gehen davon aus, daß statische Integritätsbedingungen einer Interpretation mit einer “Normallogik” unterliegen.<br />

Mitunter wird auch im Entwurf eine Integritätsbedingung mit einer schwachen, deontischen Interpretation benutzt, bei<br />

der ihre Gültigkeit für die meisten Objekte einer Datenbank oder einer Klasse gefordert wird. Mitunter wird auch eine<br />

strikte Form der Interpretation genutzt, bei der z.B. obere bzw. untere Schranken für Kardinalitätsbeschränkungen<br />

auch durch entsprechende Objektmengen 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<br />

nehmen an, daß Entity-Klassen stets eigen-identifiziert sind, d.h. Mengen sind. Eine Teilmenge der Strukturelemente<br />

kann auch als Schlüssel dienen. Gewöhnlich hat jeder Typ mehr als einen Schlüssel. Deshalb verwenden<br />

wir von vornherein Schlüsselmengen. Der Primärschlüssel eines Entity-Typs wird direkt angegeben und kann<br />

in der Schlüsselmenge weggelassen 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 22:<br />

• Projekt, Institution, Mitarbeiter, Labor besitzen ihre Schlüssel; jeweils einer davon kann ausgezeichnet<br />

sein<br />

• fördert leitet, arbeitet in, zugeordnet erben die Schlüssel der jeweiligen Elemente zur Identifikatioon der<br />

Relationships in den jeweiligen Relationship-Klassen<br />

• analog kann auch ein Relationship-Typ höherer Ordnung seine Identifikation durch die Identifikation der<br />

Komponenten beziehen<br />

• ggf. kann auch für einen Relationship-Typen gelten, daß einige seiner Attribute für die Identifikation mit<br />

herangezogen werden<br />

Funktionale Abhängigkeiten sind eine wichtige Gruppe von Abhängigkeiten. Eine funktionale Abhängigkeit R :<br />

X → Y ist für einen Typ R und Teilmengen X, Y seiner Elemente definiert. Sie gilt in einer Klasse R C ,<br />

falls die Gleichheit 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 />

Mod IS<br />

IS ADD


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

Kardinalitätsbeschränkungen werden als kombinatorische Beschränkungen in der (min,max)-Notation und der<br />

Partizipations-Semantik als Paar von Kardinalitäten verwendet. Damit unterscheidet sich unsere Notation von<br />

der Lookup-Semantik, die z.B. UML verwendet. Die letztere kann jedoch in einer n..m-Notation ebenso mitgeführt<br />

werden. Wir betrachten hierzu ein vereinfachtes Diagramm in Bild 14.<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 14: 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<br />

Ri<br />

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

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

zur Inklusionsabhängigkeit 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<br />

mit k Elementen, falls zu jeder Kombination von Objekten o j von Rj<br />

C (j ≠ i, 1 ≤ j ≤ k) mindestens n und<br />

höchstens m 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<br />

müssen, kann man damit einem Objekt o von R i mindestens n und höchstens m Objekte aus Rj<br />

C zuordnen,<br />

d.h. das Objekt sieht vermittels R C höchstens m und mindestens n Objekte aus der <strong>and</strong>eren Klasse. Wir erhalten<br />

damit das folgende Bild:<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 15: Kardinalitätsbeschränkungen im Vorlesungsbeispiel<br />

Diese Beziehung zwischen lookup und participation-Bedingungen gilt allerdings nicht, wenn die Attribute C<br />

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

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

zur verallgemeinerten 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 />

Mod IS<br />

IS ADD


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

Manchmal wird sogar das Kartesische Produkt von R C 1 , ...., RC i−1 , RC i+1 , ..., RC n anstelle der Projektion verst<strong>and</strong>en.<br />

Diese Interpretation wurde z.B. UML unterlegt.<br />

Trotzdem sind Lookup-Abhängigkeiten auch von Nutzen. Man betrachte z.B. Bild 16. Die Lookup-Bedingung<br />

look(Angebot, verantw. P erson) = 0..1 impliziert direkt ein Pivoting im Schema auf der rechten Seite,<br />

das relativ natürlich scheint.<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 16: 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<br />

stärkere Dekomposition in Bild 17.<br />

Semester<br />

✛<br />

Angebot ✲ Kurs ✛ Verantwortl. ✲<br />

(0,1) (0,1)<br />

Person<br />

Abbildung 17: Kardinalitätsbeschränkungen im Vorlesungsbeispiel<br />

Die Lookup-Notation ist für binäre Relationship-Typen ohne eigene Attribute äquivalent zur Partizipation-<br />

Notation. Sie 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<br />

zur verallgemeinerten 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,<br />

wenn der Student eine Vorlesung erfolgreich abgelegt hat.<br />

Die Lookup-Bedingung look(legtab, Ablageform) = 0..2 stellt dar, daß nur Prüfung und Schein bzw.<br />

Schein und Praktikum bzw. Prüfung und Praktikum absolviert werden müssen. Diese Bedingung ist äquivalent<br />

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

{R i } → R .<br />

Eine Lookup-Kardinalitätsbeschränkung look(R, R i ) = 0..1 ist äquivalent zur funktionalen Abhängigkeit<br />

R : R \ {R i } → R .<br />

Spannend ist das Zusammenwirken von card und look.<br />

Wir betrachten z.B. einmal einen Relationshiptypen in Bild<br />

Mod IS<br />

IS ADD


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

Weiterhin können wir z.B. fordern, daß nur solche Vorlesungen als gehalten gelten, die auch zu studentischer<br />

Beteiligung 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 18: Beziehungen der Objekte im Vorlesungsbeispiel<br />

Wir betrachten in diesem Beispiel in Bild 18 eine kleine Klasse mit 14 Objekten. Z.B. hat Bärbel sowohl die<br />

(Informatik III,WS2002,BvB) als auch (DBIV,SS2002,β) mit Prüfung und Schein abgelegt, Emil dagegen nur<br />

Scheine in (Informatik III,WS2002,BvB) und (DBI,WS2002,β).<br />

Kardinalitätsbeschränkungen sind mitunter nicht erfüllbar in nicht-leeren, endlichen Klassen. Ein Beispiel einer<br />

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

betrachten. Mit der Kardinalitätbeschränkung card(Voraussetzung, vorausgesetzt) = (3,4) kann man z.B. folgende<br />

Besetzung für 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<br />

c, d in 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<br />

“verbraucht”. Dann haben wir bereits für d als linke Seite nicht genug Elemente auf der rechten Seite. Wir<br />

benötigen also noch f, g. Wir können nun weiter fortsetzen und erkennen, daß nur die leere und eine unendliche<br />

Menge von Vorlesungen diese 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 />

Mehrwertige Abhängigkeiten stellen im Entwurf i.a. die Separation von Gesichtpunkten bzw. Aspekten dar. Sie<br />

werden <strong>of</strong>t 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 ⊆<br />

U R und Z = U R \ (Y ∪ X) definiert und gilt in einer Klasse Relation R C über R (dargestellt durch R C |=<br />

X →→ Y |Z ), falls für alle o, o ′ ∈ R C , die den gleichen Wert für die X-Elemente von R haben, ein Objekt<br />

o ′′ in R C existiert, das aus 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 />

Mod IS<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 184<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<br />

dekomponieren läßt, d.h. 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<br />

Schema führt, bei dem der Typ R durch die dekomponierten Typen wie in Bild 19 ersetzt wird.<br />

Y ✛ XY ✲ X ✛ XZ ✲<br />

Z<br />

Abbildung 19: Die Zerlegung von R in zwei Relationship-Typen<br />

Weitere relationale Integritätsbedingungen, z.B. Wertebereichsabhängigkeiten, können im erweiterten ER-<br />

Modell verwendet 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 />

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 20: Lokale Integritätsbedingungen mit globalen Auswirkungen<br />

Pivotisierung durch Identifikation von faktorisierbaren Konstrukten z.B. Integritätsbedingungen, die auf Fakten hinweisen<br />

Globalisierende Integrititätsbedingungen hervorgerufen durch Zyklen<br />

weitere Beispiel in Hartmann-Habil<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 185<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 21: Pivotisierungsauswirkungen lokaler Integritätsbedingungen in zwei Facetten<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 22: Globale Verwicklungen lokaler Integritätsbedingungen<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 α 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 />

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

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

müssen (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 />

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

Mod IS<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 187<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<br />

insert, delete, update eingehalten werden müssen. Ist für eine Komplexität comp(R, R ′ ) = (a, b) a ≥ 1, dann<br />

ist jedes insert in R ′ durch ein insert in R zu unterstützen. Jedes delete in R ′ kann ein delete in R nach sich<br />

ziehen. Alle derartigen 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) :=<br />

Env U (R ′ ) ∪ 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) ∪<br />

Env I (R ′ ), 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 ′ ) ∪<br />

Env I (R). Gilt comp(R ′′ , R ′ ) = (a, b) für a ≥ 1 und R ′′ ∈ Env U (R ′ ) dann sei Env U (R) :=<br />

Env U (R ′ ) ∪ Env U (R). Gilt comp(R ′′ , R ′ ) = (a, b) für a ≥ 1 und R ′′ ∈ Env D (R ′ ) dann sei<br />

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

R ′′ ∈ Env D (R ′ ), in 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) ∪<br />

Env I (R). Für jede Exklusionsabhängigkeit R ‖ R ′′ mit R ′′ ∈ Env U (R ′ ) gilt Env U (R ′ ) :=<br />

Env U (R) ∪ Env U (R).<br />

iv. Weitere Abhängigkeiten werden analog beh<strong>and</strong>elt.<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<br />

Person-de-jure ist eine Firma oder eine Person) führt zu einer Existenzabhängigkeit des Supertypen von Subtypen,<br />

die unbedingt gepflegt werden muß (d.h. werden die Daten einer Firma entfernt, dann werden diese<br />

auch für die Persona-de-jure entfernt). Die Spezialisierung führt zu einer Existenzabhängigkeit des Subtypen<br />

(in unserem Falle Teiltypen (Relationshiptypen 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 />

Mod IS<br />

IS ADD


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

• Automatismus: Eine Einfügung ist stets erlaubt. Wenn entsprechende Objekte nicht existieren, dann werden<br />

sie ebenfalls eingefügt.<br />

• Nullwertebeh<strong>and</strong>lung: Eine Einfügung ist stets erlaubt. Existieren die entsprechenden Objekte nicht, dann<br />

werden für das neue Objekt Nullwerte benutzt.<br />

• default-Werte: Eine Einfügung ist stets erlaubt. Existieren die entsprechenden Objekte nicht, dann werden<br />

für das neue Objekt default-Werte benutzt.<br />

• Zusätzliche Einfügebedingungen: Ein Einfügen ist nur dann erlaubt, wenn eine zusätzliche Bedingung<br />

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

sind für 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<br />

des zu streichenden Objektes noch existieren.<br />

• Nullwertebeh<strong>and</strong>lung: Beim Streichen werden Objekte, in die das Objekt eingeht auf einen Nullwert<br />

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

sind für 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)<br />

(als ‘no 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<br />

Sekundärschlüsseln, 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)<br />

zu.<br />

Mod IS<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 189<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 23: 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<br />

bei automatischer Erzwingung falsch. Der GCS-Zugang von Schewe/Thalheim ist ein sicherer automatischer<br />

Zugang. Er ist allerdings für die Betrachtungen hier zu komplex.<br />

Die Integritätsbedingungen sind in SQL-92 in unterschiedlichen Modi und Matching unterstützt, wobei deren<br />

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

Mod IS<br />

IS ADD


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

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

z.B. die Erzwingung in Bild 24.<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 24: 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 vorgenoomen ausgehend von gleichen<br />

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

R 2 , R 1 ⊆ R 3 , R 1 ⊆ R 4 , R 1 ⊆ R 5 , .<br />

Mod IS<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 191<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<br />

in jeder Schicht durch das Entity-Relationship-Modell repräsentiert werden. Wir verwenden dazu Schemata unterschiedlicher<br />

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

der Typen, Dekomposition, strukturelle Erweiterung, semantische Einschränkung, Separation von Aspekten<br />

und durch Instantiierung statt. Zusätzlich werden weitere Typen eingeführt.<br />

Anwendungsschema: Das Anwendungsschema repräsentiert alle Typen, die für den Anwender eine Bedeutung<br />

haben. Die 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,<br />

das u.a. auch für alle Typen des Anwendungsschemas entsprechende Verfeinerungen enthält. Diese Beziehungen<br />

finden auch Eingang in die Sichten-Suite.<br />

Logisches Schema: Das HERM-Schema wird in ein entsprechendes Schema des logischen Datenbank-Modelles<br />

transformiert. Es kann üblicherweise ein objekt-relationales oder relationales Schema, aber auch eine Beschreibung<br />

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

in Bild ?? auf Seite ?? dargestellt - einer Menge von Entwurfseinheiten der folgenden Schicht direkt zugeordnet<br />

werden.<br />

Wir merken an, daß wir über zwei unterschiedliche Methoden zur Darstellung, Repräsentation, Verarbeitung und<br />

Speicherung von Objekten verfügen:<br />

Klassen-Separation: Die Menge aller Objekte wird durch ein ER-Schema dargestellt. Jedes Objekt wird genau<br />

einer Klasse zugeordnet und in beliebig vielen <strong>and</strong>eren Klassen auf der Grundlage des ER-Schemas verwendet.<br />

Die Verwendung kann über einen Surrogat-Schlüssel, eine Markierung oder Werte zum ausgewählten Schlüssel<br />

des Objektes erfolgen.<br />

Wir nennen diese Form der Beh<strong>and</strong>lung von Objektmengen klassen-separierte Darstellung. Ein Objekt ist<br />

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

einen Objektmengen-Graphen. Wir können über diesem Graphen beliebige Überdeckungen U bilden,<br />

d.h. Mengen von Teilgraphen, die zusammen den Objektmengen-Graphen ergeben. Ein Teilgraph besitzt evt.<br />

ein Wurzel-Objekt, d.h. es gibt ein Objekt, das rekursiv auf alle <strong>and</strong>eren Objekte des Teilgraphen verweist.<br />

Besitzt jeder dieser Teilgraphen ein Wurzelobjekt, 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 />

Mod IS<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 192<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 25: 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 193<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 />

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

OLAP-Zugänge 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<br />

vorzuziehen. Wir unterstützen diesen Zugang durch Einführung einer Sichten-Suite.<br />

Mod IS<br />

IS ADD


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

2.5 Ausgewählte Muster von Referenzschemata<br />

2.5.1 Werte, Beobachtungen und Messungen<br />

The assignment <strong>of</strong> values is <strong>of</strong>ten not as simple as stated. Quantities must be given together with their units <strong>of</strong><br />

measure. The placement <strong>of</strong> quantity properties either as attribute type or as relationship type depends mainly on the<br />

usage <strong>of</strong> the property either as characterisation or as associating property. Additionally, reuse <strong>of</strong> the same kind <strong>of</strong><br />

representation may lead to an introduction <strong>of</strong> a separate entity type.<br />

Beside the assignment <strong>of</strong> values we also need to consider the conversion <strong>of</strong> units. The schema in Figure 26 shows<br />

one possible generic representation that might be used a the general units conversion dimension.<br />

Unit<br />

to<br />

✛<br />

from<br />

✛<br />

Conversion<br />

factor<br />

✲<br />

Number<br />

Abbildung 26: Conversion <strong>of</strong> units <strong>of</strong> measure<br />

If many units must be converted then the physical dimension comes into play. Also, international st<strong>and</strong>ards such<br />

as S.I. st<strong>and</strong>ards must then be considered.<br />

Often conversion factors are dynamic, e.g. exchange rates.<br />

Units <strong>of</strong> measure are <strong>of</strong>ten complex units, e.g. consumption. If we need a direct representation we might use the<br />

schema in Figure 27.<br />

Unit<br />

✛<br />

Negative<br />

✲<br />

(0,1)<br />

Atomar<br />

unit<br />

✛<br />

Positive<br />

✲<br />

Complex<br />

unit<br />

(0,n)<br />

Abbildung 27: Direct representation <strong>of</strong> complex units<br />

Measurement <strong>and</strong> observations are typically based on a separation into the knowledge level <strong>and</strong> the activity <strong>of</strong><br />

observing or measuring. So we might record this activity directly as displayed in Figure 28.<br />

Type <strong>of</strong><br />

phenomenon<br />

Knowledge/strategic level<br />

Temporal/tactical level<br />

✻<br />

Person<br />

✛<br />

Measurement<br />

✲<br />

Quantity<br />

Abbildung 28: Activity <strong>of</strong> measuring<br />

This picture might be more complex if we consider that measurements <strong>and</strong> most observations are subjective.<br />

We explicitly introduce Observations in Figure 29.<br />

Additionally, observations may be co-related (see, for instance, Figure 30).<br />

Also, we might have to distinguish between the type <strong>of</strong> phenomenon <strong>and</strong> the phenomenon itself. So Figure 29<br />

becomes extended to Figure 31<br />

IS ADD


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

Type <strong>of</strong><br />

phenomenon<br />

✻<br />

Measurement<br />

✒<br />

✲<br />

Quantity<br />

Person<br />

✛<br />

Observation ⊕<br />

✲<br />

Perception<br />

✲<br />

Category<br />

Abbildung 29: Activity <strong>of</strong> observing<br />

Observation<br />

✛<br />

Judgement<br />

✛ Co-relation<br />

Hint<br />

Abbildung 30: Recursive relationships to for observations<br />

Type <strong>of</strong><br />

phenomenon<br />

✛<br />

Phenomenon<br />

❑<br />

✻<br />

Measurement<br />

✒<br />

✲<br />

Quantity<br />

Person<br />

✛<br />

Observation ⊕<br />

✲<br />

Perception<br />

✲<br />

Category<br />

Abbildung 31: Activity <strong>of</strong> measuring, observing <strong>and</strong> perceiving<br />

IS ADD


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

The phenomenon might be bundled by a concept <strong>of</strong> perception. The information whether we perceive a category<br />

or not will also have to recorded for certain purposes. So, we need to capture that in Figure 32. At the same time,<br />

observations might be classified as wrong, erroneous or rejected. Also, we might want to distinguish which type <strong>of</strong><br />

observation is made: hypothesis, projection, or active observation.<br />

Person<br />

✛<br />

Type <strong>of</strong><br />

phenomenon<br />

✻<br />

✛<br />

⊕<br />

Observation<br />

Phenomenon<br />

Perception ✛<br />

✒ ❦<br />

✲ Measurement<br />

✲<br />

✶<br />

Concept <strong>of</strong><br />

perception<br />

Negative<br />

perception<br />

Positive<br />

perception<br />

Active<br />

observation<br />

Hypothesis<br />

Projection<br />

<br />

✲<br />

✸<br />

Type <strong>of</strong><br />

observation<br />

✠<br />

✻<br />

Rejected<br />

observation<br />

❄<br />

Quantity<br />

Abbildung 32: Activity <strong>of</strong> measuring, observing <strong>and</strong> perceiving<br />

Finally, the association <strong>of</strong> observations might be based on constructors for associating observations. So, the picture<br />

becomes more complex <strong>and</strong> can be represented by a schema similar to the one in Figure 33.<br />

Arguments<br />

for selection<br />

❄<br />

Association<br />

function<br />

✲<br />

❘<br />

Concept <strong>of</strong><br />

observation<br />

Knowledge/strategic level<br />

Temporal/tactical level<br />

✻<br />

✻<br />

Associated<br />

observation<br />

✻<br />

✲<br />

Observation<br />

✒<br />

Hints<br />

for selection<br />

Abbildung 33: Associations <strong>and</strong> constructors for observations<br />

Observation is still an overloaded concept. Additionally, we need to establish a recording or protocolling component<br />

with the schema. We therefore extend the schema in Figure 32 to the schema in Figure 34. This schema omits<br />

some <strong>of</strong> the types <strong>of</strong> the former schema<br />

IS ADD


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

Comparison-based<br />

measurement<br />

method<br />

Computed<br />

measurement<br />

protocol<br />

✲<br />

Computing<br />

method<br />

✛✢<br />

Causal<br />

measurement<br />

method<br />

❄<br />

Protocol<br />

prototype<br />

✛<br />

Is For TypeOPr<br />

✲<br />

Type <strong>of</strong><br />

phenomenon<br />

✛<br />

Phenomenon<br />

✲<br />

✶<br />

Concept <strong>of</strong><br />

perception<br />

✻<br />

Source<br />

measurement<br />

protocol<br />

❪<br />

Protocol<br />

✲<br />

✻<br />

⊕<br />

Observation<br />

Perception<br />

✒<br />

✲ Measurement<br />

✯<br />

Quantity<br />

✲<br />

Method <strong>of</strong><br />

measurement<br />

❄<br />

Person<br />

✠<br />

❄<br />

Object under<br />

observation<br />

❘<br />

Type <strong>of</strong><br />

observation<br />

❘<br />

Planning<br />

Abbildung 34: Activity <strong>of</strong> measuring, observing <strong>and</strong> perceiving, protocolling <strong>and</strong> planning (without positive <strong>and</strong><br />

negative observations <strong>and</strong> perceptions)<br />

Measurement is typically based on the Factory-Method pattern. Measurement <strong>and</strong> to a certain extent observations<br />

are based on data. So, the type Quantity is a complex type or a schema by themselves. We therefore should<br />

shuffle the state under consideration into the schema in Figure 34.<br />

Typically quantity is based on a a state. The explicit representation <strong>of</strong> state with different sub-states allows to<br />

apply the state pattern to measurement processes. The state pattern allow an object to alter its behaviour when its<br />

internal state changes. Figure 35 displays the first schema draft for state representation.<br />

The comparison operator is complex. Therefore, we shuffle the complex units schema displayed in Figure 27 into<br />

this schema. Another shuffle schema to be incorporated into this schema is the schema for the representation <strong>of</strong> dates<br />

<strong>and</strong> moments.<br />

2.5.2 Zeitmodellierung<br />

Date is either based on the current calendar (for instance, finance year, study period) or on specific representation <strong>of</strong><br />

time. Data may be temporal <strong>and</strong> depend directly on one or more aspects <strong>of</strong> time. We distinguish three orthogonal<br />

concepts <strong>of</strong> time: temporal data types such as instants, intervals or periods, kinds <strong>of</strong> time, <strong>and</strong> temporal statements<br />

such as current (now), sequenced (at each instant <strong>of</strong> time) <strong>and</strong> non-sequenced (ignoring time). Kinds <strong>of</strong> time are:<br />

existence time, lifespan time, transaction time, change time, user-defined time, validity time, <strong>and</strong> availability time. The<br />

first two kinds <strong>of</strong> time are not considered in databases since they are integrated into modelling decisions. Temporal<br />

data are supported by specific temporal functions. These functions generalize Allen’s time logic [All84].<br />

2.5.3 Geometrie-Modelle<br />

2.5.4 Interval-Modellierung<br />

The representation <strong>of</strong> intervals is a typical task in most information systems applications. Figure 36 display a general<br />

injection schema for interval representation.<br />

IS ADD


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

Comparison<br />

operator<br />

■<br />

Duration<br />

✻<br />

✻<br />

✒<br />

Date<br />

✯<br />

State<br />

✛<br />

Real<br />

state<br />

✲<br />

State type<br />

✠<br />

Observation ⊕<br />

❄<br />

✲Measurement<br />

❘<br />

✲<br />

❪<br />

Method <strong>of</strong><br />

measurement<br />

❘<br />

Planning<br />

Planned<br />

state<br />

✲<br />

Planning<br />

<strong>of</strong> state<br />

Abbildung 35: Considering states for measurement<br />

Object life<br />

period<br />

Boolean<br />

✛Lower bound<br />

included<br />

✛Upper bound<br />

included<br />

❄<br />

Interval<br />

Lower<br />

bound ✲<br />

Upper ✲<br />

bound<br />

Value<br />

type<br />

Abbildung 36: Representation <strong>of</strong> intervals<br />

IS ADD


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

This constructor is also applicable to the construction <strong>of</strong> complex observation types.<br />

2.5.5 Geschichtete Modellierung<br />

Responsibilities are typically based on the kind/type-<strong>of</strong> constructor. The schema in Figure 37 displays responsibilities<br />

in dependence on their kind <strong>and</strong> the association to parties. Organisations have a structure that is valid in certain time<br />

periods. It is constructed depending on the structure type that has been chosen. This structure type is based on the<br />

regulations for construction.<br />

Fixed<br />

Temporal<br />

Responsibility<br />

type<br />

✛<br />

requested by ✲<br />

Responsibility<br />

responsible ✲<br />

Party<br />

❄<br />

❄<br />

Regulations<br />

Time<br />

frame<br />

Abbildung 37: The assignment <strong>of</strong> responsibilities to parties<br />

We notice again that such structures are typical for schemata that represent at the same time strategic information<br />

or knowledge <strong>and</strong> tactical information or data.<br />

We can extend this pattern by associating the kinds upon which the types are based. For instance, the schema may<br />

be fold for representation <strong>of</strong> actions or activities. At the same time, parties may be hierarchically structured.<br />

Regulations ✛<br />

Knowledge/strategic level<br />

requested by ✲<br />

Responsibility<br />

type<br />

responsible ✲<br />

✻<br />

Party<br />

type<br />

✻<br />

Temporal/tactical level<br />

for<br />

✲<br />

requested by<br />

Responsibility<br />

responsible<br />

✲<br />

✲<br />

Party<br />

(0,n)<br />

(0,1)<br />

❄<br />

❄<br />

Action<br />

Time<br />

frame<br />

Abbildung 38: The assignment <strong>of</strong> responsibilities to parties<br />

The roles <strong>of</strong> responsibilities must be a specialisation <strong>of</strong> the roles <strong>of</strong> the corresponding responsibility type. A<br />

similar requirement may be enforced for the hierarchies.<br />

Responsibilities may also be hierarchically structured <strong>and</strong> can be classified according to the type <strong>of</strong> hierarchy. We<br />

distinguish between<br />

IS ADD


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

layer-based responsibilities where the party can only be responsible for the party that is in the next lower layer <strong>and</strong><br />

hierarchical responsibilities that restrict the responsibility to the matching level <strong>of</strong> the parties.<br />

The layer-based responsibility can be<br />

general for a general responsibility <strong>of</strong> one party for an entire layer (represented by a unary relationship <strong>of</strong> responsibility<br />

for a party) or<br />

directed for a (binary) relationship between the parties.<br />

Responsibilities may be shuffled with a logging facility that store the results <strong>of</strong> being responsible for the parties.<br />

Figure 39 displays one way <strong>of</strong> shuffling according to the constructor pattern <strong>of</strong> the previous subsection.<br />

Protocolling<br />

schema<br />

2<br />

Quantity<br />

schema<br />

✻<br />

⊕<br />

✿<br />

Product<br />

kind<br />

Service<br />

area<br />

✾<br />

Service<br />

kind<br />

3<br />

Resource<br />

utilisation<br />

✻<br />

Responsibility<br />

✛<br />

Service<br />

✲<br />

Spatial<br />

schema<br />

Abbildung 39: Service record for responsibilities<br />

Responsibilities may already by pre-assigned to parties. In this case we introduce another type: Position. This<br />

type may either be generalised within the Party type or may be a unary relationship defined on Party.<br />

2.6 Grenzen der Modellierung<br />

2.6.1 Grenzen hierarchischer Modellierung<br />

The higher-order entity-relationship model (HERM) [Tha00] extends the classical entity-relationship model by complex<br />

attributes (type), relationship types <strong>of</strong> higher order <strong>and</strong> cluster types. Relationship types may have only one component<br />

<strong>and</strong> represent in this case a specialization <strong>of</strong> the its component. For instance, the relationship type Porsche<br />

in Figure 41 specializes the type car. The type Car is a specialization <strong>of</strong> the type Product. Relationship types may<br />

have key components beyond the keys <strong>of</strong> their components. For instance, the type Book has an additional key beyond<br />

the identification for products. It is required that any type has a key. For this reason, the HERM schema requires that<br />

each type has either its key or a key that consists <strong>of</strong> keys from its components <strong>and</strong> if necessary its additional key.<br />

Cluster types allow a representation <strong>of</strong> generalization hierarchies. For instance, the Product type can be understood<br />

as a generalization <strong>of</strong> the types Car <strong>and</strong> Product. This opportunity is not represented in our HERM schema.<br />

Modeling typically allows to apply a number <strong>of</strong> approaches. The classical ER approach to modeling is given in<br />

the specialization schema in Figure 40. We have been choosing a compact schema that avoids Is-A relationship types<br />

<strong>and</strong> directly uses specialization types. Extended ER modeling requires that any type has its identifying components.<br />

Identifiers may also be attributes <strong>of</strong> the relationship type. Typically identification is inherited from components. It may<br />

IS ADD


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

however also replace identification, e.g. ISBN is the identification for the book type. Specialization may either be<br />

subtype specialization or property specialization (e.g. Porsche911GT8 for Porsche911) or both (e.g. Book for<br />

Product with value assignment for taxRate <strong>and</strong> type specialization for the relationship type). Typically, (entity<br />

or relationship) classes are not singleton classes. The type myPorsche911CarreraS defines a singleton class for<br />

this application.<br />

serialNr<br />

taxRate<br />

desc<br />

Product<br />

✙<br />

❨<br />

listPrice<br />

Hierarchie layer:<br />

Product Catalog<br />

maxSpeed<br />

maxSpeed=310km/h<br />

listPrice=108.083<br />

Porsche911GT3<br />

porsche911club<br />

porsche911club=true<br />

millage taxRate=20<br />

Car ✛ Porsche911<br />

✠ millage=100000<br />

✛ Porsche911<br />

CarreraS<br />

✛ myPorsche911<br />

CarreraS<br />

marketLaunch<br />

maxSpeed listPrice<br />

=293km/h =91.838<br />

serialNr=’C33333333’<br />

author marketLaunch=1964<br />

author=J.K. Rowling<br />

Book ✛ HarryPotter4 ✛ myCopyOf<br />

HarryPotter4<br />

taxRate=15<br />

listPrice=11.50 serialNr=’A121212’<br />

Hierarchie layer: Hierarchie layer: Hierarchie layer: Hierarchie layer:<br />

Product Category Product Br<strong>and</strong> Product Model Product Physical Entity<br />

Abbildung 40: Product catalog modeled with HERM specialisation types<br />

Another representation <strong>of</strong> the same application is given in the overlay schema. This schema combines the car<br />

<strong>and</strong> book category in the example within a schema that allows to consider the similarity <strong>of</strong> the types within the same<br />

diagram without separating the categories into different diagrams. The model in Figure 41 uses optional attributes<br />

which may either be populated or not. The population is constrained by null-value constraints <strong>of</strong> the following kind:<br />

[author] 0 binds the population <strong>of</strong> values for authors in the entity type Model to those models which category kind<br />

is BOOK.<br />

[millage] 0 binds the population <strong>of</strong> values for millage in the relationship type Entity to those physical entities<br />

which category kind is CAR.<br />

[clubAccepted] 0 binds the population <strong>of</strong> values for clubs in the relationship type Entity to those physical entities<br />

which category kind is CAR <strong>and</strong> which br<strong>and</strong> allows club membership.<br />

This binding is simple as long as paths have a uniqueness condition. For instance, models have at most one br<strong>and</strong> <strong>and</strong><br />

one <strong>and</strong> only one category. The overlay model assumes that br<strong>and</strong>s <strong>and</strong> categories are orthogonal dimensions <strong>and</strong> that<br />

models have at most one br<strong>and</strong> <strong>and</strong> have one <strong>and</strong> only one category.<br />

ID<br />

[listPrice] 0<br />

ID<br />

desc<br />

ID<br />

✛ Br<strong>and</strong><br />

Br<strong>and</strong> to ✲ Model ✛<br />

Model (0,1)<br />

Entity<br />

[club] 0<br />

✻<br />

[author] 0 [maxSpeed] 0 serialNr<br />

[marketLaunch] 0<br />

(1,1)<br />

Catalog ✛<br />

Catalog<br />

to ✲<br />

Category<br />

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

Category<br />

Model<br />

✲ Category<br />

[clubAccepted] 0<br />

[millage] 0<br />

taxRate<br />

kind<br />

ID<br />

Abbildung 41: Product catalog modeled with HERM in the overlay modeling style<br />

Another equivalent schema may make use <strong>of</strong> cluster types. The category type has two specialisations into Car<br />

<strong>and</strong> Book subtypes. The general model properties bind these two subtypes into general model characterisations <strong>and</strong><br />

use special types for an association to specific model properties <strong>of</strong> each categories. This representation is based on<br />

horizontal decomposition <strong>of</strong> types. This representation is therefore very similar to the m-object representation.<br />

IS ADD


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

The schema in Figure 40 combines the object <strong>and</strong> the class model. The type myCopyOfHarryPotter represents<br />

a singleton class consisting <strong>of</strong> one singleton book. Furthermore, the type Porsche911GT3 uses in the class<br />

name a description <strong>of</strong> the objects in the corresponding class. If we use an overlay schema then this implicit description<br />

must be made explicit. The attribute kind is therefore added to the entity type Category in Figure 41.<br />

2.6.2 Fallen <strong>and</strong>erer Modelle: Identification<br />

The representation <strong>of</strong> object <strong>and</strong> thing identities is one <strong>of</strong> the main source for errors in schemata. It is surprising<br />

that many textbooks still follow the direct representation approach through object identities that are assigned by<br />

the system. Object identity is rather a concept at the logical layer <strong>of</strong> database operating. This approach looks very<br />

convenient. The user does not have any chance to interfere with the object identity generation.<br />

The paper [BT99] (see also [ST98]) shows that object identification must either be given by (weak) value identification<br />

[ST93] or will cause many computational problems. Otherwise a rather complex complex logical theory must<br />

be developed. [Sch94] show that we need a higher-order intutionistic predicate logic. Since object-identity allows self<br />

reference the logic must also be epistemic. The results <strong>of</strong> [BT99] <strong>and</strong> its preliminary versions e.g. [BT92], [BT95]<br />

have led the concept <strong>of</strong> object identity constraints in [RK02]. The starting point for this theory have been the reports<br />

[Tha91b] <strong>and</strong> [AFT92].<br />

Consider, for instance, the schemata in Figures 42 <strong>and</strong> 44.<br />

s<br />

✲<br />

o 1<br />

❑<br />

o 4<br />

o 5<br />

s ′<br />

s ❄ s<br />

s s<br />

s<br />

1<br />

s ′ ✯ ❨<br />

☛ s s<br />

′<br />

✌<br />

o 2 ✲ o<br />

s ◆<br />

3 a ✲ o<br />

s ◆<br />

6 ✲<br />

(a)<br />

(b)<br />

Abbildung 42: Identification in Object-Oriented Databases<br />

b<br />

The identification <strong>of</strong> the objects in Figure 43 can neither be based on structural properties nor on values. So, the<br />

user is lost whenever an object must be accessed. The question how many object exist in the database may give a<br />

result <strong>of</strong> either 3 or 4. Both are correct due to the limitations <strong>of</strong> represented knowledge about the objects.<br />

o 2<br />

s<br />

✿<br />

2<br />

s 2 2<br />

✲<br />

✻<br />

s 3<br />

3<br />

s 1 o 1 s 1<br />

o 4<br />

2 3 o ❄ s 1 s ✛<br />

s 1<br />

s<br />

s 3<br />

3 2<br />

3 ✾ s 2<br />

s 3<br />

Abbildung 43: Objects which cannot be distinguished<br />

One trick to represent object identification is to use a tree representation. The schema in Figure 44 displays a tree<br />

representation.<br />

o 1<br />

o 2<br />

o 3<br />

o j<br />

s<br />

✙<br />

o 2<br />

s s<br />

❄<br />

′ ❥<br />

! o 3 1<br />

s<br />

✙<br />

o 3<br />

s s<br />

❄<br />

′ ❥<br />

! o 1 1<br />

s<br />

✙<br />

o 1<br />

s s<br />

❄<br />

′ ❥<br />

! o 2 1<br />

s<br />

✙<br />

o j+1 mod 3<br />

s s<br />

❄<br />

❥<br />

!o j+2 mod 3 1<br />

Abbildung 44: Trees <strong>of</strong> <strong>of</strong> depth 1 for o 1 , o 2 , o 3<br />

IS ADD


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

Extended entity-relationship models explicitly define two constructs which can be implicitly used in nested relational<br />

database models:<br />

• Relationship types express the association among types. This association can be used for identification as well.<br />

• The differentiation among types allows to distinguish concepts which are defined by a certain construction<br />

<strong>and</strong> concepts which are using a certain construct. Thus, relationship types are based on entity types. Their<br />

identification mechanism is based on the identification mechanism <strong>of</strong> component types.<br />

Weak entity types, i.e. types whose identification is defined through associations, use the first extension. An entity<br />

type is defined as nested relational type. Its semantics, however can be based on other types as well. Let as consider<br />

the example pictured in figure 45.<br />

House<br />

✛<br />

(1,1)<br />

HInS ✲ Street ✛<br />

(1,1)<br />

SInT ✲<br />

Town<br />

Number Name Name Area<br />

Abbildung 45: Address defined by weak entity types<br />

We can use pathes for the identification. The dot is used for component declaration, i.e. moving downwards. The<br />

exclamation mark is used for moving upwards. For example, the attribute Number can be reached from Town using<br />

the path<br />

Town!SInT.Street!HInS.House <strong>and</strong> is denoted by<br />

Town!SInT.Street!HInS.House.Number.<br />

Thus we can use pathes for identification <strong>of</strong> objects <strong>and</strong> the extension <strong>of</strong> the notion <strong>of</strong> a key as well. In the example<br />

the key <strong>of</strong> the type House is the set<br />

{ House!HInS.Street!SInT.Town.Name, House!HInS.Street!SInT.Town.Area, House!HInS.Street.Name, Number<br />

} .<br />

This identification mechanism can be displayed by trees or forests in the general case.<br />

There can be defined other identification mechanisms. The second new construct <strong>of</strong> entity-relationship databases<br />

extends the identification concept as well. Let us consider the example in figure 46.<br />

(1,m)<br />

Multiset ✛ HasMember ✲<br />

Element<br />

MNumber<br />

OccurNr<br />

Value<br />

Abbildung 46: Complex Identification through Relationship Types<br />

Multisets are identical if they have the same elements with the same occurrence number.<br />

This condition can be expressed by generalizing the notion <strong>of</strong> key dependencies. A key dependency is a functional<br />

dependency<br />

s −→ R<br />

for a substructure s <strong>of</strong> R.<br />

This dependency can be expressed also by a first-order predicate formula<br />

∀v, v ′ (P R (v) ∧ P R (v ′ ) ∧ v R′<br />

= v ′ −→ v = R v ) .<br />

In the relational model at the external level keys are used to represent identification <strong>and</strong> existence. This idea directs<br />

to another formula which is equivalent to the above key constraint:<br />

IS ADD


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

∀v 1 | R ′′, v 2 | R ′′ ( ∀v | R ′ ( P R (v | R ′✶ v 1 | R ′′) ←→ P R (v | R ′✶ v 1 | R ′′) ) −→ v 1<br />

R ′′<br />

= v 2 )<br />

where R ′′ is the “difference” <strong>of</strong> R <strong>and</strong> R ′ .<br />

Based on this re-definition we express now the key constraints for multisets by the formula<br />

∀m, m ′ ( ( ∀e, o ( P HasMember (m, e, o) ←→ P HasMember (m ′ , e, o) ) −→ m = m ′ ) .<br />

Notice that this notion is the indiscernability relation introduced by Leibniz [Lei60].<br />

Integrity constraints can be used for identifiability as well. They can impose distinguishability or indistinguishability<br />

<strong>of</strong> objects.<br />

Samuel Clemens<br />

Mark Twain<br />

✛ name o 2<br />

✛ name o 1<br />

one-author-book<br />

✻<br />

❥✲ Huckleberry Finn<br />

o 3<br />

✻<br />

brother brother<br />

❄<br />

o 4<br />

Abbildung 47: Integrity constraints influence identifiability<br />

Let us consider the objects in Figure 47.<br />

It is known that the relation ‘brother’ is irreflexive. For this reason we find that o 3 ≠ o 4 although there is no<br />

possibility to identify one <strong>of</strong> the objects. Thus, distinguishability <strong>of</strong> objects is weaker than identifiability <strong>of</strong> objects.<br />

It can be possible to distinguish objects which cannot be identified. If objects are identifiable then the objects can be<br />

distinguished.<br />

From the other side, since the book Huckleberry Finn was written by one author the objects o 1 <strong>and</strong> o 2 can be<br />

identified.<br />

The identification concept is based in these cases on integrity constraints. We consider different classes <strong>of</strong> integrity<br />

constraints <strong>and</strong> the treatment <strong>of</strong> identification based on our concepts. We use the relational notation since this notation<br />

can be easily extended to other models.<br />

• Equality generating dependencies are constraints <strong>of</strong> the following form:<br />

∀(x 1,1 , ..., x m,n )<br />

(P R (x 1,1 , ..., x 1,n ) ∧ ... ∧ P R (x m,1 , ..., x m,n ) ∧ F (x 1,1 , ..., x m,n ) →<br />

G(x 1,1 , ..., x m,n ))<br />

where F (x 1,1 , ..., x m,n ), G(x 1,1 , ..., x m,n ) are conjunctions <strong>of</strong> equalities <strong>of</strong> the form x i,j = x i ′ ,j′ <strong>and</strong> P is the<br />

predicate symbol associated with R.<br />

Based on the transformation <strong>of</strong> the constraint to the equivalent formula<br />

∀(x 1,1 , ..., x m,n )<br />

(P R (x 1,1 , ..., x 1,n ) ∧ ... ∧ P R (x m,1 , ..., x m,n ) ∧ ¬G(x 1,1 , ..., x m,n ) →<br />

¬F (x 1,1 , ..., x m,n ))<br />

we can use the inequality set IE in order to extend the deductive system DV<br />

IE . Thus, we can express the<br />

identification properties on the basis <strong>of</strong> value-distinguishabability or equational logic in the case <strong>of</strong> equality<br />

generating dependencies.<br />

Identification extended by equality-generating dependencies can be expressed by V-identifiability.<br />

Notice, that functional dependencies <strong>and</strong> generalized functional dependencies are special equality generating<br />

dependencies.<br />

• An exclusion dependency is an expression <strong>of</strong> the form<br />

R[R.A 1 , ...., R.A n ] ‖ S[S.B 1 , ..., S.B n ] .<br />

The property specified by the exclusion dependency can be directly translated to inequalities among objects.<br />

IS ADD


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

A generalized inclusion dependency is an expression <strong>of</strong> the form<br />

R 1 [X 1 ] ∩ ... ∩ R n [X n ] ⊆ S 1 [Y 1 ] ∪ ... ∪ S m [Y m ]<br />

for compatible sequences X i , Y j .<br />

Similarily to equality-generating dependencies, generalized inclusion dependencies can be transformed to negated<br />

formulas. These formulas are the basis for the extension <strong>of</strong> the deductive system D IE<br />

V .<br />

Identification extended by generalized inclusion dependencies <strong>and</strong> exclusion dependencies can be expressed by<br />

V-identifiability.<br />

• Disjunctive existence constraints X ⇒ Y 1 , Y 2 , ..., Y n specify that if a tuple is completely defined on X then it<br />

is completely defined on Y i for some i. There is an axiomatization for disjunctive existence constraints. They<br />

can be represented by monotone Boolean functions.<br />

Since the existence has been treated explicitly in the definition <strong>of</strong> value-identifiability we conclude directly:<br />

Identification extended by existence dependencies can be expressed by V-identifiability.<br />

V-identifiability <strong>and</strong> E-identifiability are equivalent for generalized inclusion, exclusion, existence <strong>and</strong> equalitygenerating<br />

dependencies.<br />

These results extend the results <strong>of</strong> [KR97] where functional dependencies, special cases <strong>of</strong> inclusion <strong>and</strong> exclusion<br />

constraints have been considered <strong>and</strong> which summarized the results in [Tha91b], [BT92] <strong>and</strong> [BT95].<br />

Constraints can be easily used for value identification. We can use constraints also for extending the identification<br />

on the basis <strong>of</strong> queries. However this extension has to be changed whenever the inequality set is changed. Thus,<br />

integrity constraints cannot be incorporated into the computation <strong>of</strong> identifying queries. The same argument is valid<br />

for homomorphisms <strong>and</strong> automorphisms. Thus, the use <strong>of</strong> integrity constraints leads to another hierarchy in our<br />

identification mechanisms.<br />

It is possible to characterize an object without denoting it. For this purpose, queries or formulas can be used.<br />

Examples <strong>of</strong> such identifying formulas are:<br />

1. the current queen <strong>of</strong> Engl<strong>and</strong>,<br />

2. the current king <strong>of</strong> France,<br />

3. the mother (father) <strong>of</strong> x,<br />

4. the x for which it is valid x + y = z,<br />

5. the x for which it is valid x 2 = y,<br />

6. the largest prime number,<br />

7. the x for which for all y it is valid that x + y = y.<br />

The first characterization identifies an entity. The second characterization is partial. The third characterization identify<br />

an object since we know that the relation is functional. The object x can be taken as a parameter. The fourth<br />

characterization uses two parameters. This characterization can be partial. The case 6 shows that the characterization<br />

depends on existence <strong>of</strong> objects. The last characterization identifies one object based on the properties <strong>of</strong> the function<br />

+.<br />

Characterization can be based on formulas α(x, y 1 , ..., y n ) which depend on x <strong>and</strong> on n parameters y 1 , ..., y n .<br />

The formula is a characterization formula if ∃ ! x α(x) or resp. ∀y 1 ∀y n ∃ ! x α(x, y 1 , ..., y n ) is valid where<br />

by ∃ ! x we denote the unique existence <strong>of</strong> x. The characterization formula α is called essential if n = 0 <strong>and</strong><br />

non-essential otherwise.<br />

Whether such characterizations can be used depends on the provability <strong>of</strong> unique existence <strong>of</strong> such objects <strong>and</strong> on<br />

the properties <strong>of</strong> the used logical language. We notice that a special cases <strong>of</strong> unique existence are equality generating<br />

dependencies <strong>and</strong> functional dependencies.<br />

If we use integrity constraints then identification may depend also on axiomatizability <strong>of</strong> constraints defined for<br />

the database. Since there are classes <strong>of</strong> constraints which are not axiomatizable, identification may be not computable.<br />

For example, equality-generating dependencies <strong>and</strong> inclusion dependencies are not finitely axiomatizable.<br />

Names as identification.<br />

IS ADD


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

Many languages explicitly use names for identification <strong>of</strong> objects. Often names are confused with the thing they<br />

denote. The name “Stuttgart” may refer to very different objects such as the city <strong>of</strong> Stuttgart, the entry point traffic<br />

sign for Stuttgart. Names may denote references, e.g. the word “Karajan” may denote a piece <strong>of</strong> music as well as a<br />

person. L.J.J. Wittgenstein [Wit58] uses the ‘language games’ instead <strong>of</strong> the mapping from names to denotations. In<br />

general this notion is based on the mapping from names to denotations that is additionally dependent on the utilisation<br />

context, culture <strong>and</strong> the user. If we use a name 16GL for a car then we are denoting some <strong>of</strong> the properties <strong>of</strong> the<br />

car, i.e. the motor <strong>and</strong> the comfort. The mapping may be a referential one. This ‘label usage’ may cause a number <strong>of</strong><br />

confusions. It is only useful if the meaning can be uniquely deducted.<br />

The meaning <strong>of</strong> a word is typically however context-dependent. It depends on the act <strong>of</strong> denoting. This act <strong>of</strong><br />

denoting should be embedded into the complete situation (language life form). The meaning requires uniqueness<br />

or clarity <strong>of</strong> the interpretation. It typically requires preliminary knowledge <strong>and</strong> a well-assigned context. Naming<br />

is therefore related to the function units, especially the use in dependence <strong>of</strong> the function. Word denote things.<br />

Denotation is an activity. The meaning <strong>of</strong> a word is the set <strong>of</strong> denoted things under consideration.<br />

A name must have at least the three properties:<br />

• It must reliable assign the notion to the thing under consideration.<br />

• The reference must be stable.<br />

• The reference is invertible.<br />

The assignment <strong>of</strong> a name may be based on a name space. Sometime we use additionally an identification schema or<br />

a coding for the names. The identification schema may be implicit or explicit.<br />

Object<br />

appearance<br />

✛<br />

appearance<br />

Identification<br />

schema<br />

alias<br />

former usage<br />

✻<br />

Object<br />

equivalence<br />

✲ ❄<br />

Object ✛<br />

✲<br />

✰ ✰<br />

Name<br />

✲<br />

Name<br />

space<br />

Abbildung 48: The explicit representation <strong>of</strong> names<br />

Amalgamation <strong>of</strong> identification.<br />

Object have their own history. They may be copied, replaced, updated <strong>and</strong> deleted. If we are interested in maintaining<br />

the original object whenever the object obtains new properties then we need either an explicit representation <strong>of</strong><br />

the history <strong>of</strong> objects or an explicit replacement mechanism. The simplest replacement mechanism is the introduction<br />

<strong>of</strong> aliasing schemata. The most rigid replacement schema is the liquidation <strong>of</strong> the older identification. We might also<br />

use the data type Alias or Former usage in Figure 48 that explicitly stores all name changes.<br />

The same problem appears if we can observe the same thing in various beings <strong>and</strong> appearances. Observations<br />

are typically made by people who might classify the same thing in a different way. Therefore we can additionally<br />

introduce the appearance into the schema. This appearance notion is based on the sponsor-selector pattern that<br />

separates the three fundamentally different responsibilities: recommending a resource, selecting among resources,<br />

<strong>and</strong> using a resource.<br />

Furthermore, objects observed may be equivalent to each other based on a notion <strong>of</strong> equivalence. This notion<br />

should be stored whenever complex evaluations are going to be made. The equivalence schema is important for<br />

almost all aggregations if we are interested in well-founded statistics. We can use the mediator pattern for an<br />

explicit annotation <strong>of</strong> the equivalence notion.<br />

IS ADD


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

Dimension<br />

Type<br />

2.7 Conceptual ✻ Modelling in the Large<br />

see ER 2010 tutorial<br />

Dimension<br />

OfType<br />

[Reason]<br />

FromDate<br />

ThruDate<br />

[Quantity]<br />

Br<strong>and</strong><br />

Name<br />

Product<br />

Type<br />

Product<br />

Quality<br />

UOM<br />

UnitOf<br />

Measure<br />

2<br />

Product<br />

Obsolesence<br />

Product<br />

Substitute<br />

Consists<br />

Of<br />

Identification<br />

Type<br />

Item<br />

Variant<br />

✮<br />

Party<br />

Address<br />

✛<br />

✲<br />

■<br />

❦<br />

2<br />

✛<br />

may be<br />

converted in<br />

Conversion<br />

Factor<br />

AReplacementNeededFor<br />

SuperceededBy<br />

[Comment]<br />

[Instruction]<br />

[Comment]<br />

[QuantityUsed]<br />

ThruDate<br />

FromDate<br />

❥ ❥ ❘<br />

✲<br />

✲<br />

By UsedAs<br />

Additional Identifier<br />

(ManifacturerID |<br />

StockKeepingUnit |<br />

UniversalProductCode<br />

(American UPCA | European UPCE) |<br />

IntSt<strong>and</strong>BookNumb ISBN))<br />

Id TypeCode Description<br />

PhysicalInventoryDate<br />

Quantity<br />

Reason<br />

[Comment]<br />

Dimension<br />

❑<br />

Converted<br />

❘<br />

✻<br />

✻<br />

Inventory<br />

Item ⊕<br />

❄<br />

Container<br />

⊕<br />

Product ✙<br />

Characteristic<br />

❄<br />

Product<br />

✲<br />

Color<br />

✻<br />

✻<br />

Code<br />

Description<br />

❘ Product<br />

Characterized<br />

WorkIn<br />

Progress<br />

Container<br />

Type<br />

Other<br />

Characteristic<br />

✕<br />

Base<br />

Product<br />

Price<br />

Discount<br />

Component<br />

PriceSequenceNum<br />

Specified<br />

For<br />

Surcharge<br />

Component<br />

MadeUpOf<br />

ProdCode Name [Comment]<br />

[IntroductionDate]<br />

[SalesDiscontinuationDate]<br />

[SupportDiscontinuationDate] [ManufSuggestRetailPrice]<br />

UsedIn<br />

WarehousedAt<br />

Id<br />

Organization<br />

Raw<br />

Material<br />

Additional<br />

✾<br />

❂<br />

Item<br />

✛ Item ✛<br />

Finished<br />

Good<br />

Identification<br />

Item<br />

Shrinkage ✲<br />

Overages<br />

[ReorderQuantity]<br />

[ReorderLevel]<br />

PhysicalOccurenceOf<br />

StorageFor<br />

SerialNumber<br />

QuantityOnH<strong>and</strong><br />

Id<br />

✻<br />

ID<br />

[ThruQuantity]<br />

Service<br />

FromQuantity<br />

❄<br />

Quantity<br />

Price<br />

Component<br />

Break Type<br />

✻ ✕ ❃<br />

Discount<br />

Level<br />

❯<br />

❫ Product<br />

Component<br />

Price<br />

✗<br />

Code<br />

✠<br />

✛<br />

✻<br />

Priced<br />

By<br />

Prod<br />

Category<br />

Class<br />

❄<br />

Product<br />

Category<br />

Used To<br />

Define<br />

[ThruDate]<br />

[Price]<br />

FromDate<br />

[Percent]<br />

[Comment]<br />

[Comment]<br />

AvailableTruDate<br />

❘<br />

✌<br />

Product<br />

Supplier<br />

FromDate<br />

FromDate<br />

Description<br />

✛<br />

Costed<br />

By<br />

Producer<br />

Of<br />

[ThruDate]<br />

[Comment]<br />

PrimaryFlag<br />

[ThruDate]<br />

Code<br />

CompTypeCode<br />

Description<br />

Purchaser<br />

Of<br />

Location<br />

UsedToDefine<br />

Estimated<br />

Product<br />

Cost<br />

Market<br />

Interest<br />

❄<br />

Party<br />

Type<br />

✿<br />

Product<br />

Supplier<br />

✲ RatingType<br />

❘<br />

✒<br />

OptionalComponent<br />

DependentOn<br />

Supplier<br />

Cost<br />

RatingTypeCode<br />

❫<br />

✲<br />

Name<br />

FromDate<br />

Comment<br />

Description<br />

PartyTypeCode<br />

Party<br />

Type<br />

Description<br />

GeoAreaCode<br />

Geographic<br />

Boundary<br />

Name<br />

FromDate<br />

[ThruDate]<br />

PrefTypeCode<br />

Product<br />

Supplier<br />

Preference<br />

Description<br />

Description<br />

[TaxIdNum]<br />

UsedTo<br />

Define<br />

[ThruDate]<br />

From<br />

Id<br />

Code<br />

Description<br />

Abbildung 49: Pattern for Products<br />

IS ADD


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

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

überführt.<br />

Compilierung: Eine Transformation kann zu Schemata führen, die ein ungünstiges Verhalten haben. Deshalb wird<br />

<strong>of</strong>t von einem Entwerfer erwartet, daß er nach einer Übersetzung das Zielschema ‘glättet’. Ein Compilierungszugang<br />

dagegen 3 berücksichtigt Eigenschaften der Zielsprache bei der Übersetzung mit. Übersetzer können<br />

wie ein klassischer Compiler 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<br />

Konzeptualisierung. Sie können bereits in diesem Schritt angew<strong>and</strong>t werden. Da wir uns hier jedoch vollständig auf<br />

den konzeptionellen Entwurf konzentrieren und nicht mit mehreren Entwurfsmodellen und -sprachen den Entwerfer<br />

verwirren wollen, dient die folgende Darstellung der Transformationstechniken nur dem Verständnis der folgenden<br />

Schritte. Erst im letzten Schritt wenden wir eine Transformation an. Dadurch wird gesichert, daß sich der Entwerfer<br />

nur mit einem Modell beschäftigen muß. Er kann die Transformation am Ende als vollständig automatisierbares<br />

Verfahren anwenden, ohne gezwungen zu sein, das physische oder das logische Schema im Detail zu betrachten.<br />

Spätere Änderungen oder Anpassungen sind dadurch stets auf konzeptionellen Niveau darzustellen. Dieser Vorteil<br />

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

nach<br />

ER-Modellen: Es gibt eine Vielzahl von erweiterten Entity-Relationship-Modellen. Meist sind jedoch nur strukturelle<br />

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

z.B. durch Transaktionen zu. Andere dagegen erlauben keine Operationen. Aufgrund der Integritätserzwingungsmechanismen,<br />

die in Kapitel ?? bereits entwicklet wurden, sind generische Operationen bereits<br />

modelliert. Darüber hinausgehende Mechanismen können angew<strong>and</strong>t werden.<br />

Entwerferinteraktion: Einige Transformationstechniken sind nichtdeterministisch und lassen eine direkte Interaktion<br />

mit dem Entwerfer zu.<br />

Übersetzungsvoraussetzungen: Oft setzen Übersetzungen spezifische Normalformen voraus. Weiterhin werden<br />

<strong>of</strong>t Metaannahmen (unique-name-assumption u.a.) vorausgesetzt.<br />

Erhaltung der gesamten Entwurfsinformation: Es ist möglich, die gesamte Entwurfsinformation in das logische<br />

Zielmodell zu transformieren. Meist fehlt aber eine Umsetzung in ein physischen Modell, so daß darauf auch<br />

für physische Modelle verzichtet werden muß.<br />

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

Qualität des Zielschemas: Durch eine Reihe von Zugängen kann ein minimales, normalisiertes oder nichtredundantes<br />

Schema für verschiedene Arten von Ausgangsschemata erreicht werden.<br />

Mod IS IS ADD WebIS


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

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

im Schlüssel vorkamen, wird dann eine mehrwertige Abhängigkeit generiert und der Schlüssel verändert<br />

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

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

Typen in ersten Typ) des Primärschl¨ssels des <strong>and</strong>eren Typen, sowie der Attribute des Relationship-<br />

Typen (Einfügen eines Fremdschlüssels)<br />

• Definieren eines separaten Relationenschemas mit Primärschlüssel der Komponenten und Attributen<br />

des Relationship-Typen<br />

• Zusammenfügen der beiden Relationenschemas unter Beifügung der entsprechenden Relationship-<br />

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

Typen in ersten Typ) des Primärschl¨ssels des <strong>and</strong>eren Typen, sowie der Attribute des Relationship-<br />

Typen (Einfügen eines Fremdschlüssels)<br />

• Definieren eines separaten Relationenschemas mit Primärschlüssel der Komponenten und Attributen<br />

des Relationship-Typen<br />

Mod IS


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

• Zusammenfügen der beiden Relationenschemas unter Beifügung der entsprechenden Relationship-<br />

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

Typen in ersten Typ) des Primärschl¨ssels des <strong>and</strong>eren Typen, sowie der Attribute des Relationship-<br />

Typen (Einfügen eines Fremdschlüssels)<br />

• Definieren eines separaten Relationenschemas mit Primärschlüssel der Komponenten und Attributen<br />

des Relationship-Typen<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)...-<br />

Typen in ersten Typ) des Primärschl¨ssels des <strong>and</strong>eren Typen, sowie der Attribute des Relationship-<br />

Typen (Einfügen eines Fremdschlüssels)<br />

• Definieren eines separaten Relationenschemas mit Primärschlüssel der Komponenten und Attributen<br />

des Relationship-Typen<br />

• n:m -Relationship-Typen<br />

Definieren eines separaten Relationenschemas mit Primärschlüssel der Komponenten und Attributen des<br />

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

Typen in ersten Typ) des Primärschl¨ssels des <strong>and</strong>eren Typen, sowie der Attribute des Relationship-<br />

Typen (Einfügen eines Fremdschlüssels)<br />

• Definieren eines separaten Relationenschemas mit Primärschlüssel der Komponenten und Attributen<br />

des Relationship-Typen<br />

• Zusammenfügen der beiden Relationenschemas unter Beifügung der entsprechenden Relationship-<br />

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

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

des <strong>and</strong>eren Typen (Einfügen eines Fremdschlüssels) unter Beibehaltung der Rollennamen<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 212<br />

Der Algorithmus nach Lipeck/Kleiner:<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 213<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 />

Mod IS


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 214<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 />

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

Mod IS


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

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

hält<br />

✲<br />

Vorlesung<br />

und nur jeweils ein Membertyp zugelassen; damit dann graphische Repräsentation durch Bachman-Diagramme<br />

Settyp ist kein Mengentyp !! Codasyl empfiehlt Liste !!<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 />

Mod IS


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

• rekursive Relationship-Typen<br />

• IsA-Relationship-Typen<br />

• z.T. 1-1-Beziehungen<br />

• Cluster<br />

Folgende Strukturen können im wesnetlichen 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 />

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

Tupelnestung wird verflacht<br />

Integritätsbedingungen sind Programmiereraufgabe bis auf:<br />

Domain-Bedingungen: mit CHECK-Klausel<br />

Mod IS


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

Vorlesung<br />

setzt<br />

voraus IsA<br />

❄ ❄<br />

Dummy<br />

Vorlesung<br />

wird vorausgesetzt<br />

von IsA<br />

✻<br />

❄<br />

Vorausges<br />

Vorlesung<br />

Vorlesung<br />

✻ wird vorausgesetzt<br />

von<br />

✻<br />

IsA<br />

Vorausges<br />

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

2.8.2 Intelligente Übersetung durch Beachtung der Spezifika von HERM-Schemata<br />

Spezifika der Struktur-Übersetzung von HERM-Schemata.<br />

Beobachtung 1.<br />

Es können komplexe Attribute auch eine harmonisierte Übersetzung <strong>and</strong>erer komplexer Attribute erfordern.<br />

Beispiel:<br />

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

Adresse(PlzBezirk ◦ Zustellamt, Ort, ...)<br />

erfordert Harmonisierung der Übertragung beider Attribute, da diese über Primärschlüssel gekoppelt sind<br />

Beobachtung 2.<br />

Die bisherigen Übersetzungsregeln sind nur Interpretationsregeln, die induktiv über dem Schemaaufbau definiert<br />

sind und nicht die Möglichkeiten von SQL92 und SQL:1999 unterstützen.<br />

Ein compilierender Zugang wird i.a. besser sein.<br />

Übersetzungsregeln in SQL:1999 nach S. Schoradt:<br />

1. Datensammelnde Regeln<br />

Für die Transformation eines Typen werden <strong>Information</strong>en benötigt, die am Typen direkt anliegen, sich aus den<br />

Verbindungen zu <strong>and</strong>eren Typen ergeben oder aber aus <strong>and</strong>eren Typen bezogen werden müssen.<br />

Da die Übersetzungsregeln, der Übersichtlichkeit halber, nur lokal auf einem Typen des Schemagraphen wirken<br />

sollen, werden durch Regeln zur Datensammlung die notwendigen Daten zur Tranformation der Typen zusammengetragen.<br />

Dies können z. B. die Notwendigkeit der Erstellung eines Surrogatschlüssels zu einer Entitytypen<br />

oder das Hinzufügen von Integritätsbedingungen zu einem Typen sein.<br />

(a) Erstellen von Surrogatschlüsseln<br />

Das Erstellen von Surrogatschlüsseln ermöglicht es Objekte, die in der konzeptionellen Sicht nur auf<br />

sehr komplexe Art zu identifizieren sind, in einem DBMS zu verwalten. Hierzu wird zu dem Objekt ein<br />

atomares Attribut hinzugefügt, das als neuer Schlüssel für das Objekt fungiert. Die existierende Schlüsselbeziehung<br />

wird weiterhin mitgeführt und gepflegt, dient aber nicht mehr der Identifikation der Instanzen<br />

des Objektes. Der Surrogatschlüssel zu einem Objekt sollte vom DBMS gepflegt werden, so das die<br />

darüberliegende Applikation diese technische Veränderung des Schemas nicht beachten muss.<br />

Dies kann durch Mittel des DBMS zum generieren eindeutiger Objektschlüssel geschehen oder aber durch<br />

die Erzeugung eines Schlüssels in einem Trigger zum Objekt.<br />

Durch diese Regel wird zu jeder Entity-Typen oder Relationship-Typen, die Komponente einer Relation<br />

oder eines Clusters ist, ein Surrogatschlüssel angelegt. Mittels diesem wird im Weiteren die Implementation<br />

der Relation und die Pflege der damit verbundenen Integritätsbedingungen realisiert.<br />

(b) Optimierung der Schemastruktur<br />

Bei der Übersetzung von Schemata kann es notwendig sein das Schema strukturell zu verändern, um ein<br />

optimales Ergebnis zu erzielen. Eine häufig genutzte Optimierungsvariante ist das Auflösen von Relationen<br />

mit der Kardinalitätsbeschränkung (1, 1) oder (0,1).<br />

Über den Controller wird festgelegt, ob für (1,1)-(0,1)-Relationship-Typen condense zu einem zusammenhängenden<br />

Typen, reference oder stay alone angestoßen wird.<br />

(c) Integritätsbedingungen<br />

Oftmals sind Integritätsbedingungen indirekt im konzeptionellen Schema kodiert. Um diese bei der Transformation<br />

zu beachten, müssen sie zur Menge der Integritätsbedingungen eines Typen hinzugefügt werden.<br />

IS ADD


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

Diese Regeln weisen zum Einen die Komponenten einer Relation als Schlüssel aus, falls noch nicht<br />

geschehen und vergeben für alle Relationen deren Kardinalität nicht spezifi- ziert ist die Kardinalitätsbeschränkung<br />

(0,n).<br />

2. Elementare Transformationen<br />

An dieser Stelle sollen für die einzelnen Schemaelemente elementare Übersetzungsregeln angegeben werden.<br />

Diese W<strong>and</strong>eln einen Typen in eine SQL Anweisung oder einen Anweisungsteil um.<br />

Die Transformationen, die in diesen Regeln verw<strong>and</strong>t werden, stammen grösstenteils aus [Tha00] und wurden<br />

an die Möglichkeiten von SQL:1999 und den entworfenen Übersetzungsprozess angepasst.<br />

(a) Regeln für Domaintypen<br />

Jeder Domaintyp im Schemagraph repräsentiert eine Domäne aus dem HER Schema. Diese sind durch die<br />

Menge aller erlaubten Elemente beschrieben und müssen durch die Transformation auf die vorh<strong>and</strong>enen<br />

SQL Datentypen abgebildet werden.<br />

SQL:1999 kennt Datentypen der Kategorien:<br />

• Zeichendaten<br />

• numerische Daten<br />

• Wahrheitswerte<br />

• Datumswerte<br />

Die richtige Transformation der Domains in SQL Datentypen wird durch die Kombination von Transformationsregel<br />

und Bewertungsfunktion erreicht.<br />

(b) Regeln zur Beh<strong>and</strong>lung von Attributtypen<br />

Bei den AttributTypen hängt die Anwendung einer Regel von ihrem Konstruktor und den globalen Parametern<br />

für die Attributtransformation ab.<br />

Für die komplexen Attribute sind mehrere Möglichkeiten für die Transformation vorh<strong>and</strong>en:<br />

• verflachen des Attributs durch Transformation in eine Zeichenkette mit Trennzeichen<br />

• einführen von Blattattributen, z. B. wird ein Tupelattribut Name(vname,nname) in die Attribute Name.vname<br />

und Name.vname transformiert<br />

• erstellen eines eigenen Subschemas<br />

• als komplexes Attribut belassen<br />

In SQL:1999 ergibt sich weiterhin die Möglichkeit komplexe Attribute in komplexe Datentypen zu transformieren.<br />

Diese Option wurde soweit möglich verfolgt, um die Möglichkeiten von SQL:1999 auszunutzen.<br />

Bei der Transformation von Tupeltypen, kann als Implementation ein ROW Typ verw<strong>and</strong>t werden.<br />

Mengentypen werden rekursiv, anh<strong>and</strong> ihrer Struktur, transformiert. Es existieren mehrere Möglichkeiten<br />

Mengen in einer Datenbank zu repräsentieren, hier soll dies durch das Erstellen einer Tabelle zu jeder<br />

Menge geschehen. Zur Transformation eines mengenwertigen Attributs muss zuerst der Inhalt der Menge<br />

transformiert werden und danach das Attribut in eine Tabelle und eine Referenz in die Mengentabelle<br />

transformiert werden.<br />

(c) Transformation der Entity-Typen<br />

Die Transformation eines Entity-Typen kann erfolgen wenn alle enthaltenen Attribut-Typen transformiert<br />

wurden.<br />

(d) Transformation von Relationship-Typen<br />

Die Transformation eines Relationship-Typen kann erfolgen wenn alle Attribute und alle enthaltenen<br />

Objekte transformiert wurden.<br />

Hierzu müssen die enthaltenen Relationen und Entityen in Fremdschlüsselbeziehungen umgew<strong>and</strong>elt<br />

werden. Die enthaltenen Attribute werden analog zur Transformation eines Entity-Typen beh<strong>and</strong>elt.<br />

IS ADD


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

(e) Transformation von Cluster-Typen<br />

Ein Cluster-Typ wird transformiert nachdem alle enthaltenen Relationen bzw. Entityen transformiert wurden.<br />

Der Cluster C = R1 + R2 + . . . + Rn wird in eine Referenz auf die Surrogatschlüssel der enthaltenen<br />

Relationen transformiert, ohne aber mittels einer Fremdschlüsselbeziehung abgesichert zu werden.<br />

Spezifika der Semantik-Übersetzung von HERM-Schemata.<br />

Beobachtung 3.<br />

Weder SQL’92 noch SQL:1999 erlauben eine vollständige direkte Übertragung von Integritätbedingungen.<br />

Es können Integritätsbedingungen auf unterschiedliche Art übertragen werden:<br />

• Restrukturierung des Schemas bis eine vollständige Übertragung unterstützt wird.<br />

• Deklarative Spezifikation der Integritätsbedingungen.<br />

• Prozedurale Spezifikation der Integritätsbedingungen.<br />

• Abbildung der Integritätsbedingungen in eine Wirtssprache<br />

• Zusätzliche integritätsbedingungssichernde Maßnahmen<br />

• Sicherstellung durch Benutzungsschnittstellen<br />

• Sicherstellung durch Ausnahmebeh<strong>and</strong>lung<br />

• Generierung und Benutzung von sicheren integritätspflegenden Funktionen anstelle der nicht invarianten<br />

Funktionen<br />

• Verwaltung von Integritätsverletzungen durch das System<br />

• Transaktionssysteme<br />

• ...<br />

MATCH-Bedingungen.<br />

SQL-92 erlaubt unterschiedliche MATCH-Bedingungen:<br />

• einfach als nicht spezifiziertes “default” und Anwendung auf alle Tupel t über Attributliste X mit t[X]!, d.h.<br />

über Teilmenge {t ∈ R C | ∀A ∈ X : t(A) ≠ NULL} ,<br />

d.h. z.B. für R[X] ⊆ S[Y ], X = A 1 ...A k , und Y = B 1 ...B k wird die Bedingung<br />

∀t ∈ R C ( (∃i (1≤i≤k) t(A i ) = NULL) ∨ ∃s ∈ S C (t[X] = s[Y ]))<br />

• FULL wird angew<strong>and</strong>t auf alle Tupel, die nicht das NULL-Tupel sind, wobei dann Nullwerte nicht erlaubt sind,<br />

d.h. z.B. für R[X] ⊆ S[Y ], X = A 1 ...A k , und Y = B 1 ...B k wird die Bedingung<br />

∀t ∈ R C ( ∀i (1≤i≤k) (t(A i ) = NULL) ∨<br />

(∀i (1≤i≤k) (t(A i ) ≠ NULL) ∧ ∃s ∈ S C (t[X] = s[Y ])))<br />

• PARTIAL wird angew<strong>and</strong>t auf alle Tupel t, deren X-Wert nicht das NULL-Tupel ist, wobei in der Kontrollmenge<br />

eine Gleichheit bis auf Nullwerte in t[X] besteht,<br />

d.h. z.B. für R[X] ⊆ S[Y ], X = A 1 ...A k , und Y = B 1 ...B k wird die Bedingung<br />

∀t ∈ R C ( ∀i (1≤i≤k) (t(A i ) = NULL) ∨<br />

∃s ∈ S C (∀i (1≤i≤k) (t(A i ) = NULL ∨ t(A i ) = s(B i ))))<br />

wobei diese Bedingung äquivalent ist zu<br />

∀t ∈ R C (∃s ∈ S C (∀i (1≤i≤k) (t(A i ) = NULL ∨ t(A i ) = s(B i )))) .<br />

IS ADD


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

FULL kann auch direkt ausgedrückt werden durch:<br />

CHECK (<br />

(A1 IS NULL AND ... AND Ak IS NULL)<br />

OR<br />

( A1 IS NOT NULL AND ... AND Ak IS NOT NULL<br />

AND A1,...,Ak<br />

IN SELECT B1 ... Bk FROM S ))<br />

PARTIAL ist auch darstellbar durch eine Fallunterscheidung je nach vorkommenden Nullwert im referenzierendem<br />

Tupel:<br />

CHECK (<br />

(A1 IS NULL AND ... AND Ak IS NULL)<br />

OR<br />

( A1 NULL AND A2 IS NOT NULL ... AND AK IS NOT NULL<br />

AND A2,...,Ak<br />

IN SELECT B2 ... Bk FROM S )<br />

OR ... OR<br />

( A1 IS NOT NULL ... AND A(k-1) IS NOT NULL AND AK IS NULL<br />

AND A1,...,A(k-1)<br />

IN SELECT B1 ... B(k-1) FROM S )<br />

OR ... OR<br />

( A1 IS NULL AND ... A(k-1) IS NULL AND AK IS NOT NULL<br />

AND Ak<br />

IN SELECT Bk FROM S )<br />

)<br />

Ausführungsmodi.<br />

SQL-92 hat bereits Asuführungsmodi eingeführt:<br />

DEFERRED<br />

IMMEDIATE<br />

kann.<br />

erlaubt das Aufschieben eine Kontrolle der Integritätsbedingungen bis zum Ende einer Transaktion.<br />

fordert die Kontrolle einer Integritätsbedingung für jede Anweisung, mit der diese verletzt werden<br />

Diese Ausführungsmodi können gesetzt werden auf einen initialen Modus, der dann auch ggf. überschrieben werden<br />

kann. Damit erhalten wir:<br />

INITIALLY IMMEDIATE NOT DEFERABLE ist die default-Bedingung für Integritätsbedingungen.<br />

Diese Bedingung kann auch durch NOT DEFERABLE INITIALLY IMMEDIATE deklariert werden.<br />

INITIALLY DEFERRED NOT DEFERABLE Diese Bedingung kann auch durch NOT DEFERABLE INITIALLY<br />

DEFERRED deklariert werden.<br />

INITIALLY DEFERRED DEFERABLE Diese Bedingung kann auch durch DEFERABLE INITIALLY DEFERRED<br />

deklariert werden.<br />

INITIALLY IMMEDIATE DEFERABLE sollte stets für alle Bedingungen deklariert werden, die mit Transaktionen<br />

ggf. verletzt werden können. Diese Bedingung kann auch durch DEFERABLE INITIALLY IMMEDIATE<br />

deklariert werden.<br />

Der Ausführungsmodus kann umgesetzt werden mit<br />

bzw.<br />

SET CONSTRAINTS name list IMMEDIATE<br />

IS ADD


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

bzw.<br />

bzw.<br />

SET CONSTRAINTS name list DEFERRED<br />

SET CONSTRAINTS ALL IMMEDIATE<br />

SET CONSTRAINTS ALL DEFERRED<br />

Deklarative Spezifikation mit CHECK-Bedingungen.<br />

CHECK-Bedingungen werden definiert<br />

• auf Attributniveau zu den Werten dieses Attributes,<br />

• auf Tabellenniveau für jedes einzelne Tupel der Relation, wobei hier auch subselect erlaubt sind und<br />

• über den Umweg der Defintion mit Assertions.<br />

Deklarative Spezifikation mit ASSERTION.<br />

ASSERTION ist eine Schema-Bedingung. Sie ist jedoch relativ selten realisiert. Oracle erlaubt z.B. nicht die<br />

Spezifikation.<br />

CREATE ASSERTION Institut<br />

CHECK (Bedingung);<br />

Sie wird immer dann aktiviert, wenn die Klassen zu den verwendeten Tabellen modifiziert werden.<br />

CREATE TABLE Fakultaet (<br />

...<br />

Nummer FakNr PRIMARY KEY,<br />

.. );<br />

CREATE ASSERTION AssignFakultaet<br />

CHECK (NOT EXISTS (<br />

SELECT *<br />

FROM Institut<br />

WHERE FakNr IS NULL)<br />

);<br />

CREATE ASSERTION AnzahlInstZuFak<br />

CHECK (<br />

(SELECT COUNT(*) FROM Fakultaet)


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

CREATE OR REPLACE TRIGGER TriggInstitutFakult<br />

AFTER INSERT ON Institut<br />

FOR EACH ROW<br />

WHEN (new.Fakultaet NOT IN<br />

(SELECT Nummer FROM Fakulataet))<br />

BEGIN<br />

INSERT INTO Fakultaet (Nummer)<br />

VALUES (:new.Fakultaet);<br />

END;<br />

.<br />

run<br />

Folgende Besonderheiten sollten beachtet werden:<br />

• OR REPLACE kann auch nicht spezifiziert werden. Sollte jedoch bereits ein Trigger existieren, dann ist dies<br />

ein Fehler.<br />

• AFTER kann auch ersetzt werden durch BEFORE .<br />

• Wird der Trigger für eine Sicht spezifiziert, dann kann auch anstelle von AFTER der Ersatz durch INSTEAD OF be<br />

nutzt werden. Damit kann auch eine Sicht modifiziert werden.<br />

• Anstelle von INSERT kann auch DELETE oder UPDATE OF verwendet werden.<br />

• FOR EACH ROW kann man auch weglassen. In diesem Fall wird der Trigger nur einmal für jede Modifikationsmenge<br />

zur Relation angew<strong>and</strong>t.<br />

• Die Variablen new und old repräsentieren den Zust<strong>and</strong> nach bzw. vor Anwendung der Modifikationsoperation.<br />

Bei Verwendung der Variablen in Anfragen ist der Doppelpunkt erfoderlich ( :new.Fakulataet ).<br />

• Die Aktionen sind Anweisungen des Systemes. Mitunter sind sie verschieden in verschiedenen Systemen.<br />

• Durch den Punkt wird die Triggerdefinition abgelegt mit einem run .<br />

• Oracle erlaubt keine Veränderung einer Relation, deren Trigger feuert, sowie auch von assoziierten Relationen<br />

(z.B. über Fremdschlüssel).<br />

Trigger in Sybase<br />

Eine Integritätsbedingung als Sybase-Trigger in unserem Beispiel wird z.B. wie folgt beschrieben<br />

create trigger tI_eingeschriebenIn on eingeschriebenIn for INSERT as<br />

begin<br />

declare @numrows int,<br />

@nullcnt int,<br />

@validcnt int,<br />

@errno int,<br />

@errmsg varchar(255)<br />

select @numrows = @@rowcount<br />

if<br />

update(MatrNr)<br />

begin<br />

select @nullcnt = 0<br />

select @validcnt = count(*)<br />

IS ADD


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

from inserted,Student<br />

where<br />

inserted.MatrNr = Student.MatrNr<br />

if @validcnt + @nullcnt != @numrows<br />

begin<br />

select @errno = 30002,<br />

@errmsg = ’Cannot INSERT eingeschriebenIn because Student does not exist.’<br />

goto error<br />

end<br />

end<br />

return<br />

error:<br />

raiserror @errno @errmsg<br />

rollback transaction<br />

end<br />

go<br />

Trigger in Oracle<br />

Analog wird ein Trigger mit Oracle deklariert, mit dem ein Update in <strong>and</strong>eren Relationen erzwungen wird:<br />

create trigger tI_eingeschriebenIn<br />

after INSERT<br />

on EingeschriebenIn<br />

for each row<br />

declare numrows INTEGER;<br />

begin<br />

/* ON CHILD INSERT CASCADE */<br />

insert into Student (MatrNr)<br />

select MatrNr<br />

from EingeschriebenIn<br />

where<br />

not exists (<br />

select * from Student<br />

where<br />

:new.MatrNr = Student.MatrNr<br />

);<br />

end;<br />

/<br />

create trigger tD_EingeschriebenIn<br />

after DELETE<br />

on EingeschriebenIn<br />

for each row<br />

declare numrows INTEGER;<br />

begin<br />

/* ON CHILD DELETE RESTRICT */<br />

select count(*) into numrows from Student<br />

where<br />

:old.MatrNr = Student.MatrNr;<br />

if (numrows > 0)<br />

then<br />

raise_application_error(<br />

-20010,<br />

’Cannot DELETE EingeschriebenIn because Student exists.’<br />

);<br />

IS ADD


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

end if;<br />

end;<br />

/<br />

create trigger tU_EingeschreibenIn<br />

after UPDATE<br />

on EingeschriebenIn<br />

for each row<br />

declare numrows INTEGER;<br />

begin<br />

/* ON CHILD UPDATE RESTRICT */<br />

select count(*) into numrows<br />

from StarkerTyp<br />

where<br />

:new.MatrNr = Student.MatrNr;<br />

if (<br />

numrows = 0<br />

)<br />

then<br />

raise_application_error(<br />

-20007,<br />

’Cannot UPDATE EingeschriebenIn because Student does not exist.’<br />

);<br />

end if;<br />

end;<br />

/<br />

create trigger tD_Student<br />

after DELETE<br />

on Student<br />

for each row<br />

declare numrows INTEGER;<br />

begin<br />

/* ON PARENT DELETE RESTRICT */<br />

select count(*) into numrows<br />

from einfachabhangig<br />

where<br />

EingeschriebenIn.MatrNr = :old.key;<br />

if (numrows > 0)<br />

then<br />

raise_application_error(<br />

-20001,<br />

’Cannot DELETE Student because EingeschriebenIn exists.’<br />

);<br />

end if;<br />

end;<br />

/<br />

/* Student ON PARENT UPDATE CASCADE */<br />

/* Student ON CHILD DELETE RESTRICT */<br />

/* Student ON CHILD INSERT CASCADE */<br />

/* Student ON CHILD UPDATE RESTRICT */<br />

Trigger in PostgreSQL<br />

Trigger könne in PostgreSQL durch Funktionen realisiert werden, die die neue RECORD Variable nutzen:<br />

IS ADD


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

• Es wird die Funktion deklariert.<br />

• Der Trigger benutzt die Funktion.<br />

Funktionendefinition:<br />

CREATE FUNCTION trigger_insert_update_relName()<br />

RETURNS opaque<br />

AS<br />

’BEGIN<br />

IF ...<br />

THEN RAISE EXCEPTION ’’Mitteilung an alle’’;<br />

END IF;<br />

RETURN new;<br />

END;’<br />

LANGUAGE ’plpgsql’;<br />

Damit kann nun der Trigger spezifiziert werden:<br />

CREATE TRIGGER tr_relName<br />

BEFORE INSERT OR UPDATE<br />

ON relName<br />

FROR EACH ROW<br />

EXECUTE PROCEDURE<br />

trigger_insert_update_relName()<br />

;<br />

Zusammenfassende Übersicht.<br />

Art SQL-92 SQL-99<br />

Entry Level Intermediate Level Full Level<br />

Primary immer s<strong>of</strong>ort immer s<strong>of</strong>ort<br />

key, domain<br />

constraints<br />

Unique NOT NULL, immer<br />

constraints s<strong>of</strong>ort<br />

Referential MATCH wird nicht MATCH wird nicht<br />

constraints unterstützt<br />

unterstützt<br />

Check- ohne subquery ohne subquery<br />

Bedingungen<br />

Assertions nicht unterstützt nicht unterstützt<br />

2.8.3 Allgemeine Grundlagen der Erzwingung von Integritätsbedingungen<br />

In SQL 99 bestehen mehrere Möglichkeiten Integritätsbedingungen auszudrücken und zu erzwingen. Diese sind<br />

• Tabellenbedingungen, wie PRIMARY KEY, UNIQUE oder CHECK Beschränkungen<br />

• Ausnahmen (Assertion), die einen unerwünschten Zust<strong>and</strong> in der Datenbank verhindern<br />

• Trigger, die ermöglichen auf Datenbankoperationen zu reagieren<br />

IS ADD


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

Tabellenbedingungen, wie PRIMARY KEY, UNIQUE oder CHECK können nur über den Daten einer Tabelle formuliert<br />

werden. Dies macht sie für die meisten der benötigten Integritätsbedingungen nur bedingt nutzbar.<br />

Komplexere Bedingungen können mittels Ausnahmen (Assertions) oder Trigger beschrieben werden.<br />

Bei einer Ausnahme, wird ein erwünschter Datenbankzust<strong>and</strong> beschrieben, und es wird von der Datenbank nach<br />

jeder datenverändernden Aktion garantiert, das dieser noch erfüllt wird. Wird der Zust<strong>and</strong> nicht erfüllt, so wird die<br />

Aktion abgelehnt. Durch Trigger kann nach einer datenverändernden Aktion individuell reagiert werden.<br />

Schlüsselbedingungen: Die Beh<strong>and</strong>lung von HER Schlüsselbedingungen kann auf zwei Arten erfolgen. Zum einen<br />

durch eine statische UNIQUE Bedingung über den Schlüsselfeldern der erstellten Tabelle oder aber durch eine<br />

Ausnahmebeh<strong>and</strong>lung mittels ASSERTION.<br />

Die Auswahl des geeigneten Mittels hängt von der Komplexität des Schlüssels ab. Schlüssel im HER Ansatz<br />

werden als generalisierte Untermengen [Tha91, S. 7] der Attributmenge eines Entity-Typs beschrieben. Diese<br />

können nur auf die Schlüsselbedingungen in SQL abgebildet werden, wenn die Untermenge nur aus atomaren<br />

Attributen des Entity-Typen besteht.<br />

Ist diese Bedingung für den Schlüssel nicht erfüllt, so muss dieser in eine ASSERTION transformiert werden.<br />

Stehen keine Ausnahmen zur Verfügung, kann ebenfalls ein Trigger, der bei Verletzung der noch zu definierenden<br />

Schlüsselbedingung key condition ein Rollback der letzten Datenbankaktion auslöst, verw<strong>and</strong>t werden.<br />

Solch ein Trigger müsste zu allen des Objekt E betreffenden Tabellen in der Datenbank erstellt werden.<br />

Aus diesem Grunde stellt eine Ausnahme die vorzuziehende Alternative dar.<br />

Um die Schlüsselbedingung zu garantieren darf es keine zwei verschiedenen Datensätze in E geben, bei denen<br />

alle atomaren Schlüsselattribute und die aus den mengenwertigen Schlüsselattributen ableitbaren Mengen<br />

gleich sind. Da Mengen in SQL nicht auf kanonische Weise vergleichbar sind, wird der Zusammenhang<br />

M 1 = M 2 ⇔ M 1 ∪ M 2 \ M 1 ∩ M 2 = ∅ für den Vergleich zweier Mengen verw<strong>and</strong>t. Dieser lässt sich mittels<br />

UNION, INTERSECTION und EXCEPT in SQL ausdrücken. Anh<strong>and</strong> dieser Betrachtungen wurde die Abfrage<br />

key condition abgeleitet:<br />

SELECT COUNT(_) FROM E e1, E e2<br />

WHERE e1.s1 = e2.s1 AND . . . AND e1.sk = e2.sk<br />

AND NOT EXISTS<br />

(<br />

(<br />

( SELECT i1 FROM set m1 WHERE set id = e1.k1.m1 )<br />

UNION<br />

( SELECT i1 FROM set m1 WHERE set id = e2.k1.m1 )<br />

) EXCEPT (<br />

( SELECT i1 FROM set m1 WHERE set id = e1.k1.m1 )<br />

INTERSECT<br />

( SELECT i1 FROM set m1 WHERE set id = e2.k1.m1 )<br />

)<br />

)<br />

. . .<br />

AND NOT EXISTS<br />

(<br />

(<br />

( SELECT il FROM set ml WHERE set id = e1.kl.ml )<br />

UNION<br />

( SELECT il FROM set ml WHERE set id = e2.kl.ml )<br />

)<br />

EXCEPT<br />

(<br />

( SELECT il FROM set ml WHERE set id = e1.kl.ml )<br />

INTERSECT<br />

IS ADD


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

( SELECT il FROM set ml WHERE set id = e2.kl.ml )<br />

)<br />

)<br />

AND e1. E id e2. E id<br />

Wertebereichsbeschränkungen sollen den Wertebereich direkt spezifizieren. Diese können entweder durch einen<br />

extra spezifizierten Wertebereich dargestellt werden (die bessere Variante) oder durch eine Bedingung in der<br />

Tabellendefinition.<br />

CREATE TABLE Institut (<br />

...<br />

Fakultaet<br />

.. );<br />

char(1) NOT NULL<br />

CHECK VALUE IN (’1’, ’2’, ’3’, ’4’),<br />

Besser ist die Definition eines Wertebereiches<br />

CREATE DOMAIN FakNr CHAR(1) CHECK VALUE IN (’1’, ’2’, ’3’, ’4’);<br />

und die Benutzung dieses Wertebereiches mit<br />

CREATE TABLE Institut (<br />

...<br />

Fakultaet<br />

.. );<br />

FakNr NOT NULL,<br />

Hierarchiebedingungen: Oft werden Hierarchien abgebildet im Vereinigungszugang. So kann z.B. due Hierarchie<br />

Person, Pr<strong>of</strong>essor in einen Typ abgebildet werden:<br />

CREATE TABLE Person (<br />

Name char[40] Primary Key,<br />

Gebdatum date Primary Key,<br />

Geburtsort char[20],<br />

Adresse<br />

char[60]<br />

Spezialisierung varchar[50] CHECK ((InIName IS NULL<br />

AND Spezialisierung IS NULL)<br />

OR (InIName IS NOT NULL<br />

AND Spezialisierung IS NOT NULL))<br />

InIName char[15] CHECK ((InIName IS NULL<br />

AND Spezialisierung IS NULL)<br />

OR (InIName IS NOT NULL<br />

AND Spezialisierung IS NOT NULL))<br />

);<br />

Kardinalitätsbedingungen: Die Transformation der Kardinalitätsbeschränkungen, benötigt einige Vorbetrachtungen,<br />

die es uns im späteren ermöglichen einigen Problemen bei der Beh<strong>and</strong>lung dieser zu umgehen.<br />

Kardinalitätsbeschränkungen beschreiben die Beziehungen zwischen Relationen und ihren Komponenten in<br />

einem HER Schema.<br />

Bei der Betrachtung einer Menge von Kardinalitätsbeschränkungen ist schnell ersichtlich, das bei schlechtem<br />

<strong>Design</strong> Konstellationen entstehen können, die nach der Transformation auf eine Datenbank in dieser unerwartete<br />

Effekte erzeugen können, z.B. zu unerfüllbaren Datenbankschemata führen.<br />

IS ADD


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

In [Tha00] wird die Nichterfüllbarkeit eines <strong>Systems</strong> von Kardinaliträtsbeschränkungen auf die Existenz eines<br />

kritischen Pfades im System reduziert. Unter Nutzung des dort beschriebenen Tests auf Nichterfüllbarkeit und<br />

der Möglichkeiten zur Korrektur der Kardinalitätsbeschränkungen eines Schemas kann die Menge der Kardinalitätsbeschränkungen<br />

soweit möglich in einen konsistenten Zust<strong>and</strong> gebracht werden, so das die Transformation<br />

auf das Datenbankniveau keine unerwarteten Effekte erzeugt.<br />

Die Transformation der Kardinalitätsbeschränkung kann analog zu den Schlüsselbeschränkungen in einen Trigger<br />

oder eine Ausnahme erfolgen. Es ist aber auch unter speziellen Bedingungen möglich, Kardinalitätsbedingungen<br />

durch eine Transformation des Ergebnissschemas auszudrücken. So kann bei Kardinalitätsbedingungen<br />

der Form comp(R, R i ) = (n, 1) , mit n ∈ {0, 1} auf einer binären Relation R, die Relation R aufgelöst werden<br />

und in die Relation R i hineingezogen werden. Das bewirkt das alle Attribute aus R zu Attributen von R i<br />

werden.<br />

Gilt n = 0 wird der Spaltendefinition noch eine NULL Definition hinzugefügt.<br />

H<strong>and</strong>elt es sich nicht um eine Kardinalitätsbeschränkung der obigen Art, so ist die Transformation in einen<br />

Trigger der Ausnahme vorzuziehen, da individuell auf die Verletzung der Bedingung reagiert werden kann.<br />

Zu jeder Kardinalitätsbeschränkung ist die zu triggernden Aktionen bei Veränderung oder Löschen des referenzierten<br />

Datensatzes als Transformationsparameter zu beachten. Die Transformation der Kardinalitätsbeschränkung<br />

comp(R, R i ) = (m, n) führt zu einer Veränderung der Relation und zu mehreren Triggern. Für<br />

die Kardinalitätsbedingung sind die Aktionen<br />

• Einfügen von Elementen in Ri<br />

• Verändern der Identifikationsspalte (hier des Surrogatschlüssels) von Ri. Dieser Fall sollte nicht auftreten,<br />

ist aber aus Stabilitätsgründen trotzdem zu beh<strong>and</strong>eln.<br />

• Einfügen von Elementen in R. Es können hier die Beschränkungen von 26 überschritten werden.<br />

• Verändern der Ri Spalte von R. Hier sind die unteren und oberen Grenzen der Kardinalitätsbedingungen<br />

zu überprüfen.<br />

• Löschen von Elementen von R. Hier ist die untere Grenze der Bedingung zu prüfen. zu überwachen.<br />

Werden durch eine dieser Aktionen die Bedingungen verletzt, so wird die auslösende Aktion zurückgenommen.<br />

Hierbei ist im Zusammenhang mit dem Hintergrund der Datenpflege zu beachten das bestimmte Integritätsbedingungen<br />

erst nach dem Ende einer Transaktion gepflegt werden dürfen, da sonst ihre Erfüllung praktisch<br />

ünmöglich ist. Dies ist z. B. bei Kardinalitätsbeschränkungen der Form comp(R, E) = (1, n) der Fall. Beim<br />

Einfügen eines Datensatzes in E muss auch ein Eintrag in der Relation R erfolgen. Dies kann praktisch durch<br />

eine Transaktion geschehen, in der erst der Datensatz in E angelegt wird und daraufhin der Datensatz in R.<br />

Für die Transformation einer Kardinalitätsbeschränkung werden auch Trigger erzeugt, durch die die Einhaltung<br />

der Kardinalitätsbedingung comp(R, R i ) = (m, n) erreicht wird. Sie verhindern jede datenverändernde<br />

Aktion (Insert, Update oder Delete), durch die die Kardinalitätsbedingung verletzt werden könnte. Da die Kardinalitätsbedingung<br />

per Definition in der leeren Datenbank erfüllt ist, so ist sie es auch in jeden Folgezust<strong>and</strong>.<br />

Wir können Kardinalitaätsbedingungen in zwei Klassen von Integritätsbedingungen aufspleißen:<br />

1. Unäre tupelgenerierende Bedingungen<br />

LHS ⊑ minimal multiplicity RHS bzw. card(RHS, LHS) = (a, .)<br />

• Insertion in LHS: Kaskadierend in RHS oder Verbot für LHS (wenn IC ungültig, RESTRICT (als<br />

harte Bedingung: wird s<strong>of</strong>ort vor allen <strong>and</strong>eren kontrolliert) oder NO ACTION (als weiche Bedingung:<br />

wird nach allen <strong>and</strong>eren IC kontrolliert)) oder Benutzung von Ersatzwerten (DEFAULT oder<br />

NULL)[wobei diese Optionen nur in Ausnahmefällen sinnvoll sind] in RHS oder bewußte Verletzung<br />

(REFERENCES ARE NOT CHECKED, SKIP)<br />

Default-Strategie für fast alle Systeme: REJECT<br />

IS ADD


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

• Insertion in RHS: keine Auswirkungen<br />

• Delete in RHS: CASCADE in LHS oder RESTRICT (in SQL-92: Default-Regel; wenn nicht deklarierts)<br />

bzw. NO ACTION in RHS oder SET DEFAULT bzw. SET NULL in LHS oder bewußte<br />

Verletzung (SKIP)<br />

• Delete in LHS: keine Auswirkungen<br />

• Update in LHS: CASCADE in RHS oder RESTRICT bzw. NO ACTION in LHS oder SET DEFAULT<br />

bzw. SET NULL in RHS [wobei diese Optionen nur in Ausnahmefällen sinnvoll sind] oder bewußte<br />

Verletzung (SKIP)<br />

Default-Strategie für fast alle Systeme: REJECT<br />

• Update in RHS: CASCADE in LHS oder RESTRICT bzw. NO ACTION in RHS oder SET DEFAULT<br />

bzw. SET NULL in LHS oder bewußte Verletzung (SKIP)<br />

Erzwingungsmodus als Hexatupel (i LHS , λ, λ, d RHS , u LHS , u RHS )<br />

ausreichend ist bereits Quadrupel (i LHS , d RHS , u LHS , u RHS )<br />

z.B. card(EingeschriebenIn, Student) = (1, .) erfordert (i Stud =C,λ,λ,d Eing =R,u Stud =R,u Eing =R)<br />

bzw. (i Stud =C,d Eing =R,u Stud =R,u Eing =R)<br />

Realisierung:<br />

• RESTRICT für Insert und Update bei card(RHS, LHS) = (1, .) bei EingeschriebenIn<br />

:<br />

ALTER TABLE Student ADD CONSTRAINT<br />

CHECK(EXISTS(SELECT * FROM EingeschriebenIn<br />

WHERE EingeschriebenIn.StudMatrNr = MatrNr));<br />

Alternativ kann auch bei einigen Systemen die RESTRICT-Regel direkt den Attributen zugeordnet<br />

werden:<br />

CREATE TABLE EingeschriebenIn (<br />

StudMatrNr char[7] CHECK(<br />

StudMatrNr IN (SELECT MatrNr FROM Student)<br />

),<br />

...<br />

Bis date CHECK ( Von < Bis )<br />

PRIMARY KEY (SName, StudMatrNr)<br />

);<br />

Die Möglichkeit wird z.Z. nur rudimentär unterstützt. Z.B. Oracle erlaubt keine Subqueries in Bedingungen.<br />

Die CHECK-Bedingung ist weniger restriktiv, da eine Veränderung in Student nicht<br />

auf EingeschriebenIn durchgegeben wird! Sie wird nur kontrolliert, wenn das entsprechende<br />

Attribut sich in EingeschriebenIn ändert (d.h. bei Update und Insert).<br />

Analog für RESTRICT für Insert und Update bei card(RHS, LHS) = (3, .)<br />

ALTER TABLE Student ADD CONSTRAINT<br />

CHECK(EXISTS(<br />

SELECT * FROM EingeschriebenIn E1,<br />

WHERE E1.StudMatrNr = MatrNr<br />

AND EXISTS(<br />

SELECT * FROM EingeschriebenIn E2<br />

WHERE MatrNr = E2.StudMatrNr<br />

AND E1.SName E2.SName<br />

AND EXISTS(<br />

SELECT * FROM EingeschriebenIn E3<br />

WHERE E3.StudMatrNr = MatrNr<br />

IS ADD


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

AND E1.SName E3.SName<br />

AND E2.SName E3.SName))));<br />

• Modi für Delete und Update für Komponentenabhängigkeiten R[S] ⊆ S<br />

z.B. EingeschriebenIn[Student] ⊆ Student bei Student<br />

wird durch Nebenbedingung für den Fremdschlüssel mit bewältigt:<br />

CREATE TABLE EingeschriebenIn (<br />

StudMatrNr char[7] FOREIGN KEY<br />

REFERENCES Student(MatrNr)<br />

ON DELETE CASCADE<br />

ON UPDATE RESTRICT,<br />

...<br />

Bis date CHECK ( Von < Bis )<br />

PRIMARY KEY (SName, StudMatrNr)<br />

);<br />

ALTER TABLE Student ADD CONSTRAINT<br />

CHECK(EXISTS(SELECT * FROM EingeschriebenIn<br />

WHERE EingeschriebenIn.StudMatrNr = MatrNr));<br />

Damit erhalten wir die folgende Auflösung für den Fall R 1 [X] ⊑ (1,.) R 2 [Y ] für den Fall, daß Y ein<br />

Schlüssel von R 2 ist:<br />

CASCADE RESTRICT NO ACTION NULL/DEFAULT<br />

insert R1<br />

delete R1 – – – –<br />

update R1<br />

insert R2 – – – –<br />

delete R2 foreign key foreign key foreign key foreign key<br />

update R2 foreign key foreign key foreign key foreign key<br />

Im allgemeinen Fall erhalten wir die folgende Auflösung für den Fall R 1 [X] ⊑ (a,.) R 2 [Y ] :<br />

CASCADE RESTRICT NO ACTION NULL/DEFAULT<br />

insert R1 stored procedure CHECK CHECK DEFER-<br />

RED<br />

delete R1 – – – –<br />

update R1 trigger CHECK CHECK DEFER-<br />

RED<br />

insert R2 – – – –<br />

delete R2<br />

update R2<br />

2. Numerische Beschränkungen card(RHS, LHS) = (0, b)<br />

• Insertion in LHS: kein Effekt<br />

• Insertion in RHS: CASCADE in RHS (Bereinigung (DELETE von Konkurrenten)) oder RESTRICT bzw. NO<br />

ACTION in RHS oder bewußte Verletzung (SKIP)<br />

• Delete in LHS: keine Auswirkungen (bzw. positive Auswirkungen)<br />

• Delete in RHS: keine Auswirkungen<br />

• Update in LHS: CASCADE in RHS oder RESTRICT bzw. NO ACTION in LHS oder bewußte Verletzung<br />

(SKIP)<br />

• Update in RHS: CASCADE in RHS (Bereinigung (DELETE von Konkurrenten)) oder RESTRICT bzw. NO<br />

ACTION in RHS oder bewußte Verletzung (SKIP)<br />

Erzwingungsmodus als Hexatupel (λ, i RHS , λ, λ, u LHS , u RHS )<br />

ausreichend ist bereits Tripel (i RHS , u LHS , u RHS )<br />

z.B. card(EingeschriebenIn, Student) = (0, 3) erfordert (i Eing =R,u Student =C,u Eing =R) .<br />

IS ADD


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

Spezielle numerische Beschränkungen sind funktionale Abhängigkeiten. Diese können wie card(RHS, LHS) =<br />

(0, 1)-Abhängigkeiten beh<strong>and</strong>elt werden.<br />

• Primärschlüsselabhängigkeiten werden sowohl im Entry als auch Intermediate Level von SQL’92<br />

s<strong>of</strong>ort erzwungen. Es wird die “Entity-Integrität” gefordert (keine Nullwerte in diesen Attributen),<br />

d.h. es wird gefordert ∀t ∈ R C (t[K]!).<br />

• Sekundarschlüsselabhängigkeiten erlauben einen variablen Erzwingungsmodus: immediate oder deferred.<br />

Im Entry Level von SQL’92 ist noch die “Entity-Integrität” gefordert. Der Nullwert wird wie<br />

ein Wert in der Ungleichung t(A) ≠ t ′ (A) beh<strong>and</strong>elt.<br />

Die DBMS haben ggf. hier eine abweichende Beh<strong>and</strong>lung:<br />

• SQL-99 fordert bei UNIQUE-Bedingungen den Vergleich nur bei gleichzeitig voll definierten<br />

Teiltupeln:<br />

∀t∀t ′ (t[X]! ∧ t ′ [X]! → t[X] ≠ t ′ [X]).<br />

• ORACLE erzwingt UNIQUE nur für vollständig definierte Teiltupel, d.h.<br />

∀t∀t ′ (t[X] = NULL ∨ t ′ [X] = NULL ∨<br />

((∃A ∈X (t[A]! ∨ t[A]!)) → t[X] ≠ t ′ [X]).<br />

• DB2, Informix, Sybase, MS SQL, Ingres, Sybase Anywhere definieren dagegen<br />

∀t∀t ′ (t[X] ≠ t ′ [X]) .<br />

Realisierung:<br />

• RESTRICT für Insert und Update bei card(RHS, LHS) = (0, 2) in der Relation EingeschriebenIn<br />

ALTER TABLE EingeschriebenIn ADD CONSTRAINT<br />

CHECK(NOT EXISTS(<br />

SELECT * FROM EingeschriebenIn E1,<br />

WHERE EXISTS(<br />

SELECT * FROM EingeschriebenIn E2<br />

WHERE E1.StudMatrNr = E2.StudMatrNr<br />

AND E1.SName E2.SName<br />

AND EXISTS(<br />

SELECT * FROM EingeschriebenIn E3<br />

WHERE E3.StudMatrNr = E2.StudMatrNr<br />

AND E1.SName E3.SName<br />

AND E2.SName E3.SName))));<br />

Analog mit Schachtelung der Tiefe b + 1 für card(RHS, LHS) = (0, b).<br />

Besser ist in diesem Fall sogar die Einführung eines Surrogat-Schlüssels für die Relation<br />

EingeschriebenIn, weil bei komplexeren Schlüsseln die Bedingungen E1.SName E3.SName<br />

dann um den gesamten Schlüssel von EingeschriebenIn erweitert werden müssen.<br />

Relationale Integritätsbedingungen: Relationale Integritätsbedingungen werden auf der Basis der relationalen Algebra<br />

formuliert.<br />

Unter der Menge der möglichen relationalen Integritätsbedingungen sind zwei Klassen besonders zu beachten,<br />

da sie in der Modellierungspraxis recht häufig benötigt werden:<br />

Inklusionsbeziehungen: Durch Inklusionsbeziehungen werden statische Beziehungen zwischen Objekten in<br />

der Datenbank beschrieben. Ihre Transformation kann, wie in den vorherigen Fällen, in Trigger oder Ausnahmen<br />

erfolgen. Da die beiden Transformationen inein<strong>and</strong>er überführbar sind, wird hier im folgenden<br />

nur die Transformation in eine Ausnahme betrachtet.<br />

CREATE ASSERTION R inc S<br />

CHECK (<br />

NOT EXISTS (<br />

SELECT * FROM R<br />

IS ADD


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

)<br />

WHERE NOT EXISTS (<br />

SELECT S id<br />

FROM S<br />

WHERE S.Y1 = R.X1, . . . , S.Yk = R.Xk<br />

)<br />

)<br />

Bei mehreren Inklusionsabhängigkeiten zwischen R und S muss der Name der Ausnahme mittels einer<br />

Nummer erweitert werden.<br />

Es sollen u.a. Bedingungen der Daten unterein<strong>and</strong>er abgebildet werden. Typische Beispiele sind Beschränkungen<br />

über Kalenderdaten oder referentielle Integritätsbedingungen wie z.B.<br />

CREATE TABLE EingeschriebenIn (<br />

StudMatrNr char[7] CHECK(<br />

StudMatrNr IN (SELECT MatrNr FROM Student)<br />

),<br />

...<br />

Bis date CHECK ( Von < Bis )<br />

PRIMARY KEY (SName, StudMatrNr)<br />

);<br />

Exklusionsbeziehungen: Die Exklusionsbeziehungen werden analog zu den Inklusionsbeziehungen in eine<br />

Ausnahme transformiert. Hierzu ist zu prüfen, das es kein Element in R gibt, zu dem ein passendes<br />

Element in S existiert. Dies wird durch den SQL Ausdruck<br />

CREATE ASSERTION R_exclus_S<br />

CHECK (<br />

NOT EXISTS (<br />

SELECT * FROM R<br />

WHERE EXISTS (<br />

SELECT S id<br />

FROM S<br />

WHERE S.Y1 = R.X1, . . . , S.Yk = R.Xk<br />

)<br />

)<br />

)<br />

comp(R, R i ) = (m, n)<br />

CREATE TRIGGER comp_R_i_R_insert<br />

AFTER INSERT ON R_i<br />

REFERENCING NEW TABLE inserted<br />

WHEN ( ( SELECT COUNT(*) FROM R, inserted<br />

WHERE R.R i = inserted.R_i_id ) < m ) OR<br />

( SELECT COUNT(*) FROM R, inserted<br />

WHERE R.R_i = inserted. R_i_id ) > n ) )<br />

ROLLBACK TRANSACTION<br />

CREATE TRIGGER comp_R_i_R_update<br />

AFTER UPDATE OF R_i id ON R_i<br />

REFERENCING NEW TABLE inserted<br />

REFERENCING OLD TABLE deleted<br />

WHEN ( ( SELECT COUNT(*) FROM R, deleted<br />

WHERE R.R_i = inserted.R_i_id ) < m ) OR<br />

( SELECT COUNT(*) FROM R, inserted<br />

IS ADD


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

WHERE R.R_i = inserted. R_i_id ) > n ) )<br />

ROLLBACK TRANSACTION<br />

CREATE TRIGGER comp R_R_i_insert<br />

AFTER INSERT ON R<br />

REFERENCING NEW TABLE inserted<br />

WHEN ( ( SELECT COUNT(*) FROM R_i, inserted<br />

WHERE inserted.R_i = R_i. R_i_id ) < m ) OR<br />

( SELECT COUNT(*) FROM R, inserted<br />

WHERE inserted.R_i = R_i. R_i_id ) > n ) )<br />

ROLLBACK TRANSACTION<br />

CREATE TRIGGER comp_R_R_i_update<br />

AFTER UPDATE OF R_i ON R<br />

REFERENCING NEW TABLE inserted<br />

REFERENCING OLD TABLE deleted<br />

WHEN ( ( SELECT COUNT(*) FROM R_i, deleted<br />

WHERE deleted.R_i = R_i.R_i_id ) < m ) OR<br />

( SELECT COUNT(*) FROM R_i, inserted<br />

WHERE inserted.R_i = R_i. R_i_id ) > n ) )<br />

ROLLBACK TRANSACTION<br />

CREATE TRIGGER comp_R_R_i_delete<br />

AFTER DELETE ON R<br />

REFERENCING OLD TABLE deleted<br />

WHEN ( ( SELECT COUNT(*) FROM R_i, deleted<br />

WHERE deleted.R_i = R_i.R_i_id ) < m ) )<br />

ROLLBACK TRANSACTION<br />

2.8.4 Compiler-Zugang<br />

Abbildung 50: Übersetzungsphasen eines Mehrpaßcompilers<br />

Die Umgebung eines Compilers.<br />

IS ADD


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

Präprozessor: Der Präprozessor wird vom Compiler aufgerufen und hat die Aufgabe Makros 4 zu ersetzen. Falls<br />

das Programm aus mehreren Quelltexten besteht, ist er außerdem dafür zuständig, die verschiedenen Teile<br />

zusammenzusetzen.<br />

Compiler: Der Compiler erhält seine Eingabe, den Quellcode, vom Präprozessor und übersetzt diesen Code in eine<br />

Zielsprache: Assembler- oder Maschinencode. Auf die Arbeitsweise des Compilers wird später genau eingegangen.<br />

Assembler: Es gibt Compiler, die Assemblercode ausgeben und an den Assembler weitergeben. Dieser erzeugt<br />

dann einen verschiebbaren Maschinencode, indem er Assemblerbefehle in Maschinenbefehle transformiert,<br />

symbolischen Namen (z.B. Labels) Maschinenadressen zuweist und ein Objektprogramm 5 erzeugt.<br />

Binder: Der Binder hat die Aufgabe, Objektprogramme aus verschiedenen Dateien (aus verschiedenen Übersetzungen<br />

oder systemeigene Bibliotheksdateien) in verschiebbarem Maschinencode zu einem Programm zusammenzufassen<br />

und die Querverweise 6 und externen Referenzen 7 aufzulösen.<br />

Lader: Der Lader fordert entsprechend der Größe des Programms Speicherbereich vom Betriebssystem an. Anschließend<br />

lädt er das Programm in diesen Bereich im Arbeitsspeicher, ersetzt die verschiebbaren Adressen<br />

durch nicht verschiebbare absolute Adressen und startet das Programm. Häufig sind Binder und Lader zu einem<br />

sogenannten Bindelader zusammengefasst, der dann sowohl die Aufgaben des Binders als auch des Laders<br />

übernimmt.<br />

Abbildung 51: Übersetzungsphasen eines Mehrpaßcompilers<br />

Compilerarten.<br />

Die Mächtigkeiten von Quell- und Zielsprache können unterschiedlich sein, daher werden Compiler wie folgt klassifiziert:<br />

Compiler: Die Quellsprache ist mächtiger als die Zielsprache, z.B. der Compiler gcc, welcher einen C-Quelltext in<br />

Maschinensprache übersetzt.<br />

4 Makro: Zusammenfassung von Befehlen zu einer mit einem Befehl ansprechbaren Einheit<br />

5 Objektprogramm: maschinenunabhängiger Zwischencode, in dem unter <strong>and</strong>erem vorbesetzte Bibliotheken vorliegen<br />

6 Querverweise - hier: symbolische Verweise, die in <strong>and</strong>eren Programmteilen definiert sind<br />

7 externe Referenz - hier: noch nicht aufgelöste Bezeichner, die z.B. in Bibliotheken definiert sind<br />

IS ADD


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

Decompiler: Die Zielsprache ist mächtiger als die Quellsprache.<br />

Präcompiler: Quell- und Zielsprache haben etwa die gleiche Mächtigkeit, deshalb wird ein Präcompiler auch 1-1-<br />

Compiler genannt, z.B. der Präprozessor vom gcc Compiler unterscheiden sich nicht nur in Mächtigkeit von<br />

Quell- und Zielsprache sondern auch in Konstruktion und Verwendungszweck:<br />

Ein-Pass-Compiler: Er benötigt nur einen Arbeitsgang, um den Quelltext in den Zielcode zu übersetzen.<br />

Mehr-Pass-Compiler: Zunächst wird der Quellcode von einem Präcompiler bearbeitet und anschließend vom Compiler<br />

in die Zielsprache übersetzt. Hier sind folglich mehrere Arbeitsgänge für die Übersetzung erforderlich.<br />

Compiler-Compiler: Ein Compiler-Compiler erhält die Beschreibungen für zwei Programmiersprachen und gibt<br />

anschließend einen Übersetzer (Compiler) von der einen in die <strong>and</strong>ere Sprache aus. Er wird auch Compilergenerator<br />

genannt<br />

optimierender Compiler: Dieser Compiler optimiert ein Programm bezüglich Laufzeit und Speicherbedarf, er verändert<br />

jedoch nicht den Inhalt des Programms.<br />

Native-Code-Compiler: Der erzeugte Code ist auf dem System lauffähig, auf dem auch der Compiler das Programm<br />

übersetzt hat.<br />

Cross-Compiler: Soll das Programm auf einem Rechner B ausgeführt werden, kann aber nicht auf B compiliert<br />

werden (z.B. Mikrocomputer), benötigt man einen Cross-Compiler, der auf einer <strong>and</strong>eren Maschine A das<br />

Programm übersetzt. Cross-Compiler ermöglichen also die Übersetzung für <strong>and</strong>ere Rechnerarchitekturen.<br />

Just-In-Time-Compiler: Von einem Compiler wird zuerst aus dem Quellcode ein plattformunabhängiger Zwischencode<br />

erstellt. Dieser wird dann zur Laufzeit des Programms von einem Just-in-Time-Compiler Stück für Stück<br />

umgew<strong>and</strong>elt, prozessorspezifisch optimiert und ausgeführt. Eine aufwendige Optimierung hätte allerdings<br />

eine negative Auswirkung auf die Ausführungszeit. Der Zwischencode wird also nicht interpretiert sondern<br />

unmittelbar vor seiner Ausführung compiliert, dadurch ist der Just-in-Time-Compiler sehr schnell.<br />

Übersetzungsphasen eines Compilers.<br />

Während der Übersetzung durchläuft ein Quelltext verschiedene Phasen des Compilers: die lexikalische, syntaktische<br />

8 und semantische 9 Analyse, die Zwischencodeerzeugung, die Codeoptimierung und schließlich die Codegenerierung.<br />

Diese Phasen lassen sich unterschiedlich zusammenfassen. Zum Einen in die Analysephase und die Synthesephase<br />

(s. Abb.), zum Anderen in Front-End und Back-End. Das Front-End besteht aus den Phasen, die von der<br />

Quellsprache und nicht von der Zielsprache abhängen, also aus der Analysephase, Zwischencodeerzeugung und teilweise<br />

der Optimierung. Zum Back-End gehören die Phasen, die sich auf die Zielmaschine beziehen, wie teilweise<br />

die Codeoptimierung und die Code-Erzeugung.<br />

Oft entfällt die Synthesephase und der vom Compiler nach der Analyse erzeugte Zwischencode wird von einem<br />

Laufzeitsystem 10 , das eigene Datenstrukturen verwaltet, direkt interpretiert.<br />

• Analysephase<br />

• Lexikalische Analyse<br />

Die lexikalische Analyse wird vom sogenannten Scanner durchgeführt, ist für die Bearbeitung des Quelltextes<br />

zuständig und liefert dem Parser einen Strom von Token. Bei der Bearbeitung des Quelltextes filtert<br />

der Scanner Leerzeichen, Leerzeilen und Kommentare heraus, wertet die Konstanten aus, überprüft,<br />

8 Syntax: Festlegung, welche Zeichenfolgen als Programme zugelassen sind<br />

9 Semantik: Festlegung, welche Auswirkung die Ausführung des Programms auf einem Rechner hat<br />

10 Laufzeitsystem: System, das alle zur Ausführung eines Programms nötigen Routinen zur Verfügung stellt, wie Speicheranforderung,<br />

Fehlerroutinen, Interaktion mit dem Betriebssystem<br />

IS ADD


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

Abbildung 52: Analysephase eines Mehrpaßcompilers<br />

ob alle Zeichen aus dem Zeichenvorrat der Quellsprache sind und erkennt Grundsymbole und Token.<br />

Des weiteren ist das Nachladen weiterer Source-Dateien, die in C zum Beispiel über die #include-<br />

Anweisung angegeben werden, eine Aufgabe der lexikalischen Analyse. Der Scanner arbeitet auf der<br />

Basis eines deterministischen Automaten<br />

Erkennt der Scanner ein gelesenes Symbol bzw. eine Symbolteilfolge, wird anh<strong>and</strong> einer Symboltabelle<br />

festgestellt, ob dieses Lexem11 irgendwann schon einmal vorkam. Ist dies nicht der Fall, so wird ein<br />

neuer Symboltabelleneintrag erzeugt und dem Symbol als Attribut einen Verweis auf den entsprechenden<br />

Eintrag in der Symboltabelle angefügt.<br />

• Syntaktische Analyse<br />

Die syntaktische Analyse wird vom Parser 11 durchgeführt. Seine Aufgaben sind es, die syntaktische<br />

Struktur des Programms entsprechend der Grammatik der Programmiersprache zu erkennen, Syntaxfehler<br />

zu entdecken und den Ableitungsbaum zu erstellen. Letzterer wird aus den grammatikalischen Grundkomponenten<br />

erstellt, deren Beziehung unterein<strong>and</strong>er durch die Verbindungen der einzelnen Knoten im<br />

Baum dargestellt werden. Grundsätzlich gibt es zwei verschiedene Arten von Parsern, die Top-down-<br />

Parser und die Bottom-up-Parser. Der Top-down-Parser betrachtet zuerst das Programm als Ganzes und<br />

zerlegt dieses dann bis in seine grammatikalischen Grundkomponenten. Der Bottom-up-Parser beginnt<br />

mit der Analyse der grammatikalischen Grundkomponenten und baut hieraus das Programm auf. In jeder<br />

Programmiersprache gibt es Regeln wie z.B. eine Schleife, eine Bedingung oder eine Zuweisung aufgebaut<br />

sein müssen, ob Variablen vor ihrem ersten Zugriff deklariert werden müssen usw. Wird gegen eine<br />

dieser Regeln verstoßen, startet der Parser eine Fehlerbeh<strong>and</strong>lung. Um bei einem Compiler-Durchlauf<br />

möglichst viele Fehler entdecken und melden zu können, bricht der Parser nach einem Fehler seine Analyse<br />

nicht ab, sondern überliest die nachfolgenden Zeichen bis zu einem synchronisierenden 12 Symbol<br />

und setzt seine Arbeit dort fort. Der Parser arbeitet auf Basis eines Kellerautomaten, dessen Aufgabe<br />

es ist, Anfang und Ende von geschachtelten Konstruktionen zu erkennen. Dieser Automat hat endlich<br />

viele Zustände und besitzt als Speicher für die einzelnen Zeichen einen stack. Abhängig vom Eingabezeichen,<br />

vom aktuellen Zust<strong>and</strong> und vom obersten Kellersymbol wechselt der Automat seinen Zust<strong>and</strong> und<br />

verändert die Kellerspitze.<br />

• Semantische Analyse<br />

Die semantische Analyse baut auf den Ergebnissen der syntaktischen Analyse auf. Im Wesentlichen finden<br />

drei Überprüfungen statt, nämlich die Typ-, die Eindeutigkeits- und die Gültigkeitsprüfung. Die Typprüfung<br />

basiert dabei auf dem Typ-System der Quellsprache, welches definiert, wie bestimmte Typen<br />

11 engl. to parse: zerlegen<br />

12 synchronisierendes Symbol: abschließendes Zeichen von grammatikalischen Komponenten (wie Deklarationen und Anweisungen), Beispiel:<br />

;<br />

in C<br />

IS ADD


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

in Ausdrücken verwendet werden dürfen und welchen Typs das Resultat zu sein hat. In C würde eine<br />

arithmetische Verknüpfung zweier int-Variablen zum Beispiel ein Ergebnis wiederum vom Typ int zur<br />

Folge haben. Die statische Typprüfung wird während des Kompilierens durchgeführt, kann jedoch nicht<br />

garantieren, dass es zur Laufzeit nicht zu Typfehlern kommt.<br />

Prinzipiell ist aber, falls Typ und Wert eines Elements auch in der Zielsprache bekannt sind, die sogenannte<br />

dynamische Typprüfung ausreichend. Sie findet zur Laufzeit des Programms statt. Die semantische<br />

Analyse überprüft jedoch nicht nur die Typen sondern sammelt auch Typinformationen, um mit ihnen sowohl<br />

die Symboltabelle als auch den Ableitungsbaum aus der syntaktischen Analyse durch Attribute zu<br />

erweitern. Erste Ergebnisse der semantischen Analyse sind also ein attributierter Ableitungsbaum sowie<br />

eine erweiterte Symboltabelle. Im attributierten Ableitungsbaum werden die syntaktischen Komponenten<br />

von der Wurzel bis zu den Blättern, die die grammatikalischen Grundkomponenten enthalten, immer<br />

weiter verfeinert. Die dann folgenden Eindeutigkeits- und Gültigkeitsprüfungen dienen schließlich zur<br />

Vorbereitung auf die Codeerzeugung, indem beim Durchlaufen des Ableitungsbaumes den Variablen und<br />

Konstanten bereits relative Adressen zugewiesen werden und des weiteren die eigentliche semantische<br />

Richtigkeit überprüft wird. Darunter fällt zum Beispiel die Überprüfung von Indexgrößen, von Argumentenanzahl<br />

und -typ bei Funktionsaufrufen sowie von Typkonformität beiderseits einer Anweisung. Auch<br />

hier wird, wie bei den vorigen Phasen, im Fehlerfall die Analyse nicht abgebrochen, damit die Fehlerausgabe<br />

am Ende des Compiliervorgangs möglichst vollständig ist.<br />

↑ v<br />

Attributierte Grammatiken A = (G, V, F ) sind durch eine kontextfreie Grammatik G, Attribute V und Attributzuweisungen<br />

F bestimmt. So kann z.B. für die kontextfreie Grammatik mit den Regeln<br />

N → S ′′ . ′′ S<br />

S → S B<br />

S → B<br />

B → ′′ 0 ′′<br />

B → ′′ 1 ′′<br />

eine Ergänzung um den Scale-Faktor f, den Wert v und die Länge l vorgenommen werden, so daß dann für<br />

eine Werteweitergabe nach unten ↓ bzw. nach oben ↑ im Baum die folgende attributierte Grammatik entsteht:<br />

N ↑ v → S ↓ f 1 ↑ v 1 ↑ l ′′ 1 . ′′ S ↓ f 2 ↑ v 2 ↑ l 2 [v = v 1 + v 2 ; f 1 = 1; f 2 = 2 −l 2<br />

]<br />

S ↓ f v ↑ l → S ↓ f 1 ↑ v 1 ↑ l 1 B ↓ f 2 ↑ 2<br />

[v = f 1 · v 1 + f 2 · v 2 ; f 1 = 2f; f 2 = f; l = l 1 + 1]<br />

S ↓ f ↑ v ↑ l → B ↓ f ↑ v [l = 1]<br />

B ↓ f ↑ v → ′′ 0 ′′ [v = 1]<br />

B ↓ f ↑ v → ′′ 1 ′′ [v = 1]<br />

Wir erhalten damit für die Ableitung von 11.01 = 3 1 4<br />

den folgenden Ableitungsbaum:<br />

N<br />

N<br />

N; v = 3 1 4<br />

S; l=2<br />

S; l=2<br />

S; f = 1<br />

S; f = 1 4<br />

S; v=3<br />

S; v = 1 4<br />

S; l=1<br />

B<br />

S; l=1<br />

B<br />

S; f=2 B; f=1<br />

S; f = 1 2<br />

B; f = 1 4<br />

S; v=2<br />

B; v=1<br />

S; v=0<br />

B; v=1<br />

B; l=1<br />

1<br />

B<br />

1<br />

B; f=2<br />

1<br />

B; f = 1 2<br />

1<br />

B; v=1<br />

1<br />

B; v=0<br />

1<br />

1<br />

0<br />

1<br />

0<br />

1<br />

0<br />

IS ADD


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

• Synthesephase<br />

• Zwischencodeerzeugung<br />

Nach der Analyse und somit als Ende des Front-Ends wird eine maschineneunabhängige Form des Quellprogramms<br />

aus den Zwischendarstellungen der vorherigen Phasen erzeugt. Dies ist vorteilhaft, falls das<br />

Programm auf eine <strong>and</strong>ere Maschine portiert wird, denn dann muss ausgehend vom Zwischencode lediglich<br />

die Codeerzeugungsphase erneut ausgeführt werden. Ein Zwischencode erleichtert also die Weiternutzung<br />

für ähnliche Zielsprachen. Voraussetzung ist allerdings, dass die Zwischensprache leicht erzeugt<br />

werden kann und ebenso leicht in die eigentliche Zielsprache übersetzbar ist. Häufig bietet sich dazu der<br />

sogenannte Drei-Adress-Code an. Nach einer eventuell notwendigen Aufteilung in Teilanweisungen wird<br />

das gesamte Programm in diesem Code in Instruktionen implementiert, die jeweils eine Zuweisung sind,<br />

außer dem Zuweisungsoperator höchstens einen weiteren Operator enthalten dürfen und insgesamt aus<br />

maximal 3 Oper<strong>and</strong>en bestehen. Gegebenfalls werden dazu zusätzliche, temporäre Variablen erzeugt.<br />

• Codeoptimierung<br />

Die Codeoptimierung bildet nicht immer eine eigene Phase, da sie meistens in die letzte Phase, die Codegenerierung,<br />

integriert ist. Es können jedoch immer zwei Arten der Codeoptimierung unterschieden<br />

werden, nämlich zum Einen die maschinenabhängige und zum Anderen die maschinenunabhängige. Die<br />

maschinenabhängige Codeoptimierung konzentriert sich, wie schon der Name sagt, auf eine Verbesserung<br />

des Zielcodes hinsichtlich der Zielmaschine. Es wird versucht, Eigenschaften der Zielmaschine<br />

auszunutzen, so dass zum Beispiel eine ganzzahlige Multiplikation mit 2 durch Shift-Operationen realisiert,<br />

bestimmte Befehle der Zielmaschine genutzt oder auch die Nutzung von Registern hinsichtlich<br />

weniger Rechenzeit verbessert werden. Die maschinenunabhängige Codeoptimierung hingegen lässt die<br />

Eigenschaften der Zielmaschine außen vor und ist dafür zuständig, die Qualität des Zwischencodes zu<br />

verbessern, dabei aber die Funktionalität zu erhalten. In diesem Zusammenhang kann wieder eine Unterscheidung<br />

statt finden und zwar die der Übersetzungs- und der Codeoptimierung an sich. Erstere bemüht<br />

sich die Übersetzungszeit möglichst gering zu halten, dabei aber trotzdem eine umfangreiche Fehlerprüfung<br />

durchzuführen. Die Codeoptimierung erstellt derweil ein Zielprogramm, das wenig Rechenzeit<br />

sowie wenig Speicherplatz in Anspruch nimmt. Dazu wird zum Beispiel “passiver” oder ”nicht erreichbarer”<br />

Code entfernt , Operationskosten eingespart, indem “teure” Operatoren durch “günstige” ersetzt<br />

werden, oder konstanter Code aus Schleifen herausgezogen.<br />

Typische Schritte bei der Codeoptimierung sind:<br />

• einfache Optimierung z.B. algebraische Vereinfachungen, Konstantenfaltung, Unterdrücken von Laufzeitprüfungen<br />

• Entfernen gemeinsamer Teilausdrücke<br />

• Fortpflanzung von Zuweisungen<br />

• Schleifeninvarianter Code<br />

• Befehlsanordnung<br />

• Registerzuordnung<br />

• Codegenerierung<br />

Im letzten Schritt wird aus dem vorher optimierten Zwischencode der entgültige Zielcode erzeugt, der<br />

meistens aus verschiebbarem Maschinen- oder seltener aus Assemblercode besteht. Es werden nun also<br />

ëchte”Befehle erzeugt, was bedeutet, dass jede Zwischencodeanweisung in eine gleichwertige Folge von<br />

Maschinenbefehlen übersetzt wird und den Programmvariablen verschiebbarer Speicherplatz zugeordnet<br />

wird.<br />

Typische Schritte bei der Codegenerierung sind:<br />

• Erhebung der Eigenschaften der Zielmascheine<br />

• Coderzeugung für Ausdrücke<br />

IS ADD


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

• Coderzeugung für Anweisungen<br />

• Coderzeugung für Prozeduren<br />

• Objektdatei, die durch den Binder später zusammengeführt werden kann<br />

Verfahren der Compilerentwicklung (Wie baut man einen Compiler?) .<br />

Das Bootstrapping-Verfahren Ein Compiler ist nicht nur durch Quell- und Zielsprache gekennzeichnet, sondern<br />

auch noch durch die Implementierungssprache des Compilers, das ist die Programmiersprache, in der der<br />

Compiler geschrieben wurde und wird deshalb auch Basissprache des Compilers genannt. Diese drei Sprachen<br />

werden in einem sogenannten T-Diagramm dargestellt.<br />

Abbildung 53: Bootstrapping Verfahren eines Mehrpaßcompilers<br />

Compiler haben zwei für den Compilerbau wichtige Eigenschaften:<br />

1. Wie viel Speicherplatz braucht der Compiler und wie schnell ist er?<br />

2. Wie schnell sind die durch den Compiler erzeugten Programme und wie viel Speicherplatz brauchen sie?<br />

In einem T-Diagramm wird dann an der entsprechenden Stelle je nach Eigenschaft ein Plus- oder ein Minus-<br />

Zeichen notiert.<br />

Abbildung 54: T-Diagramm des Bootstrapping-Verfahren<br />

Compilerbau-Werkzeuge: Für eine Programmiersprache kann es verschiedene Compiler geben, wie für C zum Beispiel<br />

den Borl<strong>and</strong> Compiler, den gcc usw. Für ein und dieselbe Programmiersprache müssen alle Scanner und<br />

Parser der Compiler immer nach den gleichen Regeln arbeiten. Deshalb ist es nützlich Scanner und Parser beim<br />

Compilerbau nicht immer neu generieren zu müssen, sondern Funktionen zur Verfügung zu haben, die die Implementierung<br />

dieser Routineaufgaben erleichtern. In diesem Zusammenhang sind besonders die kostenlosen<br />

Tools Lex als ein Scanner-Generator und Yacc als ein Parser-Generator zu nennen. Sie finden sowohl unter<br />

UNIX/Linux als auch unter Windows Verwendung und können Scanner und Parser für C/C++, Java, Pascal<br />

usw. generieren.<br />

IS ADD


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

Fehlerbeh<strong>and</strong>lung.<br />

Lexikalische Fehler werden durch Verletzungen der Syntax hervorgerufen. Die Fehlerart wird zusammen mit der<br />

Position des fehlerhaften Symbols gemeldet. Die fehlerhaften Symbole werden trotzdem an den Syntaxanlysator<br />

weitergegeben.<br />

Fehlerbeh<strong>and</strong>lung in der Syntaxanalyse analog zum recovery realisierbar<br />

Verfahren<br />

Panikmodus für rekursiven Abstieg: Die Syntaxanalyse wird abgebrochen.<br />

Wiederaufsatz mit allgemeinen Fangsymbolen für rekrsiven Abstieg: Tritt ein Syntaxfehler auf, wird der Symbolstrom<br />

solange überlesen, bis ein Symbol auftritt, das an der Fehlerstelle erwartet wurde oder das<br />

Nachfolger eines in Arbeit befindlichen Nichtterminalsymboles ist. Mit diesem Symbol wird die Analyse<br />

fortgesetzt.<br />

Wiederaufsatz mit speziellen Fangsymbolen für rekrsiven Abstieg: Es werden spezielle Symbole ausgezeichnet,<br />

mit denen ein Wiederanfahren oder eine Fortsetzung einfach möglich ist.<br />

Fehlerbeh<strong>and</strong>lung bei tabellengesteuerter Top-Down-Analyse: meist durch allgemeine Fangsymbole<br />

Fehlerbeh<strong>and</strong>lung bei tabellengesteuerter Bottom-Up-Analyse: meist durch allgemeine Fangsymbole<br />

Fehlerbeh<strong>and</strong>lung in der Semantikverarbeitung:<br />

Fehlerbeh<strong>and</strong>lung während der Optimierung:<br />

Fehlerbeh<strong>and</strong>lung während der Codeerzeugung:<br />

Qualitätskriterien.<br />

Sowohl für die Transformation als auch die Compilierung wird strukturelle, semantische und funktionelle Korrektheit<br />

gefordert. Die Korrektheit muß auch beweisbar sein. Dies ist jedoch selbst für einfache Klassen von Integritätsbedingungen<br />

wie die Menge der Kardinalitätsbedingungen {(0, 1), (1, 1), (1, n), (0, n)} bereits nicht mehr gegeben, da<br />

damit auch Inklusions- und funktionale Abhängigkeiten ausgedrückt werden können. Diese Menge ist jedoch nicht<br />

axiomatisierbar. Damit kann auch die semantische Korrektheit von Transformationen nicht bewiesen werden. Deshalb<br />

ist eine Compilierung für Datenbankschema nur in Teilfällen möglich. Damit ist unser Ziel eine Transformationstechnik,<br />

die sowohl den Korrektheitsforderungen genügt als auch Optimierungstechniken einschließt (Optimierender<br />

Transformer). Einen Teilschritt haben wir bereits mit der Normalisierung von Schemata in HERM-Normalform vorgenommen.<br />

Die hier vorgestellten Transformationstechniken sollten Qualitätkriterien genügen:<br />

• Der Transformationsprozeß sollte einfach sein.<br />

• Der Transformationsprozeß sollte die Strukturen im wesentlichen erhalten.<br />

• Der Transformationsprozeß sollte die Eigenschaften der unterlegten Implementationstechnologie unterstützen.<br />

Insbesondere im Falle des relationalen Modelles als logisches Modell sollte durch die Transformation die<br />

Einfachheit, Pruduktivität und Flexibilität erhalten bleiben.<br />

• Der Transformationsprozeß sollte weitestgehend unabhängig vom gewählten Datenbank-Management-System<br />

sein. Das bedeutet nicht, daß die gewählte Plattform eine Berücksichtigung finden sollte. Da mit einer Änderung<br />

von Versionen stets zu rechnen ist, sollte man die Transformation und damit auch das physische Schema nicht<br />

zu stark an die Version koppeln.<br />

IS ADD


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

• Der Transformation sollte daten-orientiert und weniger prozeß-orientiert angelegt sein. Eine Reihe von Tuningtechniken<br />

lassen sich konzeptionalisieren wie im folgenden gezeigt wird. Darauf aufbauend können die<br />

Performanzprobleme direkt in den Entwurf einbezogen werden.<br />

2.8.5 Compilation von HERM-Schemata<br />

Vorsicht: Vorgriff auf Funktionalität aufgrund der notwendigen Optimierung<br />

Schwierigkeiten und Fallen:<br />

1. Man muß den Unterschied zwischen Primärschlüssel, Primärindex und primärer Zugriffsmechanismus klar<br />

herausstellen. Der Primärschlüssel ist ein Instrument zur Pflege der Integrität von Daten. Es werden die<br />

beiden <strong>and</strong>eren Begriffe nicht impliziert. Der Primärindex kann verschiedenste Verwirklichungen haben.<br />

Noch unterschiedlicher ist der Zugriffsmechanismus. Er ist der meist aus Performanzgründen favorisierte<br />

Zugriffsmechanismus. Er kann auf dem Primärschlüssel beruhen, kann aber auch auf einen <strong>and</strong>eren<br />

Schlüssel oder sogar auf einen künstlichen Schlüssel wie dem Tupelidentifikator beruhen.<br />

2. Mit nullwertigen Attributtypen sind nicht alle Auswertungsoperationen mit der gleichen Semantik versehen.<br />

Da der Vergleich von Daten in diesem Fall zum Wert wahr, falsch oder unbekannt führen kann,<br />

sind für Nullwerte zusätzlich die Auswertungsoperationen (z.B. Operationen der relationalen Algebra oder<br />

Aggregationsoperationen) zu betrachten. Hinzu kommt, daß verschiedene Plattformen mit Nullwerten auf<br />

unterschiedliche Art und Weise umgehen. Eine zusätzliche Programmierung von weiteren Operatoren kann<br />

nur eine teilweise Lösung bieten.<br />

Begründung der Notwendigkeit.<br />

• Verlust des Zusammenhanges zum konzeptuellen Schema nach Transformation im klassischen Zugang, insbesondere<br />

nach Denormalisierung<br />

• zu uniforme Übersetzung, jeder Typ muß eigentlich mit seiner Option laufen, dies ist aber zu schrecklich zum<br />

Spezifizieren, erfordert dann H<strong>and</strong>arbeit<br />

• Trigger-Generierung geht meist schief, muß dann per H<strong>and</strong> nachgearbeitet werden; wer beherrscht diese Aufgabe?<br />

• ohne Berücksichtigung der Funktionen<br />

Wissenschaftlicher Hintergrund: Der ETL-Prozeß.<br />

ETL: Extract-Transform-Load<br />

• anstatt des klaasischen Interpreter-Zuganges<br />

• mit Integration des Pr<strong>of</strong>iles und des Portfolio<br />

• sowie ERzwingungspr<strong>of</strong>il für Integritätsbedigungen<br />

einschließlich der berücksichtigung des diamond problems<br />

IS ADD


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

Abbildung 55: The Kiel approach to performance forecasting: Parameter zur Erhebung der DBMS-Performanz<br />

c 1<br />

c 2<br />

...<br />

c n<br />

✲<br />

✲<br />

{S i (¯c, ¯p)|1 ≤ i ≤ m}<br />

✲<br />

✻p 1<br />

✻ p2 ... ✻p l<br />

o 1<br />

o 2<br />

...<br />

o m<br />

✲<br />

✲<br />

✲<br />

Abbildung 56: The general model for performance forecasting<br />

Abbildung 57: The Kiel approach to performance forecasting: Der Synergetik-Zugang<br />

IS ADD


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

Abbildung 58: The Kiel approach to performance forecasting: Auswahloberfläche des Prototyps<br />

Abbildung 59: The Kiel approach to performance forecasting: Auswahl der CPU-Analyse<br />

Abbildung 60: Comparing the prediction with the real behaviour<br />

IS ADD


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

Erfahrungs: Explizite Berücksichtigung des Performanz-Pr<strong>of</strong>iles und -Portfolio.<br />

Beispiel von ETL: Beyond SQL Querying (Not trapped into the SQL trap).<br />

Tina Musterfrau,<br />

casual<br />

user<br />

??<br />

✲<br />

user<br />

in the<br />

help !!<br />

DBMS trap help !!<br />

✻<br />

❄<br />

Search<br />

request<br />

topic<br />

✿ welt<br />

concepts<br />

❄<br />

search<br />

concept<br />

❄<br />

result<br />

concept<br />

parametric<br />

HERM<br />

expressions<br />

✲ query ❄<br />

form<br />

✲answer<br />

form<br />

❄<br />

✮<br />

answer<br />

for search<br />

relational<br />

database<br />

schema<br />

❄<br />

✲ SQL ✛<br />

query<br />

❄<br />

SQL query<br />

set<br />

DBS<br />

✛<br />

<br />

❄<br />

query<br />

interface<br />

data<br />

base<br />

DBMS query<br />

representation<br />

✻<br />

Abbildung 61: Concept-Based Query Processing Instead Of Direct SQL Querying<br />

Three-Step Approach to SQL Query Generation<br />

The Cottbus Intelligent NL Request Transformer<br />

IS ADD


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

Generation <strong>of</strong> SQL query c<strong>and</strong>idates based on full information<br />

Ontology / WordNet /<br />

thesaurus<br />

NL<br />

utterance<br />

Relational<br />

database<br />

content<br />

Database schema<br />

in extended<br />

ER model<br />

3 ❄ 3 ❄<br />

Enriched syntax Proper name<br />

tree<br />

c<strong>and</strong>idates<br />

3 ❄ ✾<br />

Priority-ordered paths<br />

in the extended ER schema<br />

Translation style<br />

used for compilation<br />

<strong>of</strong> relational schemata<br />

from HERM schemata<br />

3 ✾<br />

priority-ordered set <strong>of</strong> SQL query c<strong>and</strong>idates<br />

Abbildung 62: Three-step Approach to SQL Query Generation<br />

ONTO-<br />

LOGY<br />

WORD<br />

NET<br />

Query<br />

Liquefaction<br />

RADD<br />

DB <strong>Design</strong><br />

Tool<br />

❄<br />

DB<br />

Schema<br />

Manager<br />

(e)ER<br />

Schema<br />

❘<br />

❄<br />

DB<br />

Thesaurus<br />

Manager<br />

✒<br />

✻<br />

❘<br />

✯<br />

Syntactical<br />

<strong>Analysis</strong><br />

❄<br />

Syntax<br />

tree<br />

❄<br />

Intelligent<br />

Path<br />

Extractor<br />

❄<br />

Paths in<br />

ER Schema<br />

✛ NL query ✛ Web Input<br />

ER2R<br />

Translation<br />

Style<br />

ISL ✻<br />

DBMain<br />

DB <strong>Design</strong><br />

Tool<br />

■<br />

...<br />

✲<br />

Database<br />

❄<br />

Relational<br />

Query<br />

Melting-Pot<br />

Database<br />

✛✲ Managem.<br />

System<br />

✲ Paths <strong>and</strong><br />

SQL queries<br />

✲✛<br />

DB2Web<br />

System<br />

✲<br />

✲✛<br />

Web<br />

Presenter<br />

Abbildung 63: The Cottbus Intelligent NL Request Transformer<br />

IS ADD


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

Abbildung 64:<br />

Das Vorlesungsplanungsbeispiel zur Illustration<br />

IS ADD


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

Which lectures are given by Vierhaus <strong>and</strong> Thalheim?<br />

IS ADD


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

The Trick Behind the Curtain: Media Types for Specification <strong>of</strong> Content<br />

• Raw media types = (cont(M), sup(M), view(M), op(M))<br />

content type cont(M), set <strong>of</strong> supertypes sup(M),<br />

view(M) = Q (S inp , S outp )<br />

generic functions op(M) for changing the database<br />

• Attached operations: (signature, selection type, body)<br />

selection type - supertype <strong>of</strong> cont(M)<br />

e.g. generalization/specialization, reordering, browsing, linking, surveying, searching, join<br />

HERM view<br />

• Media type: raw media type + unit extension<br />

+ order extension + cohesion/adhesion + hierarchical versions<br />

• Usage modeling: usage dimensions, scales, user pr<strong>of</strong>iles, user kind<br />

• Container = (cont(C), layout(C), kind(C))<br />

for shipping <strong>and</strong> representation<br />

IS ADD


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

HERM-Compiler 0. Konfiguration des HERM-Übersetzers.<br />

Kanonische Spezifikation von Typen<br />

HERM-Typ<br />

T comp(T) keySyst(T) integr(T) Σ T<br />

.... ... ...<br />

relationaler Typ<br />

R attr(R) keySyst(R) Σ R<br />

.... ... ...<br />

• “abgebogene”<br />

Constraints<br />

• domain constraints<br />

• constrained references<br />

innere<br />

Listen-Typ<br />

XML multilist(L) keySyst(L) integr(T) Σ L<br />

.... ... ...<br />

• Σ L als refStructure mit expliziter variabler Listensemantik<br />

• hier auch expliziter Stil<br />

eg., “Russian doll” oder auch “Venetian<br />

blind” oder auch “Salami slice”<br />

DBMS-Pr<strong>of</strong>il z.B. 80er Jahre<br />

• atomare Attribute<br />

• primary key - entity integrity rule / assumption<br />

• rudimentäre domain constraints<br />

• domain-key-NF als die präferierte NF<br />

wobei auch viele Einschränkungen hinzukommen z.B. INT4 als Typ<br />

• Index-Strukturen<br />

oder auch DBMS der 90er<br />

• domains als UDT’s<br />

• automatische ID als TID<br />

oder auch XML oder semistructured DBMS<br />

• rationale Bäume mit expliziter Führung der Referenzen<br />

• semantically meaningful units overlay structure with units<br />

Architektur des Systemes mit einigen expliziten Annahmen z.B.<br />

• Integritätspflege über Schnittstellen z.T.<br />

• nur über stored procedures werden interfaces gefildet<br />

• ...<br />

Unterstützung der Integritätspflege<br />

Typensystem ist<br />

• mengenbasiert<br />

• multimengenbasiert<br />

• listenbasiert<br />

IS ADD


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

Complex attributes mit Default-Einstellung<br />

• Flattening z.B. zum String-Datentyp<br />

• Wurzel-Attribute<br />

• Separates Schema<br />

• Listen-Type<br />

Hierarchies entweder mit dem event-separation oder dem union oder der Universal-Relationen-Annahme<br />

Null value support je anch DBMS<br />

Strong or weak semantics<br />

Weak support as the normal case<br />

Cluster mit/ohne Harmonisierung der Identifikation oder verallgemeinerter, angereicherter Integrität [Wan98]<br />

Treatment <strong>of</strong> cardinality constraints<br />

Inherent constraints<br />

Controlled redundancy<br />

Naming conventions<br />

Abbreviation rules z.B. bei Erzeugung von .-Notationen<br />

Portfolio-Aufnahme der Anwendung.<br />

(DB − Schema, F unctionality, Support − Schema) mit<br />

Functionality umfaßt auch: access portfolio und modification portfolio<br />

modelliert am einfachsten als Überlagerungsschema<br />

schema × function → P(schema)<br />

y.B. auch S × Q → query − subschema<br />

mit DBschema × q → (DB − sub − schema, result − schema)<br />

oder auch DBschema ∪ views × q → (DB − sub − schema, result − schema)<br />

wobei auch Anfrageformen und Antwortformen verwendet werden können<br />

Abgeleitete Übersetzungsoptionen.<br />

analog zu den compiler directives (C, C++)<br />

1. Hierarchien-Beh<strong>and</strong>lung<br />

2. kontrolleirte Redundanz<br />

3. NULL support<br />

4. Constraint enforcement insbesondere für<br />

• ID und Integration<br />

• cardinality constraints<br />

• inherent constraints<br />

IS ADD


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

siehe auch das vorgestellte enforcement pr<strong>of</strong>ile <strong>and</strong> portfolio<br />

nach den Jaakkola-Thalheim-Rahmenwerk<br />

5. naming conventions<br />

6. !!! Schattentypen<br />

7. Mengen oder Pointer- oder hybride Semantik<br />

8. explizite abgeleitete Attribute mit refresh-Funktion (Trigger, stored procedures, ...)<br />

9. Separation der Integritätspflege<br />

interface-basiert<br />

TA-basiert<br />

maintenance-based<br />

10. orthogonale Schemata separat oder eingefaltet (z.B. Währung, Adresse mit PLZ,...)<br />

11. Referenztypus: schlüsselbasiert oder reference based<br />

12. identifier based treatment<br />

Resultierendes Preprocessing.<br />

1. Trennung von Defintions- und Nutzungsbaum<br />

optional normalisiertes HERM-Schema mit IC-Anreicherung<br />

Trick: Attribut-Graph-Schema<br />

2. Pivoting von Nutzungstypen<br />

siehe Vorlesungsbeispiel: inserted by ist separierbar<br />

3. Reduktion ableitbarer Typen<br />

4. explizite Injektion von impliziten ER-IC<br />

uses constraints (based-on types)<br />

5. Bereitstellung von Hilfskonstrukten<br />

Transformationsobligationen Typus Obligation<br />

... ... ...<br />

HERM-Compiler 1. Lexikalische Analyse.<br />

Resultat: Syntaxbaum und aufgelöste Token<br />

als Beispiel: β-Schema nach Embley-Beispiel im H<strong>and</strong>book, Kapitel 5, Bild 5.2.<br />

ggf. auch mit bereits erfaßten interface-gepflegten IC<br />

Aufteilung in Sinneinheiten<br />

1. Ableitung eines kanonischen HERM-Schemas<br />

Definitionstypen unabhängig in der Existenz, hin zu Kern-Entity-Typen<br />

ER-Schema mit expliziten Existenzabhängigkeiten<br />

2. FD-Umgebung eines Typen<br />

auch unter Einbeziehung der Subtypen<br />

i.a. nur erste Stufe erfoderlich<br />

Env 1 F D = {T 1(...), .T p (.....)}<br />

IS ADD


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

3. Aufbau eiens Token-Waldes<br />

Entfernung der Redundanz unter den Zeichen<br />

Entfernung von Pragmas (processing directives)<br />

HERM-Compiler 2. Syntaktische Analyse.<br />

Resultat: erweiterter Syntaxbaum, Baum der Integritätsbedingung<br />

ggf. auch mit bereits erfaßten interface-gepflegten IC<br />

Zusammenfassung zu Einheiten (Abletungsmechanismen dazu, auch unter Berücksichtigung der hierarchischen<br />

Struktur)<br />

d.h. von<br />

T comp(T) keySyst(T) integr(T) Σ T<br />

....<br />

zu<br />

... ...<br />

mit Env(T) = ∅<br />

T ∪ env(T) comp(T) ∪ foeignKeys(T) keySyst(T) integr(T) Σ T ∪ foreignKeyConstraints(T)<br />

.... ... ...<br />

beachte auch mit Erzwingungsform<br />

damit<br />

1. Env(T)-Ermittlung<br />

2. Auflösung der Compiler-Directives<br />

• Hierarchien-Beh<strong>and</strong>lung (union, root entity type, new attribute for each specilisation, cluster)<br />

• redundancy<br />

• NULL support<br />

• enforcement style<br />

• naming <strong>and</strong> binding<br />

• shadow, set semantics, derived notions<br />

• orthogonale Schemata, reference type, ID<br />

HERM-Compiler 3. Semantische Analyse.<br />

Resultat: Schema korrekt, Schema erfüllbar<br />

Ermittlung und Überprüfung der semantischen Eigenschaften<br />

Verbesserung der Schemata<br />

Typensystem für Dom(S) ggf. mit Überprüfungsmechanismen und Ableitung<br />

Optionen für Optimierer<br />

Steeg-Beispiel<br />

Ableitung einer attributierten Grammatik<br />

eiinschließlich azyklischer Attributierung<br />

1. Ableitung der IC<br />

2. Control <strong>of</strong> IC<br />

3. Coherence <strong>of</strong> IC, e.g., diamond property<br />

IS ADD


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

HERM-Compiler 4. Zwischencodeerzeugung.<br />

Resultat: Schema in der Zielsprache als logisches Schema<br />

anh<strong>and</strong> von HERM Regeln<br />

1. Auflösung der komplexen Attribut-Typen (Menge, Liste, Multimenge, Tupel, ...) zu (STRING, RECORD, separates<br />

Schema, Kodierung, Einmbettung in <strong>and</strong>eres Attribut)<br />

2. mit expliziter Umgebungsintegration<br />

von<br />

T comp(T) keySyst(T) integr(T) Σ T env(T)<br />

.... ... ... ...<br />

zu<br />

T comp(T) ∪ primKey(T) keySyst(T) integr(T) Σ T ∪ foreignKeys(T)<br />

.... ... ...<br />

Damit dann direkte Zwischencodeerzeugung<br />

1. Ableitung von Hilfsstrukturen<br />

Indizes, views, Schlüssel, ID-Types<br />

2. Preschema<br />

einschließlich der Mengengerüste, nullable attributes, default values<br />

3. view derivation<br />

4. index derivation<br />

5. precedural components, trigger, stored procedures<br />

Girokontokarte<br />

(1,1)<br />

✛<br />

nutzt<br />

⊕<br />

✲<br />

berechtigt<br />

❄<br />

❫<br />

Girokonto ✛ besitzt<br />

✲<br />

(1,1)<br />

❘<br />

Kunde<br />

Abbildung 65: Ein einfache Bankanwendung mit alternativer relationaler Wiederspiegelung des Clustertypen<br />

wird durch die explizite Einführung der Art der Girokontenkarte anstatt einer Einführung eines weiteren Relationentyps,<br />

mit dem die Kundenkarte des Berechtigten von der Kundenkarte des Inhabers unterschieden wird (Vorteil:<br />

damit sind Kontobewegungen mit der Karte direkt der Karte zugeordnet)<br />

Kunde KundenNr Konto KontoNr KundenNr<br />

IS ADD


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

Berechtigter KundenNr KontoNr Kundenkarte KartenNr KontoNr Art<br />

Berechtigter[KundenNr] ⊆ Kunde[KundenNr]<br />

Berechtigter[KontoNr,KundenNr] || Konto[KontoNr,KundenNr]<br />

σ Art=“direkt ′′(Kundenkarte[KontoNr,KundenNr]) ⊆ Konto[KontoNr,KundenNr]<br />

σ Art=“berechtigt ′′(Kundenkarte[KontoNr,KundenNr]) ⊆ Berechtigter[KontoNr,KundenNr]<br />

Durch ein derartiges Herangehen kann dann auch aufNormalform-Garantien (siehe Embley spüter, translate &<br />

normalise (im compiler) versus normalise & translate (im Preprocessor)) orientiert werden.<br />

HERM-Compiler 5. Vorbereitung zur Schema-Optimierung.<br />

Ziel: Vermeidung überflüssiger oder schelchter Berechnungen<br />

Ersetzung von Berechnungen durch billigere<br />

Anpassung an die Hardware und Architektur<br />

1. post normalisation<br />

2. view optimisation<br />

index optimisation<br />

3. materialisation options<br />

4. process separation into database phases<br />

initialisation phase<br />

production phase<br />

archive phase<br />

...<br />

5. query etc. hints<br />

Vorbereitung auf Performanzbetrachtungen<br />

1. Kernentitytypen<br />

Kernentitytypen stellen unabhängig vonein<strong>and</strong>er existierende Klassen von Objekten dar. Ausgehend von Kernentitytypen<br />

werden Spezialisierungs- und Generalisierungshierarchien dargestellt. Damit wird festgelegt, welcher<br />

der Transformationszugänge (event-separation, event-nonseparation, union, weak-universal-relation) für<br />

Hierarchien benutzt werden.<br />

Die Reihenfolge der Attributtypen kann aus Performanzgründen verändert werden. Häufig benutzte bzw. Typen<br />

mit Wertebereichen fester Länge sollten zuerst entworfen werden. Die Reihefolge hängt von der beabsichtigten<br />

Plattform ab, deren Eigenschaften nun zu integrieren sind.<br />

Attributtypen<br />

Pragmatik:<br />

Die Zuordnung der Transformationszugänge kann durch eine Betrachtung der Inklusionsabhängigkeiten vereinfacht<br />

werden. Liegen echte Inklusionsabhängigkeiten vor und keine ‘Geschwister’typen, dann liegt eine<br />

Spezialiserungshierarchie für diesen Kerntypen vor.<br />

Im Beispiel können wir die Typen Lehrstuhlinhaber, Dekan, Person und Angestellter betrachten. Es gilt keine<br />

Exklusionsbeziehung der ersten beiden Typen, aber eine Exklusionsabhängigkeit dieser beiden Typen zum<br />

letzten Typen. Somit sind entweder die Typen Lehrstuhlinhaber, Dekan einem gemeinsamen Supertypen zugeordnet,<br />

der mit dem Typen Angestellter einen Kerntypen bildet, oder der Typ Person ist ein Kerntyp.<br />

Analog sind zusätzliche Attribute ein Hinweis auf eine Eigenständigkeit der Teiltypen.<br />

Hierarchien können kompakter gestaltet werden, sobald entsprechende Komplexitätsbeschränkungen comp(R, R ′ ) =<br />

IS ADD


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

(1, 1) gelten. In diesem Fall ist zu prüfen, ob eine Eigenständigkeit beibehalten werden muß aufgrund der Anwendung.<br />

Da in der Modellierung aus bestimmten Gründen Entitytypen ausein<strong>and</strong>er gehalten wurden, bleibt auch bei<br />

einer automatischen Übersetzung diese Differenzierung erhalten. Sollte davon abgegangen werden für das physische<br />

oder logische Schema, dann liegt ein Modellierungsfehler auf der HERM-Ebene vor.<br />

Für die spätere Übersetzung verwenden wir den Typennamen, die Typenbeschreibung, den Entwerfernamen,<br />

Synonymbeziehungen, die Quelle (falls Daten durch Algorithmen generiert werden), die Häufigkeiten und <strong>and</strong>ere<br />

quantitative Charakteristika. Daneben können die Beh<strong>and</strong>lung von Backup und Wiedergewinnung, Reorganisationsparameter,<br />

Monitoringanforderungen, Sicherheitsbeschränkungen, Eliminationsbedingungen und<br />

<strong>and</strong>ere Parameter der Umgebung und der Plattform von Bedeutung sein. Ist dies noch nicht erfaßt oder kann<br />

nicht aus den bereits entworfenen <strong>Information</strong>en erschlossen werden, dann sind diese <strong>Information</strong>en für die<br />

entsprechenden Typen zu erfassen.<br />

Da Plattformen meist beliebige Reihenfolgen von Attributen nicht unterstützen, ist die Reihenfolge explizit<br />

festzulegen. Speicherblöcke, Fragmentierungszugänge können eine <strong>and</strong>ere Reihenfolge implizieren.<br />

2. Anpassung an die Plattform<br />

Wir unterscheiden relationale, hierarchische und Netzwerkplattformen. Weiterhin können Plattformen nach ihrer<br />

Hardware (PC, Workstation, Mainframe) und der Architektur (Client/Server etc.) unterschieden werden.<br />

Eine Transformation legt auch die Speicherzuordnung (Primärspeicher, Sekundärspecher, freier Speicher) für<br />

Klassen fest. Durch die Kardinalität der Entitytypen wird diese Zuordnung mit bestimmt. Sie ist damit an die<br />

Eigenschaften der Plattform gebunden, die nun explizit zu berücksichtigen ist. Ein Zugriff im Sekundärspeicher<br />

ist meist weniger effizient. Deshalb sollte ausreichend Primärspeicher vorgesehen werden können. Ansonsten<br />

ist eine horizontale Dekomposition vorzusehen.<br />

Die Affinität von verschiedenen Entitytypen bedingt <strong>of</strong>t auch einen gemeinsamen Zugriff bzw. eine gemeinsame<br />

Modifikation. Sieht eine Plattform nur relativ kleine Teile einer Datenbank zur gemeinsamen Abspeicherung<br />

vor, dann ist durch die Affinität bereits eine Abspeicherungsstrategie determiniert. Für solche Plattformen<br />

ist die Affinität mit zu modellieren.<br />

Analog ist der parallele Zugriff verschiedener Benutzergruppen zu beh<strong>and</strong>eln. In diesem Fall ist das gemeinsame<br />

Benutzen von Daten mit darzustellen.<br />

Pragmatik:<br />

Meist sind die Regeln für eine Plattform nur sehr schwer aus den Begleitdokumentationen abzuleiten. Eine<br />

Abhilfe kann dann eine Benutzung von entsprechenden Entwurfshinweisen für die gewählte Plattform sein. Es<br />

werden die Entwurfshinweise mit unserem liberaleren Zugang verglichen und die Unterschiede auf Implementationsbeschhränkungen<br />

untersucht.<br />

3. Erzwingungsregeln für Entitytypen<br />

Einige Plattformen erlauben nur eine Erzwingung über Primärschlüsseln. In diesem Fall sind die Schlüssel, die<br />

vererbt werden, an die Erzwingungsregeln anzupassen. Weiterhin erlauben einige Plattformen für Primärschlüssel<br />

keine Nullwerte. Dann sind auch Nullwerte auszuschließen oder entsprechende Identifikatoren einzuführen.<br />

Die Komplexität der Erzwingungsregeln kann für verschiedene Plattformen unterschiedlich sein. Deshalb ist<br />

diese Komplexität bei der Beurteilung der Erzwingungsregeln mit einzubeziehen.<br />

Pragmatik:<br />

Obwohl das Einschränken der Schlüssel auf Primärschlüssel unserer Entwurfsphilosophie widerspricht, erhöht<br />

dieses Einbeziehen die Transparenz der Übersetzung des Schemas für den Benutzer. Deshalb wurde in diesem<br />

Schritt diese Einschränkung mit eingeschlossen, sobald die Plattform nur diese Beh<strong>and</strong>lung zuläßt. Zugleich<br />

wird aber diese Einschränkung auch zu einer relativ harten Einschränkung für die modellierten Schemata. Ein<br />

Mittelweg ist das explizite Darstellen der Implementationseinschränkungen für eine spätere Berücksichtigung<br />

während des Transformationsprozesses.<br />

Werden Wertebereiche für die Erzwingungsregeln benutzt, dann entsteht in vielen Fällen ein nur für diesen<br />

IS ADD


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

Wertebereich zugeschnittener Code. Damit wird eine spätere Modifikation des Schemas nicht mehr unterstützt.<br />

Deshalb ist es besser nach einer optimalen Erzwingungsregel zu suchen. Wird durch eine Plattform diese Suche<br />

nicht unterstützt, dann kann auch die Plattform falsch gewählt sein.<br />

Eine Reihe von DBMS unterstützen nicht mehrere Schlüssel oder auch nicht komplexere Schlüssel. In diesem<br />

Fall sind die Erzwingungsmechanismen anzupassen. Das Schema bedarf keiner Änderung.<br />

4. Regeln für Relationshiptypen<br />

Auf analoge Art werden Erzwingungsregeln für Relationshiptypen auf ihre Umsetzung und Umsetzbarkeit für<br />

die gewählte Plattform untersucht.<br />

Die bereits entworfenen Erzwingungsregeln sind für einen Benutzer transparent. Sie können direkt in den<br />

meisten DBMS umgesetzt werden. Ist dies nicht für die gewählte Plattform möglich, sind entsprechende Maßnahmen<br />

zu ergreifen.<br />

Pragmatik:<br />

Oft steht für Erzwingungsregeln nur die referentielle Integrität zur Verfügung Deshalb können solche Erzwingungsregeln<br />

entweder durch Zurückführung auf die Erzwingungsregeln oder durch entsprechende Anwendungsprogramme<br />

unterstützt werden.<br />

5. Erzwingungsregeln für Attributtypen<br />

Es wird für die gewählte Plattform überprüft, inwieweit die entworfenen Datentypen, die Formate, die Wertebedingungen,<br />

die Eindeutigkeit, Nullwerte und Defaultwerte unterstützt werden können. Ist dies nicht der Fall,<br />

dann sind evt. Kompromisse ausreichend oder es sind entsprechende Veränderungen am Schema oder an der<br />

Plattform vorzunehmen.<br />

Nullwerte sollten anh<strong>and</strong> der Eigenschaften der Plattform nochmals auf Notwendigkeit untersucht werden.<br />

Man kann <strong>of</strong>t eher auf Defaultwerte ausweichen. In diesem Fall sind automatisch generierte Defaultwerte einsetzbar.<br />

Im Falle der Verletzung der Integritätsbedingungen können St<strong>and</strong>ardfunktionen zur Mitteilung an den Benutzer<br />

oder den Datenbank-Administrator entwickelt werden.<br />

Pragmatik:<br />

Welche der Veränderungsoptionen genutzt wird im Falle eines Konfliktes zwischen Attributtyp und der Darstellbarkeit<br />

durch die Plattform, hängt von den Möglichkeiten der Plattform, den Kosten und Schwierigkeiten<br />

einer Integritätserzwingung und der Unterstützung durch Anwendungsprogramme ab. Eine Schlüsseleigenschaft<br />

kann meist entweder durch entsprechende Datenwörterbücher der Plattform oder durch eindeutige Indizes<br />

unterstützt werden. Die Eigenschaft, daß ein Schlüssel minimal ist (d.h. keine echte Teilmenge von diesem<br />

Schlüssel ist wiederum ein Schlüssel) wird sehr selten unterstützt. Ein Ausweg aus der Nichtdarstellbarkeit<br />

kann auch die Entwicklung einer Menge von St<strong>and</strong>ardprozeduren für die Pflege der Semantik einer Datenbank<br />

sein. Damit werden jedoch die Implementationsmechanismen für den Benutzer evt. etwas schwieriger nachvollziehbar.<br />

Es wird eine zusätzliche Programmierung erforderlich. Dieser Zugang ist jedoch einfacher als die<br />

direkte Benutzergesteuerte Pflege.<br />

Werden Defaultwerte anstatt von Nullwerten eingesetzt, dann sind die Erzwingungsregeln zu überarbeiten.<br />

Insbesondere Aggregationsoperationen können zu inkorrekten Werten führen. Werden zusätzlich St<strong>and</strong>ardfunktionen<br />

eingesetzt, dann sind die generischen Funktionen und die Retrievaloperationen zu kontrollieren und<br />

gegebenenfalls zu programmieren. Damit werden die St<strong>and</strong>ardoperationen abhängig vom jeweiligen Typ.<br />

Da ein ständiges Berichten über Integritätsverletzungen nicht nur die Performanz verschlechtert, sondern auch<br />

dem Benutzer lästig werden kann, sind eher akkumulierende Funktionen sinnvoll, die zu einem festgelegten<br />

Zeitpunkt die Verletzung von Integritätsbedingungen anmelden. Damit wird jedoch auch das Verhalten von<br />

Transaktionen verändert, da diese erst mit dem Abarbeiten der Verletzungsliste zuende geführt werden können.<br />

6. Regeln für die Funktionalität<br />

IS ADD


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

Alle Anfragen sind auf ihre Unabhängigkeit von <strong>and</strong>eren Modifikationen zu überprüfen.<br />

Für Updateoperationen muß genügend freier Speicher zur Verfügung stehen. Damit ist nach einer umfangreichen<br />

Modifikationsoperation eine Neuorganisation des Speichers vorzusehen.<br />

Aus Sicherheitsgründen kann die Weitergabe von Klarnamen an Benutzer nicht erlaubt sein. In diesem Fall<br />

ist ein St<strong>and</strong>ard für die Namenbeh<strong>and</strong>lung über eine Synonymbeziehung für die ensprechenden Namen mitzuführen.<br />

Locking-Mechanismen werden benutzt, um eine konsistente Verwaltung konkurrierender Operationen verschiedener<br />

Benutzer zu ermöglichen. Diese Mechanismen sind durch die Größe der zu blockierenden Datenbankteile,<br />

durch den Lock-Modus und durch die Lock-Dauer zu unterstützen. Diese Spezifikation ist wiederum<br />

von der gewählten Plattform abhängig.<br />

Pragmatik:<br />

Vorbereitete Anfragen, die Attributnamen nicht näher eingrenzen, sollten möglichst nur in Ausnahmefällen<br />

verwendet werden. Sie sind für jeder Modifikation des Schemas wieder zuu überprüfen. Damit sind solche Anfragen<br />

kontextsensitiv.<br />

Für Lock-Mechanismen ist es sinnvoll, den allgemeinsten Mechanismus auszuwählen. Für die Auswahl der<br />

entsprechenden Lock-Mechanismen sind bei verschiedenen DBMS die Zuordnung der logischen Tabelle zur<br />

physischen Speicherstruktur, das physische Layout der Elemente von Klassen, die Bedeutung des Wortes ‘Datenbank’<br />

im Rahmen der Plattform und die Herausschälung der Lock-Parameter, die vom Entwerfer wirklich<br />

beeinflußt werden können.<br />

HERM-Compiler 6. Schema-Tuning (Operationale Optimierung durch Tuningtechniken).<br />

Aufgabe: Tuning des Zugriffs und Spezifikation von Indizes<br />

Tuningtechniken und ihre konzeptionelle Wiederspiegelung<br />

Weder für das relationale, noch das hierarchische oder Netzwerkmodell gibt es inhärente Probleme, die zu einer<br />

schlechten Performanz, insbesondere beim Retrieval führen. Die Implementation dieser Konzepte führt erst zu den<br />

Performanzproblemen. Um das Tuning einer Anwendung zu ermöglichen können folgende Charakteristika betrachtet<br />

werden:<br />

1. Es werden Eigenschaften des Anwendungsszenarios betrachtet:<br />

(a) Art der Berechnung<br />

i. erforderliche Operationen<br />

ii. Art der Selektionskriterien<br />

iii. Datenvolumen (Anzahl der durchmusterten Objekte und der berechneten Resultatsobjekte)<br />

(b) Sichtbarkeit<br />

i. Organisationsniveau der Benutzer<br />

ii. Häufigkeit der Operationen<br />

iii. Beziehung zum Geschäftsprozeß und seinen Implikationen<br />

(c) Berechnungsmodi<br />

i. online (voraussichtlich)<br />

ii. batch (voraussichtlich)<br />

iii. interaktiv (ad hoc)<br />

iv. Berechnung während oder außerhalb von Spitzenzeiten<br />

(d) Performanzerwartungen<br />

IS ADD


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

i. Ausführungszeit (im online- oder batch-Betrieb, während interaktiver Anfragen bzw. die Zeit bis zur<br />

Auslieferung von batch-Jobs)<br />

ii. Durchlaßfähigkeit (Transaktions-/Anfrageraten, Modifikationsraten)<br />

iii. Priorität der Operationen<br />

2. Es werden Benutzer, die kritische Anforderungen an die Performanz haben, analysiert. Damit können entsprechende<br />

Bewertungen (Priorität) für deren Operationen gefunden werden und in das Anwendungsszenario mit<br />

einfließen.<br />

3. Kritische Transaktionen, Anfragen, batch-Prozesse, die eine Herausforderung für die Performanz darstellen,<br />

werden besonders angemerkt.<br />

4. Kritische Prozesse werden mit ihrem Berechnungs- und Zugriffsmechanismus modelliert. Man kann z.B. spezifische<br />

Zugriffspattern für die Darstellung auf konzeptionellen Niveau nutzen ohne die genauen Zugriffsmechanismen<br />

oder Berechnungsalgorithmen zu kennen oder weiter vergröbernd nur die involvierten Typen als<br />

solche kennzeichnen.<br />

5. Es werden verschiedene Entwurfsalternativen für kritische Teile von Schemata betrachtet.<br />

Im weiteren werden verschiedene Tuningmechanismen im Detail betrachtet. Die Reihenfolge ist dabei durch die<br />

Erhaltung der Schemaqualität (Korrektheit, Konsistenz, Stabilität, Natürlichkeit) determiniert. Tuningmechanismen,<br />

die sich nicht auf konzeptionellen Niveau widerspiegeln, werden im weiteren nur angezeigt, nicht aber ausführlich<br />

erörtert.<br />

Tuningtechniken für Zugriffsmechanismen<br />

Zugriffsmechanismen beeinflussen die Performanz in starkem Maße. Es gibt verschiedene Speicherungsmethoden<br />

und darauf aufbauend sehr verschiedene Zugriffsmethoden (Durchmustern, Gruppieren, Benutzung von Hash-<br />

Funktionen). Damit wird auch eine Speichermethode auszuwählen sein, die von der gewählten Plattform zu unterstützen<br />

ist. Darauf aufbauend können entsprechende Algorithmen für den Zugriff ausgewählt werden. Ein weiterer<br />

Schritt zur Steigerung der Effizienz ist die Einführung von Indizes.<br />

Zugriffspfade werden gewöhnlich durch den Optimierer generiert. Der Optimierer benutzt dazu als Eingabedaten<br />

Statistiken der Datenbankbenutzung (I/O-Raten, Speicherverbrauch, CPU-Zeit usw.). Es werden allerdings durch<br />

den Optimierer nur die endgültigen Zugriffspfade ausgewählt. Durch die Angabe von Zugriffspfaden kann jedoch<br />

ein Entwerfer den Zugriffsmechanismus determinieren. Damit ist eine Spezifikation zum einem abhängig von der<br />

gewählten Plattform und dem St<strong>and</strong> der Technologie, zum <strong>and</strong>eren aber von der Anwendung, insbesondere den<br />

Prozessen und somit typische Zugriffsmuster.<br />

Voraussetzung zur Spezifikation der Zugriffspfade sind damit<br />

Zugriffsmechanismen, die durch die Plattform unterstützt werden können,<br />

Auswahlmechanismen, die die Plattform für die Auswahl einer spezifischen Zugriffsmethode benutzt<br />

und die<br />

kritischen Prozeßanforderungen der Anwendung.<br />

Man kann und soll sich nicht auf eine Auswahl genau einer Zugriffsmethode konzentrieren, sondern eher auf die<br />

Auswahl einer optimalen Menge von Zugriffsmechanismen. Damit sind die folgenden Problemstellungen von<br />

Interesse:<br />

· Welcher Zugriffsmechanismus kann am besten die verschiedenen Anforderungen der Anwendung befriedigen?<br />

· Welche Zugriffsmechanismen werden zusätzlich benötigt? Kann evt. die Einführung eines zusätzlichen Index Abhilfe<br />

schaffen? Kann eine Sortierung den Zugriff erleichern?<br />

· Welche Zugriffsmechanismen sind zu komplex? Kann z.B. eine Gruppierung den Zugriff erleichtern ohne daß durch<br />

das schlechtere Updateverhalten die Performanz sinkt?<br />

IS ADD


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

Diese Fragestellungen sehen nur auf den ersten Blick sehr maschinennah aus. In Wirklichkeit kann aber gerade<br />

durch eine Strukturierung bereits ein besseres Verhalten erreicht werden. Damit werden aber zumindest das konzeptionelle<br />

Modell, mitunter sogar die eine oder <strong>and</strong>ere Sicht einer Veränderung unterworfen. Im allgemeinen ist die<br />

Auswahl des besten Zugriffspfades ein trickreiches Verfahren. Dazu müssen auch nicht nur die Plattform oder das<br />

DBMS, sondern auch die Version und Konfiguration des Systemes berücksichtigt werden. Es gibt jedoch einige allgemeine<br />

Prinzipien, die direkt aus der Anwendung ableitbar sind, auch wenn durch eine relationale Transformation<br />

bereits aufgrund von Forderungen wie 1. Normalform vorh<strong>and</strong>enes Wissen nicht direkt dargestellt wird.<br />

In diesem Schritt wird eine interne Repräsentationsstruktur abgeleitet bzw. es werden Strukturen entsprechend<br />

dem Verhalten restrukturiert. Zuerst werden dabei Zugriffsmethoden betrachtet (Speicherorganisation, Indexiserungsmethoden).<br />

In nächsten Schritt werden wir die Forderung nach Redundanzarmut aufweichen entsprechend den Verhaltensanforderungen.<br />

Damit wird die Struktur in den Sichten und des konzeptionellen Schemas nochmals verändert.<br />

Oft unterstützen Werkzeuge das Abschätzen der Performanz einer Anwendung. Solche Werkzeuge verlangen<br />

jedoch ebenfalls eine Abschätzung der CPU-Zeit, der I/O-Zeit, der Durchmusterungszeit und -rate, sowie weitere<br />

Parameter. Es gibt bereits eine kommerzielle Animationswerkzeuge, mit deren Hilfe die Performanz durchgespielt<br />

werden kann.<br />

Hinzufügen von Indexierungsmechanismen<br />

Indizes können zu jeder Klasse hinzugefügt werden für jeden Identifikationsmechanismus. Da ein Index bei einer<br />

Modifikation gepflegt werden muß, wählt man nur einige Identifikationsmechanismen aus, für die ein Index angelegt<br />

und gepflegt wird.<br />

Wir unterscheiden Gruppierungsindizes, die das Durchmustern unterstützen und auf einer Gruppierung basieren,<br />

und geordnete Indizes, die auf einer Ordnung der Wertebereiche basieren.<br />

Außerdem werden Indizes zur Unterstützung der Operationen angelegt. Somit impliziert die entworfene Funktionalität<br />

auch das Anlegen entsprechender Indizes für die verschiedenen Typen.<br />

1. Durchmusterungsprozesse<br />

Für welche Typen ist ein Durchmustern noch ausreichend effizient, für welche nicht? Damit kann für die<br />

letzteren Typen nach <strong>and</strong>eren Zugriffsmechanismen gesucht werden. Die Effizienz wird durch die Häufigkeit<br />

der Modifikationen, durch die Durchmusterungsrate für Anfragen entsprechend den Dialogobjekten, durch die<br />

Größe der Klassen und das Anwendungsszenario bestimmt.<br />

Durch Gruppierung, Projektion und Partitionierung kann Durchmustern noch effizienter werden. Deshalb ist<br />

für die interne Darstellung eine vertikale oder horizontale Dekomposition, eine Verfeinerung der Teiltypenhierarchie<br />

oder eine Gruppierung sinnvoll. Dabei sind jedoch alle Prozesse im Komplex zu betrachten. Diese<br />

interne Repräsentation kann den jeweiligen Typen zugeordnet werden. Die konzeptionelle Darstellung wird<br />

dadurch jedoch nicht verändert.<br />

Dagegen sollten Klassen mit gleicher Struktur nicht den gleichen Speicherraum zugeordnet werden, weil dadurch<br />

Durchmustern ineffizienter wird.<br />

Pragmatik:<br />

Sequentiell Durchmustern kann heute jedes System. Es ist z.B. bei relationalen Plattformen der Defaultsuchmechanismus.<br />

Damit muß nur verst<strong>and</strong>en werden, wann Durchmustern effizient und wann es ineffizient ist.<br />

Durchmustern ist für kleine Klassen, die nicht zu komplex strukturiert sind (z.B. nicht mehr als 6 physische<br />

Blöcke für die Daten ihrer Objekte benötigen), für Klassen, für die Anfragen <strong>of</strong>t einen größeren Teil (mindestens<br />

ein Fünftel, je nach Plattform) der gesamten Klasse liefern, und für Klassen, über denen nur Anfragen<br />

einer niedrigen Priorität berechnet werden, eine Alternative. Damit wird die Pflege eines Index nicht mehr<br />

notwendig. Klassen dieser Form mit häufigen Modifikationen sind deshalb noch effizienter.<br />

IS ADD


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

Viele Plattformen unterstützen eine Segmentierung. Damit kann eine horizontale Dekomposition, die mit der<br />

Struktur der Antworten auf Anfragen korrespondiert, Durchmustern zur effizienten Suchmethode werden lassen.<br />

Analog kann durch eine Führung von Tupelidentifikatoren und eine Partitionierung bzw. Projektion das Durchmustern<br />

effizienter werden. Klassen, deren Anfragen nicht zusammenhängen, die aber gleiche Speicherräume<br />

benutzen, lassen Durchmustern ineffizient werden. Der Verbund von Klassen kann jedoch durch Durchmustern<br />

unter gewissen Umständen auch effizient werden.<br />

Die Effizienz von Durchmustern hängt auch von der Plattform ab. Wird z.B. paralleles Durchmustern unterstützt,<br />

werden Hochgeschwindigkeitsmedien und Techniken wie das Puffern oder <strong>and</strong>ere Ressourcen verw<strong>and</strong>t,<br />

dann ist Durchmustern effizient sogar für größere Klassen.<br />

2. Möglichkeiten von Gruppierungen<br />

Typen, die häufig auf die gleiche Art durchmustert werden, deren Anfrageoperationen strukturiert (insbesondere<br />

durch analoge Selektionskriterien) sind und analoge Durchmusterungsreihenfolgen erfordern, können,<br />

insbesondere falls Modifikationen durch die generischen Operationen eine Gruppierung nicht verändern, entsprechend<br />

den Operationen gruppiert werden. Neben der Gruppierung kann auch eine Sortierung (Darstellung<br />

durch eine Liste) die Performanz steigern.<br />

Bei einer Gruppierung sind die Auswirkungen auf parallele Anfragen mit zu betrachten. Lock-Techniken<br />

können dadurch vereinfacht werden oder komplexer werden. Wird das Verhalten verschlechtert, dann ist eine<br />

Gruppierung nicht angebracht.<br />

Eine Gruppierung ist für Relationshiptypen <strong>of</strong>t eine geeignete Methode zur Vereinfachung der Operationen<br />

über solchen Typen. Eine Gruppierung der Komponententypen nach ihren auf den Relationshiptypen vererbten<br />

Identifikationsmechanismus ist dann sinnvoll, wenn keine verschiedenenartigen Identifikationsmechanismen<br />

für verschiedene Relationshiptypen erforderlich sind.<br />

Pragmatik:<br />

Eine allgemeine universelle Optimierungsmethode existiert nicht. Man muß deshalb Gruppierungen und Ordnungen<br />

gegen die Komplexitiät der Operationen abwägen. Wird eine Klasse häufig modifiziert und ist die Modifikation<br />

durch die Gruppierung oder die Sortierung so erschwert, daß sich das Gesamtverhalten verschlechtert,<br />

dann wird man von einer Veränderung Abst<strong>and</strong> nehmen. Weiterhin wird bei manchen Plattformen eine Modifikation<br />

auch das Verschieben ganzer Teilklassen oder eine Neusegmentierung erfordern. Solche Plattformen<br />

sollten nur mit einfachen Strukturen benutzt werden.<br />

Kleine Klassen erfordern keine Gruppierung. Für solche ist ein Durchmustern stets effizienter.<br />

In relationalen Systemen wird die Gruppierung durch ORDER BY, GROUP BY, UNION, DISTINCT, verschiedene<br />

Arten von Verbunden und Selektionen unterstützt. Damit kann eine entsprechende Repräsentationsstruktur<br />

angegeben werden.<br />

Die Gruppierung der Identifikationsmechanismen ist eine einfache und effiziente Methode, solange nicht zu<br />

viele verschiedene Identifikationsmechanismen für den gleichen Typ geführt werden müssen. Sind Modifikationen<br />

nicht so häufig, die Trefferquoten für Anfragen relativ niedrig, dann kann eine Indexierung günstiger sein.<br />

Gruppierungen können auch durch Werkzeuge einiger DBMS für den Optimierer generiert werden. Solche<br />

Werkzeuge können auch benutzt werden, um freien Speicherplatz für zukünftige Modifikationen zuzuweisen.<br />

Diese Vorgehensweise liegt jedoch außerhalb unseres Zuganges zur Modellierung von Datenbanken.<br />

Die Komplexität der Sortierung ist abhängig von der gewählten Plattform.<br />

In unserem Beispiel kann z.B. ein Reiseverlauf dargestellt werden durch einen Typ, der Abfahrtsort und -zeit,<br />

sowie Ankunftsort und -zeit darstellt. Eine alternative Form ist die Verwendung einer Liste mit Listenelementen,<br />

die den Ort und die Zeit darstellen. Mit der letzten Form werden Konsitenzüberprüfungen zum Reiseverlauf<br />

einfacher.<br />

IS ADD


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

3. Möglichkeiten von Hashmechanismen<br />

Da der Hashzugriff besonders schnell ist, sollte für Abfragen in großen Klassen, die einen Zugriff auf Objekte<br />

in zufälliger Ordnung benötigen und relativ wenig Modifikationen erfahren, ein Hash-‘Schlüssel’ benutzt<br />

werden können. Hashzugriffe können insbesondere für Komponenten vorgesehen werden, die vielen Anfragen<br />

gemeinsam sind. Kann eine Hashfunktion benutzt werden, dann ist die Verteilung der Daten zu spezifizieren,<br />

sowie eine Strategie für Konfliktfälle, in denen der Zugriff auf mehrere Objekte erfolgt, die dann weiterselektiert<br />

werden.<br />

Pragmatik:<br />

Mit einer Angabe der Verteilung der Daten der Objekte in einer Klasse kann meist auch eine Hash-Funktion<br />

automatisch generiert werden. Da Hash-Funktionen Objekte nicht eindeutig identifizieren müssen, ist vorzusorgen<br />

für diese Nichteindeutigkeit. Konflikte von Hashwerten, d.h. eine Hash-Funktion generiert gleiche Werte<br />

für verschiedene Objekte, sollten beschränkt bleiben. Hashing ist nicht anzustreben, wenn die Wertebereiche<br />

nicht ausreichend genau spezifiziert sind, wenn die Werte nicht gleichverteilt vorkommen, wenn die verwendeten<br />

Komponenten nicht einfach zu einem Schlüssel ergänzt werden können, wenn die Selektionskriterien<br />

von Anfragen den Hash-‘Schlüssel’ nicht enthalten oder der Zugriff selbst nicht zufällig erfolgen kann. Hash-<br />

Techniken sind als Ergänzung zu <strong>and</strong>eren Zugriffstechniken anzusehen. Hash-Techniken können in verteilten<br />

DBMS meist nur für einen Ort angew<strong>and</strong>t werden.<br />

Häufig benutzte Kombinationen von Komponenten in Selektionskriterien eignen sich besonders dann für Hashfunktionen,<br />

wenn diese Komponenten nicht zu häufig modifiziert werden. Werden jedoch Teilmengen von den<br />

Hashfunktionen zugrundegelegten Komponenten in Selektionskriterien benutzt, dann können diese Hashfunktionen<br />

nicht benutzt werden.<br />

Die Auswahl einer geeigneten Hashfunktionen ist keine Aufgabe des Entwurfes. Sie wird für einige DBMS<br />

durch Werkzeuge unterstützt, in einigen DBMS werdenn Hashfunktionen sogar automatisch generiert.<br />

4. Auswahl von Schlüsseln<br />

Indizes werden für große Klassen angelegt, für die Anfragen eine relativ kleine Teilmenge auswählen und für<br />

die Anfragen über relativ wenige Komponenten reichen. Schlüssel bzw. Identifikationsmechanismen mit diesen<br />

Eigenschaften werden gekennzeichnet mit entsprechenden Indizes.<br />

Es ist bei der Auszeichnung eines Schlüssels für einen Index die Verschlechterung der Performanz möglich.<br />

Deshalb muß das Anlegen von Indizes abgewogen werden.<br />

Pragmatik:<br />

Beim Anlegen von Indizes können Gruppierungsindizes oder geordnete Indizes angelegt werden. Für die meisten<br />

Plattformen sind Gruppierungsindizierungsmechanismen vorh<strong>and</strong>en. Kann man eine Ordnung angeben,<br />

die mit der Ordnung einer Anwendung oder einer Reihe von Anfragen korrespondiert, dann ist ein geordneter<br />

Index mit der Angabe der Ordnung besser.<br />

Können verschiedene Klassen im gleichen Speicher abgelegt werden, dann können Indizes benutzt werden, um<br />

diese Klassen vonein<strong>and</strong>er zu trennen. Damit kann ein Mehrklassendurchmustern vermieden werden.<br />

Das Anlegen und die Pflege von Indizes erfordern zusätzliche Funktionen. Deshalb ist eine Betrachtung der<br />

Performanz notwendig. Dazu werden Speicherplatzabschätzungen, der Einfluß der generischen Operationen<br />

insert, delete und update, die Folgen für das Laden der Datenbank, die Reorganisationserfordernisse, die<br />

Wiederanlaufs- bzw. Rücksetzungszeit und die Sicherungsmechanismen betrachtet. Indizes über kleinen Klassen<br />

bringen keine Verbesserung der Performanz.<br />

Indizes über häufig modifizierten Komponenten bringen eine Verschlechterung der Performanz. Diese sind nur<br />

in Ausnahmesitutationen (keine <strong>and</strong>ere Möglichkeit) zu benutzen.<br />

Falls die Daten von zu indizierenden Komponenten nicht in regelmäßiger Form verteilt sind, dann ist entweder<br />

die Verteilung in die Definition mit einzubeziehen oder ein <strong>and</strong>erer Zugriffsmechanismus zu wählen. Die erste<br />

IS ADD


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

Möglichkeit wird nur von wenigen DBMS unterstützt.<br />

Kürzeste Schlüssel, d.h. solche die sich unter der Menge der minimalen Schlüssel durch die kleinste Speicherdarstellung<br />

bzw. die die kleinste Anzahl von Attributen besitzen, sind <strong>of</strong>t effizienter als <strong>and</strong>ere minimale<br />

Schlüssel.<br />

Das dynamische Verändern von Indizes kann vor Perioden von intensiven Modifikationen vermieden werden,<br />

indem der Index vorher entfernt wird und danach wieder neu aufgebaut wird. Indizes, die zur Integritätspflege<br />

erforderlich sind, können nicht entfernt werden.<br />

Die Namen der Typen und ihrer Indizes sollten aufein<strong>and</strong>er auf der Grundlage eines Namensst<strong>and</strong>ards abgeglichen<br />

sein.<br />

5. Unterstützung von Operationen<br />

Operationen, insbesondere Anfragen, die häufiger ausgeführt werden, können durch Indizes unterstützt werden.<br />

Selektionskriterien, Verbunde von Klassen, Ordnungen (GROUP BY, ORDER BY) und Mengenoperationen wie<br />

z.B. Vereinigungen (UNION, DISTINCT) können durch Indizes unterstützt werden.<br />

Schlüssel oder Identifikationsmechanismen, die für Komponenten in Relationshiptypen verwendet werden,<br />

sollten durch Indizes unterstützt werden.<br />

Werden Indizes verwendet, dann kann eine Blockierung <strong>and</strong>erer Zugriffsmechanismen sinnvoll werden, sobald<br />

diese weniger effizient sind als die Indizierung.<br />

Pragmatik:<br />

Werden Indizes zur Unterstützung von Operationen angelegt, dann sollten diese effizienter sein als das Durchmustern.<br />

Deshalb sollte die Trefferquote niedrig sein.<br />

Built-in-Funktionen, inbesondere Aggregationsfunktionen, die häufig in Anfragen benutzt werden, sollten durch<br />

entsprechende Indizes gestützt werden.<br />

Kann ein geordneter Index mit mehreren Komponenten benutzt werden, dann ist die Reihenfolge der Komponenten<br />

so zu entwerfen, daß der Zugriff im Mittel schnell erfolgt. Mitunter ist es günstiger mehrere Indizes in<br />

parallel für jede einzelne Komponente zu benutzen und nicht einen Index, der alle Komponenten erfaßt.<br />

6. Adaption an die Plattform<br />

In diesem Schritt können wir verschiedene Implementationsbeschränkungen in den Entwurf einbeziehen. Da<br />

sich diese nicht direkt auf den konzeptionellen Entwurf auswirken und nur für die Transformation notwendig<br />

sind, verwenden wir diese Beschränkungen hier nicht für die Entwicklung von Tuningmechanismen.<br />

Pragmatik:<br />

Plattformen unterstützen Operationen auf verschiedene Weise. Z.T. werden für bestimmte Operationen auch<br />

Indizes automatisch angelegt. Die Performanz hängt in diesem Fall auch von den Sortieralgorithmen ab.<br />

Eine Blockierung <strong>and</strong>erer Zugriffsmechanismen wird nicht von jeder Plattform unterstützt. Dazu muß auch der<br />

Optimierer des DBMS angepaßt sein.<br />

Eine Plattform kann die Verfügbarkeit von Indizes einschränken. Deshalb sollte in diesem Fall bereits eine<br />

Spezifikation auf Realisierbarkeit insbesondere für parallele Zugriffe geprüft werden.<br />

Erlaubt eine Plattform eine Verteilung von Klassen und Indizes auf verschiedene Speichermedien, dann sollte<br />

diese Verteilung aus Zugriffsgründen angestrebt werden. Eine Indexblockierung kann aufgrund der Klassengröße<br />

eintreten. Deshalb sind die maximalen Klassengrößen mit einzubeziehen.<br />

Werden durch die Plattform verschiedene Arten von Indizes (eindeutig, nicht-eindeutig; gruppiert, ungruppiert;<br />

partitioniert, unpartitioniert; verschiedene Speicherstrukturen (B-Bäume etc.)) unterstützt, dann ist eine<br />

feinere Unterscheidung auch für konzeptionelle Entwürfe sinnvoll. Da die meisten DBMS keine umfangreichen<br />

Möglichkeiten besitzen, verzichten wir hier auf eine Untersetzung.<br />

IS ADD


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

HERM-Compiler 7. Einführung gesteuerter Redundanz.<br />

Gesteuerte Redundanz<br />

Unser Ziel ist eine Verbesserung des Verhaltens. Dabei versuchen wir, die Sichten beizubehalten und höchstens<br />

das konzeptionelle Schema zu verändern. Durch Operationen kann jedoch auch eine Veränderung des konzeptionellen<br />

Schemas notwendig werden. Ein Performanzengpaß ist z.B. der Zugriff auf mehrere Klassen, die durch Dekomposition<br />

entst<strong>and</strong>en sind. Oft wird deshalb eine strenge Denormalisierung empfohlen. Besser ist eine gesteuerte Denormalisierung.<br />

Diese orientiert sich an den Prozeßanforderungen und den unterstützenden Algorithmen. Operationen<br />

des DBMS wie Verbund, Vereinigung und äußerer Verbund verursachen <strong>of</strong>t diese Ineffizienz. Eine <strong>and</strong>ere Ursache<br />

sind Hierarchien, die eine gemeinsame Bearbeitung verschiedener Klassen erfordern.<br />

Redundante Abspeicherung sollte jedoch erst dann vorgesehen werden, wenn <strong>and</strong>ere Tuningmechanismen nicht weiterführen.<br />

Eine redundante Datenbank erfordert zusätzliche Mechanismen zur Integritätspflege. Oft werden diese<br />

jedoch durch DBMS nicht mit angeboten.<br />

Vor einer Einführung von redundanten Strukturen sind deshalb<br />

· alternative Schemata zu untersuchen, inwieweit dadurch entstehende Probleme besser bewältigt werden können,<br />

· alternative Programmiermethoden oder Algorithmen Probleme besser lösen oder<br />

· eine Revision des Schemas weiterhilft.<br />

1. Einführung von Komponentenkopien<br />

Werden durch Operationen verschiedene durch Normalisierung entst<strong>and</strong>ene Typen wieder verbunden, dann<br />

kann durch eine Kopie der Komponenten bereits ein Verbesserung der Performanz erreicht werden. Insbesondere<br />

kann auch eine Kopie von Nichtschlüsselattributen für einen Teiltyp einen Verbund von Supertyp und<br />

Teiltyp unnötig machen. Analog kann in Generalisierungshierarchien vorgegangen werden.<br />

Relationshiptypen können eingeführt worden sein, um eine Eigenschaft einer Klasse darzustellen. Durch explizites<br />

redundantens Mitführen dieser Eigenschaft kann der Relationshiptyp für die Berechnung von Operationen<br />

unnötig werden.<br />

Pragmatik:<br />

Werden Komponenten und insbesondere Attribute in <strong>and</strong>eren Typen kopiert, dann ist durch eine entsprechende<br />

Namenskonvention eine Ableitung anzeigbar.<br />

Jede Einführung von redundanten Komponenten erfordert entsprechende Pflegemechanismen. Deshalb sollte<br />

eine Einführung auf konzeptionellen Niveau auch mit einer Spezifikation der Pflegemechanismen verbunden<br />

werden. Außerdem ist der zusätzliche Speicherbedarf mit ins Kalkül zu ziehen.<br />

Die Wertebereiche und die Semantik der kopierten Komponenten muß im neuen Schema mit dargestellt werden.<br />

2. Einführung abgeleiteter Daten<br />

Abgeleitete Daten können die Effizienz von verschiedenen Operationen, insbesondere der kritischen oder häufigen<br />

Operationen, die einen Verbund von mehreren Klassen erfordern, verbessern.<br />

Pragmatik:<br />

Werden abgeleitete Daten mitgeführt, dann ist analog zu abgeleiteten Attributen ein Pflegemechanismus für die<br />

generischen Operationen auf dem Ursprungstyp mitzuführen.<br />

Erlaubt die Plattform Dämonen, dann kann auch mit einer verzögerten Anpassung der Daten eine Verbesserung<br />

erreicht werden.<br />

Spezielle Namenskonventionen erleichtern das Rekapitulieren der Einführung redundanter, abgeleiteter Daten.<br />

Synonyme sind damit entsprechend einzuführen.<br />

Durch ein Vermeiden oder Blockieren von Modifikationen auf den abgeleiteten Komponenten kann eine Inkonsistenz<br />

zusätzlich vermieden werden.<br />

IS ADD


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

Da die abgeleiteten Daten nicht wieder zur Ableitung verwendet werden, ist in diesem Fall der Triggermechanismus<br />

sicher. Deshalb können über Trigger diese Daten nachgeführt werden.<br />

3. Einführung von Wiederholgruppen<br />

Durch Operationen mit hoher Priorität oder mit hoher Frequenz können Gruppenberechnungen erforderlich<br />

sein. Überwiegen diese Operationen, dann kann eine Einführung einer Wiederholgruppe unter Umständen eine<br />

Verbesserung der Performanz bringen.<br />

Durch eine mehrwertige Abhängigkeit kann eine vertikale Dekomposition erforderlich werden. Ist jedoch die<br />

Wiederholrate begrenzbar, dann kann eine redundate Abspeicherung eine bessere Option sein.<br />

Ist eine Kardinalität für eine wiederholte Darstellung der Daten abzuschätzen, dann kann durch eine nochmalige<br />

Einführung der gleichen Komponenten (mit Kennzeichnung der Kopienummer) eine Wiederholgruppe<br />

simuliert werden. Weiterhin können die Konstruktoren zu einer Verbesserung der Struktur benutzt werden.<br />

Pragmatik:<br />

Mehrwertige Abhängigkeiten können auch Ausnahmen der Gültigkeit von funktionalen Abhängigkeiten spezifizieren.<br />

Dann sind wiederholende Werte eher eine Ausnahme. In diesem Fall ist eine redundante Abspeicherung<br />

auch begrenzbar.<br />

Eine <strong>and</strong>ere Begrenzung der Wiederholrate kann man durch Betrachtungen für den mittleren Fall gewinnen.<br />

Werden Komponenten mehrmals geführt, dann muß eine Verwaltung von Nullwerten explizit geführt werden<br />

können.<br />

Im Beispiel kann z.B., falls Dienstreisen von nicht mehr als zwei Antragstellern, meist sogar von zwei durchgeführt<br />

wird, eine Reise im Relationshiptyp beantragt mit zwei Komponenten Antragsteller1 und Antragsteller2<br />

geführt werden, wobei die letztere evt. noch optional sein kann. Diese Einführung entspricht der Einführung<br />

eines Mengenkonstruktors im allgemeinen Fall für die Komponente Antragsteller im Typ beantragt.<br />

4. Einführung von Abstrakta<br />

Abstrakta haben keine Bedeutung für die Anwendung. Sie können bei langen Schlüsseln, die relativ viel Speicher<br />

erfordern, eingeführt werden, falls eine Zugriffsmethode für diese Abstrakta existiert.<br />

Abstrakta können auch durch eine Vielzahl von Beziehungen erforderlich werden. Damit sind dann z.B. gleichzeitig<br />

benutzte Objekte (shared objects) in Beziehungen besser aufzufinden.<br />

Vor der Einführung von Abstrakta sind alle Schlüssel zu untersuchen. Ist ein Schlüssel einfacher, dann kann<br />

dieser Schlüssel anstatt des ursprünglichen benutzt werden.<br />

Pragmatik:<br />

Die Einführung von Abstrakta entspricht der Einführung von Objektidentifikatoren. Diese kann durch die plattform<br />

bereits vorgegeben sein oder durch den Entwerfer explizit eingeführt werden. Verschiedene relationale<br />

Plattformen erlauben die Benutzung von Tupelidentifikatoren. Diese Alternative ist äquivalent zur Einführung<br />

von Abstrakta.<br />

5. Einführung von Objektkopien<br />

Es können Objekte direkt kopiert werden oder Objekte aus Objekten abgeleitet oder zusammengesetzt werden.<br />

Eine Einführung einer Objektkopie erfordert entsprechende Pflegemechanismen.<br />

Pragmatik:<br />

Kopien des gleichen Objektes in der gleichen Klasse sind nicht erlaubt. Analog sollten abgeleitete Objekte in<br />

der gleichen Klasse vermieden werden, weil damit die Identifikationseigenschaft zerstört wird.<br />

IS ADD


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

6. Einführung von äußeren Verbunden<br />

Durch den äußeren Verbund werden auch nicht über den Verbundkomponenten übereinstimmende Objekte<br />

gewonnen. Damit kann eine Vereinigung von Klassen gewonnen werden. Damit sind Operationen auch auf<br />

<strong>and</strong>ere Weise darstellbar. Man kann diese Darstellung wählen, wenn dieser Verbund unterstützt wird und die<br />

Performanz verbessert wird.<br />

Pragmatik:<br />

HERM-Compiler 8. Redefinition und Revision von Typen.<br />

Eine Restrukturierung kann auf logischen oder konzeptionellen Niveau ohne Probleme für die Benutzer durchgeführt<br />

werden. Damit kann <strong>of</strong>t eine effizientere Datenbank entworfen werden, ohne daß ein Benutzer die Restrukturierung<br />

nachvollziehen muß. Wir haben bereits entsprechende Optimierungsschritte auf den Sichten in früheren Schritten<br />

durchgeführt. Sollte trotzdem in diesem Schritt eine Restrukturierung der Sicht notwendig werden, dann liegt ein<br />

Modellierungsfehler vor.<br />

1. Bewertung speicherintensiver Komponenten<br />

Lange Textfelder und <strong>and</strong>ere komplexe Wertebereiche sind für Schlüssel und den Zugriff nicht geeignet. Deshalb<br />

sehen wir im konzeptionellen Schema abstrakte Komponenten vor, die die Daten der Komponentenobjekte<br />

in verkürzter Darstellung verwenden. Kommen komplexe Daten mehrfach vor, dann werden spezifische Typen<br />

neu definiert.<br />

Pragmatik:<br />

Speicherintensive Komponenten ziehen meist auch komplexere (Text-)Verarbeitungsfunktionen nach sich. Deshalb<br />

sollten auch diese Funktionen bei der Revision mit verwendet werden.<br />

2. Schrittweise Revision von Komponentenschlüsseln<br />

Alle Komponenten werden anh<strong>and</strong> der Dialogobjekte nochmals auf ihre vererbten Identifikationsmechanismen<br />

überprüft.<br />

Pragmatik:<br />

Oft werden die Primäridentifikationsmechanismen für die Definition von Komponenten in Relationshiptypen<br />

herangezogen, obwohl durch die Anwendung <strong>and</strong>ere Identifikationsmechanismen benötigt werden. Deshalb<br />

kann selbst in der entsprechenden Sicht eine Modifikation notwendig werden. Dabei muß die Semantik auch<br />

weiterhin pflegbar sein.<br />

3. Elimination von Typen<br />

Typen, die keine neue <strong>Information</strong> hinzufügen, und Typen, die durch keine Anwendungsoperation benötigt<br />

werden, können entfernt werden. Vor einer Entfernung ist die Gültigkeit der Entfernungsbedingung zu prüfen.<br />

Analog können Komponenten, die in keinem Dialogobjekt benutzt werden, entfernt werden, falls sie für die<br />

Anwendung keine Bedeutung besitzen.<br />

Pragmatik:<br />

Redundante Typen existieren auch in Hierarchien, in denen Supertypen nur eine Vereinigung der Subtypen sind<br />

ohne eigenständige, außerhalb der Identifizierung exisitierende Komponenten zu besitzen.<br />

Analog kann die Kontraktion von Typen genutzt werden.<br />

IS ADD


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

Im Beispiel kann das Teilschema<br />

Antragsteller = ...<br />

Fahrkarte = ( { Firma, Preis }, { Firma, Preis } )<br />

bestellt = ( Antragsteller, Fahrkarte, { Zeitraum } )<br />

Route = ( { Name } , { Name } )<br />

möglichT = ( Fahrkarte, Route, ∅ )<br />

aufgrund der Gültigkeit von Komplexitätsbedingungen<br />

comp(bestellt, Fahrkarte) = (1, 1), comp(bestellt, Antragsteller) = (0, n)<br />

comp(möglichT, Fahrkarte = (1, n) , comp(möglichT, Route) = (1, 1)<br />

kontrahiert werden zu den Typen<br />

Antragsteller = ...<br />

RoutenFahrkarte = ( { Firma, Preis, Route.Name }, { Firma, Preis, Route.Name } )<br />

benutzt = ( Antragsteller, RoutenFahrkarte, { Zeitraum } ) ,<br />

ohne Verlust von Semantik.<br />

4. Hinzufügen von Duplikattypen<br />

Aufgrund häufiger Anfragen kann auch ein abgeleiteter Typ aus einem Typ durch Projektion, Selektion und<br />

<strong>and</strong>ere Operationen der Algebra hergeleitet und explizit zur Erleichterung dieser Operationen benutzt werden.<br />

Pragmatik:<br />

Auch ad-hoc-Anfragen können durch Duplikattypen erleichtert werden. Analoges gilt für Aggregationsanfragen,<br />

die kritisch sind. Mit einer Duplizierung ist eine Pflege der Integrität notwendig.<br />

5. Segmentierung von Typen<br />

Pragmatik:<br />

Durch vertikale oder horizontale Dekomposition kann das Verhalten der Datenbank verbessert werden, insbesondere<br />

dann wenn die Operationen Datenmengen erfordern, die nicht im Hauptspeicher gehalten werden<br />

können aber durch Dekomposition geladen werden können.<br />

6. Kombination von Typen<br />

Pragmatik:<br />

1:1-Relationshiptypen können durch Einlagerung nicht nur kompakter dargestellt werden, sondern auch zu<br />

einer Verbesserung der Performanz führen. Verbinden die kritischen Operationen mehrere Typen, sind diese<br />

Typen weniger separat in Operationen von Interesse, dann kann auch ein kombinierter Typ anstelle dieser Typen<br />

zu einer Verbesserung der Performanz führen. Auch in Hierarchien kann eine zusätzliche Generalisierung<br />

oder eine Zusammenführung von Super- und Subtyp Operationen besser unterstützen.<br />

Analoges gilt für 1:n-Relationshiptypen und n-äre Relationshiptypen.<br />

7. Kombination durch äußeren Verbund<br />

IS ADD


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

Pragmatik:<br />

HERM-Compiler 9. Betrachtungen für sehr große Datenbanken.<br />

Große Datenbanken sind heute keine Seltenheit mehr. Insbesondere in klassischen Anwendungen wie der Versicherungsbranche,<br />

bei Banken, bei Telefongesellschaften und Vermarkungsgesellschaften sind bereits Datenbestände im<br />

Terabytebereich zu verwalten.<br />

In neueren Anwendungen zur Erderkundung, in der Molekularbiologie und der Kartographie werden von Anfang<br />

an sehr große Datenmengen anfallen. Für diese Datenmengen ist eine sehr sorgfältige Planung der Performanz<br />

erforderlich.<br />

Schritte<br />

1. Performanz der Retrieval<br />

Das Retrieval von Daten kann durch lange Durchmusterungsprozesse und Sortieroperationen z.T. stark verlangsamt<br />

werden. Deshalb ist bei der Implementation durch verschiedene Tuningschritte die Performanz des<br />

Retrieval zu verbessern.<br />

Auswahl von Zugriffsmechanismen;<br />

Implementation von Beispieltabellen zur Erprobung;<br />

Implementation von Auswertungsrelationen auf der Grundlage von Beispieltabellen.<br />

Pragmatik:<br />

2. Durchlaßfähigkeit<br />

Hohe Transaktionsraten stellen nach wie vor ein Problem für DBMS dar. Deshalb sollte für große Datenbanken<br />

die Durchlaßfähigkeit zusätzlich gesondert optimiert, da die Größe der Datenbank und die Anzahl der Transaktionen<br />

eine doppelte Herausforderung darstellen. Typische Beispiele dieser Art sind Bankenanwendungen,<br />

in denen die Anzahl der Kunden und der Datenumfang eine größere Anzahl von Transaktionen hervorruft.<br />

Deshalb wird die Durchlaßfähigkeit gesondert nach folgenden Kriterien optimiert:<br />

Auswahl der Locking-Mechanismen: Kleine Locking-Granularität erhöht die Parallelisierungsmöglichkeiten.<br />

Andererseits kann Locking auf Tabellenniveau, insbesondere bei read-only-Locks, die zusätzliche Verarbeitungskapazität,<br />

die durch Locking-Mechanismen erforderlich sind, minimieren. Deshalb ist für große<br />

Tabellen ein <strong>and</strong>erer Abgleich erforderlich. Eventuell sind für diese Lösung zusätzlich ‘dummy’-Tupel<br />

notwendig.<br />

Gruppierung: Günstig sind Transaktionen, die Gruppen von Daten erfordern. In diesem Fall kann durch eine<br />

Gruppierung die Transaktionsrate verbessert werden.<br />

Partitionierung und Segmentierung: Eine noch günstige Optimierungsmethode ist die Partitionierung und<br />

die Segmentierung der Daten in Abhängigkeit von den Transaktionen. Damit kann die Abhäsion der<br />

Daten mit in die Optimierung einbezogen werden.<br />

Commit-Processing: Durch ein spätes Commit wird die zusätzliche Kapazität, die die Verarbeitung von Commits<br />

erfordert, minimiert. Sind jedoch die Tabellen sehr groß, dann ist mit einem Abort jedoch ein höherer<br />

Berechnungsaufw<strong>and</strong> erforderlich. Deshalb sind für sehr große Relationen frühe Commits günstiger.<br />

Segmentierung der Updates: Werden die Manipulationsoperationen für größere Datenströme angew<strong>and</strong>t, dann<br />

verursachen die seitenweise Verarbeitung, das Identifikationsmanagement etc. einen Performanzverlust.<br />

Günstiger ist dagegen, die Partitionierung und Segmentierung der Datenströme.<br />

IS ADD


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

Pragmatik:<br />

3. Insert-/Delete-Prozesse<br />

Die Insert- und Deleteoperationen können für größere Datenmengen einen erhöhten Aufw<strong>and</strong> durch Logging,<br />

Locking, Commit-Processing, Indexveränderungen etc. erfordern. Deshalb sollte die Insertoperation optimiert<br />

werden durch Nutzung folgender Systemroutinen:<br />

Ladewerkzeuge: Gewöhnlich wird die Insertoperation als eine Ein-Tupeloperation beh<strong>and</strong>elt. Einige Systeme<br />

erlauben jedoch auch ein ‘Refresh’ oder ‘Replace’ von Tabellen. Außerdem wird <strong>of</strong>t ein Insert durch<br />

Anfügen an eine Tabelle implementiert. Günstiger ist - wie in den großen Systemen unterstützt - eine<br />

vorhergehende Suche nach freiem Speicherplatz in entsprechenden Seiten.<br />

Temporäres Aufheben des Loggings: Für größere Datenströme kann ein Logging zu aufwendig sein. Kann<br />

man die Insertoperation wiederholen bzw. die Fehlerbeh<strong>and</strong>lung verzögern, dann ist ein zeitweiliges Unterbrechen<br />

des Loggings laufzeitgünstiger.<br />

Temporäres Verändern der Indizes: Da das Verändern von Indizes aufwendig sein kann, ist für große Datenströme<br />

eine Neuberechnung von Indizes bzw. eine Berechnung eines Inputindexes mit anschließendem<br />

Mischen günstiger.<br />

Analog kann ein Massendelete durch Partitionierung und Segmentierung besser unterstützt werden. In unserem<br />

Beispiel kann z.B. durch eine Partitionierung auf Dienstreisejahre ein Delete vermeiden, das dann einem<br />

Streichen einer ganzen Relation entspricht.<br />

Pragmatik:<br />

4. Checkpoints und Wiederanlauf<br />

Für große Datenbanken wirkt sich die Benutzung von Sicherungspunkten performanzverschlechternd aus. Dies<br />

trifft insbesondere auf lange Transaktionen zu. Deshalb ist diesen Transaktionen besondere Aufmerksamkeit zu<br />

widmen. Sind Transaktionen zerlegbar in Folgen kürzerer Transaktionen, dann sollte eine Zerlegung angestrebt<br />

werden, falls die zusätzliche Zeit, die für die Verbindung der einzelnen Teile erforderlich ist, nicht zu stark ins<br />

Gewicht fällt.<br />

Pragmatik:<br />

5. Adminstration, Scheduling und Werkzeuge<br />

erfordert meist einen zusätzlichen Aufw<strong>and</strong>. Ist dieser nur linear vom Umfang der Daten abhängig, dann ist<br />

eine Benutzung der Tools eher sinnvoll als bei höherer Komplexität. Im letzteren Falle kann Abhilfe durch<br />

folgende Lösungen geschaffen werden:<br />

Ausnutzung der Parallelisierung: Bei nichtlinearer Komplexität von Werkzeugen kann durch eine zielgerichtete<br />

Parallelisierung eine Verbesserung erreichen.<br />

Benutzung von partiellen Funktionen anstelle von totalen: Ein Beispiel sind Backupfunktionen. Werden Backups<br />

regelmäßig durchgeführt, dann kann auch ein partielles Backup für die Änderungen seit dem letzten<br />

Backup effizienter sein.<br />

Geringere Benutzung der statistischen Funktionen: Sind die Änderungen minimal verglichen mit der Größe<br />

der Relationen, dann kann auch auf Statistiken, die die Verwaltung der Datenbank vergleichen, verzichtet<br />

werden.<br />

IS ADD


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

Betrachtung der Fehlerbeh<strong>and</strong>lungszeit: Für große Datenbanken kann die Fehlerbeh<strong>and</strong>lung auch zu groß<br />

werden. Durch unterschiedliche Fehlerbeh<strong>and</strong>lungskonzepte kann die Zeit minimiert werden.<br />

Pragmatik:<br />

HERM-Compiler 10. Vorbereitung für Veränderungen der Datenbanksysteme.<br />

Datenbanken sind für viele Anwendungen auch in der Struktur nicht statisch. Sowohl die Struktur als auch die Semantik<br />

und insbesondere die Funktionalität unterliegen einer häufigen Veränderung. Viele Veränderungen können<br />

durch relationale DBMS aufgefangen werden. Einige Veränderungen wirken sich jedoch stark auf vorh<strong>and</strong>ene Funktionen<br />

aus. In der relationalen Technologie wird zwischen der Delete- und der Dropoperation unterschieden. Letztere<br />

Operation erlaubt neben dem Streichen eines Objektes auch das Streichen der zugehörigen Struktur. Analoge Auswirkungen<br />

kann die Insertoperation haben.<br />

Syntax:<br />

Pragmatik: Eine Modifikation, das Streichen und das Hinzufügen von Tabellen kann die Arbeit der Datenbank in<br />

wesentlichen Teilen stark verändern. Deshalb ist es sinnvoll, den gesamten Modifikationsprozeß in die Datenbankentwurfsgeschichte<br />

einzuarbeiten.<br />

Vor Veränderungen der Datenbank ist es sinnvoll, ein Veränderungsszenario zu entwickeln. Dieses Szenario<br />

schließt auch eine Betrachtung der Risiken von Veränderungen mit ein.<br />

Schwierigkeiten und Fallen:<br />

Schritte<br />

1. Streichen von Schema-Objekten<br />

Veränderungen in der Datenbankstruktur können in einigen Systemen nur durch ein vollständiges Entfernen<br />

der Tabellen und anschließenden Neuaufbau bewerkstelligt werden. Dazu gehören Änderungen des Datentypen,<br />

das Verbot von Nullwerten, das Streichen einer Spalte, die Änderung von Defaultwerten, Partitionierung,<br />

Segmentierung und Kombination von Tabellen, Änderungen des Hashmechanismus, Änderungen in der<br />

Gruppierung und Veränderungen der Abspeicherung. Einige Systeme blockieren während der Dropoperationen<br />

<strong>and</strong>ere Benutzer. Sind mit den Relationen, die verändert werden zusätzlich noch <strong>and</strong>ere Relationen, z.B.<br />

durch Trigger verbunden, dann kann die Dropoperation weitreichende Auswirkungen in der Datenbank haben.<br />

Das Streichen einer Sicht zieht auch das Streichen aller darauf basierenden Sichten, insbesondere auch<br />

der Sicherheitssichten, nach sich. Sicherer sind deshalb eingeschränkte Dropoperationen, die nur ein Streichen<br />

erlauben, wenn keine <strong>and</strong>eren abhängigen Relationen existieren. Dann sind jedoch Veränderungen in der Datenbankstruktur<br />

nur schwer möglich.<br />

Moderne Systeme generieren deshalb als Antwort auf eine Dropinformation eine Reihe von Warnungen über<br />

die Implikationen der Dropoperation. Erst bei Bestätigung der Auswirkungen als gewünschte Auswirkungen<br />

wird dann die Dropoperation ausgeführt.<br />

Deshalb sollte vor dem Streichen von Relationen der Effekt dieser Operation auf alle Objekte der Datenbank<br />

untersucht werden. Dabei sind alle expliziten und impliziten Integritätsbedingungen besonders zu untersuchen.<br />

Wird eine Streichoperation ausgeführt, dann ist es sinnvoll alle Benutzer von dieser Veränderung zu informieren.<br />

IS ADD


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

In Systemen, in denen eine Dropoperation automatisch kaskadiert wird, sollten extra Mechanismen vor den<br />

unerwünschten Effekten dieser Operation warnen oder durch eine Rückführung der implizierten Reaktionen<br />

auf eine Dropoperation die Wiederherstellung des korrekten Zust<strong>and</strong>es ermöglichen.<br />

Pragmatik:<br />

2. Hinzufügen von Schema-Objekten<br />

Das Hinzufügen ist im allgemeinen eine einfache Operation. Implizite Annahmen der Datenbank können jedoch<br />

auch davon beeinflußt werden. Dazu gehören Namenskonventionen, Sicherungsmechanismen, Sicherheitsmechanismen<br />

und die Authorisierung. Außerdem können die Speichermechanismen davon betr<strong>of</strong>fen sein.<br />

Wird eine Relation hinzugefügt, dann ist auch die Integrität gesondert zu betrachten. Dazu gehören auch Integritätsbedingungen<br />

und Erzwingungsregeln.<br />

Pragmatik:<br />

3. Modifikation von Schema-Objekten<br />

Die Modifikation von Relationen kann um ein Vielfaches komplizierter sein als das Hinzufügen. Es kann<br />

sowohl die physische als auch die logische Struktur geändert werden. Änderungen in der physischen Struktur<br />

sind z.B. Veränderungen der Speicherzuordnung, von Indexierungen, von Locking- und Pufferstrategien.<br />

Veränderungen in der logischen Struktur sind meist Veränderungen, die sich in der konzeptionellen Struktur<br />

auch wiederspiegeln. Die Modifikation sollte die normale Arbeit mit der Datenbank so wenig wie möglich<br />

beeinflussen. Deshalb erfordert eine Modifikation <strong>of</strong>t auch die Betrachtung der gesamten Entwurfsgeschichte.<br />

Auswirkungen der Modifikation der Struktur können <strong>of</strong>t durch entsprechende Sichten verbessert werden. Eine<br />

<strong>and</strong>ere Methode basiert auf der Einführung von Synonymen. Damit wird zwar auch die Performanz der Datenbank<br />

beeinflußt, nicht aber die Weiterverwendbarkeit. Dabei ist jedoch auf die Identifizierbarkeit über diese<br />

Sichten zu achten, um eine Modifikation von Daten über Sichten zu erlauben.<br />

Das RENAME und das ALTER Komm<strong>and</strong>o von SQL sollte mit entsprechender Vorsicht angew<strong>and</strong>t werden.<br />

Werden z.B. Spalten angefügt, die keine Nullwerte oder Defaultwerte enthalten können, dann ist die exisiterende<br />

Relation zu modifizieren. Prozesse, die auf einem SELECT * basieren sind in diesem Fall ebenso<br />

zu modifizieren. Weiterhin sind auch entsprechende Performanzbetrachtungen und Speicherstrategien in die<br />

Modifikation einzubeziehen.<br />

Portierbarkeit, Änderungen der Plattform.<br />

Da DBMS bereits sehr komplexe S<strong>of</strong>twaresysteme sind und sich trotz der St<strong>and</strong>ardisierung von SQL in ihrer Funktionalität<br />

stark unterscheiden können ist eine Weiterentwicklung von Systemen kaum vorauszusehen. Einige Schwachpunkte<br />

von existierenden Systemen werden in den nächsten Jahren behoben werden.<br />

Datenbanksysteme erfahren eine Erweiterung hin zur Integration objekt-relationaler Technologie. Damit werden<br />

komplexere Typensysteme direkt unterstützt. Mit einer Veränderung der Technologie ist <strong>of</strong>t eine Veränderung großer<br />

Teile der Implementation erforderlich. Deshalb sollten auch solche <strong>Information</strong>en im Entwurf berücksichtigt werden,<br />

die z.Z. noch nicht implementiert werden können. Damit kann eine Verbesserung der Funktionalität von DBMS direkt<br />

aufgenommen werden.<br />

Typische Änderungen sind z.B.:<br />

• Die Integritätsbedingungen werden von Version zu Version immer besser unterstützt.<br />

IS ADD


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

• Die Optimierer werden mit umfangreicheren Möglichkeiten zur Berücksichtung von Erkenntnissen des konzeptionellen<br />

Entwurfs ausgerüstet sein.<br />

• Einschränkungen von Funktionen werden verschwinden.<br />

• Durch Verbesserung der Hardware und der S<strong>of</strong>tware wie verbesserte Ein- und Ausgabe wird auch die Funktionalität<br />

von DBMS erweitert werden können.<br />

• Die Datenwörterbücher können mehr semantische und funktionelle <strong>Information</strong> aufnehmen und verarbeiten.<br />

• Es werden verteilte Systeme, <strong>of</strong>fene Systeme und föderierte Systeme geschaffen werden.<br />

Syntax:<br />

Pragmatik:<br />

Schwierigkeiten und Fallen:<br />

Schritte<br />

1. Neue semantische Regeln<br />

Pragmatik:<br />

2. Neue Operationen<br />

Pragmatik:<br />

3. Höhere Performanz<br />

Pragmatik:<br />

HERM-Compiler 11.<br />

Diensteverwaltungssystem.<br />

HERM-Compiler 12.<br />

Erzeugung des Schemas in der Zielsprache.<br />

2.8.6 Besonderheiten der Abbildung auf UML-Strukturen bzw. XML-Strukturen<br />

Entfaltung durch Objekt-Schalen, ggf. mit kontrollierter Schalen-Redundanz<br />

Basis-Schale meist genutzt zur direkten Identifikation<br />

Objekt-Schale mit Objektentfaltung, optionalen Komponenten, Default-Ergänzungen<br />

Sharing-Modell zur gemeinsamen, redundanten Benutzung gemeinsamer Komponenten ggf. mit Vertragsmodell,<br />

Injektionsmodell, Modifikationsstrategie, Notifikationsdienst bei Veränderung<br />

IS ADD


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

Inductive <strong>and</strong> Abstraction Layered Typed Modelling Constructs.<br />

Typically, a model is defined in a certain language. A model language L for a model uses some signature S <strong>and</strong><br />

a set <strong>of</strong> constructors C that allows to build a set <strong>of</strong> all possible expressions in this language. Typically constructors<br />

are defined by structural recursion [Tha00]. The set <strong>of</strong> constructors may allow to build expressions that do not fulfill<br />

certain quality or more generally integrity conditions. Therefore we introduce a set Σ S,C well-formedness conditions.<br />

Well-formedness conditions separate ‘normal’ expressions from ‘abnormal’ ones. The later can be separated into<br />

construction abnormality <strong>and</strong> semantic abnormality. We may allow such abnormalities that are corrigible to normal<br />

expressions. The avoidance <strong>of</strong> abnormality is still research in progress. Kinds <strong>of</strong> abnormality that should be h<strong>and</strong>led<br />

within a theory <strong>of</strong> conceptual modelling are pleonasm (e.g., redundancy), semantic clashes (e.g., contradictions),<br />

Zeugma (e.g., overloading <strong>of</strong> constructs, combining separable semantic units into one concept), <strong>and</strong> improbability<br />

(e.g., almost empty classes).<br />

Well-formedness restrictions influence the modelling style [Kle07].<br />

• The Strong Venetian style rigidly separates basic constructs <strong>and</strong> builds a fully compositional structuring. ER<br />

schemata <strong>and</strong> UML class diagrams are typically based on this style.<br />

• The Weak Venetian style separates constructs to same degree but not more than it is necessary. Performancetuned<br />

physical relational schemata are typically based on this style.<br />

• The Strong Russian Doll style is based on a full expansion <strong>of</strong> objects, i.e. objects in a database are potentially<br />

exp<strong>and</strong>able through navigational sub-structures.<br />

• The Weak Russian Doll style uses a layered representation similar to tree languages.<br />

ER modelling is typically based on the Salami slice style whereas XML modelling typically uses the strong Russian<br />

doll (DTD style) or the weak Venetian or weak Russian doll (XML schema) style. The weak Venetian blind style is<br />

also the basis for component-based development <strong>of</strong> models since amalgams constructs as small models <strong>of</strong> coexisting<br />

<strong>and</strong> co-evolving facets <strong>of</strong> objects.<br />

2.8.7 Das regelbasierte Verfahren nach D.W. Embley und O. Sörensen<br />

2.9 Spezielle Modellierungsmethoden für Spezialanwendungen<br />

2.9.1 Besonderheiten verteilter <strong>Information</strong>ssysteme<br />

Syntax:<br />

Pragmatik: Da die Modellierung der Verteilung eine orthogonale Aufgabe ist, bedarf die Verflechtung der Modellierung<br />

von Verteilung und der <strong>and</strong>eren Modellierungsaufgaben einiger Tricks:<br />

•<br />

•<br />

Schwierigkeiten und Fallen : in der Modellierung bereiten insbesondere folgende Probleme:<br />

Schritte<br />

1. Die Replikation, die Partitionierung und die Allokation beruhen in diesem Entwurfsstadium meist auf<br />

Schätzungen. Damit sind auch die Resultate in diesem Schritt eher als Näherungen zu betrachten.<br />

Eine Optimalität kann auf diese Art und Weise kaum erreicht werden.<br />

2. Oft wird eine gleichmäßige Auslastung der Rechnerknoten angestrebt. Damit können zwar lokale<br />

Engpässe gut umgangen werden. Aber auch dieser Parameter beruht auf Schätzungen.<br />

IS ADD


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

1. Analyse der Anforderungen<br />

Es werden Qualitätsparameter wie Datenumfang, Rechtzeitigkeit, einfacher Zugriff, Datenort, Datenzuverlässigkeit,<br />

Erreichbarkeit der Daten, bevorzugte Lokalisierung und einfache Pflege der Integrität der Daten analysiert.<br />

Auf der Grundlage dieser Daten kann entschieden werden über die folgenden technischen Strategien:<br />

Qualitätsparameter<br />

Datenumfang<br />

Rechtzeitigkeit<br />

einfacher Zugriff<br />

Datenort<br />

Datenzuverlässigkeit<br />

Erreichbarkeit<br />

Pflege der Daten<br />

<strong>Information</strong> für Entwurfsschritt<br />

Auswahl der Technologie<br />

Replikationsstrategien<br />

Strukturen<br />

Eigentümer-/Besitzer-/Nutzerstrategien<br />

Eigentümer-/Besitzer-/Nutzerstrategien<br />

Datenermittlung<br />

Backup-/Wiederanlaufprozesse<br />

Unterstützungstrategien<br />

Pflegestrategien<br />

Eigentümer-/Nutzerstrategien<br />

Pragmatik:<br />

Die verschiedenen Qualitätsparameter können benutzt werden, um Entwurfsentscheidungen eventuell einer Revision<br />

zu unterziehen. Meist begrenzen diese Parameter jedoch die Wahl der Plattform.<br />

Eine pragmatische und zugleich praktikable Methode zur Beherrschung der Verteilung ist eine Trennung von<br />

Benutzern und Besitzern von Daten. Damit kann Benutzern ein read-only-Zugriff auf einfache Art ermöglicht<br />

werden. Sind mehrere Benutzer Besitzer von Daten und können sie die Daten simultan ändern, dann ist diese<br />

Möglichkeit explizit vorzusehen. Im weiteren ordnen wir den Daten die Besitzer und die Benutzer zu.<br />

Ist der Umfang der Daten zu hoch und werden keine Forderungen nach einer zentralen Verarbeitung erhoben,<br />

dann kann aus der Größe der Datenbank bereits eine minimale Serverkonfiguration abgeleitet werden.<br />

Die Aktualität der Daten beeinflußt direkt die Replikationsfunktionen. Wird eine hohe Aktualität gefordert, dann<br />

kann nur mit einer komplexen Updatefunktion die Aktualität gesichert werden.<br />

Für viele Anwendungen ist ein einfacher und schneller Zugriff für einen Teil der Daten benutzerabhängig unbedingt<br />

erforderlich. Deshalb sind die kritischen Anwendungen direkt zu erfassen. Ein Zugriff wird insbesondere<br />

auch durch Namenskonventionen für die Sichten erleichtert. Tuningstrategien sollten sich auf die Anwendungen<br />

der einzelnen Knoten beschränken und weniger auf das allgemeine konzeptionelle Schema der gesamten<br />

Anwendung über alle Knoten hinweg. Müssen allen Benutzern alle Daten zur Verfügung stehen, dann wird<br />

dadurch die Sharingstrategie und die Replikationsstrategie beeinflußt.<br />

Da die gleichen Zugriffe nicht an verschiedenen St<strong>and</strong>orten zur gleichen Zeit parallel ausgeführt werden sollen,<br />

werden durch die erwartete Funktionalität der Knoten auch die Datenermittlung, die Anfrageverarbeitung<br />

und die Modifikationsprozeduren beeinflußt. Je mehr Funktionen an allen St<strong>and</strong>orten zur gleichen Zeit benötigt<br />

werden, umso sorgfältiger muß die Verteilung entworfen werden.<br />

Um einen Wiederanlauf und eine Backup-Funktionalität zu unterstützen, werden diese Funktionen beim Entwurf<br />

der Knoten mit berücksichtigt. Treten Zuverlässigkeitskonflikte auf, dann sind sowohl der Besitzer als<br />

auch die Benutzer zu informieren.<br />

Die Verfügbarkeit von Daten auf verschiedenen Knoten kann durch häufige Anforderungen von <strong>and</strong>eren Knoten<br />

mit beeinflußt werden. Deshalb kann auch eine Veränderung der Netzarchitektur notwendig werden.<br />

Die Integrität von Daten ist einfacher zu pflegen, wenn nur ein Knoten über Modifikationsrechte verfügt. Um<br />

die Integrität zu pflegen, können Trigger, stored procedures und die referentielle Integrität auf logischem Niveau<br />

entworfen werden. Dabei ist jedoch zu sichern, daß keine Zyklen auftreten können. Diese <strong>Information</strong> liegt bereits<br />

für das konzeptionelle Schema vor. Eine Betrachtung des logischen Schemas ist deshalb nicht notwendig.<br />

Die vorliegende <strong>Information</strong> ist deshalb zu nutzen, um einen einfachen Mechanismus zur Pflege der Integrität<br />

abzuleiten. Um unnötige Modifikationen zu vermeiden, sobald Daten nicht mehr auf einem Knoten benötigt<br />

werden, ist eine explizite Operation zum Entfernen aller Daten sinnvoll.<br />

IS ADD


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

2. Analyse der Architektur des Netzes<br />

In diesem Schritt werden die Funktionen der einzelnen Knoten analysiert. Dazu werden die einzelnen Dialogobjekte,<br />

Sichten und Funktionen der Knoten auf ihre Realisierbarkeit untersucht. In Abhängigkeit von diesen<br />

Funktionen ist das Schema zu optimieren. Bei der Optimierung werden sowohl die Anforderungen der Benutzer<br />

für die jeweiligen Knoten analysiert, als auch die Möglichkeiten zur Bereitstellung von aktuellen <strong>Information</strong>en<br />

für die jeweiligen Knoten.<br />

Jedem Benutzer werden seine Knoten zugeordnet. Dabei werden sowohl die funktionalen Anforderungen als<br />

auch die Anforderungen an die Sichten berücksichtigt.<br />

In diesem Schritt wird auch eine allgemeine Replikationsstrategie entwickelt. Falls eine Pflege der Replikate<br />

durch ein paralleles Verschicken aller Modifikationstransaktionen erfolgt, dann wird jede Modifikation nachgezogen.<br />

Es kann auch ein Schnappschuß der modifizierten Daten an die Replikate vers<strong>and</strong>t werden, deren Daten<br />

in den Knoten modifiziert werden. Ist eine Charakterisierung der durch das Replikat benötigten Daten möglich,<br />

dann kann die vers<strong>and</strong>te Menge weiter eingeschränkt werden. Kann man für Klassen deduktive Normalformen<br />

einführen, dann kann die Menge der vers<strong>and</strong>ten Objekte weiter eingeschränkt werden.<br />

Für die einzelnen Knoten sind entsprechende load, unload und send Funktionen zu entwickeln.<br />

In analoger Form ist eine cancel Funktion zu entwickeln.<br />

Pragmatik:<br />

Bei der Analyse der Anforderungen in den einzelnen Knoten kann nach folgendem Schema für jede einzelne<br />

Klasse vorgegangen werden:<br />

(a) Es wird die Granularität für das Datensharing analysiert. Dabei werden auch die beizubehaltenden Daten<br />

(ankernde Daten) und die Beziehungen der Daten (Identifikationsbeziehungen etc.) analysiert.<br />

(b) Es wird das Verhalten der Benutzergruppe modelliert, die für die Modifikation und die Bereitstellung<br />

der Daten verantwortlich ist. Dabei werden die entsprechenden Prozesse bzw. Funktionen dieser Benutzergruppe<br />

zugeordnet. Falls eine bereits normalisierte Klasse unterschiedlichen Benutzern aus dieser<br />

Gruppe zugeordnet wird, dann ist das gemeinsame Benutzen der Daten zu spezifizieren. Gegebenenfalls<br />

ist eine horizontale Dekomposition die Lösung. Die Benutzergruppe ist den einzelnen Knoten zuzuordnen.<br />

Falls verschiedene Benutzer unterschiedliche Daten einbringen, dann kann ebenfalls durch horizontale<br />

Dekomposition eine einfachere Pflege möglich sein.<br />

(c) Es wird das Verhalten der Benutzergruppe analysiert, die die Daten im Wesentlichen für Anfragen benutzt.<br />

Dazu werden deren Prozesse, Funktionen, Sichten und Dialogobjekte betrachtet sowie die Knotenzuordnung.<br />

Außerdem wird für jede Klasse analysiert, inwieweit ein Benutzer die gesamte Klasse benötigt.<br />

3. Entwicklung einer Architektur (Partitionierung , Replikation der Daten)<br />

Auf der Grundlage der nun bekannten <strong>Information</strong> können nun die Operationen für die Entwicklung einer<br />

Verteilung herangezogen werden. Für jede Operation wird die Knotenmenge berechnet, die für diese Operation<br />

herangezogen werden muß. Es werden die horizontalen, vertikalen und gemischten Partitionierungen für die<br />

verschiedenen Anwendungen betrachtet.<br />

Vertikale vs. horizontale vs. gemischte<br />

Partitionierung<br />

Pragmatik:<br />

Sowohl für die horizontale, als die vertikale oder gemischte Partitionierung können verschiedene Operationen<br />

herangezogen werden. Zu jeder Operation werden die benötigten Klassen und deren Verbindungen (z. B.<br />

über Relationshiptypen) explizit dargestellt. Darauf aufbauend kann für eine Klasse die Teilmenge bestimmt<br />

IS ADD


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

werden, die für eine statistisch homogene Auslastung der Teilmengen innerhalb der betrachteten Operationen<br />

und für die Existenz unterschiedlicher Anwendungen für mindestens zwei verschiedene Partitionen sorgen. Eine<br />

Klasse wird so in Teilmengen zerlegt, daß jede von ihnen ausreichend für eine entsprechende Operation<br />

ist. Damit ist eine horizontale Partitionierung ableitbar. Oft ist dies nur bei Anwendung der 80/20%-Regel<br />

möglich. Um eine feinere Granularität zu erreichen, können auch die Klassen- bzw. Teilmengengröße, die Zugriffshäufigkeit<br />

und die mittlere Trefferrate mit einbezogen werden. Damit kann auch eine Betrachtung der<br />

Relevanz einer Klasse für einen Knoten erfolgen. Die Relevanz ist definiert über die Proportion der Trefferquote<br />

zur ‘Nicht’trefferquote.<br />

Analog kann für den Fall der abgeleiteten horizontalen Partitionierung vorgegangen werden. Da der Equi-<br />

Verbund für eine Darstellung von Hierarchien günstig ist, kann in diesem Falle auch eine Hierarchie unterstützt<br />

werden.<br />

Sind mehrere horizontale Partitionierungen gleich günstig, dann wird man die Partitionierung mit den wenigstens<br />

Verbunden bzw. die für eine größere Anzahl von Anwendungen benötigte wählen. Der Verbundgraph kann<br />

in diesem Fall herangezogen werden.<br />

Die vertikalen Partitionierung erfordert eine genaue Betrachtung der Integritätsbedingungen. Die Vielfalt ist<br />

wesentlich höher. Durch Gruppierung und Splittung kann die kombinatorische Vielfalt etwas eingedämmt werden.<br />

Für eine vertikale Dekomposition wird die Affinität der Komponenten betrachtet. Für Komponenten, die<br />

nicht zur (primären) Identifikation benötigt werden, wird eine Bewertung der diese Komponenten verwendenden<br />

Operationen vorgenommen (Benutzungswert). Analog wird berechnet, inwieweit für Paare von Komponenten<br />

entsprechende Operationen existieren (Affinität). Darauf aufbauend kann eine Affinitätsmatrix entwickelt<br />

werden. Diese Matrix wird auf separierbare Teile untersucht. Kann eine Gruppierung in der Matrix vorgenommen<br />

werden, dann kann auch das Schema in dieser Form gruppiert werden. Gruppierungen können nach<br />

verschiedenen Algorithmen (bond-Algorithmus; Algorithmen, die die Masse von Komponenten einbeziehen)<br />

abgeleitet werden. Auf dieser Grundlage wird ein allgemeines Affinitätsmaß entwickelt. Mit jeder Modifikation<br />

der Datenbank ist dann ein entsprechender Netzbeitrag zur Komplexität abschätzbar. Auf dieser Grundlage<br />

werden Typen separiert.<br />

Analog kann im Falle der vermischten Partitionierung vorgegangen werden.<br />

Die abgeleiteten Partitionierung werden auf ihre Korrektheit geprüft (Vollständigkeit, Rekonstruierbarkeit, Disjunktheit).<br />

4. Allokation der Daten und Prozesse<br />

Für eine Menge von Partitionen F = {F 1 , ..., F n }, ein Netz mit den Knoten S = {S 1 , ..., S m } und eine Menge<br />

von Anwendungen Q = {q 1 , ..., q q } wird nun eine optimale Verteilung von F auf S gesucht.<br />

Die optimale Verteilung wird bestimmt durch<br />

(a) die minimalen Kosten und<br />

(b) die Performanz.<br />

Dabei werden die Kosten bestimmt aus<br />

Speicherkosten für das Speichern von F i auf S j ,<br />

Anfragekosten für das Berechnen einer Anfrage über F i auf S j ,<br />

Modifikationskosten für die Modifikation von F i auf allen Knoten und<br />

Kommunikationskosten.<br />

Es gibt bislang kein allgemeines Kostenmodell. Ein einfaches Modell kann wie folgt entwickelt werden für<br />

eine Partition Q 1 und Q 2 von Q nach retrieval-only-Anfragen und Modifikationsanfragen:<br />

Für ein Partition F k betrachten wir die folgenden Kosten<br />

retrieval-only-Verkehr für die Knoten T k = {t 1 , ..., t m } ,<br />

IS ADD


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

update-Verkehr für die Knoten U k = {u 1 , ..., u m },<br />

Kommunikationsosten für retrieval C(T k ) = {c 12 , c 13 , ..., c 1m , ..., c m−1,m }<br />

Kommunikationsosten für update C ′ (U k ) = {c ′ 12 , c′ 13 , ..., c′ 1m , ..., c′ m−1,m }<br />

Speicherkosten für die Partition D = {d 1 , ..., d m }<br />

unter der Voraussetzung, daß keine weiteren Kapazitätsbeschränkungen gelten.<br />

Dann kann für die Booleschen Plazierungsvariablen x j mit<br />

{ 1 falls Fk in S<br />

x j =<br />

j<br />

0 falls F k nicht in S j<br />

optimiert werden nach der folgenden Formel für Teilmengen I von S, in denen F k gespeichert wird:<br />

⎡ ⎛<br />

⎞<br />

⎤<br />

m∑<br />

min ⎣ ⎝ ∑<br />

x j u j c ′ ij + t j min ⎠ + ∑<br />

x j d j<br />

⎦ .<br />

i=1<br />

j|S j ∈I<br />

j|S j ∈I c ij<br />

j|S j ∈I<br />

Diese Optimierung ist trotz der starken Vereinfachung NP-vollständig. Sie stellt nur ein Näherung dar, weil<br />

Partitionen stärker strukturiert sind, der Zugriff zu einfach dargestellt wird, die Kosten für die Erzwingung der<br />

Integrität nicht erfaßt wurden und die Kosten für parallele Zugriffe nicht berücksichtigt sind. Deshalb wählen<br />

wir im weiteren ein Modell, das auf folgenden <strong>Information</strong>en zur Anwendung und zur Modellierung beruht:<br />

Datenbankinformationen: Selektivität sel i (F j ) einer Partition F j für eine einzelne Anfrage q i und<br />

die approximative Größe der Partition size(F j ) ;<br />

Anwendungsinformation: Anzahl der Lesezugriffe RR ij für Anfragen q i über einer Partition F j<br />

Anzahl der Updatezugriffe UR ij für Anfragen q i über einem Partition F j<br />

{ 1 falls Anfrage qi modifiziert F<br />

u ij =<br />

k<br />

0 falls Anfrage q i modifiziert F k nicht<br />

R ij =<br />

{ 1 falls Anfrage qi liest F k<br />

0 falls Anfrage q i liest F k nicht<br />

O = {o 1 , ..., o q }<br />

für jede Anfrage eine maximal tolerierbare Antwortszeit<br />

o i Ausgangspunkt von q i<br />

Knoteninformation: Speicher- USC k und Berechnungskapazität LP C k<br />

Netzinformationen: Kommunikationskosten g ij pro Kommunikationseinheit<br />

Kanalkapazität, Abstände zwischen den Knoten, Protokolloverhead usw.<br />

Auf dieser Grundlage kann ein allgemeines Kostenmodell unter Berücksichtigung der Beschränkungen für die<br />

Antwortzeit, die Speicherzeit und die Berechnungszeiten erstellt werden.<br />

Pragmatik:<br />

Das allgemeine Kostenmodell kann <strong>of</strong>t zu komplex sein. Deshalb kann man für den Grobentwurf der Verteilung<br />

auch auf die folgende Art vorgehen.<br />

• Es wird für die Daten nach einer ‘Server/Client’-Verteilung der Daten - wie bereits oben mit dem Besitzer/Benutzer-<br />

Modell eingeführt - anh<strong>and</strong> der Lokalisierung der Besitzer und Benutzer eine optimale Topologie ermittelt,<br />

die untersucht, welche der folgenden Varianten günstiger ist:<br />

• Zentralisierung der Daten,<br />

• Verteilung der Daten nach Besitzern,<br />

• Verteilung der Daten nach Benutzern,<br />

• Verteilung der Daten nach Besitzern und Benutzern,<br />

IS ADD


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

• Abwägen der Vor- und Nachteile eines zentralen Managements.<br />

• Es werden technische Strategien abgeleitet, mit deren Hilfe den Anforderungen der Anwendung in hinreichend<br />

kurzer Zeit genügt werden kann und die die entwickelte Partitionierung und Replikation hinreichend<br />

gut unterstützen.<br />

• Darauf aufbauend wird ein Pflichtenheft für den Netzentwickler abgeleitet.<br />

Bewertung der Resultate.<br />

Mit dieser einfachen Methodik kann die Verteilung einer Datenbank für diese Phase des konzeptionellen<br />

Entwurfes hinreichend genau spezifiziert werden. Genauere Anpassungen müssen vorgenommen werden, sobald die<br />

Plattformen hinreichend genau bekannt sind. Dazu können entsprechende Werkzeuge benutzt werden.<br />

2.9.2 Modellierung von Datenbank-Farmen<br />

Datenbank- und <strong>Information</strong>ssysteme sind meist in einer integrierten Form verfügbar. In unserer Universitätsanwendung<br />

kann z.B. neben dem <strong>Information</strong>ssystem zur Stundenplanung auch ein <strong>Information</strong>ssystem zur Verwaltung von<br />

Studentendaten geführt werden. Ein Best<strong>and</strong>teil eines solchen <strong>Information</strong>ssystemes ist z.B. die Erfassung zu Daten<br />

zu erworbenen Scheinen und zur erfolgreichen Teilnahme an Lehrveranstaltungen. Deshalb wird eine Archivierungssicht<br />

auf das <strong>Information</strong>ssystem zu den Lehrverantaltungen benutzt, um diese Daten in die Studenten-Datenbank<br />

einzupflegen. Diese Archivsicht ist in Bild ?? dargestellt.<br />

Eine Datenbank-Farm verwendet die Architektur in Bild 66.<br />

Play-In-<br />

System<br />

Play-Out-<br />

System<br />

Datenbank-<br />

Warenhaus-<br />

System<br />

Speicher-<br />

Maschine<br />

Abbildung 66: Die Architektur von Systemen von Datenbank-Farmen als verallgemeinertes Datenbank-Warenhaus<br />

2.9.3 Besonderheiten bei der Modellierung von inkrementellen Datenbanksystemen<br />

Bereits für die Entwicklung der Funktionalität haben wir die induktive Definition von Relationship-Typen genutzt.<br />

Für Relationship-Typen sind über eine versteckte Annahme für das Verändern und Einfügen von Komponenten Modifikationsoperationen<br />

nur in eingeschränkter Form definiert. Analoge Annahmen können wir in der Sichtenkooperation<br />

von Datenbank-Farmen machen. Es wird ein System oder eine Sicht entweder Zentral-System, in dem alle Operationen<br />

uneingeschränkt definiert sind, oder abhängiges System, das einen Teil seiner Daten aus einem <strong>and</strong>eren<br />

System bezieht und deshalb diese Daten nur in Zusammenarbeit mit dem <strong>and</strong>eren System ändern kann.<br />

Incremental evolution is thus supported by star <strong>and</strong> snowflake sub-schemata by:<br />

Injection forms enable to inject data into another database. The forms are supported by views <strong>and</strong> view cooperation<br />

approaches. Data injected into another database cannot be changed by the importing database system. The<br />

IS ADD


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

auxiliary<br />

database<br />

auxiliary<br />

database<br />

auxiliary<br />

database<br />

auxiliary<br />

database<br />

❄ injected<br />

DBS<br />

(S p , Σ S p, O p , Σ O p)<br />

❄ injected<br />

DBS<br />

(S c , Σ S c, O c , Σ O c)<br />

❄ injected<br />

DBS<br />

(S r , Σ S r , O r , Σ O r )<br />

❄ injected<br />

DBS<br />

(S m , Σ S m, O m , Σ O m)<br />

insert<br />

inject<br />

modifiable<br />

injected<br />

✲<br />

✲<br />

insert<br />

inject<br />

modifiable<br />

injected<br />

✲<br />

✲<br />

insert<br />

inject<br />

modifiable<br />

✲<br />

✲<br />

injected<br />

planning<br />

phase DBS<br />

construction<br />

phase DBS<br />

realization<br />

phase DBS<br />

maintenance<br />

phase DBS<br />

Abbildung 67: The General Architecture <strong>of</strong> Incremental Evolution <strong>of</strong> Database <strong>Systems</strong><br />

structuring (S inject , Σ S ) <strong>of</strong> the views <strong>of</strong> the exporting database system is entirely embedded into the structuring<br />

(S ′ , Σ S ′) <strong>of</strong> the importing database system. The functionality (O inject , Σ O ) <strong>of</strong> the views <strong>of</strong> the exporting<br />

database system is partially embedded into the functionality (O ′ , Σ O ′) <strong>of</strong> the importing database system by<br />

removing all modification operations on the injected data. These data can only be used for retrieval purposes.<br />

Insertion forms enable in insertion data from the exporting database into the importing database. These data can<br />

be modified. The structuring (S insert , Σ S ) <strong>and</strong> the functionality (O insert , Σ O ) <strong>of</strong> the views <strong>of</strong> the exporting<br />

database system are entirely embedded into the structuring (S ′ , Σ S ′) <strong>and</strong> the functionality (O ′ , Σ O ′) <strong>of</strong> the<br />

importing database system.<br />

2.9.4 Besonderheiten der Entwicklung von Datenbank-Warenhäusern<br />

Units generator<br />

Unit, applet,<br />

data provider<br />

Purger<br />

Storage<br />

Workspace<br />

Gate<br />

User pr<strong>of</strong>iles<br />

Payment<br />

manager<br />

Active acquisition<br />

Data suites<br />

Access, history<br />

manager<br />

OLTP<br />

data<br />

Foreign<br />

Data<br />

Legacy<br />

Data<br />

✲<br />

Micro-data<br />

✲ import<br />

export<br />

✲ tools<br />

✲<br />

Content<br />

management<br />

system<br />

OLAP/DW System<br />

✲<br />

Macro-data<br />

extractors<br />

database<br />

mining<br />

✲Anonymous<br />

user<br />

✲<br />

✲<br />

Business<br />

unit user<br />

EIS/DSS<br />

user<br />

Abbildung 68: Data Warehouse Architecture <strong>of</strong> the DaMiT System<br />

Typisches Beispiel: Document systems should be supported by a specific data warehouse architecture:<br />

IS ADD


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

Play-out servers present, store <strong>and</strong> protect released content. The play-out <strong>of</strong> documents depends on their usage.<br />

Typical widely used documents are documents used in logistics:<br />

• Bills have their own numbering <strong>and</strong> their own format. They serve also as an contract <strong>of</strong> carriage between<br />

shipper <strong>and</strong> carrier.<br />

• Certificate on the content <strong>and</strong> the origin <strong>of</strong> the contents are used for statistical research, <strong>and</strong> for accessing<br />

duties, particularly under trade agreements.<br />

• Invoices declare against which payment is made. They are used for clearing documents.<br />

• Dock receipts are issued by the forwarder on experter’s behalf. They include shipment description, physical<br />

details, <strong>and</strong> shipping information.<br />

• Bills <strong>of</strong> lading are used as contracts between carrier <strong>and</strong> shipper, spell out legal responsibilities <strong>and</strong> liability<br />

limits for all parties to the shipment.<br />

• Packing lists provide details on the packing procedure <strong>of</strong> the container.<br />

• Sight, time drafts instruct the buyer’s bank to collect payment.<br />

Production servers have controlled access to documents <strong>and</strong> host dockets.<br />

Specific docket servers manage trusted content exchange between the servers.<br />

Generic docket servers communicate <strong>and</strong> encapsulate value-adding services.<br />

Für die drei Komponenten ergibt sich bei der Entwicklung das folgende Aufgabenspektrum:<br />

Akquisition Speicher Zugriff<br />

Lösungsentwicklung<br />

Datenidentifikation<br />

Daten-Sourcing<br />

Daten-Sourcing<br />

Validierung der Integration<br />

Validierung der Integrität<br />

Synchronisation<br />

Synchronisation<br />

Entwicklung f. Rückkoppl.<br />

Speicherarchitektur Speicherarchitektur<br />

Transform.-abbildungen Transform.-abbildungen Transform.-abbildungen<br />

Qualitätsprüf. Qualitätsprüfung Qualitätsprüfung<br />

DB-Modellierung<br />

DB-Entwurf<br />

Dabei können wir anh<strong>and</strong> der bislang betrachteten Entwurfsmethode folgende Regeln beim Entwurf betrachten:<br />

1. Akquisition, Speicherung und Zugriff bilden eine Einheit.<br />

2. Aufgrund der Komplexität ist die Dekomposition von Geschäftsprozessen notwendig.<br />

3. Die Anwendungen sollten vonein<strong>and</strong>er separiert werden.<br />

4. Autonome Anwendungen können auch parallel entwickelt werden.<br />

Damit kann auch das Aufgabenspektrum während der einzelnen Entwicklungsschritte für die unterschiedlichen Gruppen,<br />

die im Entwicklungsprozeß teilnehmen, abgeleitet werden:<br />

IS ADD


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

Schritt Exporteure Benutzer Programmierer<br />

1. Lösungsentwicklung - stark mittel<br />

2. Datenidentifikation - mittel stark<br />

3. Daten-Sourcing stark leicht mittel<br />

4. Validierung der Integrität leicht mittel stark<br />

5. Synchronisation leicht - stark<br />

6. Entwicklung f. Rückkopplung stark - stark<br />

7. Speicherarchitektur - - stark<br />

8. Transformationsabbildungen - - stark<br />

9. Qualitätsprüfung leicht leicht stark<br />

10. DB-Modellierung - leicht stark<br />

11. DB-Entwurf - - stark<br />

In analoger Form können die Komponenten, auf die sich die Entwicklungsschritte konzentrieren, herausgestellt werden:<br />

Schritt Akquisition Speicher Zugriff<br />

1. Lösungsentwicklung - - stark<br />

2. Datenidentifikation - - stark<br />

3. Daten-Sourcing stark - leicht<br />

4. Validierung der Integrität stark - leicht<br />

5. Synchronisation stark leicht -<br />

6. Entwicklung f. Rückkopplung stark - -<br />

7. Speicherarchitektur - stark mittel<br />

8. Transformationsabbildungen stark stark stark<br />

9. Qualitätsprüfung stark stark stark<br />

10. DB-Modellierung - stark -<br />

11. DB-Entwurf - stark -<br />

Mit diesen Aufgaben ergeben sich im Einzelnen für die Schritte die folgenden Aufgaben:<br />

1. Lösungsentwicklung: Es wird eine s<strong>of</strong>tware-technologische Analyse durchgeführt, die zu einer Spezifikation<br />

der Anforderungen im Rahmen eines Pflichtenhefts führt und die klärt, inwieweit durch eine Warenhausanwendung<br />

die derzeitige Situation verbessert wird.<br />

2. Datenidentifikation: Es werden die benötigten Daten und darauf aufbauend die benötigten Datenbestände identifiziert.<br />

3. Daten-Sourcing: Es werden die Charakteristika der benötigten Datenbestände erfaßt und mit den Anforderungen<br />

verglichen.<br />

4. Validierung der Integrität: Es wird die Semantik der ausgewählten Datenbestände erfaßt (Identifikation, Population<br />

(Formate, Vollständigkeit, ...), Verletzungen, Pflegeroutinen, etc.).<br />

5. Synchronisation: Die Datenbestände müssen für das Warenhaus im Rahmen einer Synchronisationsphase vereinheitlicht<br />

oder integriert werden oder zumindest in ihren Beziehungen beschrieben werden. Es werden referentielle<br />

Integrität (Benutzungsabhängigkeiten, St<strong>and</strong>ardisierung der Population, St<strong>and</strong>ardisierung der Beziehungen<br />

der Datenbanken unterein<strong>and</strong>er) erfaßt, Zeitbeschränkungen (Zeit der Gewinnung der Daten, letzte<br />

schreibende Transaktionen auf den Daten, Erfrischungen der Daten), Zugänge zur Korrektur der Verletzungen<br />

der Integrität und Routinen, die zur Benutzung der Datenbestände erforderlich sind. Außerdem werden die<br />

Identifikation auf Redundanz geprüft, entsprechende Hierarchien entwickelt, etc.<br />

6. Entwicklung f. Rückkopplung: Für die Entwicklung von Durchgriffsmöglichkeiten stehen eine Reihe von Mechanismen<br />

aus der Technologie reaktiver Systeme zur Verfügung.<br />

IS ADD


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

7. Speicherarchitektur: Es existieren eine Reihe von unterschiedlichen Herangehensweisen für die Speicherarchitektur<br />

wie:<br />

• Tabellen der relationalen Technologie,<br />

• Verweistabellen auf die Quellensysteme,<br />

• kodierte Tabellen,<br />

• assoziative Verbundtabellen (bridge/cross-reference table),<br />

• gemischte Tabellen,<br />

• Teilmengen-Tabellen,<br />

• aggregierte Tabellen (summarization roll-up tables) und<br />

• historische Tabellen.<br />

Dabei muß für eine effiziente Hauptspeicherverwaltung eine Lösung wie im Falle großer Datenbanken gefunden<br />

werden.<br />

8. Transformationsabbildungen: Nun kann die eigentliche Integrationsaufgabe in Angriff genommen werden. Die<br />

Datenstrukturen werden analysiert und die Transformationsabbildungen werden entwickelt.<br />

• Wie im Datenbankentwurf werden zuerst die Identifikationsprobleme gelöst.<br />

• Es wird ein Abhängigkeitsgraph der Sourcedaten und ihrer Funktionen erstellt.<br />

• Es wird eine Liste der Transformations- und Reinigungsschritte erstellt.<br />

• Darauf aufbauend werden die Transformationsprogramme entwickelt, die auch eine Reinigung der Daten,<br />

ein Mischen der Daten, ein Restrukturieren der Daten je nach Bedarf mit einschließen.<br />

• Es wird schrittweise ein Datenwörterbuch erstellt, das auch Synonyme, Homonyme und Namenskonzepte<br />

mit erfaßt. Darauf aufbauend wird ein Speicherplan erstellt.<br />

• Für die Transformationen wird ein Diagramm erstellt.<br />

9. Qualitätsprüfung: Dazu sind eine Reihe von Daten zu erfassen.<br />

• Benutzungsschätzungen: Es werden Schätzungen<br />

für die Anzahl der Benutzer,<br />

für die Häufigkeit und Art ihrer Zugriffe,<br />

für den Arbeitsraum, den die Benutzer benötigen,<br />

für die Plattformen der Benutzer und<br />

für die Performanzanforderungen entwickelt.<br />

• Umfang der Daten: Umfangreiche Datenbanken sind ein Gewinn für das Warenhaus, können aber aufgrund<br />

ihrer Performanzanforderungen die Rechenpotenzen von Superrechnern erfordern. Es kann notwendig<br />

werden, leistungstarke symmetrische Multiprozessorsysteme (SMP) oder massiv-parallele Systeme<br />

(MPP) einzusetzen. Sowohl zur Aufbereitung der Sourcedaten als auch zur Bearbeitung von Anforderungen<br />

kann bereits eine solche Datenmenge anfallen, die SMP oder MPP benötigt.<br />

• Zugriffsraten und Prozeßabschätzungen: Darauf basierend werden die Prozeßanforderungen abgeleitet.<br />

Auf der Grundlage dieser Daten kann analog zu Methoden des Benchmarkings eine Bewertung der Qualität<br />

erfolgen.<br />

Abschließend sollte ein Vergleich mit den Möglichkeiten <strong>and</strong>erer Systemlösungen erfolgen.<br />

10. DB-Modellierung: Der Datenbank-Modellierungsprozeß entspricht dem Vorgehen für ‘normale’ Datenbanken.<br />

• Es werden alle Datenstrukturen der Sourcedaten und der Warenhausdaten erfaßt.<br />

IS ADD


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

• Es werden die Prozesse zur Transformation und die Prozesse für die Auswertung der Daten erfaßt.<br />

• Es werden die Drehbücher für die Benutzung erstellt.<br />

• Es werden die Sichten der Benutzer und die Prozesse mit den Dialogen abgeglichen.<br />

Damit entsteht ein komplexes Vorschema der Daten, Prozesse, H<strong>and</strong>lungen und Sichten auf das Warenhaus.<br />

11. DB-Entwurf: Nunmehr kann auch der konzeptionelle, logische und physische Entwurf angeschlossen werden.<br />

Das Datenbank-Warenhaus verwendet auch die Lösung eines alten Integrationsproblemes: Anstatt für eine Anwendung<br />

( n<br />

2)<br />

verschiedene Schnittstellen zwischen den Anwendungen zu entwickeln, wird eine lose Integration - in unserem Fall<br />

eine Reduktion und anschließende Integration - vorgenommen.<br />

2.10 Modellierung von Sicherheitsmechanismen<br />

2.10.1 <strong>Design</strong>-By-Units und lokale komponentenbasierte Sicherung<br />

Im <strong>Design</strong>-by-units-Zugang unterscheiden wir zwischen dem Retrieval und Manipulationsanforderungen.<br />

die folgende Skizze schematisiert den Zugang.<br />

<strong>Information</strong>seinheiten<br />

Container<br />

Manipulationsanforderungen<br />

Im erweiterten ER-Modell können spezifische Sicherheitsarchitekturen ebenso spezifiziert werden:<br />

Autorisierte Operation (<br />

< Akteur ><br />

< Sicht ><br />

< zugelassene Operationen ><br />

< Korrektheitsbedingung > )<br />

Diese Form ist relativ einfach als Sicherheitkonzept sowohl durch Sichten als auch durch Funktionalität unterstützbar.<br />

2.10.2 Sicherheitsarchitekturen<br />

Sichten zur Unterstützung von Sicherheit.<br />

Im allgemeinen wird <strong>of</strong>t eine dreistufige Architektur bevorzugt:<br />

Basisrelationen<br />

Sicherheitssichten Sicherheitssichten für Retrieval<br />

Sicherheitssichten für Manipulationsanforderungen<br />

Arbeitsssichten Arbeitssichten für das Retrieval<br />

Arbbeitssichtensichten für Manipulationsanforderungen<br />

Benutzergruppen-orientierte Sichten sind die direkten Arbeitssichten der Benutzer.<br />

Retrieval-Sichten<br />

Sichten für Manipulationsanforderungen<br />

IS ADD


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

Nutzung der Daten-Warenhaus-Architektur als Sicherheitskonzept.<br />

LEHRBRIEF<br />

Modellierung und Konzipierung von Sicherheitskonzepten.<br />

Syntax:<br />

Pragmatik:<br />

Schwierigkeiten und Fallen:<br />

Schritte<br />

1. Abschottung durch Sichten<br />

Mit diesem Hintergrund können wir folgende Schritte entwerfen:<br />

Zugriff erfolgt nur über die Sichten: Die gesamte Dialogstruktur sollte nur auf Sichten aufsetzen. Ein direkter<br />

Zugriff auf die Datenstrukturen sollte vermieden werden. Deshalb werden die Sichten direkt mit den<br />

einzelnen Dialogschritten gekoppelt.<br />

Da Sichten auch zur Herstellung der Unabhängigkeit von Daten dienen, sollte die gesamte Oberfläche auf<br />

Sichten abgestellt werden. Damit werden die folgenden Ziele verwirklicht:<br />

Vereinfachter Zugriff für den Endbenutzer. Durch Sichten können auch komplexere Manipulations- bzw.<br />

Zugriffsoperationen modularisiert dargestellt werden. Damit wird für den Endbenutzer die Arbeit mit<br />

der Datenbank erleichtert.<br />

Verbesserung der Produktivität für den Benutzer und den Programmierer. Durch die Einführung von<br />

Sichten werden auch von verschiedenen Dialogen benötigte Proozesse im Rahmen einer Lokalisierungsabstraktion<br />

mitein<strong>and</strong>er wiederbenutzbar verwoben.<br />

Benutzung von Synonymen für Typen und abgeleitete Daten. Synonyme können die Transparenz der<br />

unterlegten Datenbankstrukturen und die Anwendungsbezogenheit von Namen verbessern.<br />

Zugriffs- und Authorisierungsbeschränkungen. Der Zugriff und die Authorisierung wird an die spezifische<br />

Sicht angepaßt und erlaubt wie bei abstrakten Datentypen nur den Zugriff auf diese Sichten,<br />

nicht aber auf die <strong>and</strong>eren Sichten.<br />

Integration bzw. Kombination über zentrale Sichten: Durch zentrale Sichten kann die Beh<strong>and</strong>lung der unterschiedlichen<br />

Aspekte der Anwendung, deren Beh<strong>and</strong>lung die Sichten dienen, vereinheitlicht und mit<br />

einem einfacheren Prozeßmanagement versehen werden. Damit entsteht eine Abbildungsstruktur zwischen<br />

verschiedenen Sichten wie im Bild 87.<br />

Da die zentralen Sichten auch an das integrierte Schema angepaßt werden können, haben diese Sichten<br />

keine update-Beschränkungen. Sie sind damit für die Programmierung einfacher zu h<strong>and</strong>haben.<br />

Zugriffssichten für den read-only-Zugriff: Sichten können eine komplexe Syntax, die eine Vielzahl von<br />

Fällen wiederspiegeln muß, vermeiden. Solche Sichten können auch benutzt werden, um den Zugriff<br />

einzuschränken.<br />

Integritätspflege über zentrale Sichten: Statt die Integritätspflge nur über das zentrale Schema zu definieren,<br />

können die zentralen Sichten aufgrund der Nichtbeschänkung des Zugriffs und der update-Operationen<br />

eher für die Pflegeoperationen benutzt werden.<br />

IS ADD


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

Beantragungssicht<br />

Genehmigungssicht1<br />

Genehmigungssicht2<br />

Abrechnungssicht<br />

Genehmigungssicht3<br />

Verbuchungssicht1<br />

Genehmigungssicht4<br />

...<br />

Verrechnungssicht1<br />

Verrechnungssicht4<br />

❘ ❄ ✠<br />

Zentrale<br />

Beantragungssicht<br />

❘ ❄ ✠<br />

Zentrale<br />

Verbuchungssicht<br />

3 ❯<br />

❄<br />

Integriertes Datenbankschema zum Dienstreiseantrag<br />

❘ ❄ ✠<br />

Zentrale<br />

Verrechnungssicht<br />

✙<br />

Abbildung 69: Sichtenintegration in unserer Anwendung<br />

Einbettung der Sichten in die Dokumentation: Zur Sichtendefinition gehört neben der Strukturdefinition,<br />

der Verbindung zu den Dialogen und der Definition der Beziehung zu Prozessen auch eine <strong>Information</strong><br />

über den Entwerfer bzw. Besitzer, Synonymen, zum Status (wie z.B. Test, Version, Kopie), zur Verbindung<br />

mit den zentralen Sichten, zur Pflege und Monitoring.<br />

Definition von Sicherungsmechanismen über zentrale Sichten: Sichten sind günstig, um den Zugriff zu<br />

beschränken, aber sie sind nicht ausreichend, um die Datensicherheit zu gewährleisten. Meist kann man<br />

die Sicherheit auch durch die zentralen Sichten pflegen. Oft ist dies aber nicht ausreichend. Deshalb kann<br />

man den zentralen Sichten auch Sicherheitssichten zur Gewährleistung der Sicherheit beiordnen. Damit<br />

ergibt sich eine Hierarchie in den Sichten wie in Bild 88.<br />

Benutzersichten<br />

zur Vereinfachung<br />

des Zugriffs<br />

Beantragungssicht<br />

Genehmigungssicht1<br />

Genehmigungssicht2<br />

...<br />

Sicherheitssichten<br />

zur Kontrolle<br />

des Zugriffs<br />

❄ ❄ ❄<br />

Zugriffsbeschrbeschr.<br />

Zu-<br />

Zugriffsgriffsbeschr.<br />

Geneh-<br />

Beantragungssicht<br />

Genehmigungssichtmigungssicht2<br />

...<br />

Zentrale<br />

Sichten<br />

zur Darstellung<br />

der Unabhängigkeit<br />

❘ ❄ ✠<br />

Zentrale<br />

Beantragungssicht<br />

...<br />

Integriertes<br />

Schema<br />

zur Darstellung<br />

der Speicherung<br />

3<br />

Integriertes Datenbankschema zum Dienstreiseantrag<br />

Abbildung 70: Ausschnitt aus der Sichtenarchitektur mit Sicherheitssichten<br />

Damit sind die Sichten der Blätter nach wie vor sichtbar für jedermann. Zugleich wird damit aber der<br />

weitere unbefugte Einblick verwehrt.<br />

Damit kann für die Sicherheitssichten die Anbindung an die Aktoren und deren rollen erfolgen. Nach<br />

außen ist aber durch ein<br />

GRANT ALL ON benutzersichten TO PUBLIC<br />

die Sicht einheitlich frei.<br />

Definition einer Authorisierungstabelle zur Kontrolle des Zugriffs: Die Authorisierungstabelle stellt den<br />

IS ADD


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

Zusammenhang zwischen den Sichten, einzelnen Dialogschritten und den Aktoren her. Aktoren können<br />

ihre Rechte bedingt oder bedingungslos weitergeben.<br />

Bevorzugung der St<strong>and</strong>ardprozeduren zur Integritätspflege: Die durch ein DBMS vorgegebenen update-<br />

Komm<strong>and</strong>os schließen eine Pflege der Integrität nicht ein. Deshalb sollten diese Komm<strong>and</strong>os zugunsten<br />

der bereits entworfenen Routinen zur Integritätspflege verboten werden. Die Routinen zur Integritätspflege<br />

können jedoch der Definition der Sicherheitsanforderungen zuwider laufen. Deshalb ist die Konsistenz<br />

dieser beiden unterschiedlichen Anforderungen zu überprüfen.<br />

Unterbindung des Zugriffs auf physische Strukturen: Die Veränderung der St<strong>and</strong>ardprozeduren zur Integritätspflege<br />

sollte den Systemadminstratoren vorbehalten bleiben. Haben Benutzer eigene Mechanismen<br />

entwickelt, dann sollten die neuen Pflegemechanismen diesen Benutzer vorbehalten bleiben. Einige<br />

DBMS erlauben nicht die Beschränkung der Rechte auf einen Zugriff von der Beschränkung der Rechte<br />

auf Spaltennamen zu unterscheiden. Damit ist auch einem Benutzer die Veränderung der Tabellenstruktur<br />

möglich. Diese Rechte sollten speziell eingeschränkt werden.<br />

Pragmatik:<br />

Zugriff erfolgt nur über die Sichten: Durch eine Vielzahl von Sichten, unterschiedliche Zugriffsmechanismen<br />

etc. können jedoch auch eine Reihe von Problemen entstehen. Insbesondere ist die Vielfalt der Sichten<br />

zu verwalten, wodurch ein overhead entsteht.<br />

Wildwuchs von Sichten: Werden insbesondere Dialoge verfeinert, die Rechte und Rollen der Benutzer<br />

verändert, dann entstehen <strong>of</strong>t weitere Sichten, die einer Verwaltung durch das System bedürfen.<br />

Wildwuchs von Namen: Durch eine Vielfalt von Namen kann auch der semantische Zusammenhang<br />

zwischen diesen Namen verloren gehen. Dies kann durch die Benutzung von guidelines und Synonymwörterbüchern<br />

vermieden werden.<br />

Wildwuchs von Programmen: Der Zusammenhang zwischen den Sichten muß sich auch in einem Zusammenhang<br />

zwischen den Sichten wiederspiegeln. Die einfachste Methode, Wildwuchs zu vermeiden,<br />

ist ein Verbot der Benutzung kombinierter Sichten.<br />

Funktionelle Beschränkungen im Zusammenhang mit speziellen Sichten: Da insbesondere Updates über<br />

Sichten kritisch sind, werden verschiedene Operationen über den Sichten nicht erlaubt sein. Dieser<br />

Umst<strong>and</strong> kann für die einzelnen Benutzer nicht mehr nachvollziehbar sein.<br />

Integration bzw. Kombination über zentrale Sichten: Die Kombinationsregeln und die Integrationsregeln<br />

sollten im Rahmen der Entwurfsdokumentation explizit niedergelegt werden.<br />

Zugriffssichten für den read-only-Zugriff: Durch ein striktes ‘hiding’ wird evt. auch zuviel an <strong>Information</strong><br />

dem Benutzer vorenthalten. Deshalb ist auch in diesem Schritt die Dialogmenge mit in die Betrachtung<br />

einzubeziehen.<br />

Integritätspflege über zentrale Sichten: Durch eine sichtenorientierte Integritätspflege können die Pflegemechanismen<br />

auch in modularer Form entwickelt werden. Damit sind Überschneidungen, die auch Zyklen<br />

hervorrufen können, eher zu vermeiden.<br />

Einbettung der Sichten in die Beschreibung: Bezeichner sollten für den Benutzer einfach mit dem Inhalt<br />

verknüpfbar sein. Zentrale Sichten können im Namen bereits auch einen Hinweis auf den Integrationsmechanismus<br />

geben. Im integrierten Schema kann die Wahl der Bezeichner bereits anh<strong>and</strong> der gewünschten<br />

Transformation in das logische Modell erfolgen.<br />

Definition von Sicherungsmechanismen über zentralen Sichten: Die Trennung von Zugriff und Sicherung<br />

bringt einen overhead mit sich, denn man in die operationale Optimierung mit einbeziehen muß.<br />

In unserem Beispiel soollten jedoch unbefugten Personen, die nicht im Genehmigungsprozeß bzw. Verbuchungsprozeß<br />

einbezogen und nicht Besitzer des entsprechenden Dokumentes sind, der Zugriff verwehrt<br />

bleiben.<br />

IS ADD


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

Definition einer Authorisierungstabelle zur Kontrolle des Zugriffs: Oft wird empfohlen, jedem Aktor für<br />

jede seiner Rollen eine spezifische Sicht zuzuordnen. Damit wird der Entwurf übermäßig komplex. Die<br />

Programme sind dann meist nicht mehr zu pflegen. Aus diesem Grund ist eine Authorisierungstabelle meist<br />

der sinnvollere Ausweg. Dann kann durch einen Verbund der Authorisierungstabelle mit den zentralen<br />

Sichten die jeweilige Arbeitssicht direkt gewonnen werden.<br />

Wird diese Darstellung zu komplex, dann kann man durch Techniken der Denormalisierung einfachere<br />

Sichten gewinnen, wobei in diesem Fall die Redundanz erplizit gepflegt werden muß.<br />

Ist eine direkte Compilierung der Sicherheitsroutinen in die Programme möglich, dann kann auch dieser<br />

Weg gewählt werden.<br />

Damit erhalten wir die folgenden Pragmatiken.<br />

Sicherheitsanforderungen Benutzung von Sichten GRANT Komm<strong>and</strong>os<br />

Read-Zugriff auf alle Objekte Zentrale Sichten GRANT Read-Zugriff ON Sicht<br />

und Komponenten<br />

TO alle Benutzer bzw. Gruppen<br />

Read-Zugriff auf alle Objekte Sicherheitssichten GRANT Read-Zugriff ON Sicht<br />

und einige Komponenten<br />

TO alle Benutzer bzw. Gruppen<br />

Read-Zugriff auf einige Objekte Sicherheitsichten GRANT Read-Zugriff ON Sicht<br />

und alle Komponenten<br />

TO alle Benutzer bzw. Gruppen<br />

Read-Zugriff auf einige Objekte<br />

und einige Komponenten<br />

oder<br />

Zentrale Sichten mit<br />

Authorisierungstabelle mit<br />

Authorisierungssicht über<br />

Verbund und SELECT<br />

WHERE Attr = USER<br />

bzw.<br />

Authorisierungssicht über<br />

Subquery und SELECT<br />

WHERE Attr = USER<br />

bzw.<br />

Duplikatspalten in einer<br />

Tabelle mit Authorisier.-sicht<br />

SELECT WHERE Attr = USER<br />

bzw.<br />

Authorisierungsprogramm mit<br />

Inhalt SELECT WHERE ...<br />

Kombination der vorherigen<br />

Zugänge<br />

GRANT Read-Zugriff ON Authorisierungssicht<br />

TO PUBLIC<br />

oder<br />

GRANT execution ON Authorisierungsprogramm<br />

TO PUBLIC<br />

Bevorzugung der St<strong>and</strong>ardprozeduren zur Integritätspflege: Die Integritätspflege kann auch durch benutzer<br />

umgangen werden. Dies trifft insbesondere auf Makros, die zur Pflege der Integrität entwickelt<br />

wurden, zu. Anstelle dieser kann man durch entsprechende ‘exit’s oder entsprechenden Programmkode<br />

die Umgehung verhindern.<br />

Ein pragmatischer Zugang wird in der folgenden Tabelle vorgestellt.<br />

IS ADD


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

Sicherh.-anford. Benutzung von Normale Update-Operationen GRANT Komm<strong>and</strong>os<br />

Sichten<br />

versus St<strong>and</strong>ard-Prozeduren<br />

Update-Zugriff auf Zentrale Sichten mit DML-Komm<strong>and</strong>os GRANT updates<br />

alle Objekte und<br />

ON Sicht<br />

alle Komponenten<br />

TO alle Ben./Gruppen<br />

mit St<strong>and</strong>ard-Pflege-Prozeduren Verbot der DML-updates<br />

über Sichten<br />

GRANT execution<br />

ON Maintenance-Routinen<br />

TO alle Ben./Gruppen<br />

Update-Zugriff auf Zentrale Sichten über St<strong>and</strong>ard-Pflege-Prozed. Verbot der DML-updates<br />

alle Objekte und (erforderlich hier) über Sichten<br />

einige Komponenten<br />

GRANT execution<br />

ON Maintenance-Routinen<br />

TO alle Ben./Gruppen<br />

Sicherheitssichten mit DML-Komm<strong>and</strong>os GRANT execution<br />

ON Maintenance-Routinen<br />

TO alle Ben./Gruppen<br />

über St<strong>and</strong>ard-Pflege-Prozed.<br />

bei Separierung der Routinen für Verbot der DML-Komm<strong>and</strong>os<br />

jede Sicht (eine Routine; verschie- GRANT execution<br />

dene kompilierte Versionen für ON Maintenance-Routinen<br />

jede Sicht oder dynamische Bindung TO alle Ben./Gruppen<br />

der Routinen an die Sichten)<br />

Update-Zugriff auf Zentrale Sichten mit St<strong>and</strong>ard-Pflege-Prozeduren Verbot der DML-Komm<strong>and</strong>os<br />

einige Objekte und (erforderlich hier) GRANT execution<br />

alle Komponenten<br />

ON Maintenance-Routinen<br />

TO alle Ben./Gruppen<br />

Sicherheitssichten mit DML-Komm<strong>and</strong>os GRANT execution<br />

ON Maintenance-Routinen<br />

TO alle Ben./Gruppen<br />

mit St<strong>and</strong>ard-Pflege-Programmen GRANT execution<br />

ON Maintenance-Routinen<br />

TO alle Ben./Gruppen<br />

Zentrale Sichten, mit DML-Komm<strong>and</strong>os<br />

zentrale Authori-<br />

GRANT execution<br />

sierungssichten,<br />

ON Maintenance-Routinen<br />

Authorisierungssicht zur<br />

TO alle Ben./Gruppen<br />

Verbindung dieser mit St<strong>and</strong>ard-Pflege-Programmen Verbot der DML-Komm<strong>and</strong>os<br />

GRANT execution<br />

ON Maintenance-Routinen<br />

TO alle Ben./Gruppen<br />

Zentrale Sichten, mit St<strong>and</strong>ard-Pflege-Programmen<br />

zentrale Authori- , (erforderlich hier), die<br />

sierungssichten, (erforderlich hier), die Verbot der DML-Komm<strong>and</strong>os<br />

aber DBMS erlaubt keine Zugriffsauthorisierung über GRANT execution<br />

updates über join/sub- SELECT WHERE ON Maintenance-Routinen<br />

query-Sichten beider Attr = USER verfizieren TO alle Ben./Gruppen<br />

Update-Zugriff auf<br />

einige Objekte und Kombination der beiden<br />

einige Komponenten obigen Verfahren<br />

Unterbindung des Zugriffs auf physische Strukturen: Eine einfache Methode zur Kontrolle der Modifikationsmöglichkeiten<br />

der Benutzer ist die zentrale Kontrolle der Aufgaben, die eine größere Sicherheitsrelevanz<br />

oder auch größere Auswirkungen auf die Arbeit der Datenbanken haben (Neudefinition von<br />

Datenbanken, Speicheroptionen, konkurrierender Zugriff zu Tabellen vieler Benutzer). Andere Aufgaben<br />

können einem breiteren Benutzerkreis geöffnet sein. Damit sind Benutzer auch für ihre eigene Sicherheit<br />

selbst verantwortlich.<br />

2.11 <strong>Design</strong> by schema pattern<br />

nach den beiden Modellierungsfibeln<br />

People <strong>and</strong> organization<br />

Products<br />

Ordering products<br />

IS ADD


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

Order delivery <strong>and</strong> invoicing<br />

Work effort<br />

Accounting <strong>and</strong> budgeting<br />

Human resources<br />

siehe 2000 und 2001 Preprints zu Pattern und Stars<br />

IS ADD


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

2.12 Ein Beispiel<br />

2.12.1 Ein HERM-Beispiel<br />

2.12.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 291<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 71: 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 292<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 293<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 294<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 295<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 296<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 297<br />

2.13 Schrittweise Modellierung im Co-<strong>Design</strong> an einem Beispiel<br />

Angaben<br />

zur Reise<br />

Reisedaten<br />

Reiseablaufdaten<br />

Kostenüberweisung<br />

Finanzdaten<br />

Kostenabrechnungsdaten<br />

Reisekostenanerkennung<br />

Abbildung 72: Die Grobstruktur der Anwendung<br />

Storyschritt<br />

Vertreter<br />

✻<br />

❄<br />

❄<br />

Akteur<br />

✛<br />

Rolle<br />

✲<br />

Sicht<br />

Abbildung 73: Das Akteurmodell für die Geschäftsprozeßschicht


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

Verbuchung<br />

✻<br />

(1,1)<br />

Überweisung<br />

Genehmigung<br />

Abrechnung<br />

abgerechnet durch<br />

(1,n) (1,1)<br />

Antragsteller ✛ beantragt ✲<br />

❄<br />

(1,n)<br />

Dienstreise<br />

Genehmigung<br />

Reiseverlauf<br />

Abbildung 74: Grobdarstellung der Struktur der Anwendung<br />

Abrechnungssicht<br />

Beantragungssicht<br />

Sicht für allgemeine Verbuchung<br />

Abbildung 75: Sichtenskizze für unsere Anwendung<br />

Beantragung ✲ Ausfüllen ✲ Befürwortung ✲ Genehmigung<br />

❄<br />

Abrechnung<br />

❄<br />

Verbuchung ✲ Genehmigung<br />

der Abrechnung<br />

✲<br />

Kontrolle der<br />

Abrechnung,<br />

Berechnung<br />

der Kostensätze<br />

✲<br />

Genehmigung der<br />

Verbuchung<br />

❄<br />

Verrechnung ✲ Zuordnung zum<br />

Abrechnungsmodus<br />

✯<br />

✲<br />

❥<br />

Überweisung<br />

Kassenbereitstellung<br />

Rückforderung<br />

Abbildung 76: Szenarien für Beh<strong>and</strong>lung des Dienstreiseantrages (Normalverfahren)


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

Antragsteller Vorges. des Antragst. Dekan<br />

Beantragung ✲ Ausfüllen ✲ Befürwortung ✲ Genehmigung<br />

❄ Antragsteller<br />

Abrechnung<br />

❄<br />

Dekan<br />

Verbuchung ✲ Genehmigung<br />

der Abrechnung<br />

✲<br />

Sachbearb. X<br />

Kontrolle der<br />

Abrechnung,<br />

Berechnung<br />

der Kostensätze<br />

✲<br />

Sachbearb. Y<br />

Genehmigung der<br />

Verbuchung<br />

❄<br />

Sachbearb. X<br />

Verrechnung ✲ Zuordnung zum<br />

Abrechnungsmodus<br />

✯<br />

✲<br />

❥<br />

Sachbearb. X<br />

Überweisung<br />

Kassenbereitstellung Kassiererin<br />

RückforderungSachbearb. X<br />

Abbildung 77: Themen und Akteuren für Beh<strong>and</strong>lung des Dienstreiseantrages (Normalverfahren)<br />

Akteur<br />

✛<br />

Rolle<br />

✲ Dialogschritte ✛<br />

zugeordnete<br />

✲Sichtenelemente<br />

✻<br />

✻<br />

❄ Vertreter ❄<br />

❄<br />

Rechte<br />

berechnet<br />

durch<br />

Abbildung<br />

❄<br />

H<strong>and</strong>lungsschritte ✛<br />

In<br />

❄<br />

✲ Skelettelement<br />

Abbildung 78: Das Akteurmodell für die Aktionsschicht


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

Beantragungssicht Genehmigungssicht 1 Genehmigungssicht 2<br />

Beantragung ✲ Ausfüllen ✲ Befürwortung ✲ Genehmigung<br />

❄Abrechnungssicht<br />

Abrechnung<br />

❄<br />

Genehmigungssicht 3<br />

Verbuchung ✲ Genehmigung<br />

der Abrechnung<br />

✲<br />

Verbuchungssicht 1<br />

Kontrolle der<br />

Abrechnung,<br />

Berechnung<br />

der Kostensätze<br />

✲<br />

Genehmigungssicht 4<br />

Genehmigung der<br />

Verbuchung<br />

❄<br />

Verrechnungssicht 1 Verrechnungssicht 2<br />

✯ Überweisung<br />

Verrechnung ✲ Zuordnung zum ✲<br />

Verrechnungssicht 3<br />

Kassenbereitstellung<br />

Abrechnungsmodus<br />

❥<br />

Verrechnungssicht 4<br />

Rückforderung<br />

Abbildung 79: Skelett für den Dienstreiseantrag (Normalverfahren)<br />

Antragsteller<br />

≈ (1, 10)<br />

200 (1, n)<br />

500 ✛<br />

2000<br />

≈ (1, 2)<br />

(1, 30)<br />

Reise<br />

beantragt<br />

❄<br />

1000<br />

5000<br />

30000<br />

≈ (1, 1)<br />

(0, 1)<br />

✛<br />

wird<br />

abgerechnet<br />

(Vorschlag)<br />

(1, 50)<br />

❄<br />

Verbuchung 100<br />

200<br />

300<br />

Abbildung 80: Erster Entwurf für die Beantragungssicht<br />

System Historie Optionen Fenster<br />

Antragstellerdaten Reisedaten Verbuchungsdaten<br />

Name<br />

Vorname<br />

Institut<br />

Lehrstuhl<br />

Wohnort<br />

Dienstort<br />

Datum<br />

Unterschrift<br />

Vergüt.-stufe<br />

Reisek.-stufe<br />

f 1 (name,vorname)<br />

f 2 (name,vorname)<br />

Abbildung 81: Dialogobjekt zur Darstellung von Antragstellerdaten für Lehrstuhlanträge


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

System Historie Optionen Fenster<br />

Antragstellerdaten Reisedaten Verbuchungsdaten<br />

Name<br />

Vorname<br />

Institut<br />

Lehrstuhl<br />

Ziel<br />

Dauer - von<br />

Dauer - bis<br />

Zweck<br />

Weitere<br />

Teilnehmer<br />

Zus.hang zu<br />

Privatreise<br />

Beförd.-mittel<br />

Poliz. Kennz.<br />

bei Privat PkW<br />

Abbildung 82: Dialogobjekt zur Darstellung von Reisedaten für Anträge aus Lehrstuhl<br />

Auto<br />

0<br />

30<br />

3000<br />

≈ (1,1)<br />

(1,2)<br />

≈ (1,1)<br />

(0,4)<br />

≈ (1,200)<br />

(1,n)<br />

✻<br />

Benutzt<br />

≈ (1,1)<br />

(0,4)<br />

Wohnort<br />

✻ Privatzweck<br />

Dienstort<br />

AHatV<br />

PolKZ<br />

Art<br />

1<br />

3<br />

4<br />

≈ (1,1)<br />

(1,4)<br />

≈ (1,10)<br />

(1,n)<br />

Ort<br />

zugeordnet<br />

zu<br />

Von Bis Zweck<br />

beantragt<br />

L<strong>and</strong><br />

Reisekostenstufe<br />

≈ (1,2)<br />

(1,30)<br />

✛≈ (0,1)<br />

(0,2)<br />

AntrDatum<br />

0<br />

1000<br />

∞<br />

✛<br />

≈ (1,1)<br />

(1,3)<br />

✲<br />

≈ (20,80)<br />

(0,n)<br />

Name<br />

Lehrstuhl<br />

≈ (10,40)<br />

(0,n)<br />

✻<br />

Kostenstelle<br />

Beförderungsmittel<br />

Verbuchung<br />

100<br />

200<br />

300<br />

Titel<br />

<br />

Mögliche<br />

Reise<br />

20<br />

90 ✛<br />

150<br />

≈ (1,1)<br />

(1,2)<br />

Vorschuß(Höhe,Auszahlart)<br />

≈ (0,n)<br />

(0,n)<br />

✲<br />

In<br />

❄<br />

Vergütungsgruppe<br />

Name Vorname<br />

❄ ✢<br />

Antragsteller<br />

200<br />

500 ✛<br />

2000<br />

Reiseziele<br />

Art<br />

1<br />

3<br />

8<br />

≈ (2,5)<br />

(0,n)<br />

✲<br />

Fakultät<br />

Nr<br />

1<br />

5<br />

5<br />

Abbildung 83: Beantragung einer Dienstreise mit Verbuchung über den Lehrstuhl


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

Auto<br />

0<br />

30<br />

3000<br />

≈ (1,1)<br />

(1,2)<br />

≈ (1,1)<br />

(0,4)<br />

≈ (1,200)<br />

(1,n)<br />

✻<br />

Benutzt<br />

≈ (1,1)<br />

(0,4)<br />

Wohnort<br />

✻ Privatzweck<br />

Dienstort<br />

AHatV<br />

PolKZ<br />

Art<br />

1<br />

3<br />

4<br />

≈ (1,1)<br />

(1,4)<br />

≈ (1,10)<br />

(1,n)<br />

Ort<br />

zugeordnet<br />

zu<br />

Von Bis Zweck<br />

beantragt<br />

❄<br />

Vergütungsgruppe<br />

Name Vorname<br />

❄ ✢<br />

Antragsteller<br />

200<br />

500 ✛<br />

2000<br />

Reiseziele<br />

L<strong>and</strong><br />

Reisekostenstufe<br />

≈ (1,2)<br />

(1,30)<br />

✛≈ (0,1)<br />

(0,2)<br />

AntrDatum<br />

0<br />

1000<br />

∞<br />

✛<br />

≈ (1,1)<br />

(1,3)<br />

✲<br />

≈ (20,80)<br />

(0,n)<br />

Name<br />

Lehrstuhl<br />

≈ (10,40)<br />

(0,n)<br />

✻<br />

Kostenstelle<br />

Beförderungsmittel<br />

Verbuchung<br />

100<br />

200<br />

300<br />

Titel<br />

20<br />

90 ✛<br />

150<br />

≈ (1,1)<br />

(1,2)<br />

Vorschuß(Höhe,Auszahlart)<br />

≈ (0,n)<br />

(0,n)<br />

✲<br />

In<br />

<br />

Mögliche<br />

Beförderungsmittel<br />

Art<br />

1<br />

3<br />

8<br />

≈ (2,5)<br />

(0,n)<br />

✲<br />

Fakultät<br />

Nr<br />

1<br />

5<br />

5<br />

Abbildung 84: Beantragung einer Dienstreise mit Verbuchung über den Lehrstuhl


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

Auto<br />

0<br />

30<br />

3000<br />

≈ (1,1)<br />

(1,2)<br />

≈ (1,1)<br />

(0,4)<br />

≈ (1,200)<br />

(1,n)<br />

✻<br />

Benutzt<br />

≈ (1,1)<br />

(0,4)<br />

Wohnort<br />

✻ Privatzweck<br />

Dienstort<br />

AHatV<br />

PolKZ<br />

Art<br />

1<br />

3<br />

4<br />

≈ (1,1)<br />

(1,4)<br />

≈ (1,10)<br />

(1,n)<br />

Ort<br />

zugeordnet<br />

zu<br />

Von Bis Zweck<br />

beantragt<br />

❄<br />

Vergütungsgruppe<br />

Name Vorname<br />

❄ ✢<br />

Antragsteller<br />

200<br />

500 ✛<br />

2000<br />

Reiseziele<br />

L<strong>and</strong><br />

Reisekostenstufe<br />

≈ (1,2)<br />

(1,30)<br />

✛<br />

AntrDatum<br />

0<br />

1000<br />

∞<br />

✛<br />

≈ (1,1)<br />

(1,3)<br />

✲<br />

≈ (20,80)<br />

(0,n)<br />

Name<br />

Verbuchung<br />

Lehrstuhl<br />

20<br />

90 ✛<br />

150<br />

≈ (1,1)<br />

(1,2)<br />

Kostenstelle<br />

≈ (0,1)<br />

(0,2)<br />

≈ (0,n)<br />

(0,n)<br />

✲<br />

In<br />

Vorschuß<br />

(Höhe,Auszahlart)<br />

Art<br />

1<br />

3<br />

8<br />

≈ (2,5)<br />

(0,n)<br />

✲<br />

Fakultät<br />

≈ (10,40)<br />

(0,n)<br />

✻<br />

Nr<br />

<br />

Mögliche<br />

Beförderungsmittel<br />

Beförderungsmittel<br />

100<br />

200<br />

300<br />

Titel<br />

1<br />

5<br />

5<br />

Abbildung 85: Beantragung einer Dienstreise mit Verbuchung über die Fakultät


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

DekanBestät<br />

✲ LehrstGenehm<br />

DekGenehm<br />

Person ✛ Antragsteller✛<br />

beantragt ✛<br />

2<br />

❄<br />

LVerbuch<br />

❄<br />

LBefürw<br />

✻<br />

✻<br />

✻<br />

❄<br />

❄<br />

❄<br />

ArbeitetAn<br />

Reise<br />

LehrstFonds<br />

✯<br />

FVerbuch<br />

leitet<br />

✲<br />

❄<br />

Lehrstuhl<br />

✛<br />

LHatFond<br />

✻<br />

DekanVonF<br />

FakVonL<br />

✲<br />

✲<br />

Fakultät<br />

✛<br />

FakHatFond<br />

✲<br />

❄<br />

FakFonds<br />

Abbildung 86: Genehmigungen und Bestätigungen der Anträge durch Lehrstuhl bzw. Dekanat - erste Sichten<br />

Beantragungssicht<br />

Genehmigungssicht1<br />

Genehmigungssicht2<br />

Abrechnungssicht<br />

Genehmigungssicht3<br />

Verbuchungssicht1<br />

Genehmigungssicht4<br />

...<br />

Verrechnungssicht1<br />

Verrechnungssicht4<br />

❘ ❄ ✠<br />

Zentrale<br />

Beantragungssicht<br />

❘ ❄ ✠<br />

Zentrale<br />

Verbuchungssicht<br />

3 ❯<br />

❄<br />

Integriertes Datenbankschema zum Dienstreiseantrag<br />

❘ ❄ ✠<br />

Zentrale<br />

Verrechnungssicht<br />

✙<br />

Abbildung 87: Sichtenintegration in unserer Anwendung


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

Benutzersichten<br />

zur Vereinfachung<br />

des Zugriffs<br />

Beantragungssicht<br />

Genehmigungssicht1<br />

Genehmigungssicht2<br />

...<br />

Sicherheitssichten<br />

zur Kontrolle<br />

des Zugriffs<br />

❄ ❄ ❄<br />

Zugriffsbeschr.<br />

Beantragungssicht<br />

Zugriffsbeschr.<br />

Genehmigungssicht1<br />

Zugriffsbeschr.<br />

Genehmigungssicht2<br />

...<br />

Zentrale<br />

Sichten<br />

zur Darstellung<br />

der Unabhängigkeit<br />

❘ ❄ ✠<br />

Zentrale<br />

Beantragungssicht<br />

...<br />

Integriertes<br />

Schema<br />

zur Darstellung<br />

der Speicherung<br />

3<br />

Integriertes Datenbankschema zum Dienstreiseantrag<br />

Abbildung 88: Ausschnitt aus der Sichtenarchitektur mit Sicherheitssichten<br />

2.13.1 HERM und OLAP bzw. Data Warehouses<br />

siehe Bild 92, 93


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

V 1<br />

V 2<br />

Reisen{(Ort, L<strong>and</strong>, Zweck, Von, Bis) }<br />

Reisezeitraum (Von, Bis)<br />

Reisende{ (Name, Vorname) }<br />

Dienstreisender<br />

Dienstreisen<br />

Name Vorname<br />

Ort L<strong>and</strong> Zweck<br />

✛<br />

V 3<br />

Von<br />

führt<br />

durch<br />

Bis<br />

✲<br />

Dienstreisender<br />

Dienstreise<br />

Name Vorname Ort L<strong>and</strong> Zweck<br />

Abbildung 89: Zwei verschiedene Sichten auf eine Dienstreise und eine integrierte Sicht<br />

Auto<br />

Vergütungsgruppe<br />

✻<br />

✻<br />

Benutzt<br />

AHatV<br />

DekanBestät<br />

✲ LehrstGenehm<br />

DekGenehm<br />

❄<br />

❥<br />

Person ✛ Antragsteller<br />

✛<br />

beantragt<br />

✛<br />

2<br />

❄<br />

LVerbuch<br />

❄<br />

LBefürw<br />

✻<br />

✻<br />

✻<br />

leitet<br />

✲<br />

ArbeitetAn<br />

❄<br />

Lehrstuhl<br />

✻<br />

✛<br />

❄<br />

Mögliche<br />

Reise<br />

LHatFond<br />

✯<br />

❘<br />

❫<br />

❄<br />

LehrstFonds<br />

Reiseziele<br />

Beförderungsmittel<br />

❄<br />

FVerbuch<br />

DekanVonF<br />

FakVonL<br />

✲<br />

✲<br />

Fakultät<br />

✛<br />

FakHatFond<br />

✲<br />

❄<br />

FakFonds<br />

Abbildung 90: Integration der Beantragungs- und Genehmigungssichten bei Verbuchung über den Lehrstuhl bzw. die<br />

Fakultät


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

Hauptmenü<br />

✲ Beantragungsmenü<br />

3 ...<br />

❥ ...<br />

✯<br />

✿<br />

✲<br />

3<br />

❥<br />

Antragsteller<br />

Reisedaten<br />

Verbuchungsvorschlag<br />

Befürwortung<br />

Genehmigung<br />

Abbildung 91: Die Organisation der Menüs für die Beantragung<br />

Person<br />

OtherData<br />

Person<br />

Postal<br />

Person<br />

POBox<br />

<br />

✶<br />

❄<br />

Person<br />

Basic<br />

Data<br />

✻<br />

✮<br />

✐<br />

Person<br />

EmailURL<br />

Person<br />

SMTP<br />

Person<br />

PhoneFax<br />

Abbildung 92: HERM Representation <strong>of</strong> the Star Type Person<br />

CUBE A: PARTICIPANTS PER LECTURE AND DAY<br />

CUBE B: USAGE OF ROOMS PER DAY<br />

Lectures<br />

✛<br />

HeldOn<br />

✲<br />

Day<br />

Room<br />

✛<br />

Usage<br />

✲<br />

Day<br />

#Participants<br />

#TotalUsage<br />

Room#<br />

SCHEDULING SCHEMA ON UNIVERSITY AND EVENING LECTURES<br />

University<br />

Lecture<br />

✛<br />

Room<br />

✻<br />

Room#<br />

University<br />

Lectures<br />

✛<br />

HeldOn<br />

#Participants<br />

✲<br />

Working<br />

Day<br />

✻<br />

✲<br />

IsA Room ✛ ❄<br />

IsA<br />

General<br />

Purpose<br />

Room<br />

✻<br />

Room#<br />

Title<br />

IsA ✲ Day ✛<br />

Organized<br />

On<br />

✲<br />

Evening<br />

Lectures<br />

#Participants<br />

Abbildung 93: Scheduling Views on Lectures Given in a University


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

2.14 Beispiele aus dem HERM-Buch<br />

.


CAU zu Kiel, IfI, ISE, β 2. Strukturierung von IS ab SS 2012 309<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 />

[Bis95]<br />

[BM97]<br />

[BS00]<br />

[BS03]<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 />

[DMT04]<br />

[DMT07]<br />

[EWH85]<br />

[Fownn]<br />

[Gog94]<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 />

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

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

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

[HL07]<br />

[Hoh93]<br />

[KL02]<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 />

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

Mod IS IS ADD Web IS


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

[Kle07]<br />

[KR97]<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 />

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

[RK02]<br />

[Sch94]<br />

[ST93]<br />

[ST98]<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 />

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

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

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

[Wan98]<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 />

Mod IS IS ADD Web IS


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

3. Funktionalität 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 />

3 Funktionalität von <strong>Information</strong>ssystemen<br />

Ein Mann, der recht zu wirken denkt,<br />

Muß auf das beste Werkzeug halten.<br />

Bedenkt, Ihr habt weiches Holz zu spalten,<br />

Und seht nur hin, für wen Ihr schreibt.<br />

Goethe, Faust, Vorspiel auf dem Theater, Direktor<br />

Funktionalität = Algebra + Anfragen + dynamische Integritätsbedingungen<br />

+ Erzwingung der statischen Integritätsbedingungen + ....<br />

Paradigmen<br />

formale Sprache \ Theorie Abstraktion Entwurf<br />

erfinden<br />

•<br />

verwirklichen • ⋄<br />

benutzen<br />

•<br />

Einheit von statischen Gesichtspunkten (grundlegende Seiende und Beziehungen) und dynamischen Gesichtspunkten<br />

Veränderungen im Wissen müssen stets zu einer statischen Gesichtspunkten genügenden Aufzählung führen<br />

somit müssen H<strong>and</strong>lungen stets statisch abbildbar sein<br />

Seiendes - etwas, das wirklich existiert; kann seine Existenz unabhängig von <strong>and</strong>eren beginnen und beenden;<br />

damit formale H<strong>and</strong>lungen des Existenzbeginns und Ende als grundlegend<br />

Komplexität ⇒ leicht ausführbare Änderung<br />

Einfügen muß allein der Eindeutigkeitsbedingung genügen<br />

Löschen soll nicht Löschen von Werten <strong>and</strong>erer Seinender nachziehen


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 312<br />

3.0 Vorbemerkungen zur Spezifikation der Funktionalität<br />

Gute Zusatzliteratur:<br />

R. J. Wieringa, <strong>Design</strong> methods for reactive systems. Morgan-Kaufmann, Amsterdam, 2003<br />

D. Dori, Object-process methdology. Springer, Berlin 2002<br />

3.0.1 Dynamik von Daten und die Reflexion durch Modellierung<br />

Entwicklung als eines der vier Prinzipien der Informatik.<br />

Transformation is a generalization <strong>of</strong> consumption (destruction), change (effect), generation (construction)<br />

<strong>of</strong> one or more objects. A ‘process’ is a pattern <strong>of</strong> transformation. So, a transformation may be modeled<br />

through a modification <strong>of</strong> the state, i.e. through delete, update, <strong>and</strong> insert.<br />

There are two perspectives from which a system can be contemplated. One perspective is the instantaneous, snapshotlike,<br />

structural one, which views the world as it is in any particular moment <strong>of</strong> time. This perspective has no time<br />

dimension. It represents the objects in the world <strong>and</strong> the time-independent relationships that may exist among them.<br />

A second perspective is one that does include time <strong>and</strong> represents the time relationships among the things in the<br />

world. From this viewpoint, the existence <strong>of</strong> an object is persistent - the object ‘statically sits there’, waiting to be<br />

transformed by a process. As long as no process acts on the object, it remains in its current state.<br />

A process, on the other h<strong>and</strong>, is typically ‘transient’. It is a thing what “happens” or “occurs” to an object rather than<br />

something that “exists” in its own rights. (D. Dori,59)<br />

Time relationships: cause <strong>and</strong> effect.<br />

We distinguish between<br />

Real-time state change depending on support we may provide for different validity modes<br />

real world validity<br />

transaction time validity or<br />

storage time validity<br />

Sequential or parallel execution models: Transformations may be applied sequentially based on a certain ordering<br />

or partially parallel.<br />

Time may be represented by a time model, e.g. by timelines based on a sequence <strong>of</strong> consecutive time intervals <strong>of</strong><br />

identical duration. These intervals are termed chronons 1 .<br />

Functionality modeling criteria:<br />

Object dependability: For a change to occur, it must rely on at least one object for it to occur.<br />

Object transformation: A change must transform at least one <strong>of</strong> the objects in the preprocess object set.<br />

Association with time: A change must represent some happening, occurrence, action, procedure, routine,<br />

execution, operation, or activity that takes place along the timeline.<br />

Association with a verb: A change must be associated with a verb.<br />

A change <strong>of</strong> an object is an alteration in the state <strong>of</strong> that object. The effect <strong>of</strong> a transformation on an object is the<br />

change in the object’s state that the transformation causes, i.e. the transformation from the object’s input state to the<br />

object’s output state.<br />

Parties considered in the modeling <strong>of</strong> functionality:<br />

Enabler <strong>of</strong> a transformation: Object that must be present in order to form for that transformation to occur.<br />

Agent <strong>of</strong> the transformation: Intelligent enabler which can control the transformation it enables by exercising<br />

common sense or goal-oriented considerations.<br />

1 Chronon, used also in quantum mechanics, is like a ’time atom’, a non-decomposable time interval <strong>of</strong> some fixed, minimal duration.


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 313<br />

Instrument <strong>of</strong> a transformation: Non-human physical or informatical enabler.<br />

Transformee <strong>of</strong> a transformation: Object that is transformed by the occurrence <strong>of</strong> that transformation.<br />

Affectee <strong>of</strong> a transformation: Transformee that was affected by the occurrence <strong>of</strong> the transformation.<br />

Consumee <strong>of</strong> a transformation: Transformee that is consumed <strong>and</strong> eliminated as a result <strong>of</strong> the transformation.<br />

Resultee <strong>of</strong> a transformation: Transformee that is constructed as a result <strong>of</strong> the occurrence <strong>of</strong> the transformation.<br />

Invocation <strong>of</strong> a transformation:<br />

3.0.2 Herangehensweise zur Spezifikation der Funktionalität<br />

Eine Spezifikation wird unterlegt durch<br />

Anforderungen und<br />

Constraints mit denen die Systementwicklung unterlegt wird.<br />

Die Eigenschaften können untergliedert werden in<br />

funktionale Eigenschaften wie Dienste, Verhalten, Kommunikation und<br />

Qualitätseigenschaften wie Effizienz, Benutzbarkeit, Zuverlässigkeit....<br />

Jede Eigenschaft sollte durch die folgenden Elemente unterlegt werden:<br />

Angestrebte Eigenschaft<br />

Annahmen für die Betrachtung, Erzwingung, ... der Eigenschaft und<br />

Angaben für den Verletzungsfall mit entsprechenden Lösungen.<br />

Object Roles with Respect to a Transformation<br />

Involved object suite: Suite <strong>of</strong> objects that are transformed by the transformation or enable it.<br />

Pre-transformation object suite: Suite <strong>of</strong> objects that is required for the transformation to start its execution, enablers<br />

as well as transformees.<br />

Post-transformation object suite: Suite <strong>of</strong> objects that is generated or affected by the execution <strong>of</strong> for the transformation.<br />

Context-object suite: The suite <strong>of</strong> objects that stimulates <strong>and</strong> supports the transformation.


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 314<br />

3.0.3 Unterschiedliche Herangehensweisen und Aufgaben<br />

Wir gehen von einer Einheit von statischen Gesichtspunkten (grundlegende Seiende und Beziehungen) und dynamischen<br />

Gesichtspunkten aus.<br />

Dynamische Gesichtspunkte der Anwendung lassen sich spezifizieren durch<br />

Operationen bzw. H<strong>and</strong>lungen zur Darstellung des dynamischen Verhaltens wie<br />

Änderungsoperationen zur Veränderung der Daten in der Datenbank,<br />

Retrievaloperationen zur Erschließung des Wissens aus der Datenbank ohne Veränderung der Datenbank,<br />

einer Sprache zur Generierung von Programmen und<br />

Rollenveränderungen von dargestellten Objekten.<br />

dynamische Semantik auf der Grundlage von dynamischen Integritätsbedingungen zur Darstellung von zugelassenen,<br />

erwarteten und verbotenen H<strong>and</strong>lungsfolgen und<br />

Verpflichtungen innerhalb einer Rolle beschreiben, welches Wissen zugänglich ist (Sichten) und welche H<strong>and</strong>lungsfolgen<br />

ausgeführt werden müssen (evt. unter Berücksichtung von Ursachen (aktive Elemente)) bzw. dürfen<br />

(evt. unter Berücksichtung von Voraussetzungen) sowie<br />

Mitteilungen an einen oder den <strong>and</strong>eren Empfänger, die sie ihrerseits verstehen und verarbeiten können.<br />

Veränderungen im Wissen müssen stets zu einer statischen Gesichtspunkten genügenden Aufzählung führen. Somit<br />

müssen H<strong>and</strong>lungen stets statisch abbildbar sein. Das Seiende ist etwas, das wirklich existiert. Es kann seine Existenz<br />

unabhängig von <strong>and</strong>eren beginnen und beenden. Damit werden formale H<strong>and</strong>lungen des Existenzbeginns und -endes<br />

grundlegend zur Umsetzung von H<strong>and</strong>lungen innerhalb der Datenbank.<br />

Wir unterscheiden bei der Beschreibung der Funktionalität in der Modellierung zwischen<br />

Produktfunktionen des Lastenheftes, die in allgemeiner Form die Hauptfunktionen mit den Einschränkungen der<br />

Anwendung darstellen,<br />

Arbeitsschritten des Pflichtenheftes, die die Funktionalität auf dem Niveau der Geschäftprozesse und Geschäftsvorfälle<br />

in ihrem Ablauf unter Berücksichtigung der Organisationsstruktur darstellen,<br />

Aktionen der Nutzer-Maschine zur vollständigen Beschreibung aller H<strong>and</strong>lungen von Benutzern aus deren Sicht,<br />

Prozessen der Workflow-Maschine zur vollständigen konzeptionellen Spezifikation der Funktionalität der Anwendung<br />

und<br />

Programmen der Datenbank-Maschine auf dem Niveau der logischen Maschine bis hin zur Codierung von Stored<br />

Procedures, Triggern etc., die in Modulen zusammengefaßt werden.<br />

Die Abstraktionsschichten werden in Bild 1 illustriert.<br />

Es existieren viele Modelle zur Darstellung der Prozesse und wenige Modelle zur Darstellung der dynamischen<br />

Semantik.<br />

Formular-orientierte Sprachen erlauben die Modellierung von Folgen von zusammenhängenden Aktivitäten. Mit<br />

Ablaufmodellen kann der Lebenszyklus eines (Datenbank-)Objektes dargestellt werden. In einer Form Definition<br />

Component werden die Objekte selbst beschrieben. Mit der Document Flow Component wird der Datenfluß<br />

beschrieben. Die Document Transformation Component erlaubt die programmiersprachliche Beschreibung der<br />

Aktivitäten. Aktivitäten können selbst zu Gruppen zusammengefaßt werden. Verschiedene parallele Berechnungen<br />

sind möglich.<br />

Fluß-orientierte Sprachen modellieren formale H<strong>and</strong>lungen als Flüsse von Objekten und Mitteilungen. Aktivitätengraphen<br />

bzw. Vorgangskettendiagramme, Prozeßmodelle und Beschreibungen von Lebenszyklen erlauben<br />

die Beschreibung von komplexem Verhalten.


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 315<br />

Anforderungsschicht<br />

Anwendungsschicht<br />

Vorstudie<br />

Skizzierung<br />

Produktfunktionalität<br />

Produktfunktion<br />

Lastenheft: Funktionen<br />

Feinstudie<br />

Verfeinerung<br />

Geschäftprozesse<br />

Arbeitsschritt<br />

Pflichtenheft: Funktion<br />

Aktionsschicht<br />

Entwurf<br />

Entwicklung<br />

H<strong>and</strong>lungen<br />

Aktionen<br />

Nutzer-Maschine<br />

konzeptionelle<br />

Schicht<br />

Implementation<br />

Transformation<br />

Workflow<br />

Prozesse<br />

Workflow-Maschine<br />

Implementationsschicht<br />

Module<br />

Datenbank-Maschine<br />

Programme<br />

Transaktionen<br />

Stored Procedures<br />

Abbildung 1: Die Arbeitsprodukte im Abstraktionsschichtenmodell für die Funktionalität


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 316<br />

(a) Spezifikation der “Mission” aus der Anwendung heraus<br />

Typisches Beispiel einer fluß- bzw. tätigkeitsorientierten Darstellungsform: IDEF0-Modelle wie in Bild 2.<br />

❄<br />

Absprachen<br />

mit <strong>and</strong>eren Bereichen ✲<br />

...<br />

Anforderungen<br />

✲<br />

✲<br />

Lehrplan<br />

UnivIS<br />

Absprachen<br />

des Institutes<br />

❄<br />

Erstellung eines<br />

Lehrangebotes<br />

✻<br />

AG-<br />

Planer<br />

✻<br />

❄<br />

Regularien<br />

für LV<br />

Vorgeschlagene<br />

Veranstaltungen ✲<br />

Neben-bedingungen<br />

Abbildung 2: Der Tätigkeitskasten von IDEF0<br />

Tätigkeiten werden stets mit Verben assoziiert und beschrieben. Das IDEF0-Modell benutzt ein Quadrupel-<br />

Modell: (Input, Control, Mechanism, Output). Betriebmittel (Mechanism) sind Systeme, die zur Ausführung des<br />

Prozesses benötigt werden. Durch Vorgaben (Control) werden Einschränkungen zur Ausführung von Prozessen spezifiziert.<br />

Pfeile können verzweigen (AND-Semantik) und zusammengeführt werden (AND- oder UNION-Semantik). Damit<br />

entstehen Pipeline-Pfeile. Sie können außerdem getunnelt werden.<br />

Ein fünfter Pfeiltyp (Reference) wird i.a. nicht benutzt. Mit diesem Pfeiltyp kann eine Beziehung zu <strong>and</strong>eren<br />

Schemata hergestellt werden. Es werden damit auch gemeinsame Funktionen beschreibbar.<br />

(b) Funktionsbäume, Funktionskarten und ihre Verfeinerung<br />

Erstellung eines<br />

Lehrangebotes<br />

Entwicklung eines<br />

Lehrpr<strong>of</strong>iles<br />

Prüfung durch Leiter<br />

Zusammenstellung<br />

Abgleich des<br />

Lehrangebotes<br />

Neuerstellung Erweiterung<br />

Abbildung 3: Der Funktionsbaum zur komplexen Tätigkeit<br />

Der Funktionsbaum wie z.B. in Bild 3 wird benutzt, um den Aufbau von Tätigkeiten mit einer Verfeinerung zu<br />

unterlegen. Die Verfeinerung sollte eine 1-n-Verfeinerung sein.


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 317<br />

(c) Dienstebeschreibung<br />

Ein Dienst wird durch die folgenden Elemente angegeben:<br />

Name<br />

Auslösende Ereignisse (externe, interne, temporal)<br />

Effekte der Dienstanwendung<br />

Annahmen für den Dienst<br />

(d) Zust<strong>and</strong>stransitionslisten und -tabellen<br />

Ereignislisten beschreiben Ereignisse und ihre Auswirkungen (effects).<br />

Sie sind durch entsprechende ASM-Regeln beschreibbar.<br />

Ein Türöffner wird beschrieben durch<br />

seinen Namen<br />

das auslösende Ereignis, z.B. ein Passagier betritt oder verläßt den Raum und<br />

den bereitgestellten Dienst, z.B. wenn ein Sensor eine Zust<strong>and</strong>sänderung bemerkt, dann werden die Türen<br />

geöffnet und per default für 10 Sekunden <strong>of</strong>fen gelassen.<br />

if PassDoors(c) AND Door(c) = opened then c.state := geöffnet<br />

if PassDoors(c) AND Door(c) = closing then openDoor(c) AND c.state := geöffnet<br />

if ChangeState(c.state := opened, t) <strong>and</strong> ElapsedTime(t+10) <strong>and</strong> Door(c) = opened<br />

then closeDoor(c) <strong>and</strong> c.state := closing<br />

Zust<strong>and</strong>süberführungstabelle zur Darstellung des Quadrupels<br />

(StimulierendesEreignis, AktuellerZust<strong>and</strong>, Aktion, Neuer Zust<strong>and</strong>)<br />

durch Angabe von NF2-Tabellen z.B. geordnet nach Ereignissen oder aktuellen Zuständen<br />

Stimulus Aktueller Zust<strong>and</strong> Aktion Neuer Zust<strong>and</strong><br />

... .... ... ...<br />

Manchmal sind diese Tabellen zu komplex, z.B. falls keine Zust<strong>and</strong>süberführungen stattfinden. Dann lassen wir<br />

die letzte Spalte weg. (Oft wird dies dann durch Entscheidungstabellen bzw. -bäume dargestellt.<br />

SSA: Spezifikation des zust<strong>and</strong>slosen Paternosters<br />

(e) Zust<strong>and</strong>stransitionsdiagramme<br />

nach Harel<br />

mit Zuständen und Transitionen der Form<br />

Ereignis-Ausdruck [Wächterausdruck] / Aktion-Ausdruck<br />

Ereignisse sind:<br />

benannte Ereignisse,<br />

Ereignisse, die durch Veränderung von Parametern aktiviert werden<br />

temporale Ereignisse<br />

Zustände können auch hierarchisch geschachtelt sein, parallel ablaufen, eine Geschichte darstellen, als intiale<br />

Zustände gekennzeichnet werden


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 318<br />

StateCharts sind spezielle ASM mit benannten Zuständen<br />

können auch dargestellt werden durch Petri-Netz-ASM:<br />

if Cond(prePlaces) then Updates(postPlaces)<br />

where Updates(postPlaces) = a set <strong>of</strong> function updates<br />

ECA-Spezifikationen (Trigger) sind spezielle Überführungsfunktionen und werden angew<strong>and</strong>t zur<br />

Pflege der Integrität<br />

Bereitstellung von H<strong>and</strong>lungen<br />

Monitoring<br />

Pflege von Hilfsdaten,insbesondere im Cache<br />

Vereinfachung der Anwendungsentwicklung<br />

Trigger besitzen einen Definitionsrahmen<br />

Aktivierungsbedingung<br />

Aktivierungszeit: immediate oder deferred<br />

Aktivierungserzwingung: mit before oder per default im after<br />

Granularität: auf Tupelniveau oder auf Anweisungsniveau<br />

Konfliklösung zwischen Triggern: durch Auflösung für eine Gruppe von Triggern oder durch Erzeugung<br />

eines Ausführungsplanes zur geordneten Konfliklösung<br />

Auswirkungen aufgrund von Integritätsbedingungen: no action, restrict, cascade, set null<br />

set default<br />

The four basic event triggering types:<br />

Timing<br />

Beginning<br />

End<br />

Point <strong>of</strong> concern State State entrance event State exit event<br />

Transformation Transformation start event Transformation end event<br />

(f) Verhaltenssemantik<br />

Spezielle Annahmen:<br />

Atomare Zustände: die Zwischenzustände einer Transition werden nicht berücksichtigt<br />

Erreichbarkeit: jede Transition kann unter gewissen Umständen benutzbar sein<br />

Isolation: unabhängig von <strong>and</strong>eren ablaufenden Zust<strong>and</strong>sveränderungen<br />

Dauerhaftigkeit:<br />

Spezielle Zustände<br />

Wartezust<strong>and</strong><br />

Aktiver Zust<strong>and</strong> zur Ausführung<br />

(*) mit deferred response Semantik oder<br />

(*) mit forced termination Semantik wobei


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 319<br />

global forced termination Semantik<br />

oder<br />

local termination Semantik Optionen sind.<br />

Unterschiedliche Semantiken bei Triggering:<br />

Logische Unmöglichkeit<br />

Physische Unmöglichkeit<br />

Ignorierung von Kombinationen<br />

Gehemmte Kombination<br />

Unbekannte Effekte<br />

Bei parallelen Auftreten des gleichen Ereignisses für einen Zust<strong>and</strong>: Unterscheidung in<br />

Schritt-Semantik: alle ausführbaren Transitionen feuern<br />

Einfache-Transitions-Semantik: es wird eine ausführbare Transition ausgewählt<br />

Bei Verarbeitung von Listen von Aktionen<br />

Schritt-Semantik meist default<br />

Parallele Ausführung<br />

Aktionen, die als Ereignis im nächsten Schritt auftreten erlauben eine Zusammenführung in einem Superschritt.<br />

Es kann sowohl eine<br />

ereignisgesteuerte Abarbeitung als auch eine<br />

zeitpunktgesteuerte Abarbeitung erfolgen.<br />

(g) Erweiterungen<br />

Wieringa Part VI<br />

Postmodern Structured <strong>Analysis</strong><br />

Statemate<br />

UML<br />

Not Yet Another Method (NYAM)


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 320<br />

3.1 Die Algebra des erweiterten Entity-Relationship-Modelles<br />

3.1.1 Spezifikationsrahmen für die Algebra<br />

Alle Funktionen basieren auf einer entsprechenden Algebra, die zum einem Elementar-Operationen bereitstellt und<br />

zum <strong>and</strong>eren die Konstruktion von komplexeren Operationen auf der Grundlage vorh<strong>and</strong>ener Operationen ermöglicht.<br />

Wir erlauben eine komplexere Strukturierung von Typen. Deshalb verallgemeinern wir für die Definition von<br />

Operationen Teilstrukturen und Vergleiche:<br />

Teilstrukturen von Strukturen und Typen sind mit folgenden Operationen definiert:<br />

Die Definition von Teilstrukturen basiert auf der Ordnung ≼, die als kleinste binäre Relation über der<br />

Menge S aller Strukturen definiert mit folgenden Eigenschaften:<br />

• λ ≼ X für jedes X ∈ S;<br />

• A(A 1 , ...., A n ) ≼ B(B 1 , ..., B n ) falls für alle i , 1 ≤ i ≤ n A i ≼ B i gilt;<br />

• A{A 1 } ≼ A{B 1 } falls A 1 ≼ B 1 gilt.<br />

Die Vereinigung Y ⊔ X Z , der Durchschnitt Y ⊓ X Z und die Differenz Y \ X Z sind dann für<br />

Strukturen X und deren Teilstrukturen Y, Z wie folgt induktiv definiert:<br />

• falls Y ≼ Z gilt auch Y ⊔ X Z = Z , sowie Y ⊓ X Z = Y , Z \ X λ = Z und Z \ X Y = λ;<br />

• falls X = A{B}ß, , Y = A{C}, Z = A{D} dann gilt auch Y ◦ X Z = A{C ◦ B D} für<br />

◦ ∈ {⊔, ⊓};<br />

• falls X = A{B} , Y = A{C} , Z = A{D} , Z ⋠ Y dann gilt auch Z \ X Y = A{D ◦ B X} ;<br />

• falls X = (A(A 1 , ..., A n ) , Y = A(B 1 , ..., B n ) , Z = (C 1 , ..., C n ) dann gilt auch<br />

A(B 1 ◦ A1 C 1 , ..., B n ◦ An C n ) für ◦ ∈ {⊓, ⊔, \}.<br />

Die Struktur X wird als Kontext für die Operationen benötigt.<br />

Prädikate: Gegeben sei ein Typ X. Ein Basisprädikat α vom Typ X ist ein Ausdruck der Form YΘa oder der Form<br />

Y ◦ C für Y ≼ X , a ∈ dom(Y) , ◦ ∈ {∈, ∉} , C ⊆ dom(Y) und alle Vergleichsprädikate Θ, die über Y<br />

definiert sind (Für viele Typen sind dies {=, ≠, , ≤, ≥}.).<br />

Ein Objekt o vom Typ X erfüllt YΘa, falls aΘo| Y für die Einschränkung von o auf Y gilt.<br />

Ein Objekt o vom Typ X erfüllt Y ◦ C, falls o| Y ◦ C für die Einschränkung von o auf Y gilt.<br />

Prädikate sind induktiv definiert:<br />

Basisprädikate sind Prädikate.<br />

Sind α <strong>and</strong> β Prädikate, dann sind es auch α ∧ β, α ∨ β und ¬α .<br />

Ein Objekt o erfüllt das Prädikat α, falls dies entsprechend der Definition von α gilt. Damit definieren wir<br />

ι({o}) =<br />

{ {o} falls o das Prädikat α erfüllt<br />

∅<br />

<strong>and</strong>ernfalls<br />

Erfüllt ein Objekt o das Prädikat α, dann<br />

Ersetzungsfamilie: Eine Ersetzungsfamilie γ = {(o, R Co )} vom Typ R ist eine Menge bestehend aus einem Paar<br />

von Objekten und Klassen vom Typ R. Eine Ersetzungsfamilie beschreibt für Objekte vom Typ R jeweils eine<br />

Klasse von Objekten, durch die dieses Objekt ersetzt wird.<br />

Definitionsrahmen der strukturellen Rekursion: Durch strukturelle Rekursion wird ein allgemeiner Rahmen zur<br />

Definition von Funktionen bereitgestellt.<br />

Gegeben seien Typen T, T ′ , Kollektionen T C vom Typ T, die Funktionen ∪ T (verallgemeinerte Vereinigung),<br />

∩ T (verallgemeinerter Durchschnitt) und die leere Kollektion ∅ T von T.<br />

Weiterhin seien für einen Typ T ′ ein Wert h 0 ∈ dom(T ′ ) und Funktionen<br />

h 1 : T → T ′ h 2 : T ′ × T ′ → T ′ gegeben. Dann definieren wir<br />

srec h0 ,h 1 ,h 2<br />

(∅ T ) = h 0<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 321<br />

srec h0 ,h 1 ,h 2<br />

(|{|s|}|) = h 1 (s) für einelementige Kollektionen |{|s|}|<br />

srec h0 ,h 1 ,h 2<br />

(T C 1<br />

∪ T T C 2<br />

) = h 2 (srec h0 ,h 1 ,h 2<br />

(T C 1<br />

), srec h0 ,h 1 ,h 2<br />

(T C 2<br />

))<br />

falls T C 1<br />

∩ T T C 2<br />

= ∅ T .<br />

Gewöhnlich wird eine solche mathematische Definition weggelassen. Wir sind jedoch an einer Datenbankentwicklung<br />

mit nachvollziehbaren Eigenschaften interessiert.<br />

3.1.2 Die HERM-Algebra als Verallgemeineurng der relationalen Algebra (mengenbasierte Form)<br />

Die Referenzsemantik für HERM-Strukturen führt auf eine verallgemeinerte Codasyl-Algebra. Dazu existieren<br />

allerdings nur sehr wenige Arbeiten aus den 80er Jahren.<br />

Die Algebra des erweiterten ER-Modelles ist eine Verallgemeinerung und Erweiterung der relationalen Algebra.<br />

Demzufolge sind die Elementaroperationen auf die gleiche Art formulierbar:<br />

Typ-erhaltende Operationen führen zu Klassen vom gleichen Typ.<br />

Mengen-Operationen: Es seien R C 1<br />

und R C 2<br />

Klassen vom Typ R. Dann können wir folgende Operationen<br />

definieren:<br />

Vereinigung: R C 1<br />

∪ R C 2<br />

= {o | o ∈ R C 1<br />

∨ o ∈ R C 2<br />

}<br />

(z.B. mit srec h0 ,h 1 ,h 2<br />

und h 0 ((∅, ∅)) = ∅,<br />

h 1 (({o}, {o})) = {o} und h 2 (M 1 , M 2 ) = M 1 ∪ M 2<br />

d.h. srec h0 ,h 1 ,h 2<br />

((C 11 , C 21 ) ⊔ pair (C 12 , C 22 )) =<br />

srec h0 ,h 1 ,h 2<br />

((C 11 , C 21 )) ∪ srec h0 ,h 1 ,h 2<br />

((C 12 , C 22 ))<br />

wobei (C 11 , C 21 ) ⊓ pair (C 11 , C 21 ) = ∅ pair genau dann gilt, wenn<br />

C 11 ∩ C 12 = ∅ und C 21 ∩ C 22 = ∅ gelten 2 .<br />

Durchschnitt: R C 1<br />

∩ R C 2<br />

= {o | o ∈ R C 1<br />

∧ o ∈ R C 2<br />

}<br />

SSA: Wie müßte man diese Operation über strukturelle Rekursion definieren?<br />

Differenz: R C 1<br />

\ R C 2<br />

= {o | o ∈ R C 1<br />

∧ o ∉ R C 2<br />

}<br />

SSA: Wie müßte man diese Operation über strukturelle Rekursion definieren?<br />

Auswahl von Objekten aus einer Klasse: Gegeben sei ein Prädikat α über R.<br />

Die Selektion σ α (R C ) wird induktiv eingeführt durch strukturelle Rekursion mit ∅ T , ⊔ R , ⊓ R und<br />

σ α (R C ) = srec ∅,ι,⊔R (R C ) bzw. in der aufgelösten Form:<br />

• σ α (∅) = ∅<br />

• σ α ({o}) = ι({o})<br />

• σ α (R C 1<br />

⊔ R R C 2<br />

) = σ α (R C 1<br />

) ⊔ R σ α (R C 2<br />

) falls R C 1<br />

⊓ R R C 2<br />

= ∅ gilt.<br />

Wir nutzen eine <strong>and</strong>ere Einführung als die viel verwendete doppelte Induktion wegen der komplexeren<br />

Teilstrukturierung der Typen. Die beiden Definitionen sind jedoch äquivalent.<br />

Abgeleitete Elementaroperationen sind die Modifikationsoperationen der Datenbanksysteme:<br />

Einfügen von Elementen: Die insert-Operation Insert(R C , o) ist durch die Vereinigung R C ∪ {o}<br />

von Mengen für Klassen R C und Objekte o vom gleichen Typ R beschreibbar.<br />

Streichen von Elementen: Die delete-Operation Delete(R C , o) ist durch die Differenz R C \{o} von<br />

Mengen für Klassen R C und Objekte o vom gleichen Typ R definierbar. Analog kann man auch das<br />

Streichen von Mengen delete(R C , R C′ ) einführen.<br />

Update von Elementen: Die Modifikation Update(R C , α, γ) von Klassen R C ist für Prädikate α und<br />

Ersetzungsfamilien γ = {(o, R C o<br />

)} ist definiert durch die Menge<br />

2 Diese Bedingungen sind die strengsten. Sie nicht nicht notwendigerweise zu fordern, weil ∪ für beliebige Mengen bereits zur Elimination<br />

von Doppelungen von Elementen führt<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 322<br />

R C \ σ α (R C ) ∪<br />

⋃<br />

o∈σ α (R C )<br />

R C o<br />

.<br />

Eine <strong>of</strong>t verwendete Definition basiert auf dem Ausdruck R C \ σ α (R C ) ∪ R C′ . Damit wird jedoch ein<br />

<strong>and</strong>erer Effekt erzielt. Gilt z.B. σ α (R C ) = ∅ und R C′ ≠ ∅, dann wird die ursprüngliche Intention<br />

verloren. Dieser Einführung liegt jedoch die <strong>of</strong>t praktizierte Ersetzung von Update(R C , o, {o ′ })<br />

durch die Folge Delete(R C , o); InsertUpdate(R C , o ′ ) zugrunde.<br />

Typ-bildende Operationen erzeugen neue Klassen und Typen. Gegeben seien die Typen R und S und entsprechende<br />

Klassen R C und S C .<br />

Kartesisches Produkt: Die Klasse R C × S C = {(o, o ′ ) | o ∈ R C , o ′ ∈ S C } ist definiert über dem Typ<br />

(R, S).<br />

Das Kartesische Produkt kann auch in entfalteter Form über eine Konkatenation der Objekte gebildet<br />

werden.<br />

srec ∅,×,∪<br />

Projektion: Es sei R 1 ein Teiltyp von R. Die Projektion Π R1 (R C ) von R C auf R 1 durch eine Reduktion aller<br />

Objekte von R C auf den Typ R 1 .<br />

Mitunter wird auch die Notation R C [R 1 ] anstelle von Π R1 (R C ) verwendet.<br />

srec ∅,πX ,∪<br />

Schachtelung: Es sei R ′ ein Element von R. Dann wird die Schachtelung ν R ′(R C ) von R C entlang von R ′<br />

definiert als Klasse über dem Typ T = (R \ R ′ ) ⊔ R {R ′ } mit der Menge von Objekten<br />

{ o ∈ Dom(T) | ∃o ′ ∈ R C : o[R \ R R ′ ] = o ′ [R \ R R ′ ]<br />

∧ o(R ′ ) = { o ′′ [R ′ ] | o ′′ ∈ R C ∧ o ′ [R \ R X] = t ′′ [R \ R R ′ ]}}.<br />

Entschachtelung: Es sei R ′ ein Mengenelement von R. Die Entschachtelung µ ′ R (RC ) einer Klasse definiert<br />

einen neuen Typen T = (R \ R {R ′ }) ◦ R ′ für die Konkatenation ◦ und die neue Klasse<br />

{ o ∈ Dom(T) | ∃o ′ ∈ R C : o[R \ R {R ′ }] = o ′ [R \ R {R ′ }] ∧ o[X] ∈ o ′ (X)}.<br />

Potenzmenge: Die Potenzmenge P(R C ) = {M|M ⊆ R C } ist eine geschachtelte Klasse über dem Typ {R} .<br />

Umbenennung: Gegeben sei ein Typ R. Es sei φ eine bijektive Abbildung auf der Markierungsmenge L mit<br />

der Einschränkung, daß für Namen A, B in R mit φ(A) = B auch dom(A) = dom(B) gelten muß. Die<br />

Umbenennung von R mit φ bildet die Klasse R C auf eine Klasse ρ φ (R C ) = φ(R C ) über φ(R) ab.<br />

Verbund: Der Verbund R C 1<br />

S C 2<br />

ist definiert durch den Ausdruck Π R⊔S (σ R⊓S∈ΠR⊓S (S C 2) (RC 1<br />

) × S C 2<br />

.<br />

Der Verbund ist mit srec ∅,,∪ gegeben wobei der elementweise Verbund definiert ist für X Y durch<br />

X Y ({o 1 }, {o 2 }) =<br />

{<br />

o1 X Y o 2 falls π X (o 1 ) = π Y (o 2 )<br />

λ<br />

<strong>and</strong>ernfalls<br />

Omega-Operation: Entfaltung von Relationship-Typen (als bereits definierte Operation durch die Teilstrukturbildung<br />

mit der Projektion)<br />

Ω ID (R) = R × ID(R 1 ) × .... × ID(R n ) für die Komponenten von R<br />

Aggregationsoperationen werden in OLAP-Anwendungen vielfältig angew<strong>and</strong>t. Eine Aggregationsoperation<br />

ist definiert als Familie F = {f 0 , ...., f k , ..., f ω } mit Funktionen f k : Bag k → Num , die Multimengen<br />

mit k Elementen vom Typ T auf einen numerischen Datentyp Num abbilden. Wir lassen nur solche Typen<br />

zu, die ein minimales und ein maximales Element in dom(T) besitzen. Es müssen zwei Eigenschaften<br />

bezüglich der Ordnung auf dom(T) erfüllt sein:<br />

• Es gelten die Gleichungen f k (min, ...., min) = min und f k (max, ..., max) = max für die minimalen<br />

und maximalen Elemente in dom(T).<br />

• Die Funktionen sind monoton bzgl. der Ordnung von dom(T).<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 323<br />

Da Nullwerte explizit zugelassen sind, benutzen wir zwei Hilfsfunktionen für die strukturelle Rekursion:<br />

{<br />

h 0 0 falls s = NULL<br />

f (s) =<br />

f (s) falls s ≠ NULL<br />

{<br />

h undef<br />

undef falls s = NULL<br />

f (s) =<br />

f (s) falls s ≠ NULL .<br />

Wir können nun die folgenden üblichen Aggregationsfunktionen einführen:<br />

Summierung in unterschiedlichen Varianten abhängig von der Beh<strong>and</strong>lung von Nullwerten:<br />

• Summierung für Klassen ohne Nullwerte:<br />

sum = srec 0,Id,+ ;<br />

• Summierung für Klassen mit Nullwerten, die durch die 0 ersetzt werden:<br />

sum null<br />

0 = srec 0,h 0<br />

Id ,+ ;<br />

• Summierung für Klassen mit Nullwerten, die durch die undef ersetzt werden:<br />

sum null<br />

undef = srec 0,h undef<br />

Id ,+ .<br />

Üblich ist die Anwendung der zweiten Option.<br />

Zählen der Objekte je nach Beh<strong>and</strong>lung der Nullwerte:<br />

• Für Klassen ohne Nullwerte: count = srec 0,1,+ ;<br />

• Für Klassen mit Nullwerten: count null<br />

1 = srec 0,h 0<br />

1 ,+ ;<br />

• Alternativ für Klassen mit Nullwerten: count null<br />

undef =<br />

srec 0,h undef<br />

1 ,+ .<br />

Genutzt wird <strong>of</strong>t die zweite Option.<br />

Bildung der maximalen bzw. minimalen Werte in Abhängigkeit von den Ordnungen für NULL:<br />

• Die leere Menge erlaubt keine Bestimmung von minimalen bzw. maximalen Werten:<br />

• max NULL = srec NULL,Id,max bzw. min NULL = srec NULL,Id,min<br />

• max undef = srec undef,Id,max bzw. min undef = srec undef,Id,min<br />

Diese Funktionen hängen davon ab, wie die Nullwerte in dom(T) eingeordnet werden.<br />

Bildung des Durchschnittes: Die Durchschnittsbildung ist eine komplexere Funktion. Es gibt dafür<br />

eine Reihe von Möglichkeiten:<br />

(++)<br />

sum<br />

count<br />

(SQL!?) sumnull 0<br />

count<br />

(??)<br />

(+!)<br />

sum<br />

count null<br />

1<br />

sum null<br />

0<br />

count null<br />

1<br />

(??)<br />

(??)<br />

sum<br />

count null<br />

undef<br />

sum null<br />

0<br />

count null<br />

undef<br />

(+?!) sumnull undef<br />

(??) sumnull undef<br />

sum null<br />

undef<br />

count count null (++)<br />

1<br />

count null<br />

undef<br />

SQL benutzt eine Variante, die nicht die intuitivste ist. Wir präferieren in der HERM-Algebra die<br />

mit “+” annotierten Varianten für den Fall von Klassen mit Nullwerten. Die Funktionen avg null<br />

0,1 und<br />

avg null<br />

undef werden dabei der SQL-Form avgnull vorgezogen.<br />

Die algebraischen Operationen können zur Bildung von komplexeren Ausdrücken benutzt werden. Eine HERM-<br />

Anfrage ist ein (komplexer) Ausdruck in der HERM-Algebra.<br />

Anmerkung: Definition der update-Operation bei K<strong>and</strong>zia/Klein <strong>and</strong>ers formuliert (dort als Modifikationsoperation)<br />

Theorem 1 Die HERM-Algebra ist eine definitorische Erweiterung der relationalen Algebra.<br />

Corollary 1 Die HERM-Algebra ist relational vollständig.<br />

Damit kann mit einer HERM-Algebra alles ausgedrückt werden, was mit einer relationalen Algebra dargestellt werden<br />

kann.<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 324<br />

3.1.3 Erweiterte HERM-Spezifikation von Operationen<br />

Wir erweitern die HERM-Algebra um die Spezifikation einer Umgebung (Sicht), Ausführungsbedingungen als Vorbedingung<br />

und Nachbedingung und Nachfolgeoperationen. In diesem Fall erhalten wir einen allgemeinen Definitionsrahmen<br />

der Form:<br />

Operation ϕ<br />

[Sicht: < Sichten Name> ]<br />

[Vorbedingung: < Aktivierungs Bedingung >]<br />

[Aktivierte Operation: < Spezifikation >]<br />

[Nachbedingung: < Akzeptanz Bedingung >]<br />

[Erzwingene Operation: < Operation, Bedingung>]<br />

3.1.4 Spezifikation von Programmen<br />

Beachtung zweier Besonderheiten:<br />

Parallelverarbeitung von Programmen<br />

dazu erforderlich<br />

Semantik paralleler Ausführung<br />

Verwaltung von Konsistenzanforderungen bei der Parallelverarbeitung<br />

Modell zur Bewältigung von Konflikten<br />

Abstraktion von Programmteilen, z.B. durch Blockstruktur<br />

i.a. als Transaktionssemantik (spezielle Form der Konsistenzverwaltung)<br />

do temporary(TA 1 , db);<br />

if TA 1 (db) |= Σ then do permanently(TA 1 , db) else undo(TA 1 , db);<br />

mit vielen Erweiterungsmechanismen<br />

Multilevel TA-Modelle gestatten eine Verschachtelung von Transaktionen mit Teiltransaktionen, die wiederum<br />

der Transaktionsemantik genügen.<br />

TA 1 supplemented by TA 2 :<br />

do temporary(TA 1 , db);<br />

if TA 1 (db) |= Σ then do permanently(TA 1 , db) else<br />

begin do temporary(TA 2 , TA 1 (db));<br />

if TA 2 (TA 1 (db)) |= Σ then do permanently((TA 1 ; TA 2 ), db)<br />

else undo((TA 1 ; TA 2 ), db);<br />

end;<br />

Diese Form kann auch für die Kompensation von Effekten einer Transaktion genutzt werden, z.B. im Falle<br />

einer Reisebuchung mit Best<strong>and</strong>teilen wie einer Flugbuchung und einer Hotelreservierung zur Rücknahme<br />

eines Teiles, falls der <strong>and</strong>ere Teil nicht erfolgreich war oder auch zur Ergänzung einer Buchung um<br />

weitere Elemente falls dies erforderlich ist.<br />

TA 1 substituted by TA 2 :<br />

do temporary(TA 1 );<br />

if TA 1 (db) |= Σ then do permanently(TA 1 , db) else<br />

begin undo(TA 1 , db); do temporary(TA 2 , db);<br />

if TA 2 (db) |= Σ then do permanently(TA 2 , db) else undo(TA 2 , db)<br />

end;<br />

Diese Form kann auch für die Kompensation von Effekten einer Transaktion genutzt werden, z.B. im Falle<br />

einer Reisebuchung mit Best<strong>and</strong>teilen wie einer Flugbuchung und einer Hotelreservierung zum Auslösen<br />

einer Ersatzbuchung.<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 325<br />

Savepoints innerhalb einer Transaktion<br />

sp1 := create safepoint();<br />

sowie zurückfahren bis zu safepoint rollback(sp1)<br />

Chained Transactions: mit commit-Punkten commit(); innerhalb der Transaktion<br />

ggf. auch mit recoverable queries der Teiltransaktionen<br />

Sagas: als eine Kombination von chained transactions und compensations<br />

ST 1 , CT 1 , ..., ST i , CT i , ..., ST n , CT n<br />

mit der Semantik: Falls Transaktion ST i zu fehlerhaften Zust<strong>and</strong> führt, dann wird die Folge<br />

CT i ,CT i−1 , ..., CT 2 , CT 1 ausgeführt.<br />

Erweiterte Transaktionsmodelle sind i.a. nicht parallel ausführbar.<br />

Corollary 2 Alle Programme, die in der HERM-Algebra formuliert sind, können durch Interpretation direkt in relationale<br />

Programme überführt werden.<br />

3.1.5 Transformation von HERM-Algebra-Ausdrücken in relationale Algebra<br />

3.1.6 Die Funktionalität von relationalen Datenbank-Maschinen<br />

3.1.7 Die Funktionalität von XML-Datenbank-Maschinen<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 326<br />

3.1.8 Visual SQL<br />

siehe extra tutorial


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 327<br />

3.2 Workflow-Spezifikation<br />

Die Arbeitsvorgänge werden in Einzelschritte zerlegt. Die Einzelschritte werden durch Prozesse verfeinert. Der Zusammenhang<br />

der Arbeitsvorgänge wird durch verallgemeinerte Transaktionsmodelle dargestellt. In der Datenbank<br />

verändern Prozesse die Zustände. Deshalb werden die Zust<strong>and</strong>sveränderungen modelliert. Die Prozesse veranlassen<br />

legale Transitionen von Zuständen. Darauf aufbauend können die Integritätsbedingungen durch Bedingungen zur<br />

Ausführung und durch Nachbedingungen für Prozesse dargestellt werden. Integritätsbedingungen, die durch Transitionsbedingungen<br />

nicht darstellbar sind, werden für Pflegeroutinen aufbereitet. Mit der Prozeßdefinition kann die<br />

Definition der Semantik abgeleitet werden. Je nach Prozeßmodell wird eine axiomatische, parallele, kausale etc.<br />

Semantik benutzt. Wir benutzen ein Zust<strong>and</strong>stransitionsdiagramm zur Darstellung.<br />

Die Aufgaben- und Prozeßkoordination folgt den Zusammenhängen in den Geschäftprozessen.<br />

Wir unterscheiden für die Prozesse Retrievaldaten, die als Input für die Prozesse aus der Datenbank dienen, Inputdaten<br />

der Akteure, Outputdaten zum Zurückschreiben in die Datenbank, Displaydaten zur Darstellung in den Dialogen<br />

und Begleitdaten, die aus vorhergehenden Prozessen stammen und zur Darstellung der <strong>Information</strong>en während<br />

der Dialogschritte dienen. Damit können Prozesse auch ein<strong>and</strong>er beeinflussen und sind nicht nebenwirkungsfrei.<br />

Damit werden für die Prozesse auch Interaktionsdiagramme und Kohäsionsbeziehungen entwickelt.<br />

Damit erhalten wir ein allgemeines Workflow-Modell:<br />

Die drei R’s von Workflow-Modellen sind<br />

Routen (Szenario) durch einen Ablaufgraph,<br />

Regeln zur Darstellung der verarbeiteten <strong>Information</strong> und<br />

Rollen mit einer Zuordnung zu den h<strong>and</strong>elnden Personen (Akteuren).<br />

Die drei P’s von Workflow-Modellen sind<br />

Prozesse als das Kernstück der Spezifikation,<br />

Politiken und Anwendungsstrategien und<br />

Praktiken der Anwendung, die spezifische Seiten zum Ausdruck bringen.<br />

3.2.1 Das Eder-Modell der Aspekte von Workflow-Spezifikationen


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 328<br />

3.2.2 Business Process Modelling Notation - BPMN<br />

BPMI.org. Business Process Modeling Notation Specification.<br />

dtc/2006-02-01<br />

http://www.omg.org/technology/documents/spec catalog.htm, 2006.<br />

meanwhile: BPMN 1.1, BPMN 2.0<br />

Neben dem H<strong>and</strong>book (Eder- und Börger-Artikel) sind die folgenden Arbeiten von Interesse:<br />

[Wes07]: M. Weske, Business Process Management:<br />

Concept, language, architecture. Springer, 2007.<br />

[KST09]: Case study (Conference paper submission <strong>and</strong> reviewing system)<br />

Theoretische Grundlagen zu BPMN: [BT08a], [BST09], [BT08b]<br />

BPMN in Detail<br />

Business Process Modelling & Notation.<br />

Yet an Example <strong>of</strong> a Workflow Diagram.<br />

A BPMN diagram taken from literature with many problems<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 329<br />

Fallstudie Otto.de: Navigation, Use Cases, Customer Support<br />

c○T. Hille, Modellierung eines Webshops - Otto. HPI<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 330<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 331<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 332<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 333<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 334<br />

c○T. Hille, Modellierung eines Webshops - Otto. HPI<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 335<br />

BPMN Assumptions.<br />

separation <strong>of</strong> the specification into workflow process <strong>and</strong> workflow process instance<br />

singleton isolatable process instance bound to its token<br />

inter-process collaboaration only through messages <strong>and</strong> events<br />

hidden resource dependences<br />

swimlanes for different roles <strong>of</strong> users<br />

pools for views on process sets<br />

separation <strong>of</strong> nodes<br />

Node = Activity ∪ Event ∪ Gateway<br />

separation <strong>of</strong> events<br />

Event = StartEvent ∪ IntermEvent ∪ EndEvent<br />

tasks comprehend only some <strong>of</strong> possible executions<br />

TaskType = {Service, User, Receive, Send, Script, Manual, Reference, None}<br />

rigid localisation<br />

context-sensitiv functions,<br />

none-incremental semantics,<br />

goto jumps, token progression may become “arbitrary”<br />

Resulting Orchestration Problems<br />

avalanches <strong>of</strong> side constraints<br />

exemplification <strong>of</strong> the Sapir/Whorf syndrome<br />

B.L. Whorf, Lost generation theories <strong>of</strong> mind, language, <strong>and</strong> religion.<br />

Ann Arbor, Mich., Popular Culture Association,<br />

University Micr<strong>of</strong>ilms International, 1980.<br />

D. Sapire, General causation, Synthése, 1991, 86, 3, 321–347<br />

“Principle <strong>of</strong> linguistic relativity”: actors skilled in a language may not have a (deep) underst<strong>and</strong>ing <strong>of</strong> some concepts <strong>of</strong> other languages<br />

The design <strong>and</strong> development quality depends on main success factors:<br />

structuring <strong>of</strong> the process itself,<br />

culture <strong>of</strong> people involved,<br />

skills <strong>of</strong> actors, <strong>and</strong><br />

process capabilities<br />

Communication through explicit specification <strong>of</strong> protocols <strong>and</strong> services: interprocess communication exclusively<br />

by messages <strong>and</strong> links<br />

Coordination only implicitly by message protocols or links<br />

typical coordination problems:<br />

opportunities, obligations, permissions <strong>and</strong> forbids must intentionally be taken into consideration by the<br />

modeller<br />

contracts among parties<br />

exceptional cases, timeouts<br />

Cooperation between processes only through messages<br />

typical cooperation problems:<br />

Zachman enactment: who, what, when, where, how, why<br />

rights, obligations <strong>and</strong> roles<br />

Data dependencies among processes become a sideway task for the modeller<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 336<br />

Implicit BPMN Assumptions<br />

Petri net illustration for token flow results in messy problems<br />

limitations <strong>of</strong> Petri nets<br />

negative token with runtime overwriting <strong>of</strong> semantics <strong>of</strong> constructs<br />

token colouring<br />

token with history transfer for sub-processes<br />

Process instance duplication for each call <strong>of</strong> a process with optimisation by elimination <strong>of</strong> dead paths<br />

Incorporation <strong>of</strong> other st<strong>and</strong>ards in rather fuzzy way: interchange <strong>of</strong> messages, SOAP, UDDI, web services, web<br />

transaction, XML (XPath, XPDL, XSchema, ..), ...<br />

Concentration on workflow processes leaving out control among process instance <strong>and</strong> data flow among them<br />

Partial BPEL transformation with reference to BPEL meaning<br />

Abbildung von Workflows auf Petri-Netze<br />

BPMN - Case Study<br />

Ex.: Paper Submission Review System.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 337<br />

Pitfalls <strong>of</strong> the Petri Net Interpretation<br />

Complexity <strong>of</strong> formalisation<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 338<br />

BPMN gateway<br />

Insufficiency <strong>of</strong> Petri net languages<br />

e.g. error h<strong>and</strong>ling<br />

Wrong abstraction level<br />

The Token Problem in the BPMN St<strong>and</strong>ard<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 339<br />

For each uncontrolled Sequence Flow a “Token” will flow from the source object to the target object.<br />

To facilitate this discussion, we will employ the concept <strong>of</strong> a “Token” that will traverse the Sequence Flow <strong>and</strong> pass through<br />

the Flow Objects in the Process. The behavior <strong>of</strong> the Process can be described by tracking the path(s) <strong>of</strong> the Token through the<br />

Process. A Token will have a unique identity, called a TokenId set, that can be used to distinguish multiple Tokens that may exist<br />

because <strong>of</strong> concurrent Process instances or the dividing <strong>of</strong> the Token for parallel processing within a single Process instance.<br />

The parallel dividing <strong>of</strong> a Token creates a lower level <strong>of</strong> the TokenId set. The set <strong>of</strong> all levels <strong>of</strong> TokenId will identify a Token.<br />

A Start Event generates a Token that must eventually be consumed at an End Event (which may be implicit if not graphically<br />

displayed). The path <strong>of</strong> Tokens should be traceable through the network <strong>of</strong> Sequence Flow, Gateways, <strong>and</strong> activities within a<br />

Process.<br />

If an upstream Inclusive OR produces two out <strong>of</strong> a possible three Tokens, then a downstream Inclusive OR will synchronize<br />

those two Tokens <strong>and</strong> not wait for another Token, even though there are three incoming Sequence Flow (see Figure 9.25).<br />

Email from a colleague: The most interesting <strong>and</strong>, in my opinion, advanced paper<br />

on that is the paper <strong>of</strong> Frank Pullman <strong>and</strong> Matthias Weske from BPM’2005 where the<br />

authors used lambda calculi to derive workflow pattern semantics. The only problem<br />

they had then was related to OR-JOIN operator (gateway) while it was not possible to<br />

express memory <strong>of</strong> the generated tokens.<br />

Comparing to what you propose I see that Pullman <strong>and</strong> Weske had problem with<br />

defining semantics <strong>of</strong> tokens <strong>and</strong> this was crucial for the overall workflow patterns<br />

semantics.<br />

Therefore I would expect that you in a clear <strong>and</strong> unambiguous way define semantics <strong>of</strong><br />

tokens <strong>and</strong> that, in my opinion, would be a real step forward in defining semantics<br />

<strong>of</strong> BPMN.<br />

The Token Problem: Acyclic Case<br />

The BPMN St<strong>and</strong>ard 1.0:<br />

All the Tokens that were generated within the Process must be consumed by an End Event before the Process has been completed.<br />

The Process will be in a running state until all Tokens are consumed.<br />

When the Inclusive Gateway is used as a Merge, it will wait for (synchronize) all Tokens that have been produced upstream. It<br />

does not require that all incoming Sequence Flow produce a Token (as the Parallel Gateway does). It requires that all Sequence<br />

Flow that were actually produced by an upstream (by an Inclusive OR situation, for example). If an upstream Inclusive OR<br />

produces two out <strong>of</strong> a possible three Tokens, then a downstream Inclusive OR will synchronize those two Tokens <strong>and</strong> not wait<br />

for another Token, even though there are three incoming Sequence Flow (see Figure 9.25).<br />

The Token Problem: Cyclic Case<br />

Be careful: Underspecified, confusing <strong>and</strong> difficult<br />

The BPMN St<strong>and</strong>ard 1.0: Incoming Sequence Flow that have a source that is a downstream activity (that is, is part <strong>of</strong> a loop) will be<br />

treated differently than those that have an upstream source.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 340<br />

Mapping <strong>of</strong> BPMN to Conceptual Constructs<br />

Processes to programs <strong>of</strong> transactions<br />

Activities to generalised transactions<br />

Events to observer/controller in the data intensive approach instead <strong>of</strong> active event<br />

Gateways to program constructs<br />

Exceptions<br />

Pools, swimlanes<br />

Supporting structures<br />

• Collaboration, orchestration<br />

• Data consumption<br />

• Data production<br />

3.2.3 Die Formalisierung von BPMN<br />

Diese Ausarbeitungen sind Teil eine Kooperationsprojektes mit<br />

Egon Börger Università di Pisa, Dipartimento di Informatica, I-56125 Pisa, Italy<br />

im Rahmen eines Projektes, das durch die<br />

Diese Projekt wurde fortgeführt von<br />

Humboldt-Stiftung<br />

mit dem Humboldt-Forschungspreis,<br />

der 2007 an Egon Börger verliehen wurde,<br />

gefördert wird.<br />

Egon Börger und Ove Sörensen zur Formalisierung von BPMN 2.0.<br />

Erstaunlicherweise war die gefundene BPMN 1.0 -Formalisierung ausreichend, um auch BPMN 2.0 zu formalisieren.<br />

Die BPMN 2.0 Formalisierung wurde im H<strong>and</strong>book in Kapitel 8 dargestellt.<br />

The Pisa-Kiel BPMN-ASM Project<br />

ASM semantics: extensible semantical framework for business process modelling notations<br />

Guiding underst<strong>and</strong>ing <strong>of</strong> BPMN constructs based on ASM<br />

Proposals for<br />

improvement <strong>of</strong> BPMN<br />

rigid semantics <strong>of</strong> all BPMN concepts<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 341<br />

treatment <strong>of</strong> all underspecified, overspecified, ... concepts<br />

Systematic framework based on separate behavior from scheduling issues<br />

Description <strong>of</strong> behavior directly in business process terms<br />

Case study for complex business processes<br />

e.g., conference paper submission <strong>and</strong> reviewing system,<br />

conference management<br />

(muComs ∪ BYU ⊇ EasyChair ∪ ....)<br />

Principles.<br />

Separation <strong>of</strong> concern: data space, computation space, collaboration space, control space, user space, ...<br />

e.g., scheduler, abstract machine<br />

Abstraction <strong>and</strong> refinement: level <strong>of</strong> detail (general principles, constructs, schema, execution, instance) depending<br />

on current scope<br />

Hierarchies <strong>and</strong> inheritance: within type system, machines, ...<br />

Components <strong>and</strong> architectures: compositionality, application architecture, SW/HW architecture<br />

State <strong>and</strong> evolution: schemata based on a language, runs based on state evolution rules<br />

Reuse <strong>and</strong> genericity: pattern, generation, parametrisation<br />

Principles: Nice to Have.<br />

Local restriction <strong>of</strong> computation to sub-state <strong>and</strong> rule subset<br />

Stepwise computation e.g. based on computation pattern with general semantics<br />

Concurrent computation without deadlocks <strong>and</strong> explicit collaboration<br />

Collaborating machines with their own computation space, explicit exchange, restricted dependence <strong>of</strong> internal<br />

computation from outside world<br />

Explicit assumptions with underst<strong>and</strong>ing <strong>of</strong> the impact<br />

Orthogonality <strong>of</strong> concepts for easy construction <strong>and</strong> separation <strong>of</strong> concern as a basis for the principle <strong>of</strong> compositionality<br />

Foundations <strong>of</strong> BPMN Semantics.<br />

Operational semantics by reduction rules for execution <strong>of</strong> the language<br />

opportunity: constructing an interpreter<br />

☼<br />

Axiomatic semantics by correctness assertions that describe how to draw conclusions about the input/output interface<br />

<strong>of</strong> a program<br />

opportunity: verifying a program<br />

☹<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 342<br />

Denotational semantics by a valuation function that maps a program into a mathematical object which is considered<br />

as its meaning<br />

opportunity: reasoning about its properties<br />

☹<br />

Transformational semantics based on mappings <strong>and</strong> semantics <strong>of</strong> the target machine<br />

requires thorough knowledge<br />

on mappings, their dependencies <strong>and</strong> interactions, <strong>and</strong><br />

on target machine<br />

<br />

Specifics <strong>of</strong> the ASM Approach.<br />

State model based on static <strong>and</strong> dynamic functions<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 4: The Kinds <strong>of</strong> Internal Functions for Agent ASMs<br />

All rules fire in parallel if they are enabled<br />

parallel <strong>and</strong> continuous execution<br />

Conflicting updates are resolved by disabling some <strong>of</strong> rules that can be fired<br />

Locations as an abstraction <strong>of</strong> storage<br />

Turing/Church hypothesis with scaling abstraction<br />

Fireable workflow transition.<br />

at node for its execution:<br />

WORKFLOWTRANSITIONINTERPRETER =<br />

let node = select Node ({n | n ∈ Node <strong>and</strong> Enabled(n)})<br />

let rule = select WorkflowTransition ({r |<br />

r ∈ WorkflowTransition <strong>and</strong> Fireable(r, node)})<br />

rule<br />

Separation <strong>of</strong> behaviour from scheduling<br />

Execution <strong>of</strong> all firable instance nodes<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 343<br />

WORKFLOWTRANSITION(node) =<br />

if EventCond(node) <strong>and</strong> CtlCond(node)<br />

<strong>and</strong> DataCond(node) <strong>and</strong> ResourceCond(node) then<br />

DATAOP(node)<br />

CTLOP(node)<br />

EVENTOP(node)<br />

RESOURCEOP(node)<br />

AND-Split Gateway (Fork)<br />

in : ✲t<br />

CtlCond<br />

If (Data|Event)Cond .<br />

❄ ✲<br />

. . .<br />

CONSUME<br />

+<br />

ASSIGNOP<br />

PRODUCE<br />

ALL<br />

out j : ✲t j<br />

OutCond j<br />

. . .<br />

✲<br />

ANDSPLITGATETRANSITION(node) = WORKFLOWTRANSITION(node)<br />

where<br />

CtlCond(node) = Enabled(in)<br />

CTLOP(node) =<br />

let t = firingToken(in)<br />

CONSUME(t, in)<br />

PRODUCEALL({(<strong>and</strong>SplitToken(t, o), o) | o ∈ outArc(node)})<br />

DATAOP(node) = //performed for each selected gate<br />

forall o ∈ outArc(node) forall i ∈ assignments(o) ASSIGN(to i , from i )<br />

Thus: Separation <strong>of</strong> rule schemes from concrete rules<br />

AND-Join Gateway<br />

If (Data|Event)Cond .<br />

✲❄<br />

. . .<br />

in i : ✲t i<br />

CtlCond i<br />

. . .<br />

CONSUME<br />

ALL<br />

+<br />

PRODUCE<br />

ASSIGNOP<br />

✲<br />

out : ✲t<br />

OutCond<br />

ANDJOINGATETRANSITION(node) = WORKFLOWTRANSITION(node)<br />

where<br />

CtlCond(node) = forall in ∈ inArc(node) Enabled(in)<br />

CTLOP(node) =<br />

let [in 1 , . . . , in n ] = inArc(node)<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 344<br />

let [t 1 , . . . , t n ] = firingToken(inArc(node))<br />

CONSUMEALL({(t j , in j )) | 1 ≤ j ≤ n})<br />

PRODUCE(<strong>and</strong>JoinToken({t 1 , . . . , t n }), out)<br />

DATAOP(node) = forall i ∈ assignments(out) ASSIGN(to i , from i )<br />

Be careful: BPMN assumes strict local consideration!<br />

Our solution to the token problem<br />

Controller structures based on the concept <strong>of</strong> the program counter<br />

new(token) <strong>of</strong> process instance, derivable owner<br />

token at location <strong>of</strong> control flow, i.e. arc<br />

multiset <strong>of</strong> token at location<br />

returnProcess(token)<br />

frames <strong>of</strong> execution h<strong>and</strong>ling:<br />

• (ASM BPMN) rule<br />

• consumed token,<br />

• produced token,<br />

• conditions applicable,<br />

• methods applied,<br />

• locals<br />

invoke or scheduler frames<br />

supporting infrastructure for retransmission <strong>of</strong> potential enactment<br />

Control Flow Models.<br />

Implicit (defined by the language) or explicit (e.g. goto) control: based on structuring (<strong>and</strong> the<br />

corresponding compositional semantics), exchange interfaces (statements, messages, data, events)<br />

<strong>and</strong> subroutines<br />

Control <strong>of</strong> subroutines: call/return structures, recursive?, call rules, completion <strong>of</strong> subroutines, eager/lazy<br />

execution, transfer <strong>of</strong> control, uniqueness <strong>of</strong> control, current instruction <strong>and</strong> environment<br />

pointer (CIP, CEP);<br />

implicit data control by indirect transfer, binding, naming, association <strong>and</strong> reference environments,<br />

aliases, sharing conceptions; static/dynamic visibility <strong>and</strong> lifespan conceptions; block structures ...<br />

TA’s;<br />

local variables <strong>and</strong> environments, parameters, stack/heap support structures<br />

shared/monitored/controlled/out parameters, (direct) call by name/reference/value/result/value<br />

result/constant value<br />

Control <strong>of</strong> collaboration cases: only by orchestration<br />

control flow on parallelism: control dependence analysis, executing multiple flows <strong>of</strong> control simultaneously,<br />

<strong>and</strong> speculative execution<br />

BPMN Normal Forms.<br />

Splits only at the gates<br />

Entry <strong>and</strong> leave for a process only at start <strong>and</strong> end events<br />

Activities can be separated into<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 345<br />

Activity = Task ∪ SubProcess ∪ IterProc<br />

IterProc = Loop ∪ MultiInstance ∪ AdHoc<br />

St<strong>and</strong>ard looping only<br />

Tracking <strong>of</strong> token<br />

catch environment for local control token<br />

Prenex normal form<br />

also for ad-hoc processes<br />

Communication normal form: explicit communication only by links <strong>and</strong> messages<br />

Exception normal form (????)<br />

ASM BPMN Assumptions.<br />

Token are assigned to arcs in the process diagrams<br />

token : Arc → Multiset(Token)<br />

token are identifiable<br />

Execution <strong>of</strong> workflow steps is reflected at nodes<br />

Enabled(in, t) = (| token(in, t) |≥ qty(in, t))<br />

token enabled execution<br />

Support <strong>and</strong> auxiliary functions<br />

CONSUME(t, in) = DELETE(t, inQty(in), token(in))<br />

PRODUCE(t, out) = INSERT(t, outQty(out), token(out))<br />

CONSUMEALL(X) = forall x ∈ X CONSUME(x)<br />

PRODUCEALL(Y) = forall y ∈ Y PRODUCE(y)<br />

Context-sensitive dynamic functions<br />

ASM Rules.<br />

PRODUCESYNC(t, in) = INSERT(t, syncToken(in))<br />

CONSUMESYNC(t, in) = DELETE(t, syncToken(in))<br />

PRODUCESYNCALL(Y) = forall y ∈ Y PRODUCESYNC(y)<br />

CONSUMESYNCALL(X) = forall x ∈ X CONSUMESYNC(x)<br />

Split gate transition rules<br />

PRODUCESYNCALL({(t.o, i) | i ∈ AllJoinArc(o), o ∈ O})<br />

CONSUMESYNCALL({(t, i) | i ∈ AllJoinArc(o) forsome o ∈ O})<br />

Join gate transition rules<br />

PRODUCESYNCALL({(joinToken(t 1 , . . . , t n ), in) | in ∈ AllJoinArc(out)})<br />

CONSUMESYNCALL({(t i , in) | in ∈ AllJoinArc(out)})<br />

Synchronization counterpart<br />

CtlCondSync(node, I) =<br />

forall i ∈ I syncToken(i) ≠ ∅ <strong>and</strong><br />

forall i ∈ inArc(node) \ I syncToken(i) = ∅<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 346<br />

Separation <strong>of</strong> Concern.<br />

The Concern Space <strong>of</strong> BPMN: Control space, abstraction, dimensions, user<br />

“Concern space” <strong>of</strong> systems: what concerns are present, how they relate, <strong>and</strong> how they can be used for modularization.<br />

http://researchweb.watson.ibm.com/hyperspace/ConcernSpaces.htm<br />

Encapsulation <strong>of</strong> all kinds <strong>of</strong> concerns in a<br />

s<strong>of</strong>tware system, simultaneously.<br />

Overlapping <strong>and</strong> interacting concerns.<br />

On-dem<strong>and</strong> remodularization.<br />

Multiple, arbitrary kinds (dimensions) <strong>of</strong> concerns.<br />

Separation according to these concerns simultaneously.<br />

Overlapping or interacting concerns.<br />

Connection <strong>of</strong> concerns.<br />

Separation <strong>of</strong> Different Concerns.<br />

For design <strong>and</strong> analysis <strong>of</strong> business processes it turned out to be crucial that the ASM method supports to first<br />

explicitly separate <strong>and</strong> then smoothly combine the realization <strong>of</strong> different concerns, based upon appropriate abstractions<br />

supporting this form <strong>of</strong> modularization. We list some <strong>of</strong> the main separation principles, which we have used with<br />

advantage for the definition <strong>of</strong> the execution semantics for BPMN by ASMs.<br />

*.<br />

Separation Principle 1. This principle is about the separation <strong>of</strong> behavior from scheduling.<br />

*.<br />

Separation Principle 2. The second principle is about the separation <strong>of</strong> orthogonal constructs.<br />

*.<br />

Separation Principle 3. The third principle is the separation <strong>of</strong> different model dimensions like control, events, data<br />

<strong>and</strong> resources. S<br />

*.<br />

Separation Principle 4. The fourth principle, whose adoption helps to reduce the description size <strong>of</strong> abstract models,<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 347<br />

is the separation <strong>of</strong> rule schemes <strong>and</strong> concrete rules, where the concrete rules may also be specialized rule schemes.<br />

*.<br />

Separation Principle 5. The fifth example is about the separation <strong>of</strong> design, experimental validation <strong>and</strong> mathematical<br />

verification <strong>of</strong> models <strong>and</strong> their properties.<br />

The Concern Space <strong>of</strong> BPMN<br />

Separation <strong>of</strong> behavior from scheduling based on explicit schedulers<br />

Separation <strong>of</strong> orthogonal constructs beyond <strong>of</strong> what BPMN envisioned<br />

TaskType = {Service, User, Receive, Send, Script, Manual, Reference, None}<br />

Separation <strong>of</strong> different model dimensions like control, events, data <strong>and</strong> resources<br />

Separation <strong>of</strong> design, experimental validation <strong>and</strong> mathematical verification<br />

see coming demo<br />

Separation <strong>of</strong> rule schemes <strong>and</strong> concrete rules e.g. by generalising rule schemes to generic ones or patterns<br />

GATETRANSITIONPATTERN(node) =<br />

let I = select Consume (node)<br />

let O = select Produce (node) in<br />

where<br />

WORKFLOWTRANSITION(node, I, O)<br />

CtlCond(node, I) = (I ≠ ∅ <strong>and</strong> forall in ∈ I Enabled(in))<br />

CTLOP(node, I, O) =<br />

PRODUCEALL({(patternToken(firingToken(I), o), o) | o ∈ O})<br />

CONSUMEALL({(t i , in i ) | 1 ≤ i ≤ n}) where<br />

[t 1 , . . . , t n ] = firingToken(I)<br />

[in 1 , . . . , in n ] = I<br />

ASSIGNOP(node, O) = forall o ∈ O forall a ∈ assignments(o) ASSIGN(to a , from a )<br />

Separation <strong>of</strong> responsibilities, rights <strong>and</strong> roles <strong>of</strong> users<br />

Illustration <strong>of</strong> the Separation Principle: OR-Gateways<br />

Separation <strong>of</strong> send-collect for OR-gates as either global conception or (better) local subscribing OR-joins <strong>of</strong> runtime<br />

behaviour <strong>of</strong> publishing OR-splits<br />

Clustering <strong>of</strong> cycles as a good practice<br />

Tokenisation <strong>of</strong> cycle counters through Tokensets as a facility to model associated token<br />

separation <strong>of</strong> pathes according to their effect<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 348<br />

Abbildung 5: Cyclic OR splits <strong>and</strong> joins with separation <strong>of</strong> cycle <strong>and</strong> remaining process<br />

Abbildung 6: Necessity <strong>of</strong> delayed semantics for splits <strong>and</strong> joins<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 349<br />

Completion <strong>of</strong> semantics for meaning <strong>of</strong> synchronisation, cycles as a graph extension with specific stratification or<br />

encapsulation structures<br />

Fitch Structures for Diagrams<br />

Separation <strong>of</strong> send-collect for OR-gates as either global conception or (better) local subscribing OR-joins <strong>of</strong><br />

runtime behaviour <strong>of</strong> publishing OR-splits<br />

Abbildung 7: Fitch Structures: Cyclic OR splits <strong>and</strong> joins with separation <strong>of</strong> cycle <strong>and</strong> remaining process<br />

The ‘vicious cycle’ example: explicit treatment <strong>of</strong> cycles, tokensets as an association tool, encapsulation <strong>of</strong> cycle<br />

pathes, separation <strong>of</strong> send-collect synchronisation from cycle synchronisation<br />

The Token Problem: Cyclic Case<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 350<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 351<br />

The BPMN St<strong>and</strong>ard 1.0: Incoming Sequence Flow that have a source that is a downstream activity (that is, is part <strong>of</strong> a loop) will be<br />

treated differently than those that have an upstream source.<br />

The Token Problem: Vicious Cycle<br />

The BPMN St<strong>and</strong>ard 1.0: Incoming Sequence Flow that have a source that is a downstream activity (that is, is part <strong>of</strong> a loop) will be<br />

treated differently than those that have an upstream source.<br />

Lessons for Cyclic Diagrams: Level <strong>of</strong> support depends on diagram<br />

Acyclic diagrams without OR-splits <strong>and</strong> joins: local execution with local rules<br />

Acyclic diagrams with OR-splits <strong>and</strong> joins: local execution with send-collect information enrichment at join nodes<br />

Cyclic diagrams with XOR-entry/leave: separation <strong>of</strong> inside cycle flow <strong>and</strong> outside cycle flow<br />

Stratified cyclic diagrams with OR/AND-entry/leave: explicit extension <strong>of</strong> diagrams <strong>and</strong> completion <strong>of</strong> underspecified<br />

semantics<br />

Non-stratified cyclic diagrams led to many problems, e.g., deadlocks<br />

Orthogonal Concerns: Co-design, coexistence <strong>and</strong> co-evolution <strong>of</strong> specifications<br />

Database support: computation in collaboration, shared resources, modification-in-place ∨ -in-private<br />

Transactional systems: short-term, long-term, collaboration transactions<br />

Security: integrity, availability, confidentiality<br />

also privacy<br />

History: runtime, log, revival (recovery, restart, session),<br />

Context: concurrency, infrastructure, architecture,<br />

QoS, SLA: quality <strong>of</strong> use, external/internal quality<br />

Collaboration: communication, cooperation, coordination<br />

or simply orchestration, syndication<br />

Actors, users: shared usage beyond message exchange<br />

ASM: Power <strong>of</strong> Modelling.<br />

Abstract description <strong>of</strong> behaviour <strong>of</strong> processes through general ASM rules<br />

Nodes in BPMN diagrams defined by their ASM rules<br />

Control state transformation by control state ASM functions <strong>and</strong> control state rules<br />

Separation <strong>of</strong> concern as lean ASM model<br />

Orthogonal design <strong>of</strong> scheduler, rule, separatable conceptions, process-subprocess history <strong>and</strong> management<br />

Schematic design by ASM workflow transitions<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 352<br />

Lazy choice <strong>of</strong> most appropriate implementation strategy, i.e., overlay structure<br />

ASM enrichment <strong>of</strong> semantics with explicit choices for versions, e.g., synchonisation level<br />

Control-flow oriented execution based on specific supporting data structures (token set)<br />

Treatment <strong>of</strong> errors.<br />

be aware <strong>and</strong> develop mechanisms<br />

Systemic errors e.g. based on data exploration, data re-usage, data merging, falsifications, biases, wrong models<br />

Systematic errors e.g. due to abstractions, restrictions in accessible data, dirty data, approximations, computations<br />

Stochastic errors e.g. based on assumptions for occurrence <strong>of</strong> errors, their distribution functions <strong>and</strong> their contribution<br />

within the model <strong>and</strong> to the variables<br />

H<strong>and</strong>ling by<br />

error prevention with direct correction, duplicate extraction <strong>and</strong> elaboration, validation, <strong>and</strong> verification<br />

(probabilistic) error models with maximal error, error spreading <strong>and</strong> multiplication, confidence intervals, means,<br />

outlier detection, time series abstractions<br />

error cleansing algorithms with(out) data recovery<br />

Gateways.<br />

in i : ✲t i<br />

CtlCond i<br />

. . .<br />

OR-Join Gateway<br />

If (Data|Event)Cond .<br />

✲❄<br />

. . .<br />

CONSUME<br />

SOME<br />

O<br />

PRODUCE<br />

ASSIGNOP<br />

✲<br />

out : ✲t<br />

OutCond<br />

ORJOINGATETRANSITION(node) =<br />

let I = select Consume (node) in WORKFLOWTRANSITION(node, I)<br />

where<br />

CtlCond(node, I) = (I ≠ ∅ <strong>and</strong> forall i ∈ I Enabled(i))<br />

CTLOP(node, I) =<br />

PRODUCE(orJoinToken(firingToken(I)), out)<br />

CONSUMEALL({(t i , in i ) | 1 ≤ i ≤ n}) where<br />

[t 1 , . . . , t n ] = firingToken(I)<br />

[in 1 , . . . , in n ] = I<br />

ASSIGNOP(node) = forall i ∈ assignments(out) ASSIGN(to i , from i )<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 353<br />

in : ✲t<br />

CtlCond<br />

OR-Split Gateways<br />

If (Data|Event)Cond .<br />

❄ ✲<br />

. . .<br />

CONSUME<br />

O<br />

ASSIGNOP<br />

PRODUCE<br />

SOME<br />

out j : ✲t j<br />

OutCond j<br />

. . .<br />

✲<br />

ORSPLITGATETRANSITION(node) =<br />

let O = select Produce (node) in WORKFLOWTRANSITION(node, O)<br />

where<br />

CtlCond(node) = Enabled(in)<br />

CTLOP(node, O) =<br />

let t = firingToken(in)<br />

CONSUME(t, in)<br />

PRODUCEALL({(orSplitToken(t, o), o) | o ∈ O})<br />

ASSIGNOP(node, O) = forall o ∈ O forall a ∈ assignments(o) ASSIGN(to a , from a )<br />

Complex Gateways<br />

If (Data|Event)Cond .<br />

✲❄<br />

✲<br />

. . .<br />

. . .<br />

in i : ✲t i<br />

CtlCond i<br />

. . .<br />

CONSUME<br />

SOME<br />

× +<br />

ASSIGNOP<br />

✲<br />

PRODUCE<br />

SOME<br />

out j : ✲t j<br />

OutCond j<br />

. . .<br />

✲<br />

GATETRANSITIONPATTERN(node) =<br />

let I = select Consume (node)<br />

let O = select Produce (node) in<br />

WORKFLOWTRANSITION(node, I, O)<br />

where<br />

CtlCond(node, I) = (I ≠ ∅ <strong>and</strong> forall in ∈ I Enabled(in))<br />

CTLOP(node, I, O) =<br />

PRODUCEALL({(patternToken(firingToken(I), o), o) | o ∈ O})<br />

CONSUMEALL({(t i , in i ) | 1 ≤ i ≤ n}) where<br />

[t 1 , . . . , t n ] = firingToken(I)<br />

[in 1 , . . . , in n ] = I<br />

ASSIGNOP(node, O) = forall o ∈ O forall a ∈ assignments(o) ASSIGN(to a , from a )<br />

Events.<br />

Start events STARTEVENTTRANSITION(node) =<br />

choose e ∈ trigger(node) STARTEVENTTRANSITION(node, e)<br />

alternativ:<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 354<br />

STARTEVENTTRANSITION(node, e) =<br />

if Triggered(e) then PRODUCE(startToken(e), out)<br />

CONSUMEVENT(e)<br />

if type(e) = Link then<br />

Triggered(e) = Enabled(link)<br />

CONSUMEVENT(link) = CONSUME(linkToken(link), link)<br />

multiple start events:<br />

MULTIPLESTARTEVENTTRANSITION(node) =<br />

choose E ⊆ CorrelatedEvent(node)<br />

MULTIPLESTARTEVENTTRANSITION(node, E)<br />

MULTIPLESTARTEVENTTRANSITION(node, E) =<br />

if forall e ∈ E Triggered(e) then<br />

PRODUCE(startToken(e), out)<br />

forall e ∈ E CONSUMEVENT(e)<br />

End events ENDEVENTTRANSITION(node) =<br />

if Enabled(in) then<br />

CONSUME(firingToken(in), in)<br />

EMITRESULT(firingToken(in), res(node), node)<br />

EMITRESULT(result, t, node) =<br />

if type(result) = Message then SEND(mssg(node, t))<br />

if type(result) ∈ {Error, Cancel, Compensation} then<br />

Triggered(targetIntermEv(result, node)) := true // trigger an intermediate event<br />

INSERT(exc(t), excType(targetIntermEvNode(result, node))))<br />

if type(result) = Cancel then CALLBACK(mssg(cancel, exc(t), node), listener(cancel, node))<br />

if type(result) = Link then PRODUCE(result, linkToken(result))<br />

if type(result) = Terminate then DELETEALLTOKENS(process(p))<br />

if type(result) = None <strong>and</strong> IsSubprocessEnd(node) then<br />

PRODUCE(returnToken(targetArc(node), t), targetArc(node))<br />

if type(result) = Multiple then forall r ∈ MultipleResult(node) EMITRESULT(r, t, node)<br />

where<br />

CALLBACK(m, L) = forall l ∈ L SEND(m, l)<br />

DELETEALLTOKENS(p) = forall act ∈ Activity(p)<br />

forall a ∈ inArc(act) forall t ∈ TokenSet(p) EMPTY(token(a, t))<br />

Intermediate Events INTERMEVENTTRANSITION(node) =<br />

choose e ∈ trigger(node) INTERMEVENTTRANSITION(node, e)<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 355<br />

INTERMEVENTTRANSITION(node, e) =<br />

if Triggered(e) then let t = firingToken(in)<br />

if not BoundaryEv(e) then<br />

if Enabled(in) then<br />

CONSUMEVENT(e)<br />

CONSUME(t, in)<br />

if type(e) = Link then PRODUCE(linkToken(link), link)<br />

if type(e) = None then PRODUCE(t, out)<br />

if type(e) = Message then<br />

if NormalFlowCont(mssg(node), process(t))<br />

then PRODUCE(t, out)<br />

else THROW(exc(mssg(node)), targetIntermEv(node))<br />

if type(e) = Timer then PRODUCE(timerToken(t), out)<br />

if type(e) ∈ {Error, Compensation, Rule} then THROW(e, targetIntermEv(e))<br />

if BoundaryEv(e) then<br />

if active(targetAct(e)) then<br />

CONSUMEVENT(e)<br />

if type(e) = Timer then INSERT(timerEv(e), excType(node))<br />

if type(e) = Rule then INSERT(ruleEv(e), excType(node))<br />

if type(e) = Message then INSERT(mssgEv(e), excType(node))<br />

if type(e) = Cancel then choose exc ∈ excType(node) in<br />

if Completed(Cancellation(e, exc)) then PRODUCE(excToken(e, exc), out)<br />

else TRYTOCATCH(e, node)<br />

where<br />

TRYTOCATCH(ev, node) =<br />

if ExcMatch(ev) then PRODUCE(out(ev))<br />

else TRYTOCATCH(ev, targetIntermEv(node, ev))<br />

Completed(Cancellation(e)) =<br />

RolledBack(targetAct(e)) <strong>and</strong> Completed(Compensation(targetAct(e)))<br />

Tasks.<br />

TASKTRANSITION(task) = [if Enabled(in) then]<br />

if ReadyForExec(task) then let t = firingToken(in)<br />

[CONSUME(t, in)]<br />

let i = select InputSets (SomeAvail(inputSets(task)))<br />

EXEC(task, inputs(i))<br />

currInput(task) := i<br />

[seq<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 356<br />

if Completed(task, t) then<br />

[PRODUCEOUTPUT(outputSets(task), currInput(task))]<br />

[PRODUCE(taskToken(task, t), out)]]<br />

where<br />

PRODUCEOUTPUT(outputSets(t), i) =<br />

choose o ∈ outputSets(t) with Defined(outputs(o)) <strong>and</strong> IORules(t)(o, i) = true<br />

EMIT(outputs(o))<br />

ReadyForExec(t)<br />

⎧<br />

=<br />

⎨ SomeAvail(inputSets(t))<br />

Arrived(mssg(t)) [<strong>and</strong> Instantiate(t)]<br />

⎩<br />

true<br />

if type(t) ∈ {Service, User}<br />

if type(t) = Receive<br />

if type(t) ∈ {Send, Script, Manual, Reference}<br />

EXEC(t,<br />

⎧<br />

i) =<br />

SEND(inMssg(t))<br />

RECEIVE(mssg(t))<br />

⎪⎨<br />

SEND(mssg(t))<br />

CALL(performer(action(t, i)), action(t, i))<br />

EXEC(taskRef (t), i)<br />

⎪⎩<br />

skip<br />

if type(t) ∈ {Service, User}<br />

if type(t) = Receive<br />

if type(t) ∈ {Send}<br />

if type(t) ∈ {Script, Manual}<br />

if type(t) = Reference<br />

if type(t) = None<br />

Completed(t,<br />

⎧<br />

ttype) =<br />

Arrived(outMssg(t, ttype))<br />

⎪⎨ Received(mssg(task, ttype))<br />

Sent(mssg(task, ttype))<br />

Completed(action(t, inputs(currInput(t))), ttype)<br />

⎪⎩<br />

Completed(taskRef (t), ttype)<br />

if type(t) ∈ {Service, User}<br />

if type(t) = Receive<br />

if type(t) = Send<br />

if type(t) ∈ {Script, Manual}<br />

if type(t) = Reference<br />

Iterative Activity Nodes.<br />

LOOPTRANSITION(node) = [if Enabled(in) then]<br />

let t = firingToken(in)<br />

LOOPENTRY(node, t)<br />

seq<br />

if testTime(node) = before then<br />

while loopCond(node, t) LOOPBODY(node, t)<br />

if testTime(node) = after then<br />

until loopCond(node, t) LOOPBODY(node, t)<br />

[seq LOOPEXIT(node, t)]<br />

where<br />

LOOPBODY(n, t) =<br />

loopCounter(node, t) := loopCounter(node, t) + 1<br />

iterBody(node, loopToken(t, loopCounter(node, t) + 1)[, inputs(currInput(node))])<br />

LOOPENTRY(n, t) =<br />

loopCounter(n, t) := 0<br />

[CONSUME(t, in)]<br />

[currInput(n) := select InputSets (SomeAvail(inputSets(n)))]<br />

LOOPEXIT(n, t) =<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 357<br />

if Completed(n, t) then<br />

[PRODUCEOUTPUT(outputSets(n), currInput(n))]<br />

[PRODUCE(loopExitToken(t, loopCounter(n, t)), out)]<br />

Completed(n, t) = LoopCompleted(n, t) if n ∈ Loop(t)<br />

Multi-Instance Loops.<br />

MULTIINSTTRANSITION(node) = [if Enabled(in) then]<br />

let t = firingToken(in)<br />

LOOPENTRY(node, t)<br />

seq<br />

if miOrdering(node) = Sequential then<br />

foreach i ≤ miNumber(node)<br />

loopCounter(node, t) := loopCounter(node, t) + 1<br />

iterBody(node, miToken(t, i)[, inputs(currInput(node))])<br />

seq LOOPEXIT(node, t)<br />

if miOrdering(node) = Parallel then<br />

forall i ≤ miNumber(node)<br />

START(iterBody(node, miToken(t, i)[, inputs(currInput(node))]))<br />

seq<br />

if miFlowCond = All then LOOPEXIT(node, t)<br />

if miFlowCond = None then EVERYMULTINSTEXIT(node, t)<br />

if miFlowCond = One then ONEMULTINSTEXIT(node, t)<br />

if miFlowCond = Complex then COMPLMULTINSTEXIT(node, t)<br />

where<br />

Completed(n, t) = forall i ≤ miNumber(n)<br />

Completed(iterBody(n, miToken(t, i)[. . .]))<br />

COMPLMULTINSTEXIT(n, t) = // for miOrdering(n) = Parallel<br />

AlreadyCompleted := ∅ // initially no instance is completed<br />

seq<br />

while AlreadyCompleted ≠ {i | i ≤ miNumber(n)} do<br />

if NewCompleted(n, t) ≠ ∅ then<br />

if | AlreadyCompleted |< tokenNo(complexMiFlowCond)<br />

then<br />

if TokenTime(complexMiFlowCond) then<br />

let i 0 = select NewCompleted in<br />

PRODUCE(miExitToken(t, i 0 ), out)<br />

INSERT(i 0 , AlreadyCompleted)<br />

[PRODUCEOUTPUT(outputSets(n), currInput(n))]<br />

else forall i ∈ NewCompleted(n, t) INSERT(i, AlreadyCompleted)<br />

where<br />

NewCompleted(n, t) =<br />

{i ≤ miNumber(n) | Completed(iterBody(n, miToken(t, i)[. . .])) <strong>and</strong> i ∉ AlreadyCompleted}<br />

EVERYMULTINSTEXIT(n, t) = COMPLMULTINSTEXIT(n, t)<br />

where<br />

tokenNo(complexMiFlowCond) =| {i | i ≤ miNumber(n)} |<br />

TokenTime(complexMiFlowCond) = true<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 358<br />

ONEMULTINSTEXIT(n, t) = COMPLMULTINSTEXIT(n, t)<br />

where<br />

tokenNo(complexMiFlowCond) = 1<br />

TokenTime(complexMiFlowCond) = true<br />

AdHoc Processes.<br />

ADHOCTRANSITION(node) = [if Enabled(in) then]<br />

let t = firingToken(in)<br />

[CONSUME(t, in)]<br />

[let i = select InputSets (SomeAvail(inputSets(node)))<br />

currInput(node) := i]<br />

while not AdHocCompletionCond(node, t)<br />

if adHocOrder(node) = Parallel then forall a ∈ innerAct(node) do a[inputs(i)]<br />

if adHocOrder(node) = Sequential then let< a 0 , . . . , a n >= innerAct(node)<br />

foreach j < n do a j [inputs(i)]<br />

seq LOOPEXIT(node, t)<br />

where Completed(node, t) = AdHocCompletionCond(node, t)<br />

UNCONSTRAINEDADHOCTRANSITION(node) = [if Enabled(in, tokenType(in)) then]<br />

let t = firingToken(in)<br />

[CONSUME(t, in)]<br />

[let i = select InputSets (SomeAvail(inputSets(node)))<br />

currInput(node) := i]<br />

while not AdHocCompletionCond(node, t)<br />

choose A ⊆ multi innerAct(node)<br />

forall a ∈ A do a[inputs(i)]<br />

seq LOOPEXIT(node, t)<br />

where Completed(node, t) = AdHocCompletionCond(node, t)<br />

An alternative Token Model.<br />

Token with clan memory<br />

start token T <strong>of</strong> process instance<br />

And T.1<br />

And T.2 And T.3<br />

Or T.1.1<br />

Or T.1.2<br />

Xor T.2<br />

Multi T.1.1. 1 Multi T.1.1. 2 Multi T.1.1. 3 Multi T.1.1. 4<br />

And T.2.1 And T.2.2<br />

each token has complete knowledge on its siblings <strong>and</strong> parents<br />

splits generate new children<br />

joins return parent <strong>of</strong> complete join otherwise more complex model<br />

special model for structures <strong>of</strong> splits <strong>and</strong> joins that do not have an equivalent Fitch structure<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 359<br />

Business process modelling notation: Mapping to BPEL<br />

Business process modelling notation: Derivation from SiteLang<br />

Beispiel: Conference Paper Submission <strong>and</strong> Reviewing System<br />

Beispiel: Edutainment Website für Lernunterstützung von Kindern<br />

Beispiel: Edutainment Plattform<br />

3.2.4 Workflow als konzeptionelle Wiederspiegelung<br />

Klassen von Operationen.<br />

Retrievaloperationen zur Gewinnung von Daten<br />

Modifikationsoperationen zur Veränderung der Daten<br />

Pflegeoperationen zur Pflege der Datenbank, zur Bereitstellung von temporären Daten, zur Pflege der Hilfsstrukturen<br />

wie Indices etc.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 360<br />

Prozesse als Grundkonstrukt.<br />

Anmerkung β: Prozeßalgebra wird noch eingeführt<br />

Prozeß:<br />

Einfache Transaktionen wie bereits oben<br />

Komplexe Transaktion wie bereits oben<br />

System-Prozeß der Zust<strong>and</strong> des DBS-Inputs, DBS-Outputs oder des DBMS ändert<br />

Für die Verhaltensmodellierung ergeben sich neue Modellierungsforderungen 3 :<br />

Erweiterte und abgeschwächte Transaktionsmodelle können verwendet werden. Dazu stehen als Alternativen<br />

Konzepte des Transaktionsbaumes, genesteter Transaktionen, <strong>of</strong>fene genestete Transaktionen und kompensierende<br />

Teiltransaktionen zur Verfügung.<br />

Das erweiterte ER-Modell verfügt über diese Mechanismen.<br />

Es wird eine Transaktion allgemein mit einem Definitionsrahmen der Form<br />

transaction identifier (parameter list)<br />

o 1 ; o 2 ; ...; o m<br />

end;<br />

angegeben. Die Operationen o i sind HERM-Operationen. Sie können parametrisiert sein.<br />

Weiterhin sind geschachtelte Transaktionen P 1 ; P 2 ; ...P n zugelassen, die ihrerseits wiederum aus Folgen von<br />

(Komponenten-)Transaktionen bestehen. Die Semantik der geschachtelten Transaktionen basiert auf einem<br />

schrittweisen Abschluß der Komponenten-Transaktionen. Führt eine der Komponenten-Transaktionen zu einem<br />

Fehler, dann wird die gesamte geschachtelte Transaktionen abgebrochen.<br />

Außerdem sind zugelassen<br />

• kompensierende Transaktionen<br />

P 1 compensated by P 2 ,<br />

bei denen bei einem Auftreten eines Fehlers die Transaktion zu einer Kompensation des Fehlers benutzt<br />

wird und die Transaktion erst dann abgebrochen wird, wenn auch die kompensierende Transaktion nicht<br />

zum Erfolg führt, sowie<br />

• Ersatztransaktionen<br />

P 1 contingented by P 2 ,<br />

bei denen bei Auftreten eines Fehlers der Transaktion P 1 die Transaktion P 1 auf den Beginn zurückgeführt<br />

wird und anschließend P 2 ausgeführt wird, so daß die Gesamttransaktion nur dann abgebrochen wird,<br />

wenn sowohl P 1 als auch P 2 nicht zum Erfolg führen.<br />

Eine (einfache) Transaktion ist eine Folge P = o 1 ; o 2 ; o 3 ; ...; o m von Basismodifikations- und Retrieval-Operationen<br />

über dem Datenbankschema ER = ({T i |1 ≤ i ≤ m}, Σ ER ) mit T i = (U TI , Σ Ti ) für 1 ≤ i ≤ m.<br />

Transaktionen können auf einen Datenbank-Zust<strong>and</strong> ER C sequentiell angew<strong>and</strong>t werden und führen zu einer<br />

Transition o m (...(o 2 (o 1 (ER C )))).<br />

Der Effekt der Anwendung einer Transaktion P auf ER C ist definiert als Transformation, die die Integritätsbedingungen<br />

erhält, d.h.<br />

{<br />

P(ER C om (...(o<br />

) =<br />

2 (o 1 (ER C )))) falls o m (...(o 2 (o 1 (ER C )))) |= Σ ER ∪ ⋃ m<br />

i=1 Σ T i<br />

ER C<br />

<strong>and</strong>ernfalls<br />

Damit kann eine Transaktion als integritätsinvariante oder konsistenzerhaltende Zust<strong>and</strong>stransformation verst<strong>and</strong>en<br />

werden.<br />

Sie stellen daher eine besondere Form von Programmen dar.<br />

Wir nutzen als Ausführungsmodell das Zust<strong>and</strong>smodell in Bild 8. Eine Transaktion ist entweder inaktiv oder<br />

3 siehe Extraabschnitt Verhaltensmodellierung.


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 361<br />

✲<br />

Inaktiv<br />

✛<br />

Zurückgewiesen<br />

✻<br />

✠<br />

BOT<br />

IC falsch<br />

EOT<br />

✻<br />

Beendigung<br />

✛<br />

❥ Aktiv<br />

IC wahr<br />

✛<br />

❥<br />

✻<br />

Bereit zum Abschluß<br />

Abbildung 8: Die Zustände einer Transaktion<br />

aktiviert oder beendet (EOT). Eine aktivierte Transaktion ist beim Bereitstellen aller benötigten Ressourcen<br />

(BOT) oder in der Bearbeitung oder bereit zum Abschluß (Commit), wobei dann die Gültigkeit der statischen<br />

und dynamischen Integritätsbedingungen geprüft werden muß oder beim Zurückfahren zum inaktiven Zust<strong>and</strong>,<br />

falls die Prüfung der Konsistenz eine Inkonsistenz ergeben hat, oder beim Abschluß, wobei dann alle Ressourcen<br />

wieder freigegeben werden.<br />

Zur Implementation von Transaktionssystemen steht eine Reihe von Update-Optionen, wie Update-in-place<br />

(auf der Platte), Update-in-private (mit einem Transaktionspuffer) oder Update-im-Schattenspeicher zur Verfügung.<br />

Das klassische Transaktionsmodell definiert Transaktionen über das ACID-Konzept. Transaktionen sind atomar<br />

(werden ganz oder gar nicht wirksam), konsistenzerhaltend, werden isoliert ausgeführt und führen zu dauerhaften<br />

Veränderungen. Diese Auffassung postuliert die Existenz einer implementierenden Maschine. Auf der<br />

konzeptionellen Schicht können wir sie deshalb nicht verwenden. Die beiden ersten Bedingungen sind in unsere<br />

Definition eingeflossen. Die letzte Bedingung ist eine Forderung an <strong>Information</strong>ssysteme im allgemeinen.<br />

Die Isoliertheit wird gewöhnlich über die Serialisierbarkeit definiert. Da dies jedoch auch ein Implementationskonzept<br />

ist, verwenden wir einen <strong>and</strong>eren Zugang.<br />

Die Read-Write-Mengen read − write(P) = (read(P), write(P)) einer Transaktion sind alle elementaren Leseund<br />

Schreiboperationen der Transaktion P. Eine read-Operation ist eine objekt-basierte Operation, ebenso wie<br />

eine write-Operation.<br />

Zwei Transaktion P 1 und P 2 sind Konkurrenten falls read(P 1 )∩write(P 2 ) ≠ ∅ oder read(P 2 )∩write(P 1 ) ≠<br />

∅ oder write(P 2 ) ∩ write(P 1 ) ≠ ∅ .<br />

Parallele Ausführung von Transaktionen ist immer möglich, wenn diese keine Konkurrenten sind. In diesem<br />

Fall ist der Effekt der parallelen Ausführung äquivalent zu P 1 (P 2 (ER C )) oder zu P 2 (P 1 (ER C )) für die Datenbank<br />

ER C .<br />

Sind Transaktionen Konkurrenten, dann kann ein Steuerprogramm die Korrektheit der parallelen Ausführung<br />

gewährleisten.<br />

Neben diesen Modellen können wir auch erweiterte Konzepte aus der Literatur verwenden:<br />

• Sagas basieren auf einer Menge von ACID Subtransaktionen mit vordefinierter Ausführungsordnung und<br />

einer Menge dazu assoziierter kompensierender Teiltransaktionen.<br />

• Split-<strong>and</strong>-join-Transaktionen wurden für den Ressourcentransfer zu parallel verlaufenden Transaktionen<br />

entwickelt.<br />

• Flexible Transaktionen sind Polytransaktionen, deren Konsistenzforderungen durch Kollektion von Datenabhängigkeitsdeskriptoren<br />

(D 3 ) realisiert werden.<br />

• Transaktionen können mit dem ACTA Metamodell erweitert werden.<br />

Für unsere Belange erscheinen jedoch diese HERM-TA-Formen ausreichend.<br />

Es wurden unterschiedliche Modelle zur Ausführung und Steuerung von Geschäftsprozessen, H<strong>and</strong>lungen<br />

und Workflows entwickelt. Das einfachste Modell ist das Modell der Job Control Language (JCL).<br />

Dieses Modell wurde für Skriptsprachen erweitert. Eine Transaktion kann ebenso wie ein Modul als abstraktes


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 362<br />

Programm mit einem Namen und formalen Parametern für den Input, Output und Reporten zum Programmdurchlauf<br />

aufgefaßt werden.<br />

Jedem abstrakten Programm sind Parameter-Werte-Paare zugeordnet, die entweder zur Aufrufspezifikation<br />

oder zur Steuerungsspezifikation herangezogen werden. Diese Parameter sind entweder ereignisbasiert oder<br />

wertebasiert. Wir verwenden solche Ereignisse oder Werteparameter in der konzeptionellen Schicht, um einen<br />

allgemeinen Rahmen für die Implementationsschicht schaffen zu können. Zu solchen Parametern gehören<br />

• allgemeine Aufrufparameter onLoad, onSelect, onSubmit, onUnload, onWait, onUnWait,<br />

getData, instantiateSession, presentationMode, presentationStyle,<br />

typeGlobeSelect, onBlur, onCancel,<br />

• allgemeine Priorisierungsparameter wie onFocus, changePriority, unFocus,<br />

emphasisMode,<br />

• allgemeine Steuerparameter wie onReset, onRecovery, onChange, onUserReaction,<br />

changeToSlave, changeToMaster, waitUntil, securityLevel, changeStatus,<br />

openSatelliteWindow, closeSatelliteWindow, hookOnProcess, separateFromProcess,<br />

defaultSet, onScroll, deliveryRestriction, deliveryMode, securityLevel,<br />

garbageCollector, hideMode,<br />

• Fehlerparameter wie onAbort, onError, unloadErrorLog, useErrorLog notifyMode und<br />

• allgemeine Weitergabeparameter wie onSend, onReceive, forUser, toNode, fromNode,<br />

onTime, validUntil, onLoad, onEventTransfer, onMouseCapture, whoCausedEvent<br />

und returnValue.<br />

Die Parameterliste kann beliebig verkleinert oder vergrößert werden. Im letzteren Fall müssen adäquate Formen<br />

für die Umsetzung in die Implementation gefunden werden.<br />

Außerdem unterscheiden wir verschiedene Variablentypen:<br />

• Statische Variablen sind analog zu den globalen Variablen von Pascal oder den Klassenvariablen von Java<br />

mit einer an das Programm gekoppelten Lebenszeit ausgestattet. Statische Variablen können global oder<br />

lokal. Per Default sind sie lokal.<br />

• Kellervariable besitzen ebenso wie lokale Variablen oder Parametervariablen nur eine Lebenszeit während<br />

der Ausführung einer Funktion.<br />

• Explizite Speichervariablen nutzen einen temporär zugeordneten Speicher.<br />

• Implizite Speichervariablen werden erst mit einem Speicherplatz verbunden, wenn ihnen ein Wert zugewiesen<br />

wird.<br />

In analoger Form können der Gültigkeitsbereich und die Bindung an Namen, Stellen und Werte (zur Entwurfszeit,<br />

Implementationszeit, Übersetzungszeit, Linkzeit, Ladezeit oder Laufzeit) von Variablen und Parametern<br />

beh<strong>and</strong>elt werden.<br />

Wir verwenden diese Konzepte zur Spezifikation des Aufrufes einer Transaktion und der Steuerung der Ausführung.<br />

Aufrufsspezifikation: Ein Aufruf eines abstrakten Programmes wird über den Namen des Programmes, durch<br />

eine Instantiierung der formalen Parameter durch aktuelle Parameter und durch die Angabe des Nutzers<br />

und der Steuerungsumgebung angegeben. Die Angabe des Nutzers, der ein <strong>and</strong>eres Programm oder ein<br />

Benutzer sein kann, erfolgt nicht nur für Abrechnungs- sondern auch für Benachrichtigungszwecke. Die<br />

Steuerungsumgebung erlaubt eine detaillierte Angabe der Steuerung, der Priorisierung, der Ausführung<br />

auf <strong>and</strong>eren Knoten.<br />

Zur Angabe kann außerdem eine Spezifikation der Ausnahmenbeh<strong>and</strong>lung gehören wie z.B. für den Fall<br />

eine konkurrierenden Abarbeitung.<br />

• undefinedness<br />

• processing context<br />

• inapplicable<br />

• null<br />

• IC violation


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 363<br />

siehe auch Struktur-Ausnahmen (Preprint CAU IfI, Berztiss)<br />

Steuerungsspezifikation: Zur Steuerungsspezifikation unterscheiden wir drei Räume:<br />

• Im Nachrichtenraum werden sowohl die Benutzernachrichten als auch die Systemnachrichten verwaltet.<br />

Im ersteren Falle sind <strong>Information</strong>en zur Sichtbarkeit, Notifikation und zum Datenstrom des<br />

Benutzers, im letzteren zur Übertragung, Sign<strong>of</strong>f- und Signon-Nachrichten gesetzt.<br />

• Im Parameterraum werden alle aktuellen Parameterzuweisungen wie Status, Priorisierung, Ausführungsmodi<br />

(st<strong>and</strong> alone, eingebettet, remote, applet, servlet), Bindungen und Einschränkungen<br />

verwaltet. Außerdem erfolgt hier die Speicherung des Benutzerportfolios und des aktuellen Benutzerpr<strong>of</strong>ils.<br />

• Im Ressourcenraum wird die Allokation von Daten, Routen, Knoten etc. zu den aktuellen Prozessen<br />

dargestellt.<br />

Weitere Modelle sind möglich:<br />

• ConTracts sind komplexere Modelle und geeignet für die Gruppierung von Transaktionen in eine Multitransaktionsaktivität<br />

(Menge von ACID Aktionen (Schritte) mit explizit spezifiziertem Ausführungsplan<br />

(Skript)), wobei die Ausführung Vorwärts-Recoverable sein muß (abgeschwächte atomicity)).<br />

• Langlebige Aktivitäten (Long running activities) basieren auf einem erweiterten ECA Modell. Sie verwenden<br />

eine Menge von Ausführungsschritten, die (rekursiv) <strong>and</strong>ere Transaktionen enthalten, und Kontrollund<br />

Datenfluß-Skripte. Es wird eine explizite Kompensation für Transaktionen vorgegeben. Das Konzept<br />

wird durch eine Kommunikation zwischen den Ausführungsschritten unterstützt. Es werden außerdem<br />

die Abfrage des Status einer Aktivität und explizite Ausnahmebeh<strong>and</strong>lung unterstützt. Es können<br />

Korrektheits- und Koordinierungsbedingungen angegeben werden. Daraus werden Aufgabenflußmodelle<br />

für Multiaktivitäten abgeleitet.<br />

Damit umfaßt die Spezifikation eines Workflows<br />

die Aufgaben- bzw. Prozeßspezifikation als spezifische Art eines Prozesses bei Spezifikation der Struktur, wobei<br />

die Menge von extern sichtbaren Ausführungszuständen,<br />

die Menge von legalen Transitionen dieser Zustände und<br />

Bedingungen, die die Ausführung der Transitionen erlauben,<br />

für die Darstellung durch Zust<strong>and</strong>stransitionsdiagramme benutzt werden. Jeder Prozeß hat eine interne<br />

Struktur und ist damit abhängig vom Input und dem Zust<strong>and</strong> des lokalen Systemes. Er ändert den Zust<strong>and</strong><br />

und produziert einen Output abhängig von verschiedenen Systemcharakteristika, abhängig von Eigenschaften<br />

der Operationen (z.B. analoge Ausführung, serielle Ordnung, Idempotenz von Operationen (günstig für Kompensation<br />

(z.B. setze x to c))),<br />

die Aufgaben- bzw. Prozeßkoordination durch verschiedene Scheduling-(Pre-)Conditions<br />

statisch durch Definition des Zust<strong>and</strong>es vor Start des Prozesses (Ausführungszustände <strong>and</strong>erer Prozesse, Output-<br />

Werte <strong>and</strong>erer Prozesse, Werte externer Variable) oder<br />

dynamisch durch Spezifikation der Abhängigkeiten während der Prozeßausführung,<br />

die Korrektheitsbedingungen für Ausführung und Versagen mit<br />

Failure-atomicity Bedingungen (Bei Ausführungsproblemen kann anstatt des vorgegebenen Prozesses ein<br />

<strong>and</strong>erer ausgeführt werden, um einen akzeptablen Endzust<strong>and</strong> zu erreichen.) oder<br />

Execution-atomicity Bedingungen (zur Darstellung der Zerlegbarkeit von Transaktionen bei Serialisierung).<br />

Die Ausführung eines Workflows hängt von verschiedenen Interprozeß-Abhängigkeiten ab. Damit spezifizieren<br />

wir zwei Best<strong>and</strong>teile:<br />

den Scheduler zur Ausführung der Prozesse durch Planung der nächsten Schritte mit einem Monitoring der verschiedenen<br />

Ereignisse und zur Berechnung der Interprozeß-Abhängigkeiten und


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 364<br />

den Prozeß-Agenten zur Ausführungskontrolle eines Prozesses.<br />

Programme der Workflow-Maschine.<br />

Elementarprogramme sind alle zugelassenen Ausdrücke der HERM-Algebra. Wir unterlegen dabei eine Semantik<br />

der Abstract-State-Machines. Sie wird im folgenden kurz eingeführt. In diesem Buch werden wir die Semantik nur<br />

anwenden, so daß wir auf eine detaillierte Erklärung verzichten können. Für die graphische Darstellung schließen wir<br />

uns den üblichen Darstellungsformen für sequentielle Programme an, wobei wir eine Verwechslung mit Konstrukten<br />

des ER-Modelles vermeiden wollen. Deshalb sind ovale Boxen sowohl Programmschritten als auch dem Test<br />

vorbehalten. Wir können damit induktiv komplexere Programme konstruieren:<br />

Sequentielle Ausführung von Programmen DO P 1 ; P 2<br />

Ein Programmschritt kann auf einen <strong>and</strong>eren Programmschritt<br />

folgen.<br />

DO P 1 ✲ DO P 2<br />

✲<br />

Verzweigung mit einer logischen Bedingung: if α then P 1 else P 2 ;<br />

Ein Programmschritt kann verzweigen unter einer Bedingung.<br />

IF α<br />

true ✲<br />

✲<br />

false<br />

DO P 1<br />

DO P 2<br />

✲<br />

Wiederholte Ausführung mit einer logischen Bedingung:<br />

Der Bequemlichkeit halber führen wir auch eine Programmschleife<br />

ein. Diese ist auch durch <strong>and</strong>ere Konstrukte abstrakter<br />

Maschinen ausdrückbar.<br />

DO P 1 LOOP α<br />

✻ ✲ DO P 1<br />

LOOP α ✛ ✲<br />

Parallele Ausführung mehrerer Programme ohne Einschränkung:<br />

DO P 1 PAR ... PAR DO P k<br />

Programme können parallel ausgeführt werden. Die parallele<br />

Ausführung ist beendet, wenn alle Programme beendet sind. Alle<br />

Programme beginnen mit dem gleichen Zust<strong>and</strong>sraum.<br />

Eine parallele Ausführung ist erfolgreich durchgeführt, wenn<br />

keine konkurrierenden Veränderungen der Datenbank mit unterschiedlichen<br />

Werten für die gleichen Datenbankobjekte erfolgen.<br />

✲ DO P 1<br />

DO P 2<br />

✲<br />

DO ...<br />

✲ DO P k<br />

Ausführung nach Zuweisung von Werten zu Variablen:<br />

Es können Werte den Parametern in einem Programm P zugewiesen<br />

werden. Diese Zuweisung gilt nur lokal.<br />

Ausführung nach Auswahl eines Wertes :<br />

Es wird ein x-Wert unter einer Bedingung gewählt. Damit<br />

wird das Programm ausgeführt.<br />

LET x = t IN P DO P<br />

LET x = t IN P ✲ DO P ✲<br />

CHOOSE x WITH φ DO P<br />

CHOOSE x WITH φ ✲ DO P ✲


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 365<br />

Ausführung für alle zutreffenden Werte:<br />

Alle Werte für einen Parameter, die zutreffen, werden<br />

gewählt. Es wird dafür das Programm P parallel ausgeführt.<br />

SKIP-Programmschritt zur Darstellung des leeren Programmschrittes:<br />

Konzeptionell kann auch der Programmschritt ohne Auswirkungen<br />

auf den Zust<strong>and</strong> benötigt werden.<br />

FOR ALL x WITH φ DO P<br />

FOR ALL x WITH φ ✲ DO P ✲<br />

SKIP<br />

DO SKIP ✲<br />

Modifikationsschritt zur Durchführung einer Modifikation der Datenbank:<br />

Es wird ein paralleler Update für eine Datenbank-Klasse ausgeführt<br />

mit den Parametern s 1 , ..., s n .<br />

DO f (s 1 , ..., s n ) := t<br />

DO f (s 1 , ..., s n ) := t<br />

✲<br />

Aufruf eines Programmes aus der Programmbibliothek: DO r(t 1 , ..., t n )<br />

Es kann ein Programm aus der Programmbibliothek aufgerufen<br />

werden.<br />

DO r(t 1 , ..., t n )<br />

✲<br />

Mit diesen allgemeinen Transitionen können wir auch komplexere Programme zusammenstellen. Diese Programme<br />

basieren auf einer parallelen Ausführung. Das folgende Beispiel stellt die Alternativen zur Eingabe der Hauptdaten zu<br />

einem Lehrveranstaltungsangebot vor. Danach können alle erforderlichen sonstigen Daten bereitgestellt werden, wie<br />

z.B. Raumforderungen oder auch optionale <strong>Information</strong>en, wie z.B. Angaben zu Übungen und Praktika. Raumdaten,<br />

Studiengangsdaten, Angaben zu Nebenbedingungen und die Klassifikation der Lehrveranstaltung werden nicht neu<br />

erstellt, sondern aus der Datenbank abgefragt und zugeordnet.<br />

✲<br />

DO Vorlesung(Klassifikation) := chooseKl<br />

DO Vorlesung(Studiengang) := chooseSG<br />

DO Vorlesung(Hauptdaten) := inputHD<br />

true ✲<br />

✲ IF Praktika<br />

✲<br />

DO Vorlesung(Praktika) := inputPr<br />

✲ DO Skip<br />

false<br />

✲<br />

true ✲ DO Vorlesung(Übung) := inputÜb<br />

IF Übung<br />

✲ DO Skip<br />

false<br />

DO Vorlesung(Nebenbedingung) := chooseNB<br />

✲ DO Vorlesung(Raumforderung) := chooseRF<br />

Abstrakte Semantik von Datenbank-Transitionen.<br />

Das Datenbank-Schema definiert die Strukturierung der Datenbank. Ein Zust<strong>and</strong> der Datenbank kann durch eine<br />

Modifikation partiell geändert werden. Änderungsoperationen T(s 1 , ..., s n ) := t vom Teiltyp T ′ von T basieren auf<br />

Anfragen. Sie sind auf einem Objekt einer Klasse T C definiert, falls<br />

| σ T ′ =(s 1 ,...,s n )(T C ) | ≤ 1 gilt.<br />

Eine Menge U = {T i (s i,1 , ..., s i,ni ) := o i | 1 ≤ i ≤ m} von objekt-basierten Änderungsoperationen ist konsistent,<br />

falls aus T i (s i,1 , ..., s i,ni ) = T j (s j,1 , ..., s j,nj ) für 1 ≤ i < j ≤ m die Gleichheit o i = o j folgt.


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 366<br />

Das Resultat der Ausführung einer konsistenten Menge U von Änderungsoperationen führt zu einer Zust<strong>and</strong>sänderung<br />

der Datenbank ER C zu ER C + U<br />

(ER C + U)(o) =<br />

{ Update(Ti , s i,1 , ..., s i,ni , o i ) falls T i (s i,1 , ..., s i,ni ) := o i ∈ U<br />

ER C (o)<br />

<strong>and</strong>ernfalls<br />

für Objekte o <strong>of</strong> ER C .<br />

Ein parametrisiertes Programm r(x 1 , ..., x n ) = P der Stelligkeit n besteht aus einem Programmnamen r,<br />

einer Transitionsregel P und einer Menge {x 1 , ..., x n } von freien Variablen von P.<br />

Eine Datenbank ER C ist ein Modell von φ (kurz bezeichnet als ER C |= φ ) falls [[φ]] ERC<br />

ζ<br />

= true für alle<br />

Variablenbelegungen ζ für die freien Variablen von φ.<br />

Eine Workflow-Maschine W = (ER, ER C 0<br />

, P, Σ) basiert auf einem Datenbank-Schema ER, einer initialen<br />

Datenbank ER C 0<br />

, einer Menge von parametrisierten Programmen und einem ausgezeichneten Programm, das<br />

Hauptprogramm genannt wird, sowie den dynamischen Integritätsbedingungen.<br />

Eine Transitionsregel P führt zu einer Menge U von Änderungsoperationen in einem Zust<strong>and</strong> ER C , falls dieser<br />

konsistent ist. Sie verändert den Zust<strong>and</strong> der Datenbank mit einer Variablenbelegung ζ zu yields(P, ER C , ζ, U).<br />

Die Semantik einer Transitionsregel wird durch einen Kalkül mit Regeln der Form<br />

Voraussetzung 1 , ..., Voraussetzung n<br />

Folgerung<br />

Bedingung<br />

definiert.<br />

Wir verzichten hier auf die vollständige Angabe der Semantik und verweisen auf die Literatur. Als Beispiel führen<br />

wir die folgenden Regeln an, ohne auf den Beweis dieser Regeln einzugehen:<br />

yields(P, ER C , ζ, U) , yields(Q, ER C , ζ, V)<br />

yields(DO P PAR Q, ER C , ζ, U ∪ V)<br />

U ∪ V<br />

konsistent<br />

Die Konsistenzbedingung kann weggelassen werden, wenn man die Theorie der partiell-geordneten Durchläufe für<br />

ASM anwendet. Wir wollen jedoch hier nicht im Detail auf die Theorie eingehen.<br />

yields(P, ER C , ζ[x ↦→ a], U)<br />

yields(LET x = t IN P DO P , ER C , ζ, U)<br />

wobei<br />

a = [[t ] ERC<br />

ζ<br />

∀ a ∈ I : yields(P, ER C , ζ[x ↦→ a], U a )<br />

yields(FOR ALL x WITH φ DO P , ER C , ζ, ⋃ a∈I U a)<br />

wobei I = range(x, φ, ER C , ζ)<br />

Der Wertebereich range(x, φ, ER C , ζ)) ist definiert durch die Menge {o ∈ ER C | [φ] ERC<br />

ζ[x↦→a] = true} .<br />

yields(P, ER C , ζ[x ↦→ a], U)<br />

yields(CHOOSE x WITH φ DO P , ER C , ζ, U)<br />

wobei a ∈ range(x, φ, ER C , ζ)<br />

yields(CHOOSE x WITH φ DO P , ER C falls range(x, φ, ER C , ζ) = ∅<br />

, ζ, ∅)<br />

yields(P, ER C , ζ, U) , yields(Q, ER C + U, ζ, V)<br />

yields(DO P ; Q , ER C falls U konsistent ist<br />

, ζ, U ⊕ V)<br />

yields(P, ER C , ζ, U)<br />

yields(DO P ; Q , ER C falls U inkonsistent ist<br />

, ζ, U)<br />

yields(SKIP , ER C , ζ, ∅)<br />

yields(f (s 1 , ..., s n ) = t , ER C , ζ, (Update(l, v))<br />

wobei<br />

l = f ([[s 1 ]] ERC<br />

ζ , ..., [s n ]] ERC<br />

ζ ) und v = [[t]] ERC<br />

ζ


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 367<br />

yields(P, ER C , ζ, U)<br />

yields(IF φ THENP ELSE Q , ER C , ζ, U)<br />

falls<br />

[[φ]] ERC<br />

ζ<br />

= true<br />

yields(Q, ER C , ζ, V)<br />

yields(IF φ THENP ELSE Q , ER C , ζ, V)<br />

falls<br />

[[φ]] ERC<br />

ζ<br />

= false<br />

yields(P t 1,...,t n<br />

x 1 ,...,x n<br />

, ER C , ζ, U)<br />

yields(r(t 1 , ..., t N ) , ER C , ζ, U)<br />

mit<br />

r(t 1 , ..., t n ) = P<br />

Die angegebene Workflow-Maschine erlaubt eine allgemeine Spezifikation des Verhaltens des Datenbanksystems.<br />

Mit dieser Grundlage können wir eine pragmatischere Spezifikationssprache im weiteren verwenden.<br />

CSP-Operatoren.<br />

Prozesse können in CSP (Communicating sequential processes) als parallele Prozesse dargestellt werden. Wir verwenden<br />

dazu eine kausale Semantik.<br />

CSP-Prozeß : Ereignis + Bedingung + auslösende Aktion Communicating sequential processes als parallele Prozesse kausale<br />

Semantik<br />

Sequentielle Ausführung: ;<br />

Parallele Ausführung: ‖<br />

p 1 ‖p 2 ist erst dann beendet, wenn sowohl p 1 als auch p 2 beendet wurde. Werden diese Prozesse sequentiell ausgeführt, dann ist jede<br />

Reihenfolge erlaubt.<br />

Nichtdeterministische Ausführung: []<br />

Der Prozeß ist beendet, sobald einer der Teilprozesse beendet ist.<br />

Es kann zusätzlich angenommen werden, daß alle anwendbaren Teilprozesse, mindestens aber einer beendet werden ([] × ).<br />

Iterative Ausführung: ∗<br />

Bedingte Anweisung: α → p<br />

Wenn α gilt, dann wird auch p ausgeführt.<br />

Semantik wie für Schleifen<br />

auch guarded comm<strong>and</strong>s<br />

Mögliche Anweisung: {}<br />

Der Prozeß wird ausgeführt oder kann auch übergangen werden.<br />

Weitere Anweisungen: skip, abort, Ein- und Ausgabeanweisungen, ...<br />

Hilfsanweisungen:<br />

Anweisungen mit einem Bezeichner sowie geklammert<br />

Alternative klassische Kompositionstheorie von Prozessen in Workflows:<br />

siehe gesondertes Kapitel am Ende<br />

Workflows als Konstrukt.<br />

Workflows: model <strong>of</strong> complex, long-running enterprise process generally performed in a highly distributed <strong>and</strong><br />

heterogeneous environment. It is structured as a set <strong>of</strong> processes that are executed in a specified partial order. A<br />

process in a workflow needs not to be a transaction.<br />

Each process in a workflow is performed by an agent, which can be program, a hardware device, or a human. For<br />

keeping track <strong>of</strong> the inventory, the agent might be a s<strong>of</strong>tware system.<br />

Each process has a physical status such as executing, committed, or aborted. The completion <strong>of</strong> a process might<br />

generate some logical status information indicating success or failure. The processes in a workflow have to be coordinated.<br />

The workflow management system consists <strong>of</strong> a scheduler <strong>and</strong> a process agent manager.<br />

The scheduler


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 368<br />

initiates, cancels, interrupts, retries, compensates, ... the execution <strong>of</strong> a set <strong>of</strong> workflows,<br />

uses recoverable queues as a mechanism for storing information about the processes <strong>of</strong> active workflows <strong>and</strong><br />

for process sequencing, <strong>and</strong><br />

maintains the state <strong>of</strong> the workflow execution including recovery for the case <strong>of</strong> crashes.<br />

The process agent manager<br />

assigns processes to agents, reassigns or stops the execution <strong>of</strong> processes,<br />

keeps track on the status <strong>of</strong> execution <strong>and</strong> activation or deactivation <strong>of</strong> agents, <strong>and</strong><br />

manages the input/output for the communication with the agents (If reformatting becomes necessary then the<br />

PAM provide filters for this purpose.).<br />

The PAM is specified by constructs <strong>of</strong> JCL.<br />

An agent<br />

has a name <strong>and</strong> a number <strong>of</strong> assigned roles it can assume,<br />

receives a worklist, <strong>and</strong><br />

has a status.<br />

The agent reports to the process agent manager<br />

the status <strong>of</strong> the execution <strong>of</strong> processes <strong>and</strong> additional logical information,<br />

the results <strong>of</strong> the execution <strong>of</strong> processes, <strong>and</strong><br />

Module auf der Implementationssschicht<br />

Programme, Transaktionen, stored procedures als Grundkonstrukt.<br />

Abbildung auf UML-Strukturen und Workflow-Prozesse<br />

Grundlagen durch Abbildung auf ASM-Maschinen<br />

Abbildung auf BPML etc. Sprachen<br />

Life-sequence charts (Harel) (Play-in-Play-out-Separation von life sequence charts)


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 369<br />

3.3 Dynamische Integritätsbedingungen<br />

Dynamische Integritätsbedingungen werden in der Literatur meist aufgrund ihrer Kompliziertheit weggelassen. Sie<br />

sind jedoch für die Datenbank-Entwicklung nicht minder wichtig. Deshalb führen wir auch einige Klassen explizit<br />

ein.<br />

Wir betrachten dazu temporale Klassen vom Typ R:<br />

Jedem potentiellen Objekt o von dom(R) kann eine Lebenszeit l R (o) ⊆ IN in der Datenbank zugeordnet werden.<br />

Damit können wir<br />

temporale Klassen (R C , l R ) und<br />

ihre Schnappschüsse S(i, R C , l R ) = {o ∈ dom(R)|i ∈ l R (o)}<br />

einführen.<br />

Gegeben seien eine Formel α über R, eine temporale Klasse (R C , l R ) über R, und Schnappschüsse<br />

S(0, R C , l R ), ...,S(i, R C , l R ), ... S(maxT, R C , l R ).<br />

Wir können nun eine Erfüllbarkeit von Formeln analog zur Modallogik definieren.<br />

Ein Zeitrahmen ZR besteht aus einem Paar (TS, W) von Intervallen von IN und einer binären Relation W über TS.<br />

Wir bezeichnen mit maxTS den maximalen Zeitpunkt von TS und mit minTS den minimalen Zeitpunkt. Der einfachste<br />

Zeitrahmen ist das Intervall TS = [0, maxTS] betrachtet. Die binäre Relation W stellt eine Erreichbarkeit von<br />

Intervallen unterein<strong>and</strong>er her. Wir sind damit in der Lage, Zeiträume zu betrachten und ggf. auch vonein<strong>and</strong>er zu<br />

separieren.<br />

Die Gültigkeit von α in einem Schnappschuß S(i, R C , l R ) ist induktiv wie für statische Integritätsbedingungen<br />

definiert und wird mit (R C , l R , i) |= α notiert.<br />

Die Formel α is notwendig gültig in (R C , l R ), zu einem Zeitpunkt i ∈ I, I ∈ TS und für einen Zeitrahmen ZR<br />

falls (R C , l R , i ′ ) |= α für alle Intervalle I, I ′ mit (I, I ′ ) ∈ W und alle Zeitpunkte i ′ ∈ I ∪ I ′ .<br />

Wir notieren dies mit (R C , l R , i, ZR) |= □α bzw. (R C , l R , I, ZR) |= □α<br />

Die Formel ist gültig in jedem Zeitpunkt des Intervalls I, dem i angehört, und in jedem Zeitpunkt, der durch W<br />

aus I erreicht werden kann. In der Modallogik wird zwischen der Gültigkeit von α in I und zu jedem Nachfolgeintervall<br />

unterschieden. Wir benötigen diese strikte Unterscheidung nicht. Wir können mit (R C , l R , I, ZR) |=<br />

□α die Gültigkeit ab einer Phase I für alle Folgephasen I ′ modellieren.<br />

Eine Formel α ist notwendig gültig in (R C , l R ) und ZR ab I 1 bis zu I 2 für I 1 , I 2 ∈ TS<br />

falls (R C , l R , i) |= α für alle Intervalle I ′ mit (I 1 , I ′ ) ∈ W bzw. (I ′ , I 2 ) ∈ W und i ∈ I 1 ∪ I 2 ∪ I ′ .<br />

Wir bezeichnen die zeitweilige volle Gültigkeit mit (R C , l R , [I 1 , I 2 ], ZR) |= □α .<br />

Wir können damit die Gültigkeit zwischen Phasen definieren.<br />

Die Formel α ist gültig in (R C , l R ) und ZR falls (R C , l R , i) |= α für jeden Zeitpunkt i jedes Intervalls I<br />

des Zeitrahmens (bezeichnet mit (R C , l R , ZR) |= α ).<br />

In diesem Fall ist α eine statische Integritätsbedingung, falls ⋃ I∈TS<br />

I = [minTS, maxTS].<br />

Die Formel α ist möglich gültig in (R C , l R ) und ZR falls für ein i ∈ ⋃ I∈TS I (RC , l R , i) |= α (bezeichnet<br />

mit (R C , l R , ZR) |= ♦α ).<br />

Besitzt ein Zeitrahmen ZR Unterbrechungen, dann wird für die Formel α keine Forderung erhoben.<br />

Ein Zeitrahmen wird für die Implementationsschicht direkt durch Phasen repräsentiert. Damit kann die Gültigkeit<br />

von Formeln und die Zulässigkeit von Prozessen zu gewissen Zeitpunkten direkt modelliert werden.<br />

Wir können damit auch unterschiedliche Klassen von dynamischen Integritätsbedingungen einführen. Dafür werden<br />

der Zeitrahmen ZR Schritt = ( { {i} |i ∈ IN } , { ({i}, {(i + 1)}) |i ∈ IN }) und<br />

ZR Punkt = ( { {i} |i ∈ IN } , ∅) , sowie ZR Voll = ( IN , IN × IN) eingeführt.<br />

Transitionsbedingung: Eine Formel α heißt Transitionsbedingung, falls α notwendig gültig in allen Intervalle von<br />

ZR Schritt ist.<br />

Wir notieren Transitionsbedingungen auch durch α −→ next α .<br />

Allgemeine Vor- und Nachbedingung: Ein Paar von Formeln α und β heißt Vor- und Nachbedingungen falls aus<br />

(R C , l R , i, ZR Punkt ) |= □α die Gültigkeit von (R C , l R , i + 1, ZR Punkt ) |= □β folgt.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 370<br />

Wir notieren allgemeine Vor- und Nachbedingungen auch durch α −→ next β .<br />

Wird der Zeitrahmen durch die Anwendung eines Prozesses P oder Programmes P definiert, dann schreiben<br />

wir α −→ P β .<br />

Temporale Formeln sind mit (R C , l R , i, ZR Voll ) |= □β bzw. (R C , l R , i, ZR Voll ) |= ♦β im Sinne der Modallogik<br />

notwendig oder möglich gültig.<br />

In analoger Form können damit auch allgemeine Gültigkeiten temporaler Formeln eingeführt werden:<br />

∀ f : immer (in der Zukunft)<br />

∀ p : immer (in der Vergangenheit)<br />

∃ f : einmal (in der Zukunft)<br />

∃ p : einmal (in der Vergangenheit).<br />

U(α, β) :<br />

α ist gültig bis β gültig wird.<br />

Weiche (deontische) Integritätsbedingungen werden für ZR Schrit eingeführt:<br />

Obligation: Eine Obligation Oα ist durch die Gültigkeit von (R C , l R , 1, ZR Schritt ) |= □α definiert.<br />

Erlaubnis: Eine Erlaubnis Pα ist durch die Gültigkeit von (R C , l R , 1, ZR Schritt ) |= ♦α definiert.<br />

Verbot: Ein Verbot Fα ist durch die Gültigkeit von (R C , l R , 1, ZR Schritt ) |= □¬α definiert.<br />

Wir können daraus direkt einige Ableitungsregeln ableiten:<br />

KD0 : Jede Formel der HERM-Logik ist eine deontische Formel.<br />

KD1 : O(α → β) → (Oα → Oβ)<br />

KD2 : Oα → Pα<br />

KD3 : Pα ↔ ¬O¬α<br />

KD4 : Fα ↔ ¬Pα<br />

Obligationen umfassen Erlaubnisse.<br />

Die Erlaubnis ist dual zur Obligation.<br />

Verboten heißt “nicht erlaubt”.<br />

Weitere allgemeingültige Formeln der deontischen Logik sind z.B.:<br />

Oα ↔ ¬P¬α<br />

O(α ∧ β) ↔ Oα ∧ Oβ<br />

¬(Oα ∧ O¬α)<br />

P(α ∨ β) ↔ Pα ∨ Pβ<br />

(Oα ∨ Oβ) → O(α ∨ β)<br />

Oα → O(α ∨ β)<br />

P(α ∧ β) → Pα ∧ Pβ<br />

Fα → F(α ∧ β)<br />

(Oα ∧ Pβ) → P(α ∧ β)<br />

(Oα ∧ O(α → β)) → Oβ<br />

(Pα ∧ O(α → β)) → Pβ<br />

(Fβ ∧ O(α → β)) → Fα<br />

Fβ ∧ Fr ∧ O(α → (β ∨ γ)) → Fα<br />

¬(O(α ∨ β) ∧ Fα ∧ Fβ)<br />

(Oα ∧ O((α ∧ β) → γ)) → O(β → γ)<br />

O(¬α → α) → Oα<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 371<br />

Oβ → O(α → β)<br />

Fα → O(α → β)<br />

O¬α → O(α → β)<br />

¬α → (α → Oβ)<br />

¬O(α ∧ ¬α)<br />

(Oα ∧ O(α → β) ∧ (¬α → O¬β) ∧ ¬α) ↔ false<br />

α → β / Oα → Oβ<br />

Wir werden uns jedoch im weiteren auf Transitionsbedingungen und Vor- und Nachbedingungen konzentrieren,<br />

sowie auf weiche Integritätsbedingungen der deontischen Logik.<br />

Treatment <strong>of</strong> Integrity Constraint Management by Separation into Levels<br />

Our framework for integrity constraint mangement is based on a separation <strong>of</strong> concerns. The Encyclopedia Britannica<br />

[SYea03] defines a framework as a basic conceptual structure (as <strong>of</strong> ideas) or a skeletal, openwork, or structural frame.<br />

It is thus based on a structure, usually rigid, serving to hold the parts <strong>of</strong> something together or to support something<br />

constructed or stretched over or around it. It combines structuring in the sense to make up something <strong>of</strong> more or less<br />

interdependent elements <strong>and</strong> having a definite organizational pattern composition based on the anatomy <strong>and</strong> skeleton<br />

<strong>of</strong> the system, <strong>and</strong> integration or arrangement <strong>of</strong> all aspects during construction.<br />

A framework thus provides a comprehensive set <strong>of</strong> constructs <strong>and</strong> rules for their application that serve as the<br />

background for constructing applications. A IC-driven framework is the result <strong>of</strong> applying a integrity constraint<br />

management approach during database development. We may systematically separate a number <strong>of</strong> concerns according<br />

to the classical project management frame:<br />

◦ ‘what’ (level 1) provides a specification;<br />

◦ ‘how’ (level 2) defines the way the framework is going to work;<br />

◦ ‘do’ (level 3) prescribes the application <strong>of</strong> the assessment;<br />

◦ ‘plan’ (level 4) provides the methodology for the application;<br />

◦ ‘manage’ (level 5) allows the governance <strong>of</strong> the integrity constraint framework;<br />

◦ ‘coordinate’ (level 6) integrates the framework into the entire development process;<br />

◦ ‘optimize’ (level 7) revises the constraint management.<br />

Classical constraint management is based on a separation <strong>of</strong> concern into<br />

1. conceptual specification <strong>of</strong> the integrity constraint (what),<br />

2. logical enhancement <strong>of</strong> constraints by enforcement strategies such as on delete cascade, assertions,<br />

triggers, or stored procedures (how), <strong>and</strong><br />

3. DBMS extensions for control <strong>and</strong> scheduling <strong>of</strong> constraint enforcement.<br />

We claim that this kind <strong>of</strong> constraint enforcement is far too restricted <strong>and</strong> is not properly understood by the application<br />

programmer. Therefore we need to introduce another explicit framework for constraint enforcement.<br />

Our framework is currently based on a four-level model:<br />

1. The specification level is used for a description <strong>of</strong> integrity constraint . The description consists <strong>of</strong> a specification<br />

<strong>of</strong> the integrity constraint property, the measurement, <strong>and</strong> the policies for evaluation. It can be extended by<br />

specific policies for various development methods such as agile development, by transformations <strong>of</strong> integrity<br />

constraint properties into others, <strong>and</strong> by associations among integrity constraint properties. Finally, we may<br />

derive constraints for the application <strong>of</strong> the integrity constraint property.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 372<br />

2. The control or technical level deals with the application <strong>of</strong> the integrity constraint model. It provides guidance<br />

for the control procedures such as setting the control management, deriving the scope <strong>of</strong> control, definition <strong>of</strong><br />

the control tasks <strong>and</strong> its actors. The application <strong>of</strong> the integrity constraint framework is based on a integrity<br />

constraint property portfolio. The portfolio has been formally described in [ST07] <strong>and</strong> consists <strong>of</strong> tasks <strong>and</strong> the<br />

necessary supporting instruments. They generalize portfolio known in project management. We have developed<br />

techniques <strong>and</strong> methods for applying integrity constraint checks <strong>and</strong> deriving a integrity constraint evaluation<br />

plan.<br />

3. The application or technology level h<strong>and</strong>les the management <strong>of</strong> integrity constraint evaluation within the database<br />

system.<br />

4. The establishment or organizational level is based on a methodology <strong>and</strong> may be supported by a integrity<br />

constraint maintenance system.<br />

This four-level framework for integrity constraint management can be extended by level five that provides facilities for<br />

h<strong>and</strong>ling satisfaction <strong>of</strong> integrity constraint properties <strong>and</strong> for predicting changes in satisfaction whenever databases<br />

evolves. Level six integrates integrity constraint management into the optimisation <strong>of</strong> the database system. Level<br />

seven uses experiences gained for evolution <strong>of</strong> databases.<br />

Modes <strong>of</strong> Integrity Constraint H<strong>and</strong>ling<br />

Master-Slave Enforcement.<br />

H<strong>and</strong>shaking Enforcement.<br />

Conveyer-Based Integrity Enforcement.<br />

Overlay Graphs for Integrity Constraints<br />

Extended ER Models.<br />

Overlay Graphs Defined by Cutouts <strong>of</strong> EER Schemata.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 373<br />

3.4 Verhaltensmodellierung<br />

Ein <strong>Information</strong>ssystem besteht aus verschiedenen Teilen. In DBS meist nur struktureller Teil korrekt modelliert. Es<br />

lassen sich verschiedene Sichten auf ein IS unterscheiden:<br />

Vermarktungssicht kein Teil eines Verhaltensmodells im Gegensatz zu den weiteren Teilen<br />

Problemdefinition<br />

Verkaufsdokumente<br />

Vermarktungsplanung<br />

Operationale Sicht Systemausrichtung<br />

Kontextdiagramme<br />

Ereignisdiagramme<br />

Datensicht Datenwörterbuch<br />

ER-Definition<br />

Architektursicht Diagramme der Szenarios<br />

Spezifikation der Szenarios<br />

Zust<strong>and</strong>sdiagramme<br />

Verhaltenssicht Verhaltensdiagramme<br />

Verhaltensspezifikation<br />

Prozeßsicht Datenflußdiagramme<br />

Steuerflußdiagramme<br />

Prozeßspezifikationen<br />

Darstellungsmethoden<br />

Datenflußdiagramme i.a. als Mehrebenendarstellung für unterschiedliche Abstraktionsebenen<br />

Kontextdiagramme zur Darstellung der Input/Output-Datenströme ohne Aufzeigen der Struktur<br />

Dialogflußdiagramme zur Darstellung des interaktiven Verhaltens<br />

Datenflußmodellierung zur Darstellung der Hauptprozesse;<br />

Zurückführung auf primitive Funktionen<br />

mit Gruppierung der Daten und Prozesse<br />

Schichtung und Herstellung der Konsistenz in Diagrammen in verschiedener Detailiertheit<br />

Erweiterungen zu Real-Time-Systeme mit einer expliziten Modellierung der Steuerung (Steuerprozesse,<br />

Zielprozesse) und des Steuerflußes<br />

Datendefiniton wie bereits oben<br />

Prozeßspezifikation zur Modellierung der Datentransformation und Datenverarbeitungspolitik in verschiedenen<br />

Darstellungssprachen<br />

Struktogramme, Programmlogik Verzweigung, Schleifen, Verkettung mit Blockbildung<br />

Strukturierte natürliche Sprache bzw. Pseudocode mit Verben, die imperativ sind, Wörtern, die durch ein<br />

Wörterbuch begrenzt sind, und einigen logischen Konstrukten zur Darstellung der Entscheidung in Verzweigungen,<br />

der Wiederholung, der Gruppierung, sowie der Input/Output-Darstellung und der Fileverarbeitung


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 374<br />

Allgemeine Aufrufe zur Verarbeitung<br />

Suspendierung, Termination, Kommentare<br />

Entscheidungsbäume und -tabellen mit Entscheidungsregeln<br />

Charts und Graphen zur Darstellung der Abhängigkeit<br />

Damit allgemeines Verhaltensmodell:<br />

Motive Ereignisse Szenarios Verhaltensmuster<br />

zu jeweils einem Motiv zu jeweils einem Ereignis zu jeweils einem Szenario<br />

Geschäftsprozeß H<strong>and</strong>lungen Prozesse<br />

Motivations- Geschäftsprozeß- Aktions- konzeptionelle<br />

schicht schicht schicht Schicht<br />

Installation Petrinetze Interfaces Modellierung<br />

Pflege über Sichten Constraints von Programmen<br />

Adminstrier. Beziehungen Automatendiagr.<br />

Benutzung Aggregationen Aktionsdiagr.<br />

Operationale Integr. Unabhängigk.<br />

Datenintegrität temp. Sichten<br />

Operationale Sicht Architektursicht Verhaltenssicht<br />

Es fehlt hier im Schema jedoch die Implementationsschicht.<br />

Programme als Verfeinerung der Prozesse.<br />

Operationale Sicht eines <strong>Systems</strong> als ‘Customersicht’, wie der Benutzer System sehen möchte; darauf aufbauend,<br />

warum der Benutzer eine bestimmte Funktion erwartet<br />

Operationen und Motive (Grund für ein Ereignis und erwartetes Resultat)<br />

7 verschiedene Erwartungen: Installation, Pflege, Administrierung, Benutzeroperationen, Garantierung<br />

der Integrität, Fortführung der Funktionalität (operationale Integrität), Benutzerinterface<br />

Dynamische Integritätsbedingungen, Transitionsbedingungen, Anforderungen über Operationsbedingungen<br />

(externe Faktoren, die System und Operationen begrenzen), Operationsbegrenzungen (Kapazität, Leistungsparameter,<br />

Zuverlässigkeit, Sicherheit, Zeitbegrenzungen, Interface)<br />

Spezifikation der Operationsumgebung (Zugriff woher), Kosten (die der Benutzer bereit ist zu zahlen),<br />

Lieferintervall (wie lange ist der Benutzer bereit zu warten) und Kapazität (TA’s/sec, Kommunikationsaufw<strong>and</strong>,<br />

Speicheraufw<strong>and</strong>,...)<br />

Systemanforderungen deklarative:<br />

Leistungsanforderungen der Benutzer<br />

Zuverlässigkeitsanforderungen der Benutzer für durchgängigen Betrieb (Ein-Prozessor, Dual-Prozessoren<br />

(einer als st<strong>and</strong>-by), Prozessorendopplung)<br />

Sicherheitsanforderungen für Systemzugriff, ...<br />

Zeitbeziehungen zwischen Operationen des Systemes, wait-Schleifen<br />

Externe Schnittstellen mit Help etc.<br />

Andere Anforderungen<br />

Ereignis - Änderung im System oder Umgebung, die eine Aktivität auslöst oder durch System auslöst<br />

Externe Ereignisse System reagiert auf externe Ereignisse mit Input (stimulus) und generiert Output (response);<br />

haben Motiv


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 375<br />

Motivationsschicht<br />

Motive, Ideen,<br />

Aufgaben, Workflow<br />

Operationale Sicht - Geschäftsprozeßschicht<br />

Datensicht<br />

HERM-Diagramme<br />

Geschäftsprozesse<br />

Verhaltensdiagramm<br />

Systemnutzen<br />

Kontextdiagramm<br />

Ereignisdiagramm<br />

Grobentwurf<br />

Grobes<br />

HERM-Schema<br />

Für jedes Ereignis<br />

...<br />

Architektursicht - Aktionsschicht<br />

✮<br />

✙<br />

H<strong>and</strong>lungen❄<br />

...<br />

Szenariospezifikat.<br />

Szenariodiagramm<br />

Szenariodiagramm<br />

Szenariodiagramm<br />

Szenariospezifikat.<br />

Szenariospezifikat.<br />

Vorentwurf<br />

Skelett-<br />

HERM-Schema<br />

Verhaltenssicht - Konzept. Schicht<br />

✮<br />

✙<br />

Für jeden Prozeß<br />

...<br />

...<br />

Prozesse<br />

❄<br />

Verhaltensspezifikat.<br />

Verhaltensdiagramm<br />

Verhaltensdiagramm<br />

Verhaltensspezifikat.<br />

Verhaltensspezifikat.<br />

Konzeptionelles<br />

Schema<br />

HERM-Schema<br />

Für jedes Programm<br />

...<br />

Implementationsschicht<br />

✮<br />

✙<br />

...<br />

Programme❄<br />

Programmspezifikat.<br />

Programmdarstellung<br />

Programmdarstellung<br />

Programmdarstellung<br />

Programmspezifikat.<br />

Programmspezifikat.<br />

Phys./Log.<br />

Datensicht<br />

DBMS<br />

Data<br />

Dictionary<br />

Abbildung 9: Das Prozeß-Struktur-Codesign-Modell mit Abstraktionsschichten


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 376<br />

Temporale Ereignisse bedingen Systemaktivität (Trigger etc.) aufgrund Auslösungsmechanismus (Zeit etc.) (interne<br />

Motive)<br />

Interne (anormale) Ereignisse , die durch System erkannt werden (interne Organisation zur Herstellung der Leistung,<br />

...)<br />

Motive und Ereignisse als Benutzersicht des <strong>Systems</strong> ⇒ 5 Motive<br />

Installationsmotive Installation, Update, Setzen von Systemparametern, Initialisierung von Datenbeständen,<br />

etc.<br />

Berücksichtigung im Installationsdialog<br />

Pflegemotive bei neuen releases, Datenbackup, Recovery ...<br />

Administrative Motive : neuer Benutzer, Systembenutzung (-mißnutzung), Datensicherheit, temporale Ereignisse<br />

hinzufügen<br />

Benutzungsmotive , die zur Notwendigkeit des <strong>Systems</strong> führen<br />

Integritätspflege<br />

Beziehungen zwischen Ereignissen zur Beh<strong>and</strong>lung der Komplexität der Benutzererwartungen<br />

Entities und Ereignisse Beh<strong>and</strong>lung durch Ereignisdiagramme in Petrinetzdarstellung (Ereignisse und Sichten)<br />

mit Input/Output in Eventknoten<br />

Knoten = Ereignisse ∪ Sichten<br />

Kanten = Ereignisse × Sichten<br />

Output von Ereignissen, Input von Sichten<br />

Sichten × Ereignisse<br />

Output auf requests an<br />

<strong>and</strong>ere Ereignisse<br />

Sichten werden aufgefaßt als Input/Output-Generator<br />

Mehrfachinput kann in ‘<strong>and</strong>’-Form für Ereignisse aufgefaßt werden<br />

Mehrfachinput an Sichten ist eine ‘or’-Form zum Anstoßen<br />

Unabhängigkeit von Ereignissen zur sauberen Modellierung<br />

falls Daten zwischen Ereignissen ausgetauscht werden müssen, dann über temporale Sichten<br />

Adminstrative Beziehungen zwischen Ereignissen können über temporale Sichten ebenso modelliert werden<br />

(als shared Zwischenspeicherung)<br />

Aggregationen von Ereignissen zur Darstellung der Auslösung mehrerer Zwischenereignisse<br />

Direktive Beziehungen von Ereignissen zur Darstellung der Auslösung eines Ereignissen durch Steuerfluß<br />

oder Datenfluß eines <strong>and</strong>eren Ereignisses<br />

Als generellen Überbau: Benutzerschnittstellen werden analog spezifiziert.<br />

Außerdem werden Sichten für die Ereignisse abgeleitet.<br />

3.5 Alternative Konzepte zur Verhaltensspezifikation und zu Workflows<br />

3.5.1 Ereignisgesteuerte Prozeßketten<br />

Graphische Darstellungstechnik zur Darstellung von Geschäftsprozessen und Arbeitsabläufen<br />

Knoten beschreiben<br />

Funktionen (als abgerundete Rechtecke dargestellt)<br />

Ereignisse (als Sechsecke) [gemeint sind eigentlich Zustände]<br />

Verknüpfungsoperationen (dargestllt mit Kreisen)


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 377<br />

Kanten von Funktion zu Ereignis bzw. Ereignis zu Funktion<br />

wobei Funktionen<br />

von einem Zust<strong>and</strong> oder mehreren Zuständen ausgelöst werden und<br />

ein Zust<strong>and</strong> einen oder mehrere Zustände erzeugt<br />

Ein Zust<strong>and</strong> kann<br />

von einer Funktion oder mehreren Funktionen ausgel¨st werden und<br />

eine Funktion oder mehrere Funktionen auslösen.<br />

Verknüpfungsoperationen als logische Verknüpfungen<br />

UND (in der Bedeutung “sowohl als auch”),<br />

XOR (in der Bedeutung “entweder oder”)<br />

OR<br />

(nicht für die konzeptionelle Modellierung geeignet)<br />

geeignet für Darstellung während der Anforderungsanalyse<br />

Antrag zur<br />

Bearbeitung<br />

liegt vor<br />

✲<br />

XOR<br />

✛<br />

❄<br />

AND<br />

❄<br />

❄<br />

Antrag<br />

prüfen<br />

Nebenbedingungen<br />

prüfen<br />

❄<br />

❄<br />

❄<br />

XOR<br />

❄<br />

❄<br />

XOR<br />

❄<br />

Unterlagen<br />

unvollständig<br />

Unterlagen<br />

vollständig<br />

Nebenbedingungen<br />

erfüllt<br />

Nebenbedingungen<br />

nicht erfüllt<br />

❄<br />

Weitere<br />

Unterlagen<br />

beschaffen<br />

❄<br />

Weitere<br />

Unterlagen<br />

liegen vor<br />

✲<br />

AND<br />

❄<br />

Vertrag<br />

genehmigen<br />

❄<br />

✛<br />

Antrag<br />

genehmigen<br />

❄<br />

Vertrag nicht<br />

genehmigen<br />

❄<br />

Antrag<br />

abgelehnt


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 378<br />

Probleme der EPK- und der Petri-Netz-Spezifikation.<br />

Aufblähung der Spezifikation durch alternierende Darstellung von Funktionen und Zuständen<br />

Blockdiagramme zur Darstellung der Funktionen<br />

Fehlende Abstraktion und damit Forderung nach feingranalarer Darstellung<br />

Fehlende Hierarchien und damit nichtsichtbare Schichtung<br />

Funktionsbäume als Alternative<br />

Fehlende zeitliche Schichtung bei Abhängigkeiten der Ereignisse vom Zeitverlauf<br />

Balkendiagramme (Gantt charts) zur 2D-Darstellung von Ereignis und Zeit(intervall)<br />

Fehlende Integration mit Organisationsstruktur<br />

Rasterdiagramme (Ereignisfolgendiagramme) zur Darstellung der Vorgangsbearbeitung als Tabellendarstellung<br />

von Organisationsstrukturen und Aktionen mit Beziehungsgraphen der Zellen<br />

Überwindung dieser Nachteile durch Anreicherung<br />

Akteur<br />

(Stelle, Rolle)<br />

✲<br />

Funktionerweiterung<br />

✛<br />

✲<br />

Output-Daten<br />

Input-Daten<br />

Hauptproblem: Bruch in den Paradigmen<br />

3.5.2 Zust<strong>and</strong>sbasierte Spezifikation des Verhaltens<br />

Anforderungen an Spezifikation des Verhaltens<br />

Visualisierung des Verhaltens<br />

Verfeinerung und Kompositionalität mit induktivem Aufbau<br />

Rigide Semantik zur eindeutigen Interpretation<br />

Interoperabilität mit <strong>and</strong>eren Spezifikationen insbesondere zum Austausch<br />

Akzeptanz und breite Verwendung<br />

statecharts (David Harel)<br />

in Verallgemeinerung des deterministischen endlichen Automaten<br />

Zust<strong>and</strong>übergang<br />

Transition<br />

zwei Zustände<br />

auslösendes Ereignis,<br />

für Transition notwendige Bedingung,<br />

durch die Transition ausgelöste, meist externe Bedingung


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 379<br />

Vor- und Nachteile<br />

+ einfache graphische Notation<br />

+ einfache intuitiv verständliche Semantik<br />

+ theoretisch sauber<br />

- alle Zustände atomar (Verfeinerung ?, Hierarchisierung ?)<br />

- keine Unterstützung der Zerlegung<br />

- Zust<strong>and</strong>sexplosion<br />

✛<br />

Transition<br />

✻<br />

H<br />

❄<br />

❘<br />

Zust<strong>and</strong><br />

Ereignisse [Bedingungen]<br />

/Aktionen zu Transition<br />

✲<br />

Transition<br />

Abbildung 10:<br />

Zust<strong>and</strong><br />

Abstraktion durch Einführung eines Superzust<strong>and</strong>es, der einige Zustände zusammenfaßt<br />

enthält Zust<strong>and</strong>sdiagramm bzw. <strong>and</strong>ere Superzustände<br />

erlaubt die Vereinfachung mehrfacher Transitionen zu einem Zielzust<strong>and</strong> durch<br />

Einführung eines zusammenfassenden Zust<strong>and</strong>es und Substitution aller Transitionen von Zuständen zum<br />

Zielzust<strong>and</strong> durch Transition vom Superzust<strong>and</strong> zum Zielzust<strong>and</strong><br />

diese Zusammenfassung entspricht dem XOR<br />

Argumente/Parameter mit zust<strong>and</strong>sabhängiger Instantiierung<br />

Transition zur Zust<strong>and</strong>süberführung<br />

Repräsentation einer Zust<strong>and</strong>sänderung eines Objekts<br />

i.a. getriggert (gefeuert) durch ein Ereignis<br />

Konvention: Ereignisse ohne Trigger (?-Transitionen) feuern s<strong>of</strong>ort<br />

feuern s<strong>of</strong>ort<br />

von exakt einem Zust<strong>and</strong> zu einem <strong>and</strong>eren (oder sich selbst (self-transition)) können nicht unterbrochen<br />

werden


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 380<br />

Wächter (guards)<br />

Ereignisse (events)<br />

logische Bedingung<br />

guarded transition feuert, wenn dies die Bedingung erlaubt<br />

i.a. kann nur eine Transition feuern; deshalb sind Wächter paarweise exklusiv<br />

Ereignisse können auch Wächter besitzen<br />

gekoppelt an einen Zeitpunkt<br />

Zeitlogik i.a. diskret, mit oder ohne Grenzen,<br />

geordnet (irreflexiv, transitiv, antisymmetrisch),<br />

linear (oder verzweigend)<br />

Punktstruktur mit Präzedenzrelation ( ? , < )<br />

Beispiele:<br />

ein Signal von einem Objekt an ein <strong>and</strong>eres (delived)<br />

eine Nachricht, empfangen von einem Objekt (check item)<br />

zu einer bestimmten Zeit (nach 10 Sekunden (in einem Zust<strong>and</strong>), 7.12.2004, 18.45 (Chanukkah)<br />

Ereignisse können Argumente benutzen (deliver to (receiver:Kunde)<br />

Ereignisse setzen auf dem Schema auf (über Attributen insb.)<br />

Parallelität von Teil-Statechart<br />

durch gestrichelte Linie gekennzeichnet<br />

Gleichzeitigkeit in Zust<strong>and</strong>sdiagrammen<br />

ein Objekt kann Verhalten haben, das separierbar ist in unabhängige Komponenten<br />

anzeigen der Separation durch ‘Gabeln‘ (Fork) (Doppelungssemantik) oder gleichzeitigem (konkurrierendem)<br />

Superzust<strong>and</strong><br />

History-Funktion<br />

Operationale Semantik von Statecharts.<br />

Execution state <strong>of</strong> statechart (S, T, V):<br />

subset states ⊆ S <strong>of</strong> currently active states s.t.<br />

root <strong>of</strong> S is in states<br />

if s in states <strong>and</strong> type <strong>of</strong> s is AND then all children <strong>of</strong> s are in states<br />

if s in states <strong>and</strong> type <strong>of</strong> s is XOR then exactly one child <strong>of</strong> s is in states<br />

Execution context <strong>of</strong> statechart (S, T, V):<br />

current values <strong>of</strong> variables defined by val : V → Dom<br />

Configuration <strong>of</strong> statechart (S, T, V) : (states, val)<br />

Initial configuration<br />

Evaluation <strong>of</strong> expression in configuration:<br />

eval(expr, conf ) defined inductively<br />

Effect <strong>of</strong> action on context:<br />

modification <strong>of</strong> variable values in val<br />

fire(conf) = set <strong>of</strong> transitions<br />

t = (source, target, [cond]/action) with source(t) in states for which eval(cond, conf ) = true


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 381<br />

for transition t:<br />

when t fires:<br />

a = lca(source(t), target(t))<br />

src(t) = child <strong>of</strong> a in subtree <strong>of</strong> source(t)<br />

tgt(t) = child <strong>of</strong> a in subtree <strong>of</strong> target(t)<br />

set <strong>of</strong> left states source ∗ (t):<br />

• src(t) is in source ∗ (t)<br />

• if s in source ∗ (t) then all children <strong>of</strong> s are in source ∗ (t)<br />

set <strong>of</strong> entered states target ∗ (t):<br />

• tgt(t) <strong>and</strong> target(t) are in target ∗ (t)<br />

• if s in target ∗ (t) <strong>and</strong> type <strong>of</strong> s is AND then all children <strong>of</strong> s are in target ∗ (t)<br />

• if s in target∗(t) <strong>and</strong> type <strong>of</strong> s is XOR then exactly one child <strong>of</strong> s with initial transition is in target∗(t)<br />

For a given configuration conf = (states, val) a successor configuration conf ′ = (states ′ , val ′ ) is derived by selecting<br />

one transition t from fire(conf ) with the effect: states ′ = states–source ∗ (t) ∪ target ∗ (t) val ′ captures the<br />

effect <strong>of</strong> action(t) <strong>and</strong> equals val otherwise<br />

Theorem 2 The operational semantics <strong>of</strong> a statechart (S, V, T) is the set <strong>of</strong> all possible executions along configurations<br />

conf 0 , conf 1 , conf 2 , ... with initial configuration conf 0 <strong>and</strong> conf i+1 being a successor configuration <strong>of</strong> conf i .<br />

Verfeinerung von Statecharts.<br />

Das Zust<strong>and</strong>sdiagramm in Bild 11<br />

completed<br />

login<br />

✛<br />

login<br />

request<br />

disabled<br />

login<br />

✛<br />

❄<br />

enabled<br />

login<br />

<strong>of</strong>fer<br />

✲<br />

<strong>of</strong>fered<br />

lecture<br />

completed<br />

<strong>of</strong>fer<br />

✛<br />

commit<br />

❄<br />

validated<br />

<strong>of</strong>fer<br />

Abbildung 11: Abstrakter Statechart zur Vorlesungsplanung<br />

wird durch das Zust<strong>and</strong>sdiagramm in Bild 12 verfeinert.<br />

Vor- und Nachteile.<br />

Wann sollte man Zust<strong>and</strong>sdiagramme nutzen? Von Nutzen bei Beschreibung des Verhaltens von Objekten über<br />

mehrere Anwendungfälle hinweg. sowie bei Klassen, deren Verhalten noch nicht wohlverst<strong>and</strong>en ist.


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 382<br />

reset<br />

state<br />

✻<br />

❄<br />

disabled<br />

login<br />

✕<br />

❘<br />

completed<br />

login<br />

❄<br />

unknown<br />

user<br />

send name<br />

❄<br />

name<br />

known<br />

send password<br />

❄<br />

known name,<br />

password<br />

✛<br />

✲<br />

renew<br />

login<br />

✻(count ≠ 0)<br />

(count<br />

counter =0) ✲ reject<br />

check<br />

login<br />

✻(false)<br />

login (true) ✲<br />

validated<br />

✻{count:=3}<br />

login<br />

unclear<br />

✛<br />

H<br />

✻<br />

correct<br />

login<br />

enabled login<br />

✻<br />

login<br />

accepted<br />

✲<br />

✛<br />

correct<br />

login<br />

✠<br />

roles, rights<br />

unclear<br />

{ role, right<br />

generation ❄ }<br />

roles, rights<br />

assigned<br />

✛<br />

Abbildung 12: Verfeinerung des Statechart für das Login


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 383<br />

Wann sollte man Zust<strong>and</strong>sdiagramme nicht nutzen? Beschreibung des Verhaltens von mehreren Objekten, die<br />

innerhalb eines Anwendungsfalles auftreten (dann Interaktionsdiagramme)<br />

Beschreibung der Verhaltens mehrerer Anwendungsfälle und mehrerer Objekte (dann Aktivitätendiagramme)<br />

Beschreibung des Verhaltens von kooperierenden Objekten<br />

3.5.3 Top-down-Beschreibung<br />

Szenarien, Architektur und Zustände.<br />

Nun Modellierung der Erwartungen für jedes Ereignis.<br />

Alle möglichen Szenarios können nicht entworfen werden.<br />

In Datenbanksystemen werden Szenarios durch Transaktionen (siehe spezielles Kapitel) dargestellt (evt. mit Teiltransaktionen,<br />

aber ohne Wiederholungen, expliziter Parallelität).<br />

Architektursicht der Daten- und Prozeßorganisation<br />

alle Ereignisse werden durch Prozessoren unterlegt<br />

Prozessorschnittstellen Kommunikationsschnittstellen (keyboard, display) und Schnittstellen mit dem <strong>Information</strong>ssystem,<br />

sowie externen Benutzer<br />

Technologische Beschränkungen und Bedingungen der Kommunikationskanäle, der Input/Output-Geräte,<br />

der Prozessoren, der Speicher, der Geschwindigkeit, ...<br />

Spezifikation der Architekturanforderungen Prozessoren, Zuverlässigkeit, Prioritäten, Leistung, Kapazität,<br />

Zeitbeziehungen, Interface, Sicherheit, fail-safety, safety, ...<br />

dokumentiert in Szenario-Spezifikation, Szenariodiagramm<br />

Szenario - Menge von I/O-Datenströmen, Steuerströmen, Verhalten eines Ereignisses<br />

Endliche Automatten als Darstellungsmittel als spezifische Darstellungsform<br />

Zust<strong>and</strong> eines <strong>Information</strong>ssystemes<br />

Zust<strong>and</strong>süberführungsdiagramme mit I/O-Kanten<br />

Zust<strong>and</strong>süberführungstabellen in klassischer Form<br />

Statecharts als State-Transition-Diagramme mit concurrency, Hierarchisierung und Kommunikation<br />

D. Harel, Statecharts: A visual formalism for complex systems. North-Holl<strong>and</strong>, New York, 1987<br />

Aktionsdiagramme in Szenarios oder Struktogramme zur Spezifikation der Programmabläufe in Szenarios (mit<br />

Erweiterung für parallele H<strong>and</strong>lungen)<br />

Verhaltensmuster (Skripte).<br />

als Programme auf der Grundlage expliziter atomarer Operationen<br />

Verhaltenssicht eines Systemes zur Modellierung der Benutzererwartungen und der Prozesse<br />

Benutzererwartungen Dekomposition in kleine (möglichst atomare) Programme<br />

Audio/Visuelle Aktione, Send/Receive-Signale, Accept/Transmit Daten, Store/Retrieve Daten, Berechnungsresultate,<br />

logische Resultate<br />

Prozeßbeschränkungen technologische Beschränkungen, Beschränkungen der Technik, Beschränkungen<br />

der Kommunikation


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 384<br />

Verhaltensanforderungen Prozeßanforderungen, Prioritäten, Leistungsanforderungen, Zeit, fail-safety, safety,<br />

negotiale Anforderungen (was sollte keinesfalls passieren), ...<br />

Verhalten als Basisaktivitäten des <strong>Systems</strong>; komplexes Verhalten als Teilsysteme;<br />

Definition von Verhalten über Programme über Aktivitäten<br />

Benennung von Verhalten z.B. input, output, verify, activate, calculate, terminate, logische Ableitung<br />

Erweiterungen Luxus am Anfang<br />

Flexible Systeme<br />

Kontrolle der Erwartungen, Einbettungen<br />

Aktionsdiagramme definieren Verhaltensmuster<br />

Systemerweiterungen inkrementelle<br />

CRC Cards.<br />

CRC = Class - Responsibility - Collaboration<br />

innerhalb einer Geschäftsprozeßschicht: keine Interface-Spez.<br />

Operationen: prinzipielle Verantwortlichkeiten einer Klasse<br />

Verantwortlichkeit<br />

high-level Beschreibung des Zieles der Klasse keine Orientierung auf Daten, Prozesse<br />

Darstellung des Zieles, Motivation<br />

Kollaboration ( (in Zusammenarbeit mit) Verantwortlichkeiten mit <strong>and</strong>eren Klassen<br />

Verbindungen mit <strong>and</strong>eren Klassen<br />

Trick: auf Karteikarten kann nur begrenzte <strong>Information</strong>.<br />

Günstig für Beschreibung der Schnittstellen der Klassen, insbesondere deren Verhalten, sowie bei Teamentwicklung.<br />

Anwendungsfall durch ein oder mehrere Karten<br />

Kooperationen zwischen Objekten<br />

Objekt kann Verantwortlichkeit selbst erfüllen vs. benötigt Fähigkeiten <strong>and</strong>erer Objekte (–¿ Kooperation)<br />

Kooperationen modellieren die Interaktion zwischen Objekten (Daten- und Kontrollfluß)<br />

Rolle der Objekte (Anbieter / Kunde) bezüglich der Kooperation wird bestimmt<br />

(abgeschlossene) Teilsysteme können identifiziert werden<br />

Kooperationen finden<br />

1. Für jede Verantwortlichkeit einer Klasse überlegen:<br />

kann die Klasse die Verantwortlichkeit selbst erfüllen ?<br />

falls nicht: welche <strong>Information</strong>en /Fähigkeiten werden benötigt und welche <strong>and</strong>ere Klasse stellt diese bereit ?<br />

2. Für jede Klasse bestimmen:<br />

was tut oder weiß diese Klasse ?<br />

welche <strong>and</strong>eren Klassen benötigen diese Fähigkeiten ?<br />

stimmt die Rolle (Anbieter / Kunde) der Klasse ? (z.B. phys. Geräte sind typischerweise Anbieter)<br />

kooperiert die Klasse mit mindestens einer <strong>and</strong>eren Klasse ? (falls nicht, ist die Klasse <strong>of</strong>fenbar überflüssig !)<br />

3. weitere Beziehungen zwischen den Klassen analysieren<br />

besteht-aus (Aggregation)<br />

Komposition<br />

Behälter-Klassen (z.B. Array, geordnete Menge)<br />

kennt (Assoziation)


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 385<br />

Benutzung<br />

“hole <strong>Information</strong> von” Kooperationen<br />

hängt-ab-von<br />

gibt Hinweise auf Kooperationsketten<br />

3.5.4 Spezifikation auf unterschiedlichen Abstraktionsschichten<br />

Ablauf eines Spezifikationsschrittes:<br />

Spezifikationsmakro<br />

Geschäftsproblem und Analyse<br />

Beschreibung des Geschäftsprozesses<br />

Beschreibung der Lösung für den Geschäftsprozeß<br />

Verfeinerungsmakro<br />

Ableitung des Entwicklungproblemes<br />

Beschreibung des S<strong>of</strong>tware-Problemes<br />

Beschreibung der S<strong>of</strong>twareanforderungen mit anschließendem Makroschritt zu Verfeinerung<br />

Dekompositionsmakro<br />

Ableitung des Dekompositionsproblemes<br />

Beschreibung des Dekompositionsproblemes<br />

Lösung des Dekompositionsproblemes<br />

Geschäftsprozesse auf der Strategieschicht<br />

Konzepte als Grundkonstrukt.<br />

Name Intention Best<strong>and</strong>teil Verantwortlichkeit Ausschlußregeln<br />

Ersteintrag Bereitsstellung schrittweiser Eintrag von Unterstützung von Einträgen,<br />

keine Planung, keine<br />

erster Angaben<br />

Daten<br />

Wiederbenutzung Konsistenzkontrolle, keine<br />

zu neuen<br />

vorh<strong>and</strong>ener Daten Synchronisation<br />

Vorlesungen<br />

... ... ... ... ...<br />

Spezifikation analog zu CRC-Karten<br />

Beschreibung der allgemeinen Ziele.<br />

Geschäftsprozesse auf der Anforderungsschicht<br />

Zusammenhänge von Geschäftsprozessen<br />

Geschäftsprozeß<br />

Geschäftsfalldaten<br />

Geschäftsdialoge<br />

Sichten auf diese Daten Obligationen zur Pflege


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 386<br />

Arbeitsschritte als Grundkonstrukt.<br />

Spezifikationsrahmen für Arbeitsschritte<br />

Name Auslöser org. Einheit Tätigkeit Hilfsmittel,<br />

Zusatzinformationen<br />

Ablage /<br />

Adressat<br />

... ... ... ... ... ...<br />

Wir wählen hier einen ereignis-orientierten Zugang. Der Zusammenhang von Entities und Ereignissen wird<br />

durch Ereignisdiagramme in Petri-Netz-Darstellung (Ereignisse und Sichten) mit Input/Output in Eventknoten dargestellt.<br />

Knoten sind Ereignisse oder Sichten bzw. in einfachen Fällen Teilschemata. Kanten verlaufen von Ereignissen<br />

nach Sichten bzw. von Sichten nach Ereignissen. Sichten werden aufgefaßt als Input/Output-Generatoren. Ein Mehrfachinput<br />

kann in ‘<strong>and</strong>’-Form für Ereignisse aufgefaßt werden. Ein Mehrfachinput an Sichten ist eine ‘or’-Form zum<br />

Anstoßen. Damit ergibt sich eine Petri-Netz-Darstellung wie in Bild 13.<br />

als<br />

Sender<br />

gedeutete<br />

Sichten:<br />

Mitteilung<br />

ermittelt<br />

<strong>Information</strong><br />

als Erstellung<br />

und Übertragung von<br />

Mitteilungen<br />

gedeutete Transition<br />

als<br />

Empfänger<br />

gedeutete<br />

Sichten<br />

eingehende<br />

Mitteilungen<br />

Auslösung<br />

von<br />

anschließenden<br />

H<strong>and</strong>lungen<br />

✲<br />

✯<br />

✲<br />

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

❥<br />

✯<br />

Transition<br />

...<br />

✲<br />

❥<br />

✲<br />

Abbildung 13: Petri-Netz-Darstellung von formalen H<strong>and</strong>lungen<br />

Auf der Grundlage der Darstellung in Bild 13 können wir ein Aufgabenmodell entwickeln. Wir werden dieses<br />

Aufgabenmodell noch für die Spezifikation der Interaktivität durch Arbeitsvorgänge, Aktivitäten und Aktivitätenfolgendiagramme<br />

erweitern. Ein Arbeitsvorgang besitzt eine allgemeine Struktur, ein Resultat und semantische Rahmenbedingungen.<br />

Ein Arbeitsvorgang im Rahmen eines Geschäftsprozesses wird durch<br />

einen Namen,<br />

einen Auslöser, der die Ausführung der im Arbeitsvorgang genannten Tätigkeiten auslöst (Zeitpunkte,<br />

eingehende Daten, Unterlagen, ...),<br />

eine organisatorische Einheit, die eine Aufgabe durchführt,<br />

eine Tätigkeit der Benutzer bzw. einen Ablauf von Tätigkeiten der Benutzer,<br />

verwendete Hilfsmittel und Zusatzinformationen, die diese Tätigkeiten unterstützen, und<br />

einer Ablage und einem Adressaten,<br />

beschrieben.<br />

in die oder an den Ausgaben erfolgen,


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 387<br />

Als Beispiel einer Aufgabe können wir die Erstellung eines Vorlesungsangebotes in unserem Hauptbeispiel betrachten.<br />

Ein Beauftragter eines Lehrstuhles erhält eine Aufforderung zur Erstellung von Angeboten zu einer Vorlesung.<br />

Die organisatorische Einheit ist der Lehrstuhl einer Universität. Hilfsinformation und Zusatzinformation sind<br />

die Angaben zu den angeforderten Kursen oder zu den neu angebotenen Kursen. Damit kann der Geschäftsvorfall so<br />

wie in Bild 14 dargestellt werden.<br />

Aufforderung<br />

Eintrag<br />

Kontrolle<br />

Abschluß<br />

✲ zum<br />

✲ der Daten zur ✲ der Daten zur ✲ der Angabe zur ✲<br />

Eintrag<br />

Lehrveranstaltunanstaltung<br />

Lehrver-<br />

Lehrveranstaltung<br />

Abbildung 14: Geschäftsvorfall: Erstellung eines Angebotes für eine Lehrveranstaltung<br />

Diese Graphik kann auch durch weitere Einzelschritte untersetzt werden. Anstelle der graphischen Darstellung<br />

kann auch eine tabellarische Darstellung gewählt werden:<br />

Geschäftsvorfall: Eintrag einer Lehrveranstaltung nach Aufforderung<br />

Auslöser Organisatorische Einheit Hilfs- und Zusatzinformation<br />

Aufforderung für Beauftragten Lehrstuhl Kurse, Studiengänge, Räume<br />

Tätigkeiten<br />

für:<br />

1. Eintrag Beauftragter des Lehrstuhles<br />

Hauptinformation angeben ;<br />

(Klassifizieren || Einordnen || sonstige Angaben erfassen || Nebenbedingungen eingeben);<br />

2. Kontrolle Beauftragter und Mitglieder des Lehrstuhles<br />

<strong>Information</strong>svergleich von Anforderungen, Angaben und weiteren Daten<br />

3. Beendigung Beauftragter des Lehrstuhles<br />

Ablegen am Lehrstuhl ; Absenden an auffordernde Einrichtung<br />

In analoger Form kann das Verhalten für Einzelobjekte durch eine Lebenszyklusspezifikation mit einem verallgemeinerten<br />

Petri-Netz-Modell (Prädikaten-Transitionsnetz) oder einem Automatengraphen beschrieben werden:<br />

Menge von Zuständen: S o für jedes Objekt in der Datenbank;<br />

Menge von Aktivitäten: T o für jedes Objekt in der Datenbank;<br />

Diagramm: D ⊆ S o × T o ∪ T o × S o ;<br />

Vor- und Nachbedingungen zu Aktivitäten: V o (s, t) für (s, t) ∈ S o × T o als Vorbedingung für eine Aktivität und<br />

N o (t, s) für (t, s) ∈ S o × T o als Nachbedingung für eine Aktivität. Damit kann eine Darstellung durch eine<br />

Hoare-Logik VtN verwendet werden.<br />

Spezifikation eines Lebenszyklus: (S o , T o , F o , V o , N o ) .<br />

Nachteilig ist, daß dieser Zugang nur für Einzelobjekte geeignet ist. Durch komplexe Bedingungen kann auch Verknüpfung<br />

von Lebenszyklen beschrieben werden. Mitunter kann das Zusammenwirken von Objekten eine Komposition<br />

des Verhaltens verschiedener Objekte erfordern. Der Moment eines Lebenszyklus sind alle Eigenschaften des<br />

Objektes im Zust<strong>and</strong> s.<br />

Beispiel: Personen werden Studenten etc.<br />

Die Vor- und Nachbedingungen sind nicht in der Zeichnung dargestellt. So gilt z.B., daß für die Exmatrikulation<br />

sämtliche Beziehungen gelöst werden.<br />

Die Vertragsgestaltung erbt das Objekt Student vom Objekt Person. Personen sind über Verträge Mitarbeiter von<br />

Projekten. Bei dieser Vererbung wird auch die Bezeichnung Mitarbeiter überschrieben.


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 388<br />

Exmatrikulation<br />

✲<br />

Absolvent<br />

✒<br />

Person ✲ Immatrikulation ✲ Student<br />

✲<br />

Betreuersuche<br />

✲<br />

Student mit<br />

Betreuer<br />

Belegt<br />

Vorlesung<br />

✠<br />

❄<br />

Abschluß<br />

Vertrag<br />

❘<br />

Auswahl<br />

Nebenfach<br />

❄<br />

Auswahl des<br />

Themas<br />

❄<br />

❄<br />

❄<br />

❄<br />

Student<br />

mit Resultat<br />

HiWi<br />

Student<br />

mit Nebenfach<br />

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

Abbildung 15: Lebenszyklus eines Studenten in der Datenbank<br />

Man kann die und-oder Graphen auch weiter verfeinern. (siehe Modellierungskapitel)<br />

Die Sichtbarkeitsregeln folgen der Sichtendefinition.<br />

Außerdem kann der Graph auch zyklisch sein.<br />

Kanten können mehrwertig sein (Z.B. für die Auswahl des Nebenfaches).<br />

Darstellung von gemeinsamen Verhalten mehrerer Objekte.<br />

Unterscheidung in aktive Objekte, aktivierte Objekte und passive Objekte<br />

Entwicklung von Kooperationsverträgen zwischen den Objekten<br />

Prozesse können sich auch gegenseitig<br />

bedingen,<br />

blockieren,<br />

abweisen,<br />

starten<br />

Kopplung.<br />

Verschiedene Arten von Kopplungsmechanismen:<br />

Interaktionskopplung<br />

rufen dieselben Daten ab; rufen sich gegenseitig auf<br />

dabei verschiedene Kopplungsmechanismen<br />

• interne Kopplung<br />

• globale Kopplung<br />

• externe Kopplung<br />

• Kontrollflußkopplung


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 389<br />

• W<strong>and</strong>erdatenkopplung<br />

• Parameterkopplung<br />

• keine Kopplung<br />

Komponentenkopplung<br />

verschiedene Grade<br />

• versteckte Kopplung<br />

• verstreute Kopplung<br />

• spezifizierte Kopplung<br />

• keine Kopplung<br />

Vererbungskopplung<br />

verschiedene Arten<br />

Kohäsion.<br />

• Änderungskopplung<br />

• Signaturänderungskopplung<br />

• Implementationsänderungskopplung<br />

• Verfeinerungskopplung<br />

• Signaturverfeinerungskopplung<br />

• Implementationsverfeinerungskopplung<br />

• Erweiterungskopplung<br />

• keine Kopplung<br />

(Bindung zwischen den einzelnen kooperierenden Objekten)<br />

verschiedene Arten<br />

Operationskohäsion<br />

• zufällige Kohäsion<br />

• logische Kohäsion<br />

• temporale Kohäsion<br />

• prozedurale Kohäsion<br />

• Kommunikationskohäsion<br />

• sequentielle Kohäsion<br />

• funktionale Kohäsion<br />

Typkohäsion<br />

• zerlegbare Kohäsion<br />

• mehrschichtige Kohäsion<br />

• nicht delegierte Kohäsion<br />

• verborgene Kohäsion<br />

Vererbungskohäsion<br />

H<strong>and</strong>lungen auf der Benutzungsschicht<br />

Aktionen als Grundkonstrukt.<br />

H<strong>and</strong>lungsabläufe zur Komposition.


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 390<br />

Die einzelnen Geschäftsprozesse werden nun mit ihrem Verlauf im Detail dargestellt. Sie können durch Ablaufdiagramme<br />

dargestellt werden. H<strong>and</strong>lungen sollen zu einer Veränderung der Datenbank führen oder dem <strong>Information</strong>sgewinn<br />

der Akteure dienen. Akteure sind Abstraktionen von Benutzergruppen, wie z.B. der Beauftragten<br />

des Lehrstuhls. Wir entwickeln damit allgemeine Änderungsoperationen, Retrievaloperationen und Operationen zur<br />

Veränderung von Rollen von Objekten mit entsprechenden dynamischen Integritätsbedingungen. Es werden zugelassene,<br />

erwünschte, verbotene und erzwungene H<strong>and</strong>lungen dargestellt. Für die einzelnen Akteure gibt es Verpflichtungen.<br />

H<strong>and</strong>lungen werden Arbeitsvorgängen bzw. Tätigkeiten zugeordnet. Ein Arbeitsvorgang ist - wie bereits dargestellt<br />

- durch einen Akteur oder eine Gruppe von Akteuren als Auslöser mit Rollen und Rechten, eine organisatorische<br />

Einheit, einer Beschreibung der Aktionen in ihrer Abfolge, eine Ordnung und ihren Beziehungen, die verwendeten<br />

Hilfsmittel und <strong>Information</strong>en und die Ablage der Resultate charakterisiert.<br />

Aus der Beschreibung der Koordination der H<strong>and</strong>lungen werden dynamische Integritätsbedingungen abgeleitet.<br />

Spezielle dynamische Integritätsbedingungen sind Methodenregeln, die Aussagen darüber festhalten, wie bestimmte<br />

Aktionen ausgeführt werden und welche Umgebung (Daten, Akteure, Dialoge) zu ihrer Ausführung notwendig<br />

ist. Durch Zeitregeln, Ausführungshäufigkeiten und Ausführungspriorisierungen werden die Zeitparameter festgelegt.<br />

Entscheidungsregeln spezifizieren im weiteren, welche Tätigkeit zu welchem Resultat führen muß, kann bzw. sollte.<br />

Wir können dazu Entscheidungstabellen benutzen. Es werden aus den Geschäftsfalldaten, d.h. den Daten, die während<br />

eines Geschäftsprozesses anfallen, und den Geschäftsdialogen entsprechende Entwurfsobligationen für <strong>and</strong>ere Entwurfsschritte<br />

abgeleitet. Jeder Aktion können aktionsspezifische Integritätsbedingungen zugeordnet sein. Unter den<br />

Aktionen kann eine Ordnung existieren, die als kausale Abhängigkeit für parallelisierte Aktionen dargestellt wird.<br />

Weiterhin werden den H<strong>and</strong>lungen verschiedene Varianten von Aktionen zugeordnet.<br />

Wir verwenden dazu eine Erweiterung der tabellarischen Darstellung der Tabelle zu Geschäftsvorfällen von Seite<br />

387. Eine graphische Darstellung wird in den Schritten zur Feinstudie aufgezeigt. Die tabellarische Darstellung stellt<br />

ein Kollaborationsdiagramm dar und beinhaltet die folgenden Angaben:<br />

H<strong>and</strong>lungen des Akteurs<br />

Auslöser Organisatorische Einheit Hilfs- und Zusatzinformation<br />

... ... ...<br />

Integritätsbedingungen<br />

obligatorisch erlaubt verboten<br />

... ... ...<br />

Methodenregeln<br />

Ausführung Umgebung Zeitparameter<br />

... ... ...<br />

Aktionen des Akteurs<br />

i. H<strong>and</strong>lung Akteur<br />

Rechte Pflichten Rolle<br />

... ... ...<br />

i.j. Aktion<br />

Integritätsbedingung<br />

...<br />

Im Detail stellt sich die Entfaltung der Tabelle von Seite 387 wie folgt dar:<br />

für:


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 391<br />

H<strong>and</strong>lungen des Akteurs: Eintrag einer Lehrveranstaltung nach Aufforderung<br />

Auslöser Organisatorische Einheit Hilfs- und Zusatzinformation<br />

... ... ...<br />

Integritätsbedingungen<br />

obligatorisch erlaubt verboten<br />

Beendigung Bis Termin Entfernung von Angebot Parallelangebot zu <strong>and</strong>erem Lehrstuhl<br />

Methodenregeln<br />

Ausführung Umgebung Zeitparameter<br />

Mit Unterbrechung, Erinnerungsskripte,<br />

temporäre Ansicht, Gruppenarbeit,<br />

Erfolgsmeldung<br />

Aktionen des Akteurs<br />

Sitzungsobjekt, Online Interface,<br />

konfigurierbare Oberfläche<br />

Temporäre Ablage, wiederholter<br />

Aufruf, niedrige Priorität<br />

1. Eintrag von Angeboten zu Lehrveranstaltungen Beauftragter des Lehrstuhles<br />

Rechte Pflichten Rolle<br />

Eintrag/Abschluß, Einsicht in vollständige Abarbeitung der Liste<br />

Datenbereitstellung<br />

Lehrstuhlangaben, Einsicht in<br />

Anforderungsliste, Eintragen,<br />

Streichen und Modifikation von<br />

Angeboten<br />

1.1. Entgegennahme der Einzelaufgaben<br />

1.1.1. Auswahl aus der Aufgabenliste DO UNTIL END Of LIST<br />

1.1.1.1. Lehrveranstaltungsidentifikation bestätigen<br />

1.1.1.2. Auswahl der Lehrveranstaltungsart<br />

1.1.1.3. Bestätigung oder Modifikation der Bezeichnung der Lehrveranstaltung<br />

1.1.1.4. Bestätigung oder Modifikation der Inhaltsbeschreibung der Lehrveranstaltung<br />

1.1.1.5. Zuordnung der Lehrenden zur Lehrveranstaltung<br />

...<br />

1.1.2. Angaben zur Art der Lehrveranstaltung parallel zu 1.1.3 ... 1.1.6<br />

1.1.2.1. Angaben zur Art der Durchführung<br />

....<br />

1.1.3. Bestätigung oder Modifikation der Zielgruppe für die Lehrveranstaltung<br />

1.1.3.1. Bestätigung oder Modifikation des Studienganges<br />

...<br />

1.1.6. Angaben zur Nebenbedingungen der Lehrveranstaltung optional<br />

1.1.6.1. Angaben zu Terminwünschen<br />

1.1.6.2. Angaben von Parallelveranstaltungen<br />

....<br />

1.3. Zusatzangaben zum Lehrbericht optional<br />

Diese Tabelle kann als eine Auffaltung oder Verfeinerung der Tabelle von Seite 387 betrachtet werden. Damit<br />

sind wir in der Lage, die Konsistenz der Entwicklungsschritte direkt zu betrachten.<br />

Hier kann eine Konformitätsbedingung greifen: Die natürlichsprachige Repräsentation und die formale<br />

Spezifikation entsprechen sich 1:1. Analoges sollte für die graphische Repräsentation zutreffen.<br />

Weiteres Hilfsmittel: Dialogspezifikation der Exkurstheorie; Montague’s Syntaxdiagramme<br />

für:


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 392<br />

3.5.5 Verhaltensoptimierung


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 393<br />

3.6 Unterscheidung von Funktionalität und Interaktivität<br />

In klassischen Ansätzen werden H<strong>and</strong>lungsabläufe zur Spezifikation der Funktionalität und zur Spezifikation der<br />

Interaktivität auf gleiche Art und Weise durch Workflows dargestellt. Diese Darstellung ist aufgrund einer ganzen<br />

Reihe von Gründen irreführend und führt zu einem Workflow-Impedance-Mismatch:<br />

Workflows zur Spezifikation der Funktionalität umfassen auch Prozesse der Systeme, die auf dem Niveau der<br />

Interaktivität keine Rolle spielen. Deshalb sind Workflows überladen.<br />

H<strong>and</strong>lungsabläufe der Realität müssen sich nicht zwingend im Workflow widerspiegeln. Demzufolge werden<br />

Workflows funktional unvollständig.<br />

H<strong>and</strong>lungsabläufe auf Systemniveau und auf Interaktionsniveau unterscheiden sich im Abstraktionsniveau.<br />

Deshalb besitzen sie eine unterschiedliche Granularität.<br />

H<strong>and</strong>lungsabläufe auf Interaktionsniveau stellen auch die Zusammenarbeit von Akteuren dar, die sich nicht<br />

zwingend im System widerspiegeln muß. Demzufolge sind Workflows organisatorisch unvollständig.<br />

Workflows zur Spezifikation der Funktionalität sollten den konkreten H<strong>and</strong>lungsablauf nicht in Beziehung zum<br />

Kontext setzen. In klassischen Herangehensweisen werden aber die unterschiedlichsten Varianten des gleichen<br />

Workflows je nach Kontext als eigenständiger Workflow dargestellt. Es entsteht eine Workflow-Lawine, deren<br />

Beherrschung und Überschaubarkeit nicht mehr gegeben ist.<br />

Wir bevorzugen dagegen eine Trennung von dynamischen Gesichtspunkten in<br />

Stories zur Darstellung der H<strong>and</strong>lungsabläufe auf Interaktionsniveau und<br />

Workflows zur Darstellung der H<strong>and</strong>lungsabläufe auf Systemniveau.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 394<br />

3.7 Spezifische Funktionalität<br />

3.7.1 Workflow-Klassen, Workflows und Workflow-Felder<br />

Die Beschreibung der H<strong>and</strong>lungsabläufe lehnen wir dabei an die Formenlehre an. In der Morphologie kann ein Wort<br />

in allen seinen Variationen dargestellt werden durch<br />

eine Stammform zur Parametrisierung der unterschiedlichen Dimensionen, wie z.B. Zeitdimension und Akteurdimension,<br />

die Wortbildung, d.h. durch Regeln zur Assoziation von Wörtern zu komplexeren Ausdrücken wie z.B. Ableitung,<br />

Zusammensetzung und Abkürzung, und<br />

die Flexion zur Ableitung von Varianten und zur Erfassung von Ausnahmen.<br />

Ein morphologisches Merkmal erlaubt die Kennzeichnung der Ableitungsdimensionen eines Begriffes je nach<br />

seiner Kategorie (Verb, Nomen, Artikel/Pronomen, Adjektiv, Partikel) durch<br />

Deklination der drei Merkmale<br />

Kasus, mit dem eine Assoziierung der Worte zu thematischen Rollen und der Art der Assoziierung (Nominativ<br />

(‘wer’, ‘was’), Akkusativ (‘wen’, ‘wohin’, ‘wie lange’), Genitiv (‘wessen’), Dativ (‘wem’, ‘für<br />

wen’), Ablativ (‘wodurch’, ‘womit’, ‘von wem’, ‘weswegen’, ‘wann’) und Vokativ (zur direkten Anrede))<br />

determiniert wird,<br />

Genus, mit dem eine Kategorisierung z.B. zum Geschlecht (Maskulinum, Femininum, Neutrum) vorgenommen<br />

wird, und<br />

Numerus, mit dem eine Einzelbeh<strong>and</strong>lung oder eine Gruppenbeh<strong>and</strong>lung ermöglicht wird,<br />

Konjugation zur Instantiierung von n-wertigen (-valenten) Beziehungen mit<br />

oder<br />

Numerus zur Assoziierung mit Kardinalität (Singular (card(R,E) = (0,1)), Dual (card(R,E) = (0,2)) bzw.<br />

Plural (card(R,E) = (0,n))) ,<br />

Personalformen zur Ausrichtung der Beziehung (‘ich’ = →, ‘er’ = , ‘wir’ = ↔),<br />

Tempus zur zeitlichen Relativierung (Präsenz, Perfekt, Plusquamperfekt, etc.),<br />

Modus zur Bewertung der Modalität (Indikativ (als Feststellung z.B. durch Teilklasse), Imperativ ((1,1)<br />

bzw. (1,n)), Konjunktiv I (zur Darstellung der allgemeinen Möglichkeit bzw. Wunsches), Konjunktiv II<br />

(zur Abgrenzung einer spekulativen Möglichkeit)) und<br />

Genus verbi zur Darstellung der Beziehungsform (aktiv bzw. passiv)<br />

Komparation zur Darstellung von Steigerungsformen<br />

Positiv bzw. einfach positiv,<br />

Komparativ bzw. Vergleichstufe bzw. Höherstufe und<br />

Superlativ als Höchststufe sowie<br />

Elativ als absoluter Superlativ<br />

und Ausprägungen des Wortes.<br />

Da wir die Theorie der Wortfelder [Kun92] zu Konzeptfeldern [DT04] bzw. Konzeptrahmen erweitern, wird für<br />

ein Konzeptfeld eine Kontextualisierung (oder Konjugation) durch Instantiierung der Parameter<br />

Akteurspr<strong>of</strong>ile und -portfolio,<br />

Wiederholungspr<strong>of</strong>il,<br />

Zeitpr<strong>of</strong>il,


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 395<br />

deontischer Modus mit imperativen, konjunktiven und indikativen Ausprägungen und<br />

Aktionsform und H<strong>and</strong>lungsrichtung zur Darstellung der Beziehung zwischen Akteur und H<strong>and</strong>lungsablauf<br />

erreicht. Damit werden insbesondere die Parameter der Stammform des Konzeptfeldes durch entsprechende Werte<br />

angepaßt. Ein Konzeptfeld ist ein generisches Konzept, aus dem ein Konzept durch Instantiierung einer Reihe von<br />

Merkmalen abgeleitet wird. Dieser Zugang entspricht in der Theorie der Wortfelder der Komponentenanalyse. Wir<br />

verwenden diese Ableitungsbeziehung analog zu den Erkenntnissen der Sprachwissenschaft. Wir können z.B. aus<br />

dem Konzeptfeld Lebewesen wie folgt Konzepte ableiten:<br />

Lebewesen Belebtheit Kategorie=Mensch Geschlecht=weiblich Lebensalter=Erwachsen ...<br />

Mann + + - + ...<br />

Mädchen + + + - ...<br />

Rüde + - - + ...<br />

Welpe + - +/- - ...<br />

Analog kann auch eine generelle Klasse eingeführt werden.<br />

Diese Beobachtung führte V.J. Propps [Pro72] zu seiner Spezifikation der Märchen. Er stellte z.B. für das Märchen<br />

Die wilden Schwäne den Ausdruck<br />

ib 1 a 1 c 1 A 1 B 4 C ↗ {Sch 1 H 1 ¬Z 1 ¬‖sch 7 H 7 Z 9 }W 4 L 1 ↘ V 1 [Sch 1 H 1 Z 9 ≡ R 4 ] × 3<br />

auf. Die Buchstaben werden jeweils für eine Konzeptfeld verw<strong>and</strong>t, z.B. I für das Eröffnungsfeld, a für Ortsbewegungen,<br />

b für Verbote, c für Verletzungen der Verbote, A für Schädigungen, C für eine einsetzende Gegenh<strong>and</strong>lung,<br />

↗ und ↘ für Ortsveränderungen, Sch für Schenkungen, H für Reaktionen des Helden, Z für den Empfang eines<br />

Zaubermittels, ‖ für eine Parallelh<strong>and</strong>lung, W für eine Wegweisung, L für die Aufhebung des Unglücks, V für die<br />

Verfolgung und R für die Rettung. Die einzelnen Schritte können durch Annotation auch verfeinert oder negiert werden.<br />

Außerdem kann eine Wiederholung angezeigt werden, z.B. die dreimalige Wiederholung durch 3.<br />

Wir unterschieden in Anlehnung an die Theorie der Konzeptfelder zwischen<br />

Workflow-Klassen, in denen Workflows als Einzelelemente enthalten sind,<br />

einem Workflow als Objekt einer Workflow-Klasse und<br />

Workflow-Feldern, mit denen ein Rahmen der Workflow-Klasse angegeben werden kann.<br />

Ein Typ einer Workflow-Klasse kann aus einer oder mehreren Stammformen bestehen.<br />

Ein Workflow-Feld besteht aus<br />

einer Menge von Stammformen,<br />

einer Menge von dynamischen Integritätsbedingungen denen die Workflows eines Feldes genügen müssen,<br />

einer Menge von Bildungsformen zur Assoziation mit <strong>and</strong>eren Workflow-Feldern und<br />

einer Menge von Flexionen zur Ableitung von Workflows aus dem Workflow-Feld.<br />

Wir nehmen <strong>of</strong>t vereinfachend an, daß ein Workflow-Feld nur eine einzige Stammform besitzt. und daß eine Workflow-<br />

Klasse nur Workflows eines Workflow-Feldes enthält. Sie muß nicht alle möglichen Workflows dieses Feldes enthalten,<br />

sondern kann auch nur einige (aktuelle) Workflows enthalten.<br />

Diese Unterscheidung wurde in unserer Arbeit erstmals für eine e-Learning-Site konzipiert. Diese Site erlaubt<br />

eine Entfaltung einer Lerneinheit je nach Meta-<strong>Information</strong>, H<strong>and</strong>lungs-, Akteurs- und Datenkontexten sowie der<br />

H<strong>and</strong>lungsvorgeschichte. Damit kann ein Lernfeld als allgemeine Lerneinheit angesehen werden, bei der


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 396<br />

die Stammform als Ausdruck über Lernelementen gegeben ist,<br />

die durch Ableitungsregeln zu einem komplexen Lernmodul erweitert wird, so dass ein Lernender auch seine entsprechenden<br />

Lernelemente angeboten bekommt, und<br />

durch Flexion<br />

die Variantenvielfalt sowie die Ausnahmen auffaltbar sind. Flexionsregeln erlauben eine Erweiterung<br />

mit dem Akteurspr<strong>of</strong>il und -portfolio,<br />

mit dem Wiederholungspr<strong>of</strong>il,<br />

mit dem Zeitpr<strong>of</strong>il,<br />

mit dem deontischen Modus und<br />

mit den Aktionsformen und der H<strong>and</strong>lungsrichtung.<br />

Diese Erweiterung wurde bereits in einigen Arbeiten, die Workflow-Spezifikationen aus der Sicht der Praxis<br />

kritisierten, gefordert. Es wurde insbesondere beobachtet,<br />

daß ein Arbeitsablauf hoch-parallel ist,<br />

daß ein Arbeitsablauf eine Rückkopplung mit Wartezeiten erfordert und<br />

daß die Organisation der Arbeit <strong>of</strong>t fremdgesteuert ist.<br />

Wir verallgemeinern diese Formenlehre von H<strong>and</strong>lungssträngen und führen dazu allgemeine Workflow-Felder<br />

ein:<br />

Das Eröffnungsfeld ist gekennzeichnet durch<br />

die Darstellung des Kontextes, der bei Assoziation des Workflow-Feldes mit <strong>and</strong>eren Feldern den Kontext<br />

dieser Felder dominiert,<br />

die Darstellung der Akteure,<br />

die Darstellung der Situation und<br />

die Assoziation mit Sichtentypen sowohl für die Input- als auch die Retrieval- als auch die Outputdaten.<br />

Das Ausgangsfeld dient zur Meta-Spezifikation und erlaubt außerdem noch eine Einbettung der räumlichen und<br />

zeitlichen Rahmenbedingungen sowie auch der Motivation und der Ursachen.<br />

Das H<strong>and</strong>lungsschrittfeld wird spezifiziert durch<br />

die Angabe der Verbindungsparameter,<br />

die Angabe der Begleitelemente und Kontextbedingungen,<br />

der Rollen der Akteure und<br />

Sichtentypen.<br />

Das Übergabefeld erlaubt den Übergang von Objekten einer Sicht eines Akteurs auf Objekte einer Sicht eines<br />

<strong>and</strong>eren Akteurs. Zusätzlich kann der Kontext und auch der Vertrag des Überganges spezifiziert werden.<br />

Das Arbeitsfeld erlaubt die Bearbeitung von Daten über den Sichtentypen und deren Vers<strong>and</strong> an <strong>and</strong>ere Akteure<br />

bzw. deren Einbringen in das System.<br />

Neben diesen Basisfeldern können wir auch Konstruktionsfelder spezifizieren, mit denen Felder kombiniert werden<br />

können:<br />

Das Verzweigungsfeld unterstützt eine Verzweigung von Workflows in synchronisierte Workflows, die parallel<br />

unter Einhaltung der Synchronisationsbedingungen ablaufen können.<br />

Das Wiederholungsfeld stellt den Rahmen für eine wiederholte Ausführung eines Workflows.<br />

Das Bulk-Feld ist an Parameter gebunden, für die das Workflow-Feld insgesamt abgearbeitet wird.<br />

Wir haben diese Theorie der Workflow-Felder mit den Kompositionsoperationen für Workflows harmonisiert, damit<br />

wird eine entsprechende Entfaltung der komplexen Workflow-Felder vornehmen können.


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 397<br />

3.7.2 Generische Modellierung, generische und entfaltbare Workflows<br />

Combining the Abstraction Layer Model with Chomsky’s Government <strong>and</strong> Binding Theory.<br />

Noam Chomsky’s GB theory <strong>of</strong> government <strong>and</strong> binding [Cho82] is a linguistic theory <strong>of</strong> syntax that continues on<br />

from his earlier transformational grammar. GB tries to explain a universal grammar theory (UG), which describes all<br />

languages through principles <strong>and</strong> parameters. Chomsky proposes <strong>and</strong> evaluates various general principles that limit<br />

<strong>and</strong> constrain the types <strong>of</strong> rules that are possible, <strong>and</strong> the ways they interact <strong>and</strong> function. In particular, he proposes<br />

that rule systems are in fact highly restricted in variety: only a finite number <strong>of</strong> grammars are attainable in principle,<br />

<strong>and</strong> these fall into a limited set <strong>of</strong> types.<br />

Another consequence <strong>of</strong> this shift in focus is the change <strong>of</strong> emphasis from derivations to representations. The<br />

major topic in the study <strong>of</strong> syntactic representations is the analysis <strong>of</strong> empty categories. General properties <strong>of</strong><br />

empty categories, the functional determination <strong>of</strong> empty categories, parasitic gaps, <strong>and</strong> binding theory <strong>and</strong> the typology<br />

<strong>of</strong> empty categories are substantial part <strong>of</strong> this theory. The major frame <strong>of</strong> the GB theory is the triple<br />

that expresses the structural relation between a “governor” (a head or maximal projection)<br />

<strong>and</strong> a governee.<br />

The GB theory has later been extended to a theory <strong>of</strong> thematic roles, aspect <strong>and</strong> themes, aspectual event classes,<br />

<strong>and</strong> the actor/undergoer division. We observe that this theory may be considered as a three-level specification:<br />

Principles are meta-specifications that support the description <strong>of</strong> intentions <strong>and</strong> goals <strong>of</strong> websites.<br />

Parameters support adaptation <strong>of</strong> website specification to the specific context parameters similarly to the context<br />

treatment in [Kas03].<br />

The layout <strong>and</strong> the playout <strong>of</strong> web pages depending on the current implementation, utilization, users <strong>and</strong> context.<br />

We may use the GB theory for the development <strong>of</strong> a generic workflow theory. The main construct <strong>of</strong> GBfunctionality<br />

specification is the generic function<br />

As mentioned above we distinguish three main constituents <strong>of</strong> a transformation:<br />

Enabler <strong>of</strong> a transformation: Agent <strong>of</strong> the transformation <strong>and</strong> instrument <strong>of</strong> a transformation.<br />

Transformee <strong>of</strong> a transformation: Affectee <strong>of</strong> a transformation, consumee <strong>of</strong> a transformation, <strong>and</strong> resultee <strong>of</strong> a<br />

transformation.<br />

Invocation <strong>of</strong> a transformation<br />

Object suites involved can be separated into:<br />

Involved object suite which is specialized to the pre-transformation object suite <strong>and</strong> the context object suite.<br />

Post-transformation object suite<br />

So, the generic function is given by<br />

f generic : P(Pre) × P(Context) → P(Post)<br />

Generic functions may be specialized. For instance, the function approve 4 specializes the function accept 5<br />

Other examples<br />

4 “Approve” means here either to have or express a favorable opinion <strong>of</strong> (couldn’t approve such conduct) or to accept as satisfactory or to<br />

give formal or <strong>of</strong>ficial sanction to ratify a proposal.<br />

5 “Accept” means either to receive willingly (to be able or designed to take or hold (something applied or added) ) or to give admittance<br />

or approval to, or to endure without protest or reaction (to regard as proper, normal, or inevitable; to recognize as true believe) or to make a<br />

favorable response to (to agree to undertake (a responsibility)) or to assume an obligation to pay (also: to take in payment), or to receive (a<br />

data suite) <strong>of</strong>ficially.


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 398<br />

Search: (kind, media type suite, answer concept)<br />

to look into or over carefully or thoroughly in an effort to find or discover something<br />

to examine in seeking something<br />

to look through or explore by inspecting possible places <strong>of</strong> concealment or investigating suspicious circumstances<br />

to read thoroughly ; check; especially : to examine a public record or register for information about<br />

to examine for articles concealed on the person<br />

to look at as if to discover or penetrate intention or nature<br />

to uncover, find, or come to know by inquiry or scrutiny- usually used with out intransitive senses<br />

to look or inquire carefully<br />

to make painstaking investigation or examination<br />

also seek as to make a search or inquiry or to be sought while lacking<br />

to resort to : go to<br />

to go in search <strong>of</strong> : look forb : to try to discover<br />

to ask for (as a request)<br />

to try to acquire or gain (aiming at)<br />

to make an attempt (as trial used with to <strong>and</strong> an infinitive<br />

Get concept: focused retrieval, one-view-selection, sub-view for display<br />

Is associated with: focused, one-view for selection, associated view for display, depending on cooperation<br />

Is aggregated <strong>of</strong>: focused, one view, aggregation view for display<br />

Is composed <strong>of</strong>: focused, two views, intermediate view between two boundary queries <strong>and</strong> a schema between<br />

them as the connecting view (R<strong>and</strong>wertaufgabe)<br />

Is specialization <strong>of</strong>:<br />

Is generalization <strong>of</strong>: extend to more general view<br />

Unfold: return all depending on browsing function, star view on view<br />

Unfocused but identifiable: browsing based on the identifier<br />

Unfocused <strong>and</strong> not identifiable: list or multilist <strong>of</strong> results<br />

Further reading: WI’05, 1630<br />

Browse: as a special consumption function<br />

to consume as browse (graze)<br />

to look over casually (skim) intransitive senses<br />

to feed on or as if on browse (graze)<br />

to skim through a book reading passages that catch the eye (to look over or through an aggregate <strong>of</strong> things<br />

casually especially in search <strong>of</strong> something <strong>of</strong> interest)<br />

Generische Workflows und entfaltbare Workflows.<br />

Workflow-Felder erlauben <strong>of</strong>t eine einfache Darstellung durch entsprechende Ausdrücke. Können Workflow-<br />

Felder durch eine Stammform spezifiziert werden, dann nennen wir diese Stammform generischer Workflow. Generische<br />

Workflows stellen ein Analogon zu generischen Operationen wie insert, delete und update dar, bei denen<br />

eine Instantiierung durch Angabe der Strukturen der Typen erfolgt, für deren Klassen sie angew<strong>and</strong>t werden. Ebenso<br />

wie generische Operationen können generische Workflows durch Instantiierung in konkrete Workflows überführt<br />

werden. Die Parameter können auch abhängig vonein<strong>and</strong>er sein. Wir unterscheiden hierbei die folgenden speziellen<br />

Typen:


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 399<br />

Entfaltbare Workflows sind generische Workflows mit einem generischem Laufzeit-Workflow, bei denen die instantiierbaren<br />

Parameter keine Nebenbedingungen auf <strong>and</strong>ere Parameter besitzen. Sie können zur Laufzeit voll<br />

entfaltet werden. Typische entfaltbare Workflows sind Workflows für Gruppenarbeitsplätze, die jedem Mitglied<br />

die gleiche Arbeitsplattform bieten.<br />

Parallelisierte Workflows sind generische Workflows, bei denen ein Zwischenst<strong>and</strong> und To-Do-Listen mitgeführt<br />

werden und zur Laufzeit mit entsprechenden Werten belegt werden können, die zu <strong>and</strong>eren Workflows Beziehungen<br />

besitzen z.B. durch Ressourcen-Sharing und gemeinsam mit diesen ausgeführt werden können.<br />

Multiple-choice Workflows sind generische Workflows, die Varianten für Rollen, für die freie Auswahl von Daten<br />

und die Bündelung mit <strong>and</strong>eren Workflows bereitstellen.<br />

Transaktions-basierte Meta-Workflows sind generische Workflows, deren Ausführungsmodell eine Ressourcenund<br />

Rollenverwaltung einschließt, die auch über Rücknahme- oder Kompensationsteilfelder verfügen und deshalb<br />

einer Transaktionssemantik unterliegen.<br />

Ein entfalteter Workflow ist ein vollständig instantiierter Workflow. Alle Parameter eines entfaltbaren Workflow<br />

sind mit entsprechenden Werten belegt. In Bild 16 wird die Beziehung zwischen einem generischen Workflow und<br />

einem entfalteten Workflow dargestellt. Ein entfalteter Workflow ist demzufolge ein Durchlauf oder eine spezielle<br />

Instanz eines generischen Workflows.<br />

✲<br />

✯<br />

✿<br />

3<br />

❥<br />

✲<br />

✿<br />

Abbildung 16: Generische und entfaltete Workflows<br />

3.7.3 Komposition von Workflow-Feldern zu Programmen<br />

Auf Seite ?? wurde bereits die Workflow-Maschine eingeführt. Oft erscheint es einfacher, eine algebraische Notation<br />

mit abgeleiteten Operationen zu verwenden. Obwohl die Workflow-Maschine zur Komposition der Workflow-Felder<br />

ausreicht, wollen wir im Abschluß noch eine algebraische Sprache anführen. Diese Sprache harmonisiert mit der<br />

Algebra, die wir SiteLang verwenden:<br />

Ein atomares Workflow-Programm ist ein Workflow-Feld.<br />

Einfache Steueranweisungen sind<br />

die sequentielle Ausführung ; , bei der Workflow-Programme sequentiell nachein<strong>and</strong>er ausgeführt werden,<br />

wobei die Semantik des ersten Programmes die Semantik des zweiten Programmes ergänzt und das leere<br />

Programm entsteht, wenn die Vereinigung der Semantik zum Widerspruch führt,<br />

parallele Verzweigung | ∧ | , bei der Programme parallel ausgeführt werden können und das terminiert, wenn<br />

beide Programme terminieren,<br />

exklusive Auswahl | ∨ | , bei der genau ein Programm zur Ausführung nichtdetermistisch ausgewählt werden<br />

kann,<br />

Synchronisation | sync | , die eine parallele Ausführung mit einer Synchronisationsbedingung zuläßt, und<br />

einfaches Mischen + , bei dem zwei alternative Programme verbunden werden können.<br />

Erweiterte Verzweigungs- und Synchronisationsanweisungen sind


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 400<br />

mehrfache Auswahl , bei der verschiedene Ausführungspfade gewählt werden können,<br />

mehrfaches Mischen , bei dem verschiedene Ausführungspfade gemischt werden können,<br />

Diskriminator, bei dem verschiedene Ausführungspfade ohne Synchronisation gemischt werden können, wobei<br />

Teilprogramme nur einmal ausgeführt werden,<br />

n-out-<strong>of</strong>-m.Verbund , bei dem verschiedene Ausführungspfade mit partieller Synchronisation gemischt werden<br />

können, wobei Teilprogramme nur einmal ausgeführt werden, und<br />

synchronisierter Verbund, bei dem verschiedene Ausführungspfade mit vollständiger Synchronisation gemischt<br />

werden können, wobei Teilprogramme nur einmal ausgeführt werden.<br />

Strukturelle Steueranweisungen sind<br />

Wiederholung ∗ , bei der Programme beliebig <strong>of</strong>t ausgeführt werden können und<br />

implizite Termination↓ , die eine Beendigung des Programmes hervorruft.<br />

Datenabhängige Steueranweisungen sind<br />

statische Steueranweisungen , deren Steuerung mit Bedingungen erfolgt, die bereits zur Compilezeit geprüft<br />

werden können,<br />

statische Steueranweisungen, deren Steuerung mit Bedingungen erfolgt, die erst zur Laufzeit geprüft werden<br />

können,<br />

Steueranweisungen mit A-priori-Laufzeitannahmen erlauben eine Voreinstellung durch Erzeugung von<br />

einer beschränkten Menge von Wiederholungen und<br />

Steueranweisungen mit Synchronisationsbedingen, bei denen beliebig viele Alternativen parallel ausgeführt<br />

werden können und eine Synchronisation bei Abschluß erfolgt.<br />

Zust<strong>and</strong>sbasierte Steueranweisungen sind<br />

die verzögerte Auswahl, bei der alle Alternativen ausgeführt werden und eine Auswahl der Alternative erst<br />

nach Ausführung erfolgt,<br />

die verbundene parallele Ausführung, bei der die Alternativen in zufälliger Reihenfolge sequentiell ausgeführt<br />

werden, und<br />

die meilenstein-basierte Steuerung, bei der eine Aktivität ausgeführt wird, bis ein Meilenstein erreicht ist.<br />

Abbruchanweisungen sind<br />

Abbruchaktion , bei der eine Aktion abgebrochen wird, und<br />

Fallabbruch , bei der ein Fall abgebrochen wird.<br />

Diese Algebra kann durch die Algebra der Workflow-Maschine ausgedrückt werden. Wir verstehen sie deshalb eher<br />

als “syntaktischen Zucker”, der die Spezifikation von Workflow-Programmen vereinfacht.<br />

Mit dieser Algebra führen wir eine rigide Klammerung ein. Damit sind nicht mehr alle Ausdrücke darstellbar<br />

die in der Workflow-Literatur breit diskutiert werden. Typischer Unsinn dieser Literatur ist die Ausein<strong>and</strong>ersetzung<br />

mit kondensierten und überlagerten Programmen wie in Bild 17 dargestellt. Da die Programmierung von einer klaren<br />

Semantik pr<strong>of</strong>itiert, erlauben wir diese Art von Konfusion nicht bei der Spezifikation.<br />

Dieses Programm vermischt Ausführung, Sequentialität und Nebenbedingungen zur Entscheidung. Die Alternativen<br />

sind vereinfachbar, wenn sicher ist, daß z.B. WF 2 vor WF 1 terminiert und mit den Resultaten von WF 1<br />

übereinstimmt, dann kann WF 5 ohne Berücksichtigung von WF 2 nur auf WF 1 aufbauen.<br />

Das Programm in Bild 17 besitzt gleichzeitig auch die klassische AND-OR-Falle. Analog kann auch die OR-<br />

AND-Falle spezifiziert werden. Beide “Fallen” sind in Bild 18 illustriert.


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 401<br />

❄<br />

WF 1<br />

❄<br />

WF 2<br />

❄<br />

WF 3<br />

❄<br />

WF 4<br />

❘<br />

❄<br />

WF 5<br />

∨<br />

❄<br />

✠<br />

❄ ∧<br />

❄☛<br />

❯<br />

∧<br />

☛<br />

❄ ∧<br />

❄ ✙<br />

❘<br />

∨<br />

✌<br />

❄<br />

❄<br />

Abbildung 17: Ein überlagertes und verwirrendes Workflow-Programm<br />

WF 1<br />

✯<br />

WF 3<br />

WF 3<br />

✯<br />

∨ ∧ WF 4 WF 1 ∧<br />

❥<br />

❥ WF 2<br />

✯<br />

❥ WF 2<br />

❥<br />

∨<br />

✯<br />

WF 4<br />

Abbildung 18: Ein OR-AND- und ein AND-OR-Workflow-Programm<br />

Diese Fallen sind relativ leicht aufzulösen, wenn man die Resultatssemantik betrachtet. In diesem Falle sind beide<br />

Programme durch AND-AND-Programme repräsentiert. Betrachtet man dagegen die Ausführungssemantik, dann<br />

klaffen die beiden Programme ausein<strong>and</strong>er.<br />

Noch schwieriger sind Workflow-Semantiken, bei denen eine Synchronisation sowohl am Ende als auch zu Beginn<br />

einer Verzweigung erfolgen kann. In diesem Fall erhält auch die Verzweigung eine <strong>and</strong>ere Semantik.<br />

Aus diesen Gründen bevorzugen wir die etwas rigidere Semantik der Workflow-Maschine mit der Semantik<br />

der abstract state machine. Sie hat zugleich auch den Vorteil, eine Verfeinerung zuzulassen und auch Konflikte auf<br />

Datenebene durch Zurücknahme auflösen zu können.<br />

3.7.4 Unterstützung von Werteerfassung, - speicherung, -modifikation: Beispiel Beobachtungen<br />

Observations are typically also made in a process. They cause additional observations. So, the observation process is<br />

typically a complex process that can be triggered by the concepts at the knowledge level. We also use therefore the<br />

knowledge level for the creation <strong>of</strong> control. Figure 19 visualises a simple generated business process for observations.<br />

This results in the classical observation cycle displayed in Figure 21.<br />

If we use associated functions then the picture becomes more complex. Then the recursion is controlled by<br />

the associated concepts for observations. If we distinguish between projection, hypotheses <strong>and</strong> active observations<br />

then the process become split into the general observation cycle displayed in Figure 21 <strong>and</strong> into additional parallel<br />

processes:<br />

a process that generates the proposed interventions <strong>and</strong> enforces tracking for those interventions (projection)<br />

a process that tries to find the contradicting observations <strong>and</strong> that rejects those observations that are not true<br />

(thus generating a resulting observation) (for active observations)<br />

<strong>and</strong> a skip process (for the case <strong>of</strong> hypotheses)


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 402<br />

❄<br />

observe<br />

analyse<br />

✲related concepts <strong>of</strong><br />

observation<br />

✲<br />

propose next<br />

observation<br />

✻<br />

observation<br />

control<br />

KB<br />

❘<br />

Abbildung 19: Unfolding business processes conducted from the knowledge level<br />

✻<br />

✲<br />

Business<br />

underst<strong>and</strong>ing<br />

✛<br />

✲<br />

Data<br />

underst<strong>and</strong>ing<br />

Knowledge<br />

discovery<br />

evolution<br />

cycle<br />

✻<br />

Evaluation<br />

Deployment<br />

✯<br />

✛<br />

❄<br />

Data<br />

preparation<br />

✻<br />

❄<br />

Modeling<br />

✛<br />

Abbildung 20: The observation knowledge discovery cycle<br />


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 403<br />

We notice that measurements are typically not one-dimensional but many-dimensional depending on the properties<br />

<strong>of</strong> things under observation. Therefore, we must support the many-dimensionality by Tilak 6 or Kiviat diagrams.<br />

✻<br />

Supplier<br />

■<br />

Price<br />

Product<br />

✠<br />

Focus<br />

event<br />

✒<br />

Customer<br />

Region<br />

❘<br />

Abbildung 21: Tilak diagrams <strong>and</strong> Kiviat graphs<br />

Depending on the schema layering we may directly extract those business processes that nicely support the schema<br />

without requiring additional integrity constraint maintenance.<br />

✲<br />

find<br />

arguments<br />

✲<br />

evaluate<br />

by formula<br />

✲ instantiate<br />

new<br />

measurement<br />

✲<br />

Abbildung 22: Measurement process<br />

Each <strong>of</strong> the activities uses specific data. For instance, the find arguments activity is based on the detection <strong>of</strong> the<br />

type <strong>of</strong> the phenomenon, the type <strong>of</strong> the state, the objects under consideration. The final event results in an integration<br />

<strong>of</strong> the measurement into the database, i.e. integration <strong>of</strong> the list <strong>of</strong> measurements, protocols etc. Measurements may be<br />

done in parallel. So we enhance the measurement activity either by parallel sub-processes (Figure 23) or by multiple<br />

instance activities.<br />

❃<br />

✲ ∧<br />

7<br />

find<br />

arguments<br />

find<br />

arguments<br />

✲<br />

✲<br />

evaluate<br />

by formula<br />

evaluate<br />

by formula<br />

✲ instantiate<br />

new<br />

measurement<br />

✲ instantiate<br />

new<br />

measurement<br />

7<br />

compare<br />

∧<br />

❃<br />

✲<br />

Abbildung 23: Measurement process<br />

The schema in Figure ?? can be shuffled with a schema that represents the different facets <strong>of</strong> dimensions:<br />

6 Tilak diagrams are useful if the number <strong>of</strong> dimensions is not higher than 6.


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 404<br />

combinations <strong>of</strong> dimensions are typically complex data types;<br />

causal dimensions represent causal relationships;<br />

comparison dimensions are used for comparing dimensional results with others.<br />

In this case we use the model-view-control pattern for extraction <strong>of</strong> the applicable kind <strong>of</strong> dimension.<br />

The same separation <strong>of</strong> concern might also be applied to methods <strong>of</strong> measurement:<br />

evaluated measurement protocol are based on the evaluation through formulas;<br />

source measurement protocol directly result in quantities or qualities.


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 405<br />

3.8 Schrittweise Modellierung der Funktionalität<br />

siehe DBSII.4


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 406<br />

3.9 Theoretische Grundlagen<br />

3.9.1 Semantik von Transaktionen<br />

siehe Prinz/Thalheim<br />

Transactions are one <strong>of</strong> the fundamental frameworks in the information systems area. It is necessary to define the<br />

notion <strong>of</strong> “transaction” that is robust according to the following requirements:<br />

Logical semantics must coincide with operational semantics for transactions.<br />

Parallel execution <strong>of</strong> transactions must be definable inside the operational semantics used for transactions.<br />

One refinement <strong>of</strong> the transaction model is the implementation <strong>of</strong> transaction execution by a DBMS.<br />

Arbitrary order <strong>of</strong> execution: Transactions can be executed in any order as long as they are not competing for<br />

resources.<br />

Rigid punch: Transaction execution leaves traces in the database whenever the effect <strong>of</strong> the transaction does<br />

not contradict the database.<br />

3.9.2 Variety <strong>of</strong> Definitions<br />

“Definitions are a matter <strong>of</strong> luck” is a humorous statement <strong>of</strong>ten made by A.N. Kolmogor<strong>of</strong>f <strong>and</strong> H. Thiele. The<br />

transaction definition made in a variety <strong>of</strong> books <strong>and</strong> papers seems to be a good example <strong>of</strong> this claim:<br />

TA as obligation [Emb98]: “A transaction is a program unit that accesses the database; it retrieves <strong>and</strong> may update<br />

data. A database system has the responsibility <strong>of</strong> executing a transaction so that it is both atomic <strong>and</strong> correct.<br />

... A transaction is a program unit that preserves correctness <strong>and</strong> atomicity.”<br />

TA as an agent [GMUW00]: “A transaction, like any program, executes a number <strong>of</strong> steps in sequence; <strong>of</strong>ten several<br />

<strong>of</strong> these steps will modify the database. Each transaction has a state, which represents what has happened<br />

so far in the transaction. The state includes the current place in the transaction’s code being executed <strong>and</strong> the<br />

values <strong>of</strong> any local variables <strong>of</strong> the transaction that will be needed later on.”<br />

TA as special program [Cod91]: “A transaction is a collection <strong>of</strong> activities involving changes to the database, all<br />

<strong>of</strong> which must be executed successfully if the changes are to be committed to the database, <strong>and</strong> none <strong>of</strong> which<br />

may be committed if any one or more <strong>of</strong> the activities fail. Normally, such a collection <strong>of</strong> activities is represented<br />

by a sequence <strong>of</strong> relational comm<strong>and</strong>s. The beginning <strong>of</strong> the sequence is signaled by a comm<strong>and</strong> such as BEGIN<br />

or BEGIN TRANSACTION. Its termination is signaled by a comm<strong>and</strong> such as END or COMMIT - or, if it is<br />

necessary to abort the transaction, ABORT.”<br />

Two views on TA’s [HK97]: “An end user communicates with a database through a mechanism called a transaction.<br />

A transaction can be defined from the user viewpoint <strong>and</strong> from the system viewpoint. The end user (the<br />

operator, the system administrator, etc.) sees a transaction as a request/reply unit expressed in the form <strong>of</strong> a<br />

source program. The system sees a transaction as a sequence <strong>of</strong> operations (reads, writes, etc.) on the data<br />

elements. The user conveys a change to the DBMS via a transaction <strong>and</strong> awaits a reply from the system. The<br />

DBMS then implements the set <strong>of</strong> operations (defined in the transaction) on a subset <strong>of</strong> data elements by executing<br />

the transaction under a set <strong>of</strong> the changes through a “successful” execution <strong>of</strong> the transaction. The DBMS<br />

guarantees the incorporation <strong>of</strong> the changes through a “successful” execution <strong>of</strong> the transaction. We will refer<br />

to such execution <strong>of</strong> a transaction as “commit”.<br />

A transaction T must possess a set <strong>of</strong> well-defined properties to be able to correctly reflect in the database the<br />

changes to the part <strong>of</strong> the real world. In executing a transaction, the system guarantees that all the changes<br />

proposed in the transaction, not only a part <strong>of</strong> them, are incorporated correctly in the database. ”<br />

TA as concurrent operation [?]: “The execution <strong>of</strong> a program that accesses or changes the contents <strong>of</strong> the database<br />

is called a transaction. The transaction submitted by various users may execute concurrently <strong>and</strong> may access


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 407<br />

<strong>and</strong> update the same database records. If this concurrency is uncontrolled, it may lead to problems such as an<br />

inconsistent database.”<br />

TA as specific application programs [aBK02]: “ A transaction is a program that can perform the following functions:<br />

1. It can update a database to reflect the occurrence <strong>of</strong> a real-world event that effects the state <strong>of</strong> the enterprise<br />

the database is modeling. An example ...<br />

2. It can ensure that one or more real-world events occur. ...<br />

3. It can return information derived from the database. ”<br />

The situations <strong>of</strong> the variety becomes worse if in the same source a variety <strong>of</strong> definitions is used. Beside the definition<br />

<strong>of</strong> [HK97] in [KH97] another definition [HR97] is used which is repeated by most <strong>of</strong> the books in the database<br />

area [Vos91]:<br />

The concept <strong>of</strong> a transaction, which includes all database interactions between BeginOfTransaction <strong>and</strong> EndOfTransaction<br />

in the preceding example, requires that all <strong>of</strong> its actions be executed indivisibility: Either all actions are<br />

properly reflected in the database or nothing has happened. No changes are reflected in the database if at any point<br />

in time before reaching the CT, the user enters the ERROR clause containing the RestoreTransaction. To achieve this<br />

kind <strong>of</strong> indivisibility, a transaction must have four properties:<br />

Atomicity. It must be <strong>of</strong> all-or-nothing type described before, <strong>and</strong> the user must, whatever happens, know which state<br />

he or she is in.<br />

Consistency. A transaction reaching its normal end (EOT, end <strong>of</strong> transaction), thereby committing its results, preserves<br />

the consistency <strong>of</strong> the database. In other words, each successful transaction by definition commits only<br />

legal results. This condition is necessary for the fourth property, durability.<br />

Isolation. Events within a transaction must be hidden from other transactions running concurrently. If this were not<br />

the case, a transaction could not be reset to its beginning for the reasons sketched earlier. The techniques that<br />

achieve isolation are known as synchronization, <strong>and</strong> since Gray et al. .. there have been numerous contributions<br />

to this topic <strong>of</strong> database research ..<br />

Durability. Once a transaction has been completed <strong>and</strong> has committed its results to the database, the system must<br />

guarantee that these results survive any subsequent malfunctions. Since there is no sphere <strong>of</strong> control constituting<br />

a set <strong>of</strong> transactions, the database management system (DBMS) has no control beyond transaction<br />

boundaries. Therefore, the user must guarantee that things the system says have happened have actually happened.<br />

Since, by definition, each transaction is correct, the effects <strong>of</strong> an inevitable incorrect transaction (i.e.,<br />

the transaction containing faulty data) can only be removed using countertransactions.<br />

Another requirement used is the serializability requirement:<br />

Running two transactions in parallel should have the same effect as running them one after the other.<br />

Transaction order is important for the effect. Consider one transaction changing the value for x to 2x <strong>and</strong> another<br />

transaction changing x to x − 2. Therefore, order <strong>of</strong> execution matters. Execution <strong>of</strong> the second after the first gives<br />

2x − 2. Execution <strong>of</strong> the first after the second gives 2x − 4. Therefore, serializability means that running a number <strong>of</strong><br />

transactions in parallel should have the same effect as running them sequentially in a certain order.<br />

These definitions are taught in database courses. Therefore, the database community defined in brief that a transaction<br />

is nothing else as a sequence <strong>of</strong> database operations that preserve the ACID properties.<br />

3.9.3 State Models Used in Transaction Definitions<br />

There are very few papers <strong>and</strong> books proposing a state model <strong>of</strong> transaction execution. Let us summarize <strong>and</strong> extend<br />

the models proposed so far. We notice that the description below is not explicitly proposed in the literature but can be<br />

extracted on the basis <strong>of</strong> the intentional, narrative descriptions.


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 408<br />

State model: The transaction engine has five states [GR94]:<br />

BeginOfTransaction (BOT): The transactions marked by ‘not finalized’ are in the BOT state <strong>and</strong> wait for execution.<br />

Run: The transaction engine runs the transaction <strong>and</strong> executes read, write <strong>and</strong> compute statements.<br />

Abort: The transaction is in an abort state. The resources occupied are freed. After completion the transaction<br />

returns to the BOT state.<br />

Commit: The transaction engine has completed the statements <strong>of</strong> the transaction <strong>and</strong> checks now the correctness<br />

<strong>of</strong> the integrity constraints. If the constraints are valid the next state is the EOT state. Otherwise, the<br />

engine directs the transaction to the abort state.<br />

EndOfTransaction (EOT): The transaction engine completes the execution <strong>of</strong> the transaction <strong>and</strong> marks the<br />

transaction by ‘finalized’.<br />

This state model is displayed in Figure 24.<br />

BOT ✛<br />

❥ Run<br />

✯<br />

Abort<br />

✻<br />

❥<br />

Commit<br />

✲<br />

EOT<br />

Abbildung 24: The States <strong>of</strong> a Transaction in the State Chart Approach<br />

The model is <strong>of</strong>ten used in the literature in the form displayed in Figure 25. However, transactions are rerun if<br />

they fail or abort.<br />

BOT<br />

❥<br />

Run<br />

✯<br />

Abort<br />

✻<br />

❥<br />

Commit<br />

✲<br />

EOT<br />

Abbildung 25: The States <strong>of</strong> a Transaction in the State Chart Approach Without Return to BOT<br />

Event model: The event model [?] is based on the events the recovery manager may use.<br />

BeginOfTransaction: The label BOT marks the beginning <strong>of</strong> a transaction.<br />

Read or Write: The transaction engine executes elementary operations for the given transaction.<br />

EndOfTransaction: The read/write sequence has ended. Now integrity is to be checked.<br />

CommitTransaction: The CommitTransaction event signals the successful completion <strong>of</strong> the transaction.<br />

Additionally, the recovery manager uses events:<br />

Rollback: The transaction has not been successful. Effects to the database must be undone.<br />

Redo: The redo event causes the manager to repeat the operation.<br />

Undo: The undo event forces the manager to repair the effects <strong>of</strong> applying a singleton operation to the database.<br />

The ovals used in Figure 26 show system activities, i.e., state transitions:<br />

Active: The transaction sequence is currently executed.


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 409<br />

Partially committed: The sequence has been executed <strong>and</strong> the concurrency controller checks whether there is<br />

an interference with other transactions. Furthermore, integrity constraints are checked by the transaction<br />

engine.<br />

Committed: The transaction has been successfully completed. The auxiliary logs are removed.<br />

Failed: The effects <strong>of</strong> the transaction on the database are compensated.<br />

Terminated: The transaction has been successfully completed or has failed. In the case that the transaction<br />

failed no effect on the database can be observed.<br />

The event model state transition diagram is pictured in Figure 26.<br />

Read<br />

Write<br />

BeginOf<br />

EndOf<br />

Transaction<br />

Transaction<br />

✲❄<br />

Active<br />

✲ Partially<br />

Committed<br />

Commit<br />

✲<br />

Committed<br />

❥<br />

❄<br />

❄<br />

Failed ✲ Terminated<br />

Abbildung 26: The Event Model <strong>of</strong> Transactions<br />

Statechart model: The transaction engine starts [WV02] at the Begin state. After calling the transaction the transaction<br />

state is changed to Active. The transaction is either running or blocked by the engine due to the database<br />

state or the state <strong>of</strong> other transactions. An active transaction is either committed or aborted.<br />

The statechart <strong>of</strong> transactions is displayed in Figure 27.<br />

Begin<br />

✲<br />

✍<br />

✻<br />

Restart<br />

Aborted ✛<br />

Reject<br />

❄<br />

Running<br />

✗<br />

Active<br />

Resume<br />

Block<br />

Blocked<br />

✻<br />

✲<br />

Commit<br />

Committed<br />

Abbildung 27: The Statechart Model <strong>of</strong> Transactions<br />

The three models use a transaction engine (or scheduler or recovery engine) for the explanation what is considered<br />

to be a transaction. It seems, however, that transactions should be defined without referring to an engine or an<br />

implementation.<br />

3.9.4 General Definition <strong>of</strong> Transactions<br />

Basic Definitions.<br />

Transactions are defined over databases schemata. Let (S, Σ) be a database schema <strong>and</strong> O BS the set <strong>of</strong> basic modification<br />

<strong>and</strong> retrieval operations defined on S.<br />

Typically, the elementary modification operation is the write operation defined on locations loc = (R, o) <strong>of</strong><br />

an object o in a class R C defined on R. The elementary retrieval operation is the read operation defined on locations<br />

(R, o) <strong>of</strong> an object o in a class R C defined on R.


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 410<br />

Basic modification operations are the insertion, deletion <strong>and</strong> the updating operations defined for an object o in<br />

a class R C defined on R or a group <strong>of</strong> objects. These operations are typically bound by an identification predicate<br />

for the object or the group <strong>of</strong> objects. In object-relational databases we assume that the identification predicate is<br />

value-based.<br />

Basic retrieval operations are the select expressions defined by structural recursion on the structuring S. Classical<br />

SQL expressions are expressions <strong>of</strong> the form<br />

map(filter(join(...), ψ), S)<br />

where the filter predicate is again an expression, the target structure for the mapping (or construction) is S.<br />

The static constraints in the schema (S, Σ) can be transformed to transition constraints [Tha00]. A transition<br />

constraint (Ψ pre , Ψ post ) defines the preconditions <strong>and</strong> postconditions for state transitions <strong>of</strong> databases defined over S.<br />

Given a transition τ converting the database S C 1<br />

to the database S C 2<br />

= τ(S C 1<br />

). The transition constraint (Ψ pre , Ψ post )<br />

is valid for the transition (S C 1<br />

, τ(S C 1<br />

)) if S C 1<br />

|= Ψ pre entails S C 2<br />

|= Ψ post .<br />

Static constraints Σ are therefore converted to a transition constraint (Σ, Σ).<br />

We follow the approach <strong>of</strong> [HK97] <strong>and</strong> distinguish between:<br />

Syntax <strong>of</strong> Transactions.<br />

Transactions are defined on the basis <strong>of</strong> elementary operations. Following [LL99], we define a transaction T over<br />

(S, Σ) as a finite sequence o 1 ; o 2 ; o 3 ; ...; o m <strong>of</strong> basic modification <strong>and</strong> retrieval operations over (S, Σ).<br />

Transactions may be applied to the database state S C sequentially <strong>and</strong> form a transition<br />

T(S C ) = o m (...(o 2 (o 1 (S C )))).<br />

Functional semantics <strong>of</strong> transactions.<br />

Logical semantics is based on the validity <strong>of</strong> transition constraints. The transaction is considered to be a singleton<br />

transition. Given a transaction T over (S, Σ) <strong>and</strong> a database S C .<br />

The result <strong>of</strong> applying the transaction T to S C is the database T(S C ).<br />

The effect <strong>of</strong> application <strong>of</strong> T to S C is defined as a transition constraint preserving transformation<br />

T(S C ) =<br />

{ T(S C ) if T(S C ) |= Σ<br />

S C if T(S C ) ̸|= Σ<br />

The transaction can be thus understood as an invariant state transition.<br />

Transactions T 1 <strong>and</strong> T 2 are competing if read(T 1 ) ∩ write(T 2 ) ≠ ∅ or read(T 2 ) ∩ write(T 1 ) ≠ ∅ or<br />

write(T 2 ) ∩ write(T 1 ) ≠ ∅ . The sets read(T i ) <strong>and</strong> write(T i ) consists <strong>of</strong> the locations <strong>of</strong> objects which are read or<br />

written by the transaction T i .<br />

Parallel execution <strong>of</strong> transactions T 1 ‖ T 2 is correct if either the transactions are not competing or the effect<br />

<strong>of</strong> T 1 ‖T 2 (S C ) is equivalent to T 1 (T 2 (S C )) or to T 2 (T 1 (S C )) for any database S C . If parallel execution is correct<br />

transaction execution can be scheduled in parallel.<br />

Logical semantics <strong>of</strong> transactions is defined by<br />

consistency (each transaction preserves transition constraints) <strong>and</strong><br />

parallelization (transaction can be executed in parallel).<br />

We observe that atomicity is not considered. Atomicity is declared by granularity <strong>of</strong> transitions. Furthermore, we are<br />

not concerned with durability. Durability is not a logical property but rather a property <strong>of</strong> storage.<br />

Operational semantics <strong>of</strong> transactions.<br />

Instead <strong>of</strong> using an abstract interpretation <strong>and</strong> a set <strong>of</strong> models, an abstract Moore-automaton M = (Z, f , I, Z final )<br />

is used with the set Z <strong>of</strong> states, its subset Z final <strong>of</strong> final states, the state transition function f , <strong>and</strong> the initialization<br />

function I which assigns a starting state I(p, d) = z p,d ∈ Z to each program p <strong>and</strong> each input d. The interpretation<br />

<strong>of</strong> the program p <strong>and</strong> the input d is the sequence <strong>of</strong> states z p,d = z 0 , z 1 , ..., z i , ... with z i = f (z i−1 ) for i ≥ 1. If the<br />

sequence is finite for n p,d <strong>and</strong> z np,d ∈ Z final then the program p is correct for d. If f (z i ) is undefined for some i <strong>and</strong>


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 411<br />

z i ∉ Z final then the program does not have a meaning for d. If the sequence is infinite with z i ∉ Z final for all i ∈ N<br />

then the program is not terminating for d.<br />

A variety <strong>of</strong> approaches has been developed for definition <strong>of</strong> operational semantics:<br />

Scheduling, access <strong>and</strong> recovery models: Transactions are executed in parallel <strong>and</strong> independent from each other.<br />

In order to support this requirement, access, scheduling <strong>and</strong> recovery models are developed [Bis95].<br />

Given a set <strong>of</strong> transactions T 1 , ..., T n . A schedule S(T 1 , ..., T n ) <strong>of</strong> T i = o i,1 , ..., o i,ni , 1 ≤ i ≤ n is assignment<br />

<strong>of</strong> moments S(o i,j ) <strong>of</strong> time to the operations <strong>of</strong> the transactions which preserves the order <strong>of</strong> operations within<br />

each transaction. Now an access plan can be specified for the objects to be used in transactions. An access plan<br />

is roughly called conflict-free if no transaction reads a value which is under change by another transaction.<br />

This approach has the advantage that the transaction machine is constructed. The disadvantage is the complexity<br />

<strong>of</strong> the constructive approach. Any change in transaction policy or constraint enforcement policy imposes a<br />

severe number <strong>of</strong> changes in the definitions.<br />

Abstract automata models are widely used for programming languages. Such abstract models have the advantage<br />

that refinement <strong>of</strong> requirements is reflected by refinement <strong>of</strong> abstract automata. For this reason, this approach<br />

is preferable if we are able to to define such abstract automata.<br />

Operational semantics for transactions must be based on parallel execution <strong>of</strong> processes. Therefore, we need a<br />

machine that allows to model parallel execution.<br />

3.9.5 Defining Operational Semantics Through Abstract State Machines (ASM)


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 412<br />

3.10 Eine BPMN-Studie<br />

Nach [KST09].<br />

Conference organisation is a typical example <strong>of</strong> processes which are highly distributed, involve a number <strong>of</strong> users<br />

with different roles, <strong>and</strong> are collaborating. These processes are either session-based or are relatively short-term processes.<br />

Collaboration is based on messages among the processes. Processes can be separated into independent ones.<br />

Therefore, conference paper submission <strong>and</strong> review systems are an ideal application for demonstration <strong>of</strong> workflow<br />

specification languages.<br />

Conference organisation also includes organisation <strong>of</strong> paper submission, <strong>of</strong> paper review, <strong>and</strong> conference assembly<br />

<strong>of</strong> proceedings. These tasks are typically supported by paper submission <strong>and</strong> review systems. WE may find several<br />

dozen <strong>of</strong> suvh systems. We base our case study on the knowledge about the systens BYU, EasyChair, OpenConf,<br />

MyReview <strong>and</strong> MuCoMS <strong>and</strong> mainly on the first one <strong>and</strong> the last one[Kir08]. The first system as been developed at<br />

Brighton Young University <strong>and</strong> has been extended in an international collaborations where the Cottbus team <strong>of</strong> the<br />

second author has been participating <strong>and</strong> was responsible for a part <strong>of</strong> the documentation including storyboarding.<br />

The system has been extensively used for more than three dozen conference series including ASM, ER, <strong>and</strong> FoIKS.<br />

Figure 28 provides a screenshot <strong>of</strong> this system.<br />

Abbildung 28: The entry page <strong>of</strong> the BYU paper submission <strong>and</strong> review system for PC members


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 413<br />

Requirements Survey<br />

Conference Paper Submission <strong>and</strong> Review <strong>Systems</strong> (PSR) are typically web-based content management systems that<br />

h<strong>and</strong>le complex workflows <strong>of</strong> academic conferences. PSR systems aim to minimise the workload <strong>of</strong> the Conference<br />

Committee, provide intelligent services to program committee members for their reviewing <strong>and</strong> other activities, <strong>and</strong><br />

provide basic services to authors <strong>of</strong> papers. Features like automatic paper assignment, event driven notification, multitrack<br />

management, user editable templates <strong>and</strong> mass emailing are provided to reduce the workload <strong>of</strong> managing the<br />

conference to the minimal amount. Members <strong>of</strong> the program committee act as reviewers, as observer <strong>of</strong> the work, as<br />

discusser <strong>of</strong> review results, <strong>and</strong> as resolver <strong>of</strong> conflicts among reviews. Authors are supported by features like initial<br />

paper or abstract submission, updating <strong>of</strong> information they provided, <strong>and</strong> observing the outcome <strong>of</strong> reviewing <strong>of</strong> their<br />

papers.<br />

Users <strong>of</strong> the PSR system act in different roles. Typical user roles are administrator <strong>of</strong> the system, program committee<br />

<strong>of</strong>ficers such as (co-)chairs or track chairs, authors <strong>of</strong> papers, program committee (PC) members <strong>and</strong> additional<br />

external reviewers. The separation <strong>of</strong> roles <strong>of</strong> users is based on the orthogonality <strong>of</strong> activities <strong>of</strong> different users <strong>of</strong> the<br />

system <strong>and</strong> the concurrent execution <strong>of</strong> tasks by users. The orthogonality is restricted by a number <strong>of</strong> exclusion rules,<br />

e.g. the program committee members cannot participate in the review <strong>of</strong> their own paper.<br />

The user in the general role <strong>of</strong> an unregistered user may obtain various public information at the conference<br />

website. This includes due dates, conference theme, tracks, topics, <strong>and</strong> accepted papers, etc. An unregistered user can<br />

follow the call for papers link from the conference website to access the PSR system, to register, <strong>and</strong> to become an<br />

author.<br />

These roles can either be integrated for a certain user or can be separated. We choose for the case study separation<br />

<strong>of</strong> roles <strong>of</strong> users.<br />

The PSR system is typically supporting a number <strong>of</strong> conferences at the same time. The installation <strong>of</strong> the system<br />

may either be a st<strong>and</strong>-alone that is used to support a singleton conferences or a conference application provider<br />

installation that supports a number <strong>of</strong> conferences at the same time. The conference management can be based on a<br />

number <strong>of</strong> phases.<br />

Phase 0 is used for the preparation <strong>of</strong> the infrastructure. The PSR system is installed <strong>and</strong> initialised. A number<br />

<strong>of</strong> data are gathered, e.g. program committee names <strong>and</strong> e-mail addresses, topics <strong>of</strong> interest, pr<strong>of</strong>ile <strong>and</strong> portfolio <strong>of</strong><br />

the conference, deadlines such as due-date <strong>of</strong> abstracts <strong>and</strong> initial <strong>and</strong> final paper, PC meeting, notification data. The<br />

system installation results in generation <strong>of</strong> accounts <strong>and</strong> passwords <strong>and</strong> the notification <strong>of</strong> all involved people about<br />

their rights <strong>and</strong> obligations. Phase I involves PC members after notification <strong>of</strong> their user names <strong>and</strong> passwords. PC<br />

members log on <strong>and</strong> edit their pr<strong>of</strong>ile, <strong>and</strong> choose their own password. Phase II is devoted to paper submission <strong>and</strong><br />

reviewing. Phase III is typically h<strong>and</strong>ling the post-PC organization. Sub-phases may partially run in parallel. Some<br />

sub-phases require however the completion <strong>of</strong> others. For instance, reviewing is based on assignment. Assignment is<br />

typically based on completion <strong>of</strong> the bidding phase <strong>and</strong> does not require that all PC members have made their bids.<br />

We shall concentrate for this case study on phase II. The phase <strong>of</strong> paper submission <strong>and</strong> reviewing uses a number<br />

<strong>of</strong> sub-phases that can be modelled by separate BPMN diagrams. Typical BPMN processes at this phase are the<br />

following ones:<br />

1. Open system for abstract <strong>and</strong> paper submission;<br />

2. Ask PC to indicate their interest levels <strong>and</strong> conflicts <strong>of</strong> interest;<br />

3. Email confirmation notice or reminder to authors <strong>of</strong> submitted abstracts;<br />

4. Close paper submissions, remove papers with abstract but no paper body;<br />

5. Email confirmation to authors;<br />

6. Double-check conflict-<strong>of</strong>-interest settings - enter any conflicts you find that aren’t already listed;<br />

7. Close interest-setting ability;<br />

8. Assign reviewers to papers;<br />

9. Email assignment notification to PC members;<br />

10. Each week, send review status report;<br />

11. Monitor review status;<br />

12. Open anonymous review report capability;


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 414<br />

13. Close review revision capability <strong>and</strong> hold the program committee meeting;<br />

14. Accept papers, notify authors.<br />

Basic Workflows <strong>of</strong> Program Committee Members<br />

PC members are responsible for writing reviews to papers that they are assigned to. Before paper assignment, PC<br />

Members can to go through a bidding process where they specify expertise in topics <strong>and</strong> interest in papers. After<br />

review submission, PC members may participate in group <strong>and</strong> global discussions where reviews from different<br />

members do not agree. Conflicts among reviews can be resolved by a PC members who acts as an arbiter.<br />

PC members can invite external reviewers <strong>and</strong> delegate papers to them. The delegation process may result in<br />

new responsibilities <strong>and</strong> rights for other users. Typically the external referee act on their inviters’ behalf in the paper<br />

review process. External reviewers can participate in group discussions. This diagram represents the workflows that<br />

are used within the BYU <strong>and</strong> the OpenConf PSR systems.<br />

The diagram in Figure 30 displays more details for the reviewing activity. The reviewer must provide a rating <strong>and</strong><br />

his/her level <strong>of</strong> expertise for each paper. The review should contain a detailed opinion about the paper. Reviewers<br />

typically decide whether all or some sections <strong>of</strong> the review template are going to be filled. These sections can also be<br />

selected more than once. Finally the reviewer may decide whether the review contains also information not shown to<br />

the authors. After completion <strong>of</strong> the review the PC member may decide whether or not an email copy is wanted <strong>and</strong><br />

whether or not the review is completed <strong>and</strong> thus deleted from the tasks agenda <strong>of</strong> the reviewer. Finally the review is<br />

completed.<br />

PC members are typically also supported by context-sensitive help features. The reviewer may obtain general<br />

conference information, may survey the assignments made to him, <strong>and</strong> may get help during the review process, e.g.<br />

for downloading papers <strong>and</strong> abstracts, updating <strong>and</strong> surveying own reviews, <strong>and</strong> for printing the work done so far.<br />

This help feature is <strong>of</strong>ten implemented as a sub-process that is enabled after the reviewer has logged into the system<br />

<strong>and</strong> closed after the reviewer has been logged out. The BYU PSR system uses for closing the process a message send<br />

from the main process to the help process. The OpenConf <strong>and</strong> the MuCoMS PSR systems use a separate help facility<br />

similar to the help feature for authors displayed in Figure 33.<br />

Basic Workflows <strong>of</strong> Authors<br />

An user becomes an author after being registered as an author. The registration includes an agreement on the rules<br />

for submission <strong>of</strong> papers, e.g. originality. After successful registration the author receives a message with the<br />

identification details.<br />

We may distinguish a number <strong>of</strong> phases for authors. Authors are considered as perspective authors, authors with<br />

submission, authors with reviews for their papers, <strong>and</strong> authors <strong>of</strong> accepted papers. Any user <strong>and</strong> therefore also authors<br />

become a potential attendee <strong>of</strong> the conference. The diagram in Figure 31 displays the general process for the authors.<br />

The PSR system is collaborating with the conference management system. An author can view all the papers <strong>of</strong> which<br />

he/she is a co-author. He/she can submit multiple papers <strong>and</strong> once after the submission, the author typically becomes<br />

the contact author <strong>of</strong> the paper. The update feature for submissions <strong>and</strong> receival <strong>of</strong> notifications is restricted to contact<br />

authors. The author may also extend the right for submission or notifications to the corresponding co-authors. Authors<br />

may also specify conflicts before paper assignment. Authors need to register with the system before they can make<br />

any submissions. The registration may be conference-specific or may be general. If they have already been registered<br />

in the MuCoMS or the EasyChair system for another conference then the account creation is skipped.<br />

The complex activity <strong>of</strong> initial submission <strong>of</strong> a paper is displayed in Figure 32. After opening the PSR system<br />

the author is requested to provide basic data <strong>and</strong> to agree with the compliance <strong>of</strong> the conference. The PSR system<br />

will generate a new paper id <strong>and</strong> provide login information to the author. The author can now open the submission<br />

page <strong>and</strong> submit paper data. The author may either provide data for the abstract or submit the paper or do both. If the<br />

paper has an incorrect format an exception is raised. This exception allows the author to resubmit the paper. Finally<br />

the author should provide some additional data on the paper <strong>and</strong> can view the current result. If the current result is<br />

not ok then the author may iterate with paper <strong>and</strong> abstract submission.


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 415<br />

The OpenConf, EasyChair <strong>and</strong> the MuCoMS PSR systems use the help facility in Figure 33. The general help<br />

facility allows the author to select which help is wanted at the moment: conference guidelines, submission help or<br />

account management. The submission help provides guidelines for submission <strong>and</strong> for the various submission steps.<br />

The author may initiate another sub-process for account management displayed in Figure 36.<br />

The sub-process depicted in Figure 34 defines a control flow for the submission <strong>of</strong> the final version <strong>of</strong> a paper.<br />

The author must upload the full version, sign the copyright <strong>and</strong> register to the conference.<br />

Processes may also be independent processes. The information <strong>and</strong> contact process in Figure 35 satisfy the information<br />

need <strong>of</strong> authors. Depending on whether the reviews are ready the author may either view the status or view<br />

reviews or both. The communication process involves a number <strong>of</strong> users, e.g. the PC (co-)chair or the reviewer. The<br />

reviewer may choose whether a direct response is used or the response to redirected to the PC co-chairs.<br />

Crosscutting Workflows<br />

The users <strong>of</strong> the PSR system may share common behaviour. A typical example <strong>of</strong> common processes is displayed in<br />

Figure 36. This process may be generalised to a general process for account management. The change <strong>of</strong> the pr<strong>of</strong>ile<br />

may include the change <strong>of</strong> users data such as general person data or contact data.<br />

Another cross-cutting sub-process is the information provision feature. Any user <strong>of</strong> the PSR system might be<br />

interested in the current status <strong>of</strong> conference work. For instance, authors can view the status by the process in Figure<br />

35. Other users such as the PC (co-)chairs are supported by processes that provide statistics about submission <strong>and</strong><br />

reviewing, by processes that survey the submission status, <strong>and</strong> by processes that survey activities <strong>of</strong> PC members.<br />

Any user <strong>of</strong> the PSR system can enhance his/her work space by a watch list for activities the user wants to be aware<br />

<strong>of</strong>. The watch list is compiled from the desires <strong>and</strong> from the rights the user has.<br />

PC members <strong>and</strong> the PC co-chairs may found their discussion groups on specific topics <strong>of</strong> interest. These discussion<br />

groups are based on processes for collaborative work such as publishing, chairing, organising, responding<br />

etc.<br />

The PSR system is typically enhanced by a web information system on the conference, e.g. for general conference<br />

information, on current calls for papers, on data, on travel, <strong>and</strong> on registration.<br />

Supporting Infrastructure<br />

The PSR system supports all PC processes <strong>and</strong> must be based on a database. The entity-relationship schema in Figure<br />

37 displays the structure <strong>of</strong> the supporting database system. This system provides a number <strong>of</strong> views for each <strong>of</strong> the<br />

phases. For instance, the sub-phases <strong>of</strong> phase II supporting the PC are: Edit the pr<strong>of</strong>ile by the PC member, browsing<br />

abstracts <strong>and</strong> making a bid for assignment <strong>of</strong> reviews, reviewing, viewing reviews made by other PC members on<br />

papers assigned to the PC member or on other papers, <strong>and</strong> session <strong>of</strong> the PC.<br />

The database schema is the basis for the specification <strong>of</strong> a number <strong>of</strong> views. Typical PC (co-)chair views are<br />

lists <strong>of</strong> all papers, abstracts, activities <strong>of</strong> authors <strong>and</strong> PC members. There are special views for paper assignment,<br />

for de-block <strong>of</strong> data, <strong>and</strong> for stages <strong>of</strong> PC decisions. The PC member can see abstracts <strong>of</strong> submitted papers before<br />

assignments, own reviews during the reviewing sub-phase, concurrent reviews <strong>and</strong> conflicts with concurrent reviews<br />

or discrepancies before PC session <strong>and</strong> after completing all reviews assigned to this PC member, <strong>and</strong> anonymous<br />

survey reviews during PC session. These views are the basis for tasks the PC member may perform.<br />

Authors enter the system through the personal author login. They may provide <strong>and</strong> update their own data. They<br />

may submit an abstract or the paper before the deadline. They may obtain anonymous reviews <strong>and</strong> may submit the<br />

final version after the PC decisions have been made.<br />

The administrator uses a number <strong>of</strong> admin tools <strong>and</strong> has direct direct access to some data or encrypted access to<br />

other data. Adminstration tools provide a service for maintenance <strong>of</strong> s<strong>of</strong>tware code, <strong>of</strong> the database, <strong>and</strong> for password<br />

update.


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 416<br />

Examples for the main text<br />

Example 1 (OR gateways: OR-merge <strong>and</strong> -decision) The BPMN diagram in Figure 29 allows a reviewer to select<br />

a number <strong>of</strong> options for the work. For instance, a PC member may update his pr<strong>of</strong>ile under recommendation <strong>of</strong> the<br />

guidelines <strong>and</strong> may notify the conference <strong>of</strong>ficers about the changes. At the same time he may download a paper<br />

<strong>and</strong> survey the abstract. The session is completed after all selections have been completed. The diagram in Figure 30<br />

allows that reviewers choose whether they want provide additional information to the PC, whether there are proposals<br />

for assignment <strong>of</strong> the paper to sessions, <strong>and</strong> whether additional reviewers have been supporting the review. The PC<br />

member may also decide that the current review is already in its final stage <strong>and</strong> whether an email copy <strong>of</strong> the review is<br />

requested. The OR gateway in Figure 35 has an enabled gate for viewing reviews only after the review <strong>and</strong> discussion<br />

processes have been completed.<br />

Example 2 (Exclusive gateways: Exclusive decision <strong>and</strong> merge) The BPMN workflow in Figure 31 also shows a<br />

case in which an exclusive decision does not have an associated merge gateway. Authors <strong>of</strong> accepted papers may not<br />

obtain their funding. Their papers are cancelled in this case.<br />

Example 3 (Complex gateways: Complex decision <strong>and</strong> merge) The diagram in Figure 30 uses a complex gateway<br />

for the selection <strong>of</strong> a reviewer which tasks are going to be completed for the current review. We may allow that some<br />

<strong>of</strong> these tasks are made several times.<br />

Example 4 (AND gateways: Parallel fork <strong>and</strong> join) The diagram in Figure 34 shows that for final paper submission<br />

the copyright agreement, the final version, <strong>and</strong> the registration must be submitted by one <strong>of</strong> the authors <strong>of</strong> an<br />

accepted paper.<br />

Example 5 (Start, end, <strong>and</strong> intermediate events) Start event initiate another process instance. They can be initiated<br />

by various kinds <strong>of</strong> events such as arriving messages, links etc. End event are used to complete a process. If the<br />

process is a sub-process <strong>of</strong> another process then the control flow is ruled back to the parent process, e.g. by a link<br />

in the diagram in Figure 33. The diagram in Figure 32 uses an intermediate event for exception control flow. If the<br />

paper submitted by the author does not have the correct format then an exception is raised. After resubmission <strong>of</strong> the<br />

paper the control flow is directed back to the normal submission process.<br />

Example 6 (Error, cancel, <strong>and</strong> compensation events) The BPMN diagram in Figure 32 uses an intermediate event<br />

that may cause specific h<strong>and</strong>ling for errors. Error treatment is typically a cross-cutting concern <strong>and</strong> may be added<br />

to any task, event or activity. In the diagram we use a well-defined error h<strong>and</strong>ling that results in a control flow that<br />

joins again the original workflow.<br />

Example 7 (Tasks <strong>and</strong> activities) Activities may be complex. The diagram in Figure 30 shows details <strong>of</strong> the complex<br />

online reviewing activities <strong>of</strong> PC members.<br />

Example 8 (Multi-instance loops) The diagram in Figure 30 allows a reviewer to select several reviews for papers<br />

assigned to the PC member at the same time. These reviews can be independently completed. The logout is only called<br />

after completing all reviews selected or after closing the review task without completion. The diagram in Figure 32<br />

uses an explicit loop for iteration if the initial paper submission is not satisfying.<br />

Example 9 (Sub-processes) The BPMN diagram in Figure 31 transfers control <strong>of</strong> author h<strong>and</strong>ling to the conference<br />

participants systems after an author <strong>of</strong> an accepted paper has obtained the funding <strong>and</strong> submitted the final version.<br />

These two systems may collaborate. For instance, some conferences require that at least one author per accepted<br />

paper is registered prior to collection <strong>of</strong> the proceedings.<br />

Activities can rather be complex sub-processes. The diagram in Figure 34 displays the activities <strong>of</strong><br />

Example 10 (Loops) Loops may be explicit or element <strong>of</strong> activities. The diagram in Figure 31 uses an explicit loop<br />

for the reminder <strong>of</strong> people who might be interested in a conference. The reviewing activity in Figure 29 is can be split<br />

into a number <strong>of</strong> parallel reviewing sub-activities that can be made in parallel.


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 417<br />

Example 11 (Messages) The PSR system must support a message exchange among multiple processes. These messages<br />

may start a new process instance <strong>and</strong> may support work <strong>of</strong> the committee, <strong>of</strong> authors, or <strong>of</strong> the administration.<br />

Typical messages are the following:<br />

Notify program committee <strong>of</strong> the Web site, their user ID, <strong>and</strong> their password to log on.<br />

Notify authors that their paper has been received <strong>and</strong> is being reviewed.<br />

Notify program committee <strong>of</strong> review assignments.<br />

Notify program committee <strong>of</strong> discrepancies between their review <strong>and</strong> those <strong>of</strong> other referees.<br />

Remind program committee <strong>of</strong> reviews that still need to be submitted.<br />

Thank program committee for their reviews.<br />

Notify authors <strong>of</strong> accepted papers, send them their anonymous referee comments.<br />

Notify authors <strong>of</strong> rejected papers, send them their anonymous referee comments.<br />

Remind authors <strong>of</strong> camera-ready paper due date.<br />

These messages are typically send tasks in the source process <strong>and</strong> receive tasks or start or intermediate events in the<br />

target process.<br />

The BPMN diagram in Figure 35 explicitly displays some <strong>of</strong> the messages <strong>of</strong> authors. These messages trigger<br />

other processes <strong>of</strong> other users.<br />

Example 12 (Pools <strong>and</strong> message exchange) The diagram in Figure 35 shows how processes may recursively trigger<br />

other processes. An author may respond to the reviews after those are made available. This response can be directed<br />

to the reviewer who may ask the PC co-chair to interact. The direct response may also be possible after applying<br />

anonymisation procedures.<br />

Example 13 (Swimlanes) The diagram in Figure 31 uses swimlanes for the separation <strong>of</strong> the different phases <strong>of</strong><br />

processes <strong>of</strong> authors.<br />

3.10.1 The MuCoMS Database Structure<br />

c○Markus Kirchberg. The database structure <strong>of</strong> the Multiple Conference Management System MuCoMS. Singapore<br />

2008. [Kir08]


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 418<br />

3.10.2 MuCoMS in Service<br />

c○Markus Kirchberg. The database structure <strong>of</strong> the Multiple Conference Management System MuCoMS. Singapore<br />

2008. [Kir08]


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 419


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 420<br />

3.11 Beispiele von Funktionen<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 421<br />

3.12 Übung:<br />

- EER-Modelle<br />

- Prozesse<br />

- Algebra<br />

- dynam. Integritätsb.<br />

Further reading: Wieringa: Part II, IV<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 422<br />

Literatur<br />

[aBK02]<br />

[Bis95]<br />

[BST09]<br />

[BT08a]<br />

[BT08b]<br />

[Cho82]<br />

[Cod91]<br />

[DT04]<br />

[Emb98]<br />

P. M. Lewis <strong>and</strong>A. Bernstein <strong>and</strong> M. Kifer. Databases <strong>and</strong> transaction processing: An applicationoriented<br />

approach. Addison-Wesley, 2002.<br />

J. Biskup. Foundations <strong>of</strong> information systems. Vieweg, Wiesbaden, 1995. In German.<br />

E. Börger, O. Sörensen, <strong>and</strong> B. Thalheim. On defining the behavior <strong>of</strong> or-joins in business process<br />

models. Journal <strong>of</strong> Universal Computer Science, 15(1):3–32, 2009.<br />

E. Börger <strong>and</strong> B. Thalheim. A method for verifiable <strong>and</strong> validatable business process modeling. In<br />

S<strong>of</strong>tware Engineering, volume 5316 <strong>of</strong> Lecture Notes in Computer Science, pages 59 – 115. Springer,<br />

2008.<br />

E. Börger <strong>and</strong> B. Thalheim. Modeling workflows, interaction patterns, web services <strong>and</strong> business processes:<br />

The ASM-based approach. In ABZ, volume 5238 <strong>of</strong> Lecture Notes in Computer Science, pages<br />

24–38. Springer, 2008.<br />

Noam Chomsky. Some Concepts <strong>and</strong> Consequences <strong>of</strong> the Theory <strong>of</strong> Government <strong>and</strong> Binding. Linguistic<br />

Inquiry Monographs. MIT Press, 1982.<br />

E. F. Codd. The relational model for database management (version 2). Addison-Wesley, Reading,<br />

MA, 1991.<br />

A. Düsterhöft <strong>and</strong> B. Thalheim. Linguistic based search facilities in snowflake-like database schemes.<br />

Data & Knowledge Engineering, 48(1):177–198, 2004.<br />

D. W. Embley. Object database development: Concepts <strong>and</strong> principles. Addison-Wesley, Reading,<br />

Mass., 1998.<br />

[GMUW00] H. Garcia-Molina, J. D. Ullman, <strong>and</strong> J. Widom. Database systems implementation. Prentice-Hall, 2000.<br />

[GR94]<br />

[HK97]<br />

[HR97]<br />

[Kas03]<br />

J. Gray <strong>and</strong> A. Reuter. Transaction processing: Concepts <strong>and</strong> techniques. Morgan Kaufmann, San<br />

Mateo, 1994.<br />

M. Hsu <strong>and</strong> V. Kumar. Introduction to database recovery. In V. Kumar <strong>and</strong> M. Hsu, editors, Recovery<br />

mechanisms in database systems, pages 6–15. Prentice-Hall, 1997.<br />

T. Härder <strong>and</strong> A. Reuter. Principles <strong>of</strong> transaction-oriented database recovery. In V. Kumar <strong>and</strong> M. Hsu,<br />

editors, Recovery mechanisms in database systems, pages 16–55. Prentice-Hall, 1997.<br />

R. Kaschek. Konzeptionelle Modellierung. PhD thesis, University Klagenfurt, 2003. Habilitationsschrift.<br />

[KH97] V. Kumar <strong>and</strong> M. Hsu, editors. Recovery mechanisms in database systems. Prentice-Hall, 1997.<br />

[Kir08]<br />

M. Kirchberg. Preliminary documentation for the mucoms cms. Private communication, January-March<br />

2008, 2008.<br />

[KST09] M. Kirchberg, O. Sörensen, <strong>and</strong> B. Thalheim. A BPMN case study: Paper review <strong>and</strong> submission<br />

system. In GI Jahrestagung, volume 154 <strong>of</strong> LNI, pages 4067–4081. GI, 2009.<br />

[Kun92]<br />

J. Kunze. Generating verb fields. In Proc. KONVENS, Informatik Aktuell, pages 268–277. Springer,<br />

1992. in German.<br />

[LL99] M. Levene <strong>and</strong> G. Loizou. A guided tour <strong>of</strong> relational databases <strong>and</strong> beyond. Springer, Berlin, 1999.<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 423<br />

[Pro72] V.J. Propp. Morphologie des Märchens. Carl Hanser Verlag, München, 1972.<br />

[ST07] K.-D. Schewe <strong>and</strong> B. Thalheim. Pragmatics <strong>of</strong> storyboarding for web information systems: Usage<br />

analysis. Int. Journal Web <strong>and</strong> Grid Services, 3(2):128–169, 2007.<br />

[SYea03] J.E. Safra, I. Yeshua, <strong>and</strong> et. al. Encyclopædia Britannica. Merriam-Webster, 2003.<br />

[Tha00]<br />

[Vos91]<br />

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

2000.<br />

G. Vossen. Data Models, database languages <strong>and</strong> database management systems. Addison-Wesley,<br />

Wokingham, Engl<strong>and</strong>, 1991.<br />

[Wes07] M. Weske. Business Process Management: Concept, language, architecture. Springer, 2007.<br />

[WV02]<br />

G. Weikum <strong>and</strong> G. Vossen. Transactional information systems: Theory, algorithms, <strong>and</strong> the practice <strong>of</strong><br />

concurrency control <strong>and</strong> recovery. Morgan-Kaufman, 2002.<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 424<br />

Abbildung 29: The general diagram for the session-based view <strong>of</strong> the processes for PC members (incomplete)<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 425<br />

Abbildung 30: The detailed diagram for the session-based view <strong>of</strong> processes for PC members<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 426<br />

Abbildung 31: The BPMN diagram with explicit representation <strong>of</strong> roles <strong>of</strong> authors<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 427<br />

Abbildung 32: The initial paper submission process with error h<strong>and</strong>ling for wrong paper format<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 428<br />

Abbildung 33: The help process for authors<br />

Abbildung 34: The sub-process for authors final paper submission<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 429<br />

Abbildung 35: The information <strong>and</strong> contact process <strong>of</strong> authors<br />

Abbildung 36: The account management subprocess for authors<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 3. Funktionalität von IS ab SS 2012 430<br />

PCPhases: CMEditPr<strong>of</strong>ile; CMBrowseAbstr; ReviewsDue; CMViewOther; Session<br />

AuPhases: ASubmAbstr; ANotifAbstr; ASubmPaper; ANotifPap; Decision; FinalPDue<br />

PCOrgPhases: AbstractCheck; PaperCheck; ReviewsContr; Assignment; #Reviews<br />

Rewriting<br />

Expertise<br />

Overall<br />

Originality<br />

Significance<br />

Quality<br />

Relevance<br />

Presentation<br />

Submitted<br />

Confid<br />

Review<br />

Name Type Fax<br />

MemberID<br />

✛<br />

Password<br />

Committee<br />

Email<br />

UserID<br />

Member<br />

Address<br />

Phone<br />

✛<br />

✻<br />

Rights<br />

▼<br />

Of<br />

Contributions<br />

✛<br />

Positive<br />

Negative<br />

Further<br />

Submitted<br />

ID<br />

AddReviewer<br />

for<br />

❄<br />

Assigned<br />

Review<br />

Member<br />

Interest<br />

Level<br />

Submitted<br />

Title<br />

Paper<br />

Body<br />

Body<br />

✲❄<br />

✲<br />

PaperID<br />

Paper<br />

Authors<br />

✻<br />

Paper<br />

Topic<br />

✲<br />

ID<br />

Email<br />

Abstract<br />

AcceptCode<br />

✛<br />

Password<br />

Submitted<br />

Template<br />

Email<br />

Template<br />

Paper<br />

Format<br />

Description<br />

Format<br />

Description<br />

Extension<br />

MimeType<br />

CatList<br />

VIEWS:<br />

EmailList (virt)<br />

AbstrNotif(mat)<br />

PaperNotif(mat) ...<br />

❄<br />

Paper<br />

Category<br />

Type<br />

❄<br />

Member<br />

Type<br />

Description<br />

Member<br />

Topic<br />

✲<br />

❄<br />

Research<br />

Topic<br />

Topic<br />

Description<br />

Category<br />

Description<br />

Abbildung 37: The database schema <strong>of</strong> the PSR system<br />

Mod IS IS ADD Web IS


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

4. Sichten und Medientypen 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 />

4 Sichten und Medientypen<br />

Zwei Seelen wohnen, ach! in meiner Brust.<br />

Die eine will sich von der <strong>and</strong>ern trennen;<br />

Die eine hält mit derber Liebeslust<br />

Sich an die Welt mit klammernden Organen;<br />

Die <strong>and</strong>re hebt gewaltsam sich von Dust<br />

Zu den Gefilden hoher Ahnen.<br />

Goethe, Faust, Erster Teil, Vor dem Thor, Faust<br />

4.1 Sichten als Hilfskonstruktion<br />

Die Sichtenspezifikation kann analog zur Spezifikation der Strukturierung vorgenommen werden. Sie basiert außerdem<br />

auf den <strong>Information</strong>en über die Dialoge. Wir unterscheiden drei Arten von Sichten:<br />

Arbeitssichten, mit denen eine Bearbeitung von Daten, das Retrieval von Daten und die Ein- und Ausgabe von Daten<br />

auf dem Datenbankschema aufsetzend ermöglicht wird,<br />

Sichten zur Interaktion von Systemen, die zur Unterstützung von verteilten, föderierten oder interoperablen Systemen<br />

erstellt werden, und<br />

Sicherungssichten, mit denen die Zugriffs- und Modifikationssicherung für die Datenbank erfolgen kann.<br />

Sicherungssichten werden während der Spezifikation von Sicherheitsanforderungen eingeführt und interessieren uns<br />

hier nicht vordergründig. DBMS-Interaktionssichten werden in der konzeptionellen und der Implementationsschicht<br />

auf der Grundlage von Verteilungskonzepten entwickelt. Sie werden dort mit betrachtet.<br />

Die Spezifikation der Sichten kann auch in die Spezifikation der Schemata mit eingebettet werden. Da für die<br />

Akteure Daten nur im Rahmen der Dialoge von Interesse sind und diese Dialoge auch spezifisch aufbereitete Daten<br />

erfordern, ist eine explizite Modellierung der Sichten angebracht.


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 432<br />

Wir wollen außerdem eine Spezifikation der Anwendung auf der Grundlage eines sichtenorientierten Zuganges<br />

unterstützen. Deshalb benötigen wir explizite Konzepte zur Darstellung des Zusammenhanges von Sichten. Dieses<br />

Konzept der Sichtenkooperation wird deshalb in diesem Abschnitt ebenfalls eingeführt. Der sichtenorientierte Entwurf<br />

konzentriert sich stärker auf die Spezifikation der Aspekte der Anwendung, die mehr den Anwender betreffen.<br />

Es wird angenommen, daß eine Integration der einzelnen Sichten - so wie dies für die Anwendung eigentlich der<br />

Fall ist - eine lösbare Aufgabe ist. Das steht im Widerspruch zu theoretischen Resultaten. Die Sichtenintegration<br />

ist eine algorithmisch unlösbare Aufgabe. Es existiert kein Algorithmus, der entscheidet, ob zwei Sichten integriert<br />

werden können. Das Sichtenintegrationsproblem ist auch nicht semientscheidbar, d.h. es existiert auch kein Algorithmus,<br />

der für Sichten, die integriert werden können, die integrierende Sicht berechnet. Aus diesen Resultaten kann<br />

man schließen, daß ein sichtenorientierter Entwurf nicht möglich ist. Wird aber eine konkrete Anwendung betrachtet,<br />

dann erscheint auch in vielen Fällen eine Kombinierbarkeit der unterschiedlichen Aspekte der Anwendung gegeben.<br />

Wir pflegen deshalb das Wissen um die Integration der Daten direkt im Sichtenintegrationsschema.<br />

Mod IS IS ADD Web IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 433<br />

4.1.1 Sichten in SQL<br />

Relationale Sicht wird definiert durch Relationenschema V der Sicht (meist wird außerdem angenommen Σ V = ∅)<br />

und einer Anfrage über einem relationalen Datenbankschema<br />

Relationale Sichtensuite wird definiert durch ein Datenbankschema mit relationalen Sichten<br />

Probleme:<br />

Modifikation der Grunddatenbank durch Sichten (Sichten-Update-Problem) [Bei Nichtidentifizierbarkeit von Objekten<br />

der Grunddatenbank durch eine Sicht, ist ein Modifikation der Datenbank verboten. Dieses Problem<br />

kann gelöst werden durch separate Modifikationssichten neben den Retrievalsichten, die durch Hilfssichten<br />

mitein<strong>and</strong>er und mit der Grunddatenbank gekoppelt werden.]<br />

Virtualisierung oder Materialisierung von Sichten ohne oder mit Kollaborationsvertrag<br />

Sichtendefinition in SQL über Anfragesprache<br />

als VIRTUELLE Tabelle<br />

CREATE VIEW SUPERSTUDIOSI (Name, Fach, Lehrer)<br />

AS SELECT x.Name, y.Kurs, z.Name<br />

FROM PERSON x, TEILNAHME y, PERSON z, STUDENT, PROFESSOR<br />

WHERE STUDENT.PNum = x.PNum AND y.SNum = STUDENT.SNum<br />

AND y.LesenderPNum = PROFESSOR.PNum AND PROFESSOR.PNum = z.PNum<br />

AND y.Note = 1.0<br />

GROUP BY x.Name<br />

DROP VIEW SUPERSTUDIOSI<br />

Vorsicht mit updates über Sichten<br />

siehe Vorlesung Datenbank-Programmierung<br />

Ableitbarkeit von Aspekten durch Sichten<br />

Unterstützung von Sichten Gegeben sei eine Sicht S V über V mit einer Menge von Integritätsbedingungen Σ V ,<br />

die in S V gelten sollen. Dann wird gefordert, daß diese Sicht berechnet werden kann.<br />

∀V ⊆ U(∧Σ V = Σ + | V )∃Q∀R t UnivRrel(R t [V ]) ⊆ Q(R)<br />

Sichere Unterstützung von Sichten wenn =<br />

Sichtenanfrage-Unterstützung ∀Q ∈ Query(V, R)∃P ∈ Query(U, R) : Q(V t ) = P (R t )<br />

Sichtenbeh<strong>and</strong>lung:<br />

Sichtenanfrage-Unterstützung gdw. Unterstützung von Sichten<br />

im positiven Fall sogar effizient<br />

sichere Unterstützung von Sichten gdw. ( ⋃ F i ) + ⊇ F und (U 1 , ..., U m ) ∈ Σ +


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 434<br />

4.1.2 Views in the Enhanced Entity-Relationship Models<br />

Classically, (simple) views are defined as singleton types which data is collected from the database by some query.<br />

create view NAME (PROJECTION VARIABLES) as<br />

select PROJECTION EXPRESSION<br />

from DATABASE SUB-SCHEMA<br />

where SELECTION CONDITION<br />

group by EXPRESSION FOR GROUPING<br />

having SELECTION AMONG GROUPS<br />

order by ORDER WITHIN THE VIEW;<br />

Since we may have decided to use the class-wise representation simple views are not the most appropriate structure<br />

for exchange specification. The EER schema allows to directly specify a view schema by<br />

• a schema V = {S 1 , ..., S m }, an auxiliary schema A <strong>and</strong><br />

• a query q : D × A → V defined on D <strong>and</strong> V.<br />

Given a database D C <strong>and</strong> the auxiliary database A C . The view is defined by q(D C × A C ).<br />

Additionally, views should support services. Views provide their own data <strong>and</strong> functionality. This object-orientation<br />

is a useful approach whenever data should be used without direct or remote connection to the database engine.<br />

We generalize the view schema by the frame:<br />

generate MAPPING : VARS → OUTPUT STRUCTURE<br />

from DATABASE TYPES<br />

where SELECTION CONDITION<br />

represent using GENERAL PRESENTATION STYLE<br />

& ABSTRACTION (GRANULARITY, MEASURE, PRECISION)<br />

& ORDERS WITHIN THE PRESENTATION & POINTS OF VIEW<br />

& HIERARCHICAL REPRESENTATIONS & SEPARATION<br />

browsing definition CONDITION & NAVIGATION<br />

functions SEARCH FUNCTIONS & EXPORT FUNCTIONS & INPUT FUNCTIONS<br />

& SESSION FUNCTIONS<br />

& MARKING FUNCTIONS<br />

The extension <strong>of</strong> views by functions seems to be superficial during database design. Since we extensively use<br />

views in distributed environments we save efforts <strong>of</strong> parallel <strong>and</strong> repetitive development due to the development <strong>of</strong><br />

the entire view suite instead <strong>of</strong> developing each view by its own.<br />

XML as the display medium<br />

XML specifications can be automatically generated out <strong>of</strong> this view<br />

Algebraic expressions for views<br />

Views for internet presentation as Read-Only-View<br />

Archive view<br />

Be careful: changing set <strong>of</strong> integrity constraints!<br />

Insert view for new course proposals: als Read-Write-View with identifiable sub-views <strong>and</strong> side conditions<br />

with optional <strong>and</strong> m<strong>and</strong>atory components<br />

Media object schema as containers based on views with container functionality <strong>and</strong> attached functions<br />

representation bound by order, adhesion, cohesion <strong>of</strong> types<br />

tailored by user pr<strong>of</strong>ile, user environment, history, channel capacity<br />

are associated with dialogue scenes<br />

Views may be used for distributed or collaborating databases. They can be enhanced by functions. Exchange frames<br />

are defined by<br />

• an exchange architecture usually provided a system architecture integrating the information systems through<br />

communication systems,<br />

• a collaboration style specifying the supporting programs, the style <strong>of</strong> cooperation <strong>and</strong> the coordination facilities,<br />

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

Mod IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 435<br />

required<br />

Course<br />

retrieve<br />

❑<br />

(1,1)<br />

❄<br />

Course<br />

retrieve, select, input<br />

❦<br />

Program<br />

retrieve, select<br />

+<br />

❦<br />

{}<br />

✛<br />

Description = “SS01/02”<br />

<br />

Proposal<br />

Semester<br />

retrieve<br />

✲<br />

✻<br />

Chair<br />

retrieve<br />

✻<br />

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

✲<br />

Person<br />

retrieve, select<br />

retrieve<br />

insertedBy<br />

✒ = “SecrKK”<br />

Teacher<br />

Responsible4Course = “β”<br />

proposed<br />

Wish<br />

Course<br />

input<br />

Time(Proposal,<br />

SideConditions)<br />

default = Pr<strong>of</strong>β<br />

ShortDescr = “DBIS”<br />

✲<br />

✯<br />

Room<br />

retrieve, select<br />

✶<br />

✰<br />

Kind<br />

retrieve, select<br />

Abbildung 1: HERM View: Insertion view for new course proposals<br />

• collaboration pattern specifying the data integrity responsibilities, the potential changes within one view <strong>and</strong><br />

the protocols for exchange <strong>of</strong> changes within one view.<br />

4.1.3 Advanced HERM Views <strong>and</strong> OLAP Cubes<br />

The extended entity-relationship model can be used to define an advanced data warehouse model. Classically, the<br />

data warehouse model is introduced in a intuitive form by declaring an association or relationship among components<br />

<strong>of</strong> the cube (called dimensions), by declaring attributes (called fact types) together with aggregation functions. Components<br />

may be hierarchically structured. In this case, the cube schema can be represented by a star schema. Components<br />

may be interrelated with each other. In this case the cube schema is represented by a snowflake schema.<br />

Star <strong>and</strong> snowflake schemata can be used for computing views on the schemata. View constructors are functions like<br />

drill-down, roll-up, slice, dice, <strong>and</strong> rotate. We demonstrate the power <strong>of</strong> the extended entity-relationship model by a<br />

novel, formal <strong>and</strong> compact definition <strong>of</strong> the OLAP cube schema <strong>and</strong> the corresponding operations.<br />

The data warehouse model is based on hierarchical data types. Given an extended base type B = (Dom(B), Op(B), P red<br />

we may define a number <strong>of</strong> equivalence relations eq on Dom(B). Each <strong>of</strong> these equivalence relations defines a partition<br />

Π eq <strong>of</strong> the domain into equivalence classes. These equivalence classes c may be named by n c . Let us denote<br />

named partitions by Π ∗ . The trivial named partition that only relates elements to themselves is denoted by ⊥ ∗ . We<br />

denote the named partition that consists <strong>of</strong> {Dom(B)} <strong>and</strong> a name by ⊤ ∗ .<br />

Equivalence relations <strong>and</strong> partitions may be ordered. The canonical order <strong>of</strong> partitions on DOM(B) relates two<br />

partitions Π ∗ , Π ′∗ . We define Π ∗ ≼ Π ′∗ iff for all (c, n c ) from Π ∗ there exists one <strong>and</strong> only one element (c ′ , n c ′) ∈ Π ′∗<br />

such that c ⊆ c ′ .<br />

We also may consider non-classical orderings such as the majority order ≼ choice<br />

m<br />

for all (c, n c ) from Π ∗ there exists one <strong>and</strong> only one element (c ′ , n c ′) ∈ Π ′∗ such that<br />

either |c ∩ c ′ | > max{|c ∩ c ′′ | | (c ′′ , n c ′′) ∈ Π ′∗ , c ′′ ≠ c ′ }<br />

or (c ′ , n c ′) ∈ Π ′∗ is determined by a (deterministic) choice operator among<br />

{c + ∈ Π ′∗ | |c ∩ c + | = max{|c ∩ c ′′ | | (c ′′ , n c ′′) ∈ Π ′∗ }}.<br />

that relates two named partitions iff<br />

If the last case does not appear then we omit the choice operator in ≼ choice<br />

m .<br />

The DateT ime type is a typical basic data type. Typical equivalence relations are eq hour <strong>and</strong> eq day that relate<br />

values from Dom(DateT ime) that belong to the same hour or day. The partitions ⊥ ∗ , Days, W eeks, Months,<br />

Quarters, Y ears, <strong>and</strong> ⊤ ∗ denote the named partitions <strong>of</strong> highest granularity, the named partitions <strong>of</strong> DateT ime<br />

by days, by weeks, by months, by quarters, by years, <strong>and</strong> the trivial no-granularity named partition, correspondingly.<br />

We observe ⊥ ∗ ≼ Π ∗ <strong>and</strong> Π ∗ ≼ ⊤ ∗ for any named partition in this list. We notice too that Days ≼ Months ≼<br />

Quarters ≼ Y ears.<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 436<br />

W eeks ≼ m Months is a difficult ordering that causes a lot <strong>of</strong> confusion.<br />

This notion <strong>of</strong> hierarchical data types can be extended to complex attribute types, entity types, cluster types<br />

<strong>and</strong> relationship types. These extended types are also called hierarchical types. Aggregation functions are defined for<br />

extension based data types. The cube definition uses the association between attribute types <strong>and</strong> aggregation functions<br />

The grounding schema <strong>of</strong> a cube is given by a (cube) relationship type<br />

R = (R 1 , ...., R n , {(A 1 , q 1 , f 1 , ), ..., (A m , q m , f m )}) with<br />

• hierarchical types R 1 , ...., R n which form component (or dimension) types,<br />

• (“fact”) attributes A 1 , ..., A m which are defined over extension based data types <strong>and</strong> instantiated by singletonvalue<br />

queries q 1 , ..., q m <strong>and</strong><br />

• aggregation functions f 1 , ..., f m defined over A 1 , ..., A m .<br />

The grounding schema is typically defined by a view over a database schema.<br />

Given a grounding schema R = (R 1 , ...., R n , {(A 1 , q 1 , f 1 , ), ..., (A m , q m , f m )}), a class R C , <strong>and</strong> partitions Π i<br />

on DOM(R i ) for any component R 1 , ..., R n . A cell <strong>of</strong> R C is a non-empty set σ R1 ∈c 1 ,...E n ∈c n<br />

(R C ) for c i ∈ Π i <strong>and</strong><br />

for the selection operation σ α . Given now partitions Π 1 , ..., Π n for all component types, a cube cube Π∗ 1 ,...,Π∗ n (R C ) on<br />

R C <strong>and</strong> on Π ∗ i , 1 ≤ i ≤ n consists <strong>of</strong> the set<br />

{σ R1 ∈c 1 ,...R n ∈c n<br />

(R C ) ≠ ∅ | c 1 ∈ Π 1 , ..., c n ∈ Π n }<br />

<strong>of</strong> all cells <strong>of</strong> R C for the named partitions Π ∗ i , 1 ≤ i ≤ n. If Π∗ i = ⊤∗ then we may omit the partition Π ∗ i .<br />

Therefore, a cube is a special view. We may materialize the view. The view may be used for computations. Then<br />

each cell is recorded with its corresponding aggregations for the attributes. For instance, sum(π PriceOfGood (σ SellingDate∈W eekx (<br />

computes the total turnover in week x.<br />

Spreadsheet cubes are defined for sequences Π ∗ 1 ≼ ... ≼ Π∗ n <strong>of</strong> partitions for one or more dimensional components.<br />

For instance, the partitions Days, Months, Quarters, Y ears define a spreadsheet cube for components<br />

defined over DateT ime.<br />

The cube can use another representation: instead <strong>of</strong> using cells as sets we may use the names defining the cells as<br />

the cell dimension value. This representation is called named cube.<br />

This definition <strong>of</strong> the cube can be now easily used for a precise mathematical definition <strong>of</strong> the main operations<br />

for cubes <strong>and</strong> extended cubes. For instance, given a cube with a partitions Π ∗ , Π ′∗ for one dimensional component<br />

with Π ∗ ≼ Π ′∗ , the drill-down operation transfers a cube defined on Π ′∗ to a cube defined on Π ∗ . Roll-up<br />

transfers a cube defined on Π to a cube defined on Π ′∗ . The slice operation is nothing else then the objectrelational<br />

selection operation. The dice operation can be defined in two ways: either using the object-relational<br />

projection operation or using ⊤ partitions for all dimensional components that are out <strong>of</strong> scope. More formally, the<br />

following basic OLAP query functions are introduced for a cube cube Π∗ 1 ,...,Π∗ n (R C ) defined on the cube schema<br />

R = (R 1 , ...., R n , {(A 1 , q 1 , f 1 , ), ..., (A m , q m , f m )}) , a dimension i, <strong>and</strong> partitions Π ∗ i ≼ Π′∗ i ≼ ⊤ ∗ i :<br />

Basic drill-down functions map the cube cube Π∗ 1 ,...,Π′∗ i ,...,Π∗ n (R C ) to the cube<br />

cube Π∗ 1 ,...,Π∗ i ,...,Π∗ n (R C ).<br />

Basic roll-up functions map the cube cube Π∗ 1 ,...,Π∗ i ,...,Π∗ n (R C ) to the cube<br />

cube Π∗ 1 ,...,Π′∗ i ,...,Π∗ n (R C ).<br />

Roll-up functions are the inverse <strong>of</strong> drill-down functions.<br />

Basic slice functions are similar to selection <strong>of</strong> tuples within a set. The cube<br />

cube Π∗ 1 ,...,Π∗ n (R C ) is mapped to the cube σ α (cube Π∗ 1 ,...,Π∗ n (R C )).<br />

The slice function can also be defined through cells. Let dimension(α) the set <strong>of</strong> all dimensions that are<br />

restricted by α. Let further<br />

σ ⊓ α(c i ) =<br />

{ ∅ if Ri ∈ dimension(α) ∧ σ α (c i ) ≠ c i<br />

c i<br />

otherwise<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 437<br />

Close slice functions restrict the cube cells to those that entirely fulfill the selection criterion α, i.e., {σ R1 ∈σ ⊓ α(c 1 ),...R n ∈σ ⊓ α(<br />

∅ | c 1 ∈ Π 1 , ..., c n ∈ Π n }.<br />

Liberal slice functions restrict the cells to those that partially fulfill the selection criterion α, i.e. to cells<br />

{σ R1 ∈σ α(c 1 ),...R n∈σ α(c n)(R C ) ≠ ∅ | c 1 ∈ Π 1 , ..., c n ∈ Π n }.<br />

Lazy <strong>and</strong> eager slice functions apply the selection functions directly to values in the cells.<br />

Basic dice functions are similar to projection in the first-order query algebra. They map the cube cube Π∗ 1 ,...,Π∗ i ,...,Π∗ n (R C )<br />

to the cube cube Π∗ 1 ,...,⊤∗ i ,...,Π∗ n (R C ).<br />

Basic dice functions are defined as special roll-up functions. We also may omit the dimension i. In this case we<br />

loose the information on this dimension.<br />

Generalizing the first-order query algebra, [Tha00] defines additional OLAP operations such as<br />

join functions for mergers <strong>of</strong> cubes,<br />

union functions for union <strong>of</strong> two or more cubes <strong>of</strong> identical type,<br />

rotation or pivoting functions for rearrangement <strong>of</strong> the order <strong>of</strong> dimensions, <strong>and</strong><br />

rename functions for renaming <strong>of</strong> dimensions.<br />

Our new definition <strong>of</strong> the cube allows to generalize a large body <strong>of</strong> knowledge obtained for object-relational databases<br />

to cubes. The integration <strong>of</strong> cubes can be defined in a similar form [Mol07].<br />

OLAP <strong>and</strong> the paradoxes.<br />

siehe auch Data mining course<br />

Content Management Teil 3<br />

Modelling the Warehouse.<br />

We start with a more detailed discussion <strong>of</strong> structural aspects but keep the presentation rather informal. Throughout<br />

this section we use a simplified version <strong>of</strong> the grocery store example from Kimball [?] to illustrate our ideas.<br />

We shall first see how to model the application star schema using the entity-relationship model. We demonstrate that<br />

ER is well-suited for warehouse modelling contradicting statements made in some warehouse publications [?]. Then<br />

we show how to obtain the star schema as a view in the case <strong>of</strong> a single operative database. The more realistic case<br />

<strong>of</strong> several operative databases appears as a simple generalisation. Finally, we h<strong>and</strong>le the case <strong>of</strong> a snowflake schema<br />

using dimension hierarchies.<br />

Efficient algorithms for the translation <strong>of</strong> HERM views into bundles <strong>of</strong> relational views exist [Tha00] <strong>and</strong> can<br />

then be used for a realisation <strong>of</strong> those views.<br />

The Grocery Store Example.<br />

An OLAP application. Suppose we want to analyse the development <strong>of</strong> sales in a grocery chain. We might, e.g.,<br />

want to know how many items <strong>of</strong> certain products have been sold in certain stores or regions over some period <strong>of</strong><br />

time, what the corresponding sale was <strong>and</strong> how much pr<strong>of</strong>it we made. So the facts we are interested in are Quantity,<br />

Money sales <strong>and</strong> Pr<strong>of</strong>it. The dimensions are TIME, PRODUCT, CUSTOMER <strong>and</strong> SHOP.<br />

Then the facts Quantity, Money sales <strong>and</strong> Pr<strong>of</strong>it appear as attributes <strong>of</strong> the relationship type PURCHASE. In<br />

addition, we may have attributes PID, Description, Category for the entity type PRODUCT, attributes SID, Town,<br />

Region, State, etc. for the entity type SHOP, attributes TID, Weekday, Month, Quarter, etc. for the entity type<br />

TIME <strong>and</strong> attributes Name, Address, Category, etc. for the entity type CUSTOMER.<br />

Note that a relational transformation usually will turn key attributes <strong>of</strong> the dimension types (xID) into foreign<br />

keys for a fact table. Figure 2 shows the corresponding (simplified) ER schema in HERM notation [Tha00].<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 438<br />

TID TIME . . .<br />

✻<br />

Address(Addr1,Addr2,Addr3,Town,State,Zip)<br />

Money sales Pr<strong>of</strong>it<br />

Name(CID)<br />

Name(Category)<br />

CUSTOMER ✛ PURCHASE<br />

Quantity<br />

Name(First,Surname)<br />

❄<br />

Description PRODUCT<br />

Name Town State<br />

✲ SHOP<br />

Region Phone SID<br />

PID Category<br />

Abbildung 2: Grocery Example: Star Schema on PURCHASES<br />

Kind Description<br />

. . .<br />

Date Price<br />

PID PART ✛ PRICE ✲ STORE<br />

2<br />

Cost<br />

✻<br />

Category CID<br />

Name(First,Surname)<br />

PERSON<br />

✛<br />

BUYS<br />

Address(Addr1,Addr2,Addr3,Town,State,Zip)<br />

Quantity Time<br />

Abbildung 3: Grocery Store: Operative Sales Schema<br />

The operational database. The data to be stored in instances <strong>of</strong> the warehouse schema mostly stems from operative<br />

databases. So assume that each purchase in a store will be registered together with the date <strong>and</strong> the number <strong>of</strong> items<br />

sold. In addition we keep a price relation also depending on the date. For the moment we leave aside any further<br />

decomposition for products <strong>and</strong> stores. The date can be assumed to be composed <strong>of</strong> day, month <strong>and</strong> year. This is<br />

usually sufficient for operative purposes. In order to relate a date to the more complex data needed in the entity type<br />

TIME in the star schema, we may assume a general pre-determined time table containing all the time attributes needed<br />

there. Of course, (day, month, year) will appear as a composed key.<br />

Figure 3 shows an ER schema for such a simple sales database (omitting some attributes). Note that this schema<br />

is not yet normalised, but for the sake <strong>of</strong> simplicity we abstain from further decomposition.<br />

External Views.<br />

The central claim made in the introduction is that the star schema occurs as an external view on the operative sales<br />

schema (enriched by the assumed time table). In general, a view is nothing but a stored query, hence consisting <strong>of</strong><br />

an input schema S in , an output schema S out <strong>and</strong> a database transformation V mapping instances <strong>of</strong> S in to instances<br />

<strong>of</strong> S out . Additionally, representation, formation <strong>and</strong> wrapping rules [?] can be added to the view depending on the<br />

dialogue object.<br />

In our example S in is the (enriched) sales schema (Figure 3) <strong>and</strong> S out is the star schema (Figure 2). Since ER<br />

schemata—even higher-order schemata—are basically hierarchical in the sense that relationship types are based on<br />

entity types, it is sufficient to employ sequences <strong>of</strong> SELECT-FROM-WHERE statements to define the mapping V .<br />

Different views can be defined for the application sketched above. The view displayed in Figure 2 is a star schema<br />

based on a relationship type. This star schema can be obtained via the following view definition:<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 439<br />

SELLING<br />

PERIOD<br />

✻<br />

PROMOTION<br />

PERIOD<br />

✻<br />

CUSTOMER<br />

CATEGORY<br />

IN<br />

✲<br />

TIME<br />

✛<br />

DURING<br />

REGION<br />

✻<br />

OF<br />

✲<br />

CUSTOMER<br />

✛<br />

✻<br />

PURCHASE<br />

✲<br />

❄<br />

SHOP<br />

✛<br />

✻<br />

SINREG<br />

PRODUCTION<br />

✛<br />

POFP<br />

✲<br />

❄<br />

PRODUCT ✛ ✲<br />

PINC<br />

CATEGORY<br />

Abbildung 4: Grocery Store: Snowflake Schema on Purchases<br />

create view StarSchema as<br />

Product : select PID : p.PID , Category : p.Kind ,<br />

Description : p.Description<br />

from Part p ,<br />

Time : select Time<br />

from Buys<br />

Customer : select Name : c.Name, CID : c.CID,<br />

Address : c.Address, Category : c.Category<br />

from Person c<br />

where ... Category ...<br />

Shop : select ...<br />

from Store s<br />

Purchase : select Customer(CID) : ..., Product(PID) : ...,<br />

Time(TID) : ..., ..., Shop(SID) : ...,<br />

Money sales : ..., Quantity : ..., Pr<strong>of</strong>it : ...<br />

from Buys(Part, Person, Store), Price pr<br />

where ... ;<br />

In the same fashion the snowflake schema displayed in Figure 4 (partially without attributes) can be generated on<br />

the schema discussed in Section 4.1.3.<br />

Dimension Hierarchies.<br />

In many cases it is desirable to consider more complex warehouse schemata than the flat star schema. This<br />

situation usually occurs if dimensions are organised hierarchically. E.g., products can be grouped into BRAND <strong>and</strong><br />

shops into REGION. Using the higher-order ER model, BRAND <strong>and</strong> REGION will now occur as entity types <strong>and</strong> the<br />

original types will be turned into unary relationship types. For the case <strong>of</strong> our grocery store example, this situation is<br />

illustrated by the snowflake schema in Figure 5, omitting all attributes.<br />

In a number <strong>of</strong> OLAP applications similar hierarchies for the presentation <strong>of</strong> time, products, people, organisations,<br />

addresses, etc. are used. We can define ER schemata for hierarchies. The corresponding databases may be instantiated<br />

automatically. The schemata can be used for the generation <strong>of</strong> hierarchic view sets.<br />

OLAP schemata are then views defined on the basis <strong>of</strong> the application ER schema <strong>and</strong> on ER schemata for<br />

hierarchies. In this case, the snowflake schema displayed in Figure 4 is generated on the basis <strong>of</strong> the application<br />

discussed in Section 4.1.3 <strong>and</strong> on view types which are defined on hierarchy schemata for time, addresses, customer<br />

categories <strong>and</strong> product categories.<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 440<br />

BRAND TIME REGION<br />

✻<br />

✻<br />

✻<br />

PRODUCT ✛<br />

PURCHASE<br />

✲<br />

SHOP<br />

Abbildung 5: Grocery Store: Snowflake Schema with Dimension Hierarchies<br />

Time<br />

...<br />

WeekInQuarter<br />

Week<br />

DayInQuarter<br />

DayInYear<br />

Weekday<br />

MonthDay<br />

Day<br />

Holiday<br />

FinancialYear<br />

FinancialMonth<br />

FinancialWeekOfYear<br />

FinancialWeekOfQuarter<br />

FinancialWeek<br />

FinancialDay<br />

...<br />

FinancialDayOfYear<br />

No<br />

No<br />

Year ✛(4,4) Quarter ✛(3,3)<br />

Month<br />

✶<br />

No Kind (13,14) ✻<br />

WeekInM<br />

✻(28,31)<br />

Name<br />

☛<br />

No<br />

Week ✛(7,7) (1,1)<br />

Weekday ✲ Day ✛(0,1)<br />

Holiday<br />

No<br />

Name<br />

Abbildung 6: Extended HERM Schema <strong>and</strong> OLAP Representation <strong>of</strong> Time<br />

Time is modelled in OLAP applications on the basis <strong>of</strong> universal relation assumptions. The representation <strong>of</strong><br />

time defined for the higher-order ER model uses several relationship types. The OLAP representation in Figure 6<br />

is based on the universal relation approach. The OLAP type has 25 attributes. Additionally, an identifier attribute<br />

may be introduced. A large number <strong>of</strong> integrity constraints must be considered. The time dimension is necessary in<br />

OLAP applications because it facilitates slicing <strong>of</strong> data by workdays, holidays, fiscal periods, seasons <strong>and</strong> by major<br />

events. The time dimension is guaranteed to be present in every warehouse application, because virtually every data<br />

warehouse depends on a time series. Time is usually the first dimension for sorting.<br />

The representation <strong>of</strong> time (where some information can be derived but is still explicitly contained) shows that<br />

OLAP schemata are redundant. Denormalisation is common in OLAP schemata. Underst<strong>and</strong>ing OLAP schemata as<br />

views with redundant representation <strong>and</strong> denormalisation does not create any problem.<br />

Based on the roll-up <strong>and</strong> drill-down functions discussed below it is possible to display data in different granularity.<br />

This approach can be simulated by families <strong>of</strong> views. The family is generated in dependence <strong>of</strong> a given generalisation<br />

hierarchy. For instance, given the hierarchies<br />

Product ≼ Br<strong>and</strong> ≼ Manufacturer <strong>and</strong> Shop ≼ Area ≼ Region,<br />

we can create a query on shops <strong>and</strong> products. This query can be contracted according to the hierarchies to queries on<br />

br<strong>and</strong>s, regions, etc.<br />

With regard to being defined as views on operative database schemata, snowflake schemata do not add additional<br />

complexity since they simply correspond to some kind <strong>of</strong> normalisation along functional or multi-valued dependencies.<br />

The same normalisation can be expected in the underlying operative databases.<br />

Modelling OLAP Applications.<br />

Now we turn to the problem <strong>of</strong> how to realise OLAP functionality in management support systems. Since OLAP<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 441<br />

applications constitute particular dialogue oriented information systems we should preserve the technology developed<br />

for such information systems [?, ?, ?, Tha96] as much as possible.<br />

We start looking at the presentation <strong>of</strong> facts in sections <strong>of</strong> the data warehouse followed by an investigation <strong>of</strong><br />

typical actions involved in such presentations. This will lead us to a short discussion <strong>of</strong> dialogue objects <strong>and</strong> their suitability<br />

for OLAP. Finally, we discuss the tuning <strong>of</strong> presentation granularity which will constitute further operations.<br />

Presentation <strong>of</strong> Facts.<br />

The typical OLAP scenario assumes a manager to query the warehouse. Since familiarity with sophisticated query<br />

languages cannot be presumed, such a query should be expressible in terms underst<strong>and</strong>able to the user, i.e.:<br />

• The manager selects the facts (s)he wants to consider. E.g., in our grocery store example (s)he may choose to<br />

look only at money sales perhaps with a percentage-based comparison to an earlier period.<br />

• The manager selects the dimensions <strong>and</strong> their granularity along which the selected facts should be presented.<br />

In our grocery store example this can be time, e.g., on the basis <strong>of</strong> last year’s quarters, individual products <strong>and</strong><br />

regions.<br />

• In addition to the dimensions a specification <strong>of</strong> their relevant descriptive attributes is needed. E.g., it may be<br />

sufficient to get the product name <strong>and</strong> the grammalogues for the region <strong>and</strong> quarter.<br />

• The manager states additional selection criteria to restrict the data to be presented. E.g., only stores that belong<br />

to a certain category (cheap or expensive equipment, etc.) or products <strong>of</strong>fered in the most recent promotion<br />

campaign should be considered.<br />

• Criteria for the grouping <strong>and</strong> ordering <strong>of</strong> the facts <strong>and</strong> dimension attributes should be given.<br />

• Finally, the presentation <strong>of</strong> the result should be specified. E.g., tabular or graphical presentations such as scroll<br />

lists, beam or tart diagrams should be available.<br />

The data to be presented constitute a view on the warehouse. Since we argued that the warehouse itself can be realised<br />

as a view on the operative multi-database, each data selection in an OLAP application constitutes also a view on the<br />

operative databases. Whether the intermediate warehouse level <strong>and</strong> maybe also other views are materialised or not<br />

depends on technical aspects. The manager need not be aware <strong>of</strong> any connection to the underlying operative databases.<br />

(S)he may not even be aware <strong>of</strong> snowflake schemata if these have been designed, since the star schema is also<br />

a view on the snowflake schema. Finally, whether the star schema is presented to managers directly by the entityrelationship<br />

schema or simply by the list <strong>of</strong> available facts, dimensions, larger dimensions <strong>and</strong> dimension attributes,<br />

can be left to the manager’s preferences.<br />

Since the queries underlying the views are conjunctive a simple QBE like entry form will be sufficient. Thus, it<br />

is recommended to couple the view with actions to select facts, dimensions, dimension attributes, to add restricting<br />

conditions <strong>and</strong> to choose presentation preferences. We may therefore consider the presented data together with the<br />

actions on them as describing an object, namely a dialogue object (d-object).<br />

More formally, a dialog object (d-object) consists <strong>of</strong> a unique abstract identifier, a set <strong>of</strong> values v 1 , . . . , v n in<br />

associated fields F 1 , . . . , F n which correspond to describing values <strong>of</strong> d-objects, a set <strong>of</strong> references to other d-objects<br />

in order to allow quick navigational access, a set <strong>of</strong> actions to change the data <strong>and</strong> to control the dialogue, <strong>and</strong> a state<br />

with the possible values ‘active’ <strong>and</strong> ‘inactive’. This means that d-objects only exist as long as they are visible on the<br />

screen. If a window is closed the corresponding d-object ist deleted.<br />

The identifier serves the purpose <strong>of</strong> administrating d-objects. It is not known to <strong>and</strong> cannot be used by the user<br />

<strong>and</strong> is not visible. Only the active d-object allows manipulations <strong>of</strong> the represented data <strong>and</strong> only its actions can be<br />

invoked.<br />

Users invoke actions to change selection criteria, to navigate to another (possibly new) dialogue object or to a<br />

modified presentation <strong>of</strong> the same dialogue object. This kind <strong>of</strong> system usage constitutes the basic object-actionprinciple<br />

in dialogue systems. Users enter or select values on the screen <strong>and</strong> invoke actions—usually grouped in<br />

menus—on them. The dialogue system reacts by <strong>of</strong>fering other data or by activating <strong>and</strong> deactivating entries in<br />

selection lists or possible actions in the action bar. In graphical user interfaces data are normally presented in a<br />

window.<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 442<br />

REGION<br />

Region<br />

✛<br />

SALES PER<br />

REGION<br />

✲<br />

TIME<br />

✻<br />

Year<br />

Quarter<br />

SID<br />

Town<br />

SHOP<br />

✛<br />

SALES PER<br />

SHOP<br />

Money sales<br />

Abbildung 7: Grocery Store: Schema underlying a D-Type<br />

Once we know that the data in a d-object may be used in the next dialogue step, it may be helpful to provide also<br />

hidden data. Their presence may quicken the access to the database or the navigation to other d-objects. Depending<br />

on selections or entries made in a d-object only some <strong>of</strong> the possible actions may be allowed. The processing <strong>of</strong> an<br />

action may require further preconditions depending on the state <strong>of</strong> the dialogue system especially on other users’<br />

d-objects.<br />

Note that the selection <strong>of</strong> grouping, ordering <strong>and</strong> screen presentations does not affect the dialogue object itself.<br />

Thus, presentational aspects can be treated separately from the core <strong>of</strong> data processing.<br />

Dialogue Types.<br />

Conceptually, we are not interested in individual d-objects but want to classify them into types. We shall, therefore,<br />

talk about dialogue types (d-type). Dialogue types unify structural, behavioural <strong>and</strong> presentational aspects <strong>of</strong> an<br />

application by combining view definitions, action specifications <strong>and</strong> rules for presenting an dialogue object’s contents<br />

to the user [?].<br />

Structural aspects. At the heart <strong>of</strong> such a d-type we provide a view consisting <strong>of</strong> a (higher-order) ER schema <strong>and</strong><br />

a defining query. The schema is the output schema S out mentioned in the previous section; the defining query is<br />

the sequence V <strong>of</strong> query language statements which create instances <strong>of</strong> S out . The input schema S in can be omitted.<br />

It is generally assumed that the warehouse schema—star or snowflake schema—is taken for this purpose. The view<br />

definition may be parameterised. Parameters are either specified as defaults in the d-type definition or can be modified<br />

by the user during interaction.<br />

In addition, as indicated above, we may choose a subset <strong>of</strong> the query result as the data to be actually presented<br />

while keeping the rest for fast support <strong>of</strong> operation. This constitutes the visual schema VS out as a subschema <strong>of</strong> S out .<br />

The view definition <strong>of</strong> the visual schema may again be parameterised. Visibility functions determine the respective<br />

parameters on the basis <strong>of</strong> default definitions, actions invoked by the user <strong>and</strong>/or explicit user specifications.<br />

Building upon the grocery store warehouse from Figure 2 the d-type may, e.g., involve money sales per shop<br />

<strong>and</strong> region, but only the money sales per region will be presented to the user. Then the output schema S out could<br />

be as presented in Figure 7 <strong>and</strong> the visual schema VS out would be the subschema in which the relationship type<br />

SALES PER SHOP <strong>and</strong> the entity type SHOP have been omitted (cf. Figure 7). We abstain from a detailed description<br />

<strong>of</strong> the defining query which would use the star schema in Figure 2 as the input schema S in .<br />

Behavioural aspects. Attached to the view we provide a collection <strong>of</strong> operations such as those discussed in Section<br />

4.1.3. Such actions allow the user to navigate within the view (e.g., to formerly hidden parts), to navigate between<br />

views <strong>and</strong> to switch between different presentations <strong>of</strong> data. In addition to typical OLAP actions as described below,<br />

help functions can be made available, too.<br />

Similar to the structural part that contains both visible <strong>and</strong> hidden data, dialogue actions are not necessarily<br />

accessible at all times. Availability <strong>of</strong> actions is controlled by action access functions which determine availability on<br />

the basis <strong>of</strong> the user’s access rights, etc. For instance, based on the example in Figure 7, adding the fact Money sales<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 443<br />

from the entity type SALES PER SHOP might only be possible for managers on a high enough level <strong>of</strong> the enterprise’s<br />

hierarchy. Similar restrictions could exist for drill-down operations in certain dimensions.<br />

To guarantee stable performance <strong>of</strong> the application exceptions are defined for the case that the use <strong>of</strong> a dialogue<br />

object causes problems.<br />

Presentational aspects. Both data <strong>and</strong> actions—as long as they are not hidden—must be made available to the user.<br />

Presentation rules are generally defined globally for the overall application—independently from individual dialogue<br />

types. Such rules determine, e.g., graphical widgets to be used for visualisation (buttons or menus for actions, text<br />

fields for textual data, etc.). Furthermore, they can control the layout <strong>of</strong> visualisations based, e.g., on the space<br />

available on the screen <strong>and</strong> on the information to be conveyed.<br />

D-types will, however, provide parameters for such presentation rules. Parameters are, e.g., labels that are to be<br />

used for visualising dialogue objects (title bar) <strong>and</strong> individual data or actions. Other parameters are diverse semantical<br />

properties <strong>of</strong> data such as emphasis, priority, adhesion, etc. [?]. If statistical anomalies are discovered during the<br />

execution <strong>of</strong> a dialogue object (a shop whose sales significantly exceed the average) local presentation rules can, e.g.,<br />

characterise such anomalies as important. Global presentation rules will then use the parameter important to choose<br />

red colour, flashing font, etc.<br />

Conceptually, presentation design <strong>of</strong> d-types is therefore concerned with a description <strong>of</strong> the data <strong>and</strong> actions<br />

involved <strong>and</strong>/or with the specification <strong>of</strong> rules that automatically compute such descriptions, rather than with an<br />

explicit assignment <strong>of</strong> presentations. We specify labels, semantical properties, adhesions between data items, rules,<br />

etc. but no concrete widgets, colours or fonts.<br />

At the implementational level, presentation rules use these descriptions to create physical presentations <strong>of</strong> dialogue<br />

objects. There can be several presentation rules available for one concept which can, e.g., create a graphical or<br />

a forms-based presentation for the same d-type. Presentation rules are selected at system run-time in dependence <strong>of</strong><br />

the user’s preferences or actions invoked.<br />

OLAP Actions.<br />

In OLAP applications, roll-up operations <strong>and</strong> drill-down operations are used for generalisation <strong>and</strong> specialisation<br />

<strong>of</strong> fact tables. Aggregation <strong>of</strong> detailed data to create summary data is called roll-up. Usually, roll-up is based on two<br />

operations: grouping <strong>of</strong> data according to some characteristics (e.g., total sales by city <strong>and</strong> product) <strong>and</strong> navigation<br />

through an attribute hierarchy (e.g., from sales by city towards sales by state <strong>and</strong> sales by country). Navigation to<br />

detailed data from summaries is called drill-down. It provides the data set that was aggregated (e.g., displaying the<br />

‘base’ data for total sales figure for the state CA). Selection which is called slicing in OLAP applications defines<br />

a subdatabase (e.g., sales where city=“Berkeley” or reducing the relationship dimensions by specifying coordinates<br />

<strong>of</strong> remaining dimensions). The last observation shows that minimum <strong>and</strong> maximum functions yield the same result<br />

after application <strong>of</strong> roll-up operations or drill-down operations. The same property is valid for pull, pivoting <strong>and</strong> push<br />

operations [AGS97b]. These functions can be generalised to reordering or rearrangement functions. OLAP operations<br />

can be completely based on operations defined for ER models [Tha00].<br />

• Classical database operations are also applicable to views. For this reason, the following functions are defined<br />

for views:<br />

• Selection on relationship types is the ER expression for dice.<br />

• The slice operation is expressed by projection on relationship types.<br />

• The set-theoretic operations union, intersection, cartesian product <strong>and</strong> difference <strong>and</strong> component renaming<br />

are elements <strong>of</strong> the ER algebra.<br />

• Calculations within one component type or across component types are expressed by algebraic functions. Ranking<br />

functions are based on the computation <strong>of</strong> sets, ordering <strong>and</strong> creating supporting views. Extensions such<br />

as tertile, quartiles, ratio to report, cume, moving average, moving sum are expressible in ER-SQL [Tha00].<br />

• Visualisation functions do not produce another view. They are used for reordering the schema. Functions such<br />

as nest <strong>and</strong> rotate can be represented by ER operations. Ranking functions are expressed by order by con-<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 444<br />

structs. Dynamic breakpoints are used to start a new view for computation. They require the utilisation <strong>of</strong><br />

dynamic SQL. Extending ER-SQL to dynamic ER-SQL can be performed in the fashion known for SQL.<br />

• Aggregation can be expressed by view definition in database languages.<br />

• The roll-up function (also called drill-up) is used for dimension reduction on the basis <strong>of</strong> aggregation<br />

functions. Navigation through an attribute hierarchy can be expressed by escorting queries. The complex<br />

cube operation is a set <strong>of</strong> roll-up operations <strong>and</strong> expressible in ER-SQL.<br />

• The drill-down function is just the inverse operation <strong>of</strong> roll-up.<br />

• The aggregation functions min, max, sum, avg, count can be expressed by summarisation. This function<br />

generalises the aggregation functions.<br />

• Schema restructuring has been generalised by Gyssens <strong>and</strong> Lakshmanan [GL97]. Classification, fold <strong>and</strong> unfold<br />

can also be generalised in the ER algebra.<br />

Unfold defines a new view on a relationship type <strong>and</strong> a set <strong>of</strong> components <strong>of</strong> the relationship type by introducing<br />

a new type on the set <strong>and</strong> a new relationship type with the remaining components <strong>of</strong> the first type<br />

<strong>and</strong> the set component. Unfold generalises the unnest operation.<br />

Fold restructures a schema to a new schema for a component <strong>of</strong> a choosen relationship type. Fold generalises<br />

the nesting operation.<br />

Classification is a specific grouping operation.<br />

Schema restructuring operations are operations which can be expressed by graph grammar rules.<br />

• OLAP applications are also based on analytical functions which are defined on the basis <strong>of</strong> mathematical<br />

models. Since OLAP data can be understood as derived data which can be materialised, analytical functions<br />

can also be defined for databases.<br />

¿From the user’s point <strong>of</strong> view typical actions invoked—besides choosing a completely new view in the sense<br />

presented above—are devoted to achieve finer or coarser tuning <strong>of</strong> the presented information:<br />

• A user may choose to extend or restrict the fact list. In the example sketched in Section 4.1.3, the facts Quantity<br />

<strong>and</strong> Pr<strong>of</strong>it may be added. Note that the evaluation <strong>of</strong> the corresponding query may exploit data already presented<br />

as an intermediate result.<br />

• A user may choose to add or remove a dimension. For example, a manager looking at the data selection<br />

indicated above may remove the product dimension <strong>and</strong> simply look at Money sales in different regions.<br />

Again, query evaluation is simplified by the existing data contents <strong>of</strong> the dialogue object.<br />

• A user may add or remove dimension attributes. The required processing is analogous to changes in the fact<br />

list.<br />

• The user may change dimension granularity. Such drill-down or roll-up operations switch to a smaller or larger<br />

dimension. For example, the user may replace REGION by SHOP or PRODUCT by BRAND walking along the<br />

hierarchies in the snowflake schema.<br />

• The selection criteria may be weakened or strengthened leading to a larger or smaller result. Here again, the<br />

reuse <strong>of</strong> the existing query result may help to fasten query processing.<br />

• The user may mark a section <strong>of</strong> the presented data <strong>and</strong> invoke an aggregate function on them such as summation,<br />

average computation, normalising at a given index 100, etc. In our grocery store example the money sales per<br />

shop could be considered.<br />

• Grouping, ordering <strong>and</strong> presentation style may be changed. As already stated above, this does not lead to a<br />

new query <strong>and</strong> only affects general presentational issues. It is possible to achieve this functionality by using<br />

different presentation rules.<br />

Mod IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 445<br />

4.1.4 Pragmas und Direktiven für Sichten<br />

Unterschiedliche Beh<strong>and</strong>lung von Sichten:<br />

Virtuelle Sichten als spezielle vorbereitete Anfrageausdrücke<br />

Anfrageexpansion<br />

Sicherungssichten zur Kontrolle des Zugriffes<br />

Zugriffssichten<br />

Materialisierte Sichten als vorbereitete Datenmengen unter Berücksichtigung von<br />

Erzeugung der Sichten im deferred oder immediate Modus<br />

Erfrischungsmodus im on commit oder on dem<strong>and</strong> Modus<br />

Erfrischungsmethode mit complete Refresh oder fast Refresh, sowie als Kompromiß mit force (erst<br />

fast, falls nicht möglich dann complete)<br />

Anfrage-Rewriting<br />

4.1.5 Sichtenorientierte Entwicklung von <strong>Information</strong>ssystemen<br />

Wir unterscheiden Sichten für strukturelle Aspekte und Sichten für funktionale Aspekte. Diese unterschiedlichen Begriffe<br />

wollen wir im weiteren ausein<strong>and</strong>erhalten.<br />

Ein sichtenorientierter struktureller Entwurf ist am einfachsten in der Top-Down-Strategie integrierbar. In diesem<br />

Fall wird zur Darstellung der strukturellen Zusammenhänge ein Skelett benutzt. Es dient zur expliziten Spezifikation<br />

der Abbildungen von einzelnen Konstrukten der Sichten unterein<strong>and</strong>er. Jeder neue Entwurfsschritt,<br />

der sich auf eine <strong>and</strong>ere Sicht aufgrund dieses Skeletts auswirken kann, zieht eine Entwurfsobligation nach<br />

sich. Entwurfsobligationen können s<strong>of</strong>ort nach einem Schritt betrachtet werden oder im deferred-Modus auch<br />

zu einem späteren Zeitpunkt bearbeitet werden. Der späteste praktikable Zeitpunkt ist das Entstehen weiterer<br />

Obligationen aus diesen Obligationen. In diesem Fall treten typische Probleme der Sichtenintegration wie die<br />

im folgenden beh<strong>and</strong>elten Probleme nicht auf.<br />

Ein sichtenzentrierter funktionaler Entwurf orientiert sich an den Hauptprozessen und den Dialogen. Es wird für<br />

jeden Prozeß bzw. Dialog eine entsprechende Sicht erzeugt, die die Verarbeitung der Daten ermöglicht. Daten<br />

können unterschieden werden in Retrievaldaten, die mit einer Retrievalanweisung anh<strong>and</strong> der Datenbank gewonnen<br />

werden, in Inputdaten, die ein Benutzer in eine Datenbank einfügt, Outputdaten, die einem <strong>and</strong>eren<br />

Prozeß (z.B. einem Outputprozeß) übermittelt werden, und Begleitdaten, die in einem Prozeß als Zusatzinformation<br />

dienen bzw. von <strong>and</strong>eren Prozessen stammen. Diese Daten können zusätzlich Displaydaten sein.<br />

Für die Entwicklung von <strong>Information</strong>ssystemen konzentrieren wir uns auf eine Datenbanklösung. Deshalb hat der<br />

strukturelle Entwurf einen höheren Stellenwert als der funktionale Entwurf. Die Unterscheidung der Daten aus dem<br />

funktionalen Entwurf behalten wir jedoch bei.<br />

4.1.6 Spezifikation auf unterschiedlichen Abstraktionsschichten<br />

Produktdatenskizzen auf der strategischen Schicht<br />

Produktdaten als Grundkonstrukt.<br />

Sichten auf der Anforderungsschicht<br />

Ontologische Einheiten als Grundkonstrukt.


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 446<br />

Sichten auf der Benutzungsschicht<br />

Kerntypen als Grundkonstrukt.<br />

Sichten als konzeptionelle Wiederspegelung<br />

Sichtentypen als Grundkonstrukt.<br />

HERM-Sichten als kombinierte Sichten<br />

Sichten auf der Implementationssschicht<br />

Charakterisierung und Klassifikation von Sichten (je nach Prozeßzust<strong>and</strong>)<br />

Sichten im Abstraktionsschichtenmodell.<br />

Wir können, wie in Bild 8 dargestellt, auch für die Sichtenspezifikation das Abstraktionsschichtenmodell verwenden.<br />

Da die Sichten aber eine Hilfskonstruktion sind und in engem Zusammenhang zum Schema und zu den Dialogen<br />

stehen, ist eine isolierte Modellierung der Sichten nicht sinnvoll. Im einzelnen verwenden wir die folgenden Schritte:<br />

Sichten des Lastenhefts: Mit der strategischen <strong>Information</strong>sanalyse erhalten wir <strong>Information</strong>en zu den unterschiedlichen<br />

Ansichten der Akteure zur Datenbank. Diese Ansichten können im Nachgang zum Struktur-, Funktionsund<br />

Dialogentwurf zur Entwicklung einer Vorstellung zu den einzelnen Sichten genutzt werden. Es wird eine<br />

Produktdatenskizze mit einer Grobstrukturierung der Produktdaten entwickelt. Diese Produktdatenskizze<br />

ist mit der Konzeptl<strong>and</strong>karte, dem Diskurs und der Produktfunktionalität abzugleichen. Zur Darstellung der<br />

Produktdaten wird ein allgemeines HERM-Diagramm mit den Haupttypen entwickelt.<br />

Sichten des Pflichtenhefts: Es wird eine Sichtenskizze entwickelt. Jede dieser Sichtenskizzen basiert auf Begriffen<br />

der Anwendung. Wir nennen die Darstellung dieser Begriffe ontologische Einheit. Ontologien dienen bereits in<br />

breitem Maße zur Darstellung der Realität. Für die Sichtenskizzen und die ontologischen Einheiten werden entsprechende<br />

Integritätsbedingungen angegeben. Die Verfeinerung des Lastenheftes findet durch Spezialisierung<br />

der Typen, Dekomposition, strukturelle Erweiterung, semantische Einschränkung, Separation von Aspekten<br />

und durch Instantiierung statt. Zusätzlich werden weitere Typen eingeführt.<br />

Die Sichtenskizze enthält die Spezifikation der Darstellung der wichtigen Typen und eine grobe Vorstellung<br />

über die Art der Benutzung der Sichten. Es wird wiederum der Zusammenhang zur Darstellung der Strukturierung<br />

und der Funktionalität im Pflichtenheft hergestellt. Alle Ereignisse des H<strong>and</strong>lungsrahmens werden durch<br />

entsprechende Teile der Sichtenskizze unterstützt.<br />

Auf der Grundlage des Zusammenhangs zu verschiedenen Elementen der Story werden auch Zusammenhänge<br />

zwischen den einzelnen Sichten erkannt. Wir spezifizieren die Zusammenhänge in einem Integrationsschema<br />

der Sichten. Die Kohäsion zwischen den Sichten ist ein wichtiger Hinweis für eine spätere Sichtenintegration.<br />

Damit wird eine Bereinigung von Integrationskonflikten später vereinfacht und algorithmisch beherrschbar.<br />

Aktionssichten-Suite: Eine Suite besteht aus einer Menge von Elementen, einem Integrations- bzw. Zusammenhangsschema<br />

zur Pflege des Zusammenhanges und Obligationen. Die Aktionssichten stellen die Strukturierung<br />

der Daten in einer Form dar, wie sie der Benutzer sehen wird. Dazu werden die Kerntypen dargestellt. Aus den<br />

Kerntypen können wir alle Sichtenskelette zusammenstellen. Damit werden durch die Sichtenskelette alle Typen<br />

repräsentiert, die für den Anwender eine Bedeutung haben. Die Typen stellen eine Verfeinerung der Typen<br />

des Pflichtenhefts dar oder sind neu eingeführt. Die Aktionssichten-Suite besteht aus den Sichtenskeletten mit<br />

den Kerntypen und aus dem weiterentwickelten Integrationsschema.<br />

Die Sichtenskelette werden in Übereinstimmung mit dem Storyboard und dem Anwendungsschema entwickelt.<br />

Eine Spezifikation der einzelnen Sicht kann eine vollständige Erfassung aller wesentlichen Typen mit einschließen,<br />

so daß dieser Entwurfsschritt analog zur Spezifikation des Anwendungsschemas geführt werden kann.


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 447<br />

Falls ein Anwendungsschema vorliegt, dann sollte jede Sicht auch als Anfrage über dem Anwendungsschema<br />

formuliert werden.<br />

Durch die <strong>Information</strong>en aus dem Storyboard und den Zusammenhangs der Sichten können Obligationen für<br />

den Entwurfsprozeß abgeleitet werden. Eine Bereinigung von Integrationskonflikten kann auf der Grundlage<br />

des Sichtenintegrationsschemas erfolgen. Deshalb wird dieses Schema weiter parallel verfeinert.<br />

Sichten-Suite: Die Sichten-Suite stellt auf der konzeptionellen Schicht eine Menge integrierter Sichtenschemata<br />

dar, die auch durch entsprechende Strukturen des ER-Schemas und durch Anfragemengen unterstützt wird.<br />

Die einzelnen Sichten werden nun im Detail entworfen. Für jeden Typ einer Sicht wird angegeben, ob dieser<br />

Typ aus der Sicht der Datenbank ein Inputtyp, ein Outputtyp oder ein Modifikationstyp ist.<br />

Auf der konzeptionellen Schicht werden die Typen für die Strukturierung durch ein detailliertes HERM-<br />

Diagramm angegeben. Diese Typen stellen eine Verfeinerung der Typen des Anwendungsschemas dar. Die<br />

Verfeinerungsbeziehung wird direkt zur Erzeugung der Sichten-Suite genutzt. Der Entwurf der Sichten kann<br />

nach den Entwurfsmethodiken des konzeptionellen Schemas angestrebt werden.<br />

Bei Bereinigung von Integrationskonflikten kann nun auch eine Sichtenintegration angestrebt werden. Da uns<br />

das Integrationsschema bekannt ist und dieses fortgeschrieben wurde, kann eine Integration durch Generalisierung,<br />

durch Verschmelzung und Kombination oder im Extremfall durch Kooperation der Sichten angestrebt<br />

werden.<br />

Die Sichten werden am Ende des konzeptionellen Entwurfes vollständig in das konzeptionelle ER-Schema und<br />

das Drehbuch eingebettet sein.<br />

Zusätzlich zu den entwickelten Sichten werden die Sicherungssichten und die DBMS-Interaktionssichten entwickelt.<br />

Logische Sichten-Suite: Die Sichten-Suite wird je nach gewählten Transformationsmodus für die Abbildung des<br />

ER-Schemas auf das logische Schema im Anschluß an die Transformation des ER-Schemas auf Sichtenkonzepte<br />

des DBMS bzw. der Plattform abgebildet. Dazu werden entsprechende Operationen, Programme oder<br />

Module der Datenbank-Maschine verwendet.<br />

Die Sichtenkonzepte werden je nach Funktionalität des DBMS als externe Sichten oder materialisierte Sichten<br />

in die Beschreibung der Struktur der Datenbank eingebettet. Aus den konzeptionellen Sichten kann durch<br />

Transformation die jeweilige logische bzw. bei einer Materialisierung die physische Sicht erzeugt werden.<br />

Relationale DBMS unterstützen <strong>of</strong>t nur typ-basierte Sichten. In diesem Fall wird für jeden Typ einer Sicht eine<br />

Sichtentypanfrage angegeben. Der Zusammenhang der Sichten wird mit einer integrierten Sichtenanfragemenge<br />

in der logischen Sichten-Suite gewährleistet. Werden semi-strukturierte Datenbank-Maschinen verwendet,<br />

dann kann auch eine Sicht z.B. durch eine DTD angegeben werden. Der Zusammenhang innerhalb einer Sicht<br />

wird dann durch XML-Dokumente direkt dargestellt. Unterschiedliche Sichtweisen auf ein XML-Dokument<br />

können durch entsprechende XSL-Regeln unterstützt werden.<br />

Wir können die einzelnen Schritte wie in Bild 8 darstellen.


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 448<br />

Motivationsschicht<br />

Vorstudie<br />

Skizzierung<br />

Produktdatenskizze<br />

Lastenheft: Sichten<br />

Produktdaten<br />

Geschäftsprozeßschicht<br />

Feinstudie<br />

Darstellung<br />

Sichtenskizze<br />

ontologische<br />

Einheit<br />

Implementationsschicht<br />

Aktionsschicht<br />

Entwurf<br />

Sichtenentwurf<br />

Sichtenskelette<br />

Pflichtenheft: Sichten<br />

Kerntyp<br />

konzeptionelle<br />

Schicht<br />

Implementation<br />

Transformation<br />

Sichtenschemata<br />

Aktionssichten-Suite<br />

Typ<br />

Sichtentypanfrage<br />

Sichten-Suite<br />

Sichtenanfragemenge<br />

logische Sichten-Suite<br />

Abbildung 8: Die Arbeitsprodukte im Abstraktionsschichtenmodell für die Sichtenentwicklung


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 449<br />

4.2 Von Sichten zu Content-Typen<br />

Sichten werden klassischerweise durch Anfragen über Datenbank-Schemata definiert. In diesem Fall benutzen wir<br />

als Rahmen:<br />

select Projektionsausdruck<br />

from Datenbank-Struktur<br />

where Auswahl-Bedingung<br />

group by Zusammenfassungsausdruck zu Gruppe<br />

having Auswahl unter den Gruppen<br />

order by Lexikographische Ordnung unter Teilstruktur<br />

Dieser Rahmen erlaubt die Definition einfacher Sichten, die auf einem Typ definiert sind. Damit ist jedoch eine<br />

konzeptionelle Darstellung zusammengehörender Objekte für die Ausgabe nicht möglich. Wir nutzen diesen Rahmen<br />

für die Definition der logischen Sichten.<br />

Im allgemeinen benötigen wir jedoch in Anwendungen komplexere Unterstützung:<br />

Spezifkation einer Sichten-Suite: Zur Begleitung der unterschiedlichen Arbeitsschritte sind auch unterschiedliche<br />

zusammenhängende Sichten zu definieren.<br />

Spezifikation einer Funktionalität für die Sichten-Suite: Es sollte möglich sein, eine Anwendung soweit wie möglich<br />

durch entsprechende Funktionen und Prozesse zu unterstützen. Dazu benötigt ein Benutzer eine Reihe von<br />

Funktionen.<br />

Spezifikation der Anpassung an den aktuellen oder potentiellen Benutzer: Jeder Akteur oder jeder aktuelle<br />

Benutzer sollte ggf. auch mit seiner Oberfläche arbeiten können, ggf. seine Daten auch für sich selbst modifizieren<br />

können und auch durch eine explizite Beschreibung der Präsentationsart eine Anpassung vornehmen<br />

können.<br />

Die aktuell verfügbare Datenbank-Technologie unterstützt diese Forderungen bereits in breitem Maße, wenn Sichten-<br />

Suite-Modifikation über stored procedures abefangen wird. Sichten-Suiten können auch durch (logische) Sichtenanfragemengen<br />

unterstützt werden. Die Funktionen sind mit einem allgemeinen Funktionsrahmen allgemein darstellbar<br />

und dann an die konkrete Sichten-Suite anpaßbar. Die XML-Technologie eignet sich besonders für unterschiedliche<br />

Arten des “Ausspielens”. Außerdem kann einem Benutzer auch ein Sitzungsobjekt zugeordnet werden, so daß entsprechende<br />

Einstellungen automatisch weitergeführt werden können. Sitzungsobjekte können direkt realisiert werden<br />

oder mit einem Verpackungsumschlag in das verpackte Content-Objekt integriert werden. Funktionen wie Markierungsfunktionen<br />

sind durch Sichten, die über materialisierten Sichten entstehen, darstellbar. Deshalb ist keine Neuentwicklung<br />

notwendig, sondern nur ein Spezifikationsrahmen zur Verfügung zu stellen.<br />

Der SQL-Rahmen kann aufgefaßt werden als:<br />

generate STRUKTUR<br />

from DATENBANK-STRUKTUR<br />

where AUSWAHLBEDINGUNG<br />

group by TEILSTRUKTUR<br />

having BEDINGUNG<br />

order by TEILSTRUKTUR<br />

Dieser Rahmen kann zu folgendem Rahmen verallgemeinert werden (wie bereits oben erläutert):<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 450<br />

generate MAPPING : VARS → AUSGABESTRUKTUR<br />

from DATENBANKTYPEN<br />

where AUSWAHLBEDINGUNG<br />

represent using ALLGEMEINER PRÄSENTATIONSSTIL<br />

& ABSTRAKTION (GRANULARITÄT, MASSEINHEIT, PRÄZISION)<br />

& ORDNUNGEN DER PRÄSENTATION<br />

& HIERARCHISCHE DARSTELLUNGEN<br />

& SICHTWEISEN<br />

& SEPARATION<br />

browsing definition BEDINGUNG<br />

& NAVIGATION<br />

functions SUCHFUNKTIONEN<br />

& EXPORTFUNKTIONEN<br />

& EINGABEFUNKTIONEN<br />

& SITZUNGSVERWALTUNG<br />

& MARKIERUNGSFUNKTIONEN<br />

Damit können wir für die Sichten-Suite in einem Vierschritt-Verfahren die Spezifikation erstellen. Das Resultat<br />

dieses Spezifikationsprozesses nennen wir Content-Typ. Eine Instanz eines Content-Typs nennen wir Content-<br />

Objekt. Eine Content-Klasse enthält demzufolge Content-Objekte des gleichen Content-Typs. Die Spezifikation<br />

eines Content-Typs erfolgt durch schrittweise Erweiterung.<br />

Wir unterscheiden drei Gesichtspunkte:<br />

Content-Objekte werden den Akteuren zur Verfügung gestellt. Sie enthalten die Spezifikation der Strukturierung<br />

der dem Akteur zur Verfügung gestellten Daten und die Darstellung der Funktionalität.<br />

Damit wird folgendes dargestellt:<br />

Daten innerhalb von Content-Objekten sind in eine Reihe von Kategorien klassifizierbar:<br />

Retrievaldaten, die aus einer Datenbank gewonnen werden und als Inputdaten für den ablaufenden Prozeß<br />

bzw. Dialogschritt dienen,<br />

Inputdaten des Akteurs, die ggf. auch als Insert- oder Update-Daten in Dialogschritten fungieren,<br />

Outputdaten, die in die Datenbank zurückgeschrieben werden,<br />

Displaydaten, die als Output während des Dialoges dargestellt werden, und<br />

Begleitdaten, die aus vorherigen Prozessen stammen und der Darstellung der <strong>Information</strong>en während<br />

des Dialogschrittes dienen.<br />

Bei Prozessen, mit denen ein Akteur H<strong>and</strong>lungen und Aktionen mit dem <strong>Information</strong>ssystem ausführen<br />

kann, unterscheiden wir:<br />

Unterstützende Prozesse für die Aktionen und<br />

Manipulationsanforderungen an das <strong>Information</strong>ssystem, die zur Veränderung der Daten führen können.<br />

Wir fassen die Daten in Klassen zusammen. Ein Content-Typ spezifiziert eine solche Klasse und basiert auf<br />

einem Sichtenschema, das auch um die erforderliche Funktionalität angereichert wurde.<br />

Container werden benutzt, um die Sichten den Akteuren bereitzustellen. Sie umfassen auch Parameter zur Beschreibung<br />

des Benutzungskontextes, so daß mit einer Auslieferung des Containers an den aktuellen Benutzer eine<br />

Adaption erfolgen kann.<br />

Für die Beschreibung von Containern unterscheiden wir zwischen<br />

allgemeiner Containerfunktionalität mit der Beschreibung allgemeiner Container-Funktionen zur Ent- und<br />

Beladung und<br />

spezifischer Containerfunktionalität, die durch die Content-Objekte, mit denen ein Container beladen wurde,<br />

geprägt wird.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 451<br />

Ein Beispiel eines Content-Typen.<br />

Als Beispiel für ein Content-Objekt betrachten wir einen Archivierungstyp. Dieser Typ soll in unserem Hauptbeispiel<br />

benutzt werden, um aus der Datenbank zur Stundenplanung heraus eine Datenbank zur Ablage der relevanten<br />

<strong>Information</strong>en zu gehaltenen Vorlesungen integriert mit entstehen zu lassen. Diese Datenbank dient der Verwaltung<br />

von Studentendaten, insbesondere für <strong>Information</strong>en zu den erworbenen Scheinen. Die Funktionalität dieser Sicht ist<br />

stark eingeschränkt. Es können unterschiedliche Präsentationstil-Optionen zur Laufzeit gewählt werden.<br />

Dieses Content-Objekt ist als Sicht über der Struktur in Bild ?? darstellbar. Die Archivsicht ist ein Ausschnitt<br />

der Daten. Die Daten, die nur für die Planung im laufenden oder kommenden Semester von Bedeutung sind, werden<br />

nicht archiviert.<br />

Mithilfe der archivierten Daten können zu einem späteren Zeitpunkt die Daten zu Lehrveranstaltungen eingesehen<br />

werden, die stattf<strong>and</strong>en und in denen Studenten entsprechende Leistungen erreicht haben. Lehrveranstaltungen, die<br />

stattf<strong>and</strong>en, in denen aber Studenten keine Abschlüsse erreichten, werden ebenfalls gespeichert. Sie sind jedoch für<br />

die Archivsicht nicht mehr von Interesse.<br />

Die Archivsicht wird über dem Schema in Bild ?? als allgemeiner, parametrischer Ausdruck<br />

Archiv(@SemesterBezeichnung)<br />

mit obigem Rahmen spezifiziert. Sie wird instantiiert mit<br />

Archiv(“SS01/02”) .<br />

Der erste Teil der Sichtendefinition lautet somit:<br />

generate t Person ↦→ Person , t Kurs ↦→ Kurs , t gehalteneLV ↦→ gehalteneLehrveranstaltung ,<br />

t Studiengang ↦→ Studiengang , t Typus ↦→ Typus, t Pr<strong>of</strong>essor ↦→ Pr<strong>of</strong>essor<br />

from t Kurs := gehalteneLV [Kurs],<br />

t Person := gehalteneLV[geplanteLV[angeboteneLV[Verantwortlicher4LV:Person]]]),<br />

t Studiengang := ..., t Typus := ...,, t Pr<strong>of</strong>essor := ...,<br />

t gehalteneLV := gehalteneLV[geplanteLV[<br />

angeboteneLV[ Kurs, Studiengang,<br />

Dozent:Pr<strong>of</strong>essor,<br />

Verantwortlicher4LV:Person],<br />

Typus]])<br />

where Bezeichnung = @SemesterBezeichnung ;<br />

Sie ist mit einem Parameter Semester als materialisierte Read-Only-Sicht in Bild 9 dargestellt. Mit dieser Sicht<br />

ist eine Modifikation der Daten nicht mehr erlaubt. Sie kann nur als Anfragesicht verwendet werden.<br />

Bezeichnung = “SS01/02”<br />

Kurs<br />

retrieve<br />

❦<br />

Semester<br />

Person<br />

slice/sort<br />

✻<br />

✸<br />

Verantwortlicher4LV<br />

retrieve<br />

✻<br />

Studiengang<br />

retrieve<br />

{}<br />

✛<br />

gehaltene<br />

Lehrveranstaltung<br />

retrieve<br />

Dozent<br />

✲<br />

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

retrieve<br />

❄<br />

Typus<br />

retrieve<br />

Abbildung 9: Content-Typen zur Archivsicht auf gehaltene Lehrveranstaltungen<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 452<br />

Darstellung von Sichtenschemata.<br />

Wir erweitern die Darstellung von ER-Schemata wie bereits z.T. in Bild 9 verwendet:<br />

Optionale Komponenten sind für Relationship-Typen von Sichten zugelassen. Sie werden mit einer gestrichelten<br />

Linie angegeben.<br />

Versteckte Komponenten sind in einer Sicht in der Definition vorh<strong>and</strong>en, werden aber nicht angezeigt. Sie werden<br />

mit einem gestrichelten Typ mit dem Auswahlprädikat dargestellt.<br />

Default-Werte werden für eine Sicht für die Generierung der Sicht benutzt. Sie können jedoch im Dialog durch<br />

<strong>and</strong>ere Werte ersetzt werden. Es wird für einen Typ der Default-Wert mit der Identifikation des Typs angezeigt.<br />

Wir merken an, daß sich mit einer Sichtendefinition auch die Integritätsbedingungen für die Typen einer Sicht ändern<br />

können.<br />

Wir verwenden das Sichtenschema, um die Funktionalität der einzelnen Typen mit anzugeben. Damit wird ein<br />

schnellerer Überblick gegeben.<br />

4.2.1 Sichten-Suiten<br />

Es werden die Sichten als konzeptionelle Sichten in ihrem Zusammenhang, mit einer Erweiterung um ggf. <strong>and</strong>ere<br />

Datenbestände, sowie um <strong>and</strong>ere Datentypen wie z.B. den Basis-Datentyp URL, money und MAIL dargestellt.<br />

Ein Sichtenschema wird als ER-Schema dargestellt, in dem jedem Typ eine Anfrage über dem ER-Schema und<br />

den Typenerweiterungen zugeordnet wird.<br />

Ein Sichtenschema kann auch materialisiert abgelegt werden. Dazu ist anzugeben, auf welche Art eine Modifikation<br />

in der Datenbank sich auf die Sicht auswirkt. Diese Materialisierung nutzt dann das folgende Schema:<br />

extend Sichtenschema<br />

by MODIFIKATIONSMODUS<br />

store ABLAGE-SCHEMA<br />

Wir werden im weiteren diesen Spezifikationsrahmen erweitern um eine Steuerbedingung<br />

accept on ABSCHLUSSBEDINGUNG<br />

mit der eine Kontrolle der Integrität dynamisch erfolgen kann. Eine derartige Kontrolle verbessert die Übersichtlichkeit,<br />

erfordert aber eine rigidere Beh<strong>and</strong>lung der Konsistenz aller Integritätsbedingungen.<br />

Für den Modifikationsmodus erstellen wir uns parametrische aktive Datenbank-Trigger. Diese parametrischen<br />

Trigger besitzen einen Namen, sind für Modifikationsoperationen über der Datenbank spezifiziert, können bei Gültigkeit<br />

einer Bedingung aktiviert werden und führen Aktionen zur Veränderung einer materialisierten Sicht aus.<br />

Der Modifikationsmodus besteht aus einem Modifikationsschema und einem Zeitschema. Das Modifikationsschema<br />

kann durch entsprechende Triggeroperationen in der logischen Sichten-Suite unterlegt werden in der Form<br />

on Modify on Datenbank-Schema-Typ<br />

if Sichten des Sichtenschemas XY betr<strong>of</strong>fen<br />

do Modify XY<br />

Modify steht für Insert, Delete bzw. Update.<br />

Das Zeitschema diktiert, wann eine Modifikation der Sichten erfolgt. Default-Wert kann z.B. Immediate sein.<br />

Mitunter ist auch Aktionen DeferUntilNoUserActive sinnvoll.<br />

Das Ablage-Schema kann sowohl eine einzelne URL bzw. URI als auch eine Menge zulassen, falls eine redundante<br />

Speicherung erforderlich ist.<br />

Für die Archivsicht erhalten wir mit Darstellung durch den deontischen Operator F (Verboten):<br />

extend Archivsicht<br />

by MODIFIKATION = { F Insert, F Delete, F Update }<br />

store ARCHIVSICHT<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 453<br />

Weiterhin wird ein Sichtenschema durch die Angabe aufbereitet, ob die Objekte dieser Sicht nur Daten sind, die<br />

dem Benutzer zu Ansicht zur Verfügung (Retrievaldaten) stehen oder auch zur Modifikation (Modifikationsdaten)<br />

benutzbar sind.<br />

Objekte einer Bearbeitung mit Sichten enthalten in der obigen Klassifikation demzufolge:<br />

• Input-Daten, die dem Benutzer in den einzelnen Arbeitsschritten zur Verfügung gestellt werden,<br />

• Output-Daten, mit denen der Benutzer auch Daten wieder in das System zurückschreiben oder einschreiben<br />

kann, und<br />

• Begleit-Daten, die der Benutzer einsehen, aber nicht modifizieren kann.<br />

Außerdem können Objekte einer Sicht sichtbar sein (Displaydaten) oder auch nicht dem Akteur sichtbar gemacht<br />

werden. Insbesondere wollen wir damit die direkte Modifikation der Objekte der Datenbank unterstützen, ohne dem<br />

Benutzer auch die Identifikation der Daten bekannt zu machen.<br />

Damit ist das Sichtenschema um die Angabe<br />

type<br />

.... for modification<br />

for retrieval<br />

used for input<br />

for output<br />

for escort only<br />

displayed with subtype<br />

erweitert.<br />

Um die Identifizierbarkeit zu gewährleisten, verwenden wir dabei evt. auch Typen, die dem Benutzer nicht angegeben<br />

werden. Weiterhin können diese allgemeineren Typen auch für die Spezifikation der Funktionen verwendet werden.<br />

4.2.2 Anreicherung der Sichtenschemata um Funktionen<br />

Eine Funktion ist allgemein mit einem Definitionsrahmen der folgenden Form spezifiziert:<br />

Signatur der Funktion: Name, Input-Parameter, Output-Parameter<br />

Basiert auf Sichtenschema<br />

Deklaration der Funktion<br />

Dieser Definitionsrahmen kann für jede Art von Funktionsdefinition verwendet werden. In vereinfachter Form kann<br />

auch der folgende Definitionsrahmen verwendet werden:<br />

extend Sichtenname<br />

by functions KATEGORIE DER FUNKTIONEN<br />

Name der Funktion (Input-Parameter, Output-Parameter)<br />

Deklaration der Funktion<br />

In diesem Fall wird die Erweiterung der Sichtendefinition hinzugefügt.<br />

Wir benötigen in internet-basierten Anwendungen eine ganze Reihe unterschiedlicher Funktionen, die wir wie<br />

folgt klassifizieren können:<br />

Durchmusterungsfunktionen erlauben die Erschließung von größeren Datenmengen ohne Verlust der Orientierung.<br />

Dazu gehören:<br />

Suchfunktionen, mit denen die Sichten und deren Objekte durchsucht werden können,<br />

Generalisierungs- und Spezialisierungsfunktionen (zooming-out, zooming-in), mit denen eine Menge von<br />

Objekten zu einer abstrakten Menge zusammengefaßt sowie diese Zusammenfassungen wieder aufgehoben<br />

werden können,<br />

Umordnungsfunktionen, mit denen eine Menge von Objekten auch in einer <strong>and</strong>eren Ordnung dargestellt<br />

werden kann,<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 454<br />

Navigationsfunktionen, (browsing, zapping, n-by-n, object-by-object) mit denen Objektmengen schrittweise,<br />

bündelweise, im Schnelldurchgang oder auch mit einem Browser durchmustert werden können,<br />

Kontexterschließungsfunktionen, mit denen die assoziierten Objekte zu einer Objektmenge erfaßt und dann<br />

mit den Objekten der Objektmenge verbunden werden können,<br />

Überblicksfunktionen, die anh<strong>and</strong> von Klassifikationskriterien die Erstellung einer ‘Datenl<strong>and</strong>karte’ unterstützen,<br />

und<br />

Assoziationsfunktionen, mit denen Objekte aufgrund von Assoziationsbeziehungen schrittweise zu komplexeren<br />

Objekten umgeformt werden können.<br />

In der Archivsicht können wir folgende Funktionen einführen:<br />

extend Archivsicht<br />

by functions SUCHFUNKTIONEN<br />

Lehrveranstaltungsübersicht ((Von, Bis, Kurs.Name),<br />

(Verantwortliche, Semester.Bezeichnung) )<br />

stored procedure := ...<br />

Lehrveranstaltungen der Architektur ((), (Kurs.Name) )<br />

stored procedure := ...<br />

by functions NAVIGATIONSFUNKTIONEN<br />

Semesterübersicht ((Semester.Bezeichnung), )<br />

browse by Studiengang, Typus<br />

by functions ASSOZIATIONSFUNKTIONEN<br />

Vorlesungspr<strong>of</strong>il ((Pr<strong>of</strong>essor.Name),(LV-Übersicht) )<br />

view defined as ...<br />

Die Suchfunktionen sollen eine vereinfachte Suche unterstützen. Die Navigationsfunktionen werden für eine<br />

begleitende Navigation für die Oberflächen der Benutzer erstellt. Die Assoziationsfunktion erlaubt die Erstellung<br />

eines Pr<strong>of</strong>ils mit einer neuen Sicht.<br />

Bearbeitungsfunktionen ermöglichen die Bearbeitung von Daten aus der Datenbank, von Sichtendaten und von<br />

persönlichen Daten der Benutzer.<br />

Datenbank-Modifikationsoperationen erlauben dem Akteur, seine Daten in die Datenbank einzubringen, in<br />

der Datenbank <strong>Information</strong>en zum Arbeitsverlauf vorzuhalten und Daten aus Sichten nach ihrer Bearbeitung<br />

durch den Benutzer in die Datenbank zurückzuspeichern.<br />

Sichten-Objekt-Modifikationsoperationen ermöglichen eine (temporäre) Veränderung der Daten in den Sichten.<br />

Diese Daten können materialisiert oder mit dem Erlöschen der Sicht auch gelöscht werden.<br />

Bearbeitungsfunktionen für den eigenen Arbeitsplatz unterstützen die Bearbeitung von Containern zu Sitzungen,<br />

die temporäre Haltung von Daten, das Einlagern, Modifizieren und Streichen von eigenen Daten.<br />

Integrationsfunktionen erlauben dem Benutzer, aus dem Dialogverlauf heraus für sich Daten zu entnehmen bzw.<br />

einzubringen.<br />

Exportfunktionen sollen eine ganze Reihe von Funktionen unterstützen:<br />

Ausgabe in Druck-Dokumente: Eine Druckausgabefunktion erlaubt die Ausgabe in vorgegebener Form z.B.<br />

als Formatting Object. Damit wird einem Benutzer nicht nur der Inhalt seiner Sitzung oder seiner Arbeitssichten<br />

bereitgestellt, sondern es werden auch die Daten des Content-Objektes für eine Ausgabe<br />

aufbereitet.<br />

Integration in <strong>and</strong>ere Dokumente: Mitunter sind die Auswahl von Daten, die erarbeiteten Daten oder Sichten<br />

auf das Content-Objekt auch in <strong>and</strong>ere Objekte integrierbar. In unserem Hauptbeispiel sollte z.B. die<br />

Übernahme von Kursbeschreibungen möglich sein.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 455<br />

Integration in den eigenen Arbeitsraum: Es können Sichten auf das Content-Objekt und die Sitzung in den<br />

eigenen Arbeitsraum des Benutzers eingelagert werden.<br />

Weitergabe von bearbeiteten Objekten an <strong>and</strong>ere Akteure: Eine Weitergabefunktion von Arbeitsresultaten<br />

kann in analoger Form wie die Druckfunktion realisiert sein.<br />

In analoger Form können auch Importfunktionen bereitgestellt werden. Sie unterstützen den Akteur in den<br />

entsprechenden Dialogschritten und basieren auf folgenden Funktionen:<br />

Übernahme von Objekten in die Datenbank: Eine Eingabe sollte nicht nur textuell erfolgen, sondern durch<br />

Funktionen zur Übernahme von Dokumenten oder Mengen von Objekten unterstützt werden. Dazu werden<br />

Techniken der Sichten-Kooperation genutzt.<br />

Integration in das Content-Objekt: Das Content-Objekt kann Parameter haben, die durch eine Eingabe von<br />

Daten oder Objekten instantiiert werden können. Damit ist auch eine Erweiterung des aktuellen Content-<br />

Objektes der aktuellen Sitzung möglich.<br />

Integration in den eigenen Arbeitsraum: Es können in vorher vereinbarten Formaten durch entsprechende<br />

Importfunktionen auch entsprechende Content-Objekte des Benutzers benutzt und in den Arbeitsraum<br />

eingebracht werden.<br />

Integration in die Arbeitssichten: Den Parametern aktueller Arbeitssichten können auch entsprechende Content-<br />

Objekte zugewiesen werden, so daß mit einer Importfunktion auch das aktuelle Content-Objekt verändert<br />

wird.<br />

Sowohl Import- als auch Exportfunktionen können auf der sogenannten Wrapper-Technologie aufsetzen. Wir<br />

verwenden zur einfacheren Integration die unten dargestellten Mechanismen der Sichtenkooperation.<br />

In unserer Anwendung kann z.B. die Archivsicht um Funktionen zum Druck wie folgt erweitert werden:<br />

extend Archivsicht<br />

by functions EXPORTFUNKTIONEN<br />

Pr<strong>of</strong>ilübersichtPDF ((Pr<strong>of</strong>essor.Name), (Dokument))<br />

... Vorlesungspr<strong>of</strong>il ((Pr<strong>of</strong>essor.Name),(LV-Übersicht) ) ...<br />

Markierungsfunktionen erlauben dem Benutzer mit den dargestellten Daten so umzugehen wie mit Daten auf seinem<br />

Schreibtisch. Es kann dem Akteur eine sehr breite Palette zur Verfügung gestellt werden. Oft verwendet<br />

werden Funktionen wie<br />

Kopierfunktionen zum Kopieren von Daten in den eigenen Arbeitsraum,<br />

Färbungsfunktionen zum Markieren von Daten mit unterschiedlichen Beschriftungen wie z.B. Farben,<br />

Beschriftungsfunktionen zur Annotation, zum Einbringen von Kommentaren und zum Anbringen von Variationen.<br />

Markierungsfunktionen können durch einen benutzereigenen Container unterstützt werden. Container werden<br />

auf Seite 463 eingeführt.<br />

Funktionen zur Sitzungsverwaltung erlauben einem Benutzer auch die Wiederaufnahme der Arbeit an der entsprechenden<br />

Stelle. Jedem Benutzer wird in seinem Arbeitsraum auch ein Sitzung-Container zur Verfügung<br />

gestellt. In diesem Container werden die Sitzungen mitprotokolliert. Damit ist dann auch eine Weiterführung<br />

eines bereits partiell durchlaufenen Workflows möglich. Funktionen der Sitzungsverwaltung sind insbesondere:<br />

Funktionen zum Öffnen, Protokollieren und Schließen von Sitzungen, mit denen ein Arbeitsst<strong>and</strong> gespeichert<br />

werden kann, die Erhaltung persönlicher Daten gewährleistet wird, mit denen Nebensitzungen und<br />

Gruppensitzungen unterstützt werden,<br />

Absicherungsfunktionen zur Absicherung der Sitzungsinformation und der Workspace-<strong>Information</strong> vor unberechtigtem<br />

Zugriff oder unberechtigter Modifikation,<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 456<br />

Weitergabefunktionen, mit denen Sitzungsinformationen an <strong>and</strong>ere Benutzer oder Funktionen weitergegeben<br />

bzw. <strong>and</strong>ere Benutzer kontaktiert werden können, und<br />

Löschfunktionen, mit denen ältere Sitzungen gelöscht werden können.<br />

Eine einfache Form der Sitzungsverwaltung stellen Cookies dar.<br />

Neben diesen Funktionen können auch Funktionen für Gruppensitzungen zur Verfügung gestellt werden. Diese<br />

Funktionen unterstützen eine effiziente Arbeit von Gruppen wie z.B. Gremien, Versammlungen, Veranstaltungen,<br />

etc. durch eine Reihe von Funktionen wie:<br />

Funktionen zur Darstellung der Arbeit der Gruppen mit variabler Sichtbarkeit der Tagesordnungen, Dokumente<br />

und Nachrichten je nach Freigabe,<br />

Funktionen zur Veröffentlichung von Materialien und Dokumenten mit unterschiedlicher Sichtbarkeit und<br />

unterschiedlichem Recht auf Einsicht,<br />

Funktionen zur Unterstützung der Zusammenarbeit von Mitgliedern der Gruppe unterein<strong>and</strong>er bzw. mit<br />

den interessierten Akteuren und<br />

Funktionen zur Archivierung der Materialien mit unterschiedlicher Einsicht in die Dokumente je nach Rechten<br />

und je nach Freigabestatus.<br />

Diese Funktionsmenge ist bereits in einer Reihe von Anwendungen in generischer Form entwickelt worden. So kann<br />

z.B. Das CPAN-Verzeichnis zu Perl-Anwendungen auch zur schnellen Entwicklung der erforderlichen Funktionalität<br />

für Sichten-Suiten herangezogen werden.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 457<br />

4.2.3 Parametrisierte Anpassung an den Akteur<br />

Um Benutzern in ihren Rollen entgegenzukommen, sollen Content-Objekte in gewissem Maße an folgende Dinge<br />

adaptierbar sein:<br />

• an den Benutzer, insbesondere an das Benutzerpr<strong>of</strong>il, die Sprache, seine Kenntnisse und Fertigkeiten, seine<br />

Präferenzen,<br />

• an das Benutzungsportfolio, d.h. die Arbeitsaufgaben des Benutzers,<br />

• an die Arbeitsumgebung des Benutzers, insbesondere die technische Infrastruktur wie Hard- und S<strong>of</strong>tware der<br />

Arbeitsplatzrechner, die Kommunikationsinfrastruktur und<br />

• die Benutzungsgeschichte.<br />

Eine solche Anpassung ist nicht im allgemeinen Maße möglich. Ein Sichtenschema ist jedoch parametrisierbar und<br />

im Rahmen dieser Parametrisierung an den konkreten Kontext adaptierbar.<br />

Dazu erweitern wir die Spezifikation der Content-Typen:<br />

Anwendbare Abstraktionen innerhalb des Sichtenschemas: Zur Unterstützung der Suche und der Navigation<br />

innerhalb des Content-Objektes kann man das Wissen zu den verwendeten Datentypen einbringen. Jeder Basis-<br />

Datentyp kann auch in vergröberter Form dargestellt werden. Diese Vergröberung vererbt sich über das Konstruktionsschema<br />

bis hin zum Sichtenschema. Damit sind wir in der Lage,<br />

• die Granularität,<br />

• die verwendeten Maßeinheiten und<br />

• die Präzision der Darstellung<br />

anzupassen. Diese Anpassung wird in Spreadsheet-Zugängen bereits breit praktiziert und ist relativ einfach mit<br />

dem Content-Typ verbindbar.<br />

Präsentationsstil: Der Datentyp des Sichtenschemas ist durch die verwendeten Datentypen gegeben. Wir können<br />

damit für einen allgemeinen Datentyp eine Menge von Präsentationsformaten entwickeln und mit dem Content-<br />

Objekt verknüpfen.<br />

Allgemeiner Repräsentationsstil: Im Rahmen der Entwicklungen zu Benutzungsschnittstellen sind allgemeine<br />

Gestaltungsraster für die Präsentation entwickelt worden. Dazu gehört das Screen-Layout, die<br />

Typographie, die Integration von Metaphern in die Gestaltung nach allgemeinen Prinzipien:<br />

• Das Prinzip der visuellen Wahrnehmung orientiert sich an Ordnungsbeziehungen innerhalb des Content-<br />

Typen, an Wirkungen der Darstellung und Hilfsmitteln zur Visualisierung.<br />

• Das Prinzip der visuellen Kommunikation orientiert auf eine klare, konsistente Struktur mit einer<br />

minimalen Menge von Hilfsmitteln unter Berücksichtigung der Aufnahmefähigkeit des Akteurs.<br />

Es werden dabei die Gestaltungsgesetze das Bildschirms und der visuellen Gestaltung auf die Darstellung<br />

der Content-Typen erweitert.<br />

Der allgemeine Repräsentationsstil wird durch style sheets unterstützt. Darin werden nicht nur die Typographie<br />

und Farbkodierung festgelegt, sondern auch die genutzten Metaphern und Darstellungselemente.<br />

Diese können parametrisiert werden. Damit kann zur Laufzeit eine Adaption an den Benutzer erfolgen.<br />

Inhaltsbasierter Repräsentationsstil: Durch die Konstruktion des Sichtenschemas können wir auch die Sichtendefinition<br />

und die Funktionalität des DBMS direkt nutzen, um unterschiedliche Darstellungsformen<br />

des gleichen Content-Objektes zu ermöglichen. Wir unterscheiden eine Reihe von Zugängen:<br />

Zuordnung einer Menge von Sichten zum Content-Typ: Jedes Objekt kann auf unterschiedliche Art<br />

und Weise betrachtet werden. Die unterschiedlichen Gesichtspunkte auf das gleiche Objekt erlauben<br />

auch einen schnelleren und situationsbezogenen Überblick über das gleiche Content-Objekt. Das<br />

Web IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 458<br />

gleiche Objekt wird aus unterschiedlichen Sichtweisen dargestellt. Diese Sichtweisen werden durch<br />

Sichten, d.h. Ausdrücke der HERM-Algebra dargestellt.<br />

Dieser Zugang wird in XML-Ausspielsystemen bereits praktiziert durch die Angabe von XSL-Regeln,<br />

die dann ein variables Darstellen des gleichen XML-Dokumentes erlauben.<br />

Hierarchische Strukturierung als Darstellungshilfsmittel: Eine besondere Präsentationsform ist die<br />

hierarchische Darstellungsform. Wir können hierarchische Darstellungsformen einführen<br />

• durch Verallgemeinerung von Zugängen, die für OLAP-Systeme entwickelt worden,<br />

• durch Nutzung der Hierarchien, die bereits mit einer Assoziierung, wie z.B. Verweisen gegeben<br />

ist und<br />

• durch Auflösung geschachtelter Strukturen.<br />

Die Auflösung geschachtelter Strukturen ist bereits für die HERM-Algebra eingeführt worden.<br />

Einführung von parametrischen Ordnungen: Bereits für die Durchmusterung und die Suche in größeren<br />

Content-Objekten ist eine Unterstützung durch entsprechende Funktionen entwickelt worden.<br />

Wir können diese Funktionen nutzen, um eine Ordnungserweiterung des Content-Typen vorzunehmen:<br />

• Es werden die Ordnungsrelationen ord ≤ , die für Listen und Mengen bekannt sind, genutzt.<br />

• Es werden Mengen durch Listen ersetzt und damit einfach sequentiell durchmusterbar.<br />

Die Ordnungsrelationen sind von unterschiedlicher Gewichtung. Einige Eigenschaften charakterisieren<br />

ein Objekt stärker als <strong>and</strong>ere. Deshalb können wir die Gewichtung auch für die Ordnung der<br />

Eigenschaften nutzen.<br />

Das Ordnungsschema erlaubt eine Parametrisierung. Diese Parameter können zur Laufzeit durch<br />

entsprechende Ordnungen ersetzt werden. Dabei können auch bestimmte Ordnungen per Default<br />

zur Anwendung kommen. In unserer Vorlesungsanwendung können z.B. Lehrveranstaltungen nach<br />

Vorlesungssemestern, Studiengängen und Studienabschniten in dieser Reihenfolge geordnet werden.<br />

Angabe von Dekompositionen bzw. Separationen des Content-Typen: Wir können den inneren Zusammenhang<br />

eines Content-Typen, der durch sein Sichtenschema gegeben ist, direkt verwenden. Ein<br />

Sichtenschema erlaubt eine Reihe von Sichtweisen auf die Daten. Diese Sichtweisen können als Sichten<br />

dem Sichtenschema zugeordnet werden. Welche Sichtweise auf das Content-Objekt durch den<br />

Benutzer gewählt wird, kann dann sogar zur Laufzeit entschieden werden. Da nicht alle Typen des<br />

Sichtenschemas in der gleichen Form mitein<strong>and</strong>er assoziiert sind, kann die Stärke der Assoziierung<br />

direkt mit den Typen verbunden werden.<br />

Wir nutzen dafür eine Adhäsionsmatrix, die zwischen den Typen des Sichtenschemas definiert ist.<br />

• Es sei types(S) die Menge aller Typen des Sichtenschemas S. Eine Adhäsionsmatrix AM ordnet<br />

jedem Paar von Typen T, T ′ ∈ S eine natürliche Zahl oder 0 zur Darstellung des Abst<strong>and</strong>es<br />

zwischen den Typen in S zu.<br />

Die Adhäsion ist umso niedriger, um so enger die Typen zusammengehören. Wir nehmen an,<br />

daß AM(T, T ) = 0 für jeden Typen T von types(S) gilt.<br />

• Die Zuordnung muß nicht vollständig für Teiltypen eines Typen T angegeben sein. Ist AM(T 1 , T 2 )<br />

nicht definiert, dann nehmen wir als Adhäsion den Abst<strong>and</strong> in der Typendefinition der Typen des<br />

Schemas an. Ist ein Schema nicht zusammenhängend und ist keine Adhäsion unter den Elementen<br />

der nicht zusammenhängenden Teilschemata definiert, dann nehmen wir AM(T 1 , T 2 ) = ∞<br />

an.<br />

• Eine Adhäsionsmatrix ist konservativ, falls AM(T 1 , T 2 ) ≤ M(T ′ 1 , T ′ 2 ) für Typen T 1, T 2 von<br />

types(S) und Teiltypen T ′ 1 , T ′ 2 von jeweils T 1, T 2 .<br />

• Eine Adhäsionsmatrix muß nicht symmetrisch sein. Teiltypen T 1 , T 2 eines Typen T können dem<br />

Typen T unterschiedlich nahe stehen.<br />

Durch eine Adhäsionsmatrix können wir für jeden Typen T von types(S) Schalen definieren durch<br />

Shell(T, types(S), i) = { T ′ ∈ types(S) | AM(T, T ′ ) ≤ i }<br />

Web IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 459<br />

Die Schalen erlauben eine automatische Separation, insbesondere im Falle eines nicht ausreichenden<br />

Darstellungsraumes auf dem Bildschirm. Mit der Adhäsionsmatrix wird dargestellt, welche Typen<br />

und Teiltypen gemeinsam auf dem Bildschirm erscheinen müssen und welche nicht unbedingt im<br />

Zusammenhang mit einem Typ dargestellt werden müssen.<br />

Wir können die Schalen und deren Beziehungen als Hypergraphen wie in Bild 10 darstellen. Ein<br />

Hypergraph besteht aus Knoten V und Hyperkanten H ⊆ 2 V . In unserem Modell sind die<br />

Hyperkanten hierarchisch. Es existiert eine lexikographische Nummerierung E 1,i1 ,...,i k<br />

der Kanten<br />

in H, so daß E i<br />

⊆ E j<br />

genau dann gilt, wenn i der Beginn von j ist. Die Wurzel ist der Knoten E 1 .<br />

Eine <strong>and</strong>ere Darstellung kann auch analog zu Bild ?? mit dem erweiterten ER-Modell angegeben<br />

werden, indem die Rauten als Relationship-Typen-Folge an der jeweils darunterliegenden Schale angehängt<br />

werden. In diesem Fall wird ein Stern-Schema erzeugt. Meist wird jedoch eine vollständige<br />

hierarchische Strukturierung nicht möglich sein. Dann erhalten wir ein Schneeflocken-Schema.<br />

Ein Beispiel einer Adhäsionsmatrix für das Schema in Bild 9 ist mit folgender Matrix gegeben:<br />

Archivsicht T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8<br />

T 1 = Verantwortlicher 0 2 0 4 4 2 5 11<br />

T 2 = Pr<strong>of</strong>essor 1 0 1 4 6 4 4 7<br />

T 3 = gehaltene Lehrveranstaltung 2 1 0 2 4 1 3 5<br />

T 4 = Semester 5 4 2 0 1 3 6 9<br />

T 5 = Bezeichnung 6 6 4 1 0 4 7 10<br />

T 6 = Kurs 4 3 0 3 3 0 2 5<br />

T 7 = Studiengang 5 3 2 5 7 2 0 11<br />

T 8 = Typus 6 2 1 7 9 1 3 0<br />

Eine Adhäsionsmatrix kann auch per Default besetzt werden. Wir verwenden dazu den Abst<strong>and</strong> in<br />

der Typen-Definition. Die Beispielmatrix erlaubt z.B. eine Separation der Typen in Bild 9 für den<br />

Typ Kurs in die Schalen<br />

Kurs, gehaltene Lehrveranstaltung<br />

Kurs, gehaltene Lehrveranstaltung, Studiengang<br />

Kurs, gehaltene Lehrveranstaltung, Studiengang, Pr<strong>of</strong>essor<br />

Kurs, gehaltene Lehrveranstaltung, Studiengang, Pr<strong>of</strong>essor, Semester, Bezeichnung, Verantwortlicher und<br />

die gesamte Sicht.<br />

Die Schalen können auch noch gegenseitig durch die Adhäsion der hinzukommenden Typen der<br />

nächsten Schale separiert werden. Dadurch können wir sogar eine hierarchische Charakterisierung<br />

vornehmen. In den seltensten Fällen wird jedoch eine solche Detailliertheit benötigt. Im Beispiel in<br />

Bild 10 kann die vierte Schale z.B. in die Personenangaben, die Angabe der Verantwortlichkeit und<br />

die Semesterangaben separiert werden.<br />

Verantwortlicher<br />

Semester<br />

Bezeichnung<br />

Kurs,<br />

gehaltene<br />

Lehrver<br />

anstaltung<br />

Studiengang<br />

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

Typus<br />

Abbildung 10: Hierarchische Schalen des Typen Kurs in der Archivsicht<br />

Bsp. eLearning: Adaptivität in vier Dimensionen.<br />

Vielfalt bei gut aufbereiteten Inhalten<br />

• Adaptivität an den Lernstil<br />

• Welcher <strong>Information</strong>styp wird durch den Lerner bevorzugt<br />

• formaler Typ (konkret, praxis-motiviert, Fakten, Algorithmen)<br />

consumption logistics<br />

Web IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 460<br />

• intuitiver Typ (konzeptionell, innovativ, Theorien und Bedeutung)<br />

• Welche <strong>Information</strong>saufnahme hat der Lerner<br />

• visueller Typ (multimedial gestützt, Diagramme, Bilder)<br />

• verbaler Typ (geschrieben oder gesprochen)<br />

• Welche <strong>Information</strong>sorganisation erscheint sinnvoll<br />

• induktiver Lerner (vom speziellen zum generellen)<br />

· Beispielorientierter Typ (erst am Beispiel)<br />

• deduktiver Lerner (vom allgemeinen zum speziellen)<br />

• Wie wird durch eine <strong>Information</strong>smenge gegangen<br />

• aktiver Typ (im Selbstversuch, in Kooperation)<br />

• reflektiver Typ (durchdenken, möglichst allein)<br />

• Wie wird gelernt und verst<strong>and</strong>en<br />

• sequentieller Lerner (liniear geordnet, in kleinen inkrementellen Schritten)<br />

• globaler Lerner (erst das allgemeine Bild, als System, Lernen in Makroschritten)<br />

Cottbuser Seminar-Experiment:<br />

Drei Kapitel aus dem Buch Computational Learning“<br />

• Tina Kunterbunt: intuitiv, visuell, beispiel-orientiert, aktiv, global<br />

• Alf Naseweis: formal, verbal, deduktiv, passiv, sequentiell<br />

• Joe Hacker: intuitiv, verbal, induktiv, aktiv, sequentiell<br />

Bsp. eLearning: Generierung und Adaption.<br />

• Lerneinheit: e 1 ; ((e 2,1 ||e 2,2 ) |×| e 2,3 ) ; e 3 ; (e 5,1 || (e 5,2 ; e 5,3 ))<br />

• Voraussetzung: e 1 ; ((e 2,1 ||e 2,2 ) |×| e 2,3 ) ; e 9 ; e 3 ; (e 10 ||e 11 ) ; (e 5,1 || (e 5,2 ; e 5,3 ))<br />

• förderndes Vorwissen: e 16 ; [ e 17 ; ] e 1 ; ((e 2,1 ||e 2,2 ) |×<br />

| e 2,3 ) ; e 9 ; e 3 ; (e 10 ||e 11 ) ; (e 5,1 || (e 5,2 ; e 5,3 ))<br />

• Link-Verbindungen: e 16 ; [ e 17 ; ] e 1 ; ((e 2,1 ||e 2,2 ) |×| e 2,3 ) ;<br />

[(↗ e 17 ; e 18 ↘; )] e 9 ; e 3 ; (e 10 ||e 11 ) ; (e 5,1 || (e 5,2 ; e 5,3 ))<br />

• verfügbare Lernelemente: e 16 ; [ e 17 ; ] e 1 ; ((e 2,1 ||( SB<br />

e 2,2 || CB<br />

e 2,2 )) |×| e 2,3 ) ;<br />

[(↗ e 17 ; e 18 ↘; )] e 9 ; e 3 ; (e 10 ||e 11 ) ; (e 5,1 || (e 5,2 ; e 5,3 ))<br />

• Lernerpr<strong>of</strong>il: e 16 ; [ e 17 ; ] e 1 ; ((e 2,1 ||( SB<br />

e 2,2 || CB<br />

e 2,2 )) |×| e 2,3 ) ;<br />

[(↗ e 17 ; e 18 ↘; )] e 9 ; Gr e 3,1 ; An e 3,2 ; Inf e 3,3 ; F orm e 3 ; (e 10 ||e 11 ) ; (e 5,1 || (e 5,2 ; e 5,3 ))<br />

• Payment-Pr<strong>of</strong>il: e 16 ; [ e 17 ; ] e 1 ; (⊗ SB<br />

e 2,2 ⊗ |×| e 2,3 ) ;<br />

[(↗ e 17 ; e 18 ↘; )] e 9 ; Gr e 3,1 ; An e 3,2 ; Inf e 3,3 ; F orm e 3 ; (e 10 ||e 11 ) ; (⊗ e 5,2 ; e 5,3 )<br />

• Lernhistorie - erledigte Elemente und Repetitor:<br />

; )] e Repe<br />

9 ; Gr e 3,1 ; An e 3,2 ; Inf e 3,3 ; F orm e 3 ; (e 10 ||e 11 ) ; (e 5,2 ; e 5,3 )<br />

e Repe<br />

1 ; [(↗ e 17 ; e 18 ↘<br />

• Lernhistorie - Zusatzübung:<br />

e Repe<br />

1 ; e 25 ; [(↗ e 17 ; e 18 ↘; )]<br />

e Repe<br />

9 ; Gr e 3,1 ; An e 3,2 ; Inf e 3,3 ; F orm e 3 ; (e 10 ||e 11 ) ; (e 5,2 ; e 5,3 )<br />

• Lernhistorie - Praktikum:<br />

1 ; e 25 ; [(↗ e 17 ; e 18 ↘; )]<br />

e Repe<br />

9 ; Gr e 3,1 ; An e 3,2 ; Inf e 3,3 ; F orm e 3 ; (e 10 ||e 11 ) ; (e 5,2 ; e P 5,2 rak ; e 5,3 )<br />

Aufbereitung / Vorbereitung von Inhalten.<br />

Grunddaten nur einmal - Benutzungsdaten in aller Vielfalt<br />

Multi-Ebenen-Zugang: Grunddaten, Sichtentürme über den Grunddaten mit Assoziation der Sichten zu den Rollen<br />

der Benutzer<br />

e Repe<br />

Versionierung: Inhalte in unterschiedlichen Versionen zur Rückverfolgbarkeit von Historie<br />

Adaption von Inhalten: Adaption an den Benutzer, seine Arbeitsumgebung, an die Vernetzung der Inhalte und an<br />

die derzeitige Arbeitslast der Systeme<br />

Web IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 461<br />

Farmen von Inhalten: Zulassen von heterogenen Inhalten in heterogener Qualität<br />

Meta-Daten von Inhalten (ggf. auch in der Erstellungsphase automatisch hinzugefügt)<br />

Wissenskarten u.a. Orientierungshilfe für die schnelle Erschließung des Datenbest<strong>and</strong>es<br />

Ausspiel.<br />

Jedem seine <strong>Information</strong> je nach Bedarf, Vorh<strong>and</strong>ensein, Umgebung und Art<br />

• Weg vom “pull content” hin zu intelligenter Inhaltepräsentation je nach speziellem Pr<strong>of</strong>il und Portfolio des<br />

Benutzers<br />

• Aufbereitete Inhalte für unterschiedliche Arten der Benutzung<br />

• Portfolio: Aufgaben deren Dringlichkeit und Ordnung,<br />

Umfang und Qualität der Antworten<br />

• Pr<strong>of</strong>ile von Benutzern in den drei Facetten: Ausbildung, Arbeit, Persönlichkeit<br />

damit auch allgemeines Verhalten, allgemeine Erwartung und Fähigkeit der Benutzer eingrenzbar<br />

• Wellenfrontartige Freischaltung, elementarwellenartige Ergänzung von Inhalten je nach Rollen der Benutzer<br />

• Qualitäts- und Meta-<strong>Information</strong> zusammen mit den Inhalten<br />

4.2.4 Container-Objekte für Web-<strong>Information</strong>ssysteme<br />

Abstrakte und Verpackungsumschläge von Content-Objekten.<br />

Content-Objekte sind Objekte eines Content-Typs, die an den Akteur ausgeliefert werden und ihm zur Verfügung<br />

stehen. Ein Content-Objekt kann relativ groß werden. Deshalb kann ein Content-Objekt mit einer Beschreibung versehen<br />

werden, die über den Inhalt Auskunft gibt. Diese Beschreibung wird mit einer Extraktionsfunktion gewonnen.<br />

Abstrakte dienen als verallgemeinerte Indizes und erlauben eine Vorausschau auf das Content-Objekt. Der Name<br />

des Content-Objektes wird um den Abstrakt erweitert. Abstrakte umfassen:<br />

die Titel-<strong>Information</strong> nach einem Benennungsschema, mit einer Kurz-Identifikation,<br />

eine Kurzbeschreibung des Inhaltes des Content-Objektes,<br />

die Zusammenfassung des Inhaltes des Content-Objektes, die durch Anwendung entsprechender Extraktionsfunktionen<br />

des Content-Typen aus dem Content-Objekt gewonnen werden können,<br />

allgemeine Beschreibungen des Inhaltes und der Strukturierung der Content-Objekte, einschließlich der Variablen,<br />

weitere <strong>Information</strong>en z.B. zu den Autoren und zu Klassifikation für das Content-Objekte,<br />

Angaben zur Funktionalität des Content-Objektes, d.h.<br />

• zu Durchmusterungsfunktionen,<br />

• zu Integrationsfunktionen,<br />

• zu Markierungsfunktionen und<br />

• zu Funktionen zur Sitzungsverwaltung,<br />

Prozeduren und Programmme zur Anpassung des Content-Objektes an den aktuellen Benutzer, d.h.<br />

• zur Anwendung von Abstraktionen,<br />

Web IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 462<br />

• zur Anpassung des allgemeinen Repräsentationsstils und<br />

• zur Anpassung an den inhaltsbasierten Repräsentationsstil.<br />

Ein Content-Objekt wird<br />

• ggf. von einem Akteur mehrfach benutzt,<br />

• ggf. von einem Akteur mit entsprechenden Anmerkungen unter Benutzung der Markierungsfunktionen versehen<br />

und<br />

• erfordert eine Aufzeichnung der Benutzungsgeschichte.<br />

Diese Aufzeichnung wird mit einem Anhänger dem Content-Objekt zugeordnet. Verpackungsumschläge (Kuvert)<br />

(envelops, docket) dienen als Anhänger. Sie enthalten:<br />

1. eine allgemeine Inhalts-<strong>Information</strong>, in der<br />

• die Sourcen, der Provider, die Autoren und die Benutzungsinformation mitgeführt werden,<br />

• der Inhalt und die unterstützten Aufgaben, die Eignung und die Art der Erzeugung dargestellt werden und<br />

• die Qualitätsbewertungen für das Content-Objekt angegeben werden,<br />

2. eine Anwendungsanleitung für das Content-Objekt, die auch Anmerkungen zu folgenden Dingen umfaßt:<br />

• Vertrauenswürdigkeit, dem Umfang der bereitgestellten <strong>Information</strong>, der Benutzungsrechte, Sicherheitskriterien<br />

und den Geschäftsbedingungen,<br />

• assoziierten Content-Objekten für unterschiedliche Benutzergruppen und<br />

• Annotationen, Anmerkungen zu Zugriffsmodellen, spezifischen Annotationen, zum Ressourcentypen und<br />

-formaten, sowie zur verwendeten Sprache,<br />

3. die Benutzungsgeschichte des Content-Objektes, die mit Parametern erfaßt und angepaßt werden kann, die<br />

schrittweise zu einer Erweiterung des Umschlags führen,<br />

4. allgemeine Zeitinformation, insbesondere<br />

• zu Versionen, Ausgaben und Benutzungspr<strong>of</strong>ilen,<br />

• zu Erneuerungsstrategien, anwendbaren Verbindungspr<strong>of</strong>ilen zur Erneuerung und die Art der Verbindung<br />

und<br />

• Signaturen, Beglaubigungshinweisen und Angaben zur wiederholten Benutzung.<br />

Wir fügen diesen Verpackungsinformationen dem Content-Objekt hinzu, indem durch Variable-Werte-Paare eine<br />

erweiterbare Attribut-<strong>Information</strong> mitgeführt wird.<br />

Container für die Auslieferung von Content-Objekten.<br />

Content-Objekte sollen dem Benutzer zur Verfügung stehen. Dabei wollen wir eine möglichst große Unabhängigkeit<br />

von der aktuellen Web-Technologie erreichen. Eine Auslieferung von Content-Objekten kann sowohl über der<br />

Internet als auch das Extranet oder Intranet erfolgen. Weiterhin kann ein Benutzer die Daten mit einem komfortablen<br />

System, wie z.B. einem Browser, einem weniger komfortablen System, wie z.B. einen text-basierten Browser, einem<br />

eingeschränktem Medium, wie z.B. einem Wap-H<strong>and</strong>y oder auch mit einem interaktionsbeschränkten Medium, wie<br />

z.B. Tele-Text, entgegennehmen und bearbeiten können. Deshalb muß ein Auslieferungsmedium eine hohe Allgemeinheit<br />

und eine sehr hohe Anpaßbarkeit besitzen. Wir führen dazu den Begriff des Containers ein. Ein Container<br />

soll beladen, an den Benutzer vers<strong>and</strong>t und von ihm benutzt werden können. Durch die enthaltenen Content-Objekte<br />

wird einem Benutzer die erforderliche Datenmengen und Funktionalität bereitgestellt.<br />

Aufgrund dieser Anforderungen bedienen wir uns der Zugänge von Skriptsprachen. Dadurch kann auch eine<br />

Realisierung von Containern mit den Mitteln von Skriptsprachen erfolgen.<br />

Ein Container wird durch eine abstrakte Zust<strong>and</strong>smaschine beschrieben:<br />

C = (I, M, O, ops C , Σ C )<br />

mit<br />

Web IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 463<br />

einem Namen C zur Bezeichnung des Containers,<br />

Zust<strong>and</strong>sräumen (Input-Raum, Content-Raum, Output-Raum) zur Aufnahme von Content-Objekten, die wir dem<br />

Benutzer zur Verfügung stellen wollen. Wir unterscheiden dabei drei verschiedene Räume:<br />

Input-Raum I: Zur Beladung der Container mit Inhalten wird ein Input-Raum zur Verfügung gestellt.<br />

Output-Raum O: Aus dem Container wird auf Anforderung des Benutzers ein passendes Content-Objekt<br />

ausgewählt und ihm zur Verfügung gestellt.<br />

Content-Raum M: In einem Container befinden sich verpackte Content-Objekte. Diese haben die folgende<br />

Struktur:<br />

Das Content-Objekt stellt die Daten und die Funktionalität, wie in diesem Abschnitt dargestellt, zur<br />

Verfügung.<br />

Abstrakte zu Content-Objekten sind zusammenfassende Beschreibungen des Inhaltes. Sie können auch<br />

leer sein.<br />

Kuverts erlauben die Führung von Begleit- und Benutzungsinformation zu Content-Objekten.<br />

Operationen ops C sollen die Verwaltung der drei Zust<strong>and</strong>sräume unterstützen. Deshalb unterscheiden wir:<br />

Auswertungsfunktionen zur Einlagerung von Content-Objekten in den Container,<br />

Operationen zum Verändern des Zust<strong>and</strong>es des Containers,<br />

Operationen zum Anfordern von Content-Objekten aus dem Container.<br />

Beschränkungen Σ C zum Container selbst sollen insbesondere darstellen<br />

das Vergleichsvermögen des Containers auf der Grundlage von Vergleichsmustern,<br />

die Beladungskapazität eines Containers und<br />

die Entladungsbeschränkungen für den Benutzungskontext.<br />

Die Räume des Containers realisieren einen Tupel-Raum. Jedes Element hat die Form<br />

(Variable, Wert) .<br />

Die Räume enthalten Multimengen von Elementen, d.h.<br />

I = {| t |}<br />

M = {| t |}<br />

O = {| t |}<br />

Eine Unterscheidung von Elementen erfolgt durch eine Mustererkennung der Variablen.<br />

Sind Elemente mehrfach in einem Container enthalten, dann muß eine intelligente Mustererkennung eine Separation<br />

erlauben.<br />

Variable sind Worte eines Alphabetes Alph.<br />

Variable können auch die Kuverts und Abstrakte aufnehmen.<br />

Werte sind Content-Objekte.<br />

Ein Container ist konsistent beladen, falls seine Tupel-Variablen eindeutig sind. Wir fordern jedoch keine Konsistenz<br />

a priori.<br />

Ein Container verfügt über eine Muster-Vergleichsfunktion ≈ C , mit der Elemente verglichen werden können. Der<br />

Mustervergleich hängt von den Mustern M ab, die ein Container vergleichen kann. Dieser Mustervergleich wird<br />

benutzt, um die Annahme von Content-Objekten zu verweigern oder auch dem Benutzer für seine Spezifikation ein<br />

passendes Content-Objekt auszugeben.<br />

Ein Vergleich von Elementen eines Containers nutzt ein Muster m unter Einbeziehung eines der Muster des<br />

Containers, wobei dann der Durchschnitt der beiden Muster zur Erkennung genutzt werden kann, und wird gültig für<br />

Elemente, falls keine Ungleichheit erkannt werden kann.<br />

{<br />

(v, w) ≈ C,m (v ′ , w ′ true falls ∃m<br />

) =<br />

′ ∈ M : v, v ′ ≼ m ′ ⊓ m ∧ ( w = w ′ ∨ w =⊥ ∨w ′ =⊥)<br />

false <strong>and</strong>ernfalls .<br />

Mit diesem allgemeinen Vergleich kann ein Container sowohl alle Elemente als nicht unterscheidbar betrachten<br />

(M = ∅) als auch alle Elemente genau unterscheiden (M = Alph + ).<br />

Web IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 464<br />

Wir können nun die Operationen des Containers als parallel ablaufende Operationen zur Zust<strong>and</strong>veränderung<br />

beh<strong>and</strong>eln. Diese Funktionen basieren auf folgenden Elementaroperationen des Containers:<br />

• eval(t) ist eine Auswertungsfunktion des Containers mit folgenden Eigenschaften:<br />

• eval(t) kann ggf. die Aufnahme von Content-Objekten blockieren. In diesem Fall ist das Resultat eine<br />

leere Multimenge.<br />

• Die Auswertung eines Content-Objektes kann auch zur Dekomposition dieses Content-Objektes führen,<br />

weil die Beladungskapazität des Containers für Einzelelemente ggf. beschränkt ist.<br />

• Die Auswertungsfunktion kann entsprechende Zeit erfordern. Mit einem Prädikat<br />

success(eval(t)) wird der Erfolg gemeldet.<br />

• inspect(C, m, t) = {| t ′ | t ≈ C,m t ′ |}<br />

• choose(M) wählt ein Element aus einer Multimenge aus.<br />

Wir benötigen nur vier Zust<strong>and</strong>sveränderungsfunktionen zur Veränderung von Z = (I, M, O) mit Elementen t ∈<br />

T upel C und Mustern Muster :<br />

Schnelle Beladung: Die Funktion load : Z × T upel C → Z mit<br />

load((I, M, O), t) = (I, M ⊔ {| eval(t) |} , O)<br />

erlaubt eine s<strong>of</strong>ortige Beladung von Containern.<br />

Langsame Beladung: Die Funktion lazzyload : Z × T upel C → Z mit<br />

lazzyload((I, M, O), t) = success(eval(t)) ⇒ (I, M ⊔ {| eval(t) |} , O)<br />

unterstützt eine verzögerte Beladung ohne auf die Beendigung der Berechnung von eval zu warten.<br />

Lesen im Containers: Die Funktion read : Z × Muster × T upel C → O mit<br />

read((I, M, O), m, t) = choose(inspect((I, M, O), m, t))<br />

generiert ein Resultat auf die Anfrage t mit dem Muster m.<br />

Lesen und Löschen im Container: Die Funktion read : Z × Muster × T upel C → O × M mit<br />

read((I, M, O), m, t) = let x := choose(inspect((I, M, O), m, t)) : (x, M \ {| x |} )<br />

generiert ein Resultat auf die Anfrage t mit dem Muster m und löscht dieses Resultat aus dem Content-Raum<br />

des Containers.<br />

Wir haben die Definition des Containers und seiner Operationen so allgemein gehalten, damit wir Container sowohl<br />

mit CORBA oder <strong>and</strong>eren Middleware-Systemen als auch mit JavaBeans oder auch direkt mit Perl, PHP bzw. <strong>and</strong>eren<br />

Skriptsprachen realisieren können.<br />

Diese Definition des Containers wird auch bei der Entwicklung von benutzereigenen Arbeitsräumen verwendet.<br />

Container können verfeinert werden<br />

• durch Instantiierung oder Adaption der Parameter<br />

• Vergrößerung und Verkleinerung der Kapazität,<br />

• Hinzufügen von Integritätsbedingungen und<br />

• Verfeinerung folgender Operationen:<br />

• der Vergleichsfunktion bzw. der Mustermenge,<br />

• der Auswertungsfunktion eval ,<br />

• der Inspektionsfunktion inspect und<br />

• der Auswahlfunktionen,<br />

• sowie durch Verbesserung der Darstellung von<br />

• Abstrakten als Zusammenfassungen des Inhaltes der Content-Objekte und<br />

• Erweiterung der Kuverts, die wir im folgenden betrachten.<br />

Die Verfeinerung führt aufgrund des generischen Charakters der Funktionen zu einer Veränderung des Verhaltens der<br />

vier Hauptfunktionen, nicht aber zur Veränderung der Funktionen.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 465<br />

4.2.5 Der Content-Typ Benutzer-Arbeitsplatz<br />

Ein <strong>Information</strong>ssystem soll einen Benutzer effizient und effektiv in seiner Arbeit unterstützen. Das Portfolio, hauptsächlich<br />

bestehend aus dem Aufgabenmodell und dem Rollen- und Rechtemodellen des Akteurs, und das Benutzerpr<strong>of</strong>il werden<br />

zur Generierung des Playout und des Layout der Content-Typen herangezogen. Portfolio und Pr<strong>of</strong>ile beh<strong>and</strong>eln<br />

wir im Abschnitt ?? ausführlich.<br />

Weiterhin muß eine Unterstützung für die Zusammenarbeit in Arbeitsgruppen erfolgen. Damit soll ein Content-<br />

Typ “Arbeitsplatz” auch die Zusammenarbeit in Arbeitsgruppen und die Publikation der Resultate der Zusammenarbeit<br />

gewährleistet werden. Wir unterscheiden aktive Content-Objekte, aktivierte Content-Objekte und passive Content-<br />

Objekte und entwickeln Kooperationsverträge zwischen den Objekten. Prozesse und Dialoge der Content-Objekte<br />

können sich auch gegenseitig bedingen, blockieren, abweisen und starten.<br />

Wir unterscheiden verschiedene Arten von Kopplungsmechanismen, die auch im Kombination verwendet werden<br />

können.<br />

• Bei einer Kopplung im Story-Raum werden die gleichen Daten interaktiv verwendet. Die Operationen sind<br />

durch Interaktion gekoppelt. Dazu existieren verschiedene Kopplungsmethoden: interne Kopplung, globale<br />

Kopplung, externe Kopplung, Kontrollflußkopplung, W<strong>and</strong>erdatenkopplung und Parameterkopplung.<br />

• Die Container-Kopplung erlaubt nur ein Zusammenspiel der Content-Objekte unterschiedlicher Container. Es<br />

können verschiedene Grade der Kopplung unterschieden werden: versteckte Kopplung, verstreute Kopplung<br />

und spezifizierte Kopplung.<br />

• Die Kopplung durch Kooperation der Content-Objekte im Sinne der Sichtenkooperation folgt der hierarchischen<br />

Struktur der Typen des Schemas. Je nach Erzwingungsmechanismus unterscheiden wir Änderungskopplung<br />

(Signaturänderungskopplung bzw. Implementationsänderungskopplung), Verfeinerungskopplung (Signaturverfeinerungskopplung,<br />

Implementationsverfeinerungskopplung) und Erweiterungskopplung.<br />

Durch die Kohäsion wird die Bindung zwischen den einzelnen kooperierenden Objekten beschrieben. Aufgrund der<br />

Modellierung existieren verschiedene Arten. Die Funktions-Kohäsion (zufällige Kohäsion, logische Kohäsion, temporale<br />

Kohäsion, prozedurale Kohäsion, Kommunikationskohäsion, sequentielle Kohäsion und funktionale Kohäsion)<br />

geht von einer Bindung durch Operationen aus. Die Typ-Kohäsion (zerlegbare Kohäsion, mehrschichtige Kohäsion,<br />

nicht delegierte Kohäsion und verborgene Kohäsion) bewertet die Bindung der Objekte innerhalb einer Klasse. Die<br />

Vererbungskohäsion folgt der Definition der Hierarchien unter den Typen und Klassen.<br />

Im Rahmen der Forschungen zur Gruppenarbeit (CSCW Computer supported cooperative work) wurden Dialage<br />

nach unterschiedlichen Eigenschaften charakterisiert.<br />

Charakterisierung nach Raum und Zeit: Je nach Ort und Zeit sind unterschiedliche Dialoge möglich:<br />

Gleicher Ort<br />

Anderer Ort<br />

Gleiche Zeitpunkte Elektronische Besprechung Videokonferenz<br />

Elektronisches Brett<br />

Konversationsunterstützung<br />

Gemeinsamer Bildschirm Kooperatives <strong>Design</strong><br />

Brainstorming<br />

Gruppeneditoren<br />

Zuhörerreaktion<br />

Verschiedene Zeitpunkte Gemeinsam genutzte Dateien Strukturierter Arbeitsfluß<br />

<strong>Design</strong>werkzeuge<br />

Elektrononische Post<br />

Nachrichtenbrett<br />

Charakterisierung nach Interaktionsart: Die wichtigste Arten sind die folgenden:<br />

Durch den Sprechakt wird die Interaktionsform beschrieben.<br />

Im illokutionären Akt wird die kommunikative Funktion der menschlichen Kommunikation nachgebildet<br />

(z.B. präpositionaler Akt). Typische Darstellungsformen sind Assertion, Direktive, Kommissive,<br />

Deklarative und Expressive.<br />

Für den perlokutionären Akt wird die Wirkung auf den Zuhörer bewertet.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 466<br />

Die Konversation ist eine Kombination einer Reihe von Sprechakten. Wir unterscheiden dabei die<br />

die Konversation zur H<strong>and</strong>lung (Aufforderung zu einer H<strong>and</strong>lung),<br />

die Konversation zur Klärung (als Interaktion),<br />

die Konversation zur Entscheidung über Möglichkeiten (über einen H<strong>and</strong>lungsverlauf) und<br />

die Konversation zur Orientierung (zur klareren Darstellung der Umgebung).<br />

Die Charakterisierung nach Aktivitäten dient der Einbettung des Dialoges in die Spezifikation der Funktionalität.<br />

Ein Content-Typ Benutzer-Arbeitsplatz sollte die eine oder die <strong>and</strong>ere Form unterstützen. Wir wählen dazu einen<br />

Ansatz, der sich relativ einfach realisieren läßt, sich gleichzeitig harmonisch mit den bisherigen Ansätzen verbindet<br />

und in Bild 11 skizziert ist:<br />

Kern-Typen des Content-Typs Benutzer-Arbeitsplatz sind die Typen Person, Arbeitsgruppe und Arbeitsplatz. Diesen<br />

Kern-Typen werden unterschiedliche Typen auf der Grundlage folgender Annahmen zugeordnet:<br />

Gruppierung von Personen in Akteure: Personen werden je nach ihrem Portfolio (Aufgaben, Stelle, Rolle,<br />

Umstände und Ziele) gruppiert. Diese Abstraktion wird durch die Einführung von Akteuren unterstützt.<br />

Arbeitgruppen: Eine Zusammenarbeit findet in Arbeitsgruppen und zwischen Arbeitsgruppen statt. Diese<br />

Interaktionsformen werden unterschieden. Die Mitarbeit von Personen in einer Arbeitsgruppe und das<br />

Treffen von Arbeitsgruppen sind durch unterschiedliche Typen realisiert.<br />

Zuordnung der Rechte zu Akteuren: Akteure erhalten Rechte z.B. zur Veröffentlichung der Resultate. Die<br />

Rechte an der Bearbeitung von Content-Objekten können analog erfaßt werden.<br />

Portfolio: Personen werden bei der Erledigung von Aufgaben unterstützt. Jede Person erhält dazu ihr spezifisches<br />

Portfolio, das in die Zusammenarbeit der Arbeitsgruppen einfließt.<br />

Organisationsmodell: Es wird ein einfaches Organisationsmodell benutzt, bei dem einer Person Rollen zugeordnet<br />

werden, die in der Firma üblich sind.<br />

Content-Objekte und Container stehen den Benutzern zur Verfügung. Sie befinden sich zu unterschiedlichen Zeitpunkten<br />

auf unterschiedlichen Arbeitsplätzen.<br />

Mit einem Content-Typ Arbeitsplatz können sowohl Arbeitsgruppen, als auch Benutzer auf einfache Art in ihren<br />

Kooperationsbeziehungen unterstützt werden.<br />

• Je nach Art der Arbeitsaufgabe,<br />

• je nach Portfolio oder Person,<br />

• je nach Einwahl und Ausweis als Akteur,<br />

• je nach Gruppenzugehörigkeit,<br />

• je nach Content-Objekt-Menge bzw. Container<br />

wird einem Benutzer ein <strong>and</strong>erer Arbeitsplatz zur Verfügung stehen. Damit besitzt eine Person unterschiedliche Rechte.<br />

Akteure sind dann z.B. der Administrator, der Leiter einer Arbeitsgruppe und der Besitzer von Content-Objekten<br />

oder Containern.<br />

Die Außendarstellung für den anonymen Benutzer wird über das Nachrichtenbrett realisiert.<br />

Auf dem Content-Typ Arbeitsplatz kann zur Laufzeit ein Sitzungsobjekt aufgesetzt werden. Damit dies in allgemeiner<br />

Form möglich ist, führen wir Sichten über dem Content-Typ ein, die wir Sitzungs-Schema S Arbeitsplatz (Parameter)<br />

nennen.<br />

Ein Sitzung-Objekt SO Arbeitsplatz (a, b, ...) stellt eine Instantiierung des Sitzungs-Schemas und eine Einbettung<br />

in den Kontext dar.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 467<br />

Nutzeraccount<br />

Nachrichtenbrett<br />

✛<br />

✻<br />

⊕<br />

Spezifische<br />

Rechte<br />

❄<br />

Akteur<br />

✻<br />

gruppiert<br />

zu<br />

Person<br />

hat Pr<strong>of</strong>il<br />

✲<br />

✲<br />

✻<br />

nutzt<br />

plaziert<br />

auf<br />

❄<br />

Mitarbeitportfolio<br />

❄<br />

Person<br />

✻<br />

Berechtigung<br />

zu<br />

Rolle<br />

✲<br />

Rolle<br />

✻<br />

✠<br />

Mitarbeit<br />

in<br />

❄<br />

Veröffentlichungsorgan<br />

❄<br />

❄<br />

Firma ✛ freigegebene ✲<br />

Rolle<br />

Memo ✛<br />

✯<br />

✻<br />

⊕<br />

✛<br />

✲<br />

✲<br />

Rolle<br />

freigegebene<br />

Funktion<br />

nutzt<br />

gehört<br />

zu<br />

✛<br />

❄<br />

Container ✛<br />

✲<br />

✲<br />

Weitergabeart<br />

✻<br />

Content-<br />

Typ<br />

✻<br />

von<br />

❄<br />

Arbeitsplatz<br />

✻<br />

❄ ✢<br />

✲ Content- ✛<br />

Objekt<br />

befindet<br />

sich auf<br />

Memokategorie<br />

Portfolioart<br />

✙<br />

Arbeitsgruppe<br />

Arbeitsnachrichten<br />

✲ Treffen ✛<br />

Aufgaben<br />

mit ✲<br />

Ziele<br />

✻<br />

Verantwortungstyp<br />

✛ Verantwortung ✲<br />

Teilnehmer<br />

✲<br />

Ausleihmodus<br />

✻<br />

befindet<br />

sich in<br />

klassifiziert<br />

in<br />

✠<br />

✲<br />

nutzt<br />

Kategorie<br />

Raum<br />

Abbildung 11: Teil des Schemas für den Content-Typ Arbeitsplatz (ohne Attribute und Beschränkungen)<br />

Web IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 468<br />

Ein Sitzungs-Schema ist eine parametrisierte Sicht auf den Content-Typ Arbeitsplatz. Parameter eines Sitzungs-<br />

Schemas sind dann Auswahl-Objekte, mit denen die Daten und Funktionen für eine Sitzung freigeschaltet werden<br />

können.<br />

Im Beispiel von Bild 11 ist dies ein Parameter<br />

Aufruf = choose Person (Name, Login, Paßwort)<br />

or Mitglied (Name, Login, Paßwort, Arbeitsgruppe)<br />

or Akteur (Name, Login, Paßwort, Rolle)<br />

or Anonymität<br />

Damit werden die entsprechenden Sichten und Funktionen freigeschaltet. Gleichzeitig wird die Konsistenz in der<br />

Benutzung entsprechend der gewählten Kooperationsbeziehungen gewahrt. Damit wird ein Benutzer auf unterschiedliche<br />

Art unterstützt:<br />

Person als zentraler Einwahlpunkt in den Arbeitsplatz: In diesem Fall werden unter Berücksichtigung der Rollen,<br />

Rechte und des Portfolios der Arbeitslatz mit den Containern und Content-Objekten aufgebaut.<br />

Mitglied einer Arbeitsgruppe mit einer Einwahl in die Arbeitsgruppe, den für die Arbeitsgruppe freigegebenen Arbeitsplätzen,<br />

den entsprechenden Containern und den aktuellen Arbeitstreffen.<br />

Akteur mit einer Einwahl über die Person und die Rolle, dem Freischalten von entsprechenden Teilen des Content-<br />

Objektes zur Bearbeitung von Daten etc.<br />

Anonyme Benutzung der freigegebenen Nachrichten, Content-Objekte und allgemeinen Übersichten.<br />

Das Content-Objekt SO Arbeitsplatz (Akteur(BernhardThalheim, thalheim, ∗ ∗ ∗∗, Arbeitsgruppenleiter)) generiert<br />

dann z.B. die Content-Objekte, Container und Schreibtische, die der Autor auf seinen Arbeitsplatz als Arbeitsgruppenleiter<br />

besitzt.<br />

Auf analoge Art können der Content-Typ Persönlicher Arbeitsraum und der Sitzungs-Typ<br />

S PersönlicherArbeitsraum (Parameter) realisiert werden.<br />

Damit steht eine allgemeine Technologie zur Realisierung beliebig komplexer Szenario zur Verfügung. Diese<br />

Technologie erlaubt auch die Generierung entsprechender Begleitinformation, das Aktualisieren der entsprechenden<br />

Datenbestände und kann durch Integration entsprechender allgemeiner und inhaltsbasierter Repräsentationsstile,<br />

einschließlich entsprechender Metaphern eine automatische Generierung von Arbeitsoberflächen unterstützen.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 469<br />

4.3 Sichtenkooperation und Integrationsschema<br />

Das Problem der Sichtenintegration ist ein unentscheidbares Problem. Eine vollständige Sichtenintegration ist jedoch<br />

in der Praxis weder erforderlich noch erwünscht. Oft sollen Datenbestände auch lose gekoppelt bleiben. Die<br />

Theorieeinsicht, daß eine Sichtenintegration unentscheidbar ist, steht der Praxisbeobachtung gegenüber, bei der Daten<br />

in unterschiedlichen Anwendungen relativ einfach mitein<strong>and</strong>er in Beziehung stehen können. Die Anwendungen<br />

verwenden allerdings in der Praxis ein explizites oder implizites Integrationsschema. Wir wollen diese Idee weiterverfolgen.<br />

Eine Integration von Daten ist aus einer Vielzahl von Gründen nicht möglich. Die Sichtenintegration wird durch<br />

verschiedene Vereinbarkeitsprobleme und Konflikte erschwert:<br />

Strukturelle Konflikte: Die Strukturen entsprechen ein<strong>and</strong>er nicht.<br />

Unterschiede in Schlüsseln: Es existieren nur verschiedene, nicht integrierbare Schlüssel.<br />

Abstraktionsgranularität: Die Abstraktion der verschiedenen Typen ist unterschiedlich. Zum Beispiel sind<br />

Vorlesung und Kurs in unserem Beispiel nicht auf gleichem Abstraktionsniveau.<br />

Verschiedene Zeitmaße und Wertebereiche: Die Repräsentation und die Wertemengen von Attribut-Typen<br />

können ein<strong>and</strong>er entsprechen, ohne daß dies direkt ersichtlich ist.<br />

Fehlende Typen: Da Sichten eine eingeschränkte Welt repräsentieren, sind sie unvollständig.<br />

Semantische Unterschiede: Die Bedeutung bzw. Semantik der Konzepte ist unterschiedlich.<br />

Unterschiede im Gültigkeitsbereich: Es gelten weder Inklusions- noch Exklusions-, noch die negierten Inklusions-<br />

, noch die negierten Exklusionsabhängigkeiten.<br />

Wertesemantik: Die Bedeutung der Werte umfaßt zusätzliche Werte, wie z.B. die Matrikelnummer, die das<br />

Immatrikulationsjahr mit einschließt.<br />

Verschiedene Konstruktoren bei Synonymen: Verschiedene Konstruktoren für äquivalente Mengen führen<br />

zu relativ komplexen Integritätsbedingungen, die in den Sichten fehlen.<br />

Verschiedene Operationen: Auf den Typen sind unterschiedliche Operationen definiert, die nicht integrierbar sind.<br />

Verschiedene Wertebereiche: Synonyme Typen besitzen verschiedene Wertebereiche.<br />

Wir können jedoch mit dem ER-Modell Mechanismen bereitstellen, die eine Kooperation von Sichten unterstützen.<br />

Gegeben seien die Sichtenschemata S 1 und S 2 und entsprechende Datenbanken S C 1 und SC 2 .<br />

Ein partieller Schema-Morphismus von S 1 und S 2 wird<br />

• als Paar (f 12 , f12 C ) von Funktionen definiert, so daß<br />

• f 12 eine partielle Einbettungsfunktion von Typen von S 1 in Typen von S 2 mit dem Definitionsbereich def(f 12 ) =<br />

S 12 ist,<br />

• f C 12 ist die korrespondierende Einbettung von Klassen von SC 1 in die von SC 2 , d.h.<br />

• f 12 : S 1 −→o S 2 und<br />

• f C 12 : SC 1 −→o S C 2<br />

• mit der Eigenschaft f C 12 (SC 1 ) |= T S 2 | f12 (T ) falls f 12 definiert ist für den Typen T , d.h. die Abbildung<br />

f 12 erhält die Semantik von S 2 .<br />

Damit kommutiert das linke Diagramm in Bild 12 .<br />

Die Partialität von (f 12 , f12 C ) definiert ein Sichtenschema S 11 in S 1 und eine Sicht f 12 (S 11 ) in S 2 .<br />

Es sei außerdem ein partieller Schema-Morphismus (f 21 , f21 C ) von S 1 und S 2 gegeben.<br />

Die Schema-Morphismen (f 12 , f12 C ) und (f 21, f21 C ) definieren eine Sichtenkooperation falls


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 470<br />

S 1<br />

f 12<br />

✲<br />

S 2<br />

|= |=<br />

S C 1 S C 2<br />

f12<br />

C<br />

S C ✲<br />

1 S C 2<br />

S 2<br />

f 21<br />

✲<br />

|= |=<br />

S 1<br />

S C 11<br />

f12 C (SC 11<br />

f ✲ )<br />

12<br />

C<br />

f21 C (SC 21 ) ✛ f21<br />

C<br />

S C 21<br />

f C 21<br />

S C ✲<br />

2 S C 1<br />

Abbildung 12: Partielle Schema-Morphismen zur Sichtenkooperation<br />

• für jeden Typ T 1 ∈ S 11 ∩ f 21 (S 21 ) und jedem Typ T 2 ∈ S 21 ∩ f 12 (S 11 ),<br />

• für jedes Paar der entsprechenden Klassen T C 1 ∈ S C 1 , T C 2 ∈ S C 2<br />

• die Funktionen f C 12 (T C 1 ), f C 21 (f C 12 (T C 1 )), f C 21 (T C 2 ), f C 12 (f C 21 (T C 2<br />

)) definiert sind und<br />

• die kommutierenden Gleichungen f C 21 (f C 12 (T C 1 )) = T C 1 , f C 12 (f C 21 (T C 2 )) = T C 2 gelten.<br />

Durch die Sichtenkooperation wird ein Input eines Schemas mit dem Output eines <strong>and</strong>eren Schemas verknüpft.<br />

Diese Verknüpfung erlaubt eine Verbindung von Sichten, wie in Bild 12 bei Angabe der Funktionen f 12 und f 21 .<br />

Sind die Typen der Sichten entweder über Schema-Morphismen total verbunden oder paarweise verschieden,<br />

dann sprechen wir von der Sichtenintegration. Eine Sichtenintegration können wir damit formal definieren. Meist<br />

wird eine Sichtenintegration nur pauschal und informal in der Literatur eingeführt. Mit dem Schema-Morphismus<br />

können wir die Sichtenintegration auch formal fassen. In diesem Fall gelten:<br />

• f 12 (S 11 ) = S 21 und<br />

• f 21 (S 21 ) = S 11 .<br />

Sind zwei Typen total verbunden, wird einer der Typen der Schemata zur Weiterführung im integrierten Schema<br />

ausgewählt und der nicht verwendete Typ über eine Sichtendefinition an den verbleibenden Typen gebunden.<br />

Die Assoziierbarkeit von Typen der Schemata wird durch die Wertebereiche der Typen der Sichtenschemat begrenzt:<br />

Typen T 1 in S 1 und T 2 in S 2 sind wertebereichsverträglich, falls dom(T 1 ) = dom(T 2 ) gilt.<br />

Es ist anzumerken, daß die Wertebereichsverträglichkeit nicht auf eine Teiltypen-Eigenschaft S 11 ∩ f 21 (S 21 )<br />

und in S 21 ∩ f 12 (S 12 ) für die Morphismen der Sichtenkooperation reduzierbar ist.<br />

Die beiden Schema-Morphismen (f 12 , f12 C ) und (f 21, f21 C ) definieren eine Gleichungstheorie E. Wir können vereinfachend<br />

annehmen, daß alle Typen-Namen in den Schemata S 1 und S 2 verschieden sind. Damit können wir für<br />

alle Typen T 1 in S 1 die Gleichung T 1 = f 12 (T 1 ) und für alle Typen T 2 in O2 V die Gleichung T 2 = f 21 (T 2 )<br />

zur Gleichungstheorie E hinzufügen.<br />

Falls wir an einer vollständigen Integration interessiert sind, dann können die Gleichungen durch Term-Ersetzungsregeln<br />

der Form T ❀ f ij (T ) oder f ij (T ) ❀ T ersetzt werden. Diese Ersetzungsregeln müssen auch dem induktiven<br />

Aufbau der Typen folgen. Deshalb wird auch ein Ableitungssystem benötigt. Wir nutzen dazu die folgenden Inferenzregeln:<br />

E ∪ {T (T 1 , ...., T m ) = S(S 1 , ..., S m )}<br />

E ∪ {T 1 = S 1 , ..., T m = S m }<br />

E ∪ {T = T }<br />

E<br />

E ∪ {T = S}<br />

E ∪ {S = T }<br />

E ∪ {T = S}<br />

ϑ T ❀S (E) ∪ {T = S}<br />

für Substitution von ϑ T ❀S in E.<br />

Zwei Sichtenschemata sind integrierbar, wenn Schema-Morphismen existieren, die alle Typen der Schemata paarweise<br />

mitein<strong>and</strong>er assoziieren.


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 471<br />

Wir können die Sichtenintegration auch durch Definition entsprechender Anfragemengen definieren. Diese Definition<br />

ist der obigen äquivalent.


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 472<br />

4.4 Medientypen<br />

4.4.1 Grundlagen für die Technologie der Medientypen<br />

The Join Operation.<br />

In order to obtain also a generalised join it is a natural idea to exploit subtyping on the type system. This is a<br />

preorder ≤ on the types.<br />

Suppose, our collection <strong>of</strong> base types contains at least the type 1l. BOOL may be identified with {1l}. Then<br />

subtyping can be defined in the st<strong>and</strong>ard way as the smallest preorder such that the following holds:<br />

• For any type t we have t ≤ 1l.<br />

• For set types (or list types, respectively) we have {t} ≤ {t ′ } (or [t] ≤ [t ′ ], respectively) iff t ≤ t ′ holds.<br />

• For tuple types we have t 1 × · · · × t m ≤ t ′ 1 × · · · × t′ n iff t σ(i) ≤ t ′ i holds for some injective σ : {1, . . . , n} →<br />

{1, . . . , m}.<br />

Then each subtype relation t ≤ t ′ defines an associated subtype function π t ′ : t → t ′ . Note that the projections in<br />

relational algebra are just such subtype functions. Indeed, t is the least common supertype <strong>of</strong> t 1 <strong>and</strong> t 2 ; t 1 ⊲⊳ t t 2 is a<br />

common subtype.<br />

The following theorem is central for the definition <strong>of</strong> the general join [Sch01].<br />

Theorem 1 Consider a type system with the trivial type 1l as one <strong>of</strong> its base types <strong>and</strong> with constructors among<br />

the tuple, set <strong>and</strong> list constructors. If t is a common supertype <strong>of</strong> t 1 <strong>and</strong> t 2 with associated subtype functions πt i :<br />

t i → t, then there exists a common subtype t 1 ⊲⊳ t t 2 together with subtype functions π ti : t 1 ⊲⊳ t t 2 → t i such that<br />

πt 1 ◦ π t1 = πt 2 ◦ π t2 holds. Furthermore, for any other common subtype t ′ with subtype functions π t ′ i<br />

: t ′ → t i with<br />

πt 1 ◦ π t ′ 1<br />

= πt 2 ◦ π t ′ 2<br />

there is a unique subtype function π : t ′ → t 1 ⊲⊳ t t 2 with π ti ◦ π = π t ′ i<br />

.<br />

For t = 1l we obtain t 1 ⊲⊳ t t 2 simply as the product t 1 × t 2 . With the existence <strong>of</strong> the join types t 1 ⊲⊳ t t 2 the join<br />

over t can be defined as in the relational case. For this let C 1 <strong>and</strong> C 2 be classes. We define<br />

C 1 ⊲⊳ t C 2 = {z : T C1 ⊲⊳ t T C2 | ∃z 1 ∈ C 1 .∃z 2 ∈ C 2 .π t1 (z) = z 1 ∧ π t2 (z) = z 2 } .<br />

Example 1 Consider t 1 = {b 1 × {b 2 × b 3 } × b 4 } <strong>and</strong> t 2 = {b 1 × {b 5 × b 3 } × b 6 } with the common supertype<br />

t = {b 1 × {b 3 }}. Then we obtain the join type<br />

t 1 ⊲⊳ t t 2 = {b 1 × {b 2 × b 5 × b 3 } × b 4 × b 6 } .<br />

H<strong>and</strong>ling URLs.<br />

The structures allowed by the definition <strong>of</strong> databases in the previous section are all finite. In fact, values can be<br />

represented as finite trees. A slight generalization would be to allow infinite trees, but <strong>of</strong> course only such infinite<br />

trees that can be represented in a finite way. For this we introduce labels l. We extend any given type system in such<br />

a way allowing types to be adorned with labels <strong>and</strong> labels themselves to be treated in the same way as base types.<br />

Thus, our type system extends to<br />

t = b | l | t 1 × · · · × t n | {t} | [t] | l : t.<br />

Furthermore, we have to restrict ourselves to well-defined types. For this we require that for each label l occurring<br />

within a type t—in a place, where we could have a base type instead—some decorated type l : t ′ must occur in t, too.<br />

Values <strong>of</strong> such types with labels can be written as an infinite tree. Figure 13 a) shows such a tree. We call a tree<br />

rational iff the number <strong>of</strong> different subtrees is finite. Then only rational trees will be allowed as values <strong>of</strong> well-defined<br />

types with labels. For our example, this means to restrict to values <strong>of</strong> the form<br />

(n 1 , a 1 , (n 2 , a 2 , (. . . , (n k , a k , (. . . )))),<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 473<br />

⊗<br />

n 1<br />

n 2<br />

n 3<br />

a 1<br />

a 2<br />

a 3<br />

⊗<br />

⊗ ✐<br />

⊗<br />

⊗<br />

n 1<br />

n 2<br />

a 1<br />

a 2<br />

.<br />

a) Abbildung 13: Rational Tree b)<br />

representation with ✛ ✲representation with<br />

links<br />

rational trees<br />

query operation Q ′<br />

❄<br />

representation with ✛<br />

links<br />

query operation Q<br />

❄<br />

✲representation with<br />

rational trees<br />

Abbildung 14: H<strong>and</strong>ling URLs in queries<br />

such that n i = n j <strong>and</strong> a i = a j holds for some i <strong>and</strong> j. In addition, we would like to add a constraint <strong>and</strong> require<br />

i = 1, j = 3, but this constraint must be added explicitely; it is not captured by the type system. Figure 13 b)<br />

illustrates such a rational tree.<br />

Since we restrict ourselves to well-defined types with labels, which can be written as rational trees, <strong>and</strong> allow<br />

only rational trees as values, we shall talk <strong>of</strong> rational tree types.<br />

One important feature <strong>of</strong> rational tree types is that the query algebra outlined in the previous subsections extends<br />

naturally to rational tree types. Furthermore, as the representation with URLs can be regarded as a means to finitely<br />

represent rational trees, it can also be shown that we can replace the rational trees by the URLs, iff the query language<br />

is extended in such a way that it can create URLs <strong>and</strong> links. This can be done as follows:<br />

• create urls transforms a set {v 1 , . . . , v m } <strong>of</strong> values into a set {(u 1 , v 1 ), . . . , (u m , v m )} <strong>of</strong> pairs with new<br />

created URLs u i <strong>of</strong> type URL;<br />

• It also transforms a list [v 1 , . . . , v m ] <strong>of</strong> values into a list [(u 1 , v 1 ), . . . , (u m , v m )] <strong>of</strong> pairs with new created<br />

URLs u i <strong>of</strong> type URL;<br />

• The operation create url transforms a value v <strong>of</strong> any type into a pair (u, v) with a new URL u.<br />

Theorem 2 Let S be a database schema, where the types <strong>of</strong> classes are rational tree types <strong>and</strong> let S ′ be an equivalent<br />

schema that uses the type URL, but no rational tree types. Then the result <strong>of</strong> an algebra query on S ′ with URL <strong>and</strong><br />

link creation is the URL-based representation <strong>of</strong> the result <strong>of</strong> the same query applied to S <strong>and</strong> vice versa.<br />

Figure 14 illustrates the relationship between querying with URL creation <strong>and</strong> querying with rational trees.<br />

Example 2 Consider the scene home loan in Example ??. For this scene the information consumption is the description<br />

<strong>of</strong> a particular loan type. So we get<br />

cont(home loan) = (type : STRING, conditions : STRING,<br />

interest : { (amount : CARD, rate : FLOAT) }) .<br />

In this case the defining query is simply q home loan = create urls(LOAN TYPE).<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 474<br />

4.4.2 Operations on Interaction Types<br />

Conceptual abstraction <strong>of</strong> database behaviour is achieved via operations associated with database types. These operations<br />

can be described in a way known from programming languages. Here we adopt an imperative style. Then, in<br />

order to model the required functionality we also add operations to interaction types. This is completely analogous to<br />

the d-operations on dialogue types [SS00].<br />

Definition 1 An operation on a database type C consists <strong>of</strong> a signature <strong>and</strong> a body. The signature consists <strong>of</strong> an<br />

operation name O, a set <strong>of</strong> input-parameter/type pairs ι i :: T i <strong>and</strong> a set <strong>of</strong> output-parameter/type pairs o j :: T j ′. The<br />

body is recursively built <strong>of</strong> the following constructs:<br />

• assignment x E := exp, where x is a variable representing the content <strong>of</strong> the type E itself or a local variable<br />

(including the output-parameters), <strong>and</strong> exp is an expression <strong>of</strong> the same type as x E ,<br />

• local variable declaration Let x : t,<br />

• skip <strong>and</strong> fail,<br />

• sequencing S 1 ; S 2 <strong>and</strong> branching IF P THEN S 1 ELSE S 2 ENDIF ,<br />

• operation call E ′ :- O ′ (in : exp ′ 1 , . . . , exp′ j , out : x′ 1 , . . . , x′ i ), where O′ is an operation on the type E ′ with<br />

compatible signature, <strong>and</strong><br />

• non-deterministic selection <strong>of</strong> values New.f(x), where f is a selector on E.<br />

An operation on an interaction type M consists <strong>of</strong> an operation signature, i.e., name, input-parameters <strong>and</strong><br />

output-parameters, a selection type which is a supertype <strong>of</strong> cont(M), <strong>and</strong> a body which is defined via operations<br />

accessing the underlying database.<br />

There exist several st<strong>and</strong>ard operations that are <strong>of</strong> particular interest in web information systems:<br />

• Generalization functions are used for generation <strong>of</strong> aggregated data. They are useful especially in the case<br />

<strong>of</strong> insufficient space or for the display <strong>of</strong> complementary, generalized information after terminating a task.<br />

Hierarchy rules are used for the specification <strong>of</strong> applicability <strong>of</strong> generalization functions. The roll-up function<br />

in [AGS97a], slicing, <strong>and</strong> grouping are special generalization functions.<br />

• Specialization functions are used for querying the database in order to obtain more details for aggregated data.<br />

The user can obtain more specific information after he has seen the aggregated data. Hierarchy rules are used for<br />

the specification <strong>of</strong> applicability <strong>of</strong> specialization functions. The drill-down function used in the data warehouse<br />

approach is a typical example.<br />

• Reordering functions are used for the rearrangement <strong>of</strong> units. The pivoting, dimension destroying, pull <strong>and</strong><br />

push functions [AGS97a] <strong>and</strong> the rotate function are special reordering functions.<br />

• Browsing functions are useful in the case that information containers are too small for the presentation <strong>of</strong> the<br />

complete information.<br />

• Sequentialization functions are used for the decomposition <strong>of</strong> sets or sequences <strong>of</strong> information.<br />

• Linking functions are useful whenever the user is required to imagine the context or link structure <strong>of</strong> interaction<br />

types.<br />

• Survey functions can be used for the graphical visualization <strong>of</strong> the contents <strong>of</strong> the interaction type.<br />

• Searching functions can be attached to interaction types in order to enable the user for computation <strong>of</strong> add-hoc<br />

aggregates.<br />

• Join functions are used for the construction <strong>of</strong> more complex interaction types on the basis <strong>of</strong> the given metaschema.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 475<br />

4.5 Modelling Contextual <strong>Information</strong><br />

Within the framework <strong>of</strong> media types the problem <strong>of</strong> contextual information is not yet well supported. In [FKST00]<br />

it has been emphasised that “escort information” is required in each scene. The problem is to provide in a condensed<br />

form the information the user has already seen since entering the WIS. This means to place each scene <strong>of</strong> the story<br />

space into a context. The work in [FKST00] claims that introducing a subtyping mechanism between media types<br />

is useful for modelling escort information, thus contexts. However, subtyping is a static concept, which is useful for<br />

tree-like navigation structures, whereas in some cases the more complex navigation <strong>and</strong> story structures will require<br />

a dynamic solution. We therefore ask, whether the work on contextual information bases (CIBs) [AST02, TACS98,<br />

TACS99] can be exploited for enhancing our methodology. We generalise <strong>and</strong> tailor the CIB-approach in order to<br />

integrate it with the theory <strong>of</strong> media types. This provides the formal conceptual means for context modelling.<br />

According to the theory <strong>of</strong> CIBs a context is a set <strong>of</strong> objects, each having several names, <strong>and</strong> each <strong>of</strong> these names<br />

may be coupled with a reference to another context. There may be names for objects that are not referencing to other<br />

contexts. Here, the term “object” is used in the sense <strong>of</strong> “object identifier”, i.e. a unique abstract h<strong>and</strong>le to identify<br />

objects.<br />

More formally, a context C is a finite set <strong>of</strong> triples (o i , n i , r i ), where o i is an object identifier, i.e. a value <strong>of</strong> some<br />

base type ID, n i is a name, i.e. a value <strong>of</strong> type STRING, <strong>and</strong> r i is either a reference → C ′ to a context C ′ or nil, the<br />

latter one indicating that there is no such reference.<br />

We write C = {n 1 : o 1 → C 1 , . . . , n l : o l → C l }. If there is no reference for the i’th name, i.e. we have<br />

(o i , n i , nil) we simply omit → C i <strong>and</strong> write n i : o i .<br />

The idea <strong>of</strong> working with contextual information bases is that a user queries them <strong>and</strong> thus retrieves objects. In<br />

order to describe these objects in more details she or he accesses the context(s) <strong>of</strong> the object, which will lead — by<br />

following the references — to other objects. In addition, a particular information encoded by the name is associated<br />

with each <strong>of</strong> these references. The work in [TACS99] describes a path query language for contextual information<br />

bases. Most important for our problem are the following macros <strong>of</strong> this language:<br />

• The macro look-up(C, n) takes two input parameters. The first one is the name <strong>of</strong> a context C. The second<br />

one is a name n, i.e., a value <strong>of</strong> type STRING. The macro returns name paths n i = n 0 i , . . . , nk i<br />

i<br />

starting from<br />

context C <strong>and</strong> ending in n, i.e. n k i<br />

i<br />

= n.<br />

• The macro cross-ref(p, C) also takes two input parameters. Here the first one is a name path p = p 0 , . . . , p l .<br />

The second one is the name <strong>of</strong> a context C. The macro returns name paths n i = n 0 i , . . . , nk i<br />

i<br />

starting from context<br />

C <strong>and</strong> ending in the name specified by p, i.e., p l = n k i<br />

i .<br />

Let us now bring together media types <strong>and</strong> contextual information bases. The obvious questions are:<br />

• What are the objects that are required in contextual information bases, if we are given media types?<br />

• What are the references that are required in contextual information bases?<br />

• Is it sufficient to have names for describing objects in a context or should these be replaced by something else?<br />

The natural idea for generalising the notion <strong>of</strong> object in contexts is to choose the media objects. Concentrate on the<br />

raw media objects first. Evaluating the defining query for a raw media type M leads to a set {(u 1 , v 1 ), . . . , (u n , v n )}<br />

<strong>of</strong> raw media objects. Recall that the u i are values <strong>of</strong> type URL, whereas the v i are values <strong>of</strong> the representing type t M .<br />

As these URL-values are unique, they identify the raw media objects, <strong>and</strong> thus can be used as surrogates for them in<br />

the notion <strong>of</strong> context.<br />

This answers our first question. The objects are the media objects. The object identifiers needed in the contexts<br />

are the (abstract) URLs <strong>of</strong> these media objects.<br />

As we want to have access to path information, we may want to reference back to the various media objects<br />

that we have encountered so far. These media objects are placed in several contexts, one <strong>of</strong> which is the right one<br />

corresponding to our path. However, we may also have different references, which lead to different contexts. So, the<br />

contexts we asked for in the second questions are just the contexts for the media objects.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 476<br />

As to the third question, we definitely want to have more information than just a name. Fortunately, the theory <strong>of</strong><br />

media types is already based on the assumption <strong>of</strong> an underlying type system. Thus, we simply have to replace the<br />

names by values <strong>of</strong> any type allowed by the type system. Having defined such extended contexts, the query macros<br />

such as look-up <strong>and</strong> cross-ref would allow to traverse back a path in the story board <strong>and</strong> to explore alternative<br />

access paths, respectively.<br />

However, one important aspect <strong>of</strong> media types is the use <strong>of</strong> classification abstraction. Conceptually, we do not define<br />

a set <strong>of</strong> media objects, but we generate them via queries defined on some underlying database schema. Therefore,<br />

we also need a conceptual abstraction for contexts.<br />

In order to obtain this conceptual abstraction, we assume another base type Context, the values <strong>of</strong> which are<br />

context names. Instead <strong>of</strong> this, we could take the type URL, but in order to avoid confusion we use a new type.<br />

A context consists <strong>of</strong> a name C, i.e. a value <strong>of</strong> type content, a type t C <strong>and</strong> a defining query q C , which must be<br />

defined on the media schema, i.e., the set <strong>of</strong> media types, such that<br />

({(object : URL, value :t C , reference : Context)}, q C )<br />

defines a view. Thus, executing the query q C will result in a set <strong>of</strong> triples (u i , v i , r i ), where u i is the URL <strong>of</strong> a<br />

media type, v i is a value <strong>of</strong> type t C , <strong>and</strong> r i is the name <strong>of</strong> a context. If this context is undefined, this is interpreted as<br />

no reference for this object in this context. Note that in particular this definition <strong>of</strong> context leads to views over views.<br />

Let us finally reconsider the “old” definition <strong>of</strong> media types in [FKST00], which included supertypes. In this<br />

case, all the supertypes are media types, thus depend on defining queries. They could be treated as queries defining a<br />

context. Thus, a media object <strong>of</strong> type M would be in as many contexts as there are supertypes <strong>of</strong> M. However, there<br />

are two important differences:<br />

• In contextual information bases we want to select one context to obtain the information about the path, whereas<br />

the supertyping assumes that the combination <strong>of</strong> all supertypes defines the required context.<br />

• If the supertypes are treated as if they are defining contexts, then there will be no references from their objects<br />

to other contexts. This omits the possibility <strong>of</strong> navigating through contexts.<br />

Alternatively, we could take all the defining queries <strong>of</strong> supertypes <strong>of</strong> M together to define a context. Then each<br />

media object would belong to exactly one context, <strong>and</strong> as before there would not be any references to other contexts.<br />

Thus, supertyping turns out to be a simplified, static version <strong>of</strong> context modelling.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 477<br />

4.6 Abbildung auf objekt-relationale Strukturen<br />

4.6.1 Management von virtuellen und materialisierten Sichten<br />

4.6.2 Versionierung<br />

Warum dann HERM anstatt von UML.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 478<br />

4.7 Modellierung von Sichten<br />

Übung:<br />

.


CAU zu Kiel, IfI, ISE, β 4. Sichten und Medientypen ab SS 2012 479<br />

Literatur<br />

[AGS97a] R. Agrawal, A. Gupta, <strong>and</strong> S. Sarawagi. Modeling multidimensional database. In Proc. Data Engineering<br />

Conference, Birmingham, pages 232–243, 1997.<br />

[AGS97b] R. Agrawal, A. Gupta, <strong>and</strong> S. Sarawagi. Modeling multidimensional databases. In A. Gray <strong>and</strong> P.-Å.<br />

Larson, editors, Proc. 13th Int. Conf. on Data Engineering - ICDE’97, pages 232–243, Birmingham,<br />

1997. IEEE Computer Society Press.<br />

[AST02]<br />

M. Akaishi, N. Spyratos, <strong>and</strong> Y. Tanaka. A component-based application framework for context-driven<br />

information access. In Hannu Kangassalo, editor, <strong>Information</strong> Modelling <strong>and</strong> Knowledge Bases, volume<br />

XIII, pages 254–265. IOS Press, Amsterdam, 2002.<br />

[FKST00] T. Feyer, O. Kao, K.-D. Schewe, <strong>and</strong> B. Thalheim. <strong>Design</strong> <strong>of</strong> data-intensive web-based information<br />

services. In Qing Li, Z. Meral Ozsuyoglu, Rol<strong>and</strong> Wagner, Yahiko Kambayashi, <strong>and</strong> Yanchun Zhang,<br />

editors, Proceedings <strong>of</strong> the 1st International Conference on Web <strong>Information</strong> <strong>Systems</strong> Engineering (WISE<br />

2000), pages 462–467. IEEE Computer Society, 2000.<br />

[GL97] M. Gyssens <strong>and</strong> L. V. S. Lakshmanan. A foundation for multidimensional databases. In M. Jarke, M. J.<br />

Carey, K. R. Dittrich, F. H. Lochovsky, P. Loucopoulos, <strong>and</strong> M. A. Jeusfeld, editors, Proc. 23rd Int. Conf.<br />

on Very Large Databases - VLDB’97, pages 106–115, Athens, 1997. Morgan Kaufmann, San Francisco.<br />

[Mol07]<br />

[Sch01]<br />

[SS00]<br />

A. Molnar. A general partition data model <strong>and</strong> a contribution to the theory <strong>of</strong> functional dependencies.<br />

PhD thesis, Eötvös Loránd University, Faculty <strong>of</strong> Informatics, Budapest, 2007.<br />

K.-D. Schewe. Querying web information systems. In Hideko S. Kunii, Sushil Jajodia, <strong>and</strong> Arne Sølvberg,<br />

editors, Conceptual Modeling – ER 2001, volume 2224 <strong>of</strong> LNCS, pages 571–584. Springer-Verlag, 2001.<br />

K.-D. Schewe <strong>and</strong> B. Schewe. Integrating database <strong>and</strong> dialogue design. Knowledge <strong>and</strong> <strong>Information</strong><br />

<strong>Systems</strong>, 2(1):1–32, 2000.<br />

[TACS98] M. Teodorakis, A. Analyti, P. Constantopoulos, <strong>and</strong> N. Spyratos. Context in information bases. In Proceedings<br />

CoopIS ’98, pages 260–270, 1998.<br />

[TACS99] M. Teodorakis, A. Analyti, P. Constantopoulos, <strong>and</strong> N. Spyratos. Querying contextualized information<br />

bases. In Proceedings ICT & P ’99, 1999.<br />

[Tha96] B. Thalheim, editor. Proc. 15th Int. ER Conf., Conceptual Modeling - ER’96, LNCS 1157, Cottbus,<br />

Germany, Oct. 7 - 10, 1996, 1996. Springer, Berlin.<br />

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

Mod IS IS ADD Web IS


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

5. DI-Management ab SS 2012<br />

Farben der Seiten im Skript.<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 />

Forschung<br />

Hintergrundinformation (auch Inhalte der Grundvorlesungen)<br />

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

5 Daten- und <strong>Information</strong>smanagement<br />

O glücklich, wer noch h<strong>of</strong>fen kann,<br />

Aus diesem Meer des Irrtums aufzutauchen!<br />

Was man nicht weiß, das eben brauchte man,<br />

Und was man weiß, kann man nicht brauchen.<br />

Goethe, Faust, Erster Teil, Vor dem Thor, Faust<br />

Data, information <strong>and</strong> knowledge management is <strong>of</strong>ten neglected. All organizations, research projects, the information<br />

society depend on data, <strong>and</strong> good data management practices are critical to many technology-based organizational<br />

initiatives, including business intelligence, customer relationship management, <strong>and</strong> data warehousing. Bad,<br />

incomplete, or inaccurate information has been the downfall <strong>of</strong> projects, departments, <strong>and</strong> even entire organizations.<br />

Data, information <strong>and</strong> knowledge management involves both process <strong>and</strong> policy. Tasks range from strategic data<br />

planning to the creation <strong>of</strong> data element st<strong>and</strong>ards to database design, implementation, <strong>and</strong> maintenance.<br />

• It has a technical component: interfacing with <strong>and</strong> facilitating interaction between s<strong>of</strong>tware <strong>and</strong> hardware.<br />

• It has a specific focus: creating <strong>and</strong> maintaining data to provide useful information.<br />

• It includes management <strong>of</strong> metadata artifacts that addresses the data’s form as well as its content.<br />

In addition, everyone in a research project should underst<strong>and</strong> the importance <strong>of</strong> effective data management to their<br />

organization. Without that underst<strong>and</strong>ing, there is little chance data management strategies can be successfully implemented.


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 481<br />

Ziele dieses Teilkapitels<br />

<strong>Information</strong>, Wissen, Daten<br />

als Grundmittel<br />

Semiotik (als Basis) durch Syntax, Semantik, Pragmatik; Unterschied zu Pragmatismus<br />

Aspekte bei WI-Systemen: Rhetorik-Rahmen von Hermagoras von Temnos erweitert (Thalheim W ∗ H-Rahmen)statt<br />

Zachman;<br />

daraus Orientierung auf Strukturierung + Berechnung + Steuerung als drei Systemkomponenten<br />

<strong>Information</strong> in den 4 Definitionen mit Vor- und Nachteilen:<br />

• syntaktisch (Entropie),<br />

• semantisch (Ableitung),<br />

• pragmatisch (antroposophisch),<br />

• ökonomisch (Nutzen)(wie in WI meist genutzt)<br />

Wissen nach den Definitionen von Thalheim;<br />

eine der Dimensionen im dreidimensionalen Raum (Nutzen für CoP (pragmatisch+ökonomisch)(<strong>Information</strong>)<br />

, Validierung (Wissen), Daten);<br />

Unterscheidung <strong>Information</strong>, Desinformation, Mißinformation, Fakten, Regeln<br />

Abstraktion als Struktur-, Verhaltens- und Kontextabstraktion mit den drei Unterfacetten jeweils<br />

Abstraktionsschichtenmodell im Überblick; Unterscheidung von description - prescription - specification<br />

Strategische-(taktisch-)administratives-operationelle Aspekte<br />

Rollen und ‘Spiel’ der Benutzer, Benutzergruppen (community <strong>of</strong> practice)<br />

Zentrale Literaturquellen (hier nicht eingearbeitet, sondern für das Selbststudium)<br />

• Heinrich, L. J.: <strong>Information</strong>smanagement - Planung, Überwachung und Steuerung der <strong>Information</strong>sinfrastruktur.<br />

11. A., München/Wien 2011, sowie auch frühere Auflagen.<br />

Das zentrale Buch in diesem Gebiet; aufgabenbezogene Auflösung (strategisches, adminstratives, operatives<br />

Niveau)<br />

• Krcmar, H.: <strong>Information</strong>smangement. Springer 2010, sowie auch spätere und frühere Auflagen.<br />

Als Überblicksbuch und zur Motivation.<br />

• Resch<br />

• Websites als Ergänzung:<br />

www.dama.org, www.ogc.gov.uk/guidance itil.asp oder www.isaca.org/cobit<br />

3-Ebenen-Modell<br />

• Management der <strong>Information</strong>swirtschaft (Angebot, Nachfrage, Verwendung (allgemeine story-Rahmen, Rechte,<br />

Bedarf, Relevanz))[Bsp. <strong>Information</strong>sströme bei DB: TA, Produkt, Kunde; Analyse z.B. Umsatz einzelner<br />

Segmente; Erfolge strategischer Geschäftseinheiten](anh<strong>and</strong> <strong>Information</strong>sbedarf und <strong>Information</strong>saufkommen)<br />

• IS Management (Daten, Prozesse, Anwendungslebenszyklus; scenario und stories; application case; eingesetzte<br />

und einsetzbare Systeme)<br />

• Management der Inf.- und Kommunikationstechnik (IT-Infrastruktur, Netze, Kommunikationssysteme; System-<br />

L<strong>and</strong>schaft; Speicherung, Verarbeitung, Kommunikation, Technikbündel)<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 482<br />

Sichten auf das <strong>Information</strong>smangement.<br />

Gestaltungsobjekte des IM: IT Strategie, IS, Anwendungen, IT-Infrastruktur Sichten:<br />

• Führung (Leitungsh<strong>and</strong>eln: Strategisch, taktisch - admininistrativ[besser], operativ; dazu auch IT Governance,<br />

Geschäftsproz./Daten-/Life cylce management; ),<br />

• Inf als Produktionsfaktor (Inf. resources management),<br />

• Inf. als Produkt (ITIL, IT-Produktportfolio,...),<br />

• persönliches IM (Ziele der Person am Arbeitsplatz, invidueller Umgang mit <strong>Information</strong>, IS,Anwendungen)<br />

• IS-Managment (<strong>Information</strong> engineering)(Info.-modellier., Architekturentwurf, <strong>Systems</strong> L<strong>and</strong>scape, Vorgehensmodelle,<br />

ARIS, ...)<br />

• IT-Management (IT service management, IT service portfolio)<br />

Ansätze.<br />

• problemorientiert (Applegate, Benson/Parker),<br />

• ebenenorientiert (Wollnick, 88: Einsatzebene, IK-Systeme, Infrastruktur; Anforderung und Unterstützungsleistung),<br />

• aufgabenorientiert (Heinrich, 2002; strategische, administrative, operative; Aufgaben - Methoden),<br />

• prozeßorientiert, produktorientiert (Zarnekow, 2004; IT-Leistungserstellung als Leistungserbringung (source,make,<br />

deliver) in der Wertschöpfungskette),<br />

• architekturorientiert (Zachman, Scheer, Krcmar)<br />

5.1 Daten ≠ <strong>Information</strong> ≠ Wissen ≠ Daten<br />

5.1.1 Was ist <strong>Information</strong>?<br />

Was ist wirklich <strong>Information</strong>?.<br />

There are many definitions for information. [?] uses seven different meanings:<br />

1. Knowledge derived from study, experience, or instruction.<br />

2. Knowledge <strong>of</strong> specific events or situations that has been gathered or received by communication; intelligence<br />

or news.<br />

3. A collection <strong>of</strong> facts or data: statistical information.<br />

4. The act <strong>of</strong> informing or the condition <strong>of</strong> being informed; communication <strong>of</strong> knowledge.<br />

5. Computer Science: Processed, stored, or transmitted data.<br />

6. A numerical measure <strong>of</strong> the uncertainty <strong>of</strong> an experimental outcome.<br />

7. Law: A formal accusation <strong>of</strong> a crime made by a public <strong>of</strong>ficer rather than by gr<strong>and</strong> jury indictment.<br />

1003 Spanierinnen hat Don Giovanni (Mozart) verführt<br />

beeindruckende Liste: fast 10.000 Frauen verführt, d.h. wenn täglich, dann schon 27 Jahre im Dienst<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 483<br />

1003 Vogel Story: die Kunst des Zählens<br />

H. Jaak (Estl<strong>and</strong>): jem<strong>and</strong> beobachtet viele, viele (≈ 1000) Vögel, danach auch noch 3 Vögel, damit also 1003<br />

Vögel<br />

Cern: 1 Petabyte täglich<br />

1750 Exabyte an digitalen Daten schätzt International Data Corporation (IDC) research für 2011<br />

Google weiß alles ☺<br />

bei 11.5 % Überdeckung ☻<br />

Google sagt alles, was Google weiß oder vielleicht nicht?<br />

im 5-Computer-Test an CAU ☹<br />

Wir sind bereits in <strong>Information</strong>en ertränkt! Wir brauchen stattdessen:<br />

<strong>Information</strong><br />

zur rechten Zeit,<br />

der richtigen Sorte, in der richtigen Dosis, in der richtigen Form,<br />

in vollem Umfang und<br />

zu akzeptablen Kosten<br />

für alle Benutzer (bzw. Anwendungen)<br />

Vergiß nicht den Unterschied zwischen <strong>Information</strong> und Daten:<br />

Kiteigorodski’s These zu Veröffentlichungen.<br />

Auswahl des fehlenden Wissens im Ozean von Daten<br />

Generieren ist leichter als Qualitätspflege.<br />

T. S. Eliot (1888-1965), The<br />

rock, 1934:<br />

Where is the wisdom we have lost in knowledge?<br />

Where is the knowledge we have lost in information?<br />

β 1998:<br />

Where is the information we have lost in news?<br />

Where is the information we have lost in data?<br />

M. Burgin [Bur10]: <strong>Information</strong> hat Vermögen, den internen Zust<strong>and</strong> eines <strong>Systems</strong> zu ändern, und ist Verursacher<br />

dieser.<br />

<strong>Information</strong>: nicht einfach ‘Mikro’-Wissen oder eine Menge von Daten<br />

Datum: Folge von Symbolen<br />

Nachricht: übermittelte Daten, <strong>of</strong>t mißbraucht, vorinterpretiert, manipuliert<br />

Wissen: validierbare, nachhaltige Daten im begründeten Consensus der Gemeinschaft<br />

zusammengefaßte, kondensierte, dynamische Fakten (Daten) und Regeln<br />

<strong>Information</strong> ≈ gedeutete<br />

Nachrichten ∨ Daten ∨ Mitteilungen<br />

als dritter St<strong>of</strong>f neben Materie und Energie<br />

Daten<br />

Empfänger<br />

Auswahl<br />

Kontext<br />

Verarbeitung<br />

Integration<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 484<br />

Syntactic, semantic, pragmatic <strong>and</strong> anthopomorphic definition <strong>of</strong> information.<br />

We can categorize the definitions given above into three groups:<br />

• The first syntactic category <strong>of</strong> these definitions is based on the mathematical notion <strong>of</strong> entropy. This notion is<br />

independent <strong>of</strong> the user <strong>and</strong> thus inappropriate in our context.<br />

• The second semantic category <strong>of</strong> information definitions bases information on the data a user has currently in<br />

his data space <strong>and</strong> on the computational <strong>and</strong> reasoning abilities <strong>of</strong> the user. <strong>Information</strong> is any data that cannot<br />

be derived by the user. This definition is h<strong>and</strong>y but has a very bad drawback. Reasoning <strong>and</strong> computation cannot<br />

be properly characterised. Therefore, the definition becomes fuzzy.<br />

• The third speech-act-oriented pragmatic category is based on the general language underst<strong>and</strong>ing <strong>of</strong> information<br />

[SYea03].<br />

<strong>Information</strong> is either the communication or reception <strong>of</strong> knowledge or intelligence.<br />

<strong>Information</strong> can also defined as<br />

• knowledge obtained from investigation, study, or instruction, or<br />

• intelligence, news or<br />

• facts <strong>and</strong> data.<br />

<strong>Information</strong> can also be the act <strong>of</strong> informing against a person.<br />

Finally information is a formal accusation <strong>of</strong> a crime made by a prosecuting <strong>of</strong>ficer as distinguished from an<br />

indictment presented by a gr<strong>and</strong> jury.<br />

All these definitions are too broad.<br />

We are thus interested in a definition that is more appropriate for data, information <strong>and</strong> knowledge management.<br />

The general notion <strong>of</strong> information.<br />

“In—for—ma—ti—on die; -en über spätlateinisch informatio ‘Bildung durch Unterricht, Belehrung’ aus lateinisch informatio<br />

‘Vorstellung, Erläuterung’ [...]:<br />

1.a) Nachricht, Auskunft; das Informieren; Unterrichtung über eine bestimmte Sache;<br />

b) [auf Anfrage erteilte] über alles Wissenswerte in Kenntnis setzende, <strong>of</strong>fizielle, detaillierte Mitteilung über jem<strong>and</strong>en, etwas;<br />

c) (meist Plural) Äußerung oder Hinweis, mit dem jem<strong>and</strong> von einer [wichtigen politischen] Sache in Kenntnis gesetzt wird;<br />

d) Kurzform für <strong>Information</strong>sst<strong>and</strong>, -stelle.<br />

2. (Plural selten)<br />

a) [Maß für den] <strong>Information</strong>sgehalt einer Nachricht;<br />

b) als räumliche oder zeitliche Folge physikalischer Signale, die mit bestimmten Wahrscheinlichkeiten auftreten, sich zusammensetzende<br />

Mitteilung, die beim Empfänger ein bestimmtes [Denk]verhalten bewirkt (Informatik) [...]” (nach Fremdwörterbuch)<br />

“<strong>Information</strong> (vom Lateinischen informatio, d.h. Deutung, Erläuterung) bedeutet im Sinne der Umgangssprache Wissen<br />

(Kenntnisse) über Sachverhalte oder Vorgänge. Elemente zur Darstellung von <strong>Information</strong>en heißen Zeichen. Der Zeichenvorrat<br />

wird durch die Menge der vereinbarten Elemente gebildet. Ein linear geordneter Zeichenvorrat wird als Alphabet bezeichnet.<br />

Die Kombination von Buchstaben ergibt Text, die von Ziffern ergibt Zahlen. Aus Zeichen gebildete <strong>Information</strong>en zum Zweck:<br />

* der Verarbeitung heißen Daten<br />

* der Weitergabe heißen Nachrichten.”<br />

http://www.businessdictionary.com/definition/information.html<br />

There are many different definitions <strong>of</strong> the concept <strong>of</strong> information. We distinguish between data, information,<br />

knowledge, <strong>and</strong> messages. In our context it is common to think <strong>of</strong> information as consisting <strong>of</strong> data.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 485<br />

Rohdaten<br />

(wohlgeformte)<br />

Daten<br />

kontextbehaftete<br />

Daten<br />

semantische<br />

Daten<br />

(Inhalt)<br />

storybezogene<br />

Daten<br />

z.B. instruktionelle<br />

wahre und<br />

bedeutungsvolle<br />

Daten<br />

<strong>Information</strong><br />

Faktendaten<br />

falsche oder<br />

bedeutungsarme<br />

Daten<br />

In general, information is<br />

• raw data <strong>and</strong><br />

• well-formed data<br />

• that<br />

intentional<br />

falsche<br />

Daten<br />

Desinformation<br />

unintentional<br />

falsche<br />

Daten<br />

Mißinformation<br />

(1) has been verified to be accurate <strong>and</strong> timely relative to its context,<br />

(2) is specific <strong>and</strong> organized for a purpose,<br />

sinnfreie<br />

Daten<br />

Rauschen<br />

(3) is presented within a context that gives it meaning <strong>and</strong> relevance, <strong>and</strong> which<br />

(4) leads to increase in underst<strong>and</strong>ing <strong>and</strong> decrease in uncertainty.<br />

This notion extends the GDI notion (General Definition <strong>of</strong> <strong>Information</strong>) [?]. “Well-formed” means that the raw data<br />

are clustered together correctly, according to the rules (syntax) that govern the chosen system, code or language<br />

being analysed. Syntax is understood broadly, as what determines the form, construction, composition or structuring<br />

<strong>of</strong> something. “Meaningful” means that the data must comply with the meanings (semantics) <strong>of</strong> the chosen system,<br />

code or language in question. We refer to [35] for different kinds <strong>of</strong> semantics. However, let us not forget that semantic<br />

information is not necessarily linguistic. For example, in the case <strong>of</strong> the manual <strong>of</strong> the car, the illustrations are such<br />

as to be visually meaningful to the reader.<br />

<strong>Information</strong> situations.<br />

This information definition covers a broad variety <strong>of</strong> informational situations. Typical such situations are the<br />

following:<br />

Business information systems: <strong>Information</strong> is data that have been shaped into a form that is meaningful <strong>and</strong> useful<br />

for human beings. These data satisfy an information dem<strong>and</strong> <strong>and</strong> can be understood by this group. Typical data<br />

represent information about significant people, places, <strong>and</strong> things within an organisation or in the environment<br />

surrounding it.<br />

Speech act: see Searle<br />

Conception development: see Bolzano Auffassung<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 486<br />

The value <strong>of</strong> information lies solely in its ability to affect a behavior, decision, or outcome. A piece <strong>of</strong> information<br />

is considered valueless if, after receiving it, things remain unchanged. For the technical meaning <strong>of</strong> information we<br />

consider the notion used in information theory.<br />

Therefore, information is directed towards pragmatics, whereas content may be considered to highlight the syntactical<br />

dimension. If content is enhanced by concepts <strong>and</strong> topics, then users are able to capture the meaning <strong>and</strong> the<br />

utilisation <strong>of</strong> the data they receive. In order to ease perception we use metaphors. Metaphors may be separated into<br />

those that support perception <strong>of</strong> information <strong>and</strong> into those that support usage or functionality.<br />

The information theory notion <strong>of</strong> information<br />

Entropie der eingegebenen Nachricht <strong>Information</strong> as a message<br />

‘<strong>Information</strong>’ - vielseitig belegt<br />

Ereignisse unterein<strong>and</strong>er in Beziehung gesetzt unter Gesichtspunkt inwieweit Unsicherheit verringert wird<br />

Absteckung des Möglichen<br />

Kybernetische System- und Modelltheorie: <strong>Information</strong> ist neues Wissen über ein Ereignis, einen Tatbest<strong>and</strong> oder<br />

einen Sachverhalt, <strong>Information</strong> ist Beseitigung von Ungewissheit. [...] <strong>Information</strong> ist jede Folge oder Anordnung von<br />

Zeichen (Signalen), die mit bestimmten Häufigkeiten auftreten, denen eine Bedeutung beigemessen werden kann, und<br />

die einen Adressaten zu einem bestimmten Verhalten veranlassen können.<br />

Mit dem Satz “<strong>Information</strong> is information nor matter or energy” führt Norbert Wiener die <strong>Information</strong> als 3.<br />

Grundgröße neben Materie und Energie ein.<br />

Wahrscheinlichkeitstheoretische Sicht von <strong>Information</strong>en<br />

Gegeben ist eine Zufallsvariable a = (a 1 , ..., a n ) p(a i ) Wahrscheinlichkeiten des Eintreffens von a i<br />

a - Ausschnitt aus Menge der möglichen Ereignisse<br />

<strong>Information</strong>sgehalt des Wertes a i der Zufallsvariablen a :<br />

Unsicherheit, die durch das tatsächliche Eintreffen von a i beseitigt wird<br />

Nichtereignis versus Ereignis<br />

Formalisierung durch Maß I(a i ) mit folgenden Anford.<br />

• I(a i ) = f(p(a i ))<br />

• f ist stetig in [0,1]<br />

• f ist antiton (wahrscheinlichere Ereignisse enthalten weniger <strong>Information</strong>)<br />

• <strong>Information</strong>sgehalt ist additiv: f(p 1 ∗ p 2 ) = f(p 1 ) + f(p 2 )<br />

⇒ dadurch ist I bis auf Konstante eindeutig festgelegt<br />

<strong>Information</strong>sgehalt von einem einzelnen Wert a i<br />

falls p(a i ) = 1 , dann keine Unsicherheit beseitigt<br />

1<br />

I(a i ) = −ld(p(a i )) = ld(<br />

p(a i ) ) falls p(a i) ≠ 0<br />

wird nun der gesamte <strong>Information</strong>sgehalt der Zeichen von a betrachtet, d.h.<br />

H(a) =<br />

n∑<br />

n∑<br />

p(a i )I(a i ) = − p(a i ) ld(p(a i ))<br />

i=1<br />

i=1<br />

ist der mittlere <strong>Information</strong>sgehalt von a (Entropie)<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 487<br />

durch weitere Ausnutzung der WMS-Grundlagen<br />

angew<strong>and</strong>t auf Übertragung von Signalen<br />

Sender Kanal −→<br />

Empfänger<br />

bedingte Wahrscheinlichkeiten, unabhängige Zufallsgrößen, ...<br />

z.B. H vor (x|y) und H nach (x|y) Unsicherheiten von x unter y vor und nach Ausführung<br />

D(x, y) := H vor (x|y) − H nach (x|y) übertragene <strong>Information</strong><br />

Eingegebener Text : blabla blublu blibli bleble blable blabli blablu<br />

Textlänge : 50<br />

mittlerer <strong>Information</strong>sgehalt : 2.6840558737174<br />

http://abenteuer.hpfsc.de/entropie.php<br />

Eingegebener Text : blabla<br />

Textlänge : 9<br />

mittlerer <strong>Information</strong>sgehalt : 2.5032583347756<br />

Beispiel Nachrichten:<br />

Nummer Nachricht Entropie der Nachricht<br />

1. To be or not to be! 2.9000516989995<br />

2. Sein oder nicht sein! 3.4866245652238<br />

3. Etre ou ne pas etre! 3.4841837197792<br />

4. A aaab b cbde def! 2.9749375012019<br />

Obwohl die Nachrichten 1 bis 3 alle den gleichen Inhalt haben, ist der <strong>Information</strong>sgehalt unterschiedlich. Auch<br />

der völlig sinnlose Nachricht 4 soll den gleichen <strong>Information</strong>sgehalt haben, wie das Shakespeare Zitat.<br />

An diesem kleinen Beispiel sieht man, daß die Entropie einer Nachricht keine Aussage über die Menge an <strong>Information</strong><br />

trifft. Es ist lediglich eine Aussage über die Häufigkeit einzelner Zeichen in der Nachricht.<br />

The infological definition <strong>of</strong> information<br />

Modelltheoretische Sicht von <strong>Information</strong>en<br />

Klasse K von Strukturen gegeben (M = (D, r 1 , ..., r n ), r i τ i -stellige Relationen)<br />

“Ereignisse” werden durch FOPL-Formeln dargestellt<br />

Aussage entweder wahr oder falsch in M (falls wahr, dann M Modell von α)<br />

d.h. Mod K (α) = {M ∈ K | M |= α} ⊆ K<br />

bzw. Mod K (Φ) = ∩Mod K (α)<br />

falls Φ bekannt, dann unsicher, welches Modell vorliegt<br />

sicher, fall ||Mod K (Φ)|| = 1 ;<br />

höchst unsicher, falls Mod K (Φ) = K<br />

Beispiel: S := if x ≥ 8 then y := 1 else y := 0<br />

nach Ausführung der Anweisung und bei Beobachtung von y verringert sich Unsicherheit über x<br />

w(eakest) p(recondition) {S} Φ<br />

x - Sender; y - Empfänger<br />

damit verändert der <strong>Information</strong>sfluß von x nach y unsere Kenntnis über die Modellklasse<br />

mitunter ist auch <strong>Information</strong> redundant<br />

The business engineering <strong>and</strong> computer science definitions <strong>of</strong> information<br />

• Betriebswirtschaftslehre: <strong>Information</strong> (vom Lateinischen informatio, d.h. Deutung, Erläuterung) bedeutet im Sinne der<br />

Betriebswirtschaftslehre zweckorientiertes bzw. zielgerichtetes Wissen.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 488<br />

• Informatik-H<strong>and</strong>buch: <strong>Information</strong> ist h<strong>and</strong>lungsbestimmendes Wissen über vergangene, gegenwärtige und zukünftige Zustände<br />

der Wirklichkeit und Ereignisse in der Wirklichkeit (d.h. in Organisationen in Wirtschaft und Verwaltung).<br />

• Lehrbuch Informatik: <strong>Information</strong> ist die Bedeutung, die durch eine Nachricht übermittelt wird. Klarerweise ist <strong>Information</strong> in<br />

diesem Sinne subjektiv.<br />

• Taschenbuch der Informatik: <strong>Information</strong> ist neues Wissen über ein Ereignis, einen Tatbest<strong>and</strong> oder einen Sachverhalt,<br />

<strong>Information</strong> ist Beseitigung von Ungewißheit.<br />

• Das geistige Umfeld der <strong>Information</strong>stechnik: <strong>Information</strong> ist, was das Wort <strong>Information</strong> ausdrückt. Der Kern ist<br />

die Form, aber die Vorsilbe “in” weist auf den Inhalt der Form hin, auf die Bedeutung der Form. <strong>Information</strong> ist Form als Bedeutungsträger.<br />

Erziehung und Ausbildung (französisch: la formation) sind systematische Formierung; in diesem Sinn wurde das Wort<br />

<strong>Information</strong> verst<strong>and</strong>en, ehe die Technik davon Besitz ergriff. Man sollte an dieser Bedeutung schon festhalten, man sollte sie betonen<br />

und kultivieren, denn wer etwas mitteilt, auch wenn er dies über den Computer tut, hat mit Formierung und daher mit Ausbildung zu<br />

tun. Tatsächlich prägt der Computer mit seiner <strong>Information</strong> den Menschen, der sie erhält, und das bedeutet eine Verantwortung des<br />

Informatikers, die er nicht aus dem Blick verlieren darf.<br />

• Kybernetische System- und Modelltheorie: <strong>Information</strong> ist jede Folge oder Anordnung von Zeichen (Signale), die mit<br />

bestimmten Häufigkeiten auftreten, denen eine Bedeutung beigemessen werden kann, und die einen Adressaten zu einem bestimmten<br />

Verhalten veranlassen können.<br />

<strong>Information</strong> als zweckorientiertes Wissen (Heinrich: <strong>Information</strong>smangement)<br />

Resultierende Eigenschaften von <strong>Information</strong>:<br />

• immaterielles Gut, das sich auch bei mehrfacher Nutzung nicht verbraucht;<br />

• stiftet dem Benutzer Nutzen, z.B. bei Umsetzung in H<strong>and</strong>eln;<br />

• kein freies Gut; kann kostenadäquaten Wert haben;<br />

• Wert in Abhängigkeit von der kontextspezifischen und zeitlichen Verwendung;<br />

• Wert durch Modifikation (insert, ...) veränderbar;<br />

• kann erweitert und verdichtet werden;<br />

• unterschiedliche Qualitätsmaßstäbe (Genauigkeit, Vollständigkeit, ...);<br />

• kann mit Lichtgeschwindigkeit übertragen werden;<br />

• Käufer erhalten nur Kopien; exklusive Rechte sind schwierig;<br />

• kann kodiert übertragen werden.<br />

The anthroposophic notion <strong>of</strong> information<br />

<strong>Information</strong> as processed by humans,<br />

• is carried by data<br />

• that is perceived or noticed, selected <strong>and</strong> organized by its receiver,<br />

• because <strong>of</strong> his subjective human interests, originating from his instincts, feelings, experience, intuition, common<br />

sense, values, beliefs, personal knowledge, or wisdom,<br />

• simultaneously processed by his cognitive <strong>and</strong> mental processes, <strong>and</strong><br />

• seamlessly integrated in his recallable knowledge.<br />

The general tasks <strong>of</strong> information management.<br />

We may summarise the different versions in the following table:<br />

Dimensions<br />

Characteristics<br />

Semiotics syntax semantics pragmatics<br />

Carrier independent human-based<br />

Novelty subjective objective<br />

Faithfulness dependent on truth independent from truth<br />

Timeliness static procedural<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 489<br />

[?]<br />

Dimensions <strong>of</strong> <strong>Information</strong> Quality.<br />

actuality<br />

value<br />

creation<br />

accessible<br />

processable<br />

system supported<br />

high<br />

reputation<br />

free from<br />

errors<br />

complete<br />

purpose<br />

dependent<br />

IQ<br />

inherent<br />

appropriate<br />

size<br />

relevance<br />

presentation dependent<br />

surveyable<br />

st<strong>and</strong>ardised<br />

underst<strong>and</strong>ability presentation<br />

definite<br />

interpretation<br />

objective<br />

faithful<br />

Abbildung 1: The 15 dimensions <strong>of</strong> information quality within the 4 categories<br />

The user dimension <strong>of</strong> information management.<br />

Users are reflected by actors that are abstractions <strong>of</strong> groups <strong>of</strong> users. Pragmatics <strong>and</strong> syntactics share data <strong>and</strong> functions.<br />

The functionality is provided through functions <strong>and</strong> their representations. The web utilisation space depends on<br />

the technical environment <strong>of</strong> the user. It is specified through the layout <strong>and</strong> the playout. Layout places content on the<br />

basis <strong>of</strong> a data representation <strong>and</strong> in dependence <strong>of</strong> the technical environment. Playout is based on functionality <strong>and</strong><br />

function representations, <strong>and</strong> depends on the technical environment.<br />

sender<br />

content<br />

presentation<br />

receiver<br />

appeal to<br />

message<br />

s-r-relationship<br />

receiver<br />

Abbildung 2: Dimensions <strong>of</strong> underst<strong>and</strong>ing messages<br />

The information transfer from a user A to a user B depends on the users A <strong>and</strong> B, their abilities to send <strong>and</strong> to<br />

receive the data, to observe the data, <strong>and</strong> to interpret the data. Let us formalise this process. Let s X denote the function<br />

user by a user X for data extraction, transformation, <strong>and</strong> sending <strong>of</strong> data. Let r X denote the corresponding function for<br />

data receival <strong>and</strong> transformation, <strong>and</strong> let o X denote the filtering or observation function. The data currently considered<br />

by X is denoted by D X . Finally, data filtered or observed must be interpreted by the user X <strong>and</strong> integrated into the<br />

knowledge K X a user X has. Let us denote by i X the binary function from data <strong>and</strong> knowledge to knowledge. By<br />

default, we extend the function i X by the time t iX <strong>of</strong> the execution <strong>of</strong> the function.<br />

Thus, the data transfer <strong>and</strong> information reception (or briefly information transfer) is formally expressed it by<br />

I B = i B (o B (r B (s A (D A ))), K B , t iX ) .<br />

In addition, time <strong>of</strong> sending, receiving, observing, <strong>and</strong> interpreting can be taken into consideration. In this case<br />

we extend the above functions by a time argument. The function s X is executed at moment t sX , r X at t rX , <strong>and</strong> o X at<br />

t oX . We assume t sA ≤ t rB ≤ t oB ≤ t iB for the time <strong>of</strong> sending data from A to B. The time <strong>of</strong> a computation f or<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 490<br />

data consideration D is denoted by t f or t D , respectively. In this extended case the information transfer is formally<br />

expressed it by<br />

I B = i B (o B (r B (s A (D A , t sA ), t rB ), t oB ), K B , t iB ) .<br />

The notion <strong>of</strong> information extends the dimensions <strong>of</strong> underst<strong>and</strong>ing <strong>of</strong> message displayed in Figure 2 to a web<br />

communication act that considers senders, receivers, their knowledge <strong>and</strong> experience. Figure 3 displays the multilayering<br />

<strong>of</strong> communication, the influence <strong>of</strong> explicit knowledge <strong>and</strong> experience on the interpretation.<br />

The communication act is specified by<br />

• the communication message with the content or content chunk, the characterisation <strong>of</strong> the relationship between<br />

sender <strong>and</strong> receiver, the data that are transferred <strong>and</strong> may lead to information or misinformation, <strong>and</strong> the<br />

presentation,<br />

• the sender, the explicit knowledge the sender may use, <strong>and</strong> the experience the sender has, <strong>and</strong><br />

• the receiver, the explicit knowledge the receiver may use, <strong>and</strong> the experience the receiver has.<br />

experience<br />

✲<br />

data<br />

✲<br />

experience<br />

explicit<br />

knowledge<br />

sender<br />

✲<br />

data<br />

(information, misinformation)<br />

form<br />

appearance,<br />

gestalt<br />

presentation<br />

communication<br />

act<br />

sender-receiver relationship<br />

✲<br />

appeal to<br />

receiver<br />

explicit<br />

knowledge<br />

receiver<br />

Abbildung 3: Dimensions <strong>of</strong> the communication act<br />

We approach the analysis <strong>of</strong> knowledge system usage as the first important part <strong>of</strong> storyboarding pragmatics.<br />

Knowledge system usage analysis consists <strong>of</strong> three parts:<br />

1. Life cases capture observations <strong>of</strong> user behaviour in reality. They can be used in a pragmatic way to specify the<br />

story space. The work on life cases was reported in a previous publication [33].<br />

2. User models complement life cases by specifying user <strong>and</strong> actor pr<strong>of</strong>iles, <strong>and</strong> actor portfolios. The actor portfolios<br />

are used to get a better underst<strong>and</strong>ing <strong>of</strong> the tasks associated with the knowledge system. The work on<br />

user models was reported in a previous publication [34].<br />

3. Contexts complement life cases <strong>and</strong> user models by characterising the situation in which a user finds him/herself<br />

at a certain time in a particular location. We classify various aspects <strong>of</strong> contexts related to actors, storyboard,<br />

system <strong>and</strong> time, which make up the context space, then analyse each <strong>of</strong> these aspects in detail. This is formally<br />

support by lifting relations.<br />

User modelling is based on the specification <strong>of</strong> user pr<strong>of</strong>iles that address the characterisation <strong>of</strong> the users, <strong>and</strong> the<br />

specification <strong>of</strong> user portfolios that describe the users’ tasks <strong>and</strong> their involvement <strong>and</strong> collaboration on the basis <strong>of</strong><br />

the mission <strong>of</strong> the knowledge system [30].<br />

To characterize the users <strong>of</strong> a knowledge system we distinguish between education, work <strong>and</strong> personality pr<strong>of</strong>iles.<br />

The education pr<strong>of</strong>ile contains properties users can obtain by education or training. Capabilities <strong>and</strong> application<br />

knowledge as a result <strong>of</strong> educational activities are also suitable for this pr<strong>of</strong>ile. Properties will assigned to the work<br />

pr<strong>of</strong>ile, if they can be associated with task solving knowledge <strong>and</strong> skills in the application area, i.e. task expertise<br />

<strong>and</strong> experience as well as system experience. Another part <strong>of</strong> a work pr<strong>of</strong>ile is the interaction pr<strong>of</strong>ile <strong>of</strong> a user, which<br />

is determined by his frequency, intensity <strong>and</strong> style <strong>of</strong> utilization <strong>of</strong> the knowledge system. The personality pr<strong>of</strong>ile<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 491<br />

characterises the general properties <strong>and</strong> preferences <strong>of</strong> a user. General properties are the status in the enterprise,<br />

community, etc., <strong>and</strong> the psychological <strong>and</strong> sensory properties like hearing, motoric control, information processing<br />

<strong>and</strong> anxiety.<br />

A portfolio is determined by responsibilities <strong>and</strong> is based on a number <strong>of</strong> targets. Therefore, the actor portfolio<br />

(referring to actors as groups <strong>of</strong> users with similar behaviour) within an application is based on a set <strong>of</strong> tasks assigned<br />

to or intended by an actor <strong>and</strong> for which s/he has the authority <strong>and</strong> control, <strong>and</strong> a description <strong>of</strong> involvement within<br />

the task solution [32]. A task as a piece <strong>of</strong> work is characterized by a problem statement, initial <strong>and</strong> target states,<br />

collaboration <strong>and</strong> presupposed pr<strong>of</strong>iles, auxiliary conditions <strong>and</strong> means for task completion. Tasks may consists <strong>of</strong><br />

subtasks. Moreover, the task execution model defines what, when, how, by whom <strong>and</strong> with which data a task can<br />

be accomplished. The result <strong>of</strong> executing a task should present the final state as well as the satisfaction <strong>of</strong> target<br />

conditions.<br />

For task completion users need the right kind <strong>of</strong> data, at the right time, in the right granularity <strong>and</strong> format,<br />

unabridged <strong>and</strong> within the frame agreed upon in advance. Moreover, users are bound by their ability to verbalise<br />

<strong>and</strong> digest data, <strong>and</strong> their habits, practices, <strong>and</strong> cultural environment. To avoid intellectual overburdening <strong>of</strong> users<br />

we observe real applications before the system development leading to life cases [33]. Life cases help closing the<br />

pragmatic gap between intentions <strong>and</strong> storyboarding. They are used to specify the concrete life situation <strong>of</strong> the user<br />

<strong>and</strong> characterise thus a bundle <strong>of</strong> tasks the user should solve. Syntax <strong>and</strong> semantics <strong>of</strong> life cases have already been<br />

well explored in [30].<br />

In addition, each user has an information portfolio, which specifies the information needs as well as the information<br />

entered into the system. We do not model the information portfolio as part <strong>of</strong> a user, but instead <strong>of</strong> this we will<br />

model the information “consumed” <strong>and</strong> “produced” with each more detailed specification <strong>of</strong> a user request.<br />

Other notions <strong>of</strong> <strong>Information</strong>.<br />

Tom Stonier proposed [Sto90], that information is a part <strong>of</strong> the physical universe the same way as matter <strong>and</strong><br />

energy. Degree <strong>of</strong> organization <strong>of</strong> a system is a measure <strong>of</strong> its information.<br />

This idea has been exploited by Creationists, who claim that similarly to energy <strong>and</strong> mass conservation laws<br />

there is a law <strong>of</strong> conservation <strong>of</strong> information - information cannot be created by either natural processes or chance<br />

[Dem99, DI09]. Creationists use this proposed by them law to claim that Darwinian Evolution could not create the<br />

myriads <strong>of</strong> Biological <strong>Information</strong>, Darwinian selection <strong>of</strong>ten significantly outperforms blind search, so it has to use<br />

some outside information supplied by some Creator.<br />

But new information is created all the time in increasing temp. The International Data Corporation (IDC) research<br />

reported already in 2008 that the total amount <strong>of</strong> digital information in 2007 reached 281 billion gigabytes or 281 exabytes;<br />

the estimate for the end <strong>of</strong> 2011 is already 1750 exabytes [Cuk10]. CERN experiments generate one petabyte<br />

<strong>of</strong> data every second [Hena]. Therefore the claims <strong>of</strong> Creationists <strong>and</strong> their apologete Dembski looks rather dubious:<br />

“Dembski’s work is riddled with inconsistencies, equivocation <strong>and</strong> flawed use <strong>of</strong> mathematics... [ES03, Wal05].<br />

K Haefner postulated [Hef92], that all natural systems are <strong>Information</strong> Processing <strong>Systems</strong> (IPS); each IPS can<br />

receive, store, process <strong>and</strong> transmit information; information processing is an essential internal feature <strong>of</strong> all systems;<br />

the whole universe may be viewed as a gigantic IPS. <strong>Information</strong> is a system variable <strong>and</strong> we should distinguish<br />

between system’s internal information which is an essential component <strong>of</strong> every natural system <strong>and</strong> external information,<br />

which is communicated between systems <strong>and</strong> measured by some external measuring system. Physics <strong>and</strong><br />

biology are interested (mainly) in internal information; <strong>Information</strong> Technology (IT) - in external information, which<br />

is communicated using structured signals. This distinction is rather arbitrary, e.g. genes communicate organism’s<br />

internal structural information between generations using sequence <strong>of</strong> nucleotides.<br />

The claim <strong>of</strong> omnipresence <strong>of</strong> information is close to the ideas expressed by Konrad Zuse already in 1969. Zuse<br />

proposed, that the whole universe is being computed by some automaton, everything is just a computation [Zus69].<br />

Nobody has yet shown any flaws in Zuse’s argumentation; on the contrary, distinguished physicist <strong>and</strong> information<br />

theorist John Wheeler, who introduced the term ’black hole’ explained his another phrase ‘It from bit’ with “things<br />

physical are information-theoretic in origin” [WZ90].<br />

IT specialists <strong>of</strong>ten claim that all essential concepts <strong>of</strong> <strong>Information</strong> Theory were presented already by C. Shannon<br />

in his groundbreaking paper “The Mathematical Theory <strong>of</strong> Communication” [Sha48], e.g. Bell’s laboratory homepage<br />

claims: “Claude Shannon, the father <strong>of</strong> <strong>Information</strong> Theory...” [Henb]. But (as already the title <strong>of</strong> the Shannon’s paper<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 492<br />

shows) Shannon was speaking about communication, where are used signals with pre-known characteristics, which<br />

are known both to sender <strong>and</strong> receiver. Such a system <strong>of</strong> signals can carry information, but here semantic aspects <strong>of</strong><br />

communication are irrelevant, considered is only the engineering aspect - syntax <strong>of</strong> signals. Signals have structure<br />

<strong>and</strong> preservation <strong>of</strong> this structure may be interpreted as “information”, but for this both sender <strong>and</strong> receiver interpret<br />

signals according to their semantic models <strong>of</strong> the subject area. Thus this is only a very limited aspect <strong>of</strong> the concept<br />

“information”. When Wiener made his statement he was aware <strong>of</strong> Shannon’s work; Shannon himself explained much<br />

later very carefully: “It is hardly to be expected that a single concept <strong>of</strong> information would satisfactorily account for<br />

the numerous possible applications <strong>of</strong> this general field”[Sha93].<br />

M. Burgin defines information as a “phenomenon that exists in nature, society, mentality <strong>of</strong> people, virtual reality<br />

<strong>and</strong> in artificial world <strong>of</strong> machines <strong>and</strong> mechanisms created by people; information for a system is a capacity to cause<br />

changes in the system” [Bur10]. This is rather broad <strong>and</strong> vague definition - hit with axe also causes changes in hit’s<br />

target, but (usually) we do not consider physical contact as transfer <strong>of</strong> information. Another contradicting example:<br />

all physical objects radiate electromagnetic waves; living creatures (e.g. humans) can perceive (a very restricted)<br />

range <strong>of</strong> this radiation as a visual image which definitely gives them information about the object; cameras (both the<br />

classical film-based <strong>and</strong> modern digital) also record images, but we do not claim, that they received information.<br />

The difference between living things <strong>and</strong> photographic camera is in change <strong>of</strong> their behavior. Living things use<br />

received information (images) in their future acts, they learn something from images; cameras act in the future exactly<br />

the same way as they did before. Living things <strong>and</strong> learning robots use information in order to modify their conceptual<br />

model <strong>of</strong> the environment. This observation gives the ground for defining information (stored in a message) as the<br />

(probabilistic) measure <strong>of</strong> change what the message can cause in the conceptual structure <strong>of</strong> receiver. The free-energy<br />

principle, which possibly can explain the major mechanisms <strong>of</strong> brain [Fri10] introduces the idea that information can<br />

be considered as a form <strong>of</strong> energy <strong>and</strong> life can be viewed as highly condensed form <strong>of</strong> information [JI].<br />

Underst<strong>and</strong>ing information as an active agent which changes perceiving system’s (systems, capable to learn)<br />

state makes clear, that all perceptions: images, sounds/music, tactile perceptions etc carry information. But in our<br />

digital age all information is digitized <strong>and</strong> h<strong>and</strong>led on network, what makes h<strong>and</strong>ling many times cheaper. Therefore<br />

it is inevitable, that structures which are based on physical encodings, e.g. the publishing <strong>and</strong> music industries are<br />

doomed. For music this turn to digitized distribution has been active for more than ten years already <strong>and</strong> in 2010<br />

Amazon was selling far more digitized texts than paper <strong>and</strong> hardback books combined [Henc].<br />

With overall digitalization, many concepts are more <strong>and</strong> more considered <strong>and</strong> h<strong>and</strong>led as a special kind <strong>of</strong> information.<br />

One example is money. Money is a specific type <strong>of</strong> information: information about value, which is created/assigned<br />

by human society. Monetary values are expressed numerically <strong>and</strong> the classical encoding for them is<br />

physical - coins <strong>and</strong> banknotes. Specialized institutions to deal with this information - banks - eliminated need for<br />

face-to-face encounters <strong>of</strong> sides <strong>of</strong> a deal - you went to bank to pay a bill. In Internet age you can do this from your<br />

computer at home - most <strong>of</strong> banks nowadays provide customers with Internet banking s<strong>of</strong>tware. Digital encoding<br />

<strong>of</strong> money is simpler <strong>and</strong> cheaper <strong>and</strong> many banks are already implementing a purely digital, cashless systems <strong>and</strong><br />

refusing to deal with banknotes <strong>and</strong> coins; there have also appeared internet-only banks, which do not have physical<br />

<strong>of</strong>fices. The need for home computers with banking s<strong>of</strong>tware is also disappearing, all kind <strong>of</strong> information exchange<br />

including monetary is more <strong>and</strong> more done using mobile phones. In Estonia mobile payments have been possible for<br />

over ten years - first for services with fixed praises (parking, cinema thickets etc), but from 2002 also for all banking<br />

activities - a mobile phone (with special SIM card) can be used the same way as your bankcard. There are rapidly<br />

appearing mobile phone applications enabling mobile payments <strong>and</strong> money transfer, e.g. The Ericsson Money [Hend]<br />

makes money transfer around the world as easy as sending a SMS; DaoPay [Hene] ] enables real-time mobile payments<br />

from more than 200 countries etc. In longer perspective it is quite probable, that future <strong>of</strong> the banking system<br />

will be similar to the (current) future <strong>of</strong> music <strong>and</strong> publishing industry - its significance will be greatly reduced, the<br />

(mobile) network will be the big bank.<br />

5.1.2 Was ist Wissen?<br />

Knowledge for the Knowledge Web.<br />

The Knowledge Web goes beyond Web 1.0, Web 2.0 <strong>and</strong> Web 3.0. Nowadays, large amounts <strong>of</strong> Web contents<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 493<br />

are being distributed on the Internet. Conventional search engines are not useful for analyzing the relations between<br />

related knowledge since a number <strong>of</strong> Web contents may indicate a similar concept by different words. Users search<br />

Web pages for different purposes, such as for education, for accessing information on current affairs, or for gaining<br />

knowledge.We believe that the next-generation Web connects each page with not only conventional hyper links but<br />

also knowledge links. The knowledge link has to be created by novel knowledge processing technologies. The technologies<br />

consist <strong>of</strong> knowledge gathering, storage, <strong>and</strong> delivery technologies. An approach to knowledge modelling,<br />

knowledge management, knowledge distribution, <strong>and</strong> analysis technologies has been proposed on [TKKJ11]. This<br />

approach is oriented towards building the next-generation Web, named Knowledge Web.<br />

Knowledge web provides knowledge to the user at the right moment <strong>of</strong> time, in the right format thus allowing<br />

the user to underst<strong>and</strong> the knowledge given, in a form the user requested, the right size <strong>and</strong> structuring, <strong>and</strong> under<br />

consideration <strong>of</strong> the user’s information dem<strong>and</strong>. The central notion is the notion <strong>of</strong> knowledge. According to<br />

[TKKJ11, KZK + 10] we distinguish different kinds <strong>of</strong> to know<br />

1. The state or fact <strong>of</strong> knowing.<br />

2. Familiarity, awareness, or underst<strong>and</strong>ing gained through experience or study.<br />

3. The sum or range <strong>of</strong> what has been perceived, discovered, or learned.<br />

4. Learning; erudition: teachers <strong>of</strong> great knowledge.<br />

5. Specific information about something.<br />

6. Carnal knowledge.<br />

This distinction allows to consider two sides <strong>of</strong> knowledge: 1 is one <strong>of</strong> overused terms. It can be considered as knowledge in<br />

general defined by a noun <strong>and</strong> the knowledge by a user expressed by the verb ‘to know’.<br />

Knowledge as sustainable, evolving, potentially durable <strong>and</strong> verifiable grounded consensus: The required data<br />

chunk can be qualified as knowledge, if it<br />

1. is consensus within a world <strong>and</strong> a community,<br />

2. is based on postulates or principles that create the fundament for the knowledge,<br />

3. is true according to a certain notion <strong>of</strong> ’truth’,<br />

4. it is potentially evolving within an ordered evolution/aging process,<br />

5. is reusable in a rule system for new information,<br />

6. is has a longer lifespan <strong>and</strong> exists with persistent validness,<br />

7. has an effect <strong>and</strong> is sustaining within a society, community or world, <strong>and</strong><br />

8. is not equivalent to other information that can be generated with the aid <strong>of</strong> facts or preliminary information<br />

in the particular inventory <strong>of</strong> knowledge by a rule system.<br />

1 The definition provided by the Encyclopedia Britannica [SYea03] considers two ‘Janus’ meanings beside the obsolete ‘cognizance’ <strong>and</strong><br />

the archaic ‘sexual intercourse’:<br />

(I) as the fact <strong>of</strong> knowing something:<br />

(Ia1) the fact or condition <strong>of</strong> knowing something with familiarity gained through experience or association;<br />

(Ia2) acquaintance with or underst<strong>and</strong>ing <strong>of</strong> a science, art, or technique;<br />

(Ib1) the fact or condition <strong>of</strong> being aware <strong>of</strong> something;<br />

(Ib2) the range <strong>of</strong> one’s information or underst<strong>and</strong>ing;<br />

(Ic) the circumstance or condition <strong>of</strong> apprehending truth or fact through reasoning or cognition;<br />

(Id) the fact or condition <strong>of</strong> having information or <strong>of</strong> being learned;<br />

(II) the body <strong>of</strong> things known about or in science:<br />

(IIa) the sum <strong>of</strong> what is known: the body <strong>of</strong> truth, information, <strong>and</strong> principles acquired by mankind;<br />

(IIb) a branch <strong>of</strong> learning (synonyms <strong>of</strong> knowledge: learning, erudition, scholarship) meaning what is or can be known by an individual or by<br />

We prefer this approach over the approach taken by the Wikipedia community who distinguishes between communicating knowledge,<br />

situated knowledge, partial knowledge, scientific knowledge <strong>and</strong> know-how or know-what or know-why or know-who knowledge.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 494<br />

Knowledge as the state <strong>of</strong> information <strong>of</strong> a user: Different kinds <strong>of</strong> ‘to know’ are for a human:<br />

1. The state or fact <strong>of</strong> knowing.<br />

2. Familiarity, awareness, or underst<strong>and</strong>ing gained through experience or study.<br />

3. The sum or range <strong>of</strong> what has been perceived, discovered or learned.<br />

4. Learning; erudition: teachers <strong>of</strong> great knowledge.<br />

5. Specific information about something.<br />

6. Carnal knowledge.<br />

The Quality Characteristics <strong>of</strong> Knowledge.<br />

It is surprising that the literature treat knowledge as a 100 % quality criterion. We can however distinguish between<br />

validated knowledge that satisfiable within a scope <strong>of</strong> axioms <strong>and</strong> derivation rules (application domain), within a<br />

certain generality <strong>and</strong> has validity <strong>and</strong> timelineness,<br />

verified <strong>and</strong> correct knowledge based on axioms <strong>and</strong> rules within a pro<strong>of</strong> system that can be verified within a finite<br />

time, obey a correctness criteria (depending on pr<strong>of</strong>iles) <strong>and</strong> has some known interaction with other knowledge,<br />

<strong>and</strong> finally<br />

sustainable <strong>and</strong> enduring knowledge that has a lifespan beyond volatile data <strong>and</strong> is torpid for a certain lifespan,<br />

quality knowledge defined by the quality <strong>of</strong> use (underst<strong>and</strong>ability, learnability, operability, attractiveness, appropriatedness),<br />

by the external quality (privacy, ubiquity, pervasiveness, analysability, changeability, stability, testability),<br />

<strong>and</strong> by the internal quality (accuracy, suitability, interoperability, robustness, self-contained/independence).<br />

We additionally may consider the user dimension. In this case the following requirements are added:<br />

Potentially useful knowledge depends on a user, group or community or a culture <strong>and</strong> satisfies a number <strong>of</strong> quality<br />

criteria in dependence in the knowledge dem<strong>and</strong> <strong>of</strong> these users.<br />

Ultimately underst<strong>and</strong>able knowledge depends on the cognitive abilities <strong>of</strong> users, groups or communities.<br />

These quality characteristics result is differences <strong>of</strong> the value <strong>of</strong> knowledge for the user.<br />

Quality is thus characterised by certain main characteristics. These characteristics can be ordered within the<br />

following tree:<br />

Knowledge<br />

Quality<br />

Probable<br />

Validatable<br />

Correctness Testability<br />

Provability<br />

Conditions <strong>of</strong> validity<br />

Generality<br />

Range <strong>of</strong> validity<br />

Power for reasoning<br />

Usefulness Relevance<br />

Realisability<br />

Simplicity<br />

Coherence<br />

Comprehensibility<br />

Clarity<br />

Parsimony<br />

Not deductable<br />

Novelty Unexpected<br />

Previously unknown<br />

We may also observe that these quality characteristics are <strong>of</strong> different value <strong>and</strong> importance depending on the needs<br />

<strong>of</strong> the user. We may differentiate knowledge depending on<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 495<br />

• the role <strong>of</strong> the user such as learner, teacher, scientist, writer, etc.,<br />

• the application area such as sciences, engineering, daily life,<br />

• the timeliness <strong>of</strong> the information depending on the needs,<br />

• the background necessary for transferring the data to the users information space, the users recognition <strong>and</strong><br />

perception abilities, the users attention <strong>and</strong> interest, the users processing abilities, <strong>and</strong> the users abilities to<br />

integrate the data into his or her information space.<br />

For instance the quality characteristics <strong>of</strong> <strong>of</strong> very different importance. Compare for instance the following two<br />

opposite evaluations<br />

Economist:<br />

Scientist:<br />

Knowledge<br />

quality<br />

Correctness<br />

Generality<br />

Usefulness<br />

Comprehensibility<br />

Novelty<br />

Probable<br />

Validatable<br />

Testability<br />

Provability<br />

Conditions <strong>of</strong> validity<br />

Range <strong>of</strong> validity<br />

Power for reasoning<br />

Relevance<br />

Realisability<br />

Not deductable<br />

Unexpected<br />

Previously unknown<br />

Simplicity<br />

Coherence<br />

Clarity<br />

Parsimony<br />

Knowledge <strong>Systems</strong> Environments.<br />

Knowledge<br />

quality<br />

Correctness<br />

Generality<br />

Usefulness<br />

Comprehensibility<br />

Novelty<br />

Probable<br />

Validatable<br />

Testability<br />

Provability<br />

Conditions <strong>of</strong> validity<br />

Range <strong>of</strong> validity<br />

Power for reasoning<br />

Relevance<br />

Realisability<br />

Simplicity<br />

Coherence<br />

Clarity<br />

Parsimony<br />

Not deductable<br />

Unexpected<br />

Previously unknown<br />

Knowledge infrastructures are a hot research <strong>and</strong> technology concern nowadays. A good number <strong>of</strong> research<br />

issues are still open. The panel discussion at EJC 2011 highlighted some <strong>of</strong> them.<br />

• Knowledge infrastructures rely on novel system architectures. These systems must be developed under incorporation<br />

<strong>of</strong> new s<strong>of</strong>tware systems engineering approaches that include a continuous quality management for<br />

the knowledge chunks after they have been developed. This kind <strong>of</strong> continuous assessment is novel.<br />

At the same time we can contribute to such infrastructures with a sophisticated incorporation <strong>of</strong> technologies<br />

that have been developed within the web <strong>and</strong> database communities.<br />

• The integration <strong>of</strong> data acquisition, data processing <strong>and</strong> data publication within any communication tool<br />

is backed by classical database technology <strong>and</strong> benefits from novel technologies that have been proposed<br />

for Web x.0 application.<br />

• Knowledge system environments are provisioning knowledge from different sciences <strong>and</strong> thus are dependent<br />

on the specific form <strong>of</strong> the knowledge within these areas. This separation is however supported by<br />

domain-specific s<strong>of</strong>tware development for knowledge societies.<br />

• Knowledge systems will not be monolithic <strong>and</strong> are based on a network <strong>of</strong> collaborating computers. This<br />

trend is supported techniques such as modularisation <strong>and</strong> parallelisation.<br />

• The internet does not provide a 7-24-60-60 access mode to all its resources. Some <strong>of</strong> the resources might<br />

reachable at certain time points. Therefore, knowledge systems environments must also provide tools that<br />

increase security <strong>and</strong> dependability <strong>of</strong> knowledge sources with awareness <strong>of</strong> web insecurity.<br />

• Knowledge might be general knowledge that is available to everybody or knowledge that is under development<br />

or knowledge <strong>of</strong> a certain community. The last two cases require that knowledge systems<br />

environments must also support knowledge privacy.<br />

• Semantic technologies from the social web, semantic web, future internet <strong>of</strong>fer a lot <strong>of</strong> opportunities for a<br />

knowledge society. The internet has sometimes considered to be a large database <strong>of</strong> content. This database is<br />

however neither well-structured nor well-edited. There are sources that have been copied from other sources<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 496<br />

which got their own evolution. There are sources <strong>of</strong> any kind <strong>of</strong> quality. There is doubtful, completely speculative,<br />

outdated or incomplete content. If a society relies on such sources then quality management becomes a<br />

critical issue.<br />

We may separate concerns for coherent <strong>and</strong> well-supported knowledge management in a form that is displayed<br />

in Figure 4. This separation is based on the quality characteristics for knowledge.<br />

accessible<br />

processable<br />

actuality<br />

value<br />

creation<br />

complete<br />

appropriate<br />

size<br />

purpose<br />

dependent<br />

system supported<br />

knowledge<br />

quality<br />

presentation dependent<br />

relevance<br />

surveyable<br />

st<strong>and</strong>ardised<br />

underst<strong>and</strong>ability presentation<br />

inherent<br />

definite<br />

interpretation<br />

high<br />

reputation<br />

free from<br />

errors<br />

objective<br />

faithful<br />

Abbildung 4: The 15 dimensions <strong>of</strong> knowledge quality within four categories<br />

• Knowledge management can be based on principles. The following eight principles can be considered to be<br />

the central ones:<br />

• Principle 1: Ensure the knowledge we collect meets business needs <strong>and</strong> priorities. Management only<br />

collects knowledge that has a clear purpose. Given our finite resources we will prioritise investment to<br />

areas that best support the projects’s strategic directions <strong>and</strong> key operational requirements.<br />

• Principle 2: Minimise the cost <strong>and</strong> burden <strong>of</strong> knowledge capture. Management reduces the cost <strong>of</strong> collection<br />

<strong>and</strong> the burden on clients <strong>and</strong> providers by capturing knowledge once <strong>and</strong> once only, using the best<br />

available tools <strong>and</strong> technologies.<br />

• Principle 3: Get the best value from knowledge. Management enhances the value <strong>of</strong> its investment in<br />

knowledge by sharing knowledge, making it accessible, using it productively <strong>and</strong> managing it efficiently.<br />

• Principle 4: Produce quality knowledge. The knowledge are <strong>of</strong> a quality which makes it fit for purpose.<br />

This encompasses issues <strong>of</strong>: relevance, completeness, accuracy, timeliness <strong>and</strong> accessibility.<br />

• Principle 5: Provide knowledge integration. Knowledge are typically kept in a distributed form based on<br />

different formats, abstraction, granularity, quality <strong>and</strong> maintenance. Architectures, application <strong>of</strong> abstractions,<br />

common access <strong>and</strong> usage orientation are means for providing a holistic view on the knowledge<br />

massive.<br />

• Principle 6: Protect <strong>and</strong> preserve knowledge. Knowledge is managed with due care <strong>and</strong> diligence throughout<br />

the knowledge life cycle to ensure that it is protected <strong>and</strong> preserved in accordance with legislative<br />

<strong>and</strong> policy requirements, such as the <strong>Information</strong> Privacy Act <strong>and</strong> Victorian Electronic Records Strategy.<br />

• Principle 7: Enable good practices - Competencies Management staff members have the necessary skills,<br />

knowledge <strong>and</strong> experience to perform their knowledge management responsibilities.<br />

• Principle 8: Enable good practices - Governance. Clear accountabilities, controls <strong>and</strong> coordinating mechanisms<br />

are in place <strong>and</strong> observed to ensure that knowledge is managed efficiently <strong>and</strong> effectively.<br />

Knowledge Web - Do We Have a Need for That?.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 497<br />

Human <strong>of</strong>ten meet a situation in which additional information, knowledge or at least fact are urgently dem<strong>and</strong>ed.<br />

This knowledge on dem<strong>and</strong> is however not uniquely determined. It depends on the user, the current user situation, the<br />

data on h<strong>and</strong>, the background, the policies <strong>of</strong> data providers, etc.<br />

Example (knowledge dem<strong>and</strong>): Let us consider the large variety for knowledge dem<strong>and</strong> <strong>of</strong> people after the Icel<strong>and</strong><br />

EyJafjallajokull Glacier volcano eruption on March 20, 2010:<br />

• How long this situation will influence travel in Europe? Remember that the last Eyjafjallajokull eruption lasted<br />

for two years, <strong>and</strong> it is possible that this one will do the same. How weather conditions such as the anti-cyclone<br />

situation influence on ash spread?<br />

• What are the contents <strong>of</strong> ash? Could particles <strong>of</strong> rock, glass <strong>and</strong> s<strong>and</strong> clog up aircraft engines? What are the<br />

fears <strong>of</strong> the effect <strong>of</strong> volcanic ash on plane engines? Are there other components on aircraft that are equally<br />

sensitive to particles? Is driving more dangerous than flying through ash? As flights resume, how dangerous is<br />

it to fly through a volcanic ash cloud? Are the airlines right with their requirement to resume flights on manual<br />

control by pilots depending on visibility? Which safety tests showed that the engines could cope in areas <strong>of</strong><br />

low-density ash?<br />

• Why mathematical simulations have been used for decision making? Why mathematics has partially failed in<br />

making predictions?<br />

• How the weather changes can be explained after the volcano eruption? Why scientist were incorrect in their<br />

prediction for the weather impact? (The European summer in 2010 was far colder than any prediction could<br />

foresee. This summer seems to be a counterexample for the climate change discussion. Watching the enormous<br />

plumes <strong>of</strong> dust <strong>and</strong> ash rising from Eyjafjallajokull, it is hard to imagine that this almost week-long eruption<br />

would not have any effect on weather <strong>and</strong> climate. But scientist expected that there is no change.)<br />

• What is the economical impact <strong>of</strong> such eruptions in general <strong>and</strong> <strong>of</strong> this eruption in special? What is the impact<br />

<strong>of</strong> the eruption for North Sea fishery, for industry, for tourism, etc.?<br />

• What are the passengers rights for str<strong>and</strong>ed passengers or cancellations? What are the best sources <strong>of</strong> advice?<br />

How I can cope with my personal situation? E.g., who gets priority on seats now flights are running again?<br />

• Why icel<strong>and</strong>ers enjoy their volcanos?<br />

• How clouds depends on volcanos <strong>and</strong> flights? Jet contrails are effectively acting as cirrus clouds, reflecting<br />

solar energy in the day, acting as a blanket by night.<br />

• Is there any correlation to other climate change drivers such as sun activity? What are the implications <strong>of</strong><br />

ionospheric plasma bubbles? To what extent are sunspot activities related to economic cycles?<br />

This small list can be extended in many directions <strong>and</strong> illustrates the variety <strong>of</strong> knowledge that is necessary to satisfy<br />

the dem<strong>and</strong> <strong>of</strong> people.<br />

Another examples (knowledge dem<strong>and</strong>):<br />

Finance crisis: background, theories, causes, drivers<br />

Why economy science failed completely?<br />

deficiencies, state-<strong>of</strong>-the-art<br />

Why politicians applied the wrong approach?<br />

background, bindings<br />

Is bonus treatment the golden shot?<br />

prediction, restrictions<br />

Who is really ruling society <strong>and</strong> banks?<br />

science <strong>and</strong> reality<br />

Insiders on the crash <strong>and</strong> lessons learned.<br />

learned at all<br />

How the crisis unfolded <strong>and</strong> how stocks were hit?<br />

history beside news<br />

Has the economic recovery really started as yet?<br />

analysis<br />

‘The next crisis will make this one look like a warm-up.’<br />

spending tax payers money<br />

How your money was spent on the bail-out?<br />

$ 11 trillion bailing out failing banks<br />

Find out how debt has soared in the crisis?<br />

cost <strong>of</strong> the financial meltdown<br />

How Fannie <strong>and</strong> Freddie sank the US housing market?<br />

complete picture<br />

A year <strong>of</strong> crisis<br />

history, state-<strong>of</strong>-the-art, consequences<br />

see for instance:<br />

http://news.bbc.co.uk/2/hi/in depth/business/2007/creditcrunch/default.stm<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 498<br />

Climate crisis: reasons for the climate change; scientific theories that explain parts <strong>and</strong> pieces; open issues<br />

Educated voter: tendency in Germany not to vote due to indistinguishability <strong>of</strong> parties; parties out <strong>of</strong> voters control; corruption<br />

in parties; no knowledge about real work <strong>of</strong> politicians <strong>and</strong> parliamentarians<br />

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

The example shows that we need different data, concepts, explanations, theories, <strong>and</strong> information. In general,<br />

knowledge system environments must support the following kinds:<br />

• state-<strong>of</strong>-the art, -affairs, -knowledge, -science;<br />

• deficiencies, missing or withhold facts;<br />

• background, scientific explanations, science, potential theories, analysis;<br />

• cross links, bindings;<br />

• associations;<br />

• facts with quality properties, full or partial picture;<br />

• predictions, possible tactics <strong>and</strong> strategies for the future;<br />

• restrictions, generalisation;<br />

• analogies;<br />

• history beside news;<br />

• ways to cope with <strong>and</strong> the outcome for the future;<br />

• consequences;<br />

• links with headlines <strong>and</strong> quality assessment.<br />

This list <strong>of</strong> knowledge pieces or chunks that must be provided can be categorized by the utility that the knowledge<br />

provides as follows:<br />

Orientation knowledge allows to cope with the situation, to explain, <strong>and</strong> to survey the history, the scenario, the<br />

facts, the summarisation or generalisation <strong>and</strong> the overall view.<br />

Tacit or action knowledge is based on practices, technics, methods, <strong>and</strong> strategies. It provides rules, procedures,<br />

check lists, principles, strategies, law, regulations, comments to regulations in order to manage situations.<br />

Explanation knowledge gives reasons, arguments for explanation <strong>of</strong> claims or arguments or assertions or recommendations<br />

(what, why,, ...).<br />

Sources knowledge links to knowledge on data sources (meta knowledge) such as knowledge on archives, references<br />

to communication, or cross links.<br />

Activity knowledge supports working, adaptation or processing, operating on analogies, <strong>and</strong> coping with errors.<br />

The Knowledge Delivery Task for Web 3.0 Knowledge <strong>Systems</strong> Environments.<br />

The knowledge delivery task <strong>of</strong> the Knowledge-Centered Web is defined as:<br />

Deliver the knowledge the user really needs through (1) concepts at the educational level level <strong>of</strong> the user that<br />

are illustrated <strong>and</strong> extended by (2) content which is quality content depending on the external <strong>and</strong> internal<br />

quality <strong>of</strong> the aggregated data (media object suite) <strong>and</strong> that are depicted by (3) topics in the language, in the<br />

culture <strong>and</strong> in the application portfolio <strong>of</strong> the user.<br />

Therefore, knowledge delivery <strong>and</strong> acquaintance for the user is user-oriented <strong>and</strong> life-case-based content, concepts<br />

<strong>and</strong> topics.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 499<br />

Context Dimension Characterisation <strong>and</strong> Adaptation <strong>of</strong> Knowledge Delivery by Context.<br />

Taking the commonly accepted meaning a context [15] characterises the situation in which a user finds him/herself<br />

at a certain time in a particular location. In this sense context is usually defined only statically referring to the content<br />

<strong>of</strong> a database. Only very few attempts have been made so far to consider context <strong>of</strong> scenarios or stories.<br />

More generally, we consider context as everything that surrounds a utilisation situation <strong>of</strong> a knowledge system<br />

by a user <strong>and</strong> can throw light on its meaning. Therefore, context is characterised by interrelated conditions for the<br />

existence <strong>and</strong> occurrence <strong>of</strong> the utilisation situation such as the external environment, the internal state, location,<br />

time, history, etc. For knowledge systems we need to h<strong>and</strong>le the mental context that is based on the pr<strong>of</strong>ile <strong>of</strong> the<br />

actor or user, the storyboard context that is based on the story leading to a situation, the data context that is based on<br />

the available data, the stakeholder context, <strong>and</strong> the collaboration context. These different kinds <strong>of</strong> contexts have an<br />

influence on the development <strong>of</strong> the storyboard <strong>and</strong> must thus be considered for the development <strong>of</strong> the knowledge<br />

system.<br />

We distinguish the following facets <strong>of</strong> context [34, 33, 30]:<br />

Actor context: The knowledge system is used by actors for a number <strong>of</strong> tasks in a variety <strong>of</strong> involvements <strong>and</strong> well<br />

understood collaboration. These actors impose their quality requirements on the knowledge system usage as<br />

described by their security <strong>and</strong> privacy pr<strong>of</strong>iles. They need additional auxiliary data <strong>and</strong> auxiliary functions.<br />

The variability <strong>of</strong> use is restricted by the actor’s context, which covers the actor’s specific tasks <strong>and</strong> specific<br />

data <strong>and</strong> function dem<strong>and</strong>, <strong>and</strong> by chosen involvement, while the pr<strong>of</strong>ile <strong>of</strong> actors imposes exceptions. The<br />

involvement <strong>and</strong> collaboration <strong>of</strong> actors is based on assumptions <strong>of</strong> social behaviour <strong>and</strong> restrictions due to<br />

organisational decisions. These assumptions <strong>and</strong> restrictions are components <strong>of</strong> the actor’s context.<br />

Storyboard context: The meaning <strong>of</strong> content <strong>and</strong> functionality to users depends on the stories, which are based on<br />

scenarios that reflect life cases <strong>and</strong> the portfolios <strong>of</strong> users or actors. According to the pr<strong>of</strong>ile <strong>of</strong> these users a<br />

number <strong>of</strong> quality requirements such as privacy, security <strong>and</strong> availability must be satisfied. The actor’s scenario<br />

context describes what the actor needs to underst<strong>and</strong> in order to efficiently <strong>and</strong> effectively solve his/her tasks<br />

in the actual portfolio. The actor’s determine the policy for following particular stories.<br />

System context: The knowledge system is developed to support a number <strong>of</strong> intentions. The purposes <strong>and</strong> intents<br />

lead to a number <strong>of</strong> decisions on the knowledge system architecture, the technical environment, <strong>and</strong> the implementation.<br />

The knowledge system architecture has an impact on its utilisation, which <strong>of</strong>ten is only implicit<br />

<strong>and</strong> thus leads to not underst<strong>and</strong>able systems behaviour. The technical environment restricts the user due to<br />

restrictions imposed by server, channel <strong>and</strong> client properties. Adaptation to the current environment is defined<br />

as context adaptation to the current channel, to the client infrastructure <strong>and</strong> to the server load. At the same<br />

time a number <strong>of</strong> legal decisions based on regulations, laws <strong>and</strong> business rules have been incorporated into the<br />

knowledge system.<br />

Temporal context: The utilisation <strong>of</strong> a scene by an actor depends on his/her history <strong>of</strong> utilisation. Actors may<br />

interrupt <strong>and</strong> resume their activities at any moment <strong>of</strong> time. As they may not be interested in repeating all<br />

previous actions they have already successfully completed, the temporal context must be taken into account.<br />

Due to availability <strong>of</strong> content <strong>and</strong> functionality the current utilisation may lead to a different story within the<br />

same scenario.<br />

Provider context: Providers are characterised by their mission, intentions, <strong>and</strong> specific policies. Additionally, terms<br />

<strong>of</strong> business may be added. Vendors need to underst<strong>and</strong> how to run the knowledge system economically. Typical<br />

parts <strong>of</strong> this context are intentions <strong>of</strong> the provider, themes <strong>of</strong> the website, mission or corporate identity <strong>of</strong><br />

the site, <strong>and</strong> occasion <strong>and</strong> purpose <strong>of</strong> the visits <strong>of</strong> actors. Thus, providers may require additional content <strong>and</strong><br />

functionality due to their mission <strong>and</strong> policy. They may apply their terms <strong>of</strong> business <strong>and</strong> may require a specific<br />

layout <strong>and</strong> playout.<br />

Based on this information, the knowledge system is extended by provider-specific content <strong>and</strong> functionality.<br />

The storyboard may be altered according to the intentions <strong>of</strong> the provider, <strong>and</strong> life cases may be extended or


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 500<br />

partially supported. Provider-based changes to portfolios are typical for knowledge systems in e-government<br />

<strong>and</strong> e-business applications.<br />

Developer context: The knowledge system implementation depends on the capability <strong>of</strong> the developer. Typically<br />

we need to take into account the potential environment, e.g. hard- <strong>and</strong> s<strong>of</strong>tware, communication channels,<br />

the information systems that are to be incorporated, especially the associated databases, <strong>and</strong> the programming<br />

environment developers use.<br />

Organisational <strong>and</strong> social context: The organisation <strong>of</strong> task solutions is <strong>of</strong>ten already predetermined by the application<br />

domain. It follows organisational structures within the institutions involved. We captured a part <strong>of</strong><br />

these structures already on the basis <strong>of</strong> the portfolio <strong>and</strong> modelled it by collaboration. The other pars form the<br />

organisational context. Collaboration <strong>of</strong> partners consists <strong>of</strong> communication, coordination, <strong>and</strong> cooperation.<br />

Cooperation is based on cooperativity, i.e. the disposition to act in a way that is best helpful for the collaboration<br />

partners, taking their intentions, tasks, interests <strong>and</strong> abilities into account. At the same time, collaboration<br />

is established in order to achieve a common goal. Actors choose their actions <strong>and</strong> organise them such that<br />

their chances <strong>of</strong> success are optimised with respect to the portfolio they are engaged in. Additionally, the social<br />

context may be taken into account, which consists <strong>of</strong> interactive <strong>and</strong> reactive pressures. Typical social<br />

enhancements are socially indicated situations such as welcome greetings, thanking, apologising, <strong>and</strong> farewell<br />

greetings.<br />

Most systems today do not support adaptivity <strong>and</strong> user orientation. <strong>Information</strong> as processed by humans is perceived<br />

in a very subjective way. As for a knowledge system, the determining factor whether the user can derive advantage<br />

from the content delivered is the user’s individual situation, i.e. the life case, user model <strong>and</strong> context. The same<br />

category <strong>of</strong> information can cause various needs in different life cases.<br />

Not any user can deal with any kind <strong>of</strong> content. For the casual user or the novice other content has to be delivered<br />

than for experts. The common knowledge system doesn’t reflect the user’s situation <strong>and</strong> neglects the user’s specific<br />

needs. As a result, the user is spammed with information which is predominantly out <strong>of</strong> focus. The abundance <strong>of</strong><br />

information also makes it impossible to separate useful from for the user useless content. Any by the absence <strong>of</strong> meta<br />

data unspecified information reduces the usability <strong>of</strong> World Wide Web on the whole.<br />

Furthermore, users are limited<br />

• in their abilities for verbalisation,<br />

• in their abilities for digestion <strong>of</strong> data <strong>and</strong><br />

• by their habits, practices <strong>and</strong> cultural environment.<br />

These limitations may cause intellectual overburdening <strong>of</strong> users. Most systems that require sophisticated learning<br />

courses for their exploration <strong>and</strong> utilization did not consider these limitations <strong>and</strong> did not cope with real life situations.<br />

The approach we use for avoiding overload is based on observation <strong>of</strong> real applications before developing the<br />

knowledge system.<br />

User typically request or need various content depending on their situation, on material available, on the actual<br />

information dem<strong>and</strong>, on data already currently available <strong>and</strong> on technical equipment <strong>and</strong> channels on h<strong>and</strong>. Therefore,<br />

we need a facility for content adaptation depending on the context <strong>of</strong> the user. Content matching <strong>and</strong> adaptation may<br />

be thus considered as one <strong>of</strong> the ‘gr<strong>and</strong>’ challenges <strong>of</strong> modern internet.<br />

To meet this challenge, the information has to be matched against the particular needs <strong>of</strong> the user [34, 33, 30].<br />

Since the thinkable combinations <strong>of</strong> user life cases, user models <strong>and</strong> context [15] are indefinitely, the definition <strong>of</strong><br />

life cases [33] has to be determined for the content <strong>and</strong> matched against the users situation. For a knowledge system,<br />

there should be not only concrete definitions <strong>of</strong> which content is applicable for which life case. To avoid making<br />

useful content useless by presenting it in an inappropriate way to the user, knowledge systems have also to consider<br />

the user’s specific pr<strong>of</strong>ile <strong>and</strong> context. By processing this data, the knowledge system should provide different views<br />

<strong>of</strong> information <strong>and</strong> the appropriate media types for presenting their knowledge to various audiences.<br />

The implicit goals <strong>of</strong> content management <strong>and</strong> content delivery are:<br />

• to meet all the information (contextual) requirements <strong>of</strong> the entire spectrum <strong>of</strong> users in a given application area;


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 501<br />

• to provide a “natural” <strong>and</strong> easy-to-underst<strong>and</strong> structuring <strong>of</strong> the information content;<br />

• to preserve the designers entire semantic information for a later redesign;<br />

• to achieve all the processing requirements <strong>and</strong> also a high degree <strong>of</strong> efficiency in processing;<br />

• to achieve logical independence <strong>of</strong> query <strong>and</strong> transaction formulation on this level;<br />

• to provide a simple <strong>and</strong> easily to comprehend user interface family.<br />

Knowledge Management <strong>Systems</strong>.<br />

Knowledge management aims in supporting the spread <strong>of</strong> knowledge <strong>of</strong> individuals or groups across interested in<br />

it communities in ways that directly affect performance. Knowledge management envisions getting the right data (or<br />

information) within the right context to the right person at the right time for the right business purpose. Knowledge<br />

management systems allow to manage knowledge in communities <strong>of</strong> practice or interest, supporting creation, capture,<br />

<strong>and</strong> storage <strong>and</strong> sharing <strong>of</strong> expertise in the form <strong>of</strong> information in dependence on the user. Knowledge management<br />

systems use the entire variety <strong>of</strong> architecture solution known for intranet, internet or extranet systems. We observe<br />

two main architecture lines:<br />

1. The task/pr<strong>of</strong>ile/portfolio-based approach focuses on the use <strong>of</strong> knowledge by collaborators depending on their<br />

tasks <strong>and</strong> interest. This approach is based on the data or information <strong>and</strong> knowledge needs <strong>of</strong> the communities,<br />

where they are located, <strong>and</strong> who needs them. The KMS is designed to capture knowledge <strong>and</strong> to make knowledge<br />

available when needed to whom needs it. These systems may be described by storyboards [18, 31] that<br />

describe the life situations or life cases <strong>of</strong> the knowledge dem<strong>and</strong>ers or user, the context <strong>of</strong> knowledge use <strong>and</strong><br />

the user pr<strong>of</strong>iles which specify the education, personality <strong>and</strong> practice pr<strong>of</strong>ile.<br />

2. The infrastructure/generic system based approach focuses on building a knowledge base system to capture<br />

<strong>and</strong> distribute knowledge for use throughout the communities <strong>of</strong> practice. It concern <strong>of</strong> the technical details<br />

needed to provide good mnemonic functions associated with the identification, retrieval, <strong>and</strong> use <strong>of</strong> knowledge.<br />

The approach focuses on network capacity, database structure <strong>and</strong> organization, <strong>and</strong> knowledge information<br />

classification.<br />

Semantification <strong>of</strong> Web 3.0.<br />

The “Semantic Web” is mainly based on syntax <strong>and</strong> partially uses micro-semantics <strong>of</strong> wordings. Semantics is<br />

used in the sense <strong>of</strong> rudimentary lexical semantics. Rudimentary lexical semantics must be enhanced by explicit<br />

definitions <strong>of</strong> symbols or words used. These definitions can be combined with the name spaces that provide a source<br />

for the lexical units used in a web document. The semantification project [6] <strong>of</strong> the group headed by J. Pokorny<br />

<strong>and</strong> P. Vojtas at Charles University Prague aims in enhancing the ontology based annotation in XML documents or<br />

RDFa-annotated HTML files by a semantic repository, by user pr<strong>of</strong>iles <strong>and</strong> by portfolio management.<br />

Web documents should be enhanced by context [15] or meta-data similar to the OpenCyc project. Lexical units<br />

may be characterised by time(absolut, type), place(absolut, type), culture, sophistification/security, topic/usage, granularity,<br />

modality/disposition/epistemology, argument preferences, justification, <strong>and</strong> lets [Len02].<br />

The vocabulary <strong>of</strong> name spaces or <strong>of</strong> ontologies is not just a collection <strong>of</strong> words scattered at r<strong>and</strong>om throughout<br />

web documents. It is at least partially structured, <strong>and</strong> at various levels. There are various modes <strong>and</strong> ways <strong>of</strong><br />

structuring, e.g., by branching, taxonomic or meronymic hierarchies or by linear bipole, monopolar or sequenced<br />

structures.<br />

Ontologies are <strong>of</strong>ten considered to be the silver bullet for web integration. They are sometimes considered to be<br />

an explicit specification <strong>of</strong> conceptualisation or to be a shard underst<strong>and</strong>ing <strong>of</strong> some domain <strong>of</strong> interest that can be<br />

communicated across people <strong>and</strong> computers. We should however distinguish a variety <strong>of</strong> ontologies such as generic,<br />

semiotic, intention/extension, language, UoD, representational, context <strong>and</strong> abstraction ontologies.<br />

Technical Environments for Knowledge on Dem<strong>and</strong>.


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 502<br />

In this paper we discussed three approaches to technical environments to knowledge systems: cloud services,<br />

database-backed systems <strong>and</strong> knowledge processing for universal communities. Technical environments for knowledge<br />

delivery system includes pull <strong>and</strong> push technology, notification technology, knowledge discovery technology,<br />

knowledge documentation, knowledge quality <strong>and</strong> productivity, <strong>and</strong> human computer interface technology. These<br />

systems be developed by using eight layers, which includes storyboard layer as a top level one in order to allow to<br />

provide knowledge on dem<strong>and</strong> <strong>and</strong> on context, <strong>and</strong> followed by seven interwoven technology layers that facilitate<br />

the community to work together to share, re-use <strong>and</strong> generate knowledge among them: interface layer, access layer,<br />

collaborative layer, application logic layer, transport layer, integration layer, <strong>and</strong> repositories layer.<br />

Digital Science (Science 2.0).<br />

[aIU11] defines the focus <strong>and</strong> the purpose <strong>of</strong> digital science as follows: “Digital science focuses on creating an<br />

intuitively usable cyber-infrastructure with tremendous capabilities for supporting collaboration <strong>and</strong> computation.<br />

Easy-to-use, human-centered interfaces to cyber-infrastructure created by the digital science will enable the many<br />

thous<strong>and</strong>s <strong>of</strong> researchers in the public <strong>and</strong> private sectors to use the capabilities <strong>of</strong> cyber-infrastructure <strong>and</strong> accelerate<br />

innovation <strong>and</strong> discovery”.<br />

Modern science <strong>and</strong> especially digital science is backed by networks <strong>of</strong> computing resources, by tools for knowledge<br />

management, by ready-to-use <strong>and</strong> adaptable knowledge. People are at the basis <strong>of</strong> the future scientific environment.<br />

Digital science combines concepts <strong>and</strong> technologies to make this possible. First emerged in the natural<br />

sciences, digital science can be transferred to all disciplines <strong>and</strong> benefit from their integration, including the arts <strong>and</strong><br />

humanities. The adoption <strong>of</strong> digital science has only just begun; technologies, organisational structures <strong>and</strong> culture<br />

progress alternately towards the digital science vision.<br />

[Mac11, Ber11] define digital science through their backgrounding technology, especially within an yet-anotheredutainment<br />

(or -e-learning) platform: “Digital science will focus on providing world-class s<strong>of</strong>tware tools <strong>and</strong> services<br />

to scientists, managers <strong>and</strong> funders with the ultimate aim <strong>of</strong> making research more productive through the use<br />

<strong>of</strong> technology.” This technology supports the delivery<br />

• <strong>of</strong> information to my community within the current context,<br />

• <strong>of</strong> lectures together with settled material, <strong>and</strong><br />

• <strong>of</strong> competencies gained by each <strong>of</strong> the partners.<br />

Digital science (sometimes called e-science or science 2.0) is characterised by<br />

1. collaboration (or crowd) stories for development <strong>of</strong> science within a community (how),<br />

2. pr<strong>of</strong>iles, level <strong>of</strong> engagement <strong>and</strong> interest <strong>of</strong> collaborators (who),<br />

3. content that is either private or shared based a number <strong>of</strong> sharing pattern (what),<br />

4. coherent presentation <strong>of</strong> content depending on the pr<strong>of</strong>ile <strong>of</strong> the user <strong>and</strong> on progress <strong>of</strong> work within a community,<br />

5. rights, roles <strong>and</strong> plays <strong>of</strong> contributors within the story assigned (which rights portfolio), <strong>and</strong><br />

6. constraints for the participation <strong>and</strong> contribution (which conditions).<br />

Services for Digital Science.<br />

Digital science relies on high availability <strong>of</strong> content at any time for convenience (when), at any place <strong>of</strong> the<br />

collaborator (where in the ‘cloud’), <strong>and</strong> within any context that is agreed in advance. Digital science is based on<br />

the classical science behaviour, classical science st<strong>and</strong>ards, classical editing <strong>of</strong> scientific results <strong>and</strong> classical quality<br />

norms <strong>and</strong> assurance (communalism, universalism, disinterestedness, originality, <strong>and</strong> skepticism) within a scientific<br />

community.<br />

Digital science is science that extensively uses digital (or IT) services. These services might be


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 503<br />

• services for collaboration within a group or community <strong>of</strong> scientists,<br />

• data, information or knowledge services for collection, creating, delivering, maintenance <strong>and</strong> cleansing <strong>of</strong><br />

content within a scientific community,<br />

• computational, exchange <strong>and</strong> control services for the portfolio <strong>of</strong> tasks a scientist has been assigned,<br />

• network services for hooking into the network at any time independently <strong>of</strong> the current location <strong>and</strong> environment<br />

<strong>of</strong> the scientist, <strong>and</strong><br />

• protection services for privacy <strong>and</strong> security <strong>of</strong> scientific communities.<br />

Services for digital science require a more sophisticated description for services beyond WSDL. We use the following<br />

frame for the specification <strong>of</strong> digital science services:<br />

End (wherefore) <strong>of</strong> the services;<br />

Sources (where<strong>of</strong>) used for the service;<br />

Supporting means (wherewith) the service is relying on;<br />

Surplus value (worthiness) the service might give to the users;<br />

Purpose (why, whereto, when, for-which-reason) <strong>of</strong> the service;<br />

Activities (how) supported by the service for collaboration stories based on data consumption (what-in) <strong>and</strong> resulting<br />

in data production (what-out);<br />

Parties such as suppliers (by-whom), consumers (to-whom), <strong>and</strong> producers (whichever);<br />

Application domain describing the application area (wherein), application cases (wherefrom), the problems (forwhat),<br />

the organizational unit (where), triggering events (whence), <strong>and</strong> IT data, control, computation (what,<br />

how)<br />

Context for the service such as the system context (whereat), the story context (where-about), the coexistence context<br />

(whither), <strong>and</strong> the time context (when).<br />

Digital science takes its cue from the technologies <strong>of</strong> Web 2.0, Web 3.0 <strong>and</strong> Knowledge Web. It creates conversations<br />

between researchers, lets them discuss the data <strong>and</strong> connect it with other data that might be relevant.<br />

The most important property <strong>of</strong> digital science is its constant collaboration among scientists. Collaboration <strong>of</strong><br />

partners consists <strong>of</strong> communication, coordination, <strong>and</strong> cooperation. Cooperation is based on cooperativity, i.e. the<br />

disposition to act in a way that is best helpful for the collaboration partners, taking their intentions, tasks, interests<br />

<strong>and</strong> abilities into account. At the same time, collaboration is established in order to achieve a common goal. Actors<br />

choose their actions <strong>and</strong> organise them such that their chances <strong>of</strong> success are optimised with respect to the portfolio<br />

they are engaged in. Additionally, the social context may be taken into account, which consists <strong>of</strong> interactive <strong>and</strong><br />

reactive pressures. Typical social enhancements are socially indicated situations such as welcome greetings, thanking,<br />

apologising, <strong>and</strong> farewell greetings.<br />

Digital science services support a scientific community. This community is backed by a common library <strong>of</strong> this<br />

community. The essential results <strong>of</strong> such communities are knowledge chunks compiled. Communities collaborate.<br />

Therefore, exchange services are an essential element <strong>of</strong> the knowledge infrastructure. The collaboration within the<br />

community must be supported corresponding services. We thus may separate services that support the infrastructure<br />

<strong>of</strong> digital science as given in Figure 5.<br />

<strong>Information</strong> Infrastructure Services for Digital Science.<br />

<strong>Information</strong> infrastructure services support collaborative work <strong>of</strong> scientists independent from their location at<br />

different periods <strong>of</strong> time. The collaboration is based on roles, rights <strong>and</strong> group membership <strong>of</strong> scientists. These


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 504<br />

Knowledge delivery service:<br />

Services for<br />

partners<br />

Knowledge community:<br />

Community<br />

<strong>of</strong> my collaborators<br />

Infrastructure<br />

for digital science<br />

Virtual knowledge library:<br />

Knowledge chunks,<br />

adapters<br />

Compiled knowledge:<br />

Commonly<br />

agreed <strong>and</strong> shared notions<br />

Abbildung 5: The dimensions <strong>of</strong> infrastructures for digital science<br />

services must support the entire research process - starting from brainstorming, detection, discussion continuing<br />

through issuing project <strong>and</strong> should not terminate after a project has been closed. Data that are bundled with research<br />

results must be accessible together with publication <strong>of</strong> results.<br />

Virtual research environment services thus provide an access to real science resources (e.g., data analysis <strong>and</strong><br />

computation tools, data). They thus support the scientific work <strong>of</strong> generation Z. Young people are nowadays used to<br />

the facilities <strong>of</strong> the internet, to the richness <strong>of</strong> data sources, to the variety <strong>of</strong> beliefs <strong>and</strong> opinions displayed at pleads<br />

<strong>of</strong> webpages, to the constant change in the web <strong>and</strong> to the incompleteness <strong>and</strong> misinformation <strong>of</strong> opinion pools <strong>and</strong><br />

blogs. The generation Z has however not yet found a way to discover the real information, to dig to grounded data,<br />

to follow links to the consensus that has led to the data in the web, <strong>and</strong> select correct <strong>and</strong> consistent data within the<br />

world <strong>of</strong> data in the web. Therefore, a number <strong>of</strong> tasks must be solved for digital science:<br />

Digital archives beyond the classical hosting <strong>and</strong> archive technology must be backed by stabile <strong>and</strong> dependable<br />

access services, simple but powerful search facilities, <strong>and</strong> high-performance data delivery. They ensure the<br />

long-term availability <strong>of</strong> digital media <strong>and</strong> contents that have been acquired from around the world <strong>and</strong> their<br />

integration in the digital research environment. Digital archives must be backed by subject-specific st<strong>and</strong>ards<br />

<strong>and</strong> methods <strong>of</strong> data curation <strong>and</strong> archiving.<br />

Archives are either [Bea10]<br />

• light archives that can be accessed by many authorised users,<br />

• dark archives that cannot be accessed by any current users but may be accessible at future dates subject<br />

to the occurrence <strong>of</strong> specific pre-defined events either <strong>of</strong> type 1, i.e., providing a form <strong>of</strong> escrow or “bit<br />

preservation” <strong>of</strong> content, or <strong>of</strong> type 2, i.e., providing the bit preservation <strong>of</strong> the content plus some degree<br />

<strong>of</strong> associated services for future access, <strong>and</strong><br />

• dim archives that provide bit preservation for the content plus digital preservation planning <strong>and</strong> actions<br />

for long-term perpetual access, <strong>and</strong> also limited current access.<br />

Library 2.0 tools guarantee the broadest possible access to digital publications, primary research data, to virtual<br />

research <strong>and</strong> communications environments, <strong>and</strong> other material without unexpected costs <strong>and</strong> other barriers.<br />

They ensure the systematic backup, archiving <strong>and</strong> provisioning <strong>of</strong> scientific data for subsequent (re-)use by third<br />

parties. Perpetual access guarantees to the right <strong>of</strong> the subscriber <strong>and</strong> their users to have ongoing permanent<br />

access to electronic materials which have already been leased <strong>and</strong> paid for by the subscriber from a publisher.<br />

Search <strong>and</strong> access tools are currently based on database techniques for ad-hoc query formulation <strong>and</strong> computation.<br />

Instead knowledge infrastructures must be backed by support for access in dependence on meta-data about<br />

the users, their pr<strong>of</strong>ile <strong>and</strong> portfolio, <strong>and</strong> especially their information dem<strong>and</strong>. The same set <strong>of</strong> requirements<br />

is valid for search tools. Search can be categorised into seven categories [DT04]. This categorisation allows a<br />

development <strong>of</strong> st<strong>and</strong>ardised methods for access to to information massives.


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 505<br />

Collaboration tools for collaborative research within continuously changing communities would allow broad cooperation<br />

<strong>of</strong> scientists, would support concentration <strong>of</strong> competencies <strong>and</strong> resources <strong>and</strong> would improve coordination<br />

<strong>of</strong> current <strong>and</strong> future activities. Collaboration services can be build based on the 3C framework [ST07b] that<br />

separates supporting services into communication services, coordination services, <strong>and</strong> cooperation services.<br />

These services can be supported by current database technology [FRT05].<br />

Since science data are heterogeneous in their nature a common data policy must be promoted. This policy is<br />

based on a data management plan for all collaborating partners. This plan includes maintenance procedures,<br />

clearing procedures, control <strong>of</strong> access <strong>and</strong> data consumption, data update procedures for all partners, <strong>and</strong> data<br />

delete procedures for all partners. Such policies must be the basis for data collaboration contracts. At the same<br />

time, science data must be bundled with the publication <strong>of</strong> results drawn from them.<br />

both the need for action <strong>and</strong> to demonstrate the usefulness <strong>of</strong> primary data infrastructures for scientists <strong>and</strong><br />

scholars.<br />

Distribution tools ideal conditions for delivery, distribution, <strong>and</strong> reception <strong>of</strong> most recent research results<br />

Integration tools support the constant change <strong>of</strong> the world <strong>of</strong> knowledge which is continuously extended, modified<br />

<strong>and</strong> documented in scientific publications<br />

SWOT <strong>Analysis</strong> <strong>of</strong> the Current State-Of-The-Art.<br />

Knowledge management is a long-st<strong>and</strong>ing research issue, was probably the hottest topic in management in the<br />

1990s <strong>and</strong> has partially failed. We may learn the lessons for the development <strong>of</strong> infrastructures that support digital<br />

science. Despite massive investments <strong>and</strong> a lot <strong>of</strong> highly motivated people, the best knowledge management systems<br />

succeeded at capturing <strong>and</strong> institutionalizing the knowledge <strong>of</strong> a company. The real value <strong>of</strong> knowledge management<br />

is in creating new knowledge, rather than simply “managing” existing knowledge.<br />

What we really need are new approaches to creating knowledge, ones that take advantage <strong>of</strong> the existing s<strong>of</strong>tware<br />

systems <strong>and</strong> incorporate new digital infrastructures for intensive collaboration <strong>and</strong> for mobilisation <strong>of</strong> benefits <strong>of</strong><br />

interacting <strong>and</strong> collaborating communities. Digital science is going to heavily rely on shared network platforms,<br />

provides tools <strong>and</strong> forums for knowledge creation while at the same time capturing the discussion, analysis, <strong>and</strong><br />

actions in ways that make it easier to share across a broader range <strong>of</strong> participants. Blogs <strong>and</strong> wikis have great benefits<br />

for a community <strong>and</strong> any member <strong>of</strong> such.<br />

At the same time ‘knowledge management’ was really a misnomer. Most companies called knowledge management<br />

was was actually information management. They captured tacit information held by the employees <strong>and</strong> thus<br />

made it explicit. Collaboration was not yet a target. Employees did not see added value to their workflow by providing<br />

information to the company without any really effective enhancement to the workflow. They will participate when<br />

there are direct benefits. People want knowledge in exchange for their information. Current tools successfully collect<br />

information but are very poor at yielding knowledge.<br />

Digital science services focus on providing immediate value to scientist in terms <strong>of</strong> helping them tackle difficult<br />

performance challenges while at the same time reducing the effort required to capture <strong>and</strong> disseminate the knowledge<br />

created. They bring into play network effects in the generation <strong>of</strong> new knowledge. They leverage the social aspect in<br />

worthwhile ways.<br />

Currently, many systems are available for digital science due to the large number <strong>of</strong> projects such as the AstroGrid,<br />

Avian Flu HSN1, Comb-e-Chem, DiscoveryNet, the European DataGrid (EDG), the gSLM, the GriPhyN, Indonesian<br />

Earthquake, WISDOM projects <strong>and</strong> the EGI, GEANT, Large Hadron Collider (LHC) at CERN, NERC DataGrid,<br />

myGrid, PRACE, <strong>and</strong> RealityGrid grids. Based on the experience gained different e-Business, e-Government, <strong>and</strong> e-<br />

Services have been developed. e-Science project can benefit from experience <strong>and</strong> analyses <strong>and</strong> can share the services<br />

that have been.<br />

We may use SWOT analysis techniques for a characterisation <strong>of</strong> the current state <strong>of</strong> the art:<br />

Strengths <strong>and</strong> goodies: Basic technologies are on h<strong>and</strong>. They are mainly based on well-known techniques <strong>of</strong> “programming<br />

in the small”. They use partially “programming in the large”.


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 506<br />

Weaknesses <strong>and</strong> missing IT: collaboration tools for crowdworking Techniques for “programming in the world” are<br />

chaotically introduced <strong>and</strong> must be matured <strong>and</strong> systematised.<br />

Opportunities <strong>of</strong> current technology: The world-wide collaboration on the fly allows to use human <strong>and</strong> technical<br />

resources wherever they are, whenever they are developed, whoever can provide the correct data at the best<br />

point <strong>of</strong> time, in the agreed format <strong>and</strong> quality for the right user with the at the right location <strong>and</strong> context.<br />

Threats <strong>of</strong> current technology <strong>and</strong> restrictions: The chaotic development uses a wide variety <strong>of</strong> techniques, does<br />

not yet have a basement <strong>and</strong> is thus difficult to evolve. Instead we need flexible frameworks <strong>and</strong> a thoughtful<br />

integration <strong>of</strong> technical knowledge that has been obtained in the past. Data (sometimes called information) are<br />

typically delivered without quality meta-information or facilities for information management. The search is<br />

still address-based <strong>and</strong> looks alike the Computer Stone Age. Programming in the world is a common practice,<br />

however mainly in a quick <strong>and</strong> dirty fashion.<br />

Web x.0 Evolution <strong>and</strong> the Knowledge Web.<br />

For almost two decades the internet was a linkage <strong>of</strong> networked servers, which was entirely used as a worldwide<br />

source for researches. It resulted in an aggregate <strong>of</strong> billions <strong>of</strong> static web sites, which was accessed via hyperlinks.<br />

Websites have mainly been author-driven. They have been aiming to support users depending on their information<br />

need <strong>and</strong> dem<strong>and</strong>, so the focus was chiefly on the mutual trust between user <strong>and</strong> provider. The utilisation <strong>of</strong> these sites<br />

can be modelled by story spaces. The story space specification results in storyboards that are schemes for utilisation<br />

by a large variety <strong>of</strong> users. Web 1.0 is author driven <strong>and</strong> uses as stories<br />

• at the provider side publish/provide story/support or<br />

advertise/wait/attract/react/retain <strong>and</strong><br />

• at the user side inform/subscribe/obtain/answer/come back.<br />

Web 1.0 has mainly be oriented towards content provision, which basically meant to deliver content together with a<br />

rudimentary functionality. These main functionalities can be:<br />

• navigation facilities for inside site or page navigation;<br />

• acquisition possibilities <strong>of</strong> information for users from simple content that is based on text, media data such as<br />

pictures, audio <strong>and</strong> video data;<br />

• linking facilities;<br />

• search <strong>and</strong> browse facilities providing to users.<br />

Websites are mainly oriented towards content delivery, provide some functionality <strong>and</strong> are using a large variety <strong>of</strong><br />

presentation facilities.<br />

Web 1.0 has made author-driven static content available to numerous users. Users could access exclusively the<br />

web pages for researches <strong>and</strong> personal investigations. The control <strong>and</strong> management from the ’top’ didn’t provide any<br />

scope or client-side opportunities for development. This has changed with the evolution <strong>of</strong> Web 2.0, the so-called<br />

social web, as a development process powered by collaborative brainstorming, in which the collective cooperation is<br />

to the fore. Meanwhile there are no bounds set to the today’s web. With the establishment <strong>of</strong> user communities, users<br />

obtain an abundance <strong>of</strong> information by high-tech sophisticated services, interchange experiences <strong>and</strong> benefits by the<br />

mass collaboration every single day, because data acquisition <strong>and</strong> data diffusion are basically accomplished by user<br />

interactions inside the whole web story space.<br />

While Web 2.0 integrates collaboration, Web 3.0 provides annotation techniques. These annotation techniques<br />

are typically based on linguistic semantics <strong>of</strong> words used for a reference <strong>of</strong> data chunks to user semantics. These<br />

techniques provide a very good background for sophisticated search <strong>and</strong> representation techniques. Fully-developed<br />

Web 3.0 is characterised by the formula (4C + P + VS) where<br />

• 4C means content, commerce, community <strong>and</strong> context


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 507<br />

• P is used for personalization <strong>and</strong><br />

• VS denotes vertical search.<br />

But what is missed in the future <strong>of</strong> web, is quality. We want to reach this level <strong>of</strong> quality with the aid <strong>of</strong> semantics <strong>and</strong><br />

pragmatics in respect <strong>of</strong> the user pr<strong>of</strong>ile <strong>and</strong> life cases. We are convinced that lexical semantics composes the base<br />

frame <strong>of</strong> the Next Generation Knowledge Web.<br />

Figures 6 illustrates the general facets <strong>of</strong> websites. We distinguish six different facets: presentation (layout <strong>and</strong><br />

playout) <strong>of</strong> pages within a website, (aggregated <strong>and</strong> prepared) data <strong>and</strong> functionality provided by the systems that<br />

support the website, stories <strong>and</strong> context behind the application logic <strong>of</strong> the website, <strong>and</strong> the user space that is based<br />

on a description <strong>of</strong> the intentions. Web 1.0 was mainly based on presentation systems with supporting systems for<br />

aggregated data (called content) <strong>and</strong> functionality. Web 2.0 allows context injection <strong>and</strong> is user-centered <strong>and</strong> storycentered.<br />

Web 3.0 extends the data content by annotation that are meaningful to users, i.e. provides content together<br />

with topical data. The knowledge web extends this dimension by explicit support for concepts beside annotations. It<br />

additionally allows an adaptation to the user <strong>and</strong> the context thus providing information the user really needs.<br />

Goal, application area<br />

User <strong>and</strong> intention pr<strong>of</strong>ile,<br />

information dem<strong>and</strong><br />

Context<br />

Technics<br />

organisation<br />

Data<br />

Content,<br />

objects,<br />

knowledge<br />

Website<br />

development<br />

space<br />

Storyboard<br />

Stories<br />

tasks<br />

Functionality<br />

Navigation,<br />

search,<br />

work<br />

Presentation<br />

Interfaces<br />

depending on the environment<br />

Abbildung 6: Separation <strong>of</strong> concern for development <strong>of</strong> Web x.0 websites<br />

5.1.3 Towards Knowledge Management based on Knowledge Chunks<br />

Knowledge can be characterised through (1) its content, (2) its concepts, (3) its annotations or topics, <strong>and</strong> (4) its<br />

underst<strong>and</strong>ing by the user. Knowledge pieces cannot be considered in an isolated form. For this reason we imagine to<br />

use knowledge chunks as a suite <strong>of</strong> knowledge pieces consisting <strong>of</strong> content, concepts, topics <strong>and</strong> information. These<br />

dimensions are interdependent from each other. Figure 7 displays the knowledge space.<br />

Topics<br />

ontology<br />

Annotation, linking<br />

culture, context<br />

Databases<br />

utilisation<br />

Content space<br />

Media types<br />

functionality, adaptation<br />

Topic space<br />

Knowledge<br />

space<br />

Concept space<br />

User pr<strong>of</strong>iles<br />

user portfolio<br />

<strong>Information</strong> space<br />

Memes<br />

cultural units<br />

Semantic theories<br />

ontology<br />

Pragmatics<br />

general culture<br />

Abbildung 7: The four dimensions <strong>of</strong> the knowledge space: Data dimension through content, foundation dimension<br />

through concepts, language dimension through topics, user dimension through information


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 508<br />

Content <strong>and</strong> Media Types: The Data Dimension.<br />

Content is complex <strong>and</strong> ready-to-use data. Content is typically provided with functions for its use. Content can<br />

be defined n the basis <strong>of</strong> media types. Content management systems are information systems that support extraction,<br />

storage <strong>and</strong> delivery <strong>of</strong> complex data.<br />

Content in its actual definition is any kind <strong>of</strong> information that is shared within a community or organization. In<br />

difference to data in classical database systems content usually refers to aggregated macro data which is complex<br />

structured. Structuring <strong>of</strong> content can be distinguished:<br />

• The structure <strong>of</strong> the aggregated micro data is preserved but micro data was combined to build larger chunks <strong>of</strong><br />

information. Examples are scientific data sets such as time series <strong>of</strong> certain measurements. There is a common<br />

(or even individual) structuring <strong>and</strong> meaning for each sampling vector but the compound <strong>of</strong> all sampling vectors<br />

adds additional semantics.<br />

• The structure <strong>of</strong> content is only partially known. A typical example is the content <strong>of</strong> Web pages: structuring is<br />

known up to a certain level <strong>of</strong> detail which may also be varying within one instance.<br />

• Content may be subsymbolic, such as pictures, videos, music or other multimedia content.<br />

Aggregation <strong>of</strong> content usually takes place by combining reusable fragments provided by different sources in<br />

different formats such as texts, pictures, video streams or structured data from databases. Content is subject to a<br />

content life cycle which implies a persistent change process to the content available in a content management system<br />

(CMS).<br />

The more generic ones agree in a major paradigm: the separation <strong>of</strong> data management <strong>and</strong> presentation management.<br />

Data management reflects the process <strong>of</strong> supporting content creation, content structuring, content versioning,<br />

<strong>and</strong> content distribution while presentation management grabs the data for delivering it to the user in various ways.<br />

Only content which is generated following this separation can be easily shared, distributed, <strong>and</strong> reused.<br />

Following new trends <strong>and</strong> developments in Web technologies, e.g., in the context <strong>of</strong> Web 2.0 or the Semantic Web<br />

the automated processing <strong>of</strong> content becomes more <strong>and</strong> more important. Because content represents valuable assets<br />

it may be reused in different contexts (content syndication) or has to remain accessible for a long time.<br />

The semistructured or even unstructured nature <strong>of</strong> content requires annotations to enable search facilities for<br />

content. Expressing semantics in a machine interpretable way has been under investigation since the early days <strong>of</strong><br />

artificial intelligence, see e.g., [36] for a survey <strong>of</strong> knowledge representation techniques such as logical theories, rulebased<br />

systems, frames or semantic nets. Today systems h<strong>and</strong>le semantical descriptions as metadata describing certain<br />

content instances. There are different ways for associating data <strong>and</strong> metadata:<br />

• A conceptual, logical, or physical schema is defined <strong>and</strong> instances are created according to this schema. This is<br />

the usual way for classical databases. The modelling language strongly restricts the capabilities <strong>of</strong> this description<br />

facility. Common languages such as Entity-Relationship Modelling or UML focus on structural properties<br />

with support <strong>of</strong> selected integrity constraints.<br />

• Defining a schema is not applicable (or only in a restricted way) to semistructured or unstructured content. For<br />

that reason content instances are annotated. An annotation is a triple (S, P, O) where S denotes the subject to be<br />

annotated, P a predicate denoting the role or purpose <strong>of</strong> this annotation, <strong>and</strong> O the object (or resource) which is<br />

associated with S. The vocabulary for annotations is organized in ontologies <strong>and</strong> thesauri. A typical language<br />

for expressing annotations in the context <strong>of</strong> the Semantic Web is the Resource Description Framework (RDF,<br />

[39]) while the Web Ontology Language OWL ([38]) may be used to express semantic relationships between<br />

the concepts <strong>and</strong> resources used for annotation. There exist myriads <strong>of</strong> ontologies <strong>and</strong> parameter definitions for<br />

different application domains such as the Dublin Core parameters [5]) for editorial content.<br />

Concepts <strong>and</strong> Theories: The Foundation Dimension.


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 509<br />

Concepts are the basis for knowledge representation. They specify our knowledge what things are there <strong>and</strong> what<br />

properties things have. Concepts are used in everyday life as a communication vehicle <strong>and</strong> as a reasoning chunk.<br />

Concepts can be based on definitions <strong>of</strong> different kinds. Therefore our goal for the development <strong>of</strong> knowledge web<br />

can only be achieved if the content definition covers any kind <strong>of</strong> content description <strong>and</strong> goes beyond the simple<br />

textual or narrative form.<br />

A general description <strong>of</strong> concepts is considered to be one <strong>of</strong> the most difficult tasks. We analysed the definition<br />

pattern used for concept introduction in mathematics, chemistry, computer science, <strong>and</strong> economics. This analysis<br />

resulted in a number <strong>of</strong> discoveries:<br />

• Any concept can be defined in a variety <strong>of</strong> ways. Sometimes some definitions are preferred over others, are<br />

time-dependent, have a level <strong>of</strong> rigidity, are usage-dependent, have levels <strong>of</strong> validity, <strong>and</strong> can only be used<br />

within certain restrictions.<br />

• The typical definition frame we observed is based on definition items. These items can also be classified by<br />

the kind <strong>of</strong> definition. The main part <strong>of</strong> the definition is a tree-structured structural expression <strong>of</strong> the following<br />

form<br />

SpecOrderedTree(StructuralTreeExpression<br />

(DefinitionItem, Modality(Sufficiency, Necessity),<br />

Fuzziness, Importance, Rigidity,<br />

Relevance, GraduationWithinExpression, Category))) .<br />

• Concepts typically also depend on the application context, i.e. the application area <strong>and</strong> the application schema.<br />

The association itself must be characterised by the kind <strong>of</strong> association.<br />

Concepts are typically hierarchically ordered <strong>and</strong> can thus be layered. We assume that this ordering is strictly hierarchical<br />

<strong>and</strong> the concept space can be depicted by a set <strong>of</strong> concept trees. A concept is also dependent on the community<br />

that prefers this concept. A concept is also typically given through an embedding into the knowledge space. The<br />

schema in Figure 8 displays the general structure for content definition. This schema also covers all aspects discussed<br />

in [19].<br />

Community<br />

✛<br />

AcceptanceLevel<br />

Community<br />

Context<br />

UsagePr<strong>of</strong>ile<br />

✲<br />

Concept<br />

✻<br />

(0,n)<br />

(0,1)<br />

Descriptor<br />

Spec<br />

Ordered<br />

Tree<br />

✲<br />

Structural<br />

Expression<br />

✛<br />

Preference<br />

Defined Time<br />

Through Usage<br />

Restriction<br />

Validity<br />

❄<br />

Definition<br />

Item<br />

✛<br />

Definition<br />

Kind<br />

✲<br />

Kind<br />

<strong>of</strong> Definition<br />

Term<br />

Language<br />

Abbildung 8: The main schema for Concept Definition <strong>and</strong> Formation<br />

Concept gathering can be understood as a technique which combines concept representation [7, 19, 37] <strong>and</strong><br />

algorithmic learning approaches.<br />

A concept gathering system is based on<br />

a set <strong>of</strong> concepts <strong>and</strong> available experience C,<br />

a set <strong>of</strong> domain knowledge D,<br />

a set <strong>of</strong> representable meta knowledge M,


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 510<br />

a set <strong>of</strong> learning goals G, <strong>and</strong><br />

a set <strong>of</strong> representable hypotheses H.<br />

The set <strong>of</strong> representable knowledge <strong>and</strong> concepts is denoted by R = C ∪ D ∪ M ∪ G ∪ H.<br />

The concept gathering system (γ, λ, ν, C, R) consists <strong>of</strong><br />

a concept generator γ : C × R → C,<br />

a learning function<br />

λ : C × R → H, <strong>and</strong><br />

an evaluator ν : C × R → Q where Q denotes set <strong>of</strong> quality characteristics.<br />

A run <strong>of</strong> the concept gathering system results in<br />

a concept detection sequence C 1 , C 2 , ..., C f with C i ∈ C <strong>and</strong><br />

a learning sequence R 0 , R 1 , R 2 , ..., R f<br />

with R i ∈ R where R 0 denotes the initial knowledge <strong>and</strong> R f denotes the final knowledge.<br />

The run is typically recorded <strong>and</strong> is dependent on the concepts gathered so far. For instance, in data mining processes<br />

we can switch from cluster detection to cluster explanation, decision tree modelling <strong>and</strong> finally to association rule<br />

derivation.<br />

Additionally, the concept gathering system records<br />

the background knowledge <strong>of</strong> the learner B ⊆ D ∪ M ∪ G <strong>and</strong><br />

the actual available knowledge B ∪ H ′ .<br />

Topics <strong>and</strong> Ontologies: The Language Dimension.<br />

Content <strong>and</strong> concepts may be enhanced by topics that specify the pragmatic underst<strong>and</strong>ing <strong>of</strong> users.<br />

Semantic annotation in current content management systems is usually restricted to preselected ontologies <strong>and</strong><br />

parameter sets. Rich conceptual data models are only available in more sophisticated systems. Because most generic<br />

CMS are focused on Web content management semantic annotation is usually restricted to editorial parameters.<br />

Specialized content management systems which are adapted to certain application domains incorporate preselected<br />

<strong>and</strong> tailored ontologies. Especially for XML-based content there exist several annotation platforms which incorporate<br />

semantical annotation either manually or semi-automatically; see [25] for a survey on available platforms.<br />

Automated processing <strong>of</strong> semantical metadata is usually restricted to search facilities, e.g., searching for the<br />

author <strong>of</strong> an article. Because ontologies are preselected for most systems a full-featured reasoning support is usually<br />

not available. Especially for OWL ontologies there are reasoning tools based on description logics such as Racer<br />

([10]) or FaCT which enable T-box (but also A-box) reasoning about semantic relationships between annotation<br />

concepts.<br />

Applying generic semantical annotation <strong>and</strong> classical reasoning facilities to content management suffers from<br />

several drawbacks:<br />

• Content as aggregated macro data is only partially analysable. The purpose <strong>of</strong> metadata is the description <strong>of</strong><br />

properties which cannot be concluded from the data itself. The very simple annotation frame <strong>of</strong> (S, P, O)<br />

triples does not allow one to express complex properties. For that reason this information has to be kept in<br />

the underlying ontology by defining appropriate concepts. The support <strong>of</strong> user-specific concepts increases the<br />

size <strong>of</strong> the ontology significantly <strong>and</strong> makes reasoning support even harder. Ad hoc definitions <strong>of</strong> user-specific<br />

concepts is not supported in this annotation model.<br />

• Annotation with respect to arbitrary ontologies implies general purpose reasoning support by the system. Reasoning<br />

for even simple languages suffers from its high computational complexity (e.g., NEXPTIME for the<br />

restricted OWL-DL dialect, [13].) Dealing with high worst-case complexities implies a small size <strong>of</strong> input data<br />

but this is a contradiction to expressible ontologies <strong>and</strong> the definition <strong>of</strong> content as complex structured macro<br />

data. Especially the size <strong>of</strong> content instances is a crucial factor because A-box reasoning is a critical point for<br />

automated content processing ([11].)


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 511<br />

But there are advantages, too:<br />

• Usually, it is possible to distinguish between different points <strong>of</strong> view on content instances. Not every property<br />

is important while looking from every point <strong>of</strong> view. The macro data may encapsulate <strong>and</strong> hide properties from<br />

its aggregated micro data. Reasoning about the properties <strong>of</strong> the compound can be separated from the properties<br />

<strong>of</strong> the elements as well as the properties <strong>of</strong> interconnections between content instances.<br />

• Typical application scenarios determine important properties <strong>and</strong> suggest evaluation strategies. So ontologies<br />

may be decomposed to enable a contextualized reasoning, e.g., on the basis <strong>of</strong> Local Model Semantics ([9]).<br />

Local reasoning may rely on a language that is just as expressive as needed in this context. Contexts relying<br />

on less expressive languages may support automated reasoning while contexts relying on more expressive<br />

languages may be used for manually interpreted information. Soundness <strong>and</strong> completeness <strong>of</strong> the reasoning<br />

process are not <strong>of</strong> primary interest as long as the reasoning result is acceptable in the application domain.<br />

• The separation between annotations relying on common knowledge, user-specific annotations <strong>and</strong> (especially)<br />

usage-specific annotations reduces the size <strong>of</strong> incorporated ontologies significantly.<br />

• If semantic annotations themselves are given a more sophisticated internal structure reasoning can be adapted<br />

to the requirements <strong>of</strong> the application domain.<br />

The major disadvantage <strong>of</strong> current semantic description in content management is the treatment <strong>of</strong> knowledge<br />

over content instances as metadata on a secondary level in a strongly restricted language. In the following sections we<br />

will introduce a data model for content which h<strong>and</strong>les the semantic part on the same level as the content itself <strong>and</strong> gives<br />

additional structure to the semantic description. Content chunks are semantically enriched content instances. They<br />

are based on the notion <strong>of</strong> a schema for content chunks to incorporate typical functionality <strong>of</strong> content management<br />

systems such as content generation, content delivery, or content exchange.<br />

<strong>Information</strong> <strong>and</strong> Memes: The User Dimension.<br />

There are several definitions for information.<br />

• The first category <strong>of</strong> these definitions is based on the mathematical notion <strong>of</strong> entropy. This notion is independent<br />

<strong>of</strong> the user <strong>and</strong> thus inappropriate in our project context.<br />

• The second category <strong>of</strong> information definitions bases information on the data a user has currently in his data<br />

space <strong>and</strong> on the computational <strong>and</strong> reasoning abilities <strong>of</strong> the user. <strong>Information</strong> is any data that cannot be<br />

derived by the user. This definition is h<strong>and</strong>y but has a very bad drawback. Reasoning <strong>and</strong> computation cannot<br />

be properly characterised. Therefore, the definition becomes fuzzy.<br />

• The third category is based on the general language underst<strong>and</strong>ing <strong>of</strong> information [SYea03].<br />

<strong>Information</strong> is either the communication or reception <strong>of</strong> knowledge or intelligence.<br />

<strong>Information</strong> can also defined as<br />

• knowledge obtained from investigation, study, or instruction, or<br />

• intelligence, news or<br />

• facts <strong>and</strong> data.<br />

<strong>Information</strong> can also be the act <strong>of</strong> informing against a person.<br />

Finally information is a formal accusation <strong>of</strong> a crime made by a prosecuting <strong>of</strong>ficer as distinguished from an<br />

indictment presented by a gr<strong>and</strong> jury.<br />

All these definitions are too broad.<br />

We are thus interested in the anthropomorphic definition that is more appropriate for the internet age.


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 512<br />

5.1.4 Data Management<br />

The general notion <strong>of</strong> data.<br />

St<strong>and</strong>ford Philosophy: In our context, information cannot be dataless but, in the simplest case, it can consist <strong>of</strong> a<br />

single datum. A datum is a putative fact regarding some difference or lack <strong>of</strong> uniformity within some context.<br />

Depending on philosophical inclinations, DDD can be applied at three levels:<br />

1. data as diaphora de re, that is, as lacks <strong>of</strong> uniformity in the real world out there. There is no specific name for such “data in the wild”. A<br />

possible suggestion is to refer to them as dedomena (“data” in Greek; note that our word “data” comes from the Latin translation <strong>of</strong> a work<br />

by Euclid entitled Dedomena). Dedomena are not to be confused with environmental data. They are pure data or proto-epistemic data, that<br />

is, data before they are epistemically interpreted. As “fractures in the fabric <strong>of</strong> being” they can only be posited as an external anchor <strong>of</strong> our<br />

information, for dedomena are never accessed or elaborated independently <strong>of</strong> a level <strong>of</strong> abstraction. They can be reconstructed as ontological<br />

requirements, like Kant’s noumena or Locke’s substance: they are not epistemically experienced but their presence is empirically inferred from<br />

(<strong>and</strong> required by) experience. Of course, no example can be provided, but dedomena are whatever lack <strong>of</strong> uniformity in the world is the source<br />

<strong>of</strong> (what looks to information systems like us as) as data, e.g., a red light against a dark background. Note that the point here is not to argue<br />

for the existence <strong>of</strong> such pure data in the wild, but to provide a distinction that will help to clarify why some philosophers have been able<br />

to accept the thesis that there can be no information without data representation while rejecting the thesis that information requires physical<br />

implementation;<br />

2. data as diaphora de signo, that is, lacks <strong>of</strong> uniformity between (the perception <strong>of</strong>) at least two physical states, such as a higher or lower<br />

charge in a battery, a variable electrical signal in a telephone conversation, or the dot <strong>and</strong> the line in the Morse alphabet; <strong>and</strong><br />

3. data as diaphora de dicto, that is, lacks <strong>of</strong> uniformity between two symbols, for example the letters A <strong>and</strong> B in the Latin alphabet.<br />

Depending on one’s position with respect to the thesis <strong>of</strong> ontological neutrality (section 1.6) <strong>and</strong> the nature <strong>of</strong> environmental information<br />

dedomena in<br />

(1) may be either identical with, or what makes possible signals in (2), <strong>and</strong> signals in (2) are what make possible the coding <strong>of</strong> symbols in (3).<br />

The dependence <strong>of</strong> information on the occurrence <strong>of</strong> syntactically well-formed data, <strong>and</strong> <strong>of</strong> data on the occurrence<br />

<strong>of</strong> differences variously implementable physically, explain why information can so easily be decoupled from its<br />

support. The actual format, medium <strong>and</strong> language in which semantic information is encoded is <strong>of</strong>ten irrelevant <strong>and</strong><br />

hence disregardable. In particular, the same semantic information may be analog or digital, printed on paper or<br />

viewed on a screen, in English or in some other language, expressed in words or pictures. Interpretations <strong>of</strong> this<br />

support-independence can vary quite radically. The definition <strong>of</strong> the notion <strong>of</strong> a datum leaves underdetermined [?]<br />

• the classification <strong>of</strong> the relata (taxonomic neutrality) that defines a datum as a relational entity;<br />

• the logical type to which the relata belong (typological neutrality), for instance, primary, secondary or operational<br />

data or metadata or derived data;<br />

• the kind <strong>of</strong> support required for the implementation <strong>of</strong> their inequality (ontological neutrality) since there can<br />

be no information without data representation ; <strong>and</strong><br />

• the dependence <strong>of</strong> their semantics on a producer (genetic neutrality) that request that data can have a semantics<br />

independently <strong>of</strong> any informee.<br />

The general tasks <strong>of</strong> data management.<br />

Data management is a group <strong>of</strong> activities relating to the planning, development, implementation <strong>and</strong> administration<br />

<strong>of</strong> systems for the acquisition, storage, security, retrieval, dissemination, archiving <strong>and</strong> disposal <strong>of</strong> data. Such<br />

systems are commonly digital, but the term equally applies to paper-based systems where the term records management<br />

is commonly used. The term embraces all forms <strong>of</strong> data, whether these data sets are simple paper forms,<br />

the contents <strong>of</strong> relational databases, multi-media data sets such as images, or scientific data such as environmental<br />

data records collected in isolated or collaborating research projects. The management <strong>of</strong> scientific data is in many<br />

ways no different to the management <strong>of</strong> other types <strong>of</strong> data. However, it is important to recognise that there may be<br />

science-branch-specific issues that need careful thought as part <strong>of</strong> data management activities; for example, ensuring<br />

that any spatial <strong>and</strong> temporal identifiers used are appropriate <strong>and</strong> resilient.<br />

Key data management activities include:<br />

• Data policy development,<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 513<br />

• Data ownership,<br />

• Metadata compilation,<br />

• Data lifecycle control,<br />

• Data quality, <strong>and</strong><br />

• Data access <strong>and</strong> dissemination.<br />

Aufgaben des Datenmanagers in Forschungsprojekten.<br />

Mit dem Datenmanagement soll als Hauptziel die Entwicklung einer funktionalen Arbeitsplattform für die<br />

Vorbereitung der Datenerhebung, für die Datenerhebung, für die Vorbereitung der Auswertung, für die Speicherung<br />

erhobener und in Auswertungen genutzter Daten und für die Bereitstellung von Daten an Arbeitgruppen<br />

und Dritte für ein Forschungsprojekt vorangetrieben werden.<br />

Datenaustausch zwischen den Arbeitsgruppen und Projekten.<br />

Die Kollaboration von Arbeitsgruppen wird <strong>of</strong>t nur bei gleichgestaltenen Datenbeständen unterstützt. Eine breitere<br />

Kollaboration erfordert auch die Entwicklung entsprechender Kollaborationswerkzeuge, so daß für die flexible<br />

und adäquate Bereitstellung von Daten an Partner einfache Unterstützung gegeben werden kann. Dies betrifft sowohl<br />

den Export von Daten als auch den Import von Daten sowie auch die Integration von Neudaten in bereits existierende<br />

Datenbestände.<br />

Exportschnittstellen auf der Grundlage generischer Schnittstellen können zu den wesentlichen Zentren und auch<br />

zu neu integrierten Zentren die Arbeit der Wissenschaftler wesentlich erleichtern. Diese Exportschnittstellen können<br />

als neue Schicht über der Datenverwaltung konzipiert werden. Mit einer Entwicklung eines XML-Austauschformates<br />

können auch Suiten von Exportschnittstellen und entsprechende Schemata bereit gestellt werden. Es kann dabei vorgesehen<br />

werden, daß der Austausch dokumentenbasiert, aber quellenunabhängig vorgenommen wird. Eine Erweiterung<br />

um entsprechende Annotationen kann damit auch automatisch erfolgen.<br />

Importschnittstellen erleichtern die Integration von Neudaten und Fremddaten in bereits bestehende Datenbestände.<br />

Mit Formulartechniken und einer Suite von Input-Formen kann der Datenaustausch wesentlich erleichtert werden.<br />

Zur Verbesserung des Datenaustauschens sollen schrittweise Formulare und Schnittstellen für den Import und<br />

den Export von Daten entwicklet werden. Diese Schnittstellen können zunehmend generisch angelegt werden, damit<br />

nicht mit jeder neuen Anforderung, Arbeitsaufgabe oder jedem neuen Format eine neue Schnittstelle entwickelt<br />

werden muß.<br />

In analoger Form kann eine Aufbereitung von Fremddaten unterstützt werden. Dazu gehören insbesondere Techniken<br />

zur automatischen Ergänzung von Fremddaten um die zugehörigen Metadaten, um die entsprechenden Grunddaten<br />

im Falle von aggregierten Daten und entsprechende georefernzielle und temporale Annotationen.<br />

Der Datenaustausch zwischen den Arbeitsgruppen und Projekten kann schrittweise um ein Qualitätsmanagement<br />

von Fremddaten und eigenen Daten ergänzt werden. Es würde damit eine Mitführung der Charakterisierung von<br />

Qualitätscharakteristiken mit den Daten unterstützt, so daß eine spätere Wieder- und Weiterverwendung bei Berücksichtigung<br />

der Datenqualität ermöglicht wird.<br />

Mit einem Wachsen des Datenbest<strong>and</strong>es wird die Konsistenz und die partielle Vollständigkeit zu einem immer<br />

größeren Problem. Deshalb sollen mit den Techniken des Datenaustausches auch parallel Techniken zur Pflege der<br />

Konsistenz und der Vollständigkeit von Daten entstehen und erprobt werden.<br />

Eine gemeinsame Benutzung von Daten setzt zum einem die Nachvollziehbarkeit einer Weiternutzung durch<br />

<strong>and</strong>ere Benutzer voraus. Erfolgt eine Weiter- oder Wiederverwendung von Daten <strong>and</strong>erer Benutzer, dann muß diese<br />

Benutzung auch sowohl bei den neuen Benutzern als auch bei den Originaldaten mitgeführt werden. Außerdem<br />

können die Originaldatenbest<strong>and</strong>es durch die besitzenden Benutzer auch modifiziert und verändert werden. Deshalb<br />

sollte eine Mitführung von Veränderungen des Originaldatenbest<strong>and</strong>es bei einer Weiter- oder Wiederbenutzung auch<br />

bei den verwendeten Daten anzeigbar sein. Deshalb ist vorgesehen, daß mit einem Export von Daten eine Kopplung<br />

von Datenbeständen je nach Verpflichtungen im Exportvertrag erfolgen kann.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 514<br />

Der Export an Datenzentren ist für alle Daten, die einer Auswertung zugeführt werden und bei Veröffentlichungen<br />

herangezogen werden eine wesentliche Aufgabe. Es ist mit den Exportkonvertierungen schrittweise ein generisches<br />

Exportkonzept erarbeitbar, mit dem weitere Exporte automatisiert werden können. Ziel ist die Entwicklung einer<br />

Exportschnittstellen-Suite.<br />

Die Erarbeitung dieser Suite von Exportschnittstellen kann auch zur Ausarbeitung einer Suite von Importschnittstellen<br />

herangezogen werden. Insbesondere bei der automatischen Ergänzung importierter Daten um Annotationen<br />

kann damit eine Verbesserung und Anreicherung der Daten, die im Exzellenzcluster für Analysen von Relevanz sind,<br />

erfolgen.<br />

Effiziente und effektive Zugangskontrolle und Zugangssteuerung.<br />

Daten stellen eine wertvolle Ressource dar, die vor unberechtigtem Zugriff und unberechtigter Weitergabe zu<br />

schützen ist. Ein Eigentümer von Daten muß jederzeit in der Lage sein, die Besitzer seiner Daten zu ermitteln, einen<br />

Besitz ggf. auszuschließen oder zu verhindern und weitere Besitzverhältnisse zu genehmigen. Moderne DBMS erlauben<br />

eine umfangreiche Sicherung von Daten gegen Fremdbenutzung und eine Absicherung gegen unberechtigte Benutzer.<br />

Diese Sicherungsmechanismen können für Projekte erschlossen werden. Mit einem Datenmanagement kann<br />

deshalb eine effiziente und effektive Zugangskontrolle für alle Datenbestände erfolgen und eine nicht genehmigte<br />

Fremdbenutzung der Daten ausgeschlossen werden.<br />

Es können unterschiedliche Rollen und Graduierungen der Sicherung von Daten installiert werden. Es können<br />

Daten damit entweder nur für den Eigentümer oder die Mitglieder einer Arbeits- oder Projektgruppe oder die Kooperationspartner<br />

oder <strong>and</strong>ere nationale oder internationale Partner freigegeben werden. Dazu werden für die Benutzung<br />

von Daten entsprechende Rollenkonzepte entwickelt, mit denen eine Benutzung explizit erlaubt oder auch blockiert<br />

werden kann. Benutzer, die über keine der Rollen verfügen, werden von der Benutzung der Daten ebenso ausgeschlossen<br />

wie auch von einer <strong>Information</strong> über die Existenz der Daten, über die verwendeten Datenformate oder den<br />

Datenumfang.<br />

Es kann neben der Absicherung der Daten gegen nicht erlaubte Fremdbenutzung auch eine automatische ‘Credit’-<br />

Erzeugung bei Weiterbenutzung, Ablage und Entgegennahme von Originaldaten im Besitzvertrag erreicht werden.<br />

Solche Besitzverträge können durch entsprechende Freigabemechanismen für weiterbenutzte Daten auch zur Erzeugung<br />

von entsprechenden Annotationen bei den weiter verwendeten Daten und zum Mitschreiben der Weiterverwendung<br />

bei den Originaldaten herangezogen werden.<br />

Eigentümern und zugelassenen Benutzern soll dagegen ein leichter Zugang zu den Daten ermöglicht werden.<br />

Dieser Zugang wird mit den Exportschnittstellen-Suiten unterstützt. Der Zugang kann über entsprechende Internet-<br />

Browser realisiert werden, so daß autorisierte Benutzer auch relativ geräte- und umgebungsunabhängig die Daten<br />

benutzen können.<br />

Da Daten auch in das Datenmangement eingebracht werden sollen, wird eine Importschnittstellen-Suite vorgesehen.<br />

Mit diesen Importschnittstellen können entsprechende Mechanismen zur Einlagerung von Daten vorgesehen<br />

werden. Die Daten werden mit der Einlagerung automatisch mit einer Annotation und mit einem Eigentümerschutz<br />

versehen. Der Eigentümer kann die Daten jederzeit verwalten, verändern, gegen unberechtigte Benutzung sperren,<br />

freigeben und auch löschen.<br />

Die Import- und Exportschnittstellen unterstützen einen einfachen komfortablen Zugriff auf die Daten für alle<br />

autorisierten Benutzer. Benutzer sollen dabei auch einen Export in entsprechende Arbeitsumgebungen z.B. auf<br />

Windows-Grundlage vornehmen können ohne dabei komplexe Anfragen über die übliche DBMS-Schnittstellen wie<br />

z.B. SQL-Anfragen formulieren zu müssen.<br />

Die Zugangskontrolle soll aufgrund der Stufung der unterschiedlichen Rollenkonzepte auch schrittweise mehrstufige<br />

Zugangsmöglichkeiten anbieten, mit denen je nach Berechtigung ein Zugang erfolgen kann.<br />

Für die Zugangskontrolle und Zugangsabsicherung kann schrittweise eine Anwendungsumgebung mit der Entwicklung<br />

der Werkzeuge entstehen. Diese Anwendungsumgebung wird in der ersten Ausbauphase die Effizienz der<br />

Arbeit des Datenmanagers verbessern. Sie wird in der zweiten Phase ausgebaut zu einem Werkzeug der Eigentümer<br />

von Daten.<br />

Die Zugangskontrolle und -steuerung soll einen einfachen und komfortablen Zugriff auf entweder Daten und<br />

Metadaten oder Daten allein oder Metadaten allein ermöglichen. Es kann schrittweise zur Zugangssteuerung ein<br />

Zugangspr<strong>of</strong>il für Benutzer und ein Zugangsportfolio für die Benutzung entwickelt werden. Das Zugangspr<strong>of</strong>il be-<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 515<br />

schreibt die Rechte, Pflichten und Verbote für die Benutzer. Das Zugangspr<strong>of</strong>il beschreibt die Benutzung der Daten.<br />

Da mit einer schrittweisen Benutzung der Daten auch eine Erschließung vorenthaltener Daten möglich ist, muß das<br />

Zugangsportfolio auch das Tracking der wiederholten Benutzung von Daten erlauben.<br />

Werden Daten weiterverwendet,dann muß auch mit den Originaldaten die Weiterbenutzung mitgeführt und dem<br />

Eigentümer der Originaldaten die Weiterverwendung bekannt gegeben werden. Deshalb sollte im Exzellenzcluster<br />

auch eine entsprechende Tracking S<strong>of</strong>tware schrittweise entwickelt werden, mit der das Tracking für das Nachvollziehen<br />

der Benutzung von Daten durch Dritte erfolgt. Es können dazu moderne Ansätze der Dortmunder Sicherheitsarbeitsgruppe<br />

angew<strong>and</strong>t werden.<br />

Mit der Installation einer effizienten Zugangskontrolle kann auch ein data discovery service mitinstalliert werden,<br />

mit der Benutzer für freigegebene Daten die Mitbenutzung initiieren und vertraglich absichern können. Ein Benutzer,<br />

der Daten benötigt, kann durch entsprechende Suchanfragen nach benötigten Daten fragen, die Benutzungsbedingungen<br />

einsehen und die Mitbenutzung je nach Freigabestatus erwirken. Mit einer Mitbenutzung wird ein ‘privacy<br />

contract’ abgeschlossen, der die automatische Kopplung der exportierten Daten mit den Originaldaten auslöst.<br />

Intelligente Integration neuer und älterer Daten in existierende Datenbestände.<br />

Ältere Daten eines Projektes sind <strong>of</strong>t noch in Dateiform erstellt und abgespeichert worden. Diese Dateien sind<br />

mit Erfassungs- und Aufzeichnungswerkzeugen entst<strong>and</strong>en, die z.T. eigene proprietäre Datenformate verwenden bzw.<br />

auch durch neuere Werkzeuge ersetzt worden. Deshalb geht mit einer Datenverwaltung auch eine Umformatierung<br />

der Daten einher. Die Umformatierung kann durch entsprechende Import-Werkzeuge der existierenden Datenbank-<br />

Management-Systeme z.T. unterstützt werden. Mit der Umformatierung kann auch die Ergänzung der Daten um<br />

entsprechende vorh<strong>and</strong>ene oder erzeugbare Metadaten erfolgen.<br />

Diese älteren Dateien erfordern auch bei einer Weiter- und Wiederverwendung vorh<strong>and</strong>ener Daten eine neue<br />

Anpassung der Dateien an die Anforderungen der Weiter- und Wiederverwendung. Da die Werkzeuge ebenfalls durch<br />

neuere Werkzeuge ersetzt werden, ist diese Umsetzung auch für die bereits vorh<strong>and</strong>enen Daten erforderlich.<br />

Das Problem der Migration von älteren Datenbeständen auf neuere Verwaltungsmechanismen entsteht auch in<br />

analoger Form bei der Integration von Fremddaten. Es exisiteren z.T. bereits Werkzeuge zum Import von Fremddaten.<br />

Die Vielfalt der Fremddatenquellen erfordert allerdings eine gute Unterstützung dieser Importe. Es gibt zu<br />

bestimmten Datenbeständen bis zu 2.000 verschiedene Formate und Pr<strong>of</strong>ile. Deshalb ist eine Automatisierung beim<br />

Import erforderlich.<br />

Die Integration von Fremddaten in eigene Datenbestände ist ebenfalls mit einer Reformatierung verbunden.<br />

Gleichzeitig sollten Fremddaten um entsprechende Metadaten angereichert werden. Zu diesen Metadaten gehören<br />

nicht nur geo-referenzierte oder temporale Daten, sondern auch Daten über die Qualität der Fremddaten, über die<br />

Bedingungen der Benutzung, über Eigentumsverhältnisse und die bereits erfolgte Verwendung dieser Daten. Da die<br />

gleichen Fremddaten nicht nur von einer Quelle bezogen werden, ist eine entsprechende Zurückverfolgung auf die<br />

Ursprungsdaten angeraten, damit eine wiederholte Verwendung der gleichen Daten sichtbar werden sollte.<br />

Deshalb ist es sinnvoll, die beiden Probleme als zu einem Komplex zusammenzuführen. Mit der Entwicklung<br />

eines Datenmangement kann deshalb auch eine Technologie zur intelligenten Integration von Datenbeständen in<br />

vorh<strong>and</strong>ene Datenbestände und zur Migration von Altdaten gleichzeitig entwickelt werden.<br />

Im Verlaufe der Entwicklung der Konzepte des Datenmanagement können moderne Konzepte des Datenmanagement<br />

und des S<strong>of</strong>tware-Engineering erschlossen werden. Es ist vorgesehen einen generischen Import auf der<br />

Grundlage von Zugängen der Programmierung im Großen zu konzipieren, zu erproben und in adäquater Form bereitzustellen.<br />

Parallel zur Entwicklung einer intelligenten Integration neuer und älterer Daten in existierende Datenbestände<br />

kann eine Aufarbeitungss<strong>of</strong>tware für intelligente Annotation der Neudaten konzipiert und erprobt werden. Die Annotation<br />

ist gewöhnlich eine arbeitsintensive Aufgabe, der sich Benutzer nur ungern stellen. Wird dagegen nur der Teil<br />

der Annotation abgefordert, der nicht generiert werden kann, dann wird diese Aufgabe aufgrund des entstehenden<br />

Mehrwertes sehr schnell akzeptiert.<br />

Anforderungen an das Datenmanagement.<br />

Das Datenmanagement sollte zu einem Projektdatenmanagement ausgebaut werden. Es begleitet das interne<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 516<br />

Daten-H<strong>and</strong>ling, die Auslieferung und den Export an Datenzentren. Durch die Vielzahl der Formate ist mit dem<br />

Datenmanagement die Entwicklung eines Export-Generators verbunden, der sowohl den täglichen Export, als auch<br />

die endgültige Datenablage sowie auch die adäquate Dokumentation durch entsprechende Metadaten erlaubt.<br />

Das Projektdatenmanagement kann für die dritte Entwicklungsetappe vorgesehen werden. Es sollte auf entsprechenden<br />

Rahmenwerken basieren, die eine Kollaboration unterstützen. Solche Rahmenwerke existieren partiell bereits,<br />

wie z.B. das MesoCosm Experiment.<br />

Ein zentrales Management des Exports ist dabei weniger anzustreben. Stattdessen sollte eine Beratungsmöglichkeit<br />

existieren. Die Entwicklung eines Compilationswerkzeuges für den Export von eigenen Daten bei gleichzeitigem<br />

Ausweis der mitverwendeten Daten Dritter erlaubt den Arbeitsgruppen einen automatischen Export von Daten je nach<br />

Kollaborationsabkommen mit den Datenzentren und den Partnern.<br />

Die gleichen Mechanismen werden auch für den Import benötigt. Dazu sind die entsprechenden Formate der<br />

einzelnen Datenzentren aufzunehmen, zu verallgemeinern, mit den Formaten der Daten im Exzellenzcluster zu harmonisieren<br />

und durch entsprechende Integrations- und Abbildungsalgorithmen zu unterstützen.<br />

Nach Ausbau des Projektdatenmanagement kann auch ein Projekt zum Qualitätsmanagement für die eigenen<br />

Daten der einzelnen Arbeitsgruppen des Exzellenzclusters angestoßen werden. Dieses Qualitätsmanagement sollte<br />

auch erlauben, die Daten je nach Granularität und Abstraktion mitein<strong>and</strong>er zu verbinden, so daß auch bei aggregierten<br />

Daten eine Qualitätsaussage auf der Grundlage der Qualität der Grunddaten abgeleitet werden kann.<br />

Die Erfassung der Daten muß möglichst mit einer automatischen Erfassung der Metadaten gekoppelt werden.<br />

Die erhobenen Daten müssen sicher archiviert werden. Diese beiden Aufgaben sollen zudem mit möglichst geringem<br />

Aufw<strong>and</strong> bewältigt werden.<br />

Durch ein zentrales Datenmanagement sollen mit möglichst geringem Aufw<strong>and</strong> die Aufwendungen für das Datenmanagement<br />

in den einzelnen Arbeitsgruppen und durch die einzelnen Wissenschaftler minimiert werden. Es<br />

sollen die Arbeitsgruppen eine Unterstützung bei der (Meta-)Datenerfassung durch automatische Erfassung der operativen<br />

Daten und durch Integration vorh<strong>and</strong>ener Systeme erhalten. Weiterhin sollen schon vorh<strong>and</strong>ene Teillösungen<br />

integriert und damit auch für <strong>and</strong>ere Arbeitsgruppen erschlossen werden.<br />

Mit einem zentralen Datenmanagement kann auch eine Menge von Schnittstellen für den Export an und den<br />

Import von vorh<strong>and</strong>ene/n Daten-Server bzw. Datenzentren erleichtert werden.<br />

Angestrebt wird eine praktikablere Lösung als die derzeitige. Es wird eine schnelle Realisierung erwartet. Außerdem<br />

kann damit eine dauerhafte Pflege mit realisiert werden. Den Arbeitsgruppen kann ein kontinuierlicher Support<br />

gegeben werden.<br />

Zu einem späteren Zeitpunkt kann auch die Datenassimilation, mit den dynamischen Verläufen verbunden werden<br />

können, in Angriff genommen werden. Es wird damit möglich, Daten mit dynamischen Abläufen zu integrieren und je<br />

nach Interessantheit zu präsentieren. Damit kann dann auch mit einer extrapolatorischen Simulation eine Abschätzung<br />

der Entwicklung von Variablen vorgenommen werden.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 517<br />

5.2 Necessity <strong>of</strong> Data, <strong>Information</strong> <strong>and</strong> Knowledge Management<br />

5.2.1 Problems <strong>of</strong> Data Management<br />

Typical Pitfalls <strong>of</strong> Data Management <strong>and</strong> Their Solution.<br />

Data are the main source for information <strong>and</strong> knowledge in research projects. They are used for deduction <strong>and</strong><br />

exploration <strong>of</strong> hypotheses, for validation <strong>of</strong> hypotheses, for support <strong>of</strong> theories, <strong>and</strong> for illustration <strong>of</strong> behaviour or<br />

prediction <strong>of</strong> future behaviour. Their quality properties have been neglected for a long time. At the same time, modern<br />

data management allows to h<strong>and</strong>le these problems. We compare the critical findings in the sequel with resolution<br />

techniques that can be applied to overcome the crucial pitfalls <strong>of</strong> data management in environmental sciences.<br />

Problems observed<br />

Neglection <strong>of</strong> evolution: Data(base) models <strong>and</strong><br />

databases can be versioned, shared, <strong>and</strong> reused.<br />

Each phase can lead to refining previous decisions,<br />

underst<strong>and</strong>ings, <strong>and</strong> changes due to external<br />

influences.<br />

Invisible or missing models: Data that deliver project<br />

value must be accessible, underst<strong>and</strong>able, <strong>and</strong><br />

sharable. Models need to be available in an easily<br />

searchable manner.<br />

Missing exchange <strong>of</strong> underst<strong>and</strong>ing: Data <strong>and</strong> data<br />

models developed within one team are not communicated<br />

to other teams. These teams have an<br />

unclear <strong>and</strong> inconsistent view on the data. They<br />

use however these data within their underst<strong>and</strong>ing.<br />

Thinking that models are only about data structuring:<br />

Data(base) models are restricted to the<br />

conceptual or logical schemata. The additional<br />

DBMS information is not well kept.<br />

Throwing data structures ‘over the wall’: Data<br />

structures are seen as early decisions without continuous<br />

change <strong>and</strong> deployment management. Data<br />

used at a later stage are kept prone to errors.<br />

Forgetting about the sizzle: Data should be clear<br />

<strong>and</strong> underst<strong>and</strong>able in a collaboration. Often, they<br />

are not accompanied with information that allow<br />

to follow the intent <strong>and</strong> meaning <strong>of</strong> the data.<br />

Thinking <strong>of</strong> data sets as “your” set: Data sets are<br />

treated as if the researcher personally owns them.<br />

They are not presented as belonging to the cluster<br />

business <strong>and</strong> tended to by the researcher.<br />

Integration without insight into the meta-data: Data<br />

are commonly used in different projects, partially<br />

changed in some <strong>of</strong> them for purging or adaptation,<br />

differently associated to metadata <strong>and</strong><br />

restructured or partially selected or aggregated.<br />

Their integration leads to data sets with high redundancy<br />

<strong>and</strong> data conflicts.<br />

Problems <strong>of</strong> Data Management Observed in Research Projects.<br />

Their h<strong>and</strong>ling <strong>and</strong> resolution<br />

Database tools are designed to facilitate refinement <strong>and</strong> traceability.<br />

They support roundtrip modelling, comparison <strong>and</strong> merging,<br />

versioning, universal naming, <strong>and</strong> denormalisation mapping.<br />

Database modelling can help a project team ensure that appropriate<br />

data are available. Typical solutions on the basis <strong>of</strong> models<br />

are data reporting, repository management, <strong>and</strong> common dictionary.<br />

Interactive ‘intranets’ based on common repository management<br />

support structured collaboration based on guidance <strong>and</strong> documentation,<br />

explicit communication <strong>of</strong> goals, benefits <strong>and</strong> deficiencies,<br />

<strong>and</strong> maintenance <strong>of</strong> metadata.<br />

Data management includes metadata import <strong>and</strong> export, traces<br />

<strong>of</strong> data evolution, tools for usage tracking, export <strong>and</strong> import<br />

integration, macros for development <strong>of</strong> reports <strong>and</strong> scripts, <strong>and</strong><br />

attachment generation.<br />

Data management generates <strong>and</strong> modifies data massives <strong>and</strong> ensures<br />

that there is a consistent link between the data <strong>and</strong> their<br />

history. It also includes changes within the structure <strong>and</strong> ensures<br />

that changes stay true to the original intent <strong>of</strong> the first structuring<br />

decisions.<br />

Data management can assist the data provider for presenting the<br />

data in the right form, the right format, the right size <strong>and</strong> structuring,<br />

at the right moment <strong>and</strong> under consideration <strong>of</strong> the user’s<br />

information dem<strong>and</strong>. The macro features extend <strong>and</strong> customise<br />

data delivery to meet the dem<strong>and</strong>.<br />

Data set should be seen as corporate assets to be managed by a<br />

partnership within collaborating groups. Support can be generically<br />

provided for open sharing, for access to those who want<br />

it, <strong>of</strong>fering metadata on how to underst<strong>and</strong> the data <strong>and</strong> making<br />

every effort to deploy them clear <strong>and</strong> underst<strong>and</strong>able.<br />

Entity resolution, record matching <strong>and</strong> data cleansing techniques<br />

support integration <strong>of</strong> data based on common sources. History<br />

tracking for data sets allows to trace back the data to their origin.<br />

Data sets can be extended by pr<strong>of</strong>iles. Computed data can be<br />

marked as such. Aggregation <strong>of</strong> data must be recorded as well as<br />

other data generating computations.<br />

We have analysed data management problems in research clusters. This analysis led to a list <strong>of</strong> problems. This list<br />

is not comprehensive. In Section 5.2.3 we analyse these problems systematically <strong>and</strong> show pathes for their solution.


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 518<br />

Data not recorded properly. This occurs in research programs when the data are not recorded in accordance with<br />

the accepted st<strong>and</strong>ards <strong>of</strong> the particular academic field. This is a very serious matter. Should another researcher<br />

wish to replicate the research, improper recording <strong>of</strong> the original research would make any attempt to<br />

replicate the work questionable at best. Also, should an allegation <strong>of</strong> misconduct arise concerning the research,<br />

having the data improperly recorded will greatly increase the likelihood that a finding <strong>of</strong> misconduct will be<br />

substantiated.<br />

Data management not supervised by PI. In this situation the principal investigator might inappropriately delegate<br />

his/her oversight responsibilities to someone in his/her lab that is insufficiently trained. Another situation might<br />

arise if the principal investigator simply does not dedicate the appropriate time <strong>and</strong> effort to fulfill responsibilities<br />

related to proper data management.<br />

Data not maintained at the institution. This situation could occur in a collaboration in which all data is maintained<br />

by one collaborator. It would be particularly problematical if each collaborator is working under a sponsored<br />

project in which their institutions are responsible for data management. In other cases, researchers might maintain<br />

data in their homes, <strong>and</strong> this can also present problems <strong>of</strong> access.<br />

Data not stored properly. This could occur with research, financial, <strong>and</strong> administrative data. Careless storage <strong>of</strong> the<br />

data that could permit its being destroyed or made unusable is a significant matter. In such case, the institution<br />

<strong>and</strong>/or researcher have acted negligently, have not fulfilled their stewardship duties, <strong>and</strong> have violated sponsor<br />

policies as well as the terms <strong>of</strong> the sponsored agreement.<br />

Data not held in accordance with retention requirements. As noted previously, it is absolutely essential that those<br />

involved with sponsored projects know how long different kinds <strong>of</strong> data must be retained to satisfy all compliance<br />

requirements as well as to <strong>of</strong>fer appropriate support in the event <strong>of</strong> lawsuits or disputes over intellectual<br />

property.<br />

Lack <strong>of</strong> data validation. Projects that are centered on data can be challenging to test. For a research project to be<br />

truly successful, a solid data validation plan is required both during the utilisation <strong>of</strong> data <strong>and</strong> also as part<br />

<strong>of</strong> an ongoing data analysis process. If data management only validates the inputs <strong>and</strong> outputs <strong>of</strong> the data<br />

gathering, it will become susceptible to downstream issues. Therefore, it’s imperative that thorough end-to-end<br />

data validation testing is anticipated <strong>and</strong> completed.<br />

Data not retained by the institution. This is a major problem that would occur if a researcher leaves the institution<br />

<strong>and</strong> takes the original research data <strong>and</strong> does not leave a copy at the institution. In the event access is needed, it<br />

places the institution in an untenable position since it has not fulfilled its fiduciary responsibility to the sponsor.<br />

Lack <strong>of</strong> appropriate master data management. MDM represents the crucial reference data that defines the dimensions<br />

<strong>of</strong> a research project <strong>and</strong> how its associates should report information. It’s common for a single project<br />

to embark on an MDM implementation focusing solely on how they define their data elements <strong>and</strong> entities.<br />

Trouble arises when this activity detracts from a research cluster st<strong>and</strong>ard or produces information inconsistent<br />

with the viewpoint <strong>of</strong> research cluster leadership. For an MDM implementation to be successful, PIs must see<br />

the value <strong>of</strong> the initiative <strong>and</strong> act in an enforcement role to ensure accountability amongst various projects. This<br />

is especially true when process re-engineering <strong>and</strong> data governance initiatives come into play.<br />

Not focusing on data exploration <strong>and</strong> analysis processes. It’s common to think that technology automation can act<br />

as an acceptable alternative to a defunct operational process. This couldn’t be farther from the truth <strong>and</strong> may<br />

in fact be the main contributor to failed MDM implementations. In order to create a single view <strong>of</strong> a reporting<br />

entity, for example, ocean surface temperature, a project must include ample time for process optimization <strong>and</strong><br />

re-engineering. At each stage <strong>of</strong> the data chain, from point <strong>of</strong> origin <strong>and</strong> data entry through data consolidation<br />

<strong>and</strong> reporting, clear business processes are necessary to support the flow <strong>of</strong> data <strong>and</strong>, ultimately, the integrity <strong>of</strong><br />

that data. This is where executive buy-in plays an important role, since it is common for business units to resist<br />

change <strong>and</strong> potentially surrender control. PIs must be prepared for difficult discussions around st<strong>and</strong>ardized<br />

processes <strong>and</strong> the role <strong>of</strong> data stewardship.


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 519<br />

Lack <strong>of</strong> data governance. At the core <strong>of</strong> data management are the business rules, decision rights <strong>and</strong> PIs that ensure<br />

a data management solution is not just a project with a specific end date, but an ongoing program <strong>and</strong> core<br />

competency for the organization. As part <strong>of</strong> the data governance component <strong>of</strong> an data management, many<br />

areas need to be addressed, including data terminology <strong>and</strong> taxonomies, data stewardship, decision rights,<br />

accountability, corporate policies <strong>and</strong> st<strong>and</strong>ards. Components for predeployment <strong>and</strong> postdeployment stages<br />

are must also be addressed.<br />

Starting big, ending small in data management projects. Many implementers think a data management initiative<br />

must start with a clean slate, break down all <strong>of</strong> the silos <strong>and</strong> rebuild Rome. Trying to redefine how data are<br />

managed in cluster units is going to be a multiyear initiative with a project scope that becomes a moving target.<br />

Any “big bang” program is dangerous on many levels, but mainly because we live in a world <strong>of</strong> uncertainty.<br />

Unplanned data gathering. Data gathering is usually done at one <strong>of</strong> the following extremes: Either too much irrelevant<br />

data or too little relevant data. In the data-gathering phase, project teams usually gather so much data that<br />

no one uses it or so little data that everyone involved in the planning process does not feel comfortable making<br />

a decision based on limited information, so they use their experience <strong>and</strong> opinion. We find too <strong>of</strong>ten that data<br />

is too old. The data is out <strong>of</strong> date before it is used.<br />

Typical Pitfalls Restricting Data Exchange in Collaborations.<br />

siehe workshop<br />

Problems observed<br />

Neglection<br />

Their h<strong>and</strong>ling <strong>and</strong> resolution<br />

1001 input formats<br />

1001 export formats<br />

Typical Mistakes <strong>of</strong> Data Management Caused by Immature Workflows.<br />

Data management processes need a proper support <strong>and</strong> thus are also reflected within the schemata that are used<br />

for storing data. The Co-<strong>Design</strong> approach supports an integrated view on structuring, functionality, distribution, <strong>and</strong><br />

interactivity<br />

Mistake #1: Failing to ensure multiple business objects can be managed within a single co-design management<br />

platform. When you select <strong>and</strong> deploy an co-design management platform make sure it is capable <strong>of</strong> managing<br />

multiple business objects such as measurements, records, <strong>and</strong> aggregations all within the same s<strong>of</strong>tware<br />

platform. By doing so, system maintenance is simplified <strong>and</strong> more cost effective which results in lower total<br />

cost <strong>of</strong> ownership. A less favorable alternative is to deploy <strong>and</strong> manage separate master data solutions that each<br />

manages a different business data entity. However, this approach would result in additional system maintenance<br />

<strong>and</strong> integration efforts <strong>and</strong> a higher total cost <strong>of</strong> ownership. Another advantage <strong>of</strong> an co-design management<br />

platform which can h<strong>and</strong>le multiple data types is that implementation can begin with a single business object<br />

like measurement, <strong>and</strong> can later be extended to accommodate other business object types — resulting in rapid<br />

return on investment.<br />

Mistake #2: Ignoring data governance needs at the project- or enterprise-level. Data governance is unique to each<br />

<strong>and</strong> every collaborating community since it is based on the research cluster’s business processes, culture, <strong>and</strong><br />

IT environment. However, research clusters typically select a simple data management platform without much<br />

thought to their enterprise data governance needs. It is critical that the underlying management platform is<br />

able to support the data governance policies <strong>and</strong> processes defined by the cluster. In contrast, data governance<br />

design could be compromised <strong>and</strong> forced to adapt to the limitations <strong>of</strong> some co-design management s<strong>of</strong>tware


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 520<br />

platforms with fixed or rigid data models <strong>and</strong> functionality. Controls <strong>and</strong> auditing capabilities are also important<br />

data governance components. In order to properly support this functionality, requirement prescription should<br />

be based on a co-design management platform to integrate with your security <strong>and</strong> reporting tools to provide<br />

fine-grained access to data <strong>and</strong> reliable data quality metrics.<br />

Mistake #3: Failing to ensure the co-design management platform can work with your st<strong>and</strong>ard workflow tool.<br />

Workflow is an important component <strong>of</strong> both co-design management <strong>and</strong> data governance, as it can be used<br />

to approve the creation <strong>of</strong> a master object definition <strong>and</strong> to determine, in real-time, which conflicting objects<br />

survive. Workflow can also be used to automatically alert the data steward <strong>of</strong> any data quality issues. So in<br />

preparing a proper master data management, it is important to raise the question <strong>of</strong> how the co-design management<br />

platform will integrate with the st<strong>and</strong>ard workflow tool that you have selected. Some data management<br />

vendors bundle their own workflow tool <strong>and</strong> may not <strong>of</strong>fer integration with your st<strong>and</strong>ard workflow tool. None<br />

<strong>of</strong> them is however supporting a co-design integration.<br />

Mistake #4: Failing to ensure the solution supports complex relationships <strong>and</strong> hierarchies. With a single master<br />

object hub, such as measurement, hierarchies <strong>and</strong> relationships are relatively straightforward. For example,<br />

organizational relationships are depicted as legal hierarchies <strong>of</strong> parent <strong>and</strong> child organizations, while measurement<br />

relationships are those belonging to a common household. On the other h<strong>and</strong>, hierarchies among multiple<br />

objects can be highly complex. Make sure your data management is based on a solution that includes modelling<br />

complex business-to-business (B2B) <strong>and</strong> business-to-consumer (B2C) hierarchies, along with the definitions<br />

<strong>of</strong> those master data entities within the same data management platform.<br />

Mistake #5: Relying on fixed Service Oriented Architecture (SOA) services. Reliable data is a prerequisite to supporting<br />

SOA applications—applications that automate business processes by coordinating enterprise SOA services.<br />

Since co-design management is the foundation technology that provides reliable data, any changes made<br />

to the co-design management environment will ultimately result in changes to the dependent SOA services,<br />

<strong>and</strong> consequently to the SOA applications. IT pr<strong>of</strong>essionals need to ensure the co-design management platform<br />

can automatically generate changes to the SOA services whenever its data model is updated with new attributes,<br />

entities, or sources. This key requirement will protect the higher-level SOA applications from any changes<br />

made to the underlying co-design management system. In comparison, co-design management solutions with<br />

fixed SOA services that are built on a fixed data model will require custom coding in order to accommodate<br />

any underlying changes to the data model.<br />

Mistake #6: Cleansing data outside <strong>of</strong> the data management platform. Data cleansing includes name corrections,<br />

address st<strong>and</strong>ardizations, <strong>and</strong> data transformations. Objects can be efficiently cleansed at the source using<br />

commonly available data quality tools. In contrast, the number <strong>of</strong> sources for a cluster-wide master data management<br />

deployment spans multiple research groups <strong>and</strong> typically comprises tens or hundreds <strong>of</strong> systems. In this<br />

scenario, cleansing the data at the source systems is not viable. Rather, data cleansing needs to be centralized<br />

within the data management system. If the application has already st<strong>and</strong>ardized on a cleansing tool, then it is<br />

important to ensure the co-design management solution provides out-<strong>of</strong>-the-box integration with the cleansing<br />

tool in order to leverage your existing investments.<br />

Mistake #7: Thinking probabilistic matching is adequate. There are several types <strong>of</strong> matching techniques commonly<br />

in use—deterministic, probabilistic, heuristic, phonetic, linguistic, empirical, etc. The fact is, no single technique<br />

is capable <strong>of</strong> compensating for all <strong>of</strong> the possible classes <strong>of</strong> data errors <strong>and</strong> variations in the master data. In<br />

order to achieve the most reliable <strong>and</strong> consolidated view <strong>of</strong> master data, the master data management platform<br />

should support a combination <strong>of</strong> these matching techniques with each able to address a particular class <strong>of</strong> data<br />

matching. A single technique, such as probabilistic, will not likely be able to find all valid match c<strong>and</strong>idates, or<br />

worse may generate false matches.<br />

Mistake #8: Underestimating the importance <strong>of</strong> creating a golden record. For co-design management to be successful<br />

within an organization, it is not enough to simply link identical data with a registry style because this<br />

will not resolve inconsistencies among the data. Rather, master data from different sources need to be reconciled<br />

<strong>and</strong> centrally stored within a master data hub. Given the potential number <strong>of</strong> sources across the organization


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 521<br />

<strong>and</strong> the volume <strong>of</strong> master data, it is important that the master data management system is able to automatically<br />

create a golden record for any master data type such as measurement, project, tools, etc. In addition, the master<br />

data management system should provide a robust unmerge functionality in order to rollback any manual errors<br />

or exceptions—a typical activity in large organization where several data stewards are involved with managing<br />

master data.<br />

Mistake #9: Overlooking the need for history <strong>and</strong> lineage to support regulatory compliance. Today, database users<br />

in research groups not only dem<strong>and</strong> reliable data, but they also require validation that the data is in fact reliable.<br />

This is a challenging <strong>and</strong> daunting undertaking considering that data sets are continually changing with updates<br />

from source systems taking place in real-time as research <strong>and</strong> data gathering is being transacted, <strong>and</strong> while the<br />

data set is merged with other similar data within the data hub. The history <strong>of</strong> all changes to master data <strong>and</strong> the<br />

lineage <strong>of</strong> how the data has changed needs to be captured as metadata. In fact, metadata forms the foundation<br />

for auditing <strong>and</strong> is a critical part <strong>of</strong> data governance <strong>and</strong> regulatory compliance reporting initiatives. As a<br />

result, <strong>and</strong> because metadata is such an essential component <strong>of</strong> co-design management, it is important that data<br />

management incorporates the need for history <strong>and</strong> lineage.<br />

Mistake #10: Implementing co-design management for only a single mode <strong>of</strong> operation: analytical or operational.<br />

A cluster-wide data management platform needs to synchronize master data with both operational <strong>and</strong> analytical<br />

applications in order to adequately support real-time business processes <strong>and</strong> compliance reporting across<br />

multiple research groups. In contrast, data analysis solutions are most <strong>of</strong>ten implemented at the research team<br />

level with the objective <strong>of</strong> solving a single analysis task. These deployments will typically only synchronize<br />

data back to either operational or analytical applications but not both. Without the ability to synchronize master<br />

data with both operational <strong>and</strong> analytical applications, your ability to extend the data management management<br />

platform across the organization will be limited.<br />

Examples <strong>of</strong> Data, <strong>Information</strong> <strong>and</strong> Knowledge Management.<br />

Archeoinformatics enorme Entwicklung der Datenmenge, auch aufgrund naturwissenschaftlicher Erkenntnisse<br />

enorme Entwicklung der Komplexität der Daten, vielschichtige Modelle z.B. Karten mit Legenden, Maßstäbe und<br />

beschriftungen superimposed information data provenenace Einschluß des Raumbezuges von <strong>Information</strong>e (absolut,<br />

relativ z.B. Assoziation oder Nähe, Kontext), Aspekte von Geodaten (Geometrie, Topologie, Sachdaten (Semantik,<br />

Thematik), Dynamik) Veränderbarkeit des Geobezuges welches Geometriemodell Integration von amtlichen Daten<br />

(Kataster, Bodendenkmalspflege, Forschungsprimärdaten), INSPIRE Initiative (availability, quality, organisation, accessibility,<br />

sharing among parties) local storage <strong>and</strong> maintenance, integratable on dem<strong>and</strong>, interoperability services:<br />

geoportal, search, representation, download, coordinate transformation data specification for protected sites - guidelines<br />

Initiative digitale <strong>Information</strong> (auch z.B. Humboldt, allianzinitiative ADeX Kommission Archäologie und <strong>Information</strong>ssysteme<br />

Denkmaldaten, Digicult Initiative OpenContext, ArcheoInf Open Geospatial Consortium www.opengeospatial<br />

also st<strong>and</strong>ards for data exchange basiert auf SOA (Besser Dahanayake/THalheim CMS 2011) Web Mapping Service,<br />

Simple feature Access, Web Coverage Service, Web Feature Service Web Catalogue Service, Web Processing Service<br />

Choreography <strong>of</strong> services<br />

eine gute Lösung: St<strong>and</strong>ardisierung und Datenhygiene<br />

Maintenance <strong>of</strong> Cultural Heritage Broman case<br />

Überführung textueller Inhalte in elektronische mit Einschluß der Semantik dieser Daten, sowei auch Pragamatik<br />

5.2.2 Probleme des Datenmanagement in Forschungsprojekten<br />

Erhebung und Bereinigung der Daten.


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 522<br />

In Forschungsprojekten fallen nicht nur riesige Datenmengen an, die effizient und effektiv verwaltet werden<br />

müssen, sondern insbesondere Daten in unterschiedlicher Granularität, Präzision, in unterschiedlichen Formaten und<br />

unterschiedlichen Gültigkeiten an. Von besonderer Schwierigkeit sind dabei noch Sensordaten, deren Qualität je nach<br />

Erhebungsbedingungen, je nach Erhebungsauftrag, je nach Ablagemöglichkeit und je nach s<strong>of</strong>ortiger Weiterverarbeitung<br />

zu unterschiedlichen und nicht vorhersehbaren Verfälschungen führt, was sich auf die Qualität der Auswertung<br />

nachhaltig auswirkt.<br />

Daten fallen im allgemeinen mit Metadaten an. Neben georeferziellen und temporalen Daten sind z.B. auch die<br />

Daten zur Charakterisierung der Erhebung wichtig. Die Sensordaten können z.B. zusammen mit den Kalibirierungsdaten<br />

gespeichert werden. Damit ist eine nachträgliche Bereinigung der Daten möglich, falls eine Kalibirierung zu<br />

lange zurückliegt. Es werden mit einer nachträglichen korrektiven Umrechnung Daten von höherer Qualität erhalten.<br />

Die Qualität der Daten kann besser beurteilt werden, wenn die Kalibrierung beurteilbar bleibt.<br />

Hinzu kommt, daß die marin-geowissenschaftliche Datenerfassung unter schwierigen Bedingungen stattfindet<br />

und damit Fehler nicht zu vermeiden sind. Selbst die technische Installation zur Datenerfassung ist bereits schwierig.<br />

Damit ist auch die Erhebung von Qualitätsdaten eine schwierige Aufgabe in Forschungsprojekten.<br />

Die erhobenen Daten sind zumeist einzigartig, nicht einfach wiederholbar oder wiederbeschaffbar. Eine nachträgliche<br />

Ergänzung und Erweiterung selbst um Metadaten ist <strong>of</strong>t nicht möglich. Eine Wiederbeschaffung der Daten<br />

scheitert auch an den sich ständig verändernden Verhältnissen. Daten, die nicht wiederbeschaffbar sind, sind für<br />

Auswertungen nicht zugänglich und verfälschen durch ihre Nichtexistenz die Auswertungen. Damit wird auch die<br />

Glaubwürdigkeit der Ergebnisse eines Forschungsprojektes negativ beeinflußt.<br />

Damit sind selbst innerhalb einer Gruppe diese Daten nur dann konsistent und vollständig in den Projekten verwendbar,<br />

wenn diese Daten einer Integration, einer Aufbereitung, einer Reinigung und einer sinnvollen Zusammenfassung<br />

zugeführt werden.<br />

Die Erhebung und Bereinigung der Daten erfolgt derzeit noch in jeder Arbeitsgruppe eines Forschungsprojektes.<br />

Es stehen weder Werkzeuge für die gleichzeitige Erhebung und Aufbereitung, noch für die Integration von Datenbeständen<br />

<strong>and</strong>erer zur Verfügung.<br />

Die Zuordnung und die Werte der Metadaten kann auch während einer Fahrt divergieren. So kann z.B. der Stationsbezeichnung<br />

von Gruppen unterschiedlich geh<strong>and</strong>habt werden. Deshalb sind entsprechende Alias-Techniken<br />

besonders hilfreich zur Wiederherstellbarkeit der realen Übereinstimmung der Stationsdaten.<br />

Ablage der erhobenen, bereinigten und aufbereiteten Daten.<br />

Durch zentrale Anlaufstellen im Forschungsprojekt wird <strong>of</strong>t als Service die Entgegennahme und Abspeicherung<br />

der Daten in dem Format gewährleistet, in dem die Daten geliefert wurden. Dieser Service ist das Maximale, das z.Z.<br />

geleistet werden kann. Notwendig wäre dagegen eine sichere (Langzeit-) Archivierung.<br />

Zusätzlich sollte jederzeit ein leichter Zugang zu den Daten für authorisierte Benutzer möglich sein. Dieser Zugang<br />

sollte auch im Remote-Betrieb von jedem Rechner und jedem St<strong>and</strong>ort aus erfolgen können. Dazu bedarf es<br />

allerdings einer Aufarbeitung der Daten. Diese Aufarbeitung wird entweder vom Wissenschaftler, der die Daten<br />

einlagern läßt manuell zum Einlagerungszeitpunkt erledigt oder wird auf einen späteren Zeitpunkt verschoben und<br />

damit meist nicht mehr ausgeführt. Deshalb könnte eine S<strong>of</strong>tware, die eine automatische Ergänzung vornimmt, sehr<br />

hilfreich sein.<br />

Mit der Einlagerung sollten auch Mechanismen zur Benutzung der Daten in breiterem Maße bereitgestellt werden.<br />

Bei der Benutzung ist allerdings erforderlich, daß eine Nachvollziehbarkeit der Benutzung durch Dritte gewährleistet<br />

wird. Deshalb muß mit der Herausgabe der Daten auch eine Protokollierung der Weiterverwendung erfolgen.<br />

Es kann der guten wissenschaftlichen Praxis überlassen werden, ob ein gebührender “Credit” bei der Benutzung<br />

erfolgt. Günstiger wäre allerdings eine automatische Annotation bei einer weiteren Einstellung von Fremddaten-<br />

Best<strong>and</strong>teilen in den eigenen Publikationen.<br />

Die Daten müssen mit entsprechenden Metadaten abgelegt werden. Zu den Metadaten gehören neben den Daten<br />

zur Erhebung, zu den verwendeten Verfahren auch die geographischen und die temporalen Daten. Diese Metadaten<br />

können durch eine Erweiterung der Graphical Markup Language (GML) zu einer Oceanography Markup Language<br />

(OML) einheitlich erfaßt werden. Dazu kann die OML als eigenständige Entwicklung im Rahmen eines Meeres-<br />

Forschungsprojektes als Projektaufgabe konzipiert werden.<br />

Jeder Benutzer und jeder Erheber von Daten hat seinen eigenen Arbeitsstil und seine eigene Herangehensweise


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 523<br />

an die Arbeit mit Daten. Benutzer bearbeiten und verändern Daten anh<strong>and</strong> der konkreten aktuellen Aufgabenstellung.<br />

Eine spätere Dokumentation des Verwendungszweckes, der getätigten Zusammenfassungen, der Korrekturen<br />

etc. ist nicht nur aufwendig, sondern <strong>of</strong>t auch nicht mehr möglich. Damit können auch Daten verwendet werden,<br />

die unerkannterweise Duplikate sind, von denen man nicht mehr die Assoziation zum Original herstellen kann und<br />

die damit aufgrund des Vorh<strong>and</strong>enseins, aufgrund der Art der Aggregation und aufgrund der Nachbearbeitung zu<br />

Verfälschungen in Analysen führen können.<br />

Befähigung der Arbeitsgruppen zur Zusammenarbeit auf der Grundlage von Daten.<br />

Benutzer von Daten verfügen selten über eine tiefgründige Informatikausbildung, sondern erwarten eher einen<br />

einfachen und komfortablen Zugriff auf alle vorh<strong>and</strong>enen Daten und die Meta-Daten. Dies sollte durch entsprechende<br />

Schnittstellen ermöglicht werden. Benutzer erwarten darüber hinaus auch mehrstufige Zugriffsmöglichkeiten, je<br />

nachdem Mikro-, Meso- oder Makrodaten 2 benötigt werden. Außerdem wird auch ein mehrstufiger Zugriff auf bereinigte<br />

und prozessierte Daten benötigt.<br />

Die Benutzung der Daten muß auch so einfach sein, daß Daten innerhalb der Anwendungsumgebung des Benutzers<br />

auf einfache Art integriert werden können. Dies spricht für die Entwicklung eines Datenaustauschformates auf<br />

XML-Basis innerhalb des gesamten Forschungsprojektes.<br />

Der Datenaustausch innerhalb und zwischen den Arbeitsgruppen basiert derzeit z.T. noch auf Formaten der<br />

Office-Suite wie z.B. unterschiedlich formatierten und damit paarweise inkompatiblen Excel-Spreadsheets. Diese<br />

Daten werden außerdem <strong>of</strong>t noch per Email ausgetauscht. Mit Werkzeugen zum Projektdatenmanagement, die zum<br />

einem nur den authorisierten Benutzern den Zugriff und die Modifikation der Daten gestatten, auf die spezifische<br />

Arbeitsweise der Projekte konfigurierbar sind und die einen automatisierten Import der Daten in das zentrale Datenbanksystem<br />

des Forschungsprojektes vornehmen, kann der problematische Datenaustausch innerhalb und zwischen<br />

den Arbeitsgruppen überwunden werden.<br />

Die Benutzer sehen sich derzeit größeren Schwierigkeiten gegenüber, wenn Daten durch die Benutzer analysiert<br />

werden sollen. Günstig wäre ein “data discovery service”, mit dem die Hypothesenerarbeitung und -überprüfung<br />

interaktiv erfolgen könnte. Dann kann ein Wissenschaftler mit seinen eigenen Daten experimentieren. Derzeit hängt<br />

dies vom Geschick der Benutzer und von der richtigen Auswahl und Installation entsprechender Werkzeuge innerhalb<br />

der eigenen Rechnerumgebung ab.<br />

Es gibt bereits eine ganze Reihe von Visualisierungstools, mit denen eine Illustration von Resultaten auf sehr<br />

einfache kognitive Weise möglich wird. Die Installation und Pflege dieser Tools ist jedoch relativ aufwendig, so daß<br />

diese Werkzeuge nur selten angew<strong>and</strong>t werden. Durch eine zentrale Installation und Pflege kann dieser Mangel jedoch<br />

behoben werden.<br />

Da die Daten relativ isoliert erhoben, isoliert in den Arbeitsgruppen verwaltet und analysiert werden, ist eine<br />

mehrfache Benutzung der Daten durch mehrere Arbeitsgruppen im Forschungsprojekt derzeit nur selten gegeben.<br />

Damit erheben nicht nur Arbeitsgruppen Daten, die <strong>and</strong>ere Arbeitsgruppen bereits besitzen und direkt verwendet<br />

werden könnten, nochmals, sondern können Daten, die mit den eigenen Daten zu hohem gemeinsamen Nutzen<br />

kombiniert werden können, nicht in die Analysen mit einbeziehen. Damit wird auch die Konkurrenzfähigkeit des<br />

Forschungsprojektes geschwächt.<br />

Daten werden ggf. auch zum Vergleich, zum Verstehen von Verläufen bewußt mehrfach an gleichen Orten erhoben.<br />

Für diese Daten ist eine einfache und bequeme Assoziation mit den bereits vorh<strong>and</strong>enen Daten eine Voraussetzung<br />

für die Analyse.<br />

Bereitstellung der aufbereiteten Daten an Dritte.<br />

2 Daten können neben den direkten Erhebungsdaten auch aufbereitete und aggregierte Daten sein. Typische Daten unterschiedlicher Aggregation<br />

sind Monatsmittelwerte, Jahresmittelwerte, Tiefenpr<strong>of</strong>ile und Oberflächenwerte. Die Monatsmittelwerte können z.B. als Mesodaten<br />

nicht einfach aufgrund der unterschiedlichen Monatslängen zu Jahresmittelwerten zusammengefaßt werden. Auswertungen beruhen auf<br />

Makrodaten, die allerdings zu den Meso- und Mikrodaten führen müssen. Die Initiativen zur Mitführung von Basisdaten neben den Makrodaten<br />

bei Publikationen, bei Auswertungen und bei Analysen zeigen hier einen Weg. In der Vergangenheit hat die Nichtassoziierbarkeit<br />

von Auswertungs- und Publikationsdaten mit den Grunddaten, die Nichtnachvollziehbarkeit der Auswahl der Daten (“Verschnitt”) zu einem<br />

Glaubwürdigkeitsverlust geführt.


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 524<br />

Daten werden nicht nur für das Forschungsprojekt erhoben, sondern sind <strong>and</strong>eren Benutzern wie z.B. entsprechenden<br />

Datenzentren aufgrund von Verträgen, als Best<strong>and</strong>teil einer “guten Praxis”, zur Begleitung von Publikationen, zur<br />

Erhöhung der Sichtbarkeit und der Reputation, für weitere Publikationen und für die Wieder- und Weiterverwendung<br />

der Daten zur Verfügung zu stellen. Dieser Export von Daten beansprucht einen erheblichen Teil der Arbeitszeit der<br />

beteiligten Wissenschaftler und ist bei fast allen Gruppen des Forschungsprojektes in analoger Form zu bewältigen.<br />

Da die Daten auch mehreren Datenzentren zur Verfügung gestellt werden und auch weiter verwendet werden,<br />

entsteht mit der unzureichenden Annotation über den Ursprung und die Qualität von Daten außerdem noch das<br />

Problem der Vervielfältigung von gleichen Daten ohne diese auf den Ursprung zurückführen zu können. Deshalb<br />

ist es <strong>of</strong>t für einen Wissenschaftler schwierig oder auch unmöglich, verläßliche Analysen auf wiederholenden Daten<br />

auszuführen. Oft werden Zusatzdaten wie z.B. Georeferenzierungen oder Zeitdaten in widersprüchlicher Form diesen<br />

Daten hinzugefügt.<br />

Das Forschungsprojekt benötigt zum einem automatisierte Verfahren zum Export von Daten an die verschiedenen<br />

Datenzentren und zum <strong>and</strong>eren automatisierte Verfahren zur Anreicherung der Daten um Metadaten wie Zeitdaten<br />

und Georeferenzierungen. Diese Verfahren würden die Auswertungs- und Weitergabearbeit der Arbeitsgruppen eines<br />

Forschungsprojektes wesentlich erleichtern und eine ständige Neueinarbeitung neuer Mitarbeiter in diffizile Datenformate<br />

der Datenzentren vermeiden.<br />

In Forschungsprojekten werden Daten in großem Umfang erhoben. Diese Daten müssen den entsprechenden<br />

Zentren zur Verfügung gestellt werden. Diese Aufgabe erfordert eine kluge Automatisierung.<br />

Wenn eine Suite von Exportschnittstellen existieren würde, dann könnte auch in analoger Weise eine Suite von Exportschnittstellen<br />

zu Auswertungswerkzeugen wie z.B. MathLab, Statisitk-Systemen und Data-Mining-Werkzeugen<br />

in analoger Form die Arbeit der Wissenschaftler erleichtern. Damit würde zugleich auch die Arbeitsfähigkeit der<br />

Arbeitsgruppen verbessert.<br />

Daten müssen ebenfalls <strong>of</strong>t gezielt neben einer Ergänzung einer Bereinigung zugeführt werden. Sensordaten sind<br />

selbst bei modernster Technik fehlerbehaftet und deshalb <strong>of</strong>t nicht in der ursprünglichen oder nur in bereinigter Form<br />

weiter zu verwenden. Die Reinigung bzw. die Mitführung von Fehlern und Bereinigungsinformationen ist deshalb<br />

eine Aufgabe für die Automatisierung.<br />

Auswertungsmethoden werden aufgrund neuer Erkenntnisse oder aufgrund von Erfahrungen auch durch <strong>and</strong>ere<br />

Auswertungsmethoden ersetzt, die dann zu <strong>and</strong>eren Ergebnissen über dem gleichen Datenbest<strong>and</strong> führen können.<br />

Deshalb ist auch zusammen mit der Aggregation und der Anwendung von Auswertungsmethoden sowohl die verwendete<br />

Methode als auch die spezifischen Aufgabenportfolio und Benutzungspr<strong>of</strong>ile mit den aggregierten Daten<br />

zu speichern. Bei einer Verwendung von Basisdaten durch Dritte ist ggf. auch die Benutzung dieser Daten bei den<br />

Basisdaten mitzuführen.<br />

5.2.3 SWOT <strong>Analysis</strong> <strong>of</strong> Problems <strong>of</strong> Data Management in Research Projects<br />

SWOT analysis is a strategic planning method used to evaluate the Strengths, Weaknesses, Opportunities, <strong>and</strong> Threats<br />

<strong>of</strong> a project. A SWOT analysis usually starts by defining an end state or objective. The aim <strong>of</strong> any SWOT analysis<br />

is to identify the key internal <strong>and</strong> external factors that influence the achievements <strong>of</strong> this objective. SWOT analysis<br />

thereby groups key pieces <strong>of</strong> information into categories:<br />

• Internal factors: The internal strengths <strong>and</strong> weaknesses <strong>of</strong> the proposed project.<br />

• External factors: The opportunities <strong>and</strong> threats presented by the external environment to the project.<br />

The internal factors may be viewed as strengths or weaknesses depending upon their impact on data management<br />

objectives. What may represent strengths with respect to one objective may be weaknesses for another objective.<br />

The external factors may include market opportunities <strong>and</strong> threats, technological change, legislation, <strong>and</strong> political


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 525<br />

considerations.<br />

Data Quality Problems.<br />

Integration <strong>of</strong> Temporal <strong>and</strong> Spatial (Meta)Data.<br />

Extraction <strong>and</strong> Purging <strong>of</strong> Data.<br />

Auch in Forschungsprojekten fallen nicht nur riesige Datenmengen an, die effizient und effektiv verwaltet werden<br />

müssen, sondern insbesondere Daten in unterschiedlicher Granularität, Präzision, in unterschiedlichen Formaten und<br />

unterschiedlichen Gültigkeiten an. Von besonderer Schwierigkeit sind dabei noch Sensordaten, deren Qualität je nach<br />

Erhebungsbedingungen, je nach Erhebungsauftrag, je nach Ablagemöglichkeit und je nach s<strong>of</strong>ortiger Weiterverarbeitung<br />

zu unterschiedlichen und nicht vorhersehbaren Verfälschungen führt, was sich auf die Qualität der Auswertung<br />

nachhaltig auswirkt.<br />

Daten fallen im allgemeinen mit Metadaten an. Neben georeferziellen und temporalen Daten sind z.B. auch die<br />

Daten zur Charakterisierung der Erhebung wichtig. Die Sensordaten können z.B. zusammen mit den Kalibirierungsdaten<br />

gespeichert werden. Damit ist eine nachträgliche Bereinigung der Daten möglich, falls eine Kalibirierung zu<br />

lange zurückliegt. Es werden mit einer nachträglichen korrektiven Umrechnung Daten von höherer Qualität erhalten.<br />

Die Qualität der Daten kann besser beurteilt werden, wenn die Kalibrierung beurteilbar bleibt.<br />

Hinzu kommt, daß die marin-geowissenschaftliche Datenerfassung unter schwierigen Bedingungen stattfindet<br />

und damit Fehler nicht zu vermeiden sind. Selbst die technische Installation zur Datenerfassung ist bereits schwierig.<br />

Damit ist auch die Erhebung von Qualitätsdaten eine schwierige Aufgabe für Forschungsprojektcluster.<br />

Die erhobenen Daten sind zumeist einzigartig, nicht einfach wiederholbar oder wiederbeschaffbar. Eine nachträgliche<br />

Ergänzung und Erweiterung selbst um Metadaten ist <strong>of</strong>t nicht möglich. Eine Wiederbeschaffung der Daten<br />

scheitert auch an den sich ständig verändernden Verhältnissen. Daten, die nicht wiederbeschaffbar sind, sind für<br />

Auswertungen nicht zugänglich und verfälschen durch ihre Nichtexistenz die Auswertungen. Damit wird auch die<br />

Glaubwürdigkeit der Ergebnisse eines Forschungsprojektclusters negativ beeinflußt.<br />

Damit sind selbst innerhalb einer Gruppe diese Daten nur dann konsistent und vollständig in den Projekten verwendbar,<br />

wenn diese Daten einer Integration, einer Aufbereitung, einer Reinigung und einer sinnvollen Zusammenfassung<br />

zugeführt werden.<br />

Die Erhebung und Bereinigung der Daten erfolgt derzeit noch in jeder Arbeitsgruppe eines Forschungsprojektclusters.<br />

Es stehen weder Werkzeuge für die gleichzeitige Erhebung und Aufbereitung, noch für die Integration von<br />

Datenbeständen <strong>and</strong>erer zur Verfügung.<br />

Die Zuordnung und die Werte der Metadaten kann auch während einer Fahrt divergieren. So kann z.B. der Stationsbezeichnung<br />

von Gruppen unterschiedlich geh<strong>and</strong>habt werden. Deshalb sind entsprechende Alias-Techniken<br />

besonders hilfreich zur Wiederherstellbarkeit der realen Übereinstimmung der Stationsdaten.<br />

Inadequate Namespaces <strong>and</strong> Inadequate Naming.<br />

Non-appropriate names: Names from the namespace are used for identification <strong>and</strong> recognition <strong>of</strong> data.Names are<br />

however sometimes casual, not in accord with prescribed form, un<strong>of</strong>ficial, or simply inappropriate for the<br />

intended use. Namesspace must provide a means to select names in a formal, structured, nomencladure <strong>and</strong><br />

taxonomic manner.<br />

Problems: Typical problems that we have observed for research projects as well in industrial settings are the<br />

following ones:<br />

Names without meaning: Attribute names like Name carry too many meanings such as in a customer<br />

table the organisation, a person, a contact person, the supervisors etc. names.<br />

Non-unique names without resolution convention: The symbols used for names can be reused in different<br />

types as long there is a resolution strategy for extension <strong>of</strong> names by their corresponding type<br />

name <strong>and</strong> there is a unique name assumption for entity, cluster <strong>and</strong> relationship types. If however the


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 526<br />

two assumption are not valid then there is no resolution uniqueness for names. Otherwise we have to<br />

use synonym <strong>and</strong> homonym constraints.<br />

Structureless naming: Name components are put together without any systematics by picking some<br />

words together.<br />

Incorrect names: Names are sometimes used without any intention or later changed to other meaning<br />

without changing the text string.<br />

Most overused attribute names are Comment <strong>and</strong> Explanation without have the intention to<br />

comment or explain something.<br />

Incorrect abbreviations Especially after transformation data from Excel spreadsheets many abbreviations<br />

occur without having a chance to underst<strong>and</strong> their real meaning. Often abbreviations are not<br />

applied consistently.<br />

Unnamed data resource components such as version or source are not explicitly given. The context information<br />

is later lost.<br />

Observed repercussion <strong>of</strong> these problems: Naming without a namespace <strong>and</strong> a naming convention is a good<br />

source <strong>of</strong> misunderst<strong>and</strong>ings <strong>and</strong> misuse <strong>of</strong> notions in programming, search, <strong>and</strong> deployment.<br />

Limiting identification <strong>of</strong> names for deployment: Inappropriate names require from the user to learn the<br />

right meaning. Therefore users cannot identify the facts they would like to identify.<br />

Perpetuated disparity: Users are not aware <strong>of</strong> existence <strong>of</strong> data. Therefore, additional redundant data are<br />

created.<br />

Lower productivity is caused by the need to locate the proper data, by trying to remember the meaning,<br />

<strong>and</strong> by trying to gain an initial underst<strong>and</strong>ing <strong>of</strong> the content <strong>of</strong> the database.<br />

Incomprehensive data definitions do not allow to fully explain the content <strong>of</strong> the database <strong>and</strong> the meaning <strong>of</strong> the<br />

data in business terms. Typically the problem is observed for data that come from XML environments. These<br />

data are then vague since they do not allow to thoroughly explain, in simple underst<strong>and</strong>able terms, the real<br />

content <strong>and</strong> meaning <strong>of</strong> the data with respect to the business.<br />

Problems encountered Vague data definitions inhibit data underst<strong>and</strong>ing that inhibits business underst<strong>and</strong>ing.<br />

Non-existent data definitions provide no data underst<strong>and</strong>ing. Typical examples are coded data without<br />

reference to the code used.<br />

Unavailable data definitions limit the deployment <strong>of</strong> data by those who need to underst<strong>and</strong> the data.<br />

Short data definitions use truncated phrases, incomplete sentences <strong>and</strong> provide little meaning. Sometimes,<br />

the meaning given is only the long form <strong>of</strong> the attribute name, e.g. Pro Nu for The number<br />

<strong>of</strong> the probe.<br />

Meaningless data definitions are coming into play when people use some r<strong>and</strong>omly chosen, grammatical<br />

illiterately sentence form <strong>and</strong> force users to imagine or guess what could be the meaning.<br />

Outdated data definitions are for instance observed after database evolution without changing the meaning<br />

<strong>of</strong> attributes or after migration or integration projects.<br />

Incorrect data definitions cause considerable uncertainty. For instance, the applicable unit <strong>of</strong> measure<br />

cannot be guessed.<br />

Unrelated definitions: The definition is useful in another context but not in the current context.<br />

Functionality overload such as data entry instructions are coded into the name <strong>of</strong> the data.<br />

Biasing deployment by detailed descriptions: Exhaustive descriptions condition users that all situations<br />

<strong>and</strong> meanings are covered. Other uses cannot be easily identified.<br />

Explicit coding <strong>of</strong> the source should be given by the metadata but not within a definition <strong>of</strong> the data.<br />

Observed repercussion <strong>of</strong> these problems: Vague data definitions lead to inappropriate use, incomplete use,<br />

<strong>and</strong> poor underst<strong>and</strong>ability.<br />

Inhibiting data underst<strong>and</strong>ing: The data in the database are not thoroughly understood. There are assumptions<br />

<strong>of</strong> data collection, data quality etc. that cannot be guessed. for instance, a collection on<br />

species collected from the hunter community does not cover all species.


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 527<br />

Inappropriate data use: Data are used for analysis, for data warehouse injection <strong>and</strong> for archives without<br />

knowing the restrictions for their deployment.<br />

Perpetuated data disparity: Data are misinterpreted, misunderstood, <strong>and</strong> extended by individual connotations.<br />

Low productivity: Conclusions drawn from the data set cannot be believed, e.g., Simpsions Paradoxon.<br />

Imprecise data integrity rules Typical problems that we have observed for research projects as well in industrial<br />

settings are the following ones:<br />

Problems encountered<br />

Observed repercussion <strong>of</strong> these problems:<br />

Typical problems that we have observed for research projects as well in industrial settings are the following ones:<br />

Problems encountered<br />

Informal naming<br />

Inadequate Database Schemata.<br />

Improper database schemata: Typical problems that we have observed for research projects as well in industrial<br />

settings are the following ones:<br />

Problems encountered:<br />

Observed repercussion <strong>of</strong> these problems:


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 528<br />

Limited data view Typical problems that we have observed for research projects as well in industrial settings are the<br />

following ones:<br />

Problems encountered<br />

Observed repercussion <strong>of</strong> these problems<br />

Bad orientation Typical problems that we have observed for research projects as well in industrial settings are the<br />

following ones:<br />

Problems encountered<br />

Observed repercussion <strong>of</strong> these problems<br />

Partially Documented Schemata.<br />

Insufficient Data Management.<br />

Inflexible Data Schemata.<br />

5.2.4 Data Computation Problems<br />

(Temporary) Storage <strong>of</strong> Obtained, Purged <strong>and</strong> Processed Data.<br />

Durch ein Rechenzentrum eines Forschungsprojektclusters wird derzeit als Service die Entgegennahme und Abspeicherung<br />

der Daten in dem Format gewährleistet, in dem die Daten geliefert wurden. Dieser Service ist das Maximale,<br />

das z.Z. geleistet werden kann. Notwendig wäre dagegen eine sichere (Langzeit-) Archivierung.<br />

Zusätzlich sollte jederzeit ein leichter Zugang zu den Daten für authorisierte Benutzer möglich sein. Dieser Zugang<br />

sollte auch im Remote-Betrieb von jedem Rechner und jedem St<strong>and</strong>ort aus erfolgen können. Dazu bedarf es<br />

allerdings einer Aufarbeitung der Daten. Diese Aufarbeitung wird entweder vom Wissenschaftler, der die Daten<br />

einlagern läßt manuell zum Einlagerungszeitpunkt erledigt oder wird auf einen späteren Zeitpunkt verschoben und<br />

damit meist nicht mehr ausgeführt. Deshalb könnte eine S<strong>of</strong>tware, die eine automatische Ergänzung vornimmt, sehr<br />

hilfreich sein.


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 532<br />

Mit der Einlagerung sollten auch Mechanismen zur Benutzung der Daten in breiterem Maße bereitgestellt werden.<br />

Bei der Benutzung ist allerdings erforderlich, daß eine Nachvollziehbarkeit der Benutzung durch Dritte gewährleistet<br />

wird. Deshalb muß mit der Herausgabe der Daten auch eine Protokollierung der Weiterverwendung erfolgen.<br />

Es kann der guten wissenschaftlichen Praxis überlassen werden, ob ein gebührender “Credit” bei der Benutzung<br />

erfolgt. Günstiger wäre allerdings eine automatische Annotation bei einer weiteren Einstellung von Fremddaten-<br />

Best<strong>and</strong>teilen in den eigenen Publikationen.<br />

Die Daten müssen mit entsprechenden Metadaten abgelegt werden. Zu den Metadaten gehören neben den Daten<br />

zur Erhebung, zu den verwendeten Verfahren auch die geographischen und die temporalen Daten. Diese Metadaten<br />

können durch eine Erweiterung der Graphical Markup Language (GML) zu einer Oceanography Markup Language<br />

(OML) einheitlich erfaßt werden. Dazu kann die OML als eigenständige Entwicklung im Rahmen eines Forschungsprojektclusters<br />

als Projektaufgabe konzipiert werden.<br />

Jeder Benutzer und jeder Erheber von Daten hat seinen eigenen Arbeitsstil und seine eigene Herangehensweise<br />

an die Arbeit mit Daten. Benutzer bearbeiten und verändern Daten anh<strong>and</strong> der konkreten aktuellen Aufgabenstellung.<br />

Eine spätere Dokumentation des Verwendungszweckes, der getätigten Zusammenfassungen, der Korrekturen<br />

etc. ist nicht nur aufwendig, sondern <strong>of</strong>t auch nicht mehr möglich. Damit können auch Daten verwendet werden,<br />

die unerkannterweise Duplikate sind, von denen man nicht mehr die Assoziation zum Original herstellen kann und<br />

die damit aufgrund des Vorh<strong>and</strong>enseins, aufgrund der Art der Aggregation und aufgrund der Nachbearbeitung zu<br />

Verfälschungen in Analysen führen können.<br />

Data Layering Problems.<br />

5.2.5 Typical Data <strong>Analysis</strong> Problems<br />

Algorithms are typically used for the solution <strong>of</strong> data mining <strong>and</strong> analysis tasks. An algorithms also has an application<br />

area, application restrictions, data requirements, results at certain granularity <strong>and</strong> precision. These problems must be<br />

systematically tackled if we want to rely on the results <strong>of</strong> mining <strong>and</strong> analysis. Otherwise analysis may become<br />

misleading, biased, or not possible. Therefore, we explicitly treat properties <strong>of</strong> mining <strong>and</strong> analysis.<br />

Problems observed [PPJ06]<br />

A large variety <strong>of</strong> competing algorithms <strong>and</strong> tools have<br />

been developed. Their advantages <strong>and</strong> specific application<br />

areas are not yet made explicit.<br />

Their h<strong>and</strong>ling <strong>and</strong> resolution<br />

The development <strong>of</strong> an advisory system that supports selection<br />

<strong>and</strong> that help for the most appropriate selection<br />

might resolve this difficulty. The analysis <strong>of</strong> algorithms<br />

is necessary in advance.<br />

Each <strong>of</strong> the algorithms has its specific data quality requirements.<br />

the algorithm or only with special care.<br />

We either improve the data quality or advice not to use<br />

The interpretation <strong>of</strong> results obtained by analysis is crucial<br />

for underst<strong>and</strong>ing analysis.<br />

what was not achievable.<br />

The user must be informed what has been achieved <strong>and</strong><br />

The formation <strong>of</strong> best fitting hypotheses <strong>and</strong> concepts is The user is supported by explicit modelling <strong>of</strong> the triad <strong>of</strong><br />

still rather art than science.<br />

concepts, hypotheses, <strong>and</strong> data spaces.<br />

The detection <strong>of</strong> new hypotheses <strong>and</strong> the selection <strong>of</strong> appropriate<br />

data is very difficult.<br />

spaces <strong>and</strong> during drilling down into the data .<br />

The user can be supported for orientation in the triad<br />

Visualisation <strong>of</strong> results is still rather difficult due to the Representation theory has developed approaches transformation<br />

<strong>of</strong> spaces to forms, e.g., abstract algebraic<br />

specifics <strong>of</strong> the visualisation method <strong>and</strong> <strong>of</strong> the structure<br />

<strong>of</strong> the visualisation space.<br />

structures are represented using geometry.<br />

The results <strong>of</strong> mining <strong>and</strong> analysis are open for misinterpretation<br />

<strong>and</strong> drawing wrong conclusions as long as the with the results obtained by these algorithms.<br />

The main properties <strong>of</strong> algorithms must provided together<br />

analysis properties <strong>of</strong> algorithms are not well understood.<br />

Data are the main source for information in data mining <strong>and</strong> analysis. Their quality properties have been neglected<br />

for a long time. At the same time, modern data management allows to h<strong>and</strong>le these problems. We compare the critical<br />

findings <strong>of</strong> [PPJ06] with resolution techniques that can be applied to overcome the crucial pitfalls <strong>of</strong> data mining in<br />

environmental sciences reported there.


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 533<br />

Problems observed [PPJ06]<br />

Data in analysis tasks are <strong>of</strong>ten missing,<br />

(partially) duplicated, partially wrong, partially<br />

(mis)corrected, <strong>and</strong>/or biased. Therefore, nobody<br />

can entirely rely on them.<br />

Data are provided with wrong formats, wrong or<br />

mixed granularity, are isolated or are given only<br />

by partially integrated data massives.<br />

Data massives are partially dense <strong>and</strong> huge at the<br />

same when mainly sparse data are used. This imbalance<br />

results in strange behaviour <strong>of</strong> algorithms.<br />

Data massives are <strong>of</strong>ten unrelated to each other,<br />

not annotated, <strong>and</strong> have missing (geo & time) references.<br />

Data are <strong>of</strong> varying granularity <strong>and</strong> <strong>of</strong> various levels<br />

<strong>of</strong> detail. Micro-, meso- <strong>and</strong> macro-data are<br />

related to each other with an explicit association<br />

schema.<br />

Data sets have their own hidden dependencies<br />

among dimensions <strong>of</strong> the data. Additionally turbulences<br />

<strong>and</strong> non-linear dependencies within the<br />

data are observed.<br />

Their h<strong>and</strong>ling <strong>and</strong> resolution<br />

Classical extrapolation, cleansing, control techniques developed<br />

for analysis, h<strong>and</strong>ling <strong>of</strong> complex functions <strong>and</strong> statistics can be<br />

applied if properties <strong>of</strong> data are known. Data identification techniques<br />

resolve redundancy <strong>of</strong> data.<br />

Data modelling provides solutions for migration <strong>of</strong> legacy data<br />

into new data massives, for integration <strong>of</strong> data from heterogeneous<br />

resources, for extraction <strong>of</strong> data <strong>of</strong> interest by views <strong>and</strong><br />

for abstractions <strong>of</strong> data.<br />

Modern database modelling provides a number <strong>of</strong> techniques for<br />

extrapolation <strong>of</strong> data <strong>and</strong> for abstraction <strong>of</strong> data to other data sets.<br />

At the same time web information systems technology provides<br />

techniques for gardening <strong>of</strong> data.<br />

Metadata injection, data modelling techniques <strong>and</strong> database integration<br />

techniques resolve these problems <strong>and</strong> provide additional<br />

information for new analysis tasks.<br />

Integrated model suites with explicit association schemata<br />

among the different levels <strong>of</strong> detail <strong>and</strong> corresponding metadata<br />

for translation <strong>of</strong> data <strong>and</strong> semantics allow consistent h<strong>and</strong>ling<br />

<strong>of</strong> data <strong>of</strong> various levels <strong>of</strong> detail.<br />

Data abstraction techniques support reduction to essential substructures<br />

<strong>and</strong> abstraction from substructures that are dependent<br />

from the main structures. Synergetics allows to separate dimensions<br />

into control <strong>and</strong> order dimensions.


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 534<br />

5.2.6 Quality Data for Data Mining <strong>and</strong> <strong>Analysis</strong><br />

Data quality is an old issue for business information systems. Typical requirements <strong>of</strong> business applications result in<br />

the following list for data quality:<br />

• The data is accurate.<br />

• The data is stored according to data types.<br />

• The data has integrity.<br />

• The data is consistent.<br />

• The databases are well designed.<br />

• The data is not redundant.<br />

• The data follows business rules.<br />

• The data corresponds to established domains.<br />

• The data is timely<br />

• The data is well understood.<br />

• The data is integrated.<br />

• The data satisfies the needs <strong>of</strong> the business.<br />

• The user is satisfied with the quality <strong>of</strong> the data <strong>and</strong> the information derived from that data.<br />

• The data is complete.<br />

• There are no duplicate records.<br />

• There are no data anomalies.<br />

This list is also applicable to data mining <strong>and</strong> analysis. We need tools for data cleansing, data integration, data<br />

accreditation, <strong>and</strong> generic data input that maintains or improves quality <strong>of</strong> data.<br />

5.2.7 Benefits <strong>of</strong> Good Data Management<br />

Data management policies <strong>and</strong> procedures ensure that data on all media are treated as a valued resource. Implementing<br />

such policies <strong>and</strong> procedures will give many benefits:<br />

Benefits to Data Suppliers<br />

• An increased confidence <strong>and</strong> trust that their data will be used according to their agreed conditions <strong>of</strong> use,<br />

without risk to confidentiality, copyright or IPR, <strong>and</strong> in compliance with all statutory <strong>and</strong> non-statutory<br />

obligations.<br />

• Providing a clear underst<strong>and</strong>ing <strong>of</strong> the use <strong>of</strong> their data, formally documented in a Memor<strong>and</strong>um <strong>of</strong><br />

Agreement signed by both supplier <strong>and</strong> user.<br />

• A fair return for the use <strong>of</strong> the data they have supplied.<br />

Benefits to Data Brokers/Intermediaries<br />

• Better quality, harmonized <strong>and</strong> coherent data from the use <strong>of</strong> common definitions, including geographic<br />

references, formats, validation processes <strong>and</strong> st<strong>and</strong>ard procedures.<br />

• Better care <strong>of</strong> the data holdings through the use <strong>of</strong> effective data policies <strong>and</strong> best practice guidance.<br />

• Better control over the data by the clear definition <strong>and</strong> use <strong>of</strong> the procedures for the care <strong>of</strong> data.<br />

• Improved knowledge <strong>and</strong> underst<strong>and</strong>ing <strong>of</strong> data holdings, their availability, interpretation <strong>and</strong> use, with<br />

subsequent reduction <strong>of</strong> the risk <strong>of</strong> duplication or loss, through better cataloguing, metadata <strong>and</strong>, in time,<br />

better access to data via an integrated data environment.<br />

• Improved business processes, including better <strong>and</strong> more efficient use <strong>and</strong> re-use <strong>of</strong> data, <strong>and</strong> the st<strong>and</strong>ardization<br />

<strong>of</strong> datasets that are frequently used by different parts <strong>of</strong> an organization.


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 535<br />

• Increased confidence that the organization complies with statutory <strong>and</strong> non-statutory obligations, by the<br />

regular use <strong>of</strong> centrally coordinated, frequently updated guidance, codes <strong>of</strong> practice <strong>and</strong> training on legal,<br />

contractual <strong>and</strong> other obligations.<br />

• Better control over access to data, both for internal <strong>and</strong> bona fide external customers, resulting from<br />

better data organization <strong>and</strong> maintenance following defined policies on release, disclosure control <strong>and</strong><br />

data security.<br />

• More sensible <strong>and</strong> consistent data charges <strong>and</strong> conditions <strong>of</strong> use, resulting from clear pricing <strong>and</strong> dissemination<br />

policies that recognize the need for free access by appropriate customers whilst recovering the<br />

appropriate income from customers who seek to make commercial gain.<br />

• An increasing confidence by the customer in the quality <strong>of</strong> the data managed <strong>and</strong> in the reliability <strong>of</strong><br />

outputs that are produced.<br />

Benefits to users <strong>and</strong> customers<br />

• Improved awareness <strong>and</strong> underst<strong>and</strong>ing <strong>of</strong> what data are available for current <strong>and</strong> future use, resulting<br />

from better cataloguing <strong>and</strong> data archiving.<br />

• Improved access to data, free from unnecessary obstacles, safeguarded from disclosure <strong>of</strong> personal information<br />

or infringement <strong>of</strong> legal <strong>and</strong> contractual obligations.<br />

• Better quality <strong>and</strong> more timely information i.e. access to the right information at the right time, resulting<br />

from quicker identification <strong>of</strong> customer needs <strong>and</strong> the avoidance <strong>of</strong> wrong or conflicting information,<br />

through the use <strong>of</strong> effective metadata.<br />

• Better value for money, resulting from clear, fair <strong>and</strong> consistent data charges <strong>and</strong> conditions <strong>of</strong> use, which<br />

recognize the need for free access by the appropriate customers.<br />

• Better exploitation <strong>of</strong> data generally, enabled by easier data exchange <strong>and</strong> integration with other harmonized<br />

data.<br />

• Efficiency gains across government <strong>and</strong> its agencies resulting from the use <strong>of</strong> better quality data.


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 536<br />

5.3 Principles <strong>and</strong> Guidelines <strong>of</strong> <strong>Information</strong> Management<br />

<strong>Information</strong> management is an umbrella term that encompasses all the systems <strong>and</strong> processes within an organisation<br />

for the creation <strong>and</strong> use <strong>of</strong> corporate information.<br />

In terms <strong>of</strong> technology, information management encompasses systems such as:<br />

• web content management (CM),<br />

• document management (DM),<br />

• records management (RM),<br />

• digital asset management (DAM),<br />

• learning management systems (LM),<br />

• learning content management systems (LCM),<br />

• collaboration,<br />

• enterprise search,<br />

• <strong>and</strong> many more ...<br />

<strong>Information</strong> management is, however, much more than just technology. Equally importantly, it is about the business<br />

processes <strong>and</strong> practices that underpin the creation <strong>and</strong> use <strong>of</strong> information.<br />

It is also about the information itself, including the structure <strong>of</strong> information (‘information architecture’), metadata,<br />

content quality, <strong>and</strong> more.<br />

<strong>Information</strong> management therefore encompasses:<br />

• people,<br />

• process,<br />

• technology, <strong>and</strong><br />

• content.<br />

Each <strong>of</strong> these must be addressed if information management projects are to succeed.<br />

<strong>Information</strong> Management Challenges<br />

Organisations are confronted with many information management problems <strong>and</strong> issues. In many ways, the growth <strong>of</strong><br />

electronic information (rather than paper) has only worsened these issues over the last decade or two.<br />

Common information management problems include:<br />

• Large number <strong>of</strong> disparate information management systems.<br />

• Little integration or coordination between information systems.<br />

• Range <strong>of</strong> legacy systems requiring upgrading or replacement.<br />

• Direct competition between information management systems.<br />

• No clear strategic direction for the overall technology environment.<br />

• Limited <strong>and</strong> patchy adoption <strong>of</strong> existing information systems by staff.<br />

• Poor quality <strong>of</strong> information, including lack <strong>of</strong> consistency, duplication, <strong>and</strong> out-<strong>of</strong>-date information.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 537<br />

• Little recognition <strong>and</strong> support <strong>of</strong> information management by senior management.<br />

• Limited resources for deploying, managing or improving information systems.<br />

• Lack <strong>of</strong> enterprise-wide definitions for information types <strong>and</strong> values (no corporate-wide taxonomy).<br />

• Large number <strong>of</strong> diverse business needs <strong>and</strong> issues to be addressed.<br />

• Lack <strong>of</strong> clarity around broader organisational strategies <strong>and</strong> directions.<br />

• Difficulties in changing working practices <strong>and</strong> processes <strong>of</strong> staff.<br />

• Internal politics impacting on the ability to coordinate activities enterprise-wide.<br />

Towards Principles <strong>of</strong> <strong>Information</strong> Management<br />

The information management principles 3 provide simple statements that support staff in making strategic, tactical<br />

<strong>and</strong> operational decisions.<br />

5.3.1 Eight Principles <strong>of</strong> <strong>Information</strong> Management<br />

Principle 1: Ensure the information we collect meets business needs <strong>and</strong> priorities.<br />

<strong>Information</strong> management only collects information that has a clear purpose. Given our finite resources we will prioritise<br />

investment in information to areas that best support the projects’s strategic directions <strong>and</strong> key operational requirements.<br />

Principle 2: Minimise the cost <strong>and</strong> burden <strong>of</strong> information capture.<br />

<strong>Information</strong> management reduces the cost <strong>of</strong> collection <strong>and</strong> the burden on clients <strong>and</strong> providers by capturing information<br />

once <strong>and</strong> once only, using the best available tools <strong>and</strong> technologies.<br />

Principle 3: Get the best value from information.<br />

<strong>Information</strong> management enhances the value <strong>of</strong> its investment in information by sharing information, making it<br />

accessible, using it productively <strong>and</strong> managing it efficiently.<br />

Principle 4: Produce quality information.<br />

The cluster’s information is <strong>of</strong> a quality which makes it fit for purpose. This encompasses issues <strong>of</strong>: relevance,<br />

completeness, accuracy, timeliness <strong>and</strong> accessibility.<br />

Principle 5: Provide information integration.<br />

<strong>Information</strong> is typically kept in a distributed form based on different formats, abstraction, granularity, quality <strong>and</strong><br />

maintenance. <strong>Information</strong> architectures, application <strong>of</strong> abstractions, common access <strong>and</strong> usage orientation are means<br />

for providing a holistic view on the information massive.<br />

Principle 6: Protect <strong>and</strong> preserve information.<br />

<strong>Information</strong> is managed with due care <strong>and</strong> diligence throughout the information life cycle to ensure that it is protected<br />

<strong>and</strong> preserved in accordance with legislative <strong>and</strong> policy requirements, such as the <strong>Information</strong> Privacy Act <strong>and</strong><br />

Victorian Electronic Records Strategy.<br />

3 The definition provided by the Encyclopedia Britannica [SYea03] defines four different usages <strong>of</strong> the term ‘principle’. The first underst<strong>and</strong>ing<br />

defines a principle to be (1) either a comprehensive <strong>and</strong> fundamental law, doctrine, or assumption (2) or a rule (3) or a code <strong>of</strong> conduct.<br />

Synonyms are axiom, fundamental, law, principium, <strong>and</strong> theorem. Related words are basis, foundation, ground; canon, precept, rule; convention,<br />

form, usage.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 538<br />

Principle 7: Enable good practices - Competencies<br />

<strong>Information</strong> management staff members have the necessary skills, knowledge <strong>and</strong> experience to perform their information<br />

management responsibilities.<br />

Principle 8: Enable good practices - Governance.<br />

Clear accountabilities, controls <strong>and</strong> coordinating mechanisms are in place <strong>and</strong> observed to ensure that information is<br />

managed efficiently <strong>and</strong> effectively.<br />

Applying the principles across the information life cycle<br />

The importance <strong>of</strong> each principle varies with the stage <strong>of</strong> the life cycle. For example, relevance is critical to determining<br />

information requirements. Once this is done, the design <strong>and</strong> capture <strong>of</strong> information is strongly guided by<br />

the principle <strong>of</strong> minimising cost <strong>and</strong> burden. Effective distribution <strong>and</strong> use <strong>of</strong> information are how we get the best<br />

value from our information. An awareness <strong>of</strong> quality issues is particularly important during design <strong>and</strong> capture, while<br />

safeguards need to be in place to control access to <strong>and</strong> use <strong>of</strong> information.<br />

Stages Determine <strong>Design</strong> <strong>and</strong> Distribute Use Retain <strong>and</strong><br />

<strong>of</strong> the life cycle requirements capture dispose<br />

Relevance ⋆ ⋆ ⋆ ⋆ ⋆ ⋆<br />

Cost/burden ⋆ ⋆ ⋆ ⋆ ⋆ ⋆<br />

Value ⋆ ⋆ ⋆ ⋆ ⋆ ⋆<br />

Quality ⋆ ⋆ ⋆ ⋆ ⋆ ⋆ ⋆ ⋆<br />

Integration ⋆ ⋆ ⋆ ⋆ ⋆ ⋆ ⋆ ⋆<br />

Protection ⋆ ⋆ ⋆ ⋆ ⋆ ⋆ ⋆ ⋆ ⋆ ⋆ ⋆<br />

Competencies ⋆ ⋆ ⋆ ⋆ ⋆ ⋆ ⋆ ⋆ ⋆ ⋆<br />

Governance ⋆ ⋆ ⋆ ⋆ ⋆ ⋆ ⋆ ⋆<br />

Relationship between principle <strong>and</strong> lifecycle stage: Critical (⋆ ⋆ ⋆ ), High (⋆ ⋆), moderate (⋆).<br />

5.3.2 Ten Resulting Guidelines <strong>of</strong> <strong>Information</strong> Management<br />

We introduce ten key guidelines to ensure that information management activities are effective <strong>and</strong> successful:<br />

1. recognise (<strong>and</strong> manage) complexity;<br />

2. focus on adoption;<br />

3. deliver tangible & visible benefits;<br />

4. prioritise according to business needs;<br />

5. take a journey <strong>of</strong> a thous<strong>and</strong> steps;<br />

6. provide strong leadership;<br />

7. mitigate risks;<br />

8. communicate extensively;<br />

9. aim to deliver a seamless user experience;<br />

10. choose the first project very carefully.<br />

Implementing information technology solutions in a complex <strong>and</strong> ever-changing organisational environment is never<br />

easy. The challenges inherent in information management projects mean that new approaches need to be taken, if<br />

they are to succeed.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 539<br />

Guideline 1: Recognise (<strong>and</strong> manage) complexity.<br />

Organisations are very complex environments in which to deliver concrete solutions. There are many challenges that<br />

need to be overcome when planning <strong>and</strong> implementing information management projects.<br />

When confronted with this complexity, project teams <strong>of</strong>ten fall back upon approaches such as:<br />

• Focusing on deploying just one technology in isolation.<br />

• Purchasing a very large suite <strong>of</strong> applications from a single vendor, in the hope that this can be used to solve all<br />

information management problems at once.<br />

• Rolling out rigid, st<strong>and</strong>ardised solutions across a whole organisation, even though individual business areas<br />

may have different needs.<br />

• Forcing the use <strong>of</strong> a single technology system in all cases, regardless <strong>of</strong> whether it is an appropriate solution.<br />

• Purchasing a product ‘for life’, even though business requirements will change over time.<br />

• Fully centralising information management activities, to ensure that every activity is tightly controlled.<br />

All <strong>of</strong> these approaches will fail, as they are attempting to convert a complex set <strong>of</strong> needs <strong>and</strong> problems into simple<br />

(even simplistic) solutions. The hope is that the complexity can be limited or avoided when planning <strong>and</strong> deploying<br />

solutions.<br />

In practice, however, there is no way <strong>of</strong> avoiding the inherent complexities within organisations. New approaches<br />

to information management must therefore be found that recognise (<strong>and</strong> manage) this complexity.<br />

Organisations are <strong>of</strong>ten looking for simple approaches <strong>and</strong> sometime believe vendors when they <strong>of</strong>fer ‘silver<br />

bullet’ technology solutions. Instead, successful information management is underpinned by strong leadership that<br />

defines a clear direction. Many small activities should then be planned to address in parallel the many needs <strong>and</strong><br />

issues. Risks must then be identified <strong>and</strong> mitigated throughout the information system deployment, to ensure that<br />

organisational complexities do not prevent the delivery <strong>of</strong> effective solutions.<br />

Guideline 2: Focus on adoption.<br />

<strong>Information</strong> management systems are only successful if they are actually used by staff, <strong>and</strong> it is not sufficient to<br />

simply focus on installing the s<strong>of</strong>tware centrally. In practice, most information management systems need the active<br />

participation <strong>of</strong> staff throughout the organisation. For example:<br />

• Staff must save all key files into the document/records management system.<br />

• Decentralised authors must use the content management system to regularly update the intranet.<br />

• Lecturers must use the learning content management system to deliver e-learning packages to their students.<br />

• Front-line staff must capture call details in the customer relationship management system.<br />

In all these cases, the challenge is to gain sufficient adoption to ensure that required information is captured in the<br />

system. Without a critical mass <strong>of</strong> usage, corporate repositories will not contain enough information to be useful. This<br />

presents a considerable change management challenge for information management projects. In practice, it means that<br />

projects must be carefully designed from the outset to ensure that sufficient adoption is gained. This may include:<br />

• Identifying the ‘what’s in it for me’ factors for end users <strong>of</strong> the system.<br />

• Communicating clearly to all staff the purpose <strong>and</strong> benefits <strong>of</strong> the IS project.<br />

• Carefully targeting initial projects to build momentum for the project.<br />

• Conducting extensive change management <strong>and</strong> cultural change activities throughout the project.<br />

• Ensuring that the systems that are deployed are useful <strong>and</strong> usable for staff.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 540<br />

Guideline 3: Deliver tangible & visible benefits.<br />

It is not enough to simply improve the management <strong>of</strong> information ‘behind the scenes’. While this will deliver real<br />

benefits, it will not drive the required cultural changes, or assist with gaining adoption by IS staff. In many cases,<br />

information management projects initially focus on improving the productivity <strong>of</strong> publishers or information managers.<br />

While these are valuable IS projects, they are invisible to the rest <strong>of</strong> the organisation. When challenged, it can be hard<br />

to demonstrate the return on investment <strong>of</strong> these projects, <strong>and</strong> they do little to assist project teams to gain further<br />

funding.<br />

Instead, information management projects must always be designed so that they deliver tangible <strong>and</strong> visible<br />

benefits. Delivering tangible benefits involves identifying concrete business needs that must be met. This allows<br />

meaningful measurement <strong>of</strong> the impact <strong>of</strong> the projects on the operation <strong>of</strong> the organisation. The projects should also<br />

target issues or needs that are very visible within the organisation. When solutions are delivered, the improvement<br />

should be obvious, <strong>and</strong> widely promoted throughout the organisation.<br />

For example, improving the information available to call centre staff can have a very visible <strong>and</strong> tangible impact<br />

on customer service. In contrast, creating a st<strong>and</strong>ard taxonomy for classifying information across systems is hard to<br />

quantify <strong>and</strong> rarely visible to general staff. This is not to say that ‘behind the scenes’ improvements are not required,<br />

but rather that they should always be partnered with changes that deliver more visible benefits. This also has a major<br />

impact on the choice <strong>of</strong> the initial activities conducted.<br />

Guideline 4: Prioritise according to business needs.<br />

It can be difficult to know where to start when planning information management projects. While some organisations<br />

attempt to prioritise projects according to the ‘simplicity’ <strong>of</strong> the technology to be deployed, this is not a meaningful<br />

approach. In particular, this <strong>of</strong>ten doesn’t deliver short-term benefits that are tangible <strong>and</strong> visible. Instead <strong>of</strong> this<br />

technology-driven approach, the planning process should be turned around entirely, to drive projects based on their<br />

ability to address business needs.<br />

In this way, information management projects are targeted at the most urgent business needs or issues. These in<br />

turn are derived from the overall business strategy <strong>and</strong> direction for the organisation as a whole. For example, the rate<br />

<strong>of</strong> errors in home loan applications might be identified as a strategic issue for the organisation. A new system might<br />

therefore be put in place (along with other activities) to better manage the information that supports the processing <strong>of</strong><br />

these applications. Alternatively, a new call centre might be in the process <strong>of</strong> being planned. <strong>Information</strong> management<br />

activities can be put in place to support the establishment <strong>of</strong> the new call centre, <strong>and</strong> the training <strong>of</strong> new staff.<br />

Guideline 5: Avoid ‘silver bullet’ solutions that promise to fix everything; Take a journey <strong>of</strong> a thous<strong>and</strong> steps.<br />

There is no single application or project that will address <strong>and</strong> resolve all the information management problems <strong>of</strong> an<br />

organisation. Where organisations look for such solutions, large <strong>and</strong> costly strategic plans are developed. Assuming<br />

the results <strong>of</strong> this strategic planning are actually delivered (which they <strong>of</strong>ten aren’t), they usually describe a longterm<br />

vision but give few clear directions for immediate actions. In practice, anyone looking to design the complete<br />

information management solution will be trapped by ‘analysis paralysis’: the inability to escape the planning process.<br />

Organisations are simply too complex to consider all the factors when developing strategies or planning activities.<br />

The answer is to let go <strong>of</strong> the desire for a perfectly planned approach. Instead, project teams should take a ‘journey<br />

<strong>of</strong> a thous<strong>and</strong> steps’. This approach recognises that there are hundreds (or thous<strong>and</strong>s) <strong>of</strong> <strong>of</strong>ten small changes that<br />

are needed to improve the information management practices across an organisation. These changes will <strong>of</strong>ten be<br />

implemented in parallel. While some <strong>of</strong> these changes are organisation-wide, most are actually implemented at business<br />

unit (or even team) level. When added up over time, these numerous small changes have a major impact on the<br />

organisation.<br />

This is a very different approach to that typically taken in organisations, <strong>and</strong> it replaces a single large (centralised)<br />

project with many individual initiatives conducted by multiple teams. While this can be challenging to coordinate <strong>and</strong><br />

manage, this ‘thous<strong>and</strong> steps’ approach recognises the inherent complexity <strong>of</strong> organisations <strong>and</strong> is a very effective<br />

way <strong>of</strong> mitigating risks. It also ensures that ‘quick wins’ can be delivered early on, <strong>and</strong> allows solutions to be targeted<br />

to individual business needs).<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 541<br />

Guideline 6: Successful projects require strong leadership.<br />

Successful information management is about organisational <strong>and</strong> cultural change, <strong>and</strong> this can only be achieved<br />

through strong leadership. The starting point is to create a clear vision <strong>of</strong> the desired outcomes <strong>of</strong> the information<br />

management strategy. This will describe how the organisation will operate, more than just describing how the<br />

information systems themselves will work.<br />

Effort must then be put into generating a sufficient sense <strong>of</strong> urgency to drive the deployment <strong>and</strong> adoption <strong>of</strong> new<br />

systems <strong>and</strong> processes. Stakeholders must also be engaged <strong>and</strong> involved in the project, to ensure that there is support<br />

at all levels in the organisation.<br />

This focus on leadership then underpins a range <strong>of</strong> communications activities that ensure that the organisation<br />

has a clear underst<strong>and</strong>ing <strong>of</strong> the projects <strong>and</strong> the benefits they will deliver. When projects are solely driven by the<br />

acquisition <strong>and</strong> deployment <strong>of</strong> new technology solutions, this leadership is <strong>of</strong>ten lacking. Without the engagement<br />

<strong>and</strong> support <strong>of</strong> key stakeholder outside the IT area, these projects <strong>of</strong>ten have little impact.<br />

Guideline 7: Apply good risk management to ensure success.<br />

Due to the inherent complexity <strong>of</strong> the environment within organisations, there are many risks in implementing information<br />

management solutions. These risks include:<br />

• selecting an inappropriate technology solution,<br />

• time <strong>and</strong> budget overruns,<br />

• changing business requirements,<br />

• technical issues, particularly relating to integrating systems, <strong>and</strong><br />

• failure to gain adoption by staff.<br />

At the outset <strong>of</strong> planning an information management strategy, the risks should be clearly identified. An approach<br />

must then be identified for each risk, either avoiding or mitigating the risk. Risk management approaches should then<br />

be used to plan all aspects <strong>of</strong> the project, including the activities conducted <strong>and</strong> the budget spent. For example, a<br />

simple but effective way <strong>of</strong> mitigating risks is to spend less money. This might involve conducting pilot projects to<br />

identifying issues <strong>and</strong> potential solutions, rather than starting with enterprise-wide deployments.<br />

Guideline 8: Communicate extensively.<br />

Extensive communication from the project team (<strong>and</strong> project sponsors) is critical for a successful information management<br />

initiative. This communication ensures that staff have a clear underst<strong>and</strong>ing <strong>of</strong> the project, <strong>and</strong> the benefits it<br />

will deliver. This is a pre-requisite for achieving the required level <strong>of</strong> adoption.<br />

With many projects happening simultaneously, coordination becomes paramount. All project teams should devote<br />

time to work closely with each other, to ensure that activities <strong>and</strong> outcomes are aligned. In a complex environment, it<br />

is not possible to enforce a strict comm<strong>and</strong>-<strong>and</strong>-control approach to management. Instead, a clear end point (‘vision’)<br />

must be created for the information management project, <strong>and</strong> communicated widely. This allows each project team<br />

to align themselves to the eventual goal, <strong>and</strong> to make informed decisions about the best approaches.<br />

For all these reasons, the first step in an information management project should be to develop a clear communications<br />

‘message’. This should then be supported by a communications plan that describes target audiences, <strong>and</strong><br />

methods <strong>of</strong> communication. Project teams should also consider establishing a ‘project site’ on the intranet as the<br />

outset, to provide a location for planning documents, news releases, <strong>and</strong> other updates.<br />

Guideline 9: Staff do not underst<strong>and</strong> the distinction between systems; Therefore aim to deliver a seamless user<br />

experience.<br />

Users don’t underst<strong>and</strong> systems. When presented with six different information systems, each containing one-sixth<br />

<strong>of</strong> what they want, they generally rely on a piece <strong>of</strong> paper instead (or ask the person next to them). Educating staff in<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 542<br />

the purpose <strong>and</strong> use <strong>of</strong> a disparate set <strong>of</strong> information systems is difficult, <strong>and</strong> generally fruitless. The underlying goal<br />

should therefore be to deliver a seamless user experience, one that hides the systems that the information is coming<br />

from.<br />

There will always be a need to have multiple information systems, but the information contained within them<br />

should be presented in a human-friendly way. In practice, this means:<br />

• Delivering a single intranet (or equivalent) that gives access to all information <strong>and</strong> tools.<br />

• Ensuring a consistent look-<strong>and</strong>-feel across all applications, including st<strong>and</strong>ard navigation <strong>and</strong> page layouts.<br />

• Providing ‘single sign-on’ to all applications.<br />

Ultimately, it also means breaking down the distinctions between applications, <strong>and</strong> delivering tools <strong>and</strong> information<br />

along task <strong>and</strong> subject lines. For example, many organisations store HR procedures on the intranet, but require staff<br />

to log a separate ‘HR self-service’ application that provides a completely different menu structure <strong>and</strong> appearance.<br />

Improving on this, leave details should be located alongside the leave form itself. In this model, the HR application<br />

becomes a background system, invisible to the user.<br />

Care should also be taken, however, when looking to a silver-bullet solution for providing a seamless user experience.<br />

Despite the promises, portal applications do not automatically deliver this. Instead, a better approach may be<br />

to leverage the inherent benefits <strong>of</strong> the web platform. As long as the applications all look the same, the user will be<br />

unaware that they are accessing multiple systems <strong>and</strong> servers behind the scenes. Of course, achieving a truly seamless<br />

user experience is not a short-term goal. Plan to incrementally move towards this goal, delivering one improvement<br />

at a time.<br />

Guideline 10: The first project must build momentum for further work; Therefore choose the first project very<br />

carefully.<br />

The choice <strong>of</strong> the first project conducted as part <strong>of</strong> a broader information management strategy is critical. This project<br />

must be selected carefully, to ensure that it:<br />

• demonstrates the value <strong>of</strong> the information management strategy,<br />

• builds momentum for future activities,<br />

• generates interest <strong>and</strong> enthusiasm from both end-users <strong>and</strong> stakeholders,<br />

• delivers tangible <strong>and</strong> visible benefits,<br />

• addresses an important or urgent business need,<br />

• can be clearly communicated to staff <strong>and</strong> stakeholders, <strong>and</strong><br />

• assists the project team in gaining further resources <strong>and</strong> support.<br />

Actions speak louder than words. The first project is the single best (<strong>and</strong> perhaps only) opportunity to set the organisation<br />

on the right path towards better information management practices <strong>and</strong> technologies. The first project must<br />

therefore be chosen according to its ability to act as a ‘catalyst’ for further organisational <strong>and</strong> cultural changes. In<br />

practice, this <strong>of</strong>ten involves starting with one problem or one area <strong>of</strong> the business that the organisation as a whole<br />

would be interested in, <strong>and</strong> cares about. For example, starting by restructuring the corporate policies <strong>and</strong> procedures<br />

will generate little interest or enthusiasm. In contrast, delivering a system that greatly assists salespeople in the field<br />

would be something that could be widely promoted throughout the organisation.<br />

5.3.3 Goals <strong>and</strong> the Rationale <strong>of</strong> <strong>Information</strong> Management<br />

Rationale 1: Corporate importance<br />

<strong>Information</strong> is a strategic resource, <strong>and</strong> will be managed appropriately. In general, cluster-wide information will be<br />

centrally managed. <strong>Information</strong> needs <strong>and</strong> how information is managed should be identified as an integral part <strong>of</strong><br />

strategic <strong>and</strong> project planning. A governance framework ensures that this occurs.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 543<br />

Rationale 2: <strong>Information</strong> sources<br />

Cluster-created information may be made available from a core source or a derived source. The core source for any<br />

item <strong>of</strong> cluster-created information must be identifiable <strong>and</strong> accessible. Any derived sources <strong>of</strong> information must<br />

be identified as such. In general, changes should only be made to the core source. Each core source should have<br />

an identified custodian, an identified access community <strong>and</strong> an identified set <strong>of</strong> maintenance responsibilities. Where<br />

possible, different manifestations <strong>of</strong> information expressions should be derived from a single source. As with core<br />

<strong>and</strong> derived sources, changes should ideally be made to this single source <strong>and</strong> the derived manifestations should be<br />

automatically regenerated.<br />

Rationale 3: User-centredness<br />

<strong>Information</strong> systems <strong>and</strong> services should be designed (or re-designed) to operate in a way that is user-centred <strong>and</strong><br />

task-centred. This should inform all aspects <strong>of</strong> system or service design.<br />

Rationale 4: Availability<br />

<strong>Information</strong> should ideally be accessible (subject to security <strong>and</strong> acceptable use guidelines) to<br />

(1) anybody who needs it, (2) at anytime, (3) anywhere, (4) <strong>and</strong> anyhow<br />

in order to ensure that it delivers the greatest value to the users <strong>of</strong> data.<br />

Rationale 5: <strong>Information</strong> user community development<br />

The research cluster needs to provide an adequate, relevant <strong>and</strong> ongoing development programme to enable all team<br />

members to create, access, manage <strong>and</strong> disseminate information resources effectively.<br />

Rationale 6: Productivity <strong>and</strong> efficiency<br />

<strong>Information</strong>, <strong>and</strong> the way it is managed, should contribute to the productivity <strong>of</strong> members <strong>of</strong> the the research cluster<br />

community.<br />

Rationale 7: Statutory requirements<br />

<strong>Information</strong> must be managed in accordance with external statutory <strong>and</strong> regulatory requirements. <strong>Information</strong> must<br />

be stored in such a way as to allow a timely response to freedom <strong>of</strong> information <strong>and</strong> local requests, as well as legallym<strong>and</strong>ated<br />

controlled discovery. For instance, information arising from research involving human subjects must be<br />

dealt with in accordance with the Human Ethics Committee requirements.<br />

Rationale 8: Trustworthy information <strong>and</strong> systems<br />

<strong>Information</strong> provided by the research cluster should be, <strong>and</strong> be perceived to be, trustworthy (that is, relevant, accurate<br />

<strong>and</strong> timely) to the maximum extent possible. Where the information is sourced from outside the research cluster (as<br />

with, for example, library holdings), all reasonable care should be taken to ensure its trustworthiness. Any activity that<br />

creates, modifies or transmits critical research cluster information should be trustworthy. This means that it should<br />

be:<br />

• logged (to ensure an audit trail)<br />

• non-repudiable (to ensure that the creator/changer can not later deny their action, <strong>and</strong> that there is pro<strong>of</strong> that<br />

the action took place).<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 544<br />

Rationale 9: Retention <strong>and</strong> disposal<br />

Essential information must be retained while required <strong>and</strong> then appropriately disposed <strong>of</strong> in accordance with the<br />

research cluster st<strong>and</strong>ards <strong>and</strong> external obligations. A proportion <strong>of</strong> all information will be retained in the research<br />

cluster archives, constituting the cluster’s captured corporate memory. While it is retained, it must be managed in<br />

such a way as to be recoverable in the event <strong>of</strong> loss on a timescale consistent with university requirements.<br />

Rationale 10: <strong>Information</strong> <strong>and</strong> technology<br />

ICT Principles are derived from information management principles. ICT supports <strong>and</strong> enable the implementation <strong>of</strong><br />

the the principles, as well as determine the deployment <strong>of</strong> ICT systems <strong>and</strong> services.<br />

5.3.4 Resulting Criteria for <strong>Information</strong> Management Derived from Principles<br />

Commitment <strong>and</strong> leadership: <strong>Information</strong> is a strategic asset <strong>and</strong> information management must be a key component<br />

<strong>of</strong> every environmental data <strong>and</strong> information program. This ethic must be reflected in a corporate culture,<br />

embraced throughout the organization, that recognizes data as a corporate resource.<br />

Stewardship: People who take observations or produce data <strong>and</strong> information are stewards <strong>of</strong> these data, not owners.<br />

These data must be collected, produced, documented, transmitted <strong>and</strong> maintained with the accuracy, timeliness<br />

<strong>and</strong> reliability needed to meet the needs <strong>of</strong> all users.<br />

Long-term preservation: Irreplaceable observations, data products <strong>of</strong> lasting value, <strong>and</strong> associated metadata must<br />

be preserved. This information must be well-documented <strong>and</strong> maintained so that it is available to <strong>and</strong> independently<br />

underst<strong>and</strong>able by users, now <strong>and</strong> in the future.<br />

Requirements-driven: It is essential that providers <strong>and</strong> users <strong>of</strong> data <strong>and</strong> products play an active role in defining the<br />

constantly evolving requirements that drive the development <strong>and</strong> evolution <strong>of</strong> data management systems.<br />

Discovery <strong>and</strong> access: Freedom <strong>of</strong> access, mechanisms that facilitate discovery, timely delivery, use <strong>and</strong> interpretation<br />

<strong>of</strong> data <strong>and</strong> products (directories, browse capabilities, metadata, mapping, visualization, etc.) are essential,<br />

recognizing relevant policies <strong>and</strong> regulations.<br />

St<strong>and</strong>ards <strong>and</strong> practices: Appropriate use <strong>of</strong> information technologies, widely shared st<strong>and</strong>ards, <strong>and</strong> integration<br />

approaches are vital to facilitate collection, management, discovery, dissemination, <strong>and</strong> access services for<br />

environmental data <strong>and</strong> products. This will ensure interoperability among providers, systems, <strong>and</strong> users. Effective<br />

application <strong>of</strong> st<strong>and</strong>ards <strong>and</strong> best practices contribute to the development <strong>of</strong> systems that are interoperable,<br />

efficient, reliable, scalable, <strong>and</strong> adaptable.<br />

Quality: Data, products <strong>and</strong> information should be <strong>of</strong> quality sufficient to meet the requirements <strong>of</strong> society <strong>and</strong> to<br />

support sound decision making.<br />

Cooperation <strong>and</strong> coordination: Environmental <strong>and</strong> scientific data management is a task <strong>of</strong> global scope – a whole<br />

that should be much bigger than the sum <strong>of</strong> its parts. It is only by participating in a global community <strong>of</strong><br />

integrated data management that each organization can realize the potential <strong>of</strong> its data to the betterment <strong>of</strong><br />

humankind.<br />

Security: Data, information, <strong>and</strong> products must be preserved <strong>and</strong> protected from unintended or malicious modification,<br />

unauthorized use, or inadvertent disclosure.<br />

5.3.5 Towards Holistic Tactics for <strong>Information</strong> Management<br />

We conclude that common information management problems must be resolved for information mangement:<br />

• Large number <strong>of</strong> disparate information management systems.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 545<br />

• Little integration or coordination between information systems.<br />

• Range <strong>of</strong> legacy systems requiring upgrading or replacement.<br />

• Direct competition between information management systems.<br />

• No clear strategic direction for the overall technology environment.<br />

• Limited <strong>and</strong> patchy adoption <strong>of</strong> existing information systems by staff.<br />

• Poor quality <strong>of</strong> information, including lack <strong>of</strong> consistency, duplication, <strong>and</strong> out-<strong>of</strong>-date information.<br />

• Little recognition <strong>and</strong> support <strong>of</strong> information management by senior management.<br />

• Limited resources for deploying, managing or improving information systems.<br />

• Lack <strong>of</strong> enterprise-wide definitions for information types <strong>and</strong> values (no corporate-wide taxonomy).<br />

• Large number <strong>of</strong> diverse business needs <strong>and</strong> issues to be addressed.<br />

• Lack <strong>of</strong> clarity around broader organisational strategies <strong>and</strong> directions.<br />

• Difficulties in changing working practices <strong>and</strong> processes <strong>of</strong> staff.<br />

• Internal politics impacting on the ability to coordinate activities enterprise-wide.<br />

Tactics Concern 1: Recognise (<strong>and</strong> Manage) Complexity<br />

<strong>Information</strong> management issues can be overwhelming. Application might inherently complex. Often applications have<br />

been developed while not avoiding typical pitfalls: project team members focus on one technology in isolation;<br />

purchasing a universal solution from one vendor without knowledge <strong>of</strong> the limitations; rolling out a rigid <strong>and</strong> somehow<br />

st<strong>and</strong>ardising solution without consideration <strong>of</strong> the needs <strong>of</strong> individuals; being trapping due to the focus on a<br />

single technology without knowledge whether this is appropriate; purchasing a product for life without explicit plans<br />

for changes; using fully centralising information management while assuming the centralisation support full control.<br />

Tactics Concern 2: Focus on Adoption<br />

<strong>Information</strong> systems need an active partnership by those who are going to use the system. Adoption means to consider<br />

the entire context <strong>of</strong> the application. Individuals use the data for different purposes in different application cases in<br />

different environments in different time in different format <strong>and</strong> with different responsibilities <strong>and</strong> roles.<br />

<strong>Systems</strong> must become useful <strong>and</strong> usable by the staff at any point <strong>of</strong> time. Therefore, we need flexible playout<br />

facilities in the sense <strong>of</strong> [HM03b]. Adoption must also be explicit. <strong>Information</strong> systems are only successful if they are<br />

used. They must however satisfy concrete business needs. <strong>Information</strong> management projects must always be designed<br />

so that they deliver tangible <strong>and</strong> visible benefits.<br />

Tactics Concern 3: Deliver Tangible <strong>and</strong> Visible Benefits<br />

It is not enough to deliver ‘behind the scenes’ fixes. <strong>Information</strong> management first starts with satisfaction <strong>of</strong> information<br />

dem<strong>and</strong>s issued by the managers. The information management is invisible to the rest <strong>of</strong> the enterprise. It results<br />

in unclear return <strong>of</strong> investment.<br />

Tactics Concern 4: Prioritise According to Business Needs<br />

The most urgent business needs first must be tackled first. Often, the simplest <strong>and</strong> easiest supported by technology<br />

tasks are tackled first since they deliver direct success stories, e.g., during agile development. Instead <strong>of</strong> this<br />

technology-driven approach, information management projects are targeted at the most urgent business needs or<br />

issues. These in turn are derived from the overall business strategy <strong>and</strong> direction for the organisation as a whole.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 546<br />

Tactics Concern 5: Chicken Little Approaches take a Journey <strong>of</strong> Thous<strong>and</strong> Steps<br />

Anything in the worlds has its price. <strong>Information</strong> management must avoid ‘silver bullet’ solutions that promise to fix<br />

everything. Universal worlds formulas does not exist; the same is valid for universal information systems solutions.<br />

Complete information management solution will be trapped by ‘analysis paralysis’: the‘inability to escape the planning<br />

process. Instead it is better to develop information management based on hundreds (or thous<strong>and</strong>s) <strong>of</strong> <strong>of</strong>ten small<br />

changes that are needed to improve the information management practices across an enterprise.<br />

Tactics Concern 6: Provide Strong Leadership<br />

Successful projects require strong leadership since information systems are social-technological systems. They thus<br />

change organisations <strong>and</strong> cultures. The starting point is to create a clear vision <strong>of</strong> the desired outcomes <strong>of</strong> the information<br />

management strategy. This will describe how the organisation will operate, more than just describing how the<br />

information systems themselves will work.<br />

Tactics Concern 7: Mitigate Risks<br />

Good risk management ensures better success. Since difficulties are also caused by information technology, by time<br />

<strong>and</strong> budget issues, by changing business requirements, by tiny technical issues <strong>and</strong> by failure to gain adoption by the<br />

staff, an explicit risk management strategy <strong>and</strong> tactics must be developed. Risk management approaches should then<br />

be used to plan all aspects <strong>of</strong> the project, including the activities conducted <strong>and</strong> the budget spent.<br />

Tactics Concern 8: Communicate Extensively<br />

One reason for the initial success <strong>of</strong> agile s<strong>of</strong>tware development approaches is the intensive communication with<br />

the potential customer <strong>and</strong> community <strong>of</strong> practice. Intensive communication ensures that individuals <strong>and</strong> potential<br />

users have a clear underst<strong>and</strong>ing <strong>of</strong> the project, <strong>and</strong> the benefits it will deliver. This is a pre-requisite for achieving<br />

the required level <strong>of</strong> adoption. Nowadays, the strict comm<strong>and</strong>-<strong>and</strong>-control approach to management is not accepted<br />

anymore.<br />

Tactics Concern 9: Aim to Deliver a Seamless User Experience<br />

Business users do not want to entirely underst<strong>and</strong> the distinction between different potential systems. They do not<br />

want either to go through whole-week tutorials. Educating individuals in an enterprise in the purpose <strong>and</strong> use <strong>of</strong> a<br />

disparate set <strong>of</strong> information systems is difficult, <strong>and</strong> generally fruitless. Instead, we need to deliver a seamless <strong>and</strong><br />

transparent user experience, one that hides the systems that the information is coming from.<br />

Tactics Concern 10: Choose the First <strong>Information</strong> Management Sub-Project Very Carefully<br />

The first sub-project must build momentum for further work <strong>and</strong> is thus critical. It demonstrates the value <strong>of</strong> the<br />

information management, builds a momentum for future activities, generates interest <strong>and</strong> enthusiasm within the community<br />

<strong>of</strong> practice, delivers tangible <strong>and</strong> visible benefits, addresses an important or urgent business need , can be<br />

clearly communicated to the community <strong>of</strong> practice, <strong>and</strong> assists the project team in gaining further resources <strong>and</strong> support.<br />

The first project must therefore be chosen according to its ability to act as a ‘catalyst’ for further sub-projects.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 547<br />

5.4 Principles <strong>and</strong> Guidelines for Data Management<br />

5.4.1 Ten Principles <strong>of</strong> Data Management<br />

Principle 1: Data is an Asset<br />

Data is a core business asset that has value to a scientific research team or enterprise data owner in general (data set<br />

user group, DUG) <strong>and</strong> is managed accordingly.<br />

Rationale:<br />

Data is a valuable corporate resource; it has real, measurable value. This is especially so in the case <strong>of</strong> multi-million<br />

Euro contracts under PPP <strong>and</strong> PFI frameworks for running infrastructure services. In simple terms, the purpose <strong>of</strong><br />

data is to aid decision-making. Accurate, timely data is critical to accurate, timely decisions. Most corporate assets<br />

are carefully managed, <strong>and</strong> as up to 80% <strong>of</strong> an organisation’s value rests in its data assets, data can be no exception.<br />

Data is the foundation <strong>of</strong> our decision-making, so we must also carefully manage data to ensure that we know what<br />

we’ve got, where it is, can rely upon its accuracy, <strong>and</strong> can obtain it when <strong>and</strong> where we need it.<br />

Implications:<br />

This is one <strong>of</strong> three closely-related principles regarding data: data is an asset; data is shared; <strong>and</strong> data is easily accessible.<br />

The implication is that there is an education task to ensure that all departments within scientific research team or<br />

enterprise data owner in general underst<strong>and</strong> the relationship between value <strong>of</strong> data, sharing <strong>of</strong> data, <strong>and</strong> accessibility<br />

to data.<br />

Data used in DUG must be classified into high-level groupings to which final accountability for quality can be assigned.<br />

If any employee has responsibility for upkeep <strong>of</strong> data in any form, this must be clearly stated in their job description<br />

<strong>and</strong> identified as a measure in their Performance Review process. In practice this will apply to all <strong>of</strong>fice-based employees<br />

to varying degrees.<br />

All employees with any kind <strong>of</strong> data responsibility must have the authority <strong>and</strong> means to manage the data for which<br />

they are accountable.<br />

Procedures must be developed <strong>and</strong> used to prevent <strong>and</strong> correct errors in information <strong>and</strong> to improve those processes<br />

that produce flawed information. Data quality will need to be measured <strong>and</strong> steps taken to improve data quality - it is<br />

probable that policy <strong>and</strong> procedures will need to be developed for this as well.<br />

A forum with comprehensive enterprise-wide representation should decide on process changes suggested by data<br />

stewards (or role with similar term implying custodianship or trusteeship).<br />

Since data is an asset <strong>of</strong> value to the entire enterprise, data stewards accountable for creation, quality <strong>and</strong> retention/disposal<br />

<strong>of</strong> data must be assigned at a suitably senior level.<br />

Principle 2: Data is Shared<br />

Users have access to the data necessary to perform their duties; therefore data is shared across enterprise functions<br />

<strong>and</strong> departments.<br />

Rationale:<br />

Timely access to accurate data is essential to improving the quality <strong>and</strong> efficiency <strong>of</strong> enterprise decision-making. It is<br />

less costly to maintain timely, accurate data in a single application, <strong>and</strong> then share it, than it is to maintain duplicative<br />

data in multiple applications. DUG holds a wealth <strong>of</strong> data, but it is stored in hundreds <strong>of</strong> incompatible stovepipe<br />

databases <strong>and</strong> file-servers. The speed <strong>of</strong> data collection, creation, transfer, <strong>and</strong> assimilation is driven by the ability <strong>of</strong><br />

the departments to efficiently share these isl<strong>and</strong>s <strong>of</strong> data across DUG.<br />

Shared data will result in improved decisions since we will rely on fewer sources <strong>of</strong> more accurate <strong>and</strong> timely managed<br />

data for all <strong>of</strong> our decision-making. Electronically shared data will result in increased efficiency when existing<br />

data entities can be re-used.<br />

Additionally, barriers to the outside world must come down too. We work with more <strong>and</strong> more external business<br />

partners, <strong>and</strong> efficient sharing <strong>of</strong> information assets is essential for this to work. It is more effective to de-protect.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 548<br />

Legacy departmental culture tends to be over-protectionist. In fact, all the evidence is that more value can be derived<br />

from sharing more.<br />

Implications:<br />

This is one <strong>of</strong> three closely-related principles regarding data: data is an asset; data is shared; <strong>and</strong> data is easily accessible.<br />

The implication is that there is an education task to ensure that all departments within DUG underst<strong>and</strong> the<br />

relationship between value <strong>of</strong> data, sharing <strong>of</strong> data, <strong>and</strong> accessibility to data.<br />

To enable data sharing we must develop <strong>and</strong> abide by a common set <strong>of</strong> policies, procedures, <strong>and</strong> st<strong>and</strong>ards governing<br />

data management <strong>and</strong> access for both the short <strong>and</strong> the long term.<br />

For the short term, to preserve our significant investment in legacy systems, we may have to invest in s<strong>of</strong>tware capable<br />

<strong>of</strong> migrating legacy system data into a shared data environment.<br />

We will also need to develop st<strong>and</strong>ard data models, data elements, <strong>and</strong> other metadata that defines this shared environment<br />

<strong>and</strong> develop a repository system for storing this metadata to make it accessible.<br />

For the long term, as legacy systems are replaced, we must adopt <strong>and</strong> enforce common data access policies <strong>and</strong><br />

guidelines for new application developers to ensure that data in new applications remains available to the shared<br />

environment <strong>and</strong> that data in the shared environment can continue to be used by the new applications.<br />

For both the short term <strong>and</strong> the long term we must adopt common methods <strong>and</strong> tools for creating, maintaining, <strong>and</strong><br />

accessing the data shared across DUG.<br />

Data sharing will require a significant cultural change.<br />

This principle <strong>of</strong> data sharing will continually “bump up against” the principle <strong>of</strong> data security. Under no circumstances<br />

will the data sharing principle cause confidential data to be compromised. Data made available for sharing will<br />

have to be relied upon by all users to execute their respective tasks. This will ensure that only the most accurate <strong>and</strong><br />

timely data is relied upon for decision-making. Shared data will become a DUG-wide “virtual single source” <strong>of</strong> data.<br />

Principle 3: Data is Accessible<br />

Data is accessible for users to perform their functions.<br />

Rationale:<br />

Wide access to data leads to efficiency <strong>and</strong> effectiveness in decision-making, <strong>and</strong> affords timely response to information<br />

requests <strong>and</strong> service delivery. Using information must be considered from an enterprise perspective to allow<br />

access by a wide variety <strong>of</strong> users. Staff time is saved <strong>and</strong> consistency <strong>of</strong> data is improved.<br />

Implications:<br />

This is one <strong>of</strong> three closely-related principles regarding data: data is an asset; data is shared; <strong>and</strong> data is easily accessible.<br />

The implication is that there is an education task to ensure that all departments within DUG underst<strong>and</strong> the<br />

relationship between value <strong>of</strong> data, sharing <strong>of</strong> data, <strong>and</strong> accessibility to data.<br />

Accessibility involves the ease with which users obtain information.<br />

The way information is accessed <strong>and</strong> displayed must be sufficiently adaptable to meet a wide range <strong>of</strong> enterprise users<br />

<strong>and</strong> their corresponding methods <strong>of</strong> access.<br />

Access to data does not constitute underst<strong>and</strong>ing <strong>of</strong> the data. Personnel should take caution not to misinterpret information.<br />

Principle 4: Data Quality is Fit for Purpose<br />

Data quality is acceptable <strong>and</strong> meets the business need for which it is intended.<br />

Rationale:<br />

Data produced <strong>and</strong> reported must be fit for purpose. That is, <strong>of</strong> sufficient accuracy <strong>and</strong> integrity proportional to its<br />

use <strong>and</strong> cost <strong>of</strong> collection <strong>and</strong> maintenance.<br />

Data is used in all areas <strong>of</strong> decision-making, operations, planning <strong>and</strong> performance management in order that DUG<br />

achieves its objectives. It is increasingly being used externally by citizens <strong>and</strong> customers to inform their personal<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 549<br />

decisions, <strong>and</strong> by stakeholders to assess the aggregate performance <strong>of</strong> DUG. This reinforces the need to ensure that<br />

the quality <strong>of</strong> data held is sufficient to meet diverse needs.<br />

Significant human <strong>and</strong> system resource is consumed in the collection, manipulation <strong>and</strong> dissemination <strong>of</strong> data whether<br />

<strong>of</strong> high quality or not, so it is essential that the most effective use <strong>of</strong> public funds is achieved through appropriately<br />

directed attention to data quality <strong>and</strong> the procedures to realise quality.<br />

Implications:<br />

Data should be sufficiently accurate for its intended purpose, representing clearly <strong>and</strong> in sufficient detail the activity<br />

which it represents.<br />

Disciplines <strong>and</strong> st<strong>and</strong>ards will need to be put in place <strong>and</strong> monitored so that accuracy <strong>and</strong> integrity <strong>of</strong> data is assured.<br />

Collection <strong>and</strong> manipulation <strong>of</strong> data should be reliable <strong>and</strong> should reflect consistent processes where needed between<br />

departments, to allow for meaningful comparison where appropriate.<br />

Data collected should be complete <strong>and</strong> captured once ‘right first time’ such that it can be aggregated, analysed <strong>and</strong><br />

manipulated for decision making purposes.<br />

Data should be timely, so that its usefulness for decision making can be maximised.<br />

Principle 5: Data is Compliant with Law <strong>and</strong> Regulations<br />

DUG’s information management processes comply with all relevant laws, policies, <strong>and</strong> regulations.<br />

Rationale:<br />

There are a number <strong>of</strong> legal requirements that govern the use <strong>of</strong> data in the course <strong>of</strong> DUG business. As a public<br />

authority with a clear ethical imperative <strong>and</strong> world class reputation to maintain, compliance is an essential business<br />

driver.<br />

Implications:<br />

DUG must be mindful to comply with laws, regulations, <strong>and</strong> external policies regarding the collection, retention, <strong>and</strong><br />

management <strong>of</strong> data.<br />

Education <strong>and</strong> access to the rules, efficiency, need, <strong>and</strong> common sense are not the only drivers. Changes in the law<br />

<strong>and</strong> changes in regulations may drive changes in our processes or applications.<br />

Principle 6: Data is Secure<br />

Data is trustworthy <strong>and</strong> is safeguarded from unauthorized access, whether malicious, fraudulent or erroneous.<br />

Rationale:<br />

Open sharing <strong>of</strong> information <strong>and</strong> the release <strong>of</strong> information via relevant legislation must be balanced against the need<br />

to restrict the availability <strong>of</strong> classified, proprietary, <strong>and</strong> sensitive information.<br />

Existing laws <strong>and</strong> regulations require the safeguarding <strong>of</strong> national security <strong>and</strong> the privacy <strong>of</strong> data, while permitting<br />

free <strong>and</strong> open access. Pre-decisional (work-in-progress, not yet authorized for release) information must be protected<br />

to avoid unwarranted speculation, misinterpretation, <strong>and</strong> inappropriate use. Integrity, confidentiality <strong>and</strong> availability<br />

are maintained as long as information is needed.<br />

Implications:<br />

DUG’s technology infrastructure should move towards a single directory-based system that provides authentication<br />

services to each <strong>and</strong> every application, database, file-server <strong>and</strong> collaboration environment. Each <strong>of</strong> the latter should<br />

then manage access control appropriate to the business needs <strong>of</strong> each user identity.<br />

Data security safeguards can be put in place to restrict access to “view only”, “know only <strong>of</strong> its existence” or “not<br />

know <strong>of</strong> existence”. Sensitivity labelling for information access will be based on uncustomised government-st<strong>and</strong>ard<br />

‘Protect’ flag <strong>and</strong> protective marking schemes.<br />

Security must be designed into data elements from the beginning; it cannot be added later. <strong>Systems</strong>, data, <strong>and</strong> technologies<br />

must be protected from unauthorized access <strong>and</strong> manipulation. <strong>Information</strong> must be safeguarded against<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 550<br />

inadvertent or unauthorized alteration, sabotage, disaster, or disclosure.<br />

Principle 7: There is a Common Vocabulary <strong>and</strong> Data Definition<br />

Data is defined consistently throughout DUG, <strong>and</strong> the definitions are underst<strong>and</strong>able <strong>and</strong> available to all users.<br />

Rationale:<br />

Both unstructured <strong>and</strong> structured data must have a common definition throughout DUG to enable sharing <strong>of</strong> data. A<br />

common vocabulary will facilitate communications, enable dialogue to be effective <strong>and</strong> facilitate interoperability <strong>of</strong><br />

systems.<br />

Implications:<br />

DUG must establish a common vocabulary for the business. The definitions will be used uniformly throughout DUG.<br />

Whenever a new data definition is required, the definition effort will be co-ordinated <strong>and</strong> reconciled with the corporate<br />

“glossary” <strong>of</strong> data descriptions. The DUG Group IM Data Authority will govern this co-ordination.<br />

Ambiguities resulting from multiple parochial definitions <strong>of</strong> data must at worst be mapped as ‘non-preferred terms’<br />

to a ‘preferred term’, <strong>and</strong> at best give way to accepted enterprise-wide definitions <strong>and</strong> underst<strong>and</strong>ing.<br />

Multiple data st<strong>and</strong>ardization initiatives need to be co-ordinated.<br />

Functional data administration responsibilities must be assigned.<br />

Principle 8: Data is Not Duplicated<br />

<strong>Development</strong> <strong>of</strong> information services (such as business applications, data warehouses, directory services etc) available<br />

across DUG is preferred over the development <strong>of</strong> information silos which are only provided to a particular department<br />

or group <strong>of</strong> departments.<br />

Rationale:<br />

Duplicative capability is expensive <strong>and</strong> propagates conflicting data. It also militates against a policy <strong>of</strong> sustainability<br />

in the use <strong>of</strong> infrastructure resources such as servers <strong>and</strong> data centre air conditioning.<br />

Implications:<br />

Departments will not be allowed to develop capabilities for their own use which are similar/duplicative <strong>of</strong> enterprisewide<br />

capabilities. In this way, expenditures <strong>of</strong> scarce resources to develop essentially the same capability in marginally<br />

different ways will be reduced.<br />

Departments which depend on a capability which does not serve the entire enterprise must change over to the replacement<br />

enterprise-wide capability as soon as practically possible, if it is available. The design <strong>of</strong> business service<br />

capabilities to replace silo applications will be driven directly by the business processes they are designed to support.<br />

Principle 9: Data Management is Everybody’s Business<br />

All departments in DUG participate in information management decisions needed to accomplish business objectives.<br />

Rationale:<br />

<strong>Information</strong> users are the key stakeholders in the application <strong>of</strong> technology to address a business need. In order to<br />

ensure information management is aligned with the business, all departments in DUG must be involved in all aspects<br />

<strong>of</strong> the information environment. The business experts from across DUG <strong>and</strong> the technical staff responsible for developing<br />

<strong>and</strong> sustaining the information environment need to come together as a team to jointly define the goals <strong>and</strong><br />

objectives <strong>of</strong> IT.<br />

Implications:<br />

To operate as a team, every stakeholder will need to accept responsibility for developing the information environment.<br />

Commitment <strong>of</strong> resources in business departments will be required to implement this principle.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 551<br />

Principle 10: Decisions Maximise the Benefit <strong>of</strong> Data to DUG<br />

A spirit <strong>and</strong> culture <strong>of</strong> collaboration <strong>and</strong> the sharing <strong>of</strong> data, information <strong>and</strong> knowledge for the greater corporate<br />

good shall pervade all decision-making, especially relating to the selection <strong>and</strong> prioritisation <strong>of</strong> programmes, projects<br />

<strong>and</strong> their approval points.<br />

Rationale:<br />

This principle embodies “service above self”. Decisions made from an enterprise-wide perspective have greater longterm<br />

value than decisions made from any particular departmental perspective. Maximum return on investment requires<br />

information management decisions to adhere to enterprise-wide drivers <strong>and</strong> priorities. No minority group will detract<br />

from the benefit <strong>of</strong> the whole. However, this principle will not preclude any minority group from getting its job done.<br />

Implications:<br />

Achieving maximum enterprise-wide benefit will require changes in the way we plan <strong>and</strong> manage information. Technology<br />

alone will not bring about this change.<br />

Some departments may have to concede their own preferences for the greater benefit <strong>of</strong> the entire enterprise.<br />

Application development priorities should be established by the entire enterprise for the entire enterprise.<br />

Application components should be shared across departmental boundaries.<br />

As needs arise, priorities must be adjusted. A forum with comprehensive enterprise representation should make these<br />

decisions.<br />

5.4.2 Goals <strong>and</strong> the Rationale <strong>of</strong> Data Management<br />

5.4.3 Resulting Steps for Practical Data Management Derived from Principles <strong>and</strong> Tactics<br />

There is a need for coordinated data management <strong>of</strong> observational data sets from the large scientific experiments <strong>and</strong><br />

data collected within user groups (DUGs). The broader modelling community will use coordinated ground, atmospheric,<br />

oceanic <strong>and</strong> satellite measurements <strong>of</strong> the type taken during these experiments to test such formulations as<br />

prognostic cloud schemes <strong>and</strong> the representativeness <strong>of</strong> related interactions being implemented in their global models.<br />

This process can be made much more efficient if these data sets are gathered into a uniform database easily accessible<br />

by the various modelling centers represented across the DUGs. A DUG must be established to investigate the<br />

research plans <strong>of</strong> the DUGs to determine the strategies being developed for gathering the different observational data<br />

sets, including those generated during their intensive observation periods, into coordinated databases. The intent <strong>of</strong><br />

data management is to leverage s<strong>of</strong>tware <strong>and</strong> related resources by encouraging st<strong>and</strong>ardization (compatibility) <strong>of</strong> the<br />

DUG data system hardware <strong>and</strong> s<strong>of</strong>tware schemes, to highlight opportunities for collaborative efforts in assembling<br />

data sets (e.g., global), <strong>and</strong> to foster co-operation <strong>and</strong> scientific outreach between DUGs by facilitating the exchange<br />

<strong>of</strong> data.<br />

To achieve the objectives <strong>of</strong> GHP, careful attention has to be placed on data management. Many aspects need to<br />

be considered, as outlined below in regards to “groundwork” considerations for the coordination <strong>of</strong> data management<br />

issues among the various data-intensive explorations.<br />

(1) Develop Data Management Plan<br />

A data management plan should be drafted for each project that defines various aspects <strong>of</strong> the data policy, so that<br />

project researchers, the scientific community, <strong>and</strong> involved data centers are aware <strong>of</strong> procedures <strong>and</strong> technical aspects<br />

<strong>of</strong> the database. The database may contain value added data sets pertinent to the project <strong>and</strong> it is important to define<br />

these in advance, since many might be generated in real-time or require specialized products. The plan should also<br />

contain the specific information as described below. A data manager should be identified early in this process to<br />

coordinate all these data management issues.<br />

TIMELINE - 3 months prior to data gathering start to publish data management plan.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 552<br />

(2) Data Types<br />

All data types whether they be operational, research (or experimental), <strong>and</strong> interdisciplinary should be inventoried <strong>and</strong><br />

defined. This can be done in the form <strong>of</strong> a survey sent out to the data sources, data centers, <strong>and</strong> Principal Investigators<br />

(PIs). Also all data sources should be identified <strong>and</strong> any arrangements required to obtain the data made (e.g. International<br />

or Interagency agreements). Considerations regarding whether episodic or longer term data are required will<br />

impact these arrangements (particularly if cost is a factor). Historical or climatological data may be needed to define<br />

scientific objectives early on in the planning process. However, these data should also be included in the database.<br />

TIMELINE - Begin working 6 to 8 months prior to start <strong>of</strong> data gathering.<br />

(3) Data Formats <strong>and</strong> Volumes<br />

This information should be obtained at the time <strong>of</strong> the survey or inventory <strong>of</strong> data types. Issues to consider are the<br />

investigator’s needs (i.e. resolution, frequency) <strong>and</strong> requirements for data storage (volume <strong>of</strong> each data set) . Some<br />

data sets may be required to be converted from native format depending upon the use or analysis tools to be used.<br />

This conversion might be easiest done in real-time as data are received. In any event, conversion s<strong>of</strong>tware must be<br />

obtained or written <strong>and</strong> data formats in the final archive must be compatible <strong>and</strong> easy to use by the researcher. All<br />

this information should be obtained at the time <strong>of</strong> the survey.<br />

TIMELINE - Begin working 6-8 months prior to start <strong>of</strong> data gathering.<br />

(4) Data Collection<br />

Data collection should commence at least 2 weeks prior to experiment start to allow enough time to ensure proper<br />

data ingest <strong>and</strong> archive procedures. If the data are required for real-time decision making, any visualization s<strong>of</strong>tware<br />

should also be checked at this time. Metadata (or information about the data) MUST accompany the data. Metadata<br />

should contain information regarding instrumentation, calibration, site location, exposure, etc. Experience shows this<br />

information is extremely difficult to obtain especially after the fact, <strong>and</strong> is critical for determining the validity during<br />

any in-field intercomparisons or quality assurance process.<br />

TIMELINE - At least 2 weeks prior to start <strong>of</strong> data gathering.<br />

(5) Real-time Data Requirements<br />

This issue is usually addressed in the experiment design or operations plan documents. Real-time data needs are<br />

usually determined from operational requirements or the need to perform calibrations <strong>and</strong> intercomparisons in the<br />

field. It is strongly recommended to perform calibrations <strong>and</strong> intercomparisons to verify instrument performance <strong>and</strong><br />

identify problems early before the entire data set may be bad. All this information can be archived in an on-line<br />

real-time catalog or st<strong>and</strong>ard report form documentation.<br />

TIMELINE - During field operations (preparation for these data discussed in previous items).<br />

(6) Data Quality Control<br />

This is an issue that requires the most attention <strong>and</strong> will assure a credible database in the final archive. Generally it<br />

should be the PI’s responsibility to perform the Quality Control (QC) on their own data since they are most knowledgeable<br />

regarding the data, instrumentation, <strong>and</strong> calibrations. In the case <strong>of</strong> operational data, the preparation <strong>of</strong><br />

“composite” data sets combining data from various networks <strong>and</strong>/or instruments will show any bias from a spatial<br />

<strong>and</strong> temporal analysis. The utilization <strong>and</strong> development <strong>of</strong> analysis tools (including s<strong>of</strong>tware exchange) will increase<br />

the efficiency <strong>of</strong> quality control. In any case, all quality control changes to the data set (i.e. flagging or estimation)<br />

must be thoroughly documented. Changing actual data is not recommended unless fully documented.<br />

TIMELINE - variable, but generally QC should be completed 6 to 12 months following the field deployment.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 553<br />

(7) Data Archival<br />

The biggest archival decision is determining a centralized vs. a de-centralized data base. The advantage <strong>of</strong> a centralized<br />

database is all data are located in one location <strong>and</strong> access is usually better coordinated <strong>and</strong> quicker. The<br />

disadvantage is usually large storage is required <strong>and</strong> in many cases data sets will be duplicated from another data<br />

center. With the increase in Internet access, electronic links are making de-centralized databases more practical.<br />

Consideration should be provided to coordinate with other data centers that might archive complementary data sets<br />

(particularly when pertinent co-located measurements are made through another program). Another issue is what<br />

data to keep on-line vs. <strong>of</strong>f-line. Generally the smaller data sets (i.e. in-situ) conform better to on-line retrieval <strong>and</strong><br />

larger data sets such as satellite <strong>and</strong> radar are stored on tapes. Again, the amount <strong>of</strong> data kept on-line depends on<br />

the data volume,amount <strong>of</strong> available storage, project requirements/priorities <strong>and</strong> available staff to process more data<br />

sets. Finally, the concept <strong>of</strong> data integration should be considered when scientific objectives require the merger <strong>and</strong><br />

“overlaying” <strong>of</strong> various data sets or creation <strong>of</strong> special data “composites”. This becomes a far more complex issue because<br />

additional planning must provide for spatial <strong>and</strong> temporal observations must be compatible. Also, st<strong>and</strong>ardized<br />

formats must be implemented. Special data products are usually the benefit <strong>of</strong> an integrated database.<br />

TIMELINE - 6 to 12 months depending when data sets are available.<br />

(8) Data Distribution<br />

The large barrel theory (<strong>and</strong> black hole corollary) states that “It is a lot easier to archive data than to disseminate<br />

it”! Many issues must be considered. First, the policy <strong>of</strong> restricted vs. open data access is dependent on logistics<br />

such as funding, staff support, agreements between PIs, quality <strong>of</strong> the data (preliminary versus final) <strong>and</strong> varying<br />

policies <strong>of</strong> numerous data centers in the case <strong>of</strong> a de-centralized database. In some cases this will be determined<br />

on a data set by data set basis. In any event, ease <strong>of</strong> data access must be strongly encouraged. The data should be<br />

disseminated with all available metadata <strong>and</strong> inventories. In some cases the distribution <strong>of</strong> “browse” products such<br />

as radar reflectivity composites, makes data selection <strong>and</strong> case study identification easier particularly for voluminous<br />

data sets. The production <strong>and</strong> distribution <strong>of</strong> customized data requests must be seriously considered due to the typical<br />

large impact on staff time <strong>and</strong> computer resources.<br />

TIMELINE - 6 to 12 months depending when data sets are available.<br />

(9) Coordination with Other Programs<br />

This issue is usually associated with a de-centralized database or collaboration among projects with compatible<br />

scientific objectives such as the research project cluster we analysed. The consideration <strong>of</strong> data <strong>and</strong> analysis tool<br />

exchange implies good coordination <strong>and</strong> interoperability between data centers. In the case <strong>of</strong> collaborative research<br />

the issue <strong>of</strong> st<strong>and</strong>ardized data formats becomes more critical. The benefit <strong>of</strong> such coordination is the efficient cost<br />

shared resources <strong>of</strong> database development in this age <strong>of</strong> budget shortfalls.<br />

5.4.4 Principles <strong>of</strong> Good Data Management<br />

Good data management is essential for the effective use <strong>of</strong> the information resources <strong>of</strong> public bodies in all their<br />

forms. Section 2, above, identified a range <strong>of</strong> key data management activities; these are discussed below.<br />

Avoid re-collecting data.<br />

The largest potential for waste in Data Management is reacquiring an existing dataset. This has been done frequently<br />

by public <strong>and</strong> private sector organizations <strong>and</strong> must be avoided. In the USA, Executive Order 1290612<br />

requires government agencies to put internal procedures in place to ensure that they check whether other agencies<br />

have already collected information they plan to acquire. Whereas no equivalent instruction exists in countries such as<br />

the UK, it should be regarded as best practice to use the gigateway13 Data Locator to search for existing geospatial<br />

datasets before new ones are created.<br />

Data lifecycle control.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 554<br />

Good Data Management requires that the whole life cycle <strong>of</strong> datasets be managed carefully. This includes:<br />

• Business justification, to ensure that thought has been given to why new data are required rather than existing<br />

data amended or used in new ways, how data can be specified for maximum use including the potential to meet<br />

other possible requirements, <strong>and</strong> why the costs <strong>of</strong> h<strong>and</strong>ling, storing <strong>and</strong> maintaining these data are acceptable<br />

<strong>and</strong> recoverable.<br />

• Data specification <strong>and</strong> modelling, processing, database maintenance <strong>and</strong> security, to ensure that data will be fit<br />

for purpose <strong>and</strong> held securely in their own databases.<br />

• Ongoing data audit, to monitor the use <strong>and</strong> continued effectiveness <strong>of</strong> the data.<br />

• Archiving <strong>and</strong> final destruction, to ensure that data are archived <strong>and</strong> maintained effectively until they are no<br />

longer needed or are uneconomical to retain.<br />

Data policy.<br />

The fundamental step for any organization wishing to implement good Data Management procedures is to define<br />

a Data Policy. The document may have different names in different public bodies but in each it should be a set <strong>of</strong><br />

broad, high-level principles that form the guiding framework within which Data Management can operate. This is the<br />

document that is approved at senior levels in the public body, <strong>and</strong> the senior executive who owns the policy (Data<br />

Management Champion) manages the resources for its implementation.<br />

Data ownership.<br />

One key aspect <strong>of</strong> good Data Management is the clear identification <strong>of</strong> the owner <strong>of</strong> the data. Normally this is the<br />

organization or group <strong>of</strong> organizations that originally commissioned the data acquisition or compilation <strong>and</strong> retains<br />

managerial <strong>and</strong> financial control <strong>of</strong> the data. The Data Owner has legal rights over the dataset, the IPR <strong>and</strong> the<br />

Copyright. Data ownership implies the right to exploit the data, <strong>and</strong> if continued maintenance becomes unnecessary or<br />

uneconomical, the right to destroy them, subject to the provisions <strong>of</strong> the Public Records <strong>and</strong> Freedom <strong>of</strong> <strong>Information</strong><br />

acts. Ownership can relate to a data item, a dataset or a value-added dataset. IPR can be owned at different levels.<br />

For example, a merged or value-added dataset can be owned by one organization, even though other organizations<br />

own the constituent data. If the legal ownership is unclear, there are risks that the data can be wrongly exploited, used<br />

without payment <strong>of</strong> royalty to the owner, neglected or lost. It is therefore important for Data Owners to take action to<br />

establish <strong>and</strong> document:<br />

• The ownership, IPR <strong>and</strong> Copyright <strong>of</strong> their data so that these can be safeguarded.<br />

• The statutory <strong>and</strong> non-statutory obligations relevant to their business to ensure that the data are compliant.<br />

• The departmental policies for data security, disclosure control, release, pricing <strong>and</strong> dissemination.<br />

• The agreement reached with users <strong>and</strong> customers on the conditions <strong>of</strong> use in a signed Memor<strong>and</strong>um <strong>of</strong> Agreement,<br />

before data are released.<br />

Metadata.<br />

All datasets must have appropriate metadata compiled for them. At the simplest level metadata are “data about<br />

data”. Metadata provide a summary <strong>of</strong> the characteristics <strong>of</strong> a dataset. A good metadata record enables the user <strong>of</strong> a<br />

dataset or other information resource to underst<strong>and</strong> the content <strong>of</strong> what they are reviewing, its potential value <strong>and</strong> its<br />

limitations. There are many metadata st<strong>and</strong>ards, but the ones that are most appropriate to GI are:<br />

• ISO 19115:200314 (Geographic <strong>Information</strong> – Metadata); <strong>and</strong><br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 555<br />

• UK GEMINI – (Geo-spatial Metadata Interoperability Initiative) The pr<strong>of</strong>ile is the result <strong>of</strong> a collaboration<br />

between the AGI15 <strong>and</strong> the e-Government Unit16. A pr<strong>of</strong>ile is a subset <strong>of</strong> one or several information st<strong>and</strong>ards<br />

that adopts elements, structures or rules for different user communities. Adherence to the UK GEMINI pr<strong>of</strong>ile,<br />

which will replace the gigateway Discovery Metadata Specifications (the NGDF St<strong>and</strong>ard) as the UK’s national<br />

geospatial metadata pr<strong>of</strong>ile, allows for the creation <strong>of</strong> discovery metadata with both ISO 19115 (Geographic<br />

<strong>Information</strong> – Metadata) <strong>and</strong> the national e-Government Metadata St<strong>and</strong>ard (eGMS), ensuring compliance with<br />

both.<br />

Comprehensive advice on the compilation <strong>of</strong> metadata can be found in the IGGI booklet entitled “The Principles <strong>of</strong><br />

Good Metadata Management17”, the second edition <strong>of</strong> which was published in May 2004.<br />

Meta-Data Support for Content Chunks.<br />

Meta-data must be meaningful: appropriateness adequateness<br />

David Marco: “Meta data is all physical data (contained in s<strong>of</strong>tware <strong>and</strong> other media) <strong>and</strong> knowledge (contained in employees <strong>and</strong><br />

various media) from inside <strong>and</strong> outside an organization, including information about the physical data, technical <strong>and</strong> business processes,<br />

rules <strong>and</strong> constraints <strong>of</strong> the data, <strong>and</strong> structures <strong>of</strong> the data used by a corporation.”<br />

Meta-data should be mature: time integrity<br />

e.g. for dynamic or active meta-data<br />

Meta-data should be manageable: Storage media <strong>and</strong> capacity, concurrent <strong>and</strong> secured access, ease <strong>of</strong> use<br />

Meta-data should be maintainable: manage <strong>and</strong> automate the processes, open interfaces, versioning, simple algorithm<br />

for deriving dynamic meta-data, maintenance<br />

Meta-data should be migrateable: share-ability, interoperability, portability<br />

Data Quality.<br />

Good Data Management also ensures that datasets are capable <strong>of</strong> meeting current needs successfully <strong>and</strong> are<br />

suitable for further exploitation. The ability to integrate data with other datasets is likely to add value, encourage<br />

ongoing use <strong>of</strong> the data <strong>and</strong> recover the costs <strong>of</strong> collecting the data. The creation, maintenance <strong>and</strong> development <strong>of</strong><br />

quality data require a clear <strong>and</strong> well-specified management regime.<br />

Data Steward.<br />

All datasets need to be managed by a named individual referred to here as the Data Steward; also known as dataset<br />

manager <strong>and</strong> data custodian. A Data Steward should be given formal responsibility for the stewardship <strong>of</strong> each major<br />

dataset. They should be accountable for the management <strong>and</strong> care <strong>of</strong> the data holdings assigned to them, in line with<br />

the defined data policy. Section 6 provides a list <strong>of</strong> the responsibilities <strong>of</strong> the Data Steward. Data Management<br />

Plan.<br />

The Data Steward is responsible for the development <strong>of</strong> a Data Management Plan for each dataset under their responsibility.<br />

The objective <strong>of</strong> the Data Management Plan is to ensure:<br />

• That the dataset is fit for the purpose for which it is required.<br />

• That the long-term management <strong>of</strong> the dataset is considered for potential re-use.<br />

The individual management plans should be compliant with the local data policy <strong>and</strong> include:<br />

• Scope <strong>of</strong> the plan<br />

• Link to metadata<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 556<br />

• Responsibilities<br />

• IPR <strong>and</strong> Copyright<br />

• Quality objectives<br />

• St<strong>and</strong>ards (International, National <strong>and</strong> local) adopted during compilation <strong>of</strong> the data<br />

• Staff resources required to manage the dataset<br />

• Physical resources required to manage the dataset<br />

• Long term management <strong>of</strong> the dataset<br />

Data Management procedures.<br />

Individual datasets may require compilation <strong>of</strong> specific Data Management procedures. These may be needed where<br />

specific datasets require detailed operational procedures to ensure their quality; examples <strong>of</strong> this include scientific<br />

<strong>and</strong> statistical datasets. Data access <strong>and</strong> dissemination.<br />

Although this aspect will depend upon the business <strong>and</strong> the financial policy <strong>of</strong> the organization, the following guidance<br />

should be followed.<br />

• Public access to data should be provided in line with The Freedom <strong>of</strong> <strong>Information</strong> Act, The Data Protection<br />

Act <strong>and</strong> The Human Rights Act.<br />

• IPR <strong>and</strong> Copyright <strong>of</strong> datasets owned by public bodies must be protected, as data should be regarded as an<br />

asset.<br />

• IPR <strong>and</strong> Copyright <strong>of</strong> third-party data must be respected.<br />

• The potential for commercial re-use <strong>and</strong> exploitation <strong>of</strong> the dataset should be considered.<br />

• The right to use or provide access to data can be passed to a third party, subject to agreed pricing <strong>and</strong> dissemination<br />

policies.<br />

• Consideration should be given to the impact <strong>of</strong> European developments such as the Public Sector <strong>Information</strong><br />

Directive <strong>and</strong> INSPIRE.<br />

Data audit.<br />

Data Management audits are recommended to ensure that the management environment for given datasets are<br />

being maintained. Their purpose is to provide assurance to the Data Management Champion that the resources expended<br />

are being used appropriately. Audits <strong>of</strong> major datasets should be commissioned to ascertain the level <strong>of</strong><br />

compliance with data policies <strong>and</strong> the Data Management plans <strong>and</strong> procedures that have been prepared.<br />

5.4.5 Establishing a Data Policy<br />

IGGI has prepared the following model Data Policy Statement, which Government departments/agencies may wish<br />

to use or adapt to meet their own Data Management needs.<br />

Data acquisition.<br />

• All projects <strong>and</strong> other activities that give rise to substantial datasets will establish at the outset whether suitable<br />

data already exist in a potentially usable form, or whether new data need to be acquired.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 557<br />

• Before projects are approved, they must establish how the data acquired will be exploited to the full, who will<br />

be responsible for full exploitation <strong>of</strong> the data, <strong>and</strong> how the benefits will be maximized <strong>and</strong> shared.<br />

• Subsequent data h<strong>and</strong>ling <strong>and</strong> storage needs will be considered, <strong>and</strong> plans put in place to ensure that databases<br />

are maintained in such a way that maximum use can subsequently be made <strong>of</strong> them.<br />

Data care – Stewardship.<br />

• Databases will be managed closely, with clear responsibility for stewardship established <strong>and</strong> individuals made<br />

accountable for ensuring Data Management procedures are followed.<br />

• Data will be held securely within their own database, <strong>and</strong> adequate provision made for their long-term care. All<br />

data will be validated <strong>and</strong> quality assured before being used or archived.<br />

• Easy access will be given to data holdings, both for staff <strong>and</strong> bona fide ‘customers’.<br />

• Data that are not legally required to be retained will not be destroyed or put at risk without first exploring<br />

all other possibilities <strong>and</strong> then demonstrating clearly that the costs <strong>of</strong> retaining them cannot be justified by<br />

potential benefits, or that the replacement cost is less than the storage costs.<br />

Data use <strong>and</strong> exchange.<br />

• Memor<strong>and</strong>a <strong>of</strong> Agreement will be drawn up with Users <strong>and</strong> Customers who receive data, with respect to the<br />

subsequent use <strong>of</strong> such data. These will include confidentiality declarations <strong>and</strong> conditions <strong>of</strong> use.<br />

• Intellectual Property Rights will be protected in relation to any development <strong>of</strong> information, by specifying<br />

formally any restrictions on the use <strong>of</strong> the data in formal licensing arrangements.<br />

• Adequate provision will be made for the widest possible public access to data <strong>and</strong> associated metadata.<br />

• Costs will be recovered for the h<strong>and</strong>ling <strong>of</strong> data <strong>and</strong> information, in line with departmental policies, which will<br />

be made readily available.<br />

• The appropriate return will be charged when data are passed on to other parties seeking to make commercial<br />

gain.<br />

Review.<br />

The Data Policy will be monitored regularly <strong>and</strong> will be modified in the light <strong>of</strong> developments (e.g. technology<br />

<strong>and</strong> legislation) <strong>and</strong> experience. <strong>Information</strong> h<strong>and</strong>ling practices will be audited so that duplication can be minimized.<br />

5.4.6 Resolving Problems by Master Data Management Strategies<br />

The first element <strong>of</strong> an information management strategy is the development <strong>of</strong> master data management. This approach<br />

allows to resolve a number <strong>of</strong> pitfalls <strong>and</strong> errors we have been observing in the research projects analysed.<br />

• One <strong>of</strong> the most common pitfalls I’ve seen is when research clusters try to identify <strong>and</strong> st<strong>and</strong>ardize all their<br />

master data elements in a single initiative. This “big bang” approach usually doesn’t work for any IT project,<br />

MDM initiatives included. It <strong>of</strong>ten simply causes confusion <strong>and</strong> makes master data problems seem intractable.<br />

Instead <strong>of</strong> trying to resolve all your master data issues at once, begin small with a pilot project on a single master<br />

data element. I recommend beginning with the “customer” master data element. This is the most pervasive data<br />

element in many companies, <strong>and</strong> it is linked to most other master data elements. Thus, it is likely that once the<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 558<br />

customer data element is st<strong>and</strong>ardized, we’ll have a leg up on st<strong>and</strong>ardizing other master data elements such<br />

as raw data, sensor data, measurement data, aggregated data, materials, vendor, georeferential data, etc. Also,<br />

once we’ve gotten your feet wet <strong>and</strong> better underst<strong>and</strong> how the st<strong>and</strong>ardization process works, it should be<br />

easier to tackle more than one data element at a time.<br />

• Another pitfall to avoid is scope creep. When we begin with a single master data element, such as experiment,<br />

there will usually be someone who says something like, “Well, we can’t underst<strong>and</strong> ’trip chemistry data’ until<br />

we define ’trip’ or ’chemical substance.”’<br />

That’s simply untrue. Data elements are discrete entities; they can st<strong>and</strong> alone. They can be defined <strong>and</strong> st<strong>and</strong>ardized<br />

regardless <strong>of</strong> any other entities they’re related to. If they can’t, then perhaps they’re not really data<br />

elements themselves but rather attributes <strong>of</strong> a data element. At any rate, it’s extremely important - especially<br />

with regard to a pilot MDM project - that the scope <strong>of</strong> the project is clearly defined before we begin <strong>and</strong> adhere<br />

to that scope as much as practicably possible.<br />

• A third common issue I’ve encountered is confusion over who actually “owns” master data elements <strong>and</strong> who<br />

has responsibility for managing the company’s master data. You can help avoid this confusion by developing<br />

<strong>and</strong> implementing a data governance plan that clearly delineates data ownership <strong>and</strong> accountability structures<br />

before you begin an MDM initiative - even the pilot initiative.<br />

A well-developed data governance program should employ a model that clearly defines roles <strong>and</strong> responsibilities<br />

as well as hierarchies <strong>and</strong> accountability structures. Common components <strong>of</strong> a data governance model<br />

include:<br />

• A data management review board to provide strong leadership <strong>and</strong> oversight for the governance program,<br />

to set governance policies <strong>and</strong> to resolve critical issues;<br />

• An enterprise data governance team responsible for the day-to-day coordination <strong>of</strong> data governance activities<br />

<strong>and</strong> maintenance <strong>of</strong> the corporate metadata repository; <strong>and</strong><br />

• A management <strong>and</strong> execution function that includes compliance <strong>and</strong> change <strong>of</strong>ficers, modelling resources<br />

<strong>and</strong> cross-functional representation from the company to execute compliance requirements <strong>and</strong> manage<br />

change.<br />

• Finally, perhaps the most critical pitfall to avoid is the failure to show the value <strong>of</strong> the MDM initiative to the<br />

research project cluster. If PI’s think the MDM initiative is simply another IT project, they might not embrace<br />

it - <strong>and</strong> you may even encounter resistance to the project.<br />

One way to avoid this pitfall is to form collaboration between the research cluster <strong>and</strong> IT leaders <strong>of</strong> the MDM<br />

initiative to show the value <strong>of</strong> the project to the PIs within the research cluster. The collaboration should strive<br />

to show how cluster-wide st<strong>and</strong>ardized master data can help provide better access to accurate, consistent data<br />

that knowledge workers <strong>and</strong> decision-makers need to do their jobs. The collaboration should also stress the<br />

value <strong>of</strong> st<strong>and</strong>ardized master data in sustaining regulatory compliance <strong>and</strong> improving business performance.<br />

Each MDM initiative is different because every project cluster is different. The project cluster may encounter<br />

issues that are far different from these that we’ve outlined. However, to begin small, we can stick to the project<br />

proposal, put an appropriate data governance plan in place <strong>and</strong> strive to continually show the value <strong>of</strong> the MDM<br />

initiative to the research cluster, thus having a good grounding to help identify <strong>and</strong> overcome issues that might arise.<br />

5.4.7 Towards Holistic Tactics for Data Management<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 559<br />

5.5 Techniques for <strong>Information</strong> Management<br />

5.5.1 The Right Needle from the Right Haystack<br />

Among the technological generations <strong>of</strong> World Wide Web, content <strong>of</strong> any kind <strong>and</strong> for any audience grew <strong>and</strong> grew.<br />

Meanwhile the user is overwhelmed by a flood <strong>of</strong> information <strong>of</strong>fered to him indiscriminately by the World Wide<br />

Web, which leads to an significantly decreasing usability. Search engines have not (yet) improved this picture. They<br />

introduce their own policies <strong>and</strong> biases. They filter out useful information <strong>and</strong> direct the searcher in a specific way.<br />

Search is moreover still bound to addresses which may be known or unknown to the searcher.<br />

The user is typically not able to determine the quality <strong>of</strong> data obtained. He or she can<br />

• neither judge <strong>of</strong> accuracy, actuality, approporiateness, completeness, correctness, independence, learnability,<br />

maturity, reliability, stability, suitability, or underst<strong>and</strong>ability,<br />

• nor decide whether data obtained are at the right moment <strong>of</strong> time, <strong>of</strong> the right kind, in the right dose, <strong>of</strong> the<br />

right form, in the complete extent, <strong>and</strong> within the restrictions agreed upon in advance.<br />

The is no authority for quality. The business model for the World Wide Web is based on freedom <strong>of</strong> content to certain<br />

extend. This freedom may be nicely used or may be misused. Wikipedia is a typical example <strong>of</strong> partially very useful<br />

<strong>and</strong> partially completely confusing information 4 .<br />

5.5.2 Missing Adaptivity <strong>and</strong> User Orientation<br />

<strong>Information</strong> as processed by humans is perceived in a very subjective way. As for a web information system, the<br />

determining factor whether the user can derive advantage from the content delivered is the user’s individual situation<br />

[Kob05], i.e. the life case, user model <strong>and</strong> context. The same category <strong>of</strong> information can cause various needs in<br />

different life cases. For instance, a divorcee has a completely different need for information in fatherhood than a<br />

prospective father, although both <strong>of</strong> them reside in the same category.<br />

Not any user can deal with any kind <strong>of</strong> content. For the casual user or the novice other content has to be delivered<br />

than for experts. The common web information system doesn’t reflect the user’s situation <strong>and</strong> neglects the user’s<br />

specific needs. As a result, the user is spammed with information which is predominantly out <strong>of</strong> focus. The abundance<br />

<strong>of</strong> information also makes it impossible to separate useful from for the user useless content. Any by the absence <strong>of</strong><br />

meta data unspecified information reduces the usability <strong>of</strong> World Wide Web on the whole.<br />

Whether the content obtained from the web may be classified as information depends on the user. There is no<br />

commonly agreed definition <strong>of</strong> information. We may define information as follows within the five layer model <strong>of</strong><br />

[MST05, 28]:<br />

<strong>Information</strong>, as processed by human users <strong>of</strong> web sites, is<br />

• data<br />

• perceived or noticed, selected <strong>and</strong> organized by its receiver,<br />

• because <strong>of</strong> his subjective human interests, originating from his instincts, feelings, experience, intuition, common<br />

sense, values, beliefs, personal knowledge, or wisdom,<br />

• simultaneously processed by his cognitive <strong>and</strong> mental processes, <strong>and</strong><br />

• seamlessly integrated in his recallable knowledge.<br />

Therefore, web site modelling must include description <strong>of</strong> the information need <strong>of</strong> actors. The information need can<br />

be specified as<br />

• conceptual incongruity in which a person’s cognitive structure is not adequate to a task,<br />

• when a person recognizes that something wrong in their state <strong>of</strong> knowledge <strong>and</strong> desires to resolve the anomaly,<br />

• when the current state <strong>of</strong> possessed knowledge is less than is needed,<br />

4 See, for instance, the English entry “Dresden” for the German city Dresden. Everybody knows something about Dresden <strong>and</strong> may add<br />

also wrong information. We found more than 40 errors for this entry in May 2008.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 560<br />

• when internal sense runs out, <strong>and</strong><br />

• when there is insufficient knowledge too cope with voids, uncertainty or conflict in a knowledge area.<br />

Moreover, users are limited<br />

• in their abilities for verbalisation,<br />

• in their abilities for digestion <strong>of</strong> data, <strong>and</strong><br />

• by their habits, practices, <strong>and</strong> cultural environment.<br />

These limitations may cause intellectual overburdening <strong>of</strong> users. Most systems that require sophisticated learning<br />

courses for their exploration <strong>and</strong> utilization did not consider these limitations <strong>and</strong> did not cope with real life situations.<br />

The approach we use for avoiding overload is based on observation <strong>of</strong> real applications before developing the web<br />

information system.<br />

5.5.3 Pr<strong>of</strong>iles <strong>and</strong> Portfolio <strong>of</strong> the User<br />

User modelling is based on the specification <strong>of</strong> user pr<strong>of</strong>iles that address the characterisation <strong>of</strong> the users, <strong>and</strong> the<br />

specification <strong>of</strong> user portfolios that describe the users’ tasks <strong>and</strong> their involvement <strong>and</strong> collaboration on the basis <strong>of</strong><br />

the mission <strong>of</strong> the WIS [31].<br />

To characterize the users <strong>of</strong> a WIS we distinguish between education, work <strong>and</strong> personality pr<strong>of</strong>iles. The education<br />

pr<strong>of</strong>ile contains properties users can obtain by education or training. Capabilities <strong>and</strong> application knowledge as a result<br />

<strong>of</strong> educational activities are also suitable for this pr<strong>of</strong>ile. Properties will assigned to the work pr<strong>of</strong>ile, if they can be<br />

associated with task solving knowledge <strong>and</strong> skills in the application area, i.e. task expertise <strong>and</strong> experience as well<br />

as system experience. Another part <strong>of</strong> a work pr<strong>of</strong>ile is the interaction pr<strong>of</strong>ile <strong>of</strong> a user, which is determined by his<br />

frequency, intensity <strong>and</strong> style <strong>of</strong> utilization <strong>of</strong> the WIS. The personality pr<strong>of</strong>ile characterises the general properties<br />

<strong>and</strong> preferences <strong>of</strong> a user. General properties are the status in the enterprise, community, etc., <strong>and</strong> the psychological<br />

<strong>and</strong> sensory properties like hearing, motoric control, information processing <strong>and</strong> anxiety.<br />

A portfolio is determined by responsibilities <strong>and</strong> is based on a number <strong>of</strong> targets. Therefore, the actor portfolio<br />

(referring to actors as groups <strong>of</strong> users with similar behaviour) within an application is based on a set <strong>of</strong> tasks assigned<br />

to or intended by an actor <strong>and</strong> for which s/he has the authority <strong>and</strong> control, <strong>and</strong> a description <strong>of</strong> involvement within<br />

the task solution [32]. A task as a piece <strong>of</strong> work is characterized by a problem statement, initial <strong>and</strong> target states,<br />

collaboration <strong>and</strong> presupposed pr<strong>of</strong>iles, auxiliary conditions <strong>and</strong> means for task completion. Tasks may consists <strong>of</strong><br />

subtasks. Moreover, the task execution model defines what, when, how, by whom <strong>and</strong> with which data a task can<br />

be accomplished. The result <strong>of</strong> executing a task should present the final state as well as the satisfaction <strong>of</strong> target<br />

conditions.<br />

5.5.4 Users Life Cases<br />

For task completion users need the right kind <strong>of</strong> data, at the right time, in the right granularity <strong>and</strong> format, unabridged<br />

<strong>and</strong> within the frame agreed upon in advance. Moreover, users are bound by their ability to verbalise <strong>and</strong> digest data,<br />

<strong>and</strong> their habits, practices, <strong>and</strong> cultural environment. To avoid intellectual overburdening <strong>of</strong> users we observe real<br />

applications before the system development leading to life cases [ST07c]. Life cases help closing the pragmatic gap<br />

between intentions <strong>and</strong> storyboarding. They are used to specify the concrete life situation <strong>of</strong> the user <strong>and</strong> characterise<br />

thus a bundle <strong>of</strong> tasks the user should solve. Syntax <strong>and</strong> semantics <strong>of</strong> life cases have already been well explored in<br />

[31].<br />

In addition, each user has an information portfolio, which specifies the information needs as well as the information<br />

entered into the system. We do not model the information portfolio as part <strong>of</strong> a user, but instead <strong>of</strong> this we will<br />

model the information “consumed” <strong>and</strong> “produced” with each more detailed specification <strong>of</strong> a user request.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 561<br />

5.5.5 <strong>Information</strong> Portfolios<br />

A WIS portfolio consists <strong>of</strong> an information portfolio <strong>and</strong> a utilisation portfolio. They are mapped to content <strong>and</strong><br />

functionality specifications, respectively. in doing so we distinguish between content provided by the WIS <strong>and</strong> information,<br />

which is related to an actor or user.<br />

Consumption <strong>and</strong> Production <strong>of</strong> <strong>Information</strong>.<br />

Following [ST05] on a high level <strong>of</strong> abstraction we may think <strong>of</strong> a WIS as a set <strong>of</strong> abstract locations, which<br />

abstract from actual pages. A user navigates between these locations, <strong>and</strong> on this navigation path s/he executes a<br />

number <strong>of</strong> actions. We regard a location together with local actions, i.e. actions that do not change the location, as a<br />

unit called scene.<br />

Then a WIS can be described by an edge-labelled directed multi-graph, in which the vertices represent the scenes,<br />

<strong>and</strong> the edges represent transitions between scenes. Each such transition may be labelled by an action executed by the<br />

user. If such a label is missing, the transition is due to a simple navigation link. The whole multi-graph is then called<br />

the story space.<br />

A story is a path in the story space. It tells what a user <strong>of</strong> a particular type might do with the system. The<br />

combination <strong>of</strong> different stories to a subgraph <strong>of</strong> the story space can be used to describe a “typical” use <strong>of</strong> the WIS<br />

for a particular task. Therefore, we call such a subgraph a scenario. Usually storyboarding starts with modelling<br />

scenarios instead <strong>of</strong> stories, coupled by the integration <strong>of</strong> scenarios to the story space.<br />

Each WIS user who enters the system with a particular goal has information needs that have to be satisfied by<br />

the system. In addition, an active WIS will also request information from its users. We use the term information<br />

consumption for the information provided by the system to its users, <strong>and</strong> information production for the information<br />

entered by a user into the system.<br />

When a user enters the WIS, the information needs are usually not known in advance. Part <strong>of</strong> the needed information<br />

may depend on other parts, on decisions made while navigating through the WIS, <strong>and</strong> even on the information<br />

provided by the actor him/herself. That is, the information consumption <strong>and</strong> production depends on the path through<br />

the WIS, i.e. in our terminology on the story. Therefore, information consumption <strong>and</strong> production is associated with<br />

each scene <strong>of</strong> the story space. Assuming that there is a database for the data content <strong>of</strong> the WIS with database schema<br />

S, information consumption on a scene s definitely accounts for a view V s over S. That is, we have another schema<br />

S V <strong>and</strong> a computable transformation from databases over S to databases over S V . Such a transformation is usually<br />

expressed by a query q V .<br />

• With each scene s we associate a view V s = (S V , q V ) called information consumption view. Elements <strong>of</strong><br />

q V (db) for some database db represent the information consumption <strong>of</strong> an actor.<br />

• With each action α we associate a data type t α called information production type. Values <strong>of</strong> type t α represent<br />

the information production by an actor.<br />

<strong>Information</strong> consumption <strong>and</strong> information production <strong>of</strong> an actor for all scenes together define the information<br />

portfolio <strong>of</strong> the actor.<br />

<strong>Information</strong> Need <strong>and</strong> Dem<strong>and</strong>.<br />

We distinguish between the information need <strong>and</strong> the information dem<strong>and</strong>. The former one refers to a perceived<br />

lack <strong>of</strong> something desirable or useful, while the latter one results from an act <strong>of</strong> dem<strong>and</strong>ing or asking.<br />

The information need is generally related to objectives such as becoming informed. It is based on the intuitive<br />

insight that the current information <strong>and</strong> knowledge is insufficient for the task under consideration, or the necessary<br />

information cannot be easily derived from data that is currently available, or the uncertainty, indefiniteness, fuzziness,<br />

<strong>and</strong> contradictions do not permit drawing conclusions.<br />

The information need can be considered to be subjective, but at the same time it can be the reason for a certain user<br />

visiting a website without an intention that is related to a life case. The information need is based on the conceptual<br />

incongruity in which a user’s cognitive structure is not adequate to a task, e.g. when a user recognizes that something<br />

wrong in their state <strong>of</strong> knowledge <strong>and</strong> desires to resolve the anomaly, when the current state <strong>of</strong> knowledge is less than<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 562<br />

what is needed, when internal sense runs out, or when there is insufficient knowledge to cope with gaps, uncertainties<br />

or conflicts in a knowledge area. Therefore, as the behaviour <strong>of</strong> actors is mainly related to life cases <strong>and</strong> the portfolio,<br />

we have to distinguish between information provided for support <strong>of</strong> life cases <strong>and</strong> auxiliary consumed information<br />

that is provided to visitors as a service.<br />

The information dem<strong>and</strong> is related to the portfolio under consideration <strong>and</strong> to the intents. We may distinguish<br />

between information that is necessary, desirable, or feasible. The information dem<strong>and</strong> is mapped to the views defining<br />

information consumption <strong>and</strong> production for each scene <strong>of</strong> the story space as defined above. The information dem<strong>and</strong><br />

is characterised by information that is missing, unknown, necessary for task completion, <strong>and</strong> directly requested.<br />

We can distinguish between the information dem<strong>and</strong> <strong>of</strong> an actor <strong>and</strong> the information dem<strong>and</strong> <strong>of</strong> a user. As actors<br />

represent groups <strong>of</strong> users, the information dem<strong>and</strong> <strong>of</strong> a user contains the information dem<strong>and</strong> <strong>of</strong> an actor. While<br />

the information dem<strong>and</strong> <strong>of</strong> actors is determined by the portfolio, the additional information dem<strong>and</strong> <strong>of</strong> a user is<br />

determined by the user pr<strong>of</strong>ile.<br />

The Concept <strong>of</strong> Persona.<br />

The information dem<strong>and</strong> is used to derive the information consumption <strong>of</strong> each user. This is related to the definition<br />

<strong>and</strong> meaning <strong>of</strong> information for the user based on received / requested data, which has to be organized, interpreted,<br />

understood, <strong>and</strong> integrated into his/her knowledge. In general, this would require to model the user, the specific request<br />

<strong>of</strong> the user, the ability to underst<strong>and</strong> the data, <strong>and</strong> the skills, which is infeasible. However, as the information<br />

dem<strong>and</strong> <strong>of</strong> actors is a subset <strong>of</strong> the one <strong>of</strong> users represented by the actor, we can use prototypes <strong>of</strong> individuals called<br />

personae to determine the information dem<strong>and</strong>. In addition, we model a task-oriented life case <strong>of</strong> these individuals,<br />

<strong>and</strong> derive the information dem<strong>and</strong>, data requirement, <strong>and</strong> the specific utilisation requirements.<br />

A persona is characterized by an expressive name, pr<strong>of</strong>ession, intents, technical equipment, behaviour, skills <strong>and</strong><br />

pr<strong>of</strong>ile, disabilities, <strong>and</strong> specific properties such as hobbies <strong>and</strong> habits. A persona is a typical individual created to<br />

describe the typical user based on the life cases, the context, the portfolio, <strong>and</strong> the pr<strong>of</strong>ile. User models characterize<br />

pr<strong>of</strong>iles for education, work, <strong>and</strong> personality. This characterization can be extended by<br />

• identity with name, pictures, etc.,<br />

• personal characteristics such as age, gender, location, <strong>and</strong> socio-economic status,<br />

• characterization <strong>of</strong> reaction to possible users error,<br />

• specific observed behaviour including skill sets, behavioural pattern, expertise <strong>and</strong> background, <strong>and</strong><br />

• specific relationships, requirements, <strong>and</strong> expectations.<br />

For the persona the following specification template can be used:<br />

Persona:<br />

〈persona name〉<br />

Identity:<br />

〈first <strong>and</strong> last name, photo〉<br />

Demography <strong>of</strong> persona: 〈age, gender, location, status〉<br />

Robustness <strong>of</strong> WIS usage: 〈criticality <strong>of</strong> errors〉<br />

Kind <strong>of</strong> user:<br />

〈general description〉<br />

Specific behaviour: 〈general description〉<br />

Specific interactivity: 〈general description〉<br />

Based On User Pr<strong>of</strong>ile: 〈name〉<br />

Refined education pr<strong>of</strong>ile:<br />

〈general description〉<br />

Refined work pr<strong>of</strong>ile: 〈general description〉<br />

Refined personality pr<strong>of</strong>ile:<br />

〈general description〉<br />

Based On Portfolio: 〈name〉<br />

Refined task:<br />

〈general description〉<br />

Refined involvement: 〈general description〉<br />

Refined collaboration: 〈general description〉<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 563<br />

Refined restrictions: 〈general description〉<br />

Based On Life Case: 〈name〉<br />

Refined characterisation:<br />

〈outcome description〉<br />

Refined life case flow: 〈general graphical description〉<br />

Refined figures: 〈actors list〉<br />

Refined context: 〈general context description〉<br />

Refined representation: 〈general behavior〉<br />

Based On Context:<br />

〈name〉<br />

Refined persona context:<br />

〈general description〉<br />

Refined storyboard context:<br />

〈general description〉<br />

Refined WIS context: 〈general description〉<br />

Refined temporal context:<br />

〈general description〉<br />

The explicit specification <strong>of</strong> personae has several benefits. They provide communication means within the development<br />

team, focus on a specific target set <strong>of</strong> actors, <strong>and</strong> help to make assumptions about the target audience. Thus,<br />

personae may augment the WIS portfolio specification, but should not be overused.<br />

5.5.6 The Six-Step Transformation <strong>of</strong> a Question to Queries<br />

This part <strong>of</strong> the lecture is based on the paper [BDT12].<br />

Intentionally, a search request to a database system consists <strong>of</strong> a search request <strong>and</strong> a result concept. Therefore,<br />

query forms <strong>and</strong> answer forms are used to accommodate the search request <strong>and</strong> the result concept.<br />

Syntactical <strong>and</strong> conceptual quality criteria in query formulations are:<br />

Restriction <strong>of</strong> ambiguity: Search request are usually formulated ambiguously <strong>and</strong> using the context <strong>of</strong> the speaker,<br />

e.g., on the basis <strong>of</strong> ellipses.<br />

Computability: Queries must be expressed in a form that is computable by a computer.<br />

Effective computability: queries must be computable in a time frame restricted by the user <strong>and</strong> depending on the size<br />

<strong>of</strong> the database.<br />

Transformation to the query language: Queries must be expressible within the query language.<br />

Direct SQL query formulation is already a difficult task. The difficulty is caused by SQL itself, by the complexity<br />

<strong>of</strong> the database schema <strong>and</strong> supporting (view) schemata, by the inherent complexity <strong>of</strong> the question, by the set <strong>of</strong><br />

potential variations <strong>and</strong> variants <strong>of</strong> the same question, <strong>and</strong> by assessment <strong>of</strong> the correctness <strong>of</strong> the query. The most<br />

difficult part is the derivation <strong>of</strong> the query <strong>and</strong> the form <strong>of</strong> the potential answer for a given question. It is thus not<br />

surprising that this problem is very seldom tackled in literature so far. Based on our model <strong>of</strong> search, the properties<br />

<strong>of</strong> SQL, <strong>and</strong> the theory, we can, however, develop a general procedure to query formulation.<br />

Query Formulation Step 1: Extension <strong>of</strong> the Search Question.<br />

Questions have their own context, use ambiguities, are condensed to ellipses, <strong>and</strong> are bound by a scope <strong>and</strong> issuers.<br />

There are many linguistic techniques that can be used for question reformulation: resolution <strong>of</strong> ambiguities, categorisation<br />

<strong>and</strong> flexibilisation, synonym or homonym or hypernym or meronym or holonym association, explicit extraction<br />

<strong>of</strong> internal bracket structures, decontextualisation, <strong>and</strong> unfolding <strong>of</strong> ellipses.<br />

We may also use question completion <strong>and</strong> injection <strong>of</strong> metadata <strong>and</strong> common sense. Aggregation requests within<br />

a query need sharpening.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 564<br />

Questions can be categorised either to be open-world questions or closed-world questions. This drives the interpretation<br />

<strong>of</strong> logical connectives. Objects in a database may have a fixed property over the entire lifespan or may use<br />

volatile values. Therefore, the pointer to these objects must be flexible.<br />

Each question is based on some namespace that defines semantical or pragmatical meaning <strong>of</strong> words in a sentence.<br />

The result <strong>of</strong> this step is a question with its environment.<br />

Query Formulation Step 2: Orthonormalisation <strong>and</strong> Extension <strong>of</strong> the Search Question <strong>and</strong> Mapping<br />

to Query Forms <strong>and</strong> Answer Forms.<br />

We can categorise questions according to their structuring <strong>and</strong> their orientation within the essential part <strong>of</strong> the<br />

W 7 (+W 4 +W 17 H) frame. Each orientation has its canonical form for question verbalisation. This form can be used<br />

for question orthonormalisation.<br />

Questions use concepts which are common in the application <strong>and</strong> useful in the current situation. We thus extend<br />

a question by direct integration <strong>of</strong> the matter. Questions may use abbreviations <strong>and</strong> thus use words which have their<br />

own definition. This definition is used to derive auxiliary query forms which can be used for query formulation, e.g.,<br />

by folding. A typical abbreviation are aggregates.<br />

Now, we can use the orthonormalised question <strong>and</strong> derive a query form graph. This graph consists <strong>of</strong> nodes which<br />

are labelled by the main words <strong>and</strong> edges that represent associations among the nodes.<br />

Questions are stated by users. Their (rough) pr<strong>of</strong>ile <strong>and</strong> portfolio can be used to derive the information dem<strong>and</strong> <strong>of</strong><br />

the user. This information dem<strong>and</strong> is an orthogonal <strong>and</strong> implicit dimension <strong>of</strong> the question. Therefore, the question is<br />

extended by the information dem<strong>and</strong>.<br />

Proper names <strong>and</strong> values in the question are used for the instantiation <strong>of</strong> parameters in the query form (<strong>and</strong> answer<br />

form).<br />

Answer forms use answer form patterns in dependence on the expectation (i.e., information dem<strong>and</strong>) <strong>of</strong> the<br />

question issuer.<br />

The instantiated query <strong>and</strong> answer forms are results <strong>of</strong> this step.<br />

Query Formulation Step 3: Rephrasing <strong>of</strong> the Question into an Existential Form.<br />

SQL <strong>and</strong> other database languages request a specific form <strong>of</strong> the query. Queries are typically given in an existential<br />

form with a strictly defined semantics. Therefore, we first map all connectives <strong>and</strong> quantifiers within the query form<br />

to strict ones. Negation <strong>and</strong> logical connectives must <strong>of</strong>ten be rephrased according to open-world or closed-world<br />

assumptions. Boolean formulas are transformed into a normal form expression. Inner quantifiers in a query form are<br />

transformed to prefix quantifiers based on predicate calculus.<br />

Set requests are represented by a canonical set query. Special attention is required for optional values or values<br />

which might be represented by null values.<br />

Rephrasing a question also results in the transformation <strong>of</strong> the query form <strong>and</strong> correspondingly <strong>of</strong> the answer<br />

form.<br />

The result <strong>of</strong> this step are normalised question <strong>and</strong> answer forms.<br />

Query Formulation Step 4: Mapping <strong>of</strong> the Query Form to Database Schema Notions.<br />

Now we can use the database schema for injection <strong>of</strong> schema notions into the query form. If we use an extended<br />

ER schema S then we can directly embed G Q into the database schema. This embedding extends the query graph<br />

with schema notions <strong>and</strong> paths from S. We might choose one or combine these paths based on preference rules<br />

or pragmatic information. Schema semantics is used for semantic extension <strong>of</strong> the query form. Typical constraints<br />

(referential integrity constraints, null or default values, key constraints) are used for derivation <strong>of</strong> a semantical query<br />

form. Integrity constraints such as referential integrity constraints can be used for query shortening. Embedding G Q<br />

into S can be based on graph homomorphisms.<br />

Query form mapping is based on identifying matchings, selection <strong>of</strong> the context from the schema, pruning the<br />

mapping to minimal context, selection <strong>of</strong> appropriate paths, removal <strong>of</strong> duplicates, decomposition <strong>of</strong> the query form<br />

to sub-forms <strong>and</strong> composition <strong>of</strong> components.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 565<br />

The auxiliary forms are used for view or temporary table formulation.<br />

Additionally, schema definitions can be incorporated into the query form.<br />

Query Formulation Step 5: Derivation <strong>of</strong> the Extended Answer Form..<br />

The mapping <strong>of</strong> the query form can be used for refinement, context extension <strong>and</strong> instantiation <strong>of</strong> answer forms. The<br />

answer form pattern is then refined for the answer representation. Result parameters are identified.<br />

Answer forms may be extended by features for their extension. These features are similar to cube functions or<br />

stream functions.<br />

Query Formulation Step 6: Derivation <strong>of</strong> the Database Query.<br />

Now we can use the extended query form <strong>and</strong> the extended answer form for derivation <strong>of</strong> a query or <strong>of</strong> queries <strong>and</strong><br />

views.<br />

A Small Example<br />

Let us consider a simple university schema [Tha00] that allows to record the enrollment <strong>of</strong> courses by students. Given<br />

now the following question:<br />

Which students do anything together ?<br />

This question can be translated based on the first query formulation step to<br />

Which students enroll all university lectures together ?<br />

We can derive from this question<br />

Give me all students which enroll all lectures together <strong>and</strong> only together?<br />

Let us abstract from lectures <strong>and</strong> only consider course at the first glance.<br />

The background <strong>of</strong> the question are the sets <strong>of</strong> lectures that a student a <strong>and</strong> another student b enrols. These two<br />

sets must be equal.<br />

The Visual SQL Representation.<br />

VisualSQL 5 allows a visual verbalisation <strong>of</strong> queries.<br />

Let us assume that in step 1 we realised that we are not interested in those courses which one <strong>of</strong> the students<br />

dropped. We are only interested in common trials <strong>of</strong> student pairs in the same time. One <strong>of</strong> them might get a grade<br />

fail <strong>and</strong> the other one a grade very good. Thus would mean that we have to take into account the semesters as well.<br />

Let us thus assume that we are not interested in course but in lectures, i.e., in those students which enrol a course in<br />

the same semester.<br />

This difference in question interpretation must be detected in the first step.<br />

The result is the query in figure 9 which displays the set correspondence <strong>of</strong> successfully enrolled course by<br />

different students.<br />

The Mathematical Transformation.<br />

We may now use the logical correspondence<br />

¬∃v((¬Enrol(a, v) ∨ ¬Enrol(b, v)) ∧ (Enrol(a, v) ∨ Enrol(b, v)))<br />

=<br />

∀v((Enrol(a, v) ∧ Enrol(b, v)) ∨ (¬Enrol(a, v) ∧ ¬Enrol(b, v)))<br />

Step 3 will result in a dense <strong>and</strong> not simply to comprehend query. The query form is rather simple in this case. If<br />

follows the SQL frame. The corresponding answer form is now based on the information dem<strong>and</strong>.<br />

Now we can associate the question with schema notions <strong>and</strong> get the following query:<br />

5 See: http://www.informatik.uni-kiel.de/en/information-systems-engineering/miscellaneous/visualsql/<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 566<br />

Person P1<br />

√ Name<br />

DateOfBirth<br />

...<br />

=<br />

=<br />

Student S1<br />

StudNo<br />

Name<br />

DateOfBirth<br />

...<br />

=<br />

Enrol<br />

StudNo<br />

Semester<br />

CourseNo<br />

Grade<br />

...<br />

IS NOT NULL<br />

<<br />

==<br />

Person P2<br />

√ Name<br />

DateOfBirth<br />

...<br />

=<br />

=<br />

Student S2<br />

StudNo<br />

Name<br />

DateOfBirth<br />

...<br />

=<br />

Enrol<br />

StudNo<br />

Semester<br />

CourseNo<br />

Grade<br />

...<br />

IS NOT NULL<br />

Abbildung 9: The correlated subqueries: VisualSQL queries are simpler to formulate than SQL queries<br />

SELECT S1.StudNo, S2.StudNo<br />

FROM Student AS S1, Student AS S2<br />

WHERE S1.StudNo < S2.StudNo AND<br />

NOT EXISTS (<br />

SELECT * FROM Course AS V<br />

WHERE V.CourseNo IN<br />

(SELECT B.CourseNo FROM Enrol AS B<br />

WHERE S1.StudNo = B.StudNo<br />

OR S2.StudNo = B.StudNo)<br />

AND<br />

NOT EXISTS (<br />

( SELECT * FROM Enrol AS B1<br />

WHERE S1.StudNo = B1.StudNo<br />

AND B1.CourseNo = V.CourseNo )<br />

UNION<br />

( SELECT * FROM Enrol AS B2<br />

WHERE S2.StudNo = B2.StudNo<br />

AND B2.CourseNo = V.CourseNo )<br />

)<br />

);<br />

We claim that this query is not developed by ordinary students. Empirical tests have shown that this query is not easily<br />

to comprehend.<br />

The Transformation from Visual SQL.<br />

The VisualSQL tool 6 generates based on a translation style for sets the following query which is different from<br />

the first one. Since the translation style is an option, we could also use another option <strong>and</strong> thus obtain a query that is<br />

similar to the first query.<br />

SELECT P1.Name, P2.Name<br />

FROM Person P1, Person P2, Student S1, Student S2, Enrol H1, Enrol H2<br />

WHERE P1.Name = S1.Name AND P1.DateOfBirth = S1.DateOfBirth AND<br />

S1.StudNo = H1.StudNo AND H1.Grade IS NOT NULL AND<br />

P2.Name = S2.Name AND P2.DateOfBirth = S2.DateOfBirth AND<br />

S2.StudNo = H2.StudNo AND H2.Grade IS NOT NULL<br />

AND NOT EXISTS<br />

(SELECT *<br />

FROM Enrol H3<br />

WHERE H3.Grade IS NOT NULL AND<br />

H3.StudNo NOT IN<br />

6 It is currently available on our website in a Java <strong>and</strong> in a .Net implementation <strong>and</strong> is freeware.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 567<br />

(SELECT H4.StudNo<br />

FROM Enrol H4<br />

WHERE H4.StudNo = H2.StudNo<br />

AND H4.Grade IS NOT NULL)<br />

AND H1.StudNo = H3.StudNo)<br />

AND NOT EXISTS<br />

(SELECT *<br />

FROM Enrol H5<br />

WHERE H5.Grade IS NOT NULL AND<br />

H5.StudNo NOT IN<br />

(SELECT H6.StudNo<br />

FROM Enrol H6<br />

WHERE H6.StudNo = H1.StudNo<br />

AND H4.Grade IS NOT NULL)<br />

AND H2.StudNo = H5.StudNo)<br />

AND S1.StudNo < S2.StudNo<br />

GROUP BY P1.Name, P2.Name;<br />

We claim that this query is already a challenge for advanced computer engineering students.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 568<br />

5.6 Techniques for Data Management<br />

5.6.1 Modelling Language Selection Matters<br />

The Sapir-Whorf Hypothesis<br />

Languages may however also restrict modelling. This restriction may either be compensated by over-development <strong>of</strong><br />

language components or by multi-models 7 . The relational database modelling language uses integrity constraint as<br />

compensation component for the inadequate expressibility <strong>of</strong> the language 8 .<br />

The Sapir-Whorf hypothesis [Who80] results in the following principle:<br />

Principle <strong>of</strong> linguistic relativity: Actors skilled in a language may not have a (deep) underst<strong>and</strong>ing <strong>of</strong> some concepts<br />

<strong>of</strong> other languages. This restriction leads to problematic or inadequate models or limits the representation <strong>of</strong><br />

things <strong>and</strong> is not well understood.<br />

The principle <strong>of</strong> linguistic relativity is not well understood. In [Tha10] we demonstrated via a crossroad example<br />

that Petri nets are <strong>of</strong>ten not the right tool for representation <strong>of</strong> behaviour. A similar observation on UML is made by<br />

Krogstie [Kro05].<br />

The Cognitive Insufficiency <strong>of</strong> the Entity-Relationship Modelling Language<br />

Lak<strong>of</strong>f [Lak87] introduces six basic schemata <strong>of</strong> cognitive semantics without stating that this list <strong>of</strong> schemata is<br />

complete.<br />

• The container schema define the distinction between in <strong>and</strong> out. They have an interior, a boundary <strong>and</strong> an<br />

exterior.<br />

• The part-whole schema define an internal structuring <strong>and</strong> uses whole, part <strong>and</strong> configuration as construction<br />

units.<br />

• The link schema connects thing <strong>of</strong> interest. It uses various kinds <strong>of</strong> links for associating or un-associating<br />

things.<br />

• The center-periphery schema is based on some notion <strong>of</strong> a center. Peripherical elements are not as important<br />

than those in the center.<br />

• The source-path-goal schema uses source (or starting point), destination, path, <strong>and</strong> direction. It allows also to<br />

discuss main <strong>and</strong> side tracks.<br />

• Typical ordering schemata are the up-down, front-back <strong>and</strong> the linear ordering schema. They use spatial <strong>and</strong><br />

temporal associations.<br />

We call a modelling language cognition-complete if these six schemata can be represented.<br />

The classical ER modelling language suffers from a number <strong>of</strong> restrictions. It uses the container <strong>and</strong> the link<br />

schemata. It allows to mimic the part-whole schema via special links (called IsA). This work-around is however badly<br />

misunderstood. In order to become cognition-complete integrity constraints must be used. Their cognitive complexity<br />

is however beyond surveyability <strong>of</strong> humans. A typical flaw <strong>of</strong> the classical ER model is the use <strong>of</strong> monster types that<br />

integrate stabile - almost not changing - properties <strong>and</strong> transient - <strong>of</strong>ten changing - properties. Objects are then taken<br />

as a whole. Unary relationship types easily resolve this problem if higher-order types are permitted.<br />

Extended ER modelling languages are however also not cognitive complete. The center-periphery schema can<br />

only be emulated. The source-path-goal schema can be represented by higher-order relationship types. The partwhole<br />

schema is supported by the specialisation via unary relationship types <strong>and</strong> by generalisation via cluster types.<br />

Ordering schemata can be defined using the order types <strong>and</strong> bulk types.<br />

7 Over-development <strong>of</strong> language components has been observed within the theory <strong>of</strong> integrity constraints in the relational model <strong>of</strong> data.<br />

More than 95 different <strong>and</strong> necessary classes <strong>of</strong> integrity constraints have been developed. Multi-modelling is extensively used for UML.<br />

8 We have discussed in [Tha10] how language may restrict our ability to represent things from the universe <strong>of</strong> discourse <strong>and</strong> to solve<br />

problems for the application. We used an example from [Jac07] who explained the impossibility to find an appropriate representation <strong>of</strong> street<br />

cross behaviour based on Petri net language. Abstract state machine (ASM) representation gives however a very simple representation <strong>and</strong><br />

supports problem solution. The reason for the failure was the chosen modelling approach. In [Jac07] the modelling-in-the-local approach has<br />

been used. ASM modelling supports however also modelling-in-the-global.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 569<br />

5.6.2 Master Data Management<br />

German notion: Stammdaten-Verwaltung<br />

Most s<strong>of</strong>tware systems have lists <strong>of</strong> data that are shared <strong>and</strong> used by several <strong>of</strong> the applications that make up<br />

the system. For example, a typical ERP system as a minimum will have a Customer Master, an Item Master, <strong>and</strong> an<br />

Account Master. This master data is <strong>of</strong>ten one <strong>of</strong> the key assets <strong>of</strong> a company. It’s not unusual for a company to be<br />

acquired primarily for access to its Customer Master data. Rudimentary Definitions<br />

There are some very well-understood <strong>and</strong> easily identified master-data items, such as “customer” <strong>and</strong> “product”.<br />

In fact, many define master data by simply reciting a commonly agreed upon master-data item list, such as: customer,<br />

product, location, employee, <strong>and</strong> asset. But how you identify elements <strong>of</strong> data that should be managed by a masterdata<br />

management system is much more complex <strong>and</strong> defies such rudimentary definitions. In fact, there is a lot <strong>of</strong><br />

confusion around what master data is <strong>and</strong> how it is qualified, necessitating a more comprehensive treatment.<br />

There are essentially five types <strong>of</strong> data in corporations:<br />

Unstructured: This is data found in e-mail, white papers like this, magazine articles, corporate intranet portals, product<br />

specifications, marketing collateral, <strong>and</strong> PDF files.<br />

Transactional: This is data related to sales, deliveries, invoices, trouble tickets, claims, <strong>and</strong> other monetary <strong>and</strong> nonmonetary<br />

interactions.<br />

Metadata: This is data about other data <strong>and</strong> may reside in a formal repository or in various other forms such as XML<br />

documents, report definitions, column descriptions in a database, log files, connections, <strong>and</strong> configuration files.<br />

Hierarchical: Hierarchical data stores the relationships between other data. It may be stored as part <strong>of</strong> an accounting<br />

system or separately as descriptions <strong>of</strong> real-world relationships, such as company organizational structures<br />

or product lines. Hierarchical data is sometimes considered a super MDM domain, because it is critical to<br />

underst<strong>and</strong>ing <strong>and</strong> sometimes discovering the relationships between master data.<br />

Master: Master data are the critical nouns <strong>of</strong> a business <strong>and</strong> fall generally into four groupings: people, things, places,<br />

<strong>and</strong> concepts. Further categorizations within those groupings are called subject areas, domain areas, or entity<br />

types.<br />

• For example, within people, there are customer, employee, <strong>and</strong> salesperson.<br />

• Within things, there are product, part, store, <strong>and</strong> asset.<br />

• Within concepts, there are things like contract, warrantee, <strong>and</strong> licenses.<br />

• Finally, within places, there are <strong>of</strong>fice locations <strong>and</strong> geographic divisions.<br />

Some <strong>of</strong> these domain areas may be further divided. Customer may be further segmented, based on incentives<br />

<strong>and</strong> history. A company may have normal customers, as well as premiere <strong>and</strong> executive customers. Product<br />

may be further segmented by sector <strong>and</strong> industry. The requirements, life cycle, <strong>and</strong> CRUD cycle for a product<br />

in the Consumer Packaged Goods (CPG) sector is likely very different from those <strong>of</strong> the clothing industry. The<br />

granularity <strong>of</strong> domains is essentially determined by the magnitude <strong>of</strong> differences between the attributes <strong>of</strong> the<br />

entities within them.<br />

While identifying master data entities is pretty straightforward, not all data that fits the definition for master data<br />

should necessarily be managed as such.<br />

We narrow the definition <strong>of</strong> master data to the following criteria, all <strong>of</strong> which should be considered together when<br />

deciding if a given entity should be treated as master data.<br />

Behavior: Master data can be described by the way that it interacts with other data.<br />

For example, in transaction systems, master data is almost always involved with transactional data. A customer<br />

buys a product. A vendor sells a part, <strong>and</strong> a partner delivers a crate <strong>of</strong> materials to a location. An employee is<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 570<br />

hierarchically related to their manager, who reports up through a manager (another employee). A product may<br />

be a part <strong>of</strong> multiple hierarchies describing their placement within a store.<br />

This relationship between master data <strong>and</strong> transactional data may be fundamentally viewed as a noun/verb<br />

relationship. Transactional data capture the verbs, such as sale, delivery, purchase, email, <strong>and</strong> revocation; master<br />

data are the nouns. This is the same relationship data-warehouse facts <strong>and</strong> dimensions share.<br />

Life cycle: Master data can be described by the way that it is created, read, updated, deleted, <strong>and</strong> searched. This life<br />

cycle is called the CRUD cycle <strong>and</strong> is different for different master-data element types <strong>and</strong> companies.<br />

Create<br />

For example, how a customer is created depends largely upon a company’s business rules, industry segment,<br />

<strong>and</strong> data systems. One company may have multiple customer-creation vectors, such as through the internet,<br />

directly through account representatives, or through outlet stores. Another company may only allow customers<br />

to be created through direct contact over the phone with its call center. Further, how a customer element is<br />

created is certainly different from how a vendor element is created. The following table illustrates the differing<br />

CRUD cycles for four common master-data subject areas.<br />

Customer Product Asset Employee<br />

Customer visit, such as Product purchased or Unit acquired by opening HR hires, numerous<br />

to Web site or facility; manufactured; SCM involvement<br />

a PO; approval process forms, orientation, be-<br />

account created<br />

necessary<br />

nefits selection, asset<br />

allocations, <strong>of</strong>fice assignments<br />

Read Contextualized views<br />

based on credentials <strong>of</strong><br />

viewer<br />

Update Address, discounts,<br />

phone number, preferences,<br />

credit accounts<br />

Destroy Death, bankruptcy, liquidation,<br />

do-not-call.<br />

Search CRM system, callcenter<br />

system, contactmanagement<br />

system<br />

Periodic inventory catalogues<br />

Packaging changes,<br />

raw materials changes<br />

Canceled, replaced, no<br />

longer available<br />

ERP system, ordersprocessing<br />

system<br />

Periodic reporting purposes,<br />

figuring depreciation,<br />

verification<br />

Transfers, maintenance,<br />

accident reports<br />

Obsolete, sold, destroyed,<br />

stolen, scrapped<br />

GL tracking, asset DB<br />

management<br />

Office access, reviews,<br />

insurance-claims, immigration<br />

Immigration status, marriage<br />

status, level increase,<br />

raises, transfers<br />

Termination, death<br />

HR LOB system<br />

Cardinality: As cardinality (the number <strong>of</strong> elements in a set) decreases, the likelihood <strong>of</strong> an element being treated as<br />

a master-data element - even a commonly accepted subject area, such as customer - decreases.<br />

For example, if a company has only three customers, most likely they would not consider those customers<br />

master data - at least, not in the context <strong>of</strong> supporting them with a master-data management solution, simply<br />

because there is no benefit to managing those customers with a master-data infrastructure. Yet, a company with<br />

thous<strong>and</strong>s <strong>of</strong> customers would consider customer an important subject area, because <strong>of</strong> the concomitant issues<br />

<strong>and</strong> benefits around managing such a large set <strong>of</strong> entities. The customer value to each <strong>of</strong> these companies is the<br />

same. Both rely upon their customers for business. One needs a customer master-data solution; the other does<br />

not. Cardinality does not change the classification <strong>of</strong> a given entity type; however, the importance <strong>of</strong> having a<br />

solution for managing an entity type increases as the cardinality <strong>of</strong> the entity type increases.<br />

Lifetime: Master data tends to be less volatile than transactional data. As it becomes more volatile, it typically is<br />

considered more transactional.<br />

For example, some might consider “contract” a master-data element. Others might consider it a transaction.<br />

Depending on the lifespan <strong>of</strong> a contract, it can go either way. An agency promoting pr<strong>of</strong>essional athletes might<br />

consider their contracts as master data.<br />

Each is different from the other <strong>and</strong> typically has a lifetime <strong>of</strong> greater than a year. It may be tempting to<br />

simply have one master-data item called “athlete”. However, athletes tend to have more than one contract at<br />

any given time: one with their teams <strong>and</strong> others with companies for endorsing products. The agency would<br />

need to manage all those contracts over time, as elements <strong>of</strong> the contract are renegotiated or athletes traded.<br />

Other contracts - for example, contracts for detailing cars or painting a house - are more like a transaction. They<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 571<br />

are one-time, short-lived agreements to provide services for payment <strong>and</strong> are typically fulfilled <strong>and</strong> destroyed<br />

within hours.<br />

Complexity: Simple entities, even valuable entities, are rarely a challenge to manage <strong>and</strong> are rarely considered<br />

master-data elements. The less complex an element, the less likely the need to manage change for that element.<br />

Typically, such assets are simply collected <strong>and</strong> tallied.<br />

For example, Fort Knox likely would not track information on each individual gold bar stored there, but rather<br />

only keep a count <strong>of</strong> them. The value <strong>of</strong> each gold bar is substantial, the cardinality high, <strong>and</strong> the lifespan long;<br />

yet, the complexity is low.<br />

Value: The more valuable the data element is to the company, the more likely it will be considered a master data<br />

element. Value <strong>and</strong> complexity work together.<br />

Volatility: While master data is typically less volatile than transactional data, entities with attributes that do not<br />

change at all typically do not require a master-data solution.<br />

For example, rare coins would seem to meet many <strong>of</strong> the criteria for a master-data treatment. A rare-coin<br />

collector would likely have many rare coins. So, cardinality is high. They are valuable. They are also complex.<br />

For example, rare coins have a history <strong>and</strong> description. There are attributes, such as condition <strong>of</strong> obverse,<br />

reverse, legend, inscription, rim, <strong>and</strong> field. There are other attributes, such as designer initials, edge design,<br />

layers, <strong>and</strong> portrait. Yet, rare coins do not need to be managed as a master-data item, because they don’t change<br />

over time—or, at least, they don’t change enough. There may need to be more information added, as the history<br />

<strong>of</strong> a particular coin is revealed or if certain attributes must be corrected. But, generally speaking, rare coins<br />

would not be managed through a master-data management system, because they are not volatile enough to<br />

warrant a solution.<br />

Reuse: One <strong>of</strong> the primary drivers <strong>of</strong> master-data management is reuse.<br />

For example, in a simple world, the CRM system would manage everything about a customer <strong>and</strong> never need<br />

to share any information about the customer with other systems. However, in today’s complex environments,<br />

customer information needs to be shared across multiple applications. That’s where the trouble begins. Because—for<br />

a number <strong>of</strong> reasons—access to a master datum is not always available, people start storing master<br />

data in various locations, such as spreadsheets <strong>and</strong> application private stores. There are still reasons, such as<br />

data-quality degradation <strong>and</strong> decay, to manage master data that is not reused across the enterprise. However, if<br />

a master-data entity is reused in multiple systems, it’s a sure bet that it should be managed with a master-data<br />

management system.<br />

To summarize, while it is simple to enumerate the various master-data entity types, it is sometimes more challenging<br />

to decide which data items in a company should be treated as master data. Often, data that does not normally comply<br />

with the definition for master data may need to be managed as such, <strong>and</strong> data that does comply with the definition<br />

may not. Ultimately, when deciding on what entity types should be treated as master data, it is better to categorize<br />

them in terms <strong>of</strong> their behavior <strong>and</strong> attributes within the context <strong>of</strong> the business needs than to rely on simple lists <strong>of</strong><br />

entity types.<br />

There are several reasons why master data management is crucial. The most important is the following one:<br />

Because master data is used by multiple applications, an error in master data can cause errors in all the applications<br />

that use it. For example, an incorrect address in the customer master might mean orders, bills, <strong>and</strong> marketing literature<br />

are all sent to the wrong address.<br />

Even if the master data has no errors, few organizations have just one set <strong>of</strong> master data. Many companies grow<br />

through mergers <strong>and</strong> acquisitions. Each company you acquire comes with its own customer master, item master,<br />

<strong>and</strong> so forth. This would not be bad if you could just Union the new master data with your current master data,<br />

but unless the company you acquire is in a completely different business in a faraway country, there’s a very good<br />

chance that some customers <strong>and</strong> products will appear in both sets <strong>of</strong> master data—usually, with different formats<br />

<strong>and</strong> different database keys. If both companies use the Social Security number as the customer identifier, discovering<br />

which customer records are for the same customer is a straightforward issue; but that seldom happens. In most cases,<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 572<br />

customer numbers <strong>and</strong> part numbers are assigned by the s<strong>of</strong>tware that creates the master records, so the chances <strong>of</strong><br />

the same customer or the same product having the same identifier in both databases is pretty remote. Item masters can<br />

be even harder to reconcile, if equivalent parts are purchased from different vendors with different vendor numbers.<br />

Merging master lists together can be very difficult. The same customer may have different names, customer<br />

numbers, addresses, <strong>and</strong> phone numbers in different databases. Normal database joins <strong>and</strong> searches will not be able<br />

to resolve these differences. A very sophisticated tool that underst<strong>and</strong>s nicknames, alternate spellings, <strong>and</strong> typing<br />

errors will be required. The tool will probably also have to recognize that different name variations can be resolved, if<br />

they all live at the same address or have the same phone number. While creating a clean master list can be a daunting<br />

challenge, there are many positive benefits to your bottom line from a common master list:<br />

• A single, consolidated bill saves money <strong>and</strong> improves customer satisfaction.<br />

• Sending the same marketing literature to a customer from multiple customer lists wastes money <strong>and</strong> irritates<br />

the customer.<br />

• Before you turn a customer account over to a collection agency, it would be good to know if they owe other<br />

parts <strong>of</strong> your company money or, more importantly, that they are another division’s biggest customer.<br />

• Stocking the same item under different part numbers is not only a waste <strong>of</strong> money <strong>and</strong> shelf space, but can<br />

potentially lead to artificial shortages.<br />

The recent movements toward SOA <strong>and</strong> SaaS make Master Data Management a critical issue. For example, if you<br />

create a single customer service that communicates through well-defined XML messages, you may think you have<br />

defined a single view <strong>of</strong> your customers. But if the same customer is stored in five databases with three different<br />

addresses <strong>and</strong> four different phone numbers, what will your customer service return? Similarly, if you decide to<br />

subscribe to a CRM service provided through SaaS, the service provider will need a list <strong>of</strong> customers for their<br />

database. Which one will you send them?<br />

For all these reasons, maintaining a high-quality, consistent set <strong>of</strong> master data for your organization is rapidly<br />

becoming a necessity. The systems <strong>and</strong> processes required to maintain this data are known as Master Data Management.<br />

Master Data Management (MDM) consists <strong>of</strong> the technology, tools, <strong>and</strong> processes required to create <strong>and</strong> maintain<br />

consistent <strong>and</strong> accurate lists <strong>of</strong> master data.<br />

There are a couple things worth noting in this definition.<br />

One is that MDM is not just a technological problem. In many cases, fundamental changes to business<br />

process will be required to maintain clean master data, <strong>and</strong> some <strong>of</strong> the most difficult MDM issues are<br />

more political than technical.<br />

The second thing to note is that MDM includes both creating <strong>and</strong> maintaining master data. Investing a<br />

lot <strong>of</strong> time, money, <strong>and</strong> effort in creating a clean, consistent set <strong>of</strong> master data is a wasted effort unless<br />

the solution includes tools <strong>and</strong> processes to keep the master data clean <strong>and</strong> consistent as it is updated <strong>and</strong><br />

exp<strong>and</strong>ed.<br />

While MDM is most effective when applied to all the master data in an organization, in many cases the risk <strong>and</strong><br />

expense <strong>of</strong> an enterprise-wide effort are difficult to justify. It may be easier to start with a few key sources <strong>of</strong> Master<br />

Data <strong>and</strong> exp<strong>and</strong> the effort, once success has been demonstrated <strong>and</strong> lessons have been learned. If you do start small,<br />

you should include an analysis <strong>of</strong> all the master data that you might eventually want to include, so you do not make<br />

design decisions or tool choices that will force you to start over when you try to incorporate a new data source.<br />

An MDM project plan will be influenced by requirements, priorities, resource availability, time frame, <strong>and</strong> the<br />

size <strong>of</strong> the problem. Most MDM projects include at least these phases:<br />

1. Identify sources <strong>of</strong> master data.<br />

This step is usually a very revealing exercise. Some companies find they have dozens <strong>of</strong> databases containing<br />

customer data that the IT department did not know existed.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 573<br />

2. Identify the producers <strong>and</strong> consumers <strong>of</strong> the master data.<br />

Which applications produce the master data identified in the first step, <strong>and</strong>—generally more difficult to determine—which<br />

applications use the master data. Depending on the approach you use for maintaining the master<br />

data, this step might not be necessary. For example, if all changes are detected <strong>and</strong> h<strong>and</strong>led at the database<br />

level, it probably does not matter where the changes come from.<br />

3. Collect <strong>and</strong> analyze metadata about for your master data.<br />

For all the sources identified in step one, what are the entities <strong>and</strong> attributes <strong>of</strong> the data, <strong>and</strong> what do they mean?<br />

This should include attribute name, data type, allowed values, constraints, default values, dependencies, <strong>and</strong><br />

who owns the definition <strong>and</strong> maintenance <strong>of</strong> the data. The owner is the most important <strong>and</strong> <strong>of</strong>ten the hardest to<br />

determine. If you have a repository loaded with all your metadata, this step is an easy one. If you have to start<br />

from database tables <strong>and</strong> source code, this could be a significant effort.<br />

4. Appoint data stewards.<br />

These should be the people with the knowledge <strong>of</strong> the current source data <strong>and</strong> the ability to determine how to<br />

transform the source into the master-data format. In general, stewards should be appointed from the owners <strong>of</strong><br />

each master-data source, the architects responsible for the MDM systems, <strong>and</strong> representatives from the business<br />

users <strong>of</strong> the master data.<br />

5. Implement a data-governance program <strong>and</strong> data-governance council.<br />

This group must have the knowledge <strong>and</strong> authority to make decisions on how the master data is maintained,<br />

what it contains, how long it is kept, <strong>and</strong> how changes are authorized <strong>and</strong> audited. Hundreds <strong>of</strong> decisions must<br />

be made in the course <strong>of</strong> a master-data project, <strong>and</strong> if there is not a well-defined decision-making body <strong>and</strong><br />

process, the project can fail, because the politics prevent effective decision making.<br />

6. Develop the master-data model.<br />

Decide what the master records look like: what attributes are included, what size <strong>and</strong> datatype they are, what<br />

values are allowed, <strong>and</strong> so forth. This step should also include the mapping between the master-data model<br />

<strong>and</strong> the current data sources. This is normally both the most important <strong>and</strong> most difficult step in the process. If<br />

you try to make everybody happy by including all the source attributes in the master entity, you <strong>of</strong>ten end up<br />

with master data that is too complex <strong>and</strong> cumbersome to be useful. For example, if you cannot decide whether<br />

weight should be in pounds or kilograms, one approach would be to include both (WeightLb <strong>and</strong> WeightKg).<br />

While this might make people happy, you are wasting megabytes <strong>of</strong> storage for numbers that can be calculated<br />

in microseconds, as well as running the risk <strong>of</strong> creating inconsistent data (WeightLb = 5 <strong>and</strong> WeightKg =<br />

5). While this is a pretty trivial example, a bigger issue would be maintaining multiple part numbers for the<br />

same part. As in any committee effort, there will be fights <strong>and</strong> deals resulting in sub-optimal decisions. It’s<br />

important to work out the decision process, priorities, <strong>and</strong> final decision maker in advance, to make sure things<br />

run smoothly.<br />

7. Choose a toolset.<br />

You will need to buy or build tools to create the master lists by cleaning, transforming, <strong>and</strong> merging the source<br />

data. You will also need an infrastructure to use <strong>and</strong> maintain the master list.<br />

The two main categories <strong>of</strong> tools are Customer Data Integration (CDI) tools for creating the customer master<br />

<strong>and</strong> Product <strong>Information</strong> Management (PIM) tools for creating the product master. Some tools will do both,<br />

but generally they are better at one or the other.<br />

The toolset should also have support for finding <strong>and</strong> fixing data-quality issues <strong>and</strong> maintaining versions <strong>and</strong><br />

hierarchies. Versioning is a critical feature, because underst<strong>and</strong>ing the history <strong>of</strong> a master-data record is vital<br />

to maintaining its quality <strong>and</strong> accuracy over time.<br />

8. <strong>Design</strong> the infrastructure.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 574<br />

Once you have clean, consistent master data, you will need to expose it to your applications <strong>and</strong> provide<br />

processes to manage <strong>and</strong> maintain it. When this infrastructure is implemented, you will have a number <strong>of</strong><br />

applications that will depend on it being available, so reliability <strong>and</strong> scalability are important considerations to<br />

include in your design. In most cases, you will have to implement significant parts <strong>of</strong> the infrastructure yourself,<br />

because it will be designed to fit into your current infrastructure, platforms, <strong>and</strong> applications.<br />

9. Generate <strong>and</strong> test the master data.<br />

This step is where you use the tools you have developed or purchased to merge your source data into your<br />

master-data list. This is <strong>of</strong>ten an iterative process requiring tinkering with rules <strong>and</strong> settings to get the matching<br />

right. This process also requires a lot <strong>of</strong> manual inspection to ensure that the results are correct <strong>and</strong> meet<br />

the requirements established for the project. No tool will get the matching done correctly 100 percent <strong>of</strong> the<br />

time, so you will have to weigh the consequences <strong>of</strong> false matches versus missed matches to determine how<br />

to configure the matching tools. False matches can lead to customer dissatisfaction, if bills are inaccurate or<br />

the wrong person is arrested. Too many missed matches make the master data less useful, because you are not<br />

getting the benefits you invested in MDM to get.<br />

10. Modify the producing <strong>and</strong> consuming systems.<br />

Depending on how your MDM implementation is designed, you might have to change the systems that produce,<br />

maintain, or consume master data to work with the new source <strong>of</strong> master data. If the master data is used in a<br />

system separate from the source systems—a data warehouse, for example - the source systems might not have<br />

to change. If the source systems are going to use the master data, however, there will likely be changes required.<br />

Either the source systems will have to access the new master data or the master data will have to be synchronized<br />

with the source systems, so that the source systems have a copy <strong>of</strong> the cleaned-up master data to use. If it’s not<br />

possible to change one or more <strong>of</strong> the source systems, either that source system might not be able to use the<br />

master data or the master data will have to be integrated with the source system’s database through external<br />

processes, such as triggers <strong>and</strong> SQL comm<strong>and</strong>s.<br />

The source systems generating new records should be changed to look up existing master record sets before<br />

creating new records or updating existing master records. This ensures that the quality <strong>of</strong> data being generated<br />

upstream is good, so that the MDM can function more efficiently <strong>and</strong> the application itself manages data quality.<br />

MDM should be leveraged not only as a system <strong>of</strong> record, but also as an application that promotes cleaner <strong>and</strong><br />

more efficient h<strong>and</strong>ling <strong>of</strong> data across all applications in the enterprise. As part <strong>of</strong> MDM strategy, all three<br />

pillars <strong>of</strong> data management need to be looked into: data origination, data management, <strong>and</strong> data consumption.<br />

It is not possible to have a robust enterprise-level MDM strategy if any one <strong>of</strong> these aspects is ignored.<br />

11. Implement the maintenance processes.<br />

As we stated earlier, any MDM implementation must incorporate tools, processes, <strong>and</strong> people to maintain the<br />

quality <strong>of</strong> the data. All data must have a data steward who is responsible for ensuring the quality <strong>of</strong> the master<br />

data. The data steward is normally a business person who has knowledge <strong>of</strong> the data, can recognize incorrect<br />

data, <strong>and</strong> has the knowledge <strong>and</strong> authority to correct the issues. The MDM infrastructure should include tools<br />

that help the data steward recognize issues <strong>and</strong> simplify corrections. A good data-stewardship tool should point<br />

out questionable matches that were made—customers with different names <strong>and</strong> customer numbers that live at<br />

the same address, for example. The steward might also want to review items that were added as new, because<br />

the match criteria were close but below the threshold. It is important for the data steward to see the history<br />

<strong>of</strong> changes made to the data by the MDM systems, to isolate the source <strong>of</strong> errors <strong>and</strong> undo incorrect changes.<br />

Maintenance also includes the processes to pull changes <strong>and</strong> additions into the MDM system, <strong>and</strong> to distribute<br />

the cleansed data to the required places.<br />

There are two basic steps to creating master data: (1) clean <strong>and</strong> st<strong>and</strong>ardize the data, <strong>and</strong> (2) match data from all the<br />

sources to consolidate duplicates.<br />

Before you can start cleaning <strong>and</strong> normalizing your data, you must underst<strong>and</strong> the data model for the master data.<br />

As part <strong>of</strong> the modeling process, the contents <strong>of</strong> each attribute were defined, <strong>and</strong> a mapping was defined from each<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 575<br />

source system to the master-data model. This information is used to define the transformations necessary to clean<br />

your source data.<br />

Cleaning the data <strong>and</strong> transforming it into the master data model is very similar to the Extract, Transform, <strong>and</strong><br />

Load (ETL) processes used to populate a data warehouse. Here are some typical data-cleansing functions:<br />

• Normalize data formats.<br />

Make all the phone numbers look the same, transform addresses (<strong>and</strong> so on) to a common format.<br />

• Replace missing values.<br />

Insert defaults, look up ZIP codes from the address, look up the st<strong>and</strong>ardised number.<br />

• St<strong>and</strong>ardize values.<br />

Convert all measurements to metric, convert prices to a common currency, change part numbers to an industry<br />

st<strong>and</strong>ard.<br />

• Map attributes.<br />

Parse the first name <strong>and</strong> last name out <strong>of</strong> a contact-name field, move Part# <strong>and</strong> partno to the PartNumber field.<br />

Matching master-data records to eliminate duplicates is both the hardest <strong>and</strong> most important step in creating<br />

master data. False matches can actually lose data <strong>and</strong> missed matches reduce the value <strong>of</strong> maintaining a common<br />

list. Some matches are pretty trivial to do. If you have Social Security numbers for all your customers, or if all<br />

your products use a common numbering scheme, a database JOIN will find most <strong>of</strong> the matches. This hardly ever<br />

happens in the real world, however, so matching algorithms are normally very complex <strong>and</strong> sophisticated. The more<br />

attribute matches <strong>and</strong> the closer the match, the higher degree <strong>of</strong> confidence the MDM system has in the match.<br />

This confidence factor is computed for each match, <strong>and</strong> if it surpasses a threshold, the records match. The threshold<br />

is normally adjusted depending on the consequences <strong>of</strong> a false match. For example, you might specify that if the<br />

confidence level is over 95 percent, the records are merged automatically, <strong>and</strong> if the confidence is between 80 percent<br />

<strong>and</strong> 95 percent, a data steward should approve the match before they are merged.<br />

Another factor to consider when merging your source data into the master list is privacy. When customers become<br />

part <strong>of</strong> the customer master, their information might be visible to any <strong>of</strong> the applications that have access to the customer<br />

master. If the customer data was obtained under a privacy policy that limited its use to a particular application,<br />

you might not be able to merge it into the customer master.<br />

There are many different tools <strong>and</strong> techniques for managing <strong>and</strong> using master data. We will cover three <strong>of</strong> the<br />

more common scenarios here:<br />

• Single copy approach:<br />

In this approach, there is only one master copy <strong>of</strong> the master data. All additions <strong>and</strong> changes are made directly<br />

to the master data. All applications that use master data are rewritten to use the new data instead <strong>of</strong> their current<br />

data. This approach guarantees consistency <strong>of</strong> the master data, but in most cases it’s not practical. Modifying all<br />

your applications to use a new data source with a different schema <strong>and</strong> different data is, at least, very expensive;<br />

if some <strong>of</strong> your applications are purchased, it might even be impossible.<br />

• Multiple copies, single maintenance:<br />

In this approach, master data is added or changed in the single master copy <strong>of</strong> the data, but changes are sent out<br />

to the source systems in which copies are stored locally. Each application can update the parts <strong>of</strong> the data that<br />

are not part <strong>of</strong> the master data, but they cannot change or add master data. For example, the inventory system<br />

might be able to change quantities <strong>and</strong> locations <strong>of</strong> parts, but new parts cannot be added, <strong>and</strong> the attributes that<br />

are included in the product master cannot be changed. This reduces the number <strong>of</strong> application changes that will<br />

be required, but the applications will minimally have to disable functions that add or update master data. Users<br />

will have to learn new applications to add or modify master data, <strong>and</strong> some <strong>of</strong> the things they normally do will<br />

not work anymore.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 576<br />

• Continuous merge:<br />

In this approach, applications are allowed to change their copy <strong>of</strong> the master data. Changes made to the source<br />

data are sent to the master, where they are merged into the master list. The changes to the master are then sent to<br />

the source systems <strong>and</strong> applied to the local copies. This approach requires few changes to the source systems;<br />

if necessary, the change propagation can be h<strong>and</strong>led in the database, so no application code is changed. On the<br />

surface, this seems like the ideal solution. Application changes are minimized, <strong>and</strong> no retraining is required.<br />

Everybody keeps doing what they are doing, but with higher-quality, more complete data. This approach does<br />

have several issues:<br />

• Update conflicts are possible <strong>and</strong> difficult to reconcile. What happens if two <strong>of</strong> the source systems change<br />

a customer’s address to different values? There’s no way for the MDM system to decide which one to<br />

keep, so intervention by the data steward is required; in the meantime, the customer has two different<br />

addresses. This must be addressed by creating data-governance rules <strong>and</strong> st<strong>and</strong>ard operating procedures,<br />

to ensure that update conflicts are reduced or eliminated.<br />

• Additions must be remerged. When a customer is added, there is a chance that another system has already<br />

added the customer. To deal with this situation, all data additions must go through the matching process<br />

again to prevent new duplicates in the master.<br />

• Maintaining consistent values is more difficult. If the weight <strong>of</strong> a product is converted from pounds to<br />

kilograms <strong>and</strong> then back to pounds, rounding can change the original weight. This can be disconcerting<br />

to a user who enters a value <strong>and</strong> then sees it change a few seconds later.<br />

Data stewardship <strong>and</strong> compliance requirements will <strong>of</strong>ten include a way to determine who made each change <strong>and</strong><br />

when it was made. To support these requirements, an MDM system should include a facility for auditing changes<br />

to the master data. In addition to keeping an audit log, the MDM system should include a simple way to find the<br />

particular change you are looking for. An MDM system can audit thous<strong>and</strong>s <strong>of</strong> changes a day, so search <strong>and</strong> reporting<br />

facilities for the audit log are important.<br />

In addition to the master data itself, the MDM system must maintain data hierarchies. It’s important for the MDM<br />

system to capture these hierarchies, but it’s also useful for an MDM system to be able to modify the hierarchies<br />

independently <strong>of</strong> the underlying systems. If the MDM system manages hierarchies, a change to the hierarchy in<br />

a single place can propagate the change to all the underlying systems. There might also be reasons to maintain<br />

hierarchies in the MDM system that do not exist in the source systems. Planning <strong>and</strong> forecasting might also require<br />

temporary hierarchies to calculate “what if” numbers for proposed organizational changes. Historical hierarchies are<br />

also required in many cases to roll up financial information into structures that existed in the past, but not in the<br />

current structure. For these reasons, a powerful, flexible hierarchy-management feature is an important part <strong>of</strong> an<br />

MDM system.<br />

5.6.3 Dockets <strong>and</strong> Metadata<br />

Dockets as Overlay Infoldable Add-On-Data.<br />

Dockets[SS99] <strong>of</strong> data massives are specific overlay structures. They provide information<br />

• on the content (abstracts or summaries),<br />

• on the delivery instruction,<br />

• on the parameters <strong>of</strong> functions for opening the document (opening with(out) zooming, breath, size, activation<br />

modus for multimedia components etc.)<br />

• on the tight association to other documents (versions, releases etc.),<br />

• on the meta-information such as resources, restriction, copyright, roles, distribution policy etc.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 577<br />

presentation engine<br />

container engine<br />

media object engine<br />

view h<strong>and</strong>ler<br />

DBS<br />

DBMS<br />

XML scene onion<br />

container onion<br />

media object onion<br />

XML suite<br />

...<br />

virtual ∨ materialized views<br />

update views<br />

survey, l<strong>and</strong>mark, indexing, I/O,<br />

navigation, integration etc. functions<br />

services packages, wrapping functions,<br />

dialogue scene <strong>and</strong> scenario functions<br />

actor pr<strong>of</strong>iles, pr<strong>of</strong>ile adaptation, equipment adaptation,<br />

channel adaptation, decomposer, style extension<br />

Abbildung 10: The Onion Approach to Stepwise Generation <strong>of</strong> XML-Based Sites<br />

• on the content providers, content reviewers <strong>and</strong> review evaluators with quality control policies,<br />

• on applicable workflows <strong>and</strong> the current status <strong>of</strong> completion, <strong>and</strong><br />

• on the receipt <strong>of</strong> the document which enable in tracing the document life cycle.<br />

The overlay structuring <strong>of</strong> data sets is supported by the onion approach [TD01]. Onion generation is based on<br />

layering that used for generation <strong>of</strong> website functionality <strong>and</strong> content. On the outer layer, the presentation facilities<br />

may be introduced. Typical functions are style <strong>and</strong> context functions. Containers are used to ship the information<br />

<strong>and</strong> the functionality provided by the web engine. Their functionality is described in [FST98]. Containers contain<br />

information units which in general are views enriched by functions for operating on the views. Views may be provide<br />

information to the dialogue or may be used for updating the database. Further, views may be materialized. If they are<br />

materialized then the view h<strong>and</strong>ler provides an automatic refreshment support. Thus, we can use the onion system<br />

architecture displayed in Figure 10.<br />

The onion approach nicely fits with the translational approach. It is our aim to generate consistent sets <strong>of</strong> associated<br />

XML documents. Let X be the set <strong>of</strong> all XML documents under consideration. Further given a generation<br />

algorithm G applicable to XML documents that allows to generate new XML documents on the basis <strong>of</strong> the given<br />

ones. Let us denote by [X ] G the transitive closure <strong>of</strong> the generation algorithm applied to X . A set X <strong>of</strong> XML documents<br />

is called consistent according to G if all inner references in X belong to [X ] G , i.e., no dangling inner references<br />

are in the set X . In this case X is called XML suite.<br />

The general translation algorithm applied here is based on the conceptual specification <strong>of</strong> websites. We first develop<br />

the database specification. Using the database specification HERM views are specified using the algebra provided<br />

by HERM. These HERM views are the basis for media object <strong>and</strong> media types. Containers are obtained by adding<br />

further functionality for adaptation <strong>and</strong> unloading functions. Scene object are specialisations <strong>of</strong> containers by adaptation<br />

the container to the user (pr<strong>of</strong>ile), the environment <strong>and</strong> the history.<br />

Data sets should be supported by a specific data warehouse architecture:<br />

Play-out servers present, store <strong>and</strong> protect released content. The play-out <strong>of</strong> documents depends on their usage.<br />

Typical widely used documents are documents used in logistics:<br />

• Bills have their own numbering <strong>and</strong> their own format. They serve also as an contract <strong>of</strong> carriage between<br />

shipper <strong>and</strong> carrier.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 578<br />

• Certificate on the content <strong>and</strong> the origin <strong>of</strong> the contents are used for statistical research, <strong>and</strong> for accessing<br />

duties, particularly under trade agreements.<br />

• Invoices declare against which payment is made. They are used for clearing documents.<br />

• Dock receipts are issued by the forwarder on experter’s behalf. They include shipment description, physical<br />

details, <strong>and</strong> shipping information.<br />

• Bills <strong>of</strong> lading are used as contracts between carrier <strong>and</strong> shipper, spell out legal responsibilities <strong>and</strong> liability<br />

limits for all parties to the shipment.<br />

• Packing lists provide details on the packing procedure <strong>of</strong> the container.<br />

• Sight, time drafts instruct the buyer’s bank to collect payment.<br />

Production servers have controlled access to documents <strong>and</strong> host dockets.<br />

Specific docket servers manage trusted content exchange between the servers.<br />

Generic docket servers communicate <strong>and</strong> encapsulate value-adding services.<br />

Metadata for Characterisation <strong>of</strong> Data Sets.<br />

All datasets must have appropriate metadata compiled for them. At the simplest level metadata are “data about<br />

data”. Metadata provide a summary <strong>of</strong> the characteristics <strong>of</strong> a dataset. A good metadata record enables the user <strong>of</strong> a<br />

dataset or other information resource to underst<strong>and</strong> the content <strong>of</strong> what they are reviewing, its potential value <strong>and</strong> its<br />

limitations. There are many metadata st<strong>and</strong>ards, but the ones that are most appropriate to GI are:<br />

• ISO 19115:200314 (Geographic <strong>Information</strong> – Metadata); <strong>and</strong><br />

• UK GEMINI – (Geo-spatial Metadata Interoperability Initiative) The pr<strong>of</strong>ile is the result <strong>of</strong> a collaboration<br />

between the AGI15 <strong>and</strong> the e-Government Unit16. A pr<strong>of</strong>ile is a subset <strong>of</strong> one or several information st<strong>and</strong>ards<br />

that adopts elements, structures or rules for different user communities. Adherence to the UK GEMINI pr<strong>of</strong>ile,<br />

which will replace the gigateway Discovery Metadata Specifications (the NGDF St<strong>and</strong>ard) as the UK’s national<br />

geospatial metadata pr<strong>of</strong>ile, allows for the creation <strong>of</strong> discovery metadata with both ISO 19115 (Geographic<br />

<strong>Information</strong> – Metadata) <strong>and</strong> the national e-Government Metadata St<strong>and</strong>ard (eGMS), ensuring compliance with<br />

both.<br />

Comprehensive advice on the compilation <strong>of</strong> metadata can be found in the IGGI booklet entitled “The Principles <strong>of</strong><br />

Good Metadata Management17”, the second edition <strong>of</strong> which was published in May 2004.<br />

The Meta-Characterization is used to represent properties <strong>of</strong> the data itself. Classically, data are considered <strong>of</strong><br />

high quality. However, estimations on real data show that data quality is rather low 9,10 .<br />

The Quality Metadata can be used for characterization <strong>of</strong> the quality <strong>of</strong> data. Intrinsic data quality parameters applied<br />

to data are accuracy (consistency, measures), objectivity (consistency, author, update policy, evolution),<br />

believability (source, design, processes) <strong>and</strong> reputation (credibility). Contextual data quality is based on properties<br />

such as relevancy, value-added, timelineness (age, source currency, non-volatility), completeness, <strong>and</strong><br />

amount <strong>of</strong> information. We can distinguish representational quality parameters such as interpretability (design,<br />

models <strong>and</strong> languages, query processing, data <strong>and</strong> processes), ease <strong>of</strong> underst<strong>and</strong>ing (interpretability, aliases),<br />

concise representation, consistent representation, <strong>and</strong> ease <strong>of</strong> manipulation.<br />

9 Companies engaged in cleaning databases estimate that, for instance, about 15 % <strong>of</strong> the objects stored in the telephone directory <strong>of</strong> the<br />

German Telekom have wrong data.<br />

10 DATRAS GmbH detected <strong>and</strong> corrected structural, semantic <strong>and</strong> content errors in the phone directories which have been scanned <strong>and</strong><br />

sold by other companies with the advertisement that Chinese students have typed those. After discovery <strong>of</strong> the systematic nature <strong>of</strong> errors they<br />

could show that systematic errors are typical scanner errors. The non-systematic errors in those directories are errors which also appeared in<br />

the Telecom directory.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 579<br />

The Temporality Metadata allows to maintain temporality <strong>of</strong> data. We are <strong>of</strong>ten interested in historical information.<br />

According to [Sno00] we distinguish three orthogonal concepts <strong>of</strong> time: temporal data types such as instants,<br />

intervals or periods, kinds <strong>of</strong> time, <strong>and</strong> temporal statements such as current (now), sequenced (at each instant<br />

<strong>of</strong> time) <strong>and</strong> nonsequenced (ignoring time).<br />

The Source Metadata<br />

<strong>and</strong> reliability.<br />

allows to maintain information on the acquisition <strong>of</strong> data. Sources can be different quality<br />

Terms <strong>and</strong> Regulations Metadata are used in various ways. There is usually a large variety <strong>of</strong> laws to be considered.<br />

There are laws <strong>and</strong> regulations for payment, for contacting, for requesting a party, for responding to another<br />

party etc. The simplest way to represent such pattern is to model the association explicitly in the schema by<br />

introducing types such as TermType <strong>and</strong> association types such as OrderTerm.<br />

Typical specific regulations are adjustments. We can model such regulations <strong>and</strong> rules by introducing types<br />

such as AdjustmentType <strong>and</strong> association types to the types which need an adjustment, e.g. Adjustment. This<br />

specific modeling approach is based on the consideration <strong>of</strong> star meta-structures 11 .<br />

Log Metadata are used for recording the actions <strong>of</strong> people in business process. A typical log schema is displayed<br />

in Figure 11. People are involved in activities in various roles, e.g., many people are involved in taking orders while<br />

giving the order, processing the order, approving the order, or fulfilling the order. All these actions need to be recorded.<br />

This log recording can be based on four or more relationship types associating orders with the person involved in the<br />

specific activity. We prefer, however, to model the activity by the role type. Thus, the schema is simpler <strong>and</strong> easier to<br />

maintain.<br />

A person may act in the same role several times. Thus, the relationship type uses the attribute FromDate for<br />

additional identification <strong>of</strong> the activity <strong>of</strong> the person. The key <strong>of</strong> OrderRole is thus Person.Identif, Order.Identif,<br />

OrderRoleType.Code <strong>and</strong> FromDate.<br />

Person<br />

[OtherProperties]<br />

FromDate [ThruDate]<br />

✛ Activity ✲<br />

Role<br />

Role<br />

Type<br />

Identif<br />

Identif<br />

❄<br />

Log<br />

Type<br />

Code<br />

Description<br />

Person<br />

[PercentContribution]<br />

[ThruDate]<br />

FromDate<br />

✛<br />

Order<br />

Role<br />

✲<br />

Order<br />

Role<br />

Type<br />

Identif<br />

Date<br />

Identif<br />

❄<br />

Order<br />

Code Description<br />

[EntryDate]<br />

[ShippingInstructions]<br />

Abbildung 11: Log <strong>of</strong> Actions, e.g., Association <strong>of</strong> Person to Ordering<br />

11 We prefer the introduction <strong>of</strong> separate types for terms, laws, regulations <strong>and</strong> rules due to the simplification <strong>of</strong> the treatment <strong>and</strong> management<br />

especially constraint enforcement. It is <strong>of</strong>ten proposed to extend corresponding types by such additional characteristics. The classical<br />

normalization approach would lead to the same result since in the last step all dependencies with the same left side are grouped into one cluster.<br />

Instead <strong>of</strong> that for groups <strong>of</strong> dependencies with the same left side, we prefer [Tha00] the ‘star’ clustering into associated right types by using an<br />

adhesion <strong>and</strong> cohesion weight. Thus, we create sub-groups within a group <strong>of</strong> dependencies <strong>and</strong> form relation types based on those sub-groups<br />

thus forming a star type.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 580<br />

5.6.4 Search <strong>and</strong> Systematic Querying<br />

This part <strong>of</strong> the lecture is based on the paper [BDT12].<br />

From Traditional Querying Towards Linguistic Querying<br />

Based on [DT04] we distinguish two approaches to DBMS querying as shown in Figure ??. The first approach is<br />

typically provided by DBMS. The second approach is proposed in this paper.<br />

Traditional database querying is based on sending a query sequence to the DBMS query interface. The query is<br />

processed by the DBMS <strong>and</strong> an SQL answer set is generated <strong>and</strong> provided to the DBMS answer representation<br />

system.<br />

input : (DBMS query form , database schema) ↦→ SQL query<br />

process : SQL query ↦→ SQL answer set<br />

output : SQL answer set ↦→ DBMS answer representation<br />

Some DBMS do not provide a query interface. In this case, users must directly send their SQL expression to<br />

the DBMS. Small DBMS do not have an output function either.<br />

Linguistic search facilities extend the traditional approach by providing concepts instead <strong>of</strong> concentrating on SQL<br />

querying. The concepts are mapped into query forms or answer forms. They provide a general form to which<br />

any database schema may be applied. The generation <strong>of</strong> query forms on the basis <strong>of</strong> concepts has been tested in<br />

a prototypical implementation in [VT02]. The generation <strong>of</strong> answer forms uses a similar generation approach.<br />

The query form is compiled to an SQL query [TK01]. The output function uses the representation form<br />

provided by the answer form <strong>and</strong> instantiates the form by the SQL query answer set.<br />

map : search concept ↦→ query form<br />

compile : (query form , database schema) ↦→ SQL query<br />

map : result concept ↦→ answer form<br />

process : SQL query ↦→ SQL answer set<br />

output : (SQL answer set , answer form) ↦→ answer to search<br />

The concept <strong>of</strong> the output function using an answer form is not novel. It is widely applied in web scripting.<br />

Perl templates are typical examples <strong>of</strong> such scripting language expressions. H<strong>and</strong>les are an early concept<br />

supporting a stepwise generation (allocation <strong>of</strong> environment variables, instantiation <strong>of</strong> database variables, instantiation<br />

<strong>of</strong> database connection, instantiation <strong>of</strong> database requests, processing <strong>of</strong> database requests, binding<br />

<strong>of</strong> result sets, release <strong>of</strong> variables <strong>and</strong> disconnection).<br />

Seven Different Kinds <strong>of</strong> Search<br />

Search is one <strong>of</strong> the most common facilities in information-intensive systems. It requires<br />

• to examine the data <strong>and</strong> information on h<strong>and</strong> <strong>and</strong><br />

• to carefully look at or through or into the data <strong>and</strong> the information.<br />

There is a large variety <strong>of</strong> information search such as:<br />

1. querying data sets (by providing query expressions in the informed search approach),<br />

2. seeking for information on data (by browsing, underst<strong>and</strong>ing <strong>and</strong> compiling),<br />

3. questing data formally (by providing appropriate search terms during step-wise refinement),<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 581<br />

4. ferreting out necessary data (by discovering the information requested by searching out or browsing through<br />

the data),<br />

5. searching by associations <strong>and</strong> drilling down (by appropriate refinement <strong>of</strong> the search terms),<br />

6. casting about <strong>and</strong> digging into the data (with a transformation <strong>of</strong> the query <strong>and</strong> the data to a common form),<br />

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

7. zapping through data sets (by jumping through provided data, e.g., by partially uninformed search).<br />

This variety <strong>of</strong> search approaches is applied almost everywhere in daily life. <strong>Information</strong> systems must support all<br />

these different kinds <strong>of</strong> search. The first <strong>and</strong> the second kinds <strong>of</strong> search (direct querying) are supported by text<br />

retrieval systems <strong>and</strong> do seldom lead to satisfactory results. The database query language SQL provides a nice support<br />

for skilled <strong>and</strong> trained users in case that the meaning <strong>of</strong> data <strong>and</strong> the semantics <strong>of</strong> the database schema are entirely<br />

known.<br />

The third kind <strong>of</strong> search (questing) is supportable by systems which use the information provided by the database<br />

schema <strong>and</strong> by word analysis. In [TK01, VT02] an approach has been developed which generates an SQL query for<br />

natural language utterances by extending the results <strong>of</strong> sentence parsing <strong>and</strong> analysis<br />

• by the meaning <strong>and</strong> associations <strong>of</strong> words using WordNet [Fel90] information,<br />

• by the hierarchy <strong>of</strong> application terms or topics [Ont12] ordered in an ontology [Gua97, OS04, WM02], <strong>and</strong><br />

• by associating the terms to database schema information [Tha00].<br />

The fourth kind <strong>of</strong> search (ferreting out) is currently not supported at all. It may be, however, partially supported<br />

if the information <strong>and</strong> associations on h<strong>and</strong> are properly used. In this case, context <strong>of</strong> terms, special context provided<br />

by applications <strong>and</strong> the search pr<strong>of</strong>ile <strong>of</strong> the user can be used for generating a general context <strong>of</strong> the search utterance.<br />

The fifth kind <strong>of</strong> search (association-based search or browsing) can partially be supported by techniques <strong>of</strong> artificial<br />

intelligence, VisualSQL[Vis12, JT03, Tha03], <strong>and</strong> by careful analysis <strong>of</strong> the meta-information provided by the<br />

information system.<br />

The sixth kind <strong>of</strong> search (investigating <strong>and</strong> casting) requires a powerful transformer <strong>of</strong> search terms, <strong>of</strong> metainformation<br />

provided by the database schema <strong>and</strong> <strong>of</strong> general context. The support <strong>of</strong> this kind <strong>of</strong> search is not yet<br />

visible for information systems. The support <strong>of</strong> the last kind <strong>of</strong> search (zapping) is far more difficult.<br />

Therefore, search is property-based which requires verbalisation help for fuzzy or precise matching, associationoriented<br />

with dwelling into data context, cube exploration with the cube operations (dice, slice, drill-down, roll-up),<br />

metadata- or context-backed, or embedded into the story context. Search is thus ruled by content, context, user <strong>and</strong><br />

his/her intentions, its embedding into a story <strong>and</strong> by support facilities <strong>and</strong> functions such as: guidance, surveillance,<br />

hyperspace exploration, l<strong>and</strong>scaping, browsing, zapping, memoriser, digging <strong>and</strong> hunting.<br />

Towards NoSQL Questioning Within the W 7 (+W 4 +W 17 H) Question Frame<br />

Questioning can be based on the classical rhetorical frame introduced by Hermagoras <strong>of</strong> Temnos 12 (Quis, quid,<br />

qu<strong>and</strong>o, ubi, cur, quem ad modum, quibus adminiculis (W 7 : Who, what, when, where, why, in what way, by what<br />

means)). We extend this frame now. The primary context <strong>of</strong> a question is characterised by W 4 : wherefore (purpose),<br />

where<strong>of</strong> (origin), wherewith (carrier, e.g., language), <strong>and</strong> worthiness ((surplus) value). The secondary context characterisation<br />

W 17 H is given by characterising user or stakeholder (by whom, to whom, whichever), the application<br />

domain (wherein, where, for what, wherefrom, whence, what), the solution somebody is seeking (how, why, whereto,<br />

when, for which reason) <strong>and</strong> the additional context (whereat, whereabout, whither, when).<br />

12 The work <strong>of</strong> Hermagoras <strong>of</strong> Temnos is almost lost. He has had a great influence on orality due to his proposals. For instance, Cicero<br />

has intensively discussed his proposals <strong>and</strong> made them thus available. The Zachman framework is nothing but a partial reinvention <strong>of</strong> this<br />

framework.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 582<br />

Navigation Support<br />

At the same time information systems respond to search requests by informing the requester on the information on<br />

h<strong>and</strong> <strong>and</strong> answering the search request. Informing <strong>and</strong> answering is a task which is as difficult as searching. Informing<br />

has also a number <strong>of</strong> facets such as:<br />

• returning the data that matches to search terms to the user in some format,<br />

• replying by giving an answer to the request with inclusion <strong>of</strong> other helpful information<br />

• respond by reacting on the search request <strong>and</strong> providing some information, <strong>and</strong><br />

• retort by answering back quickly <strong>and</strong> cleverly.<br />

Generic Functionality: Search<br />

Input <strong>Information</strong><br />

(1: Dockets)<br />

(2: Media Object Suite)<br />

Kind <strong>of</strong> Search Functions:Traverse<br />

Context Enrichment<br />

(1: Portfolio)<br />

(2: Pr<strong>of</strong>ile)<br />

(3: Environment)<br />

(4: Policy)<br />

Shuffling into Storyboard<br />

Traverse Object: Storyboard Spanning Tree<br />

Navigation is mainly based on traversal. Let us consider as an example the various facets <strong>of</strong> traversals.<br />

Traverse uni-directional associations: n-ary associations which (n-1) components uniquely determine the other<br />

component can be used for traversal.<br />

Traverse qualified association: The association is traversed in dependence <strong>of</strong> the qualification <strong>and</strong> returns the object(s)<br />

that correspond to the qualifier value.<br />

Traverse generalizations/specializations: The generalization/specialization hierarchy is used for capturing information<br />

that has been factored out during modeling.<br />

Upwards traversal: The specialization hierarchy is traversed from the subclass to the superclass.<br />

Downwards traversal The specialization hierarchy is used for traversal down a generalization/specialization<br />

hierarchy from the superclass to the subclass if the corresponding objects exist for the subtypes.<br />

Obtain the XML object: The specialization hierarchy is used for generating the object with all its tightly<br />

coupled elements.<br />

Traverse from link to object: All objects related to the link <strong>and</strong> the corresponding role are captured.<br />

Traverse from object to link: The links <strong>of</strong> the object are collected <strong>and</strong> prepared for traversal.<br />

Link collection: The links <strong>of</strong> the specified object(s) are collected. The association names are necessary whenever<br />

an ambiguity may occur.<br />

Traversal by roles: The search is carried out based on the link(s) which are denoted for the role <strong>of</strong> the object(s).<br />

Filter objects: The objects in a set are restricted by a Boolean expression.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 583<br />

Filter links: The links in a set are restricted using a Boolean expression.<br />

Traverse from object to value: The operation returns the attribute value(s) for the specified set <strong>of</strong> objects.<br />

Traverse from link to value: The operation returns the attribute value(s) for the specified set <strong>of</strong> links.<br />

The search pattern can be combined, e.g., traverse from object set to attribute values reachable through links.<br />

5.6.5 Query <strong>and</strong> Answer Forms<br />

This part <strong>of</strong> the lecture is based on the paper [BDT12].<br />

The W 7 (+W 4 +W 17 H) question frame drives the path to general question support. We might first concentrate on<br />

the main ingredients <strong>of</strong> a question <strong>and</strong> delay the treatment <strong>of</strong> the other ingredients to future research. Questions to a<br />

system are given by the nested quadruple<br />

(question content, matter (concepts, situation), user(pr<strong>of</strong>ile, portfolio), carrier).<br />

Answers to be expected from a system are given by the nested triple<br />

(answer content, solution (characteristics, context, value)).<br />

A question has a matter (what, concepts, in what way) <strong>and</strong> a situational context (when, where, in what means).<br />

A user has a pr<strong>of</strong>ile (who) <strong>and</strong> a portfolio (wherefore, wherein, where, for what, wherefrom, whence, what). He/she<br />

uses a carrier language (wherewith) within a certain namespace (whereto, by what means). The answer expected can<br />

be characterised by the solution characteristics (how, why, whereto, when, for which reason), the solution context<br />

embedding (whereat, whereabout, whither, when) <strong>and</strong> the expected surplus value (worthiness) <strong>of</strong> the answer.<br />

The structuring <strong>of</strong> queries <strong>and</strong> answers can be defined through folding [MST09] <strong>of</strong> superimposed schemata<br />

[BDM02] where each schema represents a specific facet <strong>of</strong> the query or answer. We can use the representation<br />

through m-object schemata [NuBT11]. In the sequel we do not go into the details <strong>of</strong> this folding. We concentrate on<br />

the notions <strong>of</strong> query forms <strong>and</strong> answer forms. We observe, however, that queries <strong>and</strong> answers have multi-structured<br />

schemata <strong>and</strong> can be represented within the extended ER modelling language [Tha00].<br />

Query Forms as Query Pattern<br />

Query formulation in database systems is based on a known relational database schema. The query interface <strong>of</strong> a<br />

DBMS supports the syntactical correctness <strong>of</strong> an SQL-92 query. Syntactical completeness is usually not supported.<br />

Users <strong>of</strong>ten make claims on the DBMS non-suitability for query construction. Query formulation is thus error-prone<br />

<strong>and</strong> does not provide any help against the flaws. In [TK01] another approach has been proposed: users can formulate<br />

queries in natural language <strong>and</strong> the system translates the natural language utterance to c<strong>and</strong>idates <strong>of</strong> queries. This<br />

approach has been used for query interfaces <strong>of</strong> web sites.<br />

This approach can be combined with the approach considered in [VT02]. Instead <strong>of</strong> using natural language utterances<br />

concepts are defined. These concepts are associated with query forms [Tha00]. A query form is a parametric<br />

view expression expr(T 1 , ..., T n , x 1 , ...x m ) defined over an Visual SQL schema similar to those defined for extended<br />

entity-relationship schemata:<br />

• The language <strong>of</strong> the extended entity-relationship model is defined by<br />

·<br />

ER → B | L : ER | (ER, ..., ER) | {ER} | ∪ (ER, ..., ER)<br />

for a set L <strong>of</strong> labels or names, a set B <strong>of</strong> base type names <strong>and</strong> the constructors (..., ..., ...) (product or tuple),<br />

{...} (set), <strong>and</strong> ∪ ·<br />

(..., ..., ...) (disjoint union). Additionally, constructors for bags <strong>and</strong> lists may be used. The set<br />

<strong>of</strong> labels may also contain the empty label λ. The set <strong>of</strong> labels is used for distinction <strong>of</strong> components.<br />

• The view expression uses parameters x 1 , ..., x m <strong>and</strong> database types T 1 , ..., T n . The schema consisting <strong>of</strong><br />

T 1 , ...., T n x 1 , ...., x m is closed, i.e. if a type T ∈ {T 1 , ..., T n } has components then these components belong<br />

to {T 1 , ...., T n x 1 , ...., x m }.<br />

An answer form is a parametrised media type [ST01] associating the output parameters <strong>of</strong> the query form with the<br />

parameters <strong>of</strong> the answer form. Answer forms <strong>of</strong>ten use patterns for the structuring <strong>of</strong> the question solution such as<br />

list pattern, table pattern, view schema pattern, cube pattern or reporting form pattern.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 584<br />

We picture the differences in the approach in Figure 12. The query is assembled on the basis <strong>of</strong> the Visual SQL<br />

schema.<br />

Visual SQL<br />

schema<br />

✻<br />

❄<br />

query<br />

form<br />

✲<br />

SQL<br />

query<br />

✛<br />

SQL database<br />

schema<br />

✻<br />

❄<br />

DBMS query<br />

interface<br />

answer<br />

form<br />

❄<br />

SQL answer<br />

set<br />

❄<br />

answer<br />

to search<br />

✮<br />

<br />

DBMS answer<br />

representation<br />

Abbildung 12: Visual SQL Query Processing Instead Of Direct SQL Querying<br />

Query forms Q <strong>and</strong> answer forms A can be represented by labelled directed graphs G Q <strong>and</strong> G A similar to semantic<br />

networks. Nodes are concepts used in the question. Edges are associations in the question. Verbs are typically mapped<br />

to associations. One might better represent multi-valent verbs by hypernodes <strong>and</strong> hyperedges. These can however also<br />

be represented by an extended graph. Parameters in a query form are defined as hooks or anchors.<br />

Associating Questions With Concepts<br />

Questions use notions from the application domain. Therefore, we may associate items in the question with concepts.<br />

This association can be based on the separation <strong>of</strong> concern into content, concepts <strong>and</strong> topics [Tha06]. Concepts are<br />

kernel elements in the application knowledge. They can thus be used to better underst<strong>and</strong> the meaning <strong>of</strong> a question.<br />

The topic theory is based on Kauppi’s concept maps [Kau67].<br />

Using The ER Translation Pr<strong>of</strong>ile For Generation Of SQL Queries<br />

Classically, queries are formulated on the basis <strong>of</strong> the relational schema. In this case, the relational schema is the<br />

main source for query formulation. This approach is appropriate as long as the query is not very complex <strong>and</strong> as long<br />

as the number <strong>of</strong> relational types to be used in the query is rather small. If the relational schema is large <strong>and</strong> the query<br />

is rather complex, users are lost in the schema space <strong>and</strong> query formulation becomes error-prone.<br />

We use the six-step procedure for query formulation <strong>and</strong> use the translation pr<strong>of</strong>ile <strong>of</strong> the ER schema for derivation<br />

<strong>of</strong> the query. The translation pr<strong>of</strong>ile corresponds to the stepwise translation procedure for extended ER schemata<br />

proposed <strong>and</strong> discussed in detail in [Tha00].<br />

5.6.6 Separating Data Storage from Data Utilisation<br />

This part <strong>of</strong> the lecture is based on the paper [JRTF11].<br />

Generic Database Schemata for Simple <strong>and</strong> Sophisticated Storage.<br />

The Data Deployment Engine.<br />

Data Warehouses, Data Marts <strong>and</strong> Data Mining Machines as Specific Approaches.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 585<br />

5.6.7 View Towers <strong>and</strong> Eager Collectors<br />

This part <strong>of</strong> the lecture is based on the paper [KT12].<br />

5.6.8 Geschichtete Datenbanksysteme für Anwendungsfälle<br />

In Projekten fallen neben feingranularen Sensordaten auch Auswertungsdaten, Georeferenzierungsdaten, Fremddaten,<br />

aggregierte Daten und ergänzte Daten an. Die Daten sind nicht nur von unterschiedlicher Qualität und von<br />

unterschiedlichem Umfang.<br />

Eine entsprechende Technologie wurde für die integrierte Bereitstellung von Datenbeständen, für das Verweben<br />

von Datenbeständen mit zugehörigen Auswertungsdatenbeständen und für die Besonderheiten innerhalb dieser Datenbestände<br />

durch eine Technologie der Sichten entwickelt. Im Exzellenzcluster kann diese Technologie benutzt werden,<br />

um Daten je nach Benutzungsfall (z.B. Bereitstellung von Daten für eine Publikation oder in Datenbestände)je<br />

nach erforderlicher Detailiertheit, je nach Auswertungsart etc. vorzuhalten.<br />

Gleichzeitig kann durch eine Vereinheitlichung der Abspeicherung auch eine einfache Schnittstelle für die Anwendung<br />

von Analyseverfahren, von Algorithmen des Data mining und von statistischen Verfahren bereitgestellt<br />

werden.<br />

5.6.9 Austausch von Datenbeständen auf XML-Basis<br />

Daten sollten vor allem von vielen Arbeitsgruppen auf der Grundlage von abgestimmten Kollaborationen benutzt<br />

werden. Sie haben außerdem eine relativ lange “Lebenszeit”, so daß sie auch relativ lange in entsprechenden Archiven<br />

vorgehalten werden müssen. Sie sind weiterhin kontext-sensitiv und bedürfen einer Ergänzung durch entsprechende<br />

Metadaten. Sie erfordern deshalb einer komplexen Mehrschrittauswertung.<br />

Deshalb ist eine Entwicklung eines skalierbaren, flexiblen und hinreichend universellen Austauschformates auch<br />

für Projekte notwendig. Ein solches Austauschformat kann auf existierenden XML-St<strong>and</strong>ards aufgesetzt werden.<br />

5.6.10 Werkzeuge für das Datenmanagement<br />

Generische Workflows zum Datenmanagement<br />

Die Datenerfassungs-, -ablage- und -auswertungsverfahren gleichen sich in den allgemeinen Abläufen und in der<br />

allgemeinen Sichtweise auf die Daten. Zugleich sind sie jedoch in Spezifika so unterschiedlich, daß derzeit jeder<br />

dieser Prozesse in einer eigenen Unterstützungsform läuft. Damit werden nicht nur Ressourcen gebunden, sondern<br />

auch Integrationsmöglichkeiten verschenkt. Bei einem Datenmanagement lohnt es sich jedoch, diese Abläufe zusammenzufassen,<br />

zu verallgemeinern und zu harmonisieren. Diese Bündelung gleichartiger Aktivitäten erlaubt auch eine<br />

effektivere Unterstützung.<br />

Am Lehrstuhl für Technologie der <strong>Information</strong>ssysteme wurde eine Theorie und Technologie generischer Workflows<br />

bzw. Arbeitsprozesse entwickelt und in Projekten erprobt. Generische Workflows fassen Workflows, die einen<br />

analogen Verlauf, analoge Mechanismen der Verarbeitung und Benutzung von Daten und analoge Benutzungsformen<br />

besitzen, zu einem verallgemeinerten Workflow zusammen. Dieser verallgemeinerte Workflow kann mit einer Compilertechnologie<br />

zu den ursprünglichen Workflows entfaltet werden. Zugleich kann damit ein allgemeiner Ablauf, zu<br />

dem potentiell sehr viele analoge Abläufe existieren, mit einem einzigen Programm unterstützt werden. Damit entfällt<br />

die Notwendigkeit, für jeden einzelnen Anwendungsfall ein neues Programm zu erstellen, zu testen, zu erproben und<br />

den Benutzern nahezubringen.<br />

Das Konzept der generischen Workflows.<br />

Generische Workflows sind konfigurierbare, adaptierbare und abstrakte Workflows, aus denen der aktuelle Workflow<br />

(entfalteter Workflow) abgeleitet werden kann. Dieser aktuelle Workflow berücksichtigt die aktuelle Situation,<br />

die aktuellen Anforderungen und die aktuelle Datenlage.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 586<br />

✲<br />

✯<br />

✿<br />

3<br />

❥<br />

✲<br />

✿<br />

Abbildung 13: Generische und entfaltete Workflows<br />

In Abbildung 13 ist ein generischer Workflow dargestellt, aus dem ein aktueller Workflow abgeleitet werden<br />

kann. Dieser aktuelle Workflow verläuft im Rahmen des generischen Workflows und wird demzufolge auch mit allen<br />

Serviceleistungen des generischen Workflows ausgestattet.<br />

Ein generischer Workflow wird dabei aus generischen Funktionen schrittweise zu einem komplexen Workflow<br />

zusammengesetzt. Aus einem generischen Workflow wird mit Adaptoren spätestens zur Laufzeit ein spezifischer,<br />

aktueller, entfalteter Workflow abgeleitet.<br />

Mit diesem Konzept wird eine größere Flexibiltät erreicht.<br />

Generische Workflows, Workflows und Workflow-Felder.<br />

Wir unterscheiden in Anlehnung an die Theorie der Konzeptfelder (siehe unten im Abschnitt ??) zwischen<br />

generischen Workflows, aus denen (aktuelle) Workflows abgeleitet werden können<br />

einem Workflow als entfalteten Workflow innerhalb einer Anwendungssituation und<br />

Workflow-Feldern, mit denen ein Rahmen der generischen Workflows angegeben werden kann.<br />

Ein generischer Workflow kann aus einer oder mehreren Stammformen bestehen.<br />

Ein Workflow-Feld besteht aus<br />

einer Menge von Stammformen,<br />

einer Menge von dynamischen Integritätsbedingungen denen die Workflows eines Feldes genügen müssen,<br />

einer Menge von Bildungsformen zur Assoziation mit <strong>and</strong>eren Workflow-Feldern und<br />

einer Menge von Flexionen zur Ableitung von Workflows aus dem Workflow-Feld.<br />

Wir nehmen <strong>of</strong>t vereinfachend an, daß ein Workflow-Feld nur eine einzige Stammform besitzt. und daß ein generischer<br />

Workflow nur Workflows eines Workflow-Feldes enthält. Sie muß nicht alle möglichen Workflows dieses<br />

Feldes enthalten, sondern kann auch nur einige (aktuelle) Workflows enthalten.<br />

Diese Unterscheidung wurde in unseren Arbeiten erstmals für eine e-Learning-Websites konzipiert. Diese Site<br />

erlaubt eine Entfaltung einer Lerneinheit je nach Meta-<strong>Information</strong>, H<strong>and</strong>lungs-, Akteurs- und Datenkontexten sowie<br />

der H<strong>and</strong>lungsvorgeschichte. Damit kann ein Lernfeld als allgemeine Lerneinheit angesehen werden, bei der<br />

die Stammform als Ausdruck über Lernelementen gegeben ist,<br />

die durch Ableitungsregeln zu einem komplexen Lernmodul erweitert wird, so daß ein Lernender auch seine entsprechenden<br />

Lernelemente angeboten bekommt, und<br />

durch Flexion die Variantenvielfalt sowie die Ausnahmen auffaltbar sind. Flexionsregeln erlauben eine Erweiterung<br />

mit dem Akteurspr<strong>of</strong>il und -portfolio,<br />

mit dem Wiederholungspr<strong>of</strong>il,<br />

mit dem Zeitpr<strong>of</strong>il,<br />

mit dem deontischen Modus und<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 587<br />

mit den Aktionsformen und der H<strong>and</strong>lungsrichtung.<br />

Diese Erweiterung entspricht den Anforderungen in diesem Projekt. Katastrophensituationen besitzen Spezifika,<br />

die über übliche S<strong>of</strong>tware-Anwendungen hinausgehen. Sie sind gekennzeichnet durch<br />

• hochgradig parallele Arbeitsabläufe und damit Problemen der adäquaten Bewältigung der entstehenden Komplexität,<br />

• Arbeitsabläufe, die eine Rückkopplung mit Wartezeiten erfordern, und<br />

• eine Organisation, die <strong>of</strong>t fremdgesteuert ist.<br />

Wir verallgemeinern die Formenlehre von H<strong>and</strong>lungssträngen und führen dazu allgemeine Workflow-Felder ein:<br />

Das Eröffnungsfeld ist gekennzeichnet durch<br />

• die Darstellung des Kontextes, der bei Assoziation des Workflow-Feldes mit <strong>and</strong>eren Feldern den Kontext<br />

dieser Felder dominiert,<br />

• die Darstellung der Akteure,<br />

• die Darstellung der Situation und<br />

• die Assoziation mit Sichtentypen sowohl für die Input- als auch die Retrieval- als auch die Outputdaten.<br />

Das Ausgangsfeld dient zur Meta-Spezifikation und erlaubt außerdem noch eine Einbettung der räumlichen und<br />

zeitlichen Rahmenbedingungen sowie auch der Motivation und der Ursachen.<br />

Das H<strong>and</strong>lungsschrittfeld wird spezifiziert durch<br />

• die Angabe der Verbindungsparameter,<br />

• die Angabe der Begleitelemente und Kontextbedingungen,<br />

• der Rollen der Akteure und<br />

• Sichtentypen.<br />

Das Übergabefeld erlaubt den Übergang von Objekten einer Sicht eines Akteurs auf Objekte einer Sicht eines <strong>and</strong>eren<br />

Akteurs. Zusätzlich kann der Kontext und auch der Vertrag des Überganges spezifiziert werden.<br />

Das Arbeitsfeld erlaubt die Bearbeitung von Daten über den Sichtentypen und deren Vers<strong>and</strong> an <strong>and</strong>ere Akteure<br />

bzw. deren Einbringen in das System.<br />

Neben diesen Basisfeldern können wir auch Konstruktionsfelder spezifizieren, mit denen Felder kombiniert werden<br />

können:<br />

Das Verzweigungsfeld unterstützt eine Verzweigung von Workflows in synchronisierte Workflows, die parallel unter<br />

Einhaltung der Synchronisationsbedingungen ablaufen können.<br />

Das Wiederholungsfeld stellt den Rahmen für eine wiederholte Ausführung eines Workflows.<br />

Das Bulk-Feld ist an Parameter gebunden, für die das Workflow-Feld insgesamt abgearbeitet wird.<br />

Wir haben diese Theorie der Workflow-Felder mit den Kompositionsoperationen für Workflows harmonisiert, damit<br />

wird eine entsprechende Entfaltung der komplexen Workflow-Felder vornehmen können.<br />

Workflow-Felder erlauben <strong>of</strong>t eine einfache Darstellung durch entsprechende Ausdrücke. Können Workflow-<br />

Felder durch eine Stammform spezifiziert werden, d.h. durch einen generischen Workflow.<br />

Generische Workflows stellen ein Analogon zu generischen Operationen wie insert, delete und update dar, bei<br />

denen eine Instantiierung durch Angabe der Strukturen der Typen erfolgt, für deren Klassen sie angew<strong>and</strong>t werden.<br />

Ebenso wie generische Operationen können generische Workflows durch Instantiierung in konkrete Workflows<br />

überführt werden. Die Parameter können auch abhängig vonein<strong>and</strong>er sein. Wir unterscheiden hierbei die folgenden<br />

speziellen Typen:<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 588<br />

Entfaltbare Workflows sind generische Workflows mit einem generischem Laufzeit-Workflow, bei denen die instantiierbaren<br />

Parameter keine Nebenbedingungen auf <strong>and</strong>ere Parameter besitzen. Sie können zur Laufzeit voll<br />

entfaltet werden. Typische entfaltbare Workflows sind Workflows für Gruppenarbeitsplätze, die jedem Mitglied<br />

die gleiche Arbeitsplattform bieten.<br />

Parallelisierte Workflows sind generische Workflows, bei denen ein Zwischenst<strong>and</strong> und To-Do-Listen mitgeführt<br />

werden und zur Laufzeit mit entsprechenden Werten belegt werden können, die zu <strong>and</strong>eren Workflows Beziehungen<br />

besitzen z.B. durch Ressourcen-Sharing und gemeinsam mit diesen ausgeführt werden können.<br />

Multiple-choice Workflows sind generische Workflows, die Varianten für Rollen, für die freie Auswahl von Daten<br />

und die Bündelung mit <strong>and</strong>eren Workflows bereitstellen.<br />

Transaktions-basierte Meta-Workflows sind generische Workflows, deren Ausführungsmodell eine Ressourcen- und<br />

Rollenverwaltung einschließt, die auch über Rücknahme- oder Kompensationsteilfelder verfügen und deshalb<br />

einer Transaktionssemantik unterliegen.<br />

Ein entfalteter Workflow ist ein vollständig instantiierter Workflow. Alle Parameter eines entfaltbaren Workflow sind<br />

mit entsprechenden Werten belegt. In Bild 13 wird die Beziehung zwischen einem generischen Workflow und einem<br />

entfalteten Workflow dargestellt. Ein entfalteter Workflow ist demzufolge ein Durchlauf oder eine spezielle Instanz<br />

eines generischen Workflows.<br />

Kohärenz und innerer Zusammenhang in generischen Workflows.<br />

Workflow-Entwicklung ist anerkanntermaßen ein sehr komplexer Prozeß. Die Geschäftsprozesse sollen sowohl<br />

einer Vielfalt von Anforderungen der Anwendungen genügen als auch effizient mit den Ressourcen Zeit und Speicher<br />

umgehen. Die Komplexität der Anwendungen selbst bedingt <strong>of</strong>t eine sehr komplexe S<strong>of</strong>tware. Meist ist auch<br />

zum Entwicklungsbeginn nicht einmal klar, welche Aufgaben das Produkt lösen soll. Oft haben die Besteller nur<br />

ungefähre Vorstellungen über den Funktionsumfang. Hinzu kommt, daß sich sogar schon im Verlaufe der Entwicklung<br />

der S<strong>of</strong>tware die Anforderungen ändern. Da Workflows <strong>of</strong>t über einen längerem Zeitraum die Anwendungen<br />

unterstützen, erfähren sie dabei vielfältige Modifikationen und überdauern selbst auch Generationen von verschiedener<br />

Hardware und Grunds<strong>of</strong>tware. Damit entstehen <strong>of</strong>t Systeme, die in ihrer Komplexität und ihrer Verwobenheit den<br />

manieristischen Kathedralen nicht nachstehen. Ein extremes Beispiel eines solchen Systemes sind Anwendungen,<br />

die SAP R/3 als Grundsystem einsetzen. Dieses System ist in der Lage, fast alle <strong>Information</strong>s- bzw. Datenaufgaben<br />

der betrieblichen Praxis zu begleiten, ist aber mittlerweile so komplex, daß für den täglichen Betrieb des Systemes<br />

im Betrieb ein Team von Mitarbeitern notwendig ist und daß jede Modifikation der Anwendung, jede neue - auch<br />

einfache - Aufgabe eine Systemmodifikation mit umfangreicher und lang<strong>and</strong>auernder externer Beratung erfordert.<br />

In der Workflow-Entwicklung werden Modelle als Mittler eingesetzt. Sie sollen zum einem Abbild der relevanten<br />

Aspekte der Anwendung sein und zum <strong>and</strong>eren als Vorbild für das zu entwickelnde System dienen. Es sollen deshalb<br />

alle Aufgaben der Anwendungen hinreichend gut im Modell darstellbar und diese Darstellung auch ausreichend exakt<br />

für die Entwicklung des Produktes S<strong>of</strong>tware sein. Das Modell soll auch dem Entwicklerteam der S<strong>of</strong>tware erlauben,<br />

das zu entwickelnde Produkt zu verstehen, seine Facetten in integrierter Form zu unterstützen und die Qualität des<br />

Produktes zu dokumentieren. Modelle sind deshalb ein zentraler Best<strong>and</strong>teil der S<strong>of</strong>twareentwicklung.<br />

Die Workflows soll unterschiedlichste Aspekte einer Anwendung hinreichend gut berücksichtigen. Damit kann<br />

versucht werden, entweder mit einem Geschäftsprozeßmodell alle Aspekte der Anwendung zu beschreiben oder mit<br />

einer Menge aufein<strong>and</strong>er abgestimmter Modelle diese Aspekte zu erfassen. In den frühen Jahren der Informatik wurde<br />

der Ein-Workflow-Zugang versucht. Mit dem Scheitern dieses Zugangs wurde eine Multi-Modell-Beschreibung<br />

präferiert.<br />

Diese schwach zusammenhängenden Spezifikationen werden in Modell-Ensembles zusammengefaßt. Das Ensemble<br />

kann für jedes Modell eine Weiterentwicklung erfahren, wobei die Beherrschung der Auswirkungen der<br />

Modifikationen dem Entwickler zugemutet wird. Da S<strong>of</strong>tware-Entwicklungen <strong>of</strong>t im Team erfolgen, kann von den<br />

Entwicklern die Beherrschung der Zusammenhänge nicht abverlangt werden. Die Dissertationsschrift erweitert diesen<br />

Zugang hin zu einer abgestimmten Entwicklung von Modellen. Diese Abstimmung basiert auf einer Reihe von<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 589<br />

Integritätsbedingungen, denen ein Modell-Ensemble genügen sollte. Dies führt zum Begriff der am Lehrstuhl entwickelten<br />

Modell-Suite, bei der in analoger Form wie in der Architektur der Zusammenhang zwischen den Elementen<br />

explizit spezifiziert ist und deshalb dann auch in der Entwicklung unterstützt werden kann.<br />

Die unterschiedlichen Modelle reflektieren meist auch die unterschiedlichen Abstraktionsebenen, die während<br />

eines Entwicklungsprozesses auftreten. Einige Modelle dienen der Kommunikation mit dem Anwender, <strong>and</strong>ere der<br />

Dokumentation der entstehenden Produkte.<br />

Ausgangspunkt für die im Projekt angew<strong>and</strong>ten Forschungsergebnisse ist deshalb das Koharärenzproblem:<br />

• Es soll eine Charakterisierung von Kohärenz in einer Modell-Suite der Workflow- oder auch <strong>Information</strong>ssystem-Entwicklung<br />

gefunden werden, mit dem auch unterschiedliche Grade von Kohärenz je nach Entwicklungsst<strong>and</strong><br />

abgebildet werden können.<br />

• Es werden Kriterien zur Bewertung von semantischer Kohärenz benötigt, die flexibel auch für unvollständige<br />

Modelle angew<strong>and</strong>t werden können.<br />

• Es werden Methoden benötigt, mit denen die Kohärenz innerhalb einer Modell-Suite hergestellt und gepflegt<br />

werden kann.<br />

• Die Methoden sollen in Werkzeugumgebungen der realen Workflow-Entwicklung integrierbar sein.<br />

Adaption generischer Workflows für konkrete Anwendungssituationen.<br />

Die entwickelte Theorie und Technologie generischer Workflows erlaubt eine Verwendung von regelbasierten<br />

Transformationsverfahren. Derartige Verfahren sind aus dem Term Rewriting der Computer-<strong>Analysis</strong> und Computer-<br />

Algebra bekannt. Es werden dazu mit entsprechenden Regeln die Workflows zu spezifischen Workflows verfeinert.<br />

Derartige Verfahren wurden bereits für die logistische Bereitstellung von Lerninhalten für e-Learning Websites erfolgreich<br />

eingesetzt. Es war damit möglich, für Inhalte eine Adaption an bereits erfolgreich absolvierte Lernschritte,<br />

an die Verfügbarkeit von Inhalten, an die Lernhistorie, an das Pr<strong>of</strong>il des Lernenden und an die Fehler des Lernenden,<br />

sowie eine Ergänzung um assoziierte Inhalte, Übungs- und Praktikumsaufgaben und Vorwissen vorzunehmen, damit<br />

je nach aktueller Lernsituation der am besten geeignete Lerninhalt zur Verfügung gestellt wird.<br />

Die Verfeinerung wird anh<strong>and</strong> der Eigenschaften von Anwendungssituationen ausgelöst. Damit wird z.B. der<br />

Anwendungskontext injiziert.<br />

Da eine einzelne Verfeinerung eine <strong>and</strong>ere Verfeinerung ausschließen kann muß, die Koheränz von Regeln zur<br />

Verfeinerung geprüft werden. Eine allgemeine Lösung existiert nachgewiesenermaßen nicht. Wir können für das<br />

Projekt jedoch eine Ableitung von Testszenarien wie in Abschnitt 5.6.10 dargestellt nutzen. Damit kann zur Spezifikationszeit<br />

geprüft werden, ob Konflikte bei der Ausführung von Regeln vorliegen. Bestehen solche Konflikte, dann<br />

müssen die entsprechenden Workflow überprüft und verbessert werden.<br />

Generische Funktionen.<br />

Die Beschreibung der Funktionalität einer Anwendung wurde in den ersten Jahrzehnten der Entwicklung von<br />

<strong>Information</strong>ssystemen zurückgestellt, weil die bereitgestellten Mechanismen zur Ad-Hoc-Spezifikation von Anfragen<br />

für die meisten Anwendungen vollständig ausreichend war. Der Erfolg bei der Unterstützung von Anwendungen<br />

durch <strong>Information</strong>ssysteme führte sehr schnell dazu, daß auch <strong>Information</strong>ssysteme in Bereichen angew<strong>and</strong>t wurden,<br />

deren Funktionalität im Voraus schon weitgehend abgesteckt war. Damit wurde auch eine Spezifikation der Funktionalität<br />

im Voraus und im Zusammenhang mit der Spezifikation der Strukturierung erforderlich. Es entst<strong>and</strong>en einen<br />

Reihe von Sprachen wie z.B. EPK und Workflow-Sprachen, mit denen zumindest eine konzeptionelle Beschreibung<br />

der intendierten Funktionalität unterstützt wurde. Meist blieb es jedoch dabei. Eine Schichtung der Funktionalität<br />

nach Sichtweise der Benutzer, Sichtweise der Konzeptionalisierung und Sichtweise der Programmierung wie eine<br />

Drei-Ebenen-Architektur, bei der die Sichtweisen durch externe Sichten auf das konzeptionelle Schema und durch<br />

eine Verfeinerung der konzeptionellen Spezifikation hin zu einer programmtechnischen Umsetzung unterstützt werden,<br />

wurde nicht entwickelt.<br />

Moderne <strong>Information</strong>ssystem-Anwendungen sind mit Herausforderungen verbunden, die durch eine Entwicklung<br />

einer Theorie, Technik und Pragmatik generischer Funktionen bewältigt werden können:<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 590<br />

Drei-Ebenen-Spezifikation von Funktionalität: Die Funktionalität muß sowohl für einzelnen Sichtweisen der Anwendung<br />

als auch konzeptionelle sowie auch für die Implementation effektiv und integriert beschrieben werden.<br />

Abstrakte Beschreibung von Funktionalität von Geschäftsprozessen und Anwendungen: Funktionen müssen<br />

sowohl für den Anwender als auch den Entwickler die gleiche Semantik besitzen oder in einer Semantik-<br />

Mannigfaltigkeit verwendet werden, die eine gleichartige Verwendung unabhängig von der gewählten Abstraktion<br />

erlaubt.<br />

Abbildung von abstrakten Spezifikationen auf konzeptionelle und prozedurale: Um eine vollständige Unterstützung<br />

der unterschiedlichen Abstraktionsstufen zu unterstützen bedarf es eines Verfeinerungsbegriffes, der auch eine<br />

Verfeinerung der Funktionalität einer Gesamtanwendung in unterschiedlichen Fertigungsständen erlauben<br />

muß. Dieser Verfeinerungsbegriff muß durch explizite Abbildungsmechanismen unterstützt werden.<br />

Flexibilisierung der Spezifikation von Funktionalität: Funktionen können je nach Anwendung, je nach Benutzer,<br />

je nach Benutzungshistorie, je nach Systemumgebung unterschiedlich realisiert sein. Deshalb ist es sinnvoll<br />

auch die Spezifikation der Funktionalität in dieser Allgemeinheit und mit einer derartig hohen Flexibilisierung<br />

vorzunehmen.<br />

Entwicklung von Adaptionsmechanismen für Funktionalität: Last but not least, all diese Facetten, Sichtweisen,<br />

Abstraktionsstufen, Verfeinerungen und Adaptionen müssen auch automatisch unterstützt werden. Deshalb<br />

müssen auch entsprechende Adaptionsmechanismen ausgearbeitet werden und zumindest mit einem Prototypen<br />

implementiert werden.<br />

Das Konzept der generischen Funktionen wurde erstmalig 2006 13 auf der Entity-Relationship-Konferenz vorgestellt<br />

und diente der Dissertationsschrift von A. Bienemann 14 als zentrales Konzept. Die dabei entst<strong>and</strong>ene S<strong>of</strong>tware<br />

kann als Erfahrungsvorlage für den Prototypen in diesem Projekt dienen. Es setzt auf dem Konzept des Government<br />

<strong>and</strong> binding von N. Chomsky 15 auf. N. Chomsky schlug mit diesem Zugang eine universelle Theorie natürlicher<br />

Sprachen vor. Sie fußt auf der Beobachtung beim multi-sprachlichen Sprechakt. Dieser findet in zwei Etappen statt.<br />

Eine universelle Grammatik kann nach Chomsky einem Zwei-Schritt-Verfahren folgen: In einem ersten Schritt<br />

werden für den Sprachakt notwendige Konzepte aus einer D-Struktur herausgefiltert. Dazu werden α-Regeln verwendet.<br />

Danach wird der Ausdruck mit β-Regeln zu S(entence)-Strukturen geformt. S-Strukturen hängen vom konkreten<br />

Ziel in einem Sprechakt sein und können sowohl auf schriftliche oder auch mündliche Formen orientieren. Die allgemeine<br />

Umformung ist in Abbildung 14 gegeben.<br />

Lexikon der Basiskonzepte ✲ D-Struktur<br />

❄ α Regeln<br />

Stil und phonetische Regeln<br />

✾<br />

Phonetische Form<br />

S-Struktur<br />

β Regeln<br />

3<br />

Logische Form<br />

Abbildung 14: Das schrittweise Erzeugen eines Ausdrucks in der Government-<strong>and</strong>-Bindung-Theorie<br />

Dieses Konzept kann auch für die schrittweise Erzeugung von Funktionen in Systemen genutzt werden. Im ersten<br />

Schritt findet mit α-Regeln eine Umformung eines generischen Konzeptes in eine Funktionsklasse mit einem<br />

Transformer wie in Abbildung 15 statt. Dazu wird die verfügbare <strong>Information</strong> und eine Menge von Steuerregeln<br />

genutzt.<br />

Im zweiten Schritt werden β-Regeln angew<strong>and</strong>t, um aus der Lösungsklasse der Funktionen die spezifischen Funktionen<br />

zu entfalten. In Abbildung 16 wird darstellt, wie in einem zweiten Schritt anh<strong>and</strong> vorh<strong>and</strong>ener <strong>Information</strong> mit<br />

13 Es wurde zuvor bei der Entwicklung von Web-<strong>Information</strong>ssystemen z.B. für die Entwicklung von Städteportalen erfolgreich eingesetzt.<br />

14 A. Bienemann. A generative approach to functionality <strong>of</strong> interactive information systems. PhD thesis, CAU Kiel, Dept. <strong>of</strong> Computer<br />

Science, 2007.<br />

15 N. Chomsky. Some concepts <strong>and</strong> consequences <strong>of</strong> the theory <strong>of</strong> government <strong>and</strong> binding. MIT Press, 1982.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 591<br />

Generic function<br />

<strong>Information</strong><br />

✲<br />

Inject<br />

❄<br />

Transformer @<br />

Functionalisation 1<br />

✛Control<br />

rules<br />

compile(source lang,target lang)<br />

variable type := type expression<br />

apply restriction<br />

❄<br />

Function class<br />

Abbildung 15: Die Umformung generischer Konzepte in spezifisch angepaßte Konzepte<br />

einer spezifischen Menge von Steuerungsregeln aus einer Funktionsklasse eine adäquate Funktion ausgewählt werden<br />

kann.<br />

Function class<br />

<strong>Information</strong><br />

✲<br />

Inject<br />

❄<br />

Transformer @<br />

Functionalisation2<br />

✛Control<br />

rules<br />

connection := database<br />

database := ....<br />

view consumed := ....<br />

view produced := ...<br />

view communicated := ...<br />

apply restriction<br />

❄<br />

Specific function<br />

Abbildung 16: Die Umformung von spezifischen Funktionen zu spezifischen Funktionen<br />

Generische Funktionen sind Funktionen F = (Dom, φ, F, ψ, Rng) mit freien Konfigurationsparametern, mit<br />

Prädikaten (φ, ψ) für den Bildbereich Rng und den den Urbildbereich Dom. Eine abgeleitete Funktion wird aus<br />

F = θ(F 1 , ..., F m ) durch eine Ausprägung und Instantiierung dieser Parameter und eine Instantiierung der Prädikate<br />

erhalten.<br />

Eine typische generische Funktion ist die Suche. Sie kombiniert sieben verschiedene Arten von Suchen: Stellen<br />

einer wohlformulierten Anfrage mit Kenntnis der Strukturierung und Erreichbarkeit, Suche in bekannten Datenbest<strong>and</strong>,<br />

Anfrageformen (Masken,...) mit Suchtermen, Aufspüren und Herausstöbern, Suche nach Assoziationen<br />

und Hineintauchen, Umherlavieren und Nachgraben und Umherspringen (zapping). Diese Formen hängen außerdem<br />

noch vom Kontext, den Unterstützungsfunktionen und den Benutzern ab. Zum Kontext gehören sowohl das<br />

vorh<strong>and</strong>ene Datenmaterial, die Zusammenhänge innerhalb dieser Daten, die Unterstützung für eigene Suchablagen<br />

und die bisherige Suchhistorie. Typische Unterstützungsfunktionen sind Funktionen zur Führung, für den Überblick,<br />

zur Zurückführung z.B. zur Vermeidung von Hänsel & Gretel Suche, zum Hineinstechen, zum browsing, zum zapping,<br />

für Erinnerungshilfen, für Veränderungsinformation, für den eigenen Schreibtisch und den Arbeitsraum, zur<br />

Unterstützung bei Formulierung (z.B. durch Vorschläge zur Formulierung, Vorschläge anh<strong>and</strong> erreichbarer Daten,<br />

Verfeinerung und Auswahl, Transformation je nach Daten, linguistische Hilfen (Synonyme, Troponyme, ...)). Vorlieben<br />

des Suchenden determinieren die Ausprägung.<br />

Eine Funktionalisierung (S, F, Σ, s 0 ) einer generischen Funktion F kann durch drei Dimensionen wie in Abbildung<br />

17 gekennzeichnet werden:<br />

1. Das Instantiieren der Parameter, die Einbettung in die entsprechende Datenräume und deren Strukturierung S,<br />

eine Reihe von dynamischen Konsistenzbedingungen Σ und eine Anfangspunkt s 0 in einem Raum.<br />

2. Die Anreicherung um Kontext der konkreten Anwendung, der vorh<strong>and</strong>enen Daten, der nutzbaren Unterstützung<br />

durch Systeme, der Community <strong>of</strong> Practice und der Benutzungshistorie.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 592<br />

3. Die Verfeinerung der Funktionen hin zu spezifischeren Funktionen mit einem Verfeinerungsbegriff aus der<br />

Theoretischen Informatik.<br />

✻<br />

Refinement<br />

(S 1 , F 1 , Σ 1 , s 1 0)<br />

✿ ...<br />

❥<br />

(S 2 , F 2 , Σ 2 , s 2 0)<br />

✲<br />

Context<br />

embedding<br />

✠<br />

Instantiation<br />

Abbildung 17: Ausprägungsdimensionen für generische Funktionen<br />

Wortfelder und generische Funktionen.<br />

Sowohl die Spezifikation der Strukturierung als auch die Spezifikation der Funktionalität lebt von der lexikalischen<br />

Semantik der verwendeten Wort oder Konzepte. Mit einem Wort wie Produkt oder Person ist bereits eine<br />

rudimentäre semantische Erklärung für den Datenbanktypen, seine wesentlichen Eigenschaften (bzw. Attribute) und<br />

Verarbeitungmechanismen gegeben. Diese Wortsemantik wird im Spezifikationsprozeß schrittweise verfeinert zur<br />

Spezifikation von Typen mit einer Ausformulierung der Strukturierung, der Sichtweisen auf Daten diesen Typs und<br />

ihrer Verwendung und Speicherung. Diese Herangehensweise hat sich nicht nur als sehr mächtig erwiesen, sondern<br />

wurde allgemein akzeptiert und intuitiv in allen Anwendungen eingesetzt. Für <strong>Information</strong>ssysteme kann man deshalb<br />

eine Abstraktionsschichtung in eine Anwendungsschicht, eine Geschäftsprozeßschicht, eine Konzeptionalisierung<br />

und eine Implementation vornehmen. Es ist allerdings verwunderlich, daß eine Spezifikation der Funktionalität<br />

in dieser Form bislang nur rudimentär unterstützt wird.<br />

Die Lexika natürlicher Sprachen lassen sich durch Wortfelder charakterisieren. Ein Wortfeld stellt i.a. sowohl<br />

syntaktisch als auch semantisch und pragmatisch Worte in Wortklassen zusammen<br />

Ein typisches einfaches Wortfeld ist das sagen-sprechen-reden-Wortfeld, das eine Form der Kommunikation umfaßt.<br />

Es umfaßt dabei sechs Facetten mitteilen (als feststellen, bekanntgeben, rufen, schreien, flüstern, schwätzen),<br />

erwähnen, fragen (sich erkundigen, erfragen, nachfragen), auffordern (bitten, befehlen, vorschlagen), antworten (erwidern,<br />

ausweichen) und wiederholen).<br />

Wortfelder kombinieren dabei Phonetik, Morphologie, Syntax und Semantik sowie auch Pragmatik wie in Abbildung<br />

18. Diese Struktur erweitert den Rahmen für Wortfelder, der in der Linguistik benutzt wird, um Aspekte, die für<br />

Informatikanwendungen ebenfalls erfaßt werden müssen.<br />

Die Beschreibung der H<strong>and</strong>lungsabläufe lehnen wir dabei an die Formenlehre an. Die Theorie der Wortfelder<br />

kann zu Konzeptfeldern bzw. Konzeptrahmen erweitert werden, durch eine Kontextualisierung (oder Konjugation)<br />

und durch Instantiierung der Parameter<br />

Akteurspr<strong>of</strong>ile und -portfolio,<br />

Wiederholungspr<strong>of</strong>il,<br />

Zeitpr<strong>of</strong>il,<br />

deontischer Modus mit imperativen, konjunktiven und indikativen Ausprägungen und<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 593<br />

Semantische Fälle<br />

Morphologische<br />

Gestalt<br />

Referentielle<br />

denotationale<br />

Semantik<br />

Charakteristiken<br />

Akteurskategorie<br />

Prozeßkategorie<br />

Bedingungen<br />

Parameter<br />

Anwendungsgebiet<br />

Konzepte<br />

Syntax<br />

Grammatisches Muster<br />

Basisform Bedingungen<br />

Wortmenge<br />

Parametermuster<br />

Objekt<br />

Subjekt<br />

Optionalität<br />

*<br />

Wortfeld<br />

Varianten der<br />

Parameter<br />

Sender<br />

Empfänger<br />

Inhalt<br />

Inhalt<br />

Historie<br />

Nutzung<br />

Kernsemantik<br />

Bedeutung<br />

Semantische Invarianten<br />

Dialogschritte<br />

Verteilung<br />

Akteur<br />

Szenen<br />

Stammsemantik<br />

Valenz<br />

Zeit<br />

Umstände<br />

Anwendungsmuster<br />

Abbildung 18: Die Struktur eines Wortfeldes<br />

Aktionsform und H<strong>and</strong>lungsrichtung zur Darstellung der Beziehung zwischen Akteur und H<strong>and</strong>lungsablauf.<br />

Ein Konzeptfeld ist ein generisches Konzept, aus dem ein Konzept durch Instantiierung einer Reihe von Merkmalen<br />

abgeleitet wird.<br />

Konstruktion generischer Workflows.<br />

Generische Funktionen können als atomare Aktivitäten innerhalb von generischen Workflows verwendet werden.<br />

Eine Spezifikation kann an Workflow-Spezifikationssprachen wie BPMN angelehnt werden, wobei dann allerdings<br />

eine Verbesserung der entsprechenden St<strong>and</strong>ards hin zu wohldefinierten Sprachen vorher entwickelt werden muß 16 .<br />

Die Konstruktion generischer Workflows kann dabei wie folgt erfolgen:<br />

Ein atomarer generischer Workflow ist eine generische Funktion.<br />

Einfache Steueranweisungen sind<br />

die sequentielle Ausführung ; , bei der generischer Workflows sequentiell nachein<strong>and</strong>er ausgeführt werden,<br />

wobei die Semantik des ersten generischen Workflows die Semantik des zweiten generischen Workflows<br />

ergänzt und der leere generische Workflow entsteht, wenn die Vereinigung der Semantik zum Widerspruch<br />

führt,<br />

parallele Verzweigung | ∧ | , bei der generische Workflows parallel ausgeführt werden können und das terminiert,<br />

wenn beide generischen Workflows terminieren,<br />

exklusive Auswahl | ∨ | , bei der genau ein generischer Workflow zur Ausführung nichtdetermistisch ausgewählt<br />

werden kann,<br />

Synchronisation | sync | , die eine parallele Ausführung mit einer Synchronisationsbedingung zuläßt, und<br />

einfaches Mischen + , bei dem zwei alternative generische Workflow verbunden werden können.<br />

16 E. Börger <strong>and</strong> B. Thalheim. A method for verifiable <strong>and</strong> validatable business process modeling. In S<strong>of</strong>tware Engineering, Lecture Notes<br />

in Computer Science 5316, 59 – 115. Springer, 2008.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 594<br />

Erweiterte Verzweigungs- und Synchronisationsanweisungen sind<br />

mehrfache Auswahl, bei der verschiedene Ausführungspfade gewählt werden können,<br />

mehrfaches Mischen , bei dem verschiedene Ausführungspfade gemischt werden können,<br />

Diskriminator, bei dem verschiedene Ausführungspfade ohne Synchronisation gemischt werden können, wobei<br />

Teile von generischen Workflow nur einmal ausgeführt werden,<br />

n-out-<strong>of</strong>-m.Verbund, bei dem verschiedene Ausführungspfade mit partieller Synchronisation gemischt werden<br />

können, wobei Teile von generischen Workflows nur einmal ausgeführt werden, und<br />

synchronisierter Verbund, bei dem verschiedene Ausführungspfade mit vollständiger Synchronisation gemischt<br />

werden können, wobei Teile von generischen Workflows nur einmal ausgeführt werden.<br />

Strukturelle Steueranweisungen sind<br />

Wiederholung ∗ , bei der generische Workflows beliebig <strong>of</strong>t ausgeführt werden können und<br />

implizite Termination ↓ , die eine Beendigung des generischen Workflows hervorruft.<br />

Datenabhängige Steueranweisungen sind<br />

statische Steueranweisungen , deren Steuerung mit Bedingungen erfolgt, die bereits zur Compilezeit geprüft<br />

werden können,<br />

statische Steueranweisungen, deren Steuerung mit Bedingungen erfolgt, die erst zur Laufzeit geprüft werden<br />

können,<br />

Steueranweisungen mit A-priori-Laufzeitannahmen erlauben eine Voreinstellung durch Erzeugung von einer<br />

beschränkten Menge von Wiederholungen und<br />

Steueranweisungen mit Synchronisationsbedingen, bei denen beliebig viele Alternativen parallel ausgeführt<br />

werden können und eine Synchronisation bei Abschluß erfolgt.<br />

Zust<strong>and</strong>sbasierte Steueranweisungen sind<br />

die verzögerte Auswahl, bei der alle Alternativen ausgeführt werden und eine Auswahl der Alternative erst<br />

nach Ausführung erfolgt,<br />

die verbundene parallele Ausführung, bei der die Alternativen in zufälliger Reihenfolge sequentiell ausgeführt<br />

werden, und<br />

die meilenstein-basierte Steuerung, bei der eine Aktivität ausgeführt wird, bis ein Meilenstein erreicht ist.<br />

Abbruchanweisungen sind<br />

Abbruchaktion , bei der eine generische Funktion abgebrochen wird, und<br />

Fallabbruch , bei der ein Fall abgebrochen wird.<br />

Diese Algebra kann genutzt werden, um generische Workflows zu konstruieren. Mit dieser Algebra führen wir eine<br />

strikte Klammerung ein. Damit sind nicht mehr alle Ausdrücke darstellbar, die in der Workflow-Literatur breit<br />

diskutiert werden.<br />

Wir sind damit in der Lage, klassische Fallen der Workflow-Sprachen für generische Workflows zu vermeiden.<br />

Diese Fallen sind relativ leicht aufzulösen, wenn man die Resultatssemantik betrachtet. In diesem Falle sind beide<br />

Programme durch AND-AND-Programme repräsentiert. Betrachtet man dagegen die Ausführungssemantik, dann<br />

klaffen die beiden Programme ausein<strong>and</strong>er. Noch schwieriger sind Workflow-Semantiken, bei denen eine Synchronisation<br />

sowohl am Ende als auch zu Beginn einer Verzweigung erfolgen kann. In diesem Fall erhält auch die Verzweigung<br />

eine <strong>and</strong>ere Semantik.<br />

Aus diesen Gründen bevorzugen wir die etwas striktere Semantik der generischen Workflows. Sie hat zugleich<br />

auch den Vorteil, eine Verfeinerung zuzulassen und auch Konflikte auf Datenebene durch Zurücknahme auflösen zu<br />

können.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 595<br />

Für einen Workflow können wir einen Ablauf durch Verlaufsschichten darstellen. Jeder Schritt in einem Workflow<br />

kann mit einer natürlichen Zahl assoziiert werden, wobei in Zyklen sowohl die natürliche Zahl für den Zyklus als<br />

auch die Verlaufszahl im Zyklus verwendet wird. Diese Nummerierung ist möglich, weil unsere Workflow-Definition<br />

nur wohl-geklammerte Strukturen (Fitch-Strukturen) zuläßt. Diese Nummerierung kann auch dicht gewählt werden,<br />

so daß zu jeder Verlaufszahl n auch der Vorgänger n−1 (für n > 1) und der Nachfolger n+1 (für n < max) als Verlaufszahl<br />

existiert. Ein Verlaufsschicht ist durch ihre Verlaufszahl definiert. Verlaufsschichten stellen die schrittweise<br />

und ggf. parallele Ausführung eines Workflows dar.<br />

Techniken der Verfeinerung.<br />

Die Verfeinerung von Prozessen und Berechnungen ist in der Informatik ein stets aktuelle und schwierige Aufgabe.<br />

Hinzu kommt die Aufgabe, zur Laufzeit auch den Bearbeitungskontext zu berücksichtigen. Wir können zur<br />

Verfeinerung von Workflows den Ansatz der Abstract-State-Machines nutzen. Mit einer Verfeinerung eines Workflows<br />

soll sich das Verhalten des allgemeineren Workflows zumindest für den Betrachter nicht ändern.<br />

Damit kann man den Verfeinerungsmechanismus über der Menge der beobachteten Zustände und der beobachteten<br />

Ereignisse definieren. Ein Workflow verfeinert einen abstrakteren Workflow, wenn zum einem das Verhalten<br />

für die beobachteten Zustände und die beobachteten Ereignisse sich durch eine Vergröberung auf den abstrakteren<br />

Workflow in der gleichen Form darstellt und zum <strong>and</strong>eren alle Abläufe auf dem abstrakteren Workflow sich auch in<br />

dem verfeinerten beobachten lassen.<br />

Diese Form der Verfeinerung kann genutzt werden, um mit einer Y -Verfeinerungstechnik zu arbeiten. Es wird<br />

zum einem der generische Workflow und zum <strong>and</strong>eren der konkrete Workflow im Kontext betrachtet. Für diese<br />

beiden Workflows wird eine gemeinsame Verfeinerung betrachtet, so daß sowohl der Kontext als auch der eigentliche<br />

Workflow sich im gemeinsamen verfeinerten Workflow wiederspiegeln lassen.<br />

Da sich die Prozesse über generischen Funktionen definieren lassen, haben wir es bei der Y -Verfeinerung entweder<br />

mit einer Verfeinerung der generischen Funktionen oder mit einer Verfeinerung der Workflows an sich zu tun.<br />

Die erste Form entspricht der Kontext-Injektion für generische Funktionen. Die zweite Form ist i.a. komplexer. Eine<br />

allgemeine Lösung ist dafür nachgewiesenermaßen nicht zu finden.<br />

Es kann jedoch eine konservative Verfeinerung entwickelt werden. Wir gehen dazu von der Struktur des Workflows<br />

aus und schränken die Verfeinerungsoptionen wie folgt ein.<br />

Einfache Steueranweisungen wie die sequentielle Ausführung, die parallele Verzweigung, die exklusive Auswahl,<br />

die Synchronisation werden verfeinert durch Ersetzen einer Aktivität im Workflow durch eine vollständige<br />

Workflow im Falle einer sequentiellen Ausführung, durch eine exklusive Ausweitung der Fälle für parallele<br />

Verzweigung und durch eine Erweiterung für das einfache Mischen.<br />

Erweiterte Verzweigungs- und Synchronisationsanweisungen werden nicht verfeinert.<br />

Strukturelle Steueranweisungen können nicht verfeinert werden.<br />

Datenabhängige Steueranweisungen können verfeinert werden durch die Unterlegung verfeinerter Datenstrukturen,<br />

aus denen die allgemeineren über Sichtenkonzepte dargestellt werden können.<br />

Zust<strong>and</strong>sbasierte Steueranweisungenn können nicht verfeinert werden.<br />

Abbruchanweisungen können nicht verfeinert werden.<br />

Diese Verfeinerung wird mit den oben beschriebenen Government-<strong>and</strong>-Binding-Techniken unterstützt, so daß damit<br />

eine programmtechnische Unterstützung entwickelt werden kann.<br />

Injektion von Kontext.<br />

Der Kontext für Workflows ergibt sich aus der konkreten Anwendung, den vorh<strong>and</strong>enen Daten, der nutzbaren<br />

Unterstützung durch Systeme, der Community <strong>of</strong> Practice und der Benutzungshistorie. Der Kontext für den konkreten<br />

Workflow wird außerdem durch die Historie des Workflows mit dargestellt. Damit kann der Kontext schrittweise mit<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 596<br />

der Reihenfolge der Ausführung der generischen Funktionen auch in den Workflow injiziert werden, wobei ein einmal<br />

genutzter Kontext nicht überschrieben werden darf für eine spätere Verlaufsschicht.<br />

Entfaltung aktueller Workflows aus generischen Workflows.<br />

Wir nutzen für die Entfaltung aktueller Workflows aus generischen Workflows sowohl die oben dargestellten<br />

Verfeinerungstechniken als auch die Definition der generischen Funktionen sowie eine Technik der schrittweisen<br />

konservativen Ausweitung des Kontextes und der Instantiierung. Eine Entfaltung ist vollständig, wenn alle Parameter<br />

mit Werten gebunden sind.<br />

Entfaltung durch Verfeinerung: Es wird der Workflow konservativ verfeinert.<br />

Entfaltung durch Entfaltung generischer Funktionen: Die generischen Funktionen werden in der Reihenfolge entfaltet,<br />

in der sie im Workflow vorkommen, d.h. entsprechend der Verlaufsschichten. Zusammenhänge bei den<br />

Parametern, bei der Instantiierung und beim Kontext werden dabei mit Techniken attributierter Grammatiken<br />

fortgeschrieben.<br />

Entfaltung durch Ausweitung des Kontextes: Der Kontext wird ebenfalls schrittweise entsprechend der Verlaufsschichten<br />

in die generischen Funktionen und die Steuerung injiziert.<br />

Entfaltung durch Instantiierung: Alle generischen Funktionen werden entsprechend den Verlaufsschichten schrittweise<br />

instantiiert. Zusammenhänge bei der Instantiierung werden mit Techniken attributierter Grammatiken<br />

fortgeschrieben.<br />

Diese Entfaltung kann auch bereits zur Spezifikationszeit für alle wesentlichen Szenarien auf Konsistenz getestet<br />

werden. Es werden dazu Szenarien mit einem Storyboarding-Ansatz 17 erhoben. Diese Szenarien werden genutzt,<br />

um daraus Testfälle für Abläufe von Workflows abzuleiten. Diese Testfälle werden dann gegen eine vollständige<br />

Entfaltung der Workflows getestet. Dieser Test wird zur Spezifikationszeit durchgeführt, so daß damit Abläufe zur<br />

Laufzeit nicht durch Tests behindert werden.<br />

Ist ein generischer Workflow gegenüber den Szenarien konsistent, dann kann mit den Entfaltungsmethoden zur<br />

Laufzeit aus einem generischen Workflow ein aktueller Workflow schrittweise entfaltet werden. Diese Entfaltung ist<br />

damit konservativ.<br />

Extract-Load-Transform-Prozesse<br />

In der Informatik gibt es einige universelle Verarbeitungsmuster. Eines der universellsten für den Bereich der Datenbankund<br />

<strong>Information</strong>ssysteme ist das Extraktion-Transformation-Laden-Muster (ETL). Es wird in der <strong>Information</strong>sverarbeitung<br />

breit angew<strong>and</strong>t und wurde als universelles Austauschverfahren insbesondere im Bereich des Data-Warehousing<br />

genutzt. ETL-Verfahren nutzen in starkem Maße die Sichtenbildung bzw. auch den Sichten-Update-Mechanismus,<br />

den die großen DBMS bereitstellen. Dies unterliegt aber dem Plattform-Paradigma der einzelnen Systeme und ist<br />

deshalb nicht universell. So kann man nur von relationalen Systemen eine Unterstützung erwarten. Heterogene Systeme<br />

unterstützen deshalb einen solchen Mechanismus nicht.<br />

Extraktion, Transformation und Integration von Daten.<br />

Für Datenwarenhaus-Systeme stellt sich der ETL-Prozeß nach Kimball wie in Bild 19 dar.<br />

Noch begrenzter wird der ETL-Mechanismus durch eine fehlende Durchleuchtung und damit durch eine rudimentäre<br />

Unterstützung der Transformationsverfahren. Damit werden dem ETL-Muster Grenzen gesetzt, die nur<br />

durch die Unzulänglichkeit der Systeme verursacht werden nicht aber am ETL-Verfahren selbst liegen.<br />

Der ETL-Prozeß.<br />

17 Dieser Ansatz hat sich für die Entwicklung von großen Websites in mehr als einem Schock Projekten bewährt und wurde erstmals eingeführt<br />

in A. Düsterhöft <strong>and</strong> B. Thalheim: Conceptual modeling <strong>of</strong> internet sites. In Proc. ER’01, LNCS 2224, pages 179–192. Springer,<br />

2001.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 597<br />

Abbildung 19: Architektur des klassischen ETL-Prozesses nach Kimball (2004)<br />

Der Extraktionsprozeß gründet sich auf der Kenntnis der Datenstrukturierung und der Metadaten zu einer Datenbank.<br />

Er wird derzeit als Sichtenkonzept aufgesetzt. In Web-<strong>Information</strong>ssystem-Anwendungen des Lehrstuhles<br />

Technologie der <strong>Information</strong>ssysteme und seiner Vorgänger wurde dieser Zugang um den Apparat der Medientypen<br />

erweitert. Diese Typen verfügen über eine stereotypische und außerdem eine spezifische erweiternde Funktionalität,<br />

damit mit den Daten auch direkte Berechnungsprozesse möglich sind. Dieser Apparat erweitert die klassischen<br />

Zugänge der Objektorientierung, die derzeit den St<strong>and</strong>ard der Programmierung stellen.<br />

Der Transformationsprozeß ist im Rahmen des Compiler-Zuganges heute tiefgründig ausgearbeitet. Es werden<br />

z.B. mit einem Vier-Paß-Compiler Programme in einer Source-Sprache analysiert, semantisch aufbereitet, transformiert<br />

in eine Ziel-Sprache und nachfolgend anh<strong>and</strong> des Performanzpr<strong>of</strong>ils des Zielsystemes optimiert. Außerhalb<br />

von Compilern wurde der Zugang jedoch selten angew<strong>and</strong>t. Am Lehrstuhl Technologie der <strong>Information</strong>ssysteme und<br />

seiner Vorgänger wurde im Rahmen des Co-<strong>Design</strong>-Zugangs für Datenbankanwendungen dieser Zugang genutzt, um<br />

auch eine automatische Transformation von Daten vorzunehmen, wobei die Transformation sowohl vom Namensraums<br />

bzw. der Signatur als von der verwendeten Deklaration der formalsprachlichen Ausdrücke sowie auch von den<br />

verwendeten Datenbankschemata her betrieben werden kann.<br />

Der Integrationsprozeß bzw. der Ladeprozeß von Daten in Datenbanken wird gewöhnlich über updatefähige Sichten<br />

unterstützt. Aufgrund des Update-Problems für Sichten sind in industriellen Anwendungen auch <strong>and</strong>ere Zugänge<br />

entwickelt worden. Einer der am Lehrstuhl erprobten Zugänge ist die Ableitung einer Update-Infrastruktur, in der<br />

solche Daten vorgehalten werden, die zur eindeutigen Identifizierung von zu modifizierenden Daten notwendig sind.<br />

Dieser Zugang zu ETL erlaubt auch eine Pflege der Integritätsbedingungen, so daß auch ein Qualitäts-Update<br />

erfolgen kann. Dazu wird das Portfolio der Integritätsbedingungen neben der Deklaration vorgehalten. Es kann damit<br />

auch erreicht werden, daß Verletzungen der Bedingungen nicht zum Abbruch führen, sondern eine Reihe von<br />

Zusatzprogrammen zur separaten Beh<strong>and</strong>lung der Problem anstoßen.<br />

Erweiterte ETL-Techniken.<br />

Da Daten nicht immer auf dem gleichen Detaillisierungsgrad benötigt werden, ist es <strong>of</strong>t erforderlich, auch<br />

Aggregations- und Zusammenfassungstechniken zu integrieren. Dies wird durch die existierende Datenbanktechnologie<br />

gut unterstützt. Man wendet dabei erfolgreich auch Techniken der Computerlinguistik an. Es wird dabei<br />

der Eingangsdatenstrom analysiert. Dazu wird auch Kontextinformation eingemischt. Danach wird eine Kondensation<br />

und Zusammenfassung vorgenommen. Im Anschluß wird der Datenstrom annotiert. Es wird insbesondere auch<br />

dem Datenstrom die Strukturierungsinformations beigegegeben. Derartige Techniken werden – wenn auch in sehr<br />

einfacher Form – bei XML-basiertem Datenaustausch verwendet.<br />

Dieser Zugang erlaubt auch die Anreicherung um Funktionalität wie für die Medientypen. Dazu wird eine Erweiterung<br />

um Durchmusterungs-, Annotations- und Exportfunktionen vorgenommen. Damit kann ein Importsystem die<br />

Daten in einfacherer Form flexibel verarbeiten, weil die erforderliche Scheaminformation und auch die erforderliche<br />

Funktionalität vorh<strong>and</strong>en ist.<br />

ETL-Werkzeuge.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 598<br />

ETL-Werkzeuge sind in vielfältiger Form sowohl als St<strong>and</strong>-alone-Produkt als auch als integriertes oder eingebettetes<br />

Produkt vorh<strong>and</strong>en. Sie haben ausgearbeitete graphische Oberflächen, die auch eine einfache Verarbeitung<br />

und Durchmusterung sowie auch Visualisierung gestatten. Damit wird auch die Pflege von Daten unterstützt. Hinzu<br />

kommen Programme, um die Performanz der Be- und Verarbeitung zu skalieren.<br />

Diese Werkzeuge sollen jedoch keine Universalwerkzeuge sein. Sie sind für eine Verknüpfung von Systemen<br />

entworfen und erfordern auch eine h<strong>and</strong>werkliche Spezifikation der Extraktion, der Transformation und der Integration<br />

der Daten. Dies beschränkt auch die breite Nutzung. Es ist insbesondere derzeit nur eine statische ETL-<br />

Prozeßunterstützung vorh<strong>and</strong>en. Dynamische Adaption ist noch nicht vorgesehen.<br />

Schemata des exportierenden Datenbank und der importierenden Datenbank, deren unterlegte Paradigmen und<br />

Spezifikationstile und deren Transformation müssen im Detail bekannt sein. ETL-Werkzeuge sind auch nicht in der<br />

Lage, die Qualität der Daten zu analysieren und die Korrektheit der Transformation nachzuvollziehen. Dies schränkt<br />

die derzeit verfügbare Technik ein, so daß im Rahmen des Projektes eigene Zusatzprogramme entwickelt werden<br />

müssen.<br />

Anwendung der verallgemeinerten ETL-Prozesse für das Data Mining.<br />

Im Rahmen der beiden Exzellenzcluster-Projekte der CAU zu Kiel “Future Ocean” und “Inflammation at Interfaces”<br />

sowie der Graduiertenschule “Human <strong>Development</strong> in L<strong>and</strong>scapes” sind viele Arbeitsgruppen mit Data-<br />

Mining-Teilprojekten beschäftigt. Damit ist ein hoher Beratungsbedarf zur Auswahl der Verfahren, zur Qualität und<br />

Geeignetheit von Daten, zur Beurteilung der erreichten Resultate und zur Weiterbearbeitung mit weiteren Verfahren<br />

entst<strong>and</strong>en. Am Lehrstuhl Technologie der <strong>Information</strong>ssysteme ist deshalb ein Zugang zum systematischen Data-<br />

Mining entst<strong>and</strong>en (Data Mining <strong>Design</strong>). Dieser Zugang erlaubt eine systematische Auswahl von Verfahren, eine<br />

Workflow-Begleitung des Data Mining und eine Integration von ETL-Prozessen nach dem folgenden Muster: Modelle<br />

von Source- und Zieldatenstrukturen werden dargestellt durch entsprechende erweiterte Extraktionsmodelle für<br />

das Source-Modell (insbesondere um Ourput-Sichten M s,t,outp,i für M s ), um entsprechende erweiterte Lademodelle<br />

(insbesondere um Input-Sichten M t,s,inp,j für M t ). Daraus werden Abbildungen über ETL-Prozesse gewonnen.<br />

extract e s,t,i ✲ transform t s,t,i,j<br />

M s M ✲ load l s,t,j<br />

s,t,outp,i M ✲<br />

t,s,inp,j M t<br />

Die Transformation und das nachfolgende <strong>Information</strong>s-Management werden um Techniken für Rekombination,<br />

Refactoring und ggf. Pflege der Daten erweitert. Für das Laden wird eine Datenumgebung aus dem Zielsystem<br />

abgeleitet, so daß Daten aus dem Source-System eindeutig integriert werden können.<br />

Die gleichen Techniken wurden auch verwendet im Unesco-Projekt zur Katastrophennachsorge mit dem N.I.C.T.,<br />

Keihanna, Kyoto, Japan. Es wurde auch hier eine systematische integrierte Datenanalyse mit ETL-Techniken angereichert.<br />

Werkzeuge für das Datenmanagement<br />

Ein integriertes Datenmanagement wird nicht nur zu entsprechenden Werkzeugen zur Abspeicherung und zur Ablage<br />

von Daten führen, sondern auch mit Werkzeugen zur intelligenten Integration und zum intelligenten Import von Daten<br />

und mit Werkzeugen zu einer aufgabenbezogenen Auswertung von Daten je nach Freischaltung und Freigabe führen.<br />

Wir können deshalb ein System, dessen Komponenten in Bild 20 dargestellt werden, als Ziel des Datenmanagement<br />

im Exzellenzcluster uns vorstellen.<br />

Die Realisierung kann in zwei Phasen erfolgen:<br />

Phase 1: Entwicklung von Werkzeugen zur Datenanalyse, zur Datenerfassung und zur Integration von Daten;<br />

Phase 2: Entwicklung einer Kollaborationsplattform für die Arbeitsgruppen am IFM GEOMAR.<br />

Diese Phasen werden durch eine Entwicklung einer Reihe von Werkzeugen begleitet:<br />

1. Werkzeuge der Phase 1 zum Import, zum Export und zur Verwaltung von Daten:<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 599<br />

Content gardening<br />

Data accreditation<br />

<strong>Analysis</strong> portfolio<br />

Workspace<br />

Data cleansing<br />

User pr<strong>of</strong>iles<br />

Generator for<br />

analysis<br />

Acquisition forms<br />

Storage&integration<br />

<strong>Analysis</strong><br />

forms<br />

Active preparation<br />

Data cluster<br />

Access<br />

management<br />

Census<br />

data<br />

Foreign<br />

data<br />

Legacy<br />

data<br />

✲<br />

Tools for<br />

data<br />

✲ import<br />

export<br />

✲<br />

Data sluice<br />

✲<br />

Content<br />

management<br />

system<br />

micro/macro data,<br />

content, concepts<br />

✲<br />

<strong>Analysis</strong> <strong>and</strong> exploration system<br />

Database<br />

extractors<br />

database<br />

mining<br />

user group<br />

firewall<br />

✲ Working team<br />

members<br />

✲<br />

✲<br />

Anonymous<br />

users<br />

Cooperating<br />

users<br />

Abbildung 20: Das intelligente System zur Datenaufbereitung und -auswertung<br />

Werkzeuge für den Import von Daten mit Funktionen zur Extraktion von Daten, zur Bereinigung und Aufbereitung<br />

von Daten und zur Integration von Daten mit bereits existierenden Daten;<br />

Werkzeuge zur Vorbereitung der Datenerhebung auf der Grundlage von Erhebungsformen und -formularen,<br />

von Formularen zur Integration von Fremd- und eigenen Daten in bereits existierende Datenbestände und<br />

für eine Integration von Altdaten-Beständen;<br />

Werkzeuge zur Begleitung von Benutzern während der Vorbereitung zur Erhebung, während der Hypothesenfindung,<br />

während der Konzeptualisierung und während der Integration von Datenbeständen;<br />

Content-Management-Systeme für die Verwaltung von Daten in unterschiedlicher Granularität, Annotation,<br />

unterschiedlicher Benutzung und Freigabe zur Benutzung und zum Export in <strong>and</strong>ere Datenbestände;<br />

Zugriffsverwaltung für den Zugriff auf Daten je nach Freigabe, Benutzungsrechten, Protokollierung der Benutzung.<br />

2. Werkzeuge der Phase 2 zur Unterstützung der Kollaboration zwischen den Gruppen des Exzellenzclusters, mit<br />

nationalen und internationalen Kollaborationspartnern:<br />

Datenschleusen zur automatischen oder gesteuerten Integration von Daten mit entsprechenden Integrationsfunktionen,<br />

Funktionen zur Steuerung der Aufbereitung<br />

Kollaborationswerkzeuge für die schnelle Ad-Hoc- und die systematische Zusammenarbeit von Arbeitsgruppen<br />

mit entsprechenden Partnern während der Analyse, der Integration und der Diskussion von Datenbeständen;<br />

Content-Management-Werkzeuge zum Umgang mit Mikrodaten wie z.B. Sensordaten, mit aggregierten Makrodaten,<br />

mit Auswertungs- und Illustrationsdaten und zur Entwicklung von Konzepten, die mit diesen<br />

Daten erklärt und belegt werden können;<br />

Werkzeuge zur Erstellung und Verwaltung von Benutzungsportfolio und Benutzerpr<strong>of</strong>ilen mit denen für<br />

Benutzer und Benutzungsgruppen auch eine zeitweilige Mitbenutzung von Daten und eine Vervollständigung<br />

von Daten unterstützt werden und mit denen eine Anpassung des Präsentationsformates an die<br />

Benutzung und an die Benutzer je nach Anforderung, nach Portfolio oder Pr<strong>of</strong>il erfolgen kann;<br />

Werkzeuge zur Content-Pflege bei Weiterentwicklung des Datenbest<strong>and</strong>es, bei Integration neuer Datenbestände<br />

und beim (zeitweiligen) Außerkraftsetzen von (ungültigen) Datenbeständen.<br />

5.6.11 Intelligente Monitore und Situationsbeobachter<br />

Bislang sind aus der Literatur nur statische Monitoring-Konzepte bekannt, bei denen ein Monitor als abgeschlossene<br />

Komponente zur Anwendungszeit keine Veränderung mehr erfährt. Solche Monitoren müssen damit mit einer<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 600<br />

Vielzahl von Funktionen ausgerüstet werden, die <strong>of</strong>t den Entwicklungsrahmen sprengen und deshalb nur rudimentär<br />

vorgehalten werden.<br />

Intelligente Systeme sind seit der Entwicklung der Künstlichen Intelligenz ein Ziel für S<strong>of</strong>tware-Systeme gewesen.<br />

Das Gesamtprogramm der KI ist nicht erfolgreich gewesen aufgrund des Anspruchs einer Universallösung.<br />

Erprobte Mechanismen der KI können jedoch für ein selbstadaptives Verhalten von Systemen genutzt werden. Derartige<br />

Mechanismen sind z.B. schon bei Web-<strong>Information</strong>system-Anwendungen integriert worden. Sie finden auch<br />

Anwendung bei der Rechnernetz-Organisation, bei Produktionsplanungs- und -steuerungssystemen, bei Warenwirtschaftssystemen<br />

und in Telekommunikationsanwendungen. Alle diese Anwendungen basieren auf Regeln, mit denen<br />

Parameter von Systemen automatisch verändert werden.<br />

In vielen Anwendungen der Datenanalyse wird derzeit dagegen ein Data-Warehouse-Zugang präferiert. Es werden<br />

die Mikrodaten zu Mesodaten verdichtet. Diese Mesodaten werden in Datenbanksystemen verwaltet und sollen<br />

redundanzarm sein. Die Mesodaten dienen der Erzeugung von Makrodaten für eine Data Warehouse. Dieses nutzt<br />

gewöhnlich hochredundante Daten. Mit der Erhöhung der Redundanz und der Bereitstellung der Daten in vielen Varianten<br />

wird zugleich die Retrieval- und Analyse-Performanz gesteigert. Dadurch sind Makrodatenmengen <strong>of</strong>t riesig<br />

(‘big data’) und relativ schwer zu durchmustern, wenn eine direkte Funktionsunterstützung nicht vorh<strong>and</strong>en ist.<br />

Es kann jedoch ein Zugang genutzt werden, der in Altsystemen mit deren geringer Performanz (Datendurchsatz,<br />

Speicherung) in den 70-igern genutzt wurde. Es werden die direkt interessierenden Daten in speziellen Monitoren<br />

erfaßt. Diese Monitore sammeln die Daten s<strong>of</strong>ort nach Anfallen. Sie haben ein Dateninteressenpr<strong>of</strong>il und können<br />

deshalb dediziert die richtigen Daten interpretieren. Dieser Zugang wurde im Militärbereich bei Projekten des ‘Intelligent<br />

Dust’ wieder entdeckt. Er ist jedoch dort nicht publiziert worden.<br />

Das Konzept des automatischen Situationsbeobachters.<br />

Automatische Situationsbeobachter sind St<strong>and</strong>-der-Technik bei Automotive-Anwendungen. Sie werden jedoch<br />

nicht durch S<strong>of</strong>tware realisiert, sondern sind Teil der elektronischen Hardware. In einem Projekt mit VW Research<br />

hat sich die Arbeitsgruppe Technologie der <strong>Information</strong>ssysteme mit deren Integration in S<strong>of</strong>tware-Systeme für ein<br />

Intelligentes Cockpit in Autos der Premium-Klasse ausein<strong>and</strong>er gesetzt. Es konnte dort mit einer spezifischen Exportund<br />

zum <strong>and</strong>eren einer spezifischen Injektionstechnik eine bessere Verbindung solcher Beobachter mit Auswertungss<strong>of</strong>tware<br />

erreicht werden.<br />

In der S<strong>of</strong>tware-Technologie sind derartige Beobachtungswerkzeuge bislang nicht untersucht. Sie werden jedoch<br />

auch in modernen S<strong>of</strong>tware-Produkten als interne Komponente verwendet. Da derartige Teilsysteme für die S<strong>of</strong>tware<br />

ein Konkurrenzvorteil ist, gibt es dazu eine Vielfalt an Patenten mit einer sehr spezifischen Ausrichtung auf die<br />

jeweiligen S<strong>of</strong>tware-Produkte aber keine wissenschaftlichen oder auch technischen Veröffentlichungen. Ein typisches<br />

Beispiel sind Monitore für die automatische Ableitung von effizienten Anfragebäumen in Datenbank-Management-<br />

Systemen. In einem Projekt zum Speicher-Management von Sybase haben wir diese Monitore kennengelernt.<br />

Die Situationsbeobachter können in verschiedenen Modi laufen je nach Relevanz der aktuellen Situationen. Sie<br />

können für zentrale Daten eine einfache Beobachtung vornehmen. Ändert sich der Zust<strong>and</strong> hin zu einem potentiell<br />

kritischen Zust<strong>and</strong>, dann wird eine Ausweitung der Beobachtung vorgenommen, mit der dann auch detaillierte Analysen<br />

vorgenommen werden können. Dieser Dimmer-Modus ist zugleich eine daten- und kommunikationsarme Form<br />

der Beobachtung.<br />

Das Konzept des agilen und aktiven Situationsbeobachters.<br />

Agile und aktive Situationsbeobachter sind derzeit in keinem S<strong>of</strong>tware-Produkt vorh<strong>and</strong>en. Sie müssen anh<strong>and</strong><br />

der Analyse einer Situation in der Lage sein, <strong>and</strong>ere Komponenten des <strong>Systems</strong> zu veranlassen, das Verhalten und<br />

damit auch die Programme zu ändern. In Elektroniksystemen sind derartige Funktionen in gewissem Maße bereits<br />

integriert. Ihre breite Anwendung ist für moderne Automotive- und Aero-Anwendungen derzeit in Vorbereitung. Dies<br />

wird durch eine ausgefeilte St<strong>and</strong>ardisierung der einzelnen Elemente unterstützt.<br />

Agile und aktive Situationsbeobachter sind eine Notwendigkeit für viele Realtime-Anwendungen. Sie erfordern<br />

aber einen ganzheitlichen Steuerungsmechanismus und eine fundierte Kollaboration von Komponenten. Diese Kollaboration<br />

kann mit einem 3K-Modell 18 unterstützt werden, bei dem die Kommunikation den Austausch von Daten<br />

18 3C steht für Kommunikation + Kooperation + Koordination.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 601<br />

und Nachrichten garantiert, die Kooperation die sichtbaren Prozesse der einzelnen zusammenarbeitenden Elemente<br />

darstellt und die Koordination die Einhaltung der Zusicherungen für die Kollaboration garantiert.<br />

Am Lehrstuhl TIS sind in einer Reihe von Projekten 3K-Kollaborationen unterstützt worden. Dabei wurde die Koordination<br />

auf einem rely-guarantee-tolerate-Mechanismus zur Unterstützung der Verträge aufgesetzt. Mit guarantee-<br />

Bedingungen wird eine Zusicherung dem Partnerprogramm für die zu generierenden Daten dargestellt. Mit rely-<br />

Bedingungen wird dagegen die Zusicherung der Partnerprogramme deklariert. Mit tolerate-Bedingungen wird die<br />

explizite Abweichung von Normen und die Reaktion darauf dargestellt. Der rely-guarantee-tolerate-Mechanismus ist<br />

weitaus besser geeignet als die Programmierung auf Grundlage von Ausnahmen.<br />

Agile Situationsbeobachter nutzen die Kollaboration mit <strong>and</strong>eren S<strong>of</strong>tware-Komponenten, um aus diesen Daten<br />

Schlüsse über den Zust<strong>and</strong> des beobachteten Systemes zu ziehen. Sie besitzen einfache Schlußregeln, mit denen der<br />

beobachtete Zust<strong>and</strong> kategorisiert werden kann.<br />

Aktive Situationsbeobachter steuern bei Erreichen von Schwellwerten <strong>and</strong>ere Teilprogramme. Diese Teilprogramme<br />

werden mit einem zentralen Controller auf eine Rekonfiguration vorbereitet und dann in einem <strong>and</strong>eren Modus<br />

gefahren. Das Konzept der aktiven Situationsbeobachter verallgemeinert den ECA-Zugang 19 für Trigger und den<br />

Greatest-Consistent-Specialisation-Zugang für die Erzwingung der Gültigkeit von Integritätsbedingungen in Datenbanksystemen.<br />

5.6.12 Ten Resulting Guidelines <strong>of</strong> Data Modelling<br />

We may now use the guidelines developed in books <strong>and</strong> papers <strong>of</strong> practitioners, e.g. those within the DAMA community<br />

[Dre95, LTN07, Pas00, SW05, Sim07]. These guidelines can directly be used for development <strong>of</strong> tactics in the<br />

sense <strong>of</strong> [Boe06].<br />

(1) Careful What you Wish For: Data Types <strong>and</strong> Complexity<br />

Computer Science has developed the notion <strong>of</strong> a data type. It is given by a name, by a domain, by operations <strong>and</strong><br />

predicates, <strong>and</strong> by type constraints.<br />

Complex data types are specified through application <strong>of</strong> constructors. These constructors also provide selectors,<br />

initialisation <strong>and</strong> destruction operations. Those operations are the basis for an algebra that inherits the operations <strong>of</strong><br />

the components used for construction.<br />

Moreover, data types have a number <strong>of</strong> representations <strong>and</strong> storage alternatives. The actual representation should<br />

be invisible to the user in order to maintain data independence, i.e. it is transparent. Database textbooks <strong>of</strong>ten do not<br />

differentiate between a data type <strong>and</strong> its representation <strong>and</strong> its storage. So people <strong>of</strong>ten think that a type has a unique<br />

representation <strong>and</strong> a unique storage. DBMS are however far more powerful <strong>and</strong> at the same time far more rigid. User<br />

get data in a form that is based on a declared representation.<br />

Finally, SQL nowadays supports user-defined types. The problem is however that the corresponding functions <strong>and</strong><br />

predicates must be programmed.<br />

Modern data management must thus support data type atomicity. Values are atomic no matter how complex the<br />

representation is.<br />

There are also design concerns. We should distinguish whether a complex value is used for an attribute or broken<br />

into its constituents <strong>and</strong> thus being used for a sequence <strong>of</strong> attributes. A rule <strong>of</strong> the thumb could be whether this value<br />

represent a property <strong>of</strong> an object or whether we need to separate this property with in the application. One operational<br />

separation is the deployment <strong>of</strong> the value for links <strong>and</strong> references.<br />

A good data model defines the following three properties:<br />

Atomicity is defined by the smallest unit <strong>of</strong> information.<br />

Selectivity is based on sensible combinations <strong>of</strong> units.<br />

Addressability provides alternatives for logical addressing schemata.<br />

19 ECA: Bei Vorliegen eines Ereignisses (E) wird bei Gültigkeit einer Bedingung (C) das System zu zusätzlichen Aktionen (A) veranlaßt.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 602<br />

(2) The Rules <strong>of</strong> the Rules: Integrity<br />

Integrity constraints are one <strong>of</strong> the main <strong>and</strong> most difficult components in conceptual <strong>and</strong> logical schemata. Most<br />

database conceptualisation approaches are however forgetful. They do not consider the meaning <strong>of</strong> these constraints<br />

in the given application.<br />

Business rules specify the rules within the application. They are conceptually represented by integrity constraints.<br />

The conceptual representation is however <strong>of</strong>ten not related anymore to the business rules. Whenever business rules<br />

change the change <strong>of</strong> integrity constraints becomes a nightmare.<br />

Integrity constraints specify the data correctness <strong>and</strong> thus provide the criterion for database modification acceptability.<br />

They constitute whether the proposed modification is in fact valid (or at least plausible).<br />

Integrity constraints must be consistent with the business rules they effect <strong>and</strong> define which data are physically<br />

correct. They act thus as a mediator between application <strong>and</strong> implementation.<br />

One neglected concern during database development is the inner consistency <strong>of</strong> all database notions. The<br />

conceptual schema is only one source <strong>of</strong> such notions. Support schemata <strong>and</strong> especially derived schemata are another<br />

source for such notions.<br />

Finally, data management must be based on complete description <strong>of</strong> integrity enforcement, i.e. on declaration<br />

<strong>of</strong> constraints, on enforcement policies, on enforcement operationalisation <strong>and</strong> on tolerance tactics <strong>and</strong> violation<br />

response. For this reason, data management also includes full specification for constraints. The classical way to<br />

map integrity constraints to procedures or triggers is an implementation decision. It burdens the user with DBMS<br />

internal representations, imposes specific procedures <strong>of</strong> integrity enforcement <strong>and</strong> might limit implementations (e.g.,<br />

the optimiser from selecting better alternatives), <strong>and</strong> uses a specific solution that might not be available with other<br />

systems. Integrity should be enforced with application code if, not unless there is a penchant for walking close to this<br />

edge.<br />

(3) The Matter <strong>of</strong> Identity: Keys<br />

Identity <strong>of</strong> objects functionally relates objects to real world things. It is somehow a functional dependency between<br />

object attributes (or components) <strong>and</strong> things from the universe <strong>of</strong> discourse. We need to separate which things must<br />

be identifiable in a database from those for which we do not need any identification. Identifiable things may however<br />

later be counted based on their representation by objects in the database. Those things which must be identifiable have<br />

properties that provide their identification. This identification is then classically specified through keys. Key provide<br />

a simple addressing schema that guarantees logical access to the objects <strong>and</strong> the values for attributes <strong>of</strong> the object,<br />

e.g. by class name + (components or) attributes + values for those attributes.<br />

One <strong>of</strong> the supporting conceptions for DBMS is key inheritance. This key inheritance can be used for construction<br />

<strong>of</strong> more complex objects which interrelate objects. For simplicity <strong>of</strong> management we additionally require irreducibility<br />

<strong>of</strong> identification which leads to the concept <strong>of</strong> the minimal key.<br />

Good keys are natural (used in reality prior to database representation), stable (changing relatively seldom),<br />

<strong>and</strong> simple (for h<strong>and</strong>ling objects). If identification is an aim <strong>and</strong> not representable surrogate keys are used. They<br />

do not have a meaning (like EMP#); they just allow to distinguish objects. Surrogate keys also allow to resolve the<br />

competition among several minimal keys for a type.<br />

For instance, an entity type may specify several minimal keys at the same time. These keys must be used in an<br />

appropriate form. Which key is the most appropriate for linking objects is governed by the application <strong>and</strong> should not<br />

be limited by the DBMS. A formal criterion to prefer one minimal key over the other is the potential use for referring<br />

to objects.<br />

Often it is claimed that we must use an artificial key like the Object ID (OID) at the conceptual level. This<br />

OID does not have any meaning at this level <strong>and</strong> is thus completely senseless for the business process. It is an<br />

implementation concept 20 . The OID is a throwback to pointers <strong>and</strong> should not be confused with surrogate keys.<br />

20 Sometimes conceptual modelling languages like the entity-relationship modelling language are defined based on approaches from functional<br />

programming. Each object is then defined as a function. Whether an object is represented by a function is an implementation decision. It<br />

does not have any sense at the conceptual level. Moreover functional programming is one out <strong>of</strong> six styles <strong>of</strong> programming (procedural, functional,<br />

logical, parallel, object-oriented, set-based). It is sometimes appropriate, especially in the case <strong>of</strong> complete <strong>and</strong> rigid context-freeness.<br />

The proponents <strong>of</strong> functional programming overlook that the world is interrelated, intertwined <strong>and</strong> interdependent, i.e. far from being free <strong>of</strong><br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 603<br />

(4) Don’t Get Duped by Dupes: Duplicate Objects<br />

(5) The Key, the Whole Key <strong>and</strong> Nothing but the Key: Normalisation<br />

(6) Neither Distinct nor the Same: Entity Supertypes <strong>and</strong> Subtypes<br />

(7) Climbing Trees in SQL: Data Hierarchies<br />

(8) Not Worth Repeating: Redundancy<br />

(9) Will SQL Come to Order: Quota queries<br />

(10) What You Don’t Can hurtYou: Missing Data <strong>and</strong> <strong>Information</strong><br />

5.6.13 Improving the Culture <strong>of</strong> Modelling<br />

Proper Namespaces<br />

formal data names.<br />

comprehensive data definitions.<br />

precise data integrity rules.<br />

Adequate Database Schemata<br />

Proper data structure.<br />

reasonable data orientation.<br />

Reasonable Data Orientation.<br />

Completely Documented Schemata<br />

robust data documentation.<br />

Proper Data Management<br />

acceptable data availability.<br />

adequate data responsibility.<br />

appropriate data recognition.<br />

5.6.14 Workflows for Data Management<br />

5.6.15 Workflows for <strong>Information</strong> Management<br />

5.6.16 Data Provenance for Coherent Data Deployment<br />

context. Functions are sometimes a nice vehicle for mathematical pro<strong>of</strong>s. Objects may have at the beginning or even during implementation<br />

no properties <strong>and</strong> must use the object identifier. Then the nightmare starts (see, for instance, our first papers [BT92, BT95, SSW92, ST93] or<br />

the continuation [BT99, KR97, Sch94] <strong>of</strong> these investigations.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 604<br />

5.7 Techniques for Knowledge Management


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 605<br />

5.8 Theoretical Foundations <strong>of</strong> Data, <strong>Information</strong> <strong>and</strong> Knowledge Management<br />

5.8.1 Extract, Transform <strong>and</strong> Load Functionalisations based on Generic Functions<br />

5.8.2 Integration, Evolution <strong>and</strong> Migration <strong>of</strong> Data, <strong>Information</strong> <strong>and</strong> Knowledge<br />

5.8.3 Model Suites Supporting Scoping, Abstraction <strong>and</strong> Coexistence<br />

5.8.4 Generic Schemata, Functions, <strong>and</strong> Workflows


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 606<br />

5.9 Technology for <strong>Information</strong>, Data <strong>and</strong> Knowledge Management<br />

5.9.1 Data Management <strong>Systems</strong> Support<br />

5.9.2 Master Data Management<br />

Master data is data that is shared across systems <strong>and</strong> used to classify transactional data. Managing master data is one<br />

<strong>of</strong> the most difficult, time consuming <strong>and</strong> expensive challenges facing IT pr<strong>of</strong>essionals in enterprises today. Furthermore,<br />

based on what our customers tell us, there are few good solutions to the problem. Master data management is<br />

not a new problem. Enterprises have been struggling with it for some time. However, new global regulations such as<br />

Sarbanes-Oxley in the United States <strong>and</strong> Basel II in Europe <strong>and</strong> increasing interest in performance management have<br />

given it a new urgency. Why? Compliance <strong>and</strong> performance management both require consistent master data across<br />

an enterprise. In fact, master data management has become such a high priority that the Tower Group estimates that<br />

80 percent <strong>of</strong> enterprises have plans to centralize it.<br />

Without data integrity, transaction data cannot be analyzed or reported in a meaningful way.<br />

5.9.3 View Towers<br />

5.9.4 Content, Concept <strong>and</strong> Topic Management<br />

5.9.5 User Management<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 618<br />

5.10 Implementation <strong>of</strong> Data Management in Research Projects<br />

5.10.1 Establishment <strong>of</strong> Data Management<br />

Key Roles.<br />

To be successful, Data Management best practice must be implemented across the whole organization, under the<br />

guidance <strong>of</strong> a member <strong>of</strong> the Executive Board, i.e. the Data Management Champion. Other key roles are the Data<br />

Manager <strong>and</strong> the Data Stewards assigned to each key dataset.<br />

The following list <strong>of</strong> responsibilities may help organizations to establish these key roles <strong>and</strong> implement good Data<br />

Management policies <strong>and</strong> procedures.<br />

Data Preparation.<br />

At the same time, typical data mining <strong>and</strong> analysis application do not have data at the same level <strong>of</strong> granularity, at the<br />

same level <strong>of</strong> abstraction, within the same measuring environment, <strong>and</strong> within the same context such time or season<br />

context, weather context, spatial context <strong>and</strong> measurement context.<br />

The first category <strong>of</strong> problems can be resolved by suites <strong>of</strong> models. Many-layered models are successfully used<br />

in different areas <strong>of</strong> science <strong>and</strong> have led to very sophisticated exploration <strong>and</strong> reasoning techniques, e.g., the fivelayered<br />

model <strong>of</strong> the human heart [HLMN06].<br />

The second category <strong>of</strong> problems can be resolved by data enhancement methods. The measurement, the context,<br />

the meta-data are explicitly modelled <strong>and</strong> extracted. These data are shuffled with the data massives that are used for<br />

data mining <strong>and</strong> analysis.<br />

5.10.2 Data Import <strong>and</strong> Export Forms<br />

5.10.3 Query <strong>and</strong> Answer Forms<br />

This part <strong>of</strong> the lecture is based on the paper [BDT12].<br />

5.10.4 Pattern-Based Realisation <strong>of</strong> Data Management<br />

5.11 Implementation <strong>of</strong> <strong>Information</strong> Management in Research Projects<br />

5.11.1 User Life Cases <strong>and</strong> their Reflection in Data <strong>and</strong> <strong>Information</strong> Consumption<br />

5.11.2 User Pr<strong>of</strong>iling<br />

5.11.3 User (Task) Portfolio <strong>and</strong> <strong>Information</strong> Dem<strong>and</strong><br />

5.11.4 <strong>Information</strong> Procurement<br />

5.11.5 <strong>Information</strong> Delivery <strong>and</strong> Production<br />

5.12 Data Gardening <strong>and</strong> Management for Data <strong>Analysis</strong><br />

5.12.1 Data Mining Approaches<br />

5.12.2 Data Mining Pattern<br />

5.12.3 Data Mining Facilitation<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 619<br />

5.13 Towards Knowledge Management in a Knowledge Web<br />

5.13.1 The Content Space, Topic Space <strong>and</strong> the Concept Space for Knowledge Management<br />

We apply the separation <strong>of</strong> the knowledge space for the user into the content space, the concept space <strong>and</strong> the topic<br />

space. We furthermore assume that the information space can be defined on top <strong>of</strong> the three spaces. In this case we<br />

can use the content management system approach that has already been used in our research group for a number <strong>of</strong><br />

applications. Using this separation we define a knowledge chunk as data that represent content, topics, <strong>and</strong> concepts.<br />

This triptych has already been used for advanced content management.<br />

We generalise the approach <strong>of</strong> [7, 19, 37] an may now describe the knowledge chunk database through its rough<br />

database schema. The schema in Figure 21 displays the general structure. The main part <strong>of</strong> the schema is the triptych<br />

<strong>of</strong> concepts, content, <strong>and</strong> topics.<br />

Meta ✛<br />

<strong>Information</strong><br />

Term<br />

Auxiliary<br />

Schema<br />

Specified<br />

By<br />

Media<br />

❄<br />

Object ✛<br />

Suite<br />

Spec<br />

Ordered<br />

Tree<br />

❄<br />

Definition<br />

Item<br />

❨<br />

AcceptanceLevel<br />

✛ Community<br />

Context<br />

UsagePr<strong>of</strong>ile<br />

✛<br />

✲<br />

Language<br />

<br />

Specified<br />

OnTop<br />

❄<br />

Media<br />

Type<br />

GivenBy<br />

Characterised<br />

Through<br />

✲ Structural ✛<br />

Expression<br />

Definition<br />

Kind<br />

✯ Database Schema<br />

✲Content ✛<br />

✲<br />

✲<br />

✻<br />

Extension/<br />

Foundation<br />

Typicality<br />

❄<br />

✲ Kind<br />

<strong>of</strong> Definition<br />

Community<br />

Community<br />

Annotated<br />

Through<br />

Explains/<br />

Depicted<br />

Concept<br />

✻<br />

Shared<br />

Within<br />

❄<br />

Ontology<br />

(0,n)<br />

(0,1)<br />

✻ Descriptor ✻<br />

Preference<br />

Defined Time<br />

Through Usage Application<br />

Validity<br />

Restriction Context<br />

❄<br />

KindOf<br />

Association<br />

✻<br />

Used<br />

In<br />

Language<br />

✒<br />

✲<br />

❥ ❄ ✙<br />

✛<br />

Topic ✛<br />

✯<br />

Application✛<br />

✻<br />

Schema<br />

Context<br />

❄<br />

✲Application<br />

Schema<br />

In<br />

Topic Map<br />

/ Space<br />

✒<br />

Associated<br />

To<br />

✲<br />

✒<br />

Culture<br />

Association<br />

Type<br />

Application<br />

❘ Area<br />

✒<br />

Abbildung 21: Main Schema for Content, Concept <strong>and</strong> Topic Databases representing Knowledge Chunks<br />

Used<br />

For<br />

5.13.2 Pr<strong>of</strong>iles <strong>and</strong> Portfolio <strong>of</strong> the User<br />

User modelling is based on the specification <strong>of</strong> user pr<strong>of</strong>iles that address the characterisation <strong>of</strong> the users, <strong>and</strong> the<br />

specification <strong>of</strong> user portfolios that describe the users’ tasks <strong>and</strong> their involvement <strong>and</strong> collaboration on the basis <strong>of</strong><br />

the mission <strong>of</strong> the WIS [30].<br />

To characterize the users <strong>of</strong> a WIS we distinguish between education, work <strong>and</strong> personality pr<strong>of</strong>iles. The education<br />

pr<strong>of</strong>ile contains properties users can obtain by education or training. Capabilities <strong>and</strong> application knowledge as a result<br />

<strong>of</strong> educational activities are also suitable for this pr<strong>of</strong>ile. Properties will assigned to the work pr<strong>of</strong>ile, if they can be<br />

associated with task solving knowledge <strong>and</strong> skills in the application area, i.e. task expertise <strong>and</strong> experience as well<br />

as system experience. Another part <strong>of</strong> a work pr<strong>of</strong>ile is the interaction pr<strong>of</strong>ile <strong>of</strong> a user, which is determined by his<br />

frequency, intensity <strong>and</strong> style <strong>of</strong> utilization <strong>of</strong> the WIS. The personality pr<strong>of</strong>ile characterises the general properties<br />

<strong>and</strong> preferences <strong>of</strong> a user. General properties are the status in the enterprise, community, etc., <strong>and</strong> the psychological<br />

<strong>and</strong> sensory properties like hearing, motoric control, information processing <strong>and</strong> anxiety.<br />

A portfolio is determined by responsibilities <strong>and</strong> is based on a number <strong>of</strong> targets. Therefore, the actor portfolio<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 620<br />

(referring to actors as groups <strong>of</strong> users with similar behaviour) within an application is based on a set <strong>of</strong> tasks assigned<br />

to or intended by an actor <strong>and</strong> for which s/he has the authority <strong>and</strong> control, <strong>and</strong> a description <strong>of</strong> involvement within<br />

the task solution [32]. A task as a piece <strong>of</strong> work is characterized by a problem statement, initial <strong>and</strong> target states,<br />

collaboration <strong>and</strong> presupposed pr<strong>of</strong>iles, auxiliary conditions <strong>and</strong> means for task completion. Tasks may consists <strong>of</strong><br />

subtasks. Moreover, the task execution model defines what, when, how, by whom <strong>and</strong> with which data a task can<br />

be accomplished. The result <strong>of</strong> executing a task should present the final state as well as the satisfaction <strong>of</strong> target<br />

conditions.<br />

5.13.3 Users Life Cases<br />

For task completion users need the right kind <strong>of</strong> data, at the right time, in the right granularity <strong>and</strong> format, unabridged<br />

<strong>and</strong> within the frame agreed upon in advance. Moreover, users are bound by their ability to verbalise <strong>and</strong> digest<br />

data, <strong>and</strong> their habits, practices, <strong>and</strong> cultural environment. To avoid intellectual overburdening <strong>of</strong> users we observe<br />

real applications before the system development leading to life cases [33]. Life cases help closing the pragmatic gap<br />

between intentions <strong>and</strong> storyboarding. They are used to specify the concrete life situation <strong>of</strong> the user <strong>and</strong> characterise<br />

thus a bundle <strong>of</strong> tasks the user should solve. Syntax <strong>and</strong> semantics <strong>of</strong> life cases have already been well explored in<br />

[30].<br />

In addition, each user has an information portfolio, which specifies the information needs as well as the information<br />

entered into the system. We do not model the information portfolio as part <strong>of</strong> a user, but instead <strong>of</strong> this we will<br />

model the information “consumed” <strong>and</strong> “produced” with each more detailed specification <strong>of</strong> a user request.<br />

5.13.4 Requirements Issued by the User to Knowledge Web<br />

We may now summarise the knowledge delivery task <strong>of</strong> the Knowledge Web based on user-oriented <strong>and</strong> life-casebased<br />

content, concepts <strong>and</strong> topics as follows:<br />

Deliver the knowledge the user really needs through (1) concepts at the educational level level <strong>of</strong> the user<br />

that are illustrated <strong>and</strong> extended by (2) content which is quality content depending on the external <strong>and</strong> internal<br />

quality <strong>of</strong> the aggregated data (media object suite) <strong>and</strong> that are depicted by (3) topics in the language, in the<br />

culture <strong>and</strong> in the application portfolio <strong>of</strong> the user.<br />

The question is therefore whether such system is achievable <strong>and</strong> whether there is a chance to build it. We are<br />

going to sketch now a system proposal <strong>of</strong> [?] in the next chapter, refer for a pro<strong>of</strong> <strong>of</strong> achievability based on generic<br />

generators to [?], <strong>and</strong> finally illustrate usefulness by a prototypical example in the last chapter.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 621<br />

Literatur<br />

[aIU11] The Digital Science Center at Indiana University. http://pti.iu.edu/dsc, Accessed June 4, 2011.<br />

[BDM02]<br />

[BDT12]<br />

[Bea10]<br />

S. Browers, L. Delcambre, <strong>and</strong> D. Maier. Superimposed schematics: Introducing E-R structure for in-situ information selections.<br />

In S. Spaccapietra, S.T. March, <strong>and</strong> Y. Kambayashi, editors, Proc. ER’02, volume LNCS 2503, pages 90–104, Berlin, 2002.<br />

Springer.<br />

M. Berg, A. Düsterhöft, <strong>and</strong> B. Thalheim. Query <strong>and</strong> answer forms for sophisticated database interfaces. In Proc. EJC 2012, page<br />

..., Prague, 2012.<br />

Charles Beagrie. Ensuring perpetual access.<br />

http://www.allianzinitiative.de/fileadmin/hosting studie e.pdf, February 2010.<br />

[Ber11] Digital science community. http://www.digital-science.com/, Accessed June 4, 2011.<br />

[Boe06] B. Boehm. A view <strong>of</strong> 20th <strong>and</strong> 21st century s<strong>of</strong>tware engineering. In Proc. ICSE’06, pages 12–29, ACM Press, 2006.<br />

[BT92] C. Beeri <strong>and</strong> B. Thalheim. Identification is well-founded in object-oriented databases. Manuscript, 1992.<br />

[BT95]<br />

[BT99]<br />

C. Beeri <strong>and</strong> B. Thalheim. Can I see your identification, please? - Identification is well-founded in object-oriented databases.<br />

Manuscript, Cottbus/Jerusalem, 1995.<br />

C. Beeri <strong>and</strong> B. Thalheim. Identification as a primitive <strong>of</strong> database models. In Proc. FoMLaDO’98, pages 19–36. Kluwer, London,<br />

1999.<br />

[Bur10] M. Burgin. Theory <strong>of</strong> <strong>Information</strong>. Fundamentality, Diversity <strong>and</strong> Unification. World Scientific Publishing Co, 2010.<br />

[Cuk10] K. Cukier. Data, data everywhere. The Economist, Feb 25th 2010.<br />

[Dem99] W.A. Dembski. Intelligent <strong>Design</strong>: The bridge between science <strong>and</strong> theology. Downers Grove, Ill.: InterVarsity Press, 1999.<br />

[DHT + 08] M. Duží, A. Heimburger, T. Tokuda, P. Vojtas, <strong>and</strong> N. Yoshida. Multi-agent knowledge modelling. In H. Jaakkola <strong>and</strong> Y. Kiyoki,<br />

editors, EJC’2008, <strong>Information</strong> Modeling <strong>and</strong> Knowledge Bases XVI. IOS Press, 2008. Panel summary, EJC 2008.<br />

[DI09]<br />

W.A. Dembski <strong>and</strong> R. J. Marks II. Life’s conservation law: Why darwinian evolution cannot create biological information. In<br />

B. Gordon <strong>and</strong> W. Dembski, editors, THE NATURE OF NATURE. Wilmington, Del.: ISI Books, 2009.<br />

[Dre95] H. Dreßler. Datenstrukturentwurf - Vom Faktenchaos zur Anwenderdatenbank. Oldenbourg-Verlag, München, 1995.<br />

[DT04]<br />

A. Düsterhöft <strong>and</strong> B. Thalheim. Linguistic based search facilities in snowflake-like database schemes. Data <strong>and</strong> Knowledge<br />

Engineering, 48:177–198, 2004.<br />

[Dub07] Dublin Core Metadata Initiative. Dublin Core. http://dublincore.org/, June 2007.<br />

[ES03]<br />

W. Elsberry <strong>and</strong> J. Shallit. <strong>Information</strong> theory, evolutionary computation, <strong>and</strong> dembski’s “complex specified information”? Synthese,<br />

178(2):237–270, 2003.<br />

[Fel90] C. Fellbaum. The english verb lexicon as a semantic net. International Journal <strong>of</strong> Lexicography, 3:278–301, 1990.<br />

[Fri10] K. Friston. The free-energy principle: a rough guide to the brain? Nature Reviews Neuroscience, 11:127–138, February 2010.<br />

http://www.nature.com/nrn/journal/v11/n2/abs/nrn2787.html.<br />

[FRT05]<br />

[FST98]<br />

[FT09]<br />

G. Fiedler, T. Raak, <strong>and</strong> B. Thalheim. Database collaboration instead <strong>of</strong> integration. In APCCM’05, volume 43 <strong>of</strong> CRPIT, pages<br />

49–58. Australian Computer Society, 2005.<br />

T. Feyer, K.-D. Schewe, <strong>and</strong> B. Thalheim. Conceptual design <strong>and</strong> development <strong>of</strong> information services. In Proc. ER’98, LNCS<br />

1507, Springer, 1998, pages 7–20. Springer, Berlin, 1998.<br />

G. Fiedler <strong>and</strong> B. Thalheim. Towards semantic wikis: Modelling intensions, topics, <strong>and</strong> origin in content management systems.<br />

<strong>Information</strong> Modelling <strong>and</strong> Knowledge Bases, XX:1–21, 2009.<br />

[GG00] C. Ghidini <strong>and</strong> F. Giunchiglia. Local models semantics, or contextual reasoning = Locality + compatibility.<br />

http://citeseer.ist.psu.edu/481285.html, April 2000.<br />

[Gua97]<br />

N. Guarino. Unterst<strong>and</strong>ing, building <strong>and</strong> using ontologies: A commentary to “Using explicit ontologies in kbs development”, by<br />

van Heijst, Schreiber, <strong>and</strong> Wielinga. Int. Journal <strong>of</strong> Human <strong>and</strong> Computer Studies, 46:293–310, 1997.<br />

[Hef92] K. Hefner, editor. Evolution <strong>of</strong> <strong>Information</strong> Processing <strong>Systems</strong>. Springer, 1992.<br />

[Hena]<br />

[Henb]<br />

[Henc]<br />

[Hend]<br />

[Hene]<br />

http://www.v3.co.uk/v3-uk/news/2081263/cern-experiments-generating-petabyte.<br />

http://www.bell-labs.com/news/2006/october/shannon.html.<br />

www.nytimes.com/2010/07/20/technology/20kindle.html.<br />

https://www.ericssonmoney.com/content/GB/en.html.<br />

http://www.daopay.com/.<br />

[HLMN06] P. J. Hunter, W. W. Li, A. D. McCulloch, <strong>and</strong> D. Noble. Multiscale modeling: Physiome project st<strong>and</strong>ards, tools, <strong>and</strong> databases.<br />

IEEE Computer, 39(11):48–54, 2006.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 622<br />

[HM03a]<br />

V. Haarslev <strong>and</strong> R. Möller. Racer: An OWL reasoning agent for the semantic web. In Proceedings <strong>of</strong> the International Workshop<br />

on Applications, Products <strong>and</strong> Services <strong>of</strong> Web-based Support <strong>Systems</strong>, in conjunction with the 2003 IEEE/WIC International<br />

Conference on Web Intelligence,? Halifax, Canada, October 13, pages 91–95, 2003.<br />

[HM03b] D. Harel <strong>and</strong> R. Marelly. Come, Let’s play: Scenario-based programming using LSCs <strong>and</strong> the play-engine. Springer, Berlin, 2003.<br />

[HMW05] V. Haarslev, R. Möller, <strong>and</strong> M. Wessel. Description Logic inference technology: Lessions learned in the trenches. In I. Horrocks,<br />

U. Sattler, <strong>and</strong> F. Wolter, editors, Proc. International Workshop on Description Logics, 2005.<br />

[HPSvH03] Ian Horrocks, Peter F. Patel-Schneider, <strong>and</strong> Frank van Harmelen. From SHIQ <strong>and</strong> RDF to OWL: The making <strong>of</strong> a web ontology<br />

language. Journal <strong>of</strong> Web Semantics, 1(1):7–26, 2003.<br />

[Jac07] M. Jackson. Problem Frames: Analysing <strong>and</strong> structuring s<strong>of</strong>tware development problems. Pearson Education, Harlowe, 2007.<br />

[JI] Sungchul JI. Semiotics <strong>of</strong> life: Unified theory <strong>of</strong> molecular machines, cells, the mind, peircean<br />

signs, <strong>and</strong> the universe based on the principle <strong>of</strong> information-energy complementarity.<br />

http://grammars.grlmc.com/GRLMC/reports/SOLManuscriptsubmitted final.doc.<br />

[JRTF11]<br />

K. Jannaschk, C. A. Rathje, B. Thalheim, <strong>and</strong> F. Förster. A generic database schema for cidoc-crm data management. In ADBIS<br />

(2), volume 789 <strong>of</strong> CEUR Workshop Proceedings, pages 127–136. CEUR-WS.org, 2011.<br />

[JT03] H. Jaakkola <strong>and</strong> B. Thalheim. Visual SQL - high-quality er-based query treatment. In IWCMQ’2003, LNCS 2814, pages 129–139.<br />

Springer, 2003.<br />

[Kau67]<br />

R. Kauppi. Einführung in die Theorie der Begriffssysteme. Acta Universitatis Tamperensis, Ser. A, Vol. 15, Tampereen yliopisto,<br />

Tampere, 1967.<br />

[Kob05] A. Kobsa. User modeling <strong>and</strong> user-adapted interaction. User Modeling <strong>and</strong> User-Adapted Interaction, 15(1-2):185–190, 2005.<br />

[KR97]<br />

H.-J. Klein <strong>and</strong> J. Rasch. Value based identification <strong>and</strong> functional dependencies for object databases. In Proc. 3rd Basque Int.<br />

Workshop on <strong>Information</strong> Technology, pages 22–34. IEEE Computer Science Press, New York, 1997.<br />

[Kro05] J. Krogstie. Quality <strong>of</strong> uml. In Encyclopedia <strong>of</strong> <strong>Information</strong> Science <strong>and</strong> Technology (IV), pages 2387–2391. 2005.<br />

[KSTZ03] R. Kaschek, K.-D. Schewe, B. Thalheim, <strong>and</strong> Lei Zhang. Integrating context in conceptual modelling for web information systems,<br />

web services, e-business, <strong>and</strong> the semantic web. In WES 2003, LNCS 3095, pages 77–88. Springer, 2003.<br />

[KT12]<br />

Y. Kiyoki <strong>and</strong> B. Thalheim. <strong>Analysis</strong>-driven data collection, integration <strong>and</strong> preparation for visualisation. In Proc. EJC 2012, page<br />

..., Prague, 2012.<br />

[KZK + 10] Y. Kidawara, K. Zettsu, Y. Kiyoki, K. Jannaschk, B. Thalheim, P. Linna, H. Jaakkola, <strong>and</strong> M. Duzí. Knowledge modeling,<br />

management <strong>and</strong> utilization towards next generation web. In <strong>Information</strong> Modelling <strong>and</strong> Knowledge Bases XXI, volume 206,<br />

pages 387–402. IOS Press, 2010.<br />

[Lak87]<br />

G. Lak<strong>of</strong>f. Women, fire, <strong>and</strong> dangerous things - What categories reveal about the mind. The University <strong>of</strong> Chicago Press, Chicago,<br />

1987.<br />

[Len02] D. Lenat. The dimensions <strong>of</strong> the context space. www.cyc.com/context-space.pdf, 2002.<br />

[LTN07] S. Lightstone, T. Teorey, <strong>and</strong> T. Nadeau. Physical database design. Morgan Kaufmann, 2007.<br />

[Mac11]<br />

MacMillan. Digital science.<br />

http://international.macmillan.com/MediaArticle.aspx?id=2598, Accessed June 4, 2011.<br />

[MST05] T. Moritz, K.-D. Schewe, <strong>and</strong> B. Thalheim. Strategic modeling <strong>of</strong> web information systems <strong>and</strong> its impact on visual design<br />

patterns. In F. Frasincar, G.-J. Houben, <strong>and</strong> R. Vdovjak, editors, WISM’05, pages 5–13, Sydney, 2005.<br />

[MST09]<br />

Hui Ma, K.-D. Schewe, <strong>and</strong> B. Thalheim. Modelling <strong>and</strong> maintenance <strong>of</strong> very large database schemata using meta-structures. In<br />

UNISCON, volume 20 <strong>of</strong> Lecture Notes in Business <strong>Information</strong> Processing, pages 17–28. Springer, 2009.<br />

[Mur01] G. L. Murphy. The big book <strong>of</strong> concepts. MIT Press, 2001.<br />

[NuBT11] B. Neumayr <strong>and</strong> M. Schrefl und B. Thalheim. Modeling techniques for multi-level abstraction. In The Evolution <strong>of</strong> Conceptual<br />

Modeling, volume 6520 <strong>of</strong> Lecture Notes in Computer Science, pages 68–92, Berlin, 2011. Springer.<br />

[Ont12] Introductions to topic maps. http://www.ontopia.net/section.jsp?id=tm-intro, April 20, 2012.<br />

[OS04]<br />

D. Oberle <strong>and</strong> P. Spyns. The knowledge portal öntoweb“. In H<strong>and</strong>book on Ontologies, International H<strong>and</strong>books on <strong>Information</strong><br />

<strong>Systems</strong>, pages 499–516. Springer, 2004.<br />

[Pas00] F. Pascal. Practical Issues in Database Management: A Reference for the Thinking Practitioner. Addison-Wesley, 2000.<br />

[PPJ06]<br />

[RH05]<br />

[Sch94]<br />

Orrin H. Pilkey <strong>and</strong> Linda Pilkey-Jarvis. Useless Arithmetic: Why Environmental Scientists Cant’t Predict the Future. Columbia<br />

University Press, New York, 2006.<br />

Lawrence Reeve <strong>and</strong> Hyoil Han. Survey <strong>of</strong> semantic annotation platforms. In SAC ’05, pages 1634–1638, New York, NY, USA,<br />

2005. ACM Press.<br />

K.-D. Schewe. The specification <strong>of</strong> data-intensive application systems. Advanced PhD (Habilitation Thesis), Br<strong>and</strong>enburg University<br />

<strong>of</strong> Technology at Cottbus, Faculty <strong>of</strong> Mathematics, Natural Sciences <strong>and</strong> Computer Science, 1994.<br />

[Sha48] C. E. Shannon. A mathematical theory <strong>of</strong> communication. Bell System Technical Journal, 27:379–423, 623–656, 1948.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 623<br />

[Sha93] C. E. Shannon. Collected Papers. IEEE press, 1993.<br />

[Sim07] G. Simsion. Data modeling - Theory <strong>and</strong> practice. Technics Publications, LLC, New Jersey, 2007.<br />

[Sno00] R. T. Snodgrass. Developing time-oriented database applications in SQL. Morgan Kaufmann, San Francisco, 2000.<br />

[Sow00]<br />

[SS99]<br />

John F. Sowa. Knowledge Representation, Logical, Philosophical, <strong>and</strong> Computational Foundations. Brooks/Cole, a division <strong>of</strong><br />

Thomson Learning, Pacific Grove, California, 2000.<br />

J. W. Schmidt <strong>and</strong> H.-W. Schering. Dockets: a model for adding vaulue to content. In Proc. ER’99, volume 1728 <strong>of</strong> LNCS, pages<br />

248–262, 1999.<br />

[SSW92] K.-D. Schewe, J. W. Schmidt, <strong>and</strong> I. Wetzel. Identification, genericity <strong>and</strong> consistency in object-oriented databases. LNCS 646,<br />

pages 341–356, Berlin, Germany, Oct. 14 - 16, 1992, 1992. Springer, Berlin.<br />

[ST93] K.-D. Schewe <strong>and</strong> B. Thalheim. Fundamental concepts <strong>of</strong> object oriented databases. Acta Cybernetica, 11(4):49–81, 1993.<br />

[ST01]<br />

K.-D. Schewe <strong>and</strong> B. Thalheim. Modeling interaction <strong>and</strong> media objects. In M. Bouzeghoub, Z. Kedad, <strong>and</strong> E. Métais, editors,<br />

NLDB. Natural Language Processing <strong>and</strong> <strong>Information</strong> <strong>Systems</strong>, 5th Int. Conf. on Applications <strong>of</strong> Natural Language to <strong>Information</strong><br />

<strong>Systems</strong>, NLDB 2000, Versailles, France, Jun 28-30, 2000, Revised Papers, volume 1959 <strong>of</strong> LNCS, pages 313–324. Springer, 2001.<br />

[ST04] K.-D. Schewe <strong>and</strong> B. Thalheim. Reasoning about web information systems using story algebra. In ADBIS’2004, LNCS 3255,<br />

pages 54–66, 2004.<br />

[ST05] K.-D. Schewe <strong>and</strong> B. Thalheim. Conceptual modelling <strong>of</strong> web information systems. Data <strong>and</strong> Knowledge Engineering, 54:147–<br />

188, 2005.<br />

[ST06a]<br />

[ST06b]<br />

[ST07a]<br />

[ST07b]<br />

[ST07c]<br />

K.-D. Schewe <strong>and</strong> B. Thalheim. Usage-based storyboarding for web information systems. Technical Report 2006-13, Christian<br />

Albrechts University Kiel, Institute <strong>of</strong> Computer Science <strong>and</strong> Applied Mathematics, Kiel, 2006.<br />

Klaus-Dieter Schewe <strong>and</strong> Bernhard Thalheim. User models: A contribution to pragmatics <strong>of</strong> web information systems design. In<br />

K. Aberer, Z. Peng, <strong>and</strong> E. Rundensteiner, editors, Web <strong>Information</strong> <strong>Systems</strong> – Proceedings WISE 2006, volume 4255 <strong>of</strong> LNCS,<br />

pages 512–523. Springer-Verlag, 2006.<br />

K.-D. Schewe <strong>and</strong> B. Thalheim. <strong>Development</strong> <strong>of</strong> collaboration frameworks for web information systems. In 20th Int. Joint Conf.<br />

on Artifical Intelligence, Section EMC07 (Evolutionary models <strong>of</strong> collaboration), pages 27–32, Hyderabad, 2007.<br />

K.-D. Schewe <strong>and</strong> B. Thalheim. <strong>Development</strong> <strong>of</strong> collaboration frameworks for web information systems. In IJCAI’07 (20th Int.<br />

Joint Conf on Artificial Intelligence, Section EMC’07 (Evolutionary models <strong>of</strong> collaboration), pages 27–32, Hyderabad, 2007.<br />

K.-D. Schewe <strong>and</strong> B. Thalheim. Life cases: An approach to address pragmatics in the design <strong>of</strong> web information systems. In<br />

J. Filipe, J. Cordeiro, B. Encarnacao, <strong>and</strong> V. Pedrosa, editors, Proc. WebIST, volume II (WIA), pages 5–12, 2007.<br />

[ST08] K.-D. Schewe <strong>and</strong> B. Thalheim. Semantics in data <strong>and</strong> knowledge bases. In SDKB 2008, LNCS 4925, pages 1–25, Berlin, 2008.<br />

Springer.<br />

[Sto90] T. Stonier. <strong>Information</strong> <strong>and</strong> the Internal Structure <strong>of</strong> the Universe. Springer, 1990.<br />

[SW05] G. Simsion <strong>and</strong> G.C. Witt. Data modeling essentials. Morgan Kaufmann, San Francisco, 2005.<br />

[SYea03] J.E. Safra, I. Yeshua, <strong>and</strong> et. al. Encyclopædia Britannica. Merriam-Webster, 2003.<br />

[TD01]<br />

B. Thalheim <strong>and</strong> A. Düsterhöft. Sitelang: Conceptual modeling <strong>of</strong> internet sites. In H. S. Kunii, S. Jajodia, <strong>and</strong> A. Sølvberg,<br />

editors, ER, volume 2224 <strong>of</strong> LNCS, pages 179–192. Springer, 2001.<br />

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

[Tha03]<br />

B. Thalheim. Visual SQL - An ER-based introduction to database programming. Technical Report Preprint I-8/2003, Institut für<br />

Informatik, BTU Cottbus, 2003.<br />

[Tha06] B. Thalheim. The conceptual framework to user-oriented content management. In EJC’06, Trojanovice, May 2006.<br />

[Tha07] B. Thalheim. The conceptual framework to user-oriented content management. Series Frontiers in Arificial Intelligence, 154,<br />

<strong>Information</strong> Modelling <strong>and</strong> Knowledge Bases, XVII:30–49, 2007.<br />

[Tha10] B. Thalheim. Towards a theory <strong>of</strong> conceptual modelling. Journal <strong>of</strong> Universal Computer Science, 16(20):3102–3137, 2010.<br />

http://www.jucs.org/jucs_16_20/towards_a_theory_<strong>of</strong>.<br />

[TK01]<br />

[TKKJ11]<br />

[Vis12]<br />

[VT02]<br />

B. Thalheim <strong>and</strong> T. Kobienia. Generating db queries for web nl requests using schema information <strong>and</strong> db content. volume 3 <strong>of</strong><br />

LNI, pages 205–209. GI, 2001.<br />

B. Thalheim, Y. Kitawara, E. Karttunen, <strong>and</strong> H. Jaakkola. Future directions <strong>of</strong> knowledge systems environments for web 3.0. In<br />

<strong>Information</strong> Modelling <strong>and</strong> Knowledge Bases, volume XXII, pages 413–446. IOS Press, 2011.<br />

Visualsql: A tool for graphical query formulation; download website. http://www.informatik.uni-kiel.de/en/information-systemsengineering/miscellaneous/visualsql/,<br />

April 20, 2012.<br />

V. Vestenický <strong>and</strong> B. Thalheim. Flexible association <strong>of</strong> varieties <strong>of</strong> ontologies with varieties <strong>of</strong> databases. In <strong>Information</strong> Modelling<br />

<strong>and</strong> Knowledge Bases XIV, volume 94 <strong>of</strong> Fronties in Artificial Intelligence <strong>and</strong> Applications, pages 135–141. ISO Press, 2002.<br />

Proc. 12th European-Japanese Conf. on <strong>Information</strong> Modelling <strong>and</strong> Knowledge Bases, Krippen, Germany, May 2002.<br />

[W3C04a] W3C. Web Ontology Language Overview. http://www.w3.org/TR/owl-features/, Feb 2004.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 624<br />

[W3C04b] W3C RDF Core Working Group. Resource Description Framework (RDF). http://www.w3.org/RDF/, 2004.<br />

[Wal05] C. Wallis. The evolution wars. Time Magazine, page 32, 15 Aug 2005.<br />

[Who80] B.L. Whorf. Lost generation theories <strong>of</strong> mind, language, <strong>and</strong> religion. Popular Culture Association, University Micr<strong>of</strong>ilms<br />

International, Ann Arbor, Mich., 1980.<br />

[WM02] R. Widhalm <strong>and</strong> T. Mück. Topic Maps: Semantische Suche im Internet. Springer, 2002.<br />

[WZ90]<br />

[Zus69]<br />

J.A. Wheeler <strong>and</strong> W. Zurek, editors. <strong>Information</strong>, physics, quantum: The search for links. Complexity, Entropy, <strong>and</strong> the Physics<br />

<strong>of</strong> <strong>Information</strong>. Addison-Wesley, Redwood City, CA, 1990.<br />

K. Zuse. Rechnender Raum. Friedrich Vieweg & Sohn, MIT Technical translation AZT-70-164-GEMIT, Massachusetts Institute<br />

<strong>of</strong> Technology (project MAC), Cambridge, Mass. 02139 edition, 1969.<br />

IS ADD


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 625<br />

Weiterer Lesest<strong>of</strong>f<br />

Literatur<br />

[1] S. Akamine, Y. Kato, D. Kawahara, K. Inui, S. Kurohashi, <strong>and</strong> Y Kidawara. <strong>Development</strong> <strong>of</strong> a Large-scale Web Crawler <strong>and</strong> Search<br />

Engine Infrastructure. Proceedings <strong>of</strong> the 3rd International Universal Communication Symposium (IUCS2009), 126-131, 2009<br />

[2] M. Armbrust, A. Fox, R. Griffith, A. Joseph, R. Katz, A. Konwinski, G. Lee, D. Patterson, A. Rabkin, I. Stoica, <strong>and</strong> M. Zaharia, Above The<br />

Clouds: A Berkeley View <strong>of</strong> Cloud Computing. Technical Report No. UCB/EECS-2009-28. EECS Department. University <strong>of</strong> California,<br />

Berkeley. 2009.<br />

[3] R.Buyya, C. Shin Yeo, <strong>and</strong> S. Venugopal, 2008. Market-Oriented Cloud Computing: Vision, Hype <strong>and</strong> Reality for Delivering IT Services<br />

as Computing Utilities. Proceedings <strong>of</strong> the 10th IEEE International Conference on High Performance Computing <strong>and</strong> Communications<br />

(HPCC-08, IEEE CS Press, Los Alamitos, CA, USA), Sept. 25-27, 2008, Dalian, China. 9p. 2008.<br />

[4] A. Dey, B. Kokinov, D. Leake, <strong>and</strong> R. Turner (Eds.). Modeling <strong>and</strong> using context. 5th International <strong>and</strong> Interdisciplinary Conference<br />

CONTEXT 2005. Springer. Berlin, 2005.<br />

[5] Dublin Core Metadata Initiative. Dublin Core. http://dublincore.org/, June 2007.<br />

[6] M. Duží, A. Heimburger, T. Tokuda, P. Vojtas, <strong>and</strong> N. Yoshida. Multi-agent knowledge modelling. In H. Jaakkola <strong>and</strong> Y. Kiyoki, editors,<br />

EJC’2008, <strong>Information</strong> Modeling <strong>and</strong> Knowledge Bases XVI. IOS Press, 2008. Panel summary, EJC 2008.<br />

[7] G. Fiedler <strong>and</strong> B. Thalheim. Towards semantic wikis: Modelling intensions, topics, <strong>and</strong> origin in content management systems. <strong>Information</strong><br />

Modelling <strong>and</strong> Knowledge Bases, XX:1–21, 2009.<br />

[8] X. Fu, T. Bultan, <strong>and</strong> J. Su. <strong>Analysis</strong> <strong>of</strong> Interacting BPEL Web Services. Proce. <strong>of</strong> the 13th international conference on World Wide Web,<br />

pp. 621–630, 2004.<br />

[9] C. Ghidini <strong>and</strong> F. Giunchiglia. Local models semantics, or contextual reasoning = Locality + compatibility.<br />

http://citeseer.ist.psu.edu/481285.html, April 2000.<br />

[10] V. Haarslev <strong>and</strong> R. Möller. Racer: An OWL reasoning agent for the semantic web. In Proceedings <strong>of</strong> the International Workshop on<br />

Applications, Products <strong>and</strong> Services <strong>of</strong> Web-based Support <strong>Systems</strong>, in conjunction with the 2003 IEEE/WIC International Conference on<br />

Web Intelligence,Ê Halifax, Canada, October 13, pages 91–95, 2003.<br />

[11] V. Haarslev, R. Möller, <strong>and</strong> M. Wessel. Description Logic inference technology: Lessions learned in the trenches. In I. Horrocks,<br />

U. Sattler, <strong>and</strong> F. Wolter, editors, Proc. International Workshop on Description Logics, 2005.<br />

[12] T. Hey, S. Tansley, <strong>and</strong> K. Tolle. The Fourth Paradigm: Data-Intensive Scientific Discovery, Micros<strong>of</strong>t Research (2009).<br />

[13] Ian Horrocks, Peter F. Patel-Schneider, <strong>and</strong> Frank van Harmelen. From SHIQ <strong>and</strong> RDF to OWL: The making <strong>of</strong> a web ontology language.<br />

Journal <strong>of</strong> Web Semantics, 1(1):7–26, 2003.<br />

[14] H. Jaakkola, A. Heimbürger, <strong>and</strong> P. Linna. Knowledge-oriented s<strong>of</strong>tware engineering process in a multi-cultural context. S<strong>of</strong>tware<br />

Quality Control. Vol 18 (2). pp. 299-319, 2010.<br />

[15] R. Kaschek, K.-D. Schewe, B. Thalheim, <strong>and</strong> Lei Zhang. Integrating context in conceptual modelling for web information systems, web<br />

services, e-business, <strong>and</strong> the semantic web. In WES 2003, LNCS 3095, pages 77–88. Springer, 2003.<br />

[Len02] D. Lenat. The dimensions <strong>of</strong> the context space. www.cyc.com/context-space.pdf, 2002.<br />

[16] J. Lewerenz, K.-D. Schewe, <strong>and</strong> B. Thalheim. Modeling data warehouses <strong>and</strong> OLAP applications by means <strong>of</strong> dialogue objects. In Proc.<br />

ER’99, LNCS 1728, pages 354–368. Springer, Berlin, 1999.<br />

[17] R. Lewis. The Cultural Imperative. Global Trends in the 21st Century. Intercultural Press. Brealey. Printed in Finl<strong>and</strong>. 338p., 2007.<br />

[18] T. Moritz, K.-D. Schewe, <strong>and</strong> B. Thalheim. Strategic modelling <strong>of</strong> web information systems. International Journal on Web <strong>Information</strong><br />

<strong>Systems</strong>, 1(4):77–94, 2005.<br />

[19] G. L. Murphy. The big book <strong>of</strong> concepts. MIT Press, 2001.<br />

[20] T. Nakanishi, H. Homma, K.-S. Kim, K. Zettsu K., Y. Kidawara, <strong>and</strong> Y. Kiyoki. A Three-layered Architecture for Event-centric Interconnections<br />

among Heterogeneous Data Repositories <strong>and</strong> its Application to Space Weather. Proc. <strong>of</strong> the 20th European Japanese<br />

Conference on <strong>Information</strong> Modelling <strong>and</strong> Knowledge Bases, EJC 2010, Jyväskylla, Finl<strong>and</strong>, pp. 29–44, 2010.<br />

[21] T. Nakanishi, K. Zettsu, , Y. Kidawara, <strong>and</strong> Y. Kiyoki. A Context Dependent Dynamic Interconnection Method <strong>of</strong> Heterogeneous Knowledge<br />

Bases by Interrelation Management Function, In Proc. <strong>of</strong> the 19th European-Japanese conference on information modelling <strong>and</strong><br />

knowledge bases, EJC 2009, pp. 210-227, 2009.<br />

[22] , T. Nakagawa, K. Inui, <strong>and</strong> S. Kurohashi. Dependency Tree-based Sentiment Classification using CRFs with Hidden Variables. Proc.<br />

<strong>of</strong> Human Language Technologies: The 11th Annual Conference <strong>of</strong> the North American Chapter <strong>of</strong> the Association for Computational<br />

Linguistics (HLT-NAACL 2010), 2010<br />

[23] NGG: Next Generation Grids Expert Group. Future <strong>of</strong> European Grids: Grids <strong>and</strong> Service- Oriented Knowledge Utilities. Report 3, 2006.<br />

[24] M.P. Papazoglou, <strong>and</strong> D. Georgakopoulos. Service-Oriented Computing. Communications <strong>of</strong> the ACM Vol. 46, No. 10, pp. 24–28, 2003.<br />

[25] L. Reeve <strong>and</strong> H. Han. Survey <strong>of</strong> semantic annotation platforms. In SAC ’05, pages 1634–1638, New York, NY, USA, 2005. ACM Press.


CAU zu Kiel, IfI, ISE, β 5. DI-Management ab SS 2012 626<br />

[26] M. Rönkkö, J. Ylitalo, J. Peltonen, N. Koivisto, O. Mutanen, J. Autere, A. Valtakoski, <strong>and</strong> Pentikäinen, National S<strong>of</strong>tware Industry<br />

Survey 2009. Helsinki University <strong>of</strong> Technology. Helsinki. 128 p., 2009<br />

[27] J.E. Safra, I. Yeshua, <strong>and</strong> et. al. Encyclopædia Britannica. Merriam-Webster, 2007.<br />

[28] K.-D. Schewe <strong>and</strong> B. Thalheim. Reasoning about web information systems using story algebra. In ADBIS’2004, LNCS 3255, pages<br />

54–66, 2004.<br />

[29] K.-D. Schewe <strong>and</strong> B. Thalheim. The co-design approach to web information systems development. International Journal <strong>of</strong> Web<br />

<strong>Information</strong> <strong>Systems</strong>, 1(1):5–14, March 2005.<br />

[30] K.-D. Schewe <strong>and</strong> B. Thalheim. Usage-based storyboarding for web information systems. Technical Report 2006-13, Christian Albrechts<br />

University Kiel, Institute <strong>of</strong> Computer Science <strong>and</strong> Applied Mathematics, Kiel, 2006.<br />

[31] K.-D. Schewe <strong>and</strong> B. Thalheim. Usage-based storyboarding for web information systems. Technical Report 2006-13, Christian Albrechts<br />

University Kiel, Institute <strong>of</strong> Computer Science <strong>and</strong> Applied Mathematics, Kiel, 2006.<br />

[32] K.-D. Schewe <strong>and</strong> B. Thalheim. <strong>Development</strong> <strong>of</strong> collaboration frameworks for web information systems. In 20th Int. Joint Conf. on<br />

Artifical Intelligence, Section EMC07 (Evolutionary models <strong>of</strong> collaboration), pages 27–32, Hyderabad, 2007.<br />

[33] K.-D. Schewe <strong>and</strong> B. Thalheim. Life cases: A kernel element for web information systems engineering. In Web <strong>Information</strong> <strong>Systems</strong> <strong>and</strong><br />

Technologies, volume Volume 8. Lecture Notes in Business <strong>Information</strong> Processing, Springer Berlin Heidelberg, 2008.<br />

[34] K.-D. Schewe <strong>and</strong> B. Thalheim. User models: A contribution to pragmatics <strong>of</strong> web information systems design. In K. Aberer, Z. Peng, <strong>and</strong><br />

E. Rundensteiner, editors, Web <strong>Information</strong> <strong>Systems</strong> – Proceedings WISE 2006, volume 4255 <strong>of</strong> LNCS, pages 512–523. Springer-Verlag,<br />

2006.<br />

[35] K.-D. Schewe <strong>and</strong> B. Thalheim. Semantics in data <strong>and</strong> knowledge bases. In SDKB 2008, LNCS 4925, pages 1–25, Berlin, 2008. Springer.<br />

[36] John F. Sowa. Knowledge Representation, Logical, Philosophical, <strong>and</strong> Computational Foundations. Brooks/Cole, a division <strong>of</strong> Thomson<br />

Learning, Pacific Grove, California, 2000.<br />

[37] B. Thalheim. The conceptual framework to user-oriented content management. <strong>Information</strong> Modelling <strong>and</strong> Knowledge Bases, XVII:30–<br />

49, 2007.<br />

[38] W3C. Web Ontology Language Overview. http://www.w3.org/TR/owl-features/, Feb 2004.<br />

[39] W3C RDF Core Working Group. Resource Description Framework (RDF). http://www.w3.org/RDF/, 2004.<br />

[40] L. Youseff, M. Butrico, <strong>and</strong> D. Da Silva. Toward a Unified Ontology <strong>of</strong> Cloud Computing. Grid Computing Environments Workshop,<br />

GCE ’08, pp.1-10, 2008.<br />

Youseff, L.; Butrico, M.; Da Silva, D.; , Toward a Unified Ontology <strong>of</strong> Cloud Computing. Grid Computing Environments Workshop, 2008.<br />

GCE ’08 , vol., no., pp.1-10, 12-16 Nov. 2008<br />

[41] S. Xu <strong>and</strong> W. Zhang. Knowledge as a Service <strong>and</strong> Knowledge Breaching. Proceedings <strong>of</strong> the 2005 IEEE International Conference on<br />

Services Computing. Vol 01. pp. 87-94, 2005.<br />

[42] K. Zettsu, T. Nakanishi, M. Iwazume, Y. Kidawara, <strong>and</strong> Y. Kiyoki. Knowledge Cluster <strong>Systems</strong> for Knowledge Sharing, <strong>Analysis</strong> <strong>and</strong><br />

Delivery among Remote Sites. <strong>Information</strong> Modeling <strong>and</strong> Knowledge Bases, Vol. XIX, IOS Press, pp.282–289 (2008).<br />

[43] K. Zettsu, Y. Kidawara, <strong>and</strong> Y. Kiyoki. Developing Next Generation Web as Collaboration Media. Infocommunications Journal, Vol.<br />

LXV., No. 2010/I, pp.15–19, Scientific Association for Infocommunications, Hungary, 2010.


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

6. Interaktivität 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 />

6 Spezifikation der Interaktivität<br />

Greift nur hinein ins volle Menschenleben!<br />

Ein jeder lebts, nicht vielen ists bekannt,<br />

Und wo Ihrs packt, da ists interessant.<br />

In bunten Bildern wenig Klarheit:<br />

So wird der beste Trunk gebraut,<br />

Der alle Welt erquickt und auferbaut.<br />

Goethe, Faust, Erster Teil, Vorspiel auf dem Theater, Lustige<br />

Person<br />

6.1 Story Spaces<br />

KDS 3.1<br />

außerdem einarbeiten: WebIS.ESFworkshop260911talkSCCH<br />

6.1.1 Der Story-Raum, Szenen, Dialogschritte und Szenario<br />

Wir unterscheiden zwischen dem Teil eines Systemes, der für den Benutzer sichtbar ist, und dem internen Teil eines<br />

Systemes, der für den Benutzer nicht sichtbar gemacht werden muß. Nach Wegner’s Theorie der interaktiven Maschinen<br />

werden damit unterschiedliche Aspekte erfaßt. Interaktive Maschinen stellen die Interaktion eines Benutzers<br />

dar. Sie unterliegen <strong>and</strong>eren Paradigmen als klassische Berechnungssysteme:<br />

Input-Output-Ströme: Ein Benutzer reagiert auf den Output eines Systemes mit seiner Antwort.<br />

Beobachtungen, Glauben, Bedürfnisse, Intentionen und Aufgaben eines Akteurs bestimmen die Interpretation<br />

des beobachteten Output des Systemes mit.<br />

• Damit besitzt die Antwort des Akteurs auf den beobachteten Output eine intensionale Logik.


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 628<br />

• Ein Akteur stellt die Beobachtung zu den Aufgaben in Beziehung, die er gerade lösen möchte.<br />

• Der Output wird mit einer Umgebung bzw. einen Kontext im allgemeinen in Beziehung gesetzt.<br />

Damit wird durch den Akteur eine <strong>and</strong>ere Beziehung eingegangen als dies bei der Modellierung von algorithmischen<br />

Systemen üblich ist. Mensch-Maschinen-Schnittstellen erfordern deshalb eine explizite Berücksichtigung folgender<br />

Parameter:<br />

Beobachtetes Verhalten: Die Beobachtungen bestimmen die Sicht des Akteurs auf das System.<br />

Interpretiertes Verhalten: Ein Akteur interpretiert das Verhalten des Systemes.<br />

✛<br />

IO-<br />

Interface<br />

Anwend.-<br />

system<br />

❄<br />

✛<br />

✙ ❥✙<br />

Benutzer A<br />

Anwend.-<br />

IO- ✲ ✲<br />

system ❥✛ ✛ Interface<br />

Benutzer A<br />

❄ ✲ ✲<br />

✲<br />

Algorithmische<br />

Berechnung<br />

Benutzer A<br />

✲<br />

Nichtalgorithmisches Verhalten des Akteurs: Das Verhalten eines Akteurs ist meist nicht algorithmisch beschreibbar.<br />

Sequentielle<br />

Interaktion<br />

✛ ✛<br />

Benutzer A<br />

❄ ✲ ✲<br />

7✛<br />

Anwend.-<br />

IO-<br />

✙system<br />

Interface<br />

✲ ✲<br />

❥✙<br />

Benutzer B<br />

❥✛ ✛<br />

❄<br />

Mehrstrom-<br />

(konkurrierende)<br />

Interaktion<br />

Benutzer A<br />

✲ ✲<br />

Abbildung 1: Algorithmisches Verhalten versus Mensch-Maschine-Verhaltes eines oder mehrerer Akteure<br />

In Bild 1 vergleichen wir das algorithmische Verhalten eines Systemes in der klassischen Vorstellung mit der<br />

sequentiellen Interaktion, bei der auch das System ohne Benutzerinteraktion seinen Zust<strong>and</strong> ändert, wobei diese<br />

Änderung ggf. auch für einen Benutzer nicht mehr verstehbar oder nachvollziehbar ist. Das Verhalten wird noch<br />

weniger einsichtig, wenn das System seinen Zust<strong>and</strong> aufgrund einer Interaktion mehrerer Benutzer ändert. In letzteren<br />

Fall kann dadurch das Verhalten eines Systemes für den Einzelbenutzer zufällig oder chaotisch aussehen, obwohl das<br />

System selbst deterministisch ist.<br />

Wir unterscheiden deshalb in Bild 2 zwischen<br />

dem Systemraum, der das Systemverhalten widerspiegelt und für den wir das erweiterte ER-Modell zur Spezifikation<br />

verwenden, und<br />

dem Interaktionsraum, der den Content des Benutzers enthält, auf einer Begriffs-, Konzept- oder Content-Algebra<br />

aufsetzt, aber einer <strong>and</strong>eren Logik unterliegt.<br />

Der Interaktionsraum setzt in unserem Verständnis auf dem Systemraum auf, erweitert diesen jedoch um Benutzeraspekte.<br />

Wir fassen diesen Spezifikationsansatz in der Sprache SiteLang zur Entwicklung von Storyboards zusammen.<br />

Wir führen dazu weitere Begriffe ein:<br />

Der Story-Raum widerspiegelt die Menge aller Stories. Der Story-Raum besteht aus Szenen und markierten Transitionen<br />

zwischen diesen Szenen.<br />

Eine Story stellt einen H<strong>and</strong>lungsstrom mit allen seinen Varianten dar.<br />

Ein Szenarium ist ein Durchlauf durch eine Story, d.h. ein “Objekt” einer Story, wenn wir die Story als Klasse<br />

auffassen.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 629<br />

Interaktionsraum<br />

Systemraum<br />

i.a.<br />

(Zeit-, Raum-) beschränkt<br />

Berechenbare Funktion<br />

Systemraum:<br />

(H)ERM-Strukturierung<br />

(H)ERM-Funktionalität<br />

(H)ERM-Logik<br />

Interaktionsraum:<br />

Content<br />

Content-Algebra<br />

Deontischer Situationskalkül<br />

Abbildung 2: Der Interaktionsraum verglichen mit dem Systemraum<br />

Szenario stellen ein Bündel oder einen Pfad von Durchläufen dar. Szenario können zu einer Story zusammengefaßt<br />

werden. Innerhalb eines Story-Raumes können viele Stories realisiert werden. Neben den Stories können auch<br />

Nebenstories und Hauptstories spezifiziert werden.<br />

Eine Story besteht aus Szenen, in denen Akteuren ihre Content-Suite in ihrem Repräsentationstil und in Abhängigkeit<br />

von ihrem Kontext dargestellt wird.<br />

Der Akteur stellt eine Gruppe von Benutzern in abstrakter Form dar.<br />

Eine Szene besteht aus Dialogschritten, in denen die zugelassenen Akteure bestimmte Aktionen unternehmen.<br />

Die Markierung von Szenen wird beschrieben durch Ereignisse oder Aktivitäten für den Übergang von einer<br />

Szene zur nächsten, durch die involvierten Akteuere, durch Vor- und Nachbedingungen für die Nutzung der<br />

Szene, durch die Priorität der Transition, durch die Häufigkeit und durch die Anzahl der Wiederholungen.<br />

Dialogschritte sind beschrieben durch die Sichten auf die Content-Objekte, die Manipulationsanforderungen, die<br />

zugelassenen Operationen, die Vorbedingung, eine Abschlußbedingung und die Ereignisse, die zum Schritt<br />

führen, sowie die agierenden Akteure der Szene.<br />

Formal können wir diese Begriffe von SiteLang wie folgt einführen:<br />

Der Story-Raum ist ein gerichteter, bewerteter Graph bestehend aus Szenen und den Transitionen zwischen den<br />

Szenen, d.h.<br />

Story-Raum = ({ Szene }, E, λ, κ)<br />

E ⊆ { Szene } × { Szene }<br />

λ : { Szene } → SzeneBeschreibung<br />

κ : E → TransitionBeschreibung<br />

TransitionBeschreibung ⊆<br />

(Ereignisse ∪ Aktivitäten) × Akteure × Vorbedingung × Nachbedingung ×<br />

Priorität × Häufigkeit × Wiederholrate<br />

Eine Szene besteht aus Dialogausdrücken, dem Content, einer Darstellung der Akteure, einer Repräsentation und<br />

dem Kontext, d.h.<br />

Szene = ( SzeneID ,<br />

DialogueSchrittAusdruck ,<br />

Content-Suite,<br />

Akteure (<br />

AkteurID,<br />

Rechte,<br />

Aufgaben(<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 630<br />

Zuordnung,<br />

Rolle ) ),<br />

Repräsentation (Stil, Defaultwerte, Betonung, ...),<br />

Kontext (Hardware, S<strong>of</strong>tware, Kanal, Intention))<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 631<br />

6.1.2 Datenbank-Unterstützung für den Story-Raum<br />

Es sind verschiedene Repräsentationen für Szenen und Dialogschritte möglich. Für komplexere Anwendungen ist<br />

eine Datenbankablage der Elemente von SiteLang wünschenswert. Dies kann durch eine Struktur wie in Bild 3<br />

erfolgen. Damit sind dann auch in einfacher Form einzelne Schritte eines Szenario abw<strong>and</strong>elbar, ohne im Detail alle<br />

Strukturen, Oberflächen und Prozesse durchmustern zu müssen.<br />

((aktiv.ElementVon.Dialogausdruck)✶basiertAuf)[Szene] ⊆ aktiv.involviert[Szene]<br />

Story ✛ ✲<br />

fußtAuf<br />

Repräsentationsstil<br />

Aktivitätenfolge<br />

✻<br />

Event<br />

Condition<br />

Do<br />

AcceptCondition<br />

✻<br />

Element<br />

von<br />

❄<br />

✛<br />

✛<br />

Plattform<br />

basiertAuf<br />

aktiv<br />

❄<br />

Kontext<br />

(1,1)<br />

Umstände<br />

Kanal<br />

✲<br />

✲<br />

ID<br />

❄<br />

Szene<br />

✻<br />

involviert<br />

❄<br />

Akteur<br />

❄<br />

✛<br />

(1,1)<br />

∨(1,n)<br />

Benutzung<br />

Emphasis<br />

✿<br />

nutzt<br />

Rechte<br />

Default<br />

Rollenkategorie<br />

✲<br />

Aufgabenzuordnung<br />

❄<br />

Aufgabe<br />

Obligation<br />

✲<br />

✿<br />

✲<br />

✲<br />

Rechtekategorie<br />

Content-<br />

Objekt<br />

Dialogschrittausdruck<br />

Dialogschritt<br />

ID<br />

Ausrüstung<br />

Gruppe<br />

Pr<strong>of</strong>il<br />

Abbildung 3: Repräsentation der Elemente von SiteLang<br />

Der Vorteil dieser Abbildung des Story-Raumes liegt auf der H<strong>and</strong>: Es können Änderungen jederzeit in einfacher<br />

Form eingebracht werden, ohne sich direkt auf die gesamte Prozeßwelt auszuzwirken.<br />

Das Ausspiel der Oberfläche wird durch entsprechende XML-Architekturen besonders unterstützt. In diesem Fall<br />

kann mit einer Architektur nach dem Zwiebelprinzip in Bild 4 vorgegangen werden. Mit dieser Generierung erreicht<br />

man nicht nur eine höhere Flexibilität, sondern auch eine Vereinfachung der gesamten Anwendung.


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 632<br />

Präsentationsmaschine<br />

Container-Generator<br />

Content-Objekt-Generator<br />

Sichten-Generator<br />

Datenbanksystem<br />

DBMS<br />

...<br />

virtuelle/materialisierte Retrievalund<br />

Modifikationssichten<br />

Funktionen für Überblick, Indexierung, Ein-/Ausgabe,<br />

Navigation, Integration in <strong>and</strong>ere Komponenten<br />

Service-Pakete, Verpackungsfunktionen ,<br />

Funktionen für Dialogszenen und Szenario<br />

Adaption an Akteure, Ausrüstung, Kanal etc.;<br />

Erweiterung um Dekomposition, Historie und Stil<br />

Abbildung 4: Der Zwiebelzugang zur Generierung der Oberflächen von Anwendungen<br />

6.1.3 Direktdarstellung des Story-Raumes<br />

Eine Datenbank-Unterstützung ist nicht in jedem Fall für den Story-Raum notwendig. Wir können auch anstelle einer<br />

vollständigen Datenbank direkt die folgenden OLAP-Elemente betrachtet werden, die z.T. allerdings redundante<br />

<strong>Information</strong>en enthalten:<br />

Dialogszene: In einer Dialogszene werden die involvierten Akteure, das genutzte Content-Objekt und die Dialogschritte<br />

beschrieben.<br />

Dialogschritt: Ein Dialogschritt ist die kleinste Story-Einheit. Sie erlaubt die Darstellung der Retrieval-Sichten,<br />

der bereitgestellten Funktionen, einer Einschränkung der involvierten Akteure auf aktive Akteure und einer<br />

Steuerspezifikation mit<br />

Ereignissen, die zum Aufsuchen dieses Dialogschritts führen,<br />

Bedingungen, unter denen der Dialogschritt ausgeführt werden kann, und<br />

Beendigungsbedingungen, mit denen eine explizite Kontrolle realisiert werden kann, so daß ein Dialogschritt<br />

erst beendet werden kann, wenn eine bestimmte Konsistenz erreicht ist.<br />

Szenario: Der Story-Raum erlaubt eine Vielzahl von Durchläufen. Da in einer Anwendung nur einige Durchläufe<br />

von Interesse sind, spezifizieren wir die Hauptdurchläufe durch Szenario. Szenario sind i.a adaptierbar an<br />

die Benutzung, an die direkten Benutzer, deren Anwendungskontext und deren Benutzungshistorie. Dies wird<br />

durch eine Parametrisierung erreicht.<br />

Szenarium: Jedes Szenario enthält aufgrund der Parametrisierung eine Vielzahl von Durchläufen. Ein konkreter<br />

Durchlauf wird durch eine Wertezuweisung an alle Parameter zu einem Szenarium.<br />

Diese Direktspezifikation wird insbesondere für <strong>Information</strong>ssysteme angew<strong>and</strong>t, deren Präsentationssystem nicht<br />

generiert werden soll. Mit einer redundanten Entwicklung von Elementen ist die Einführung von Identifikatoren für<br />

die Elemente sinnvoll.<br />

Dialogschritte können spezifiziert werden durch Tabellen der folgenden Form:<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 633<br />

Dialogschrittname<br />

on event Vorbedingung Content-Objekt zugelassene<br />

Operationen<br />

Akteur<br />

.... .... ... .... .... .... .... ....<br />

Es sind auch graphische Repräsentationen wie in Bild 5 sinnvoll.<br />

zugelassene Manipulationsoperationen<br />

Dialogschritt<br />

Dialogszene<br />

Steuerung(Ereignis,Vorbedingung,Akzeptanzbedingung)<br />

❄<br />

Content-Objektsicht ✲<br />

nächster<br />

Dialogschritt<br />

Manipulations-<br />

✲<br />

zugelassene<br />

Operation ✿<br />

operation<br />

✻<br />

zugelassener Akteur<br />

Transition nach<br />

❯ Dialogsschrittausdruck<br />

accept on<br />

✻<br />

✻ ✻ ✻ ✻<br />

Akteure (Rechte,<br />

Aufgaben (Zuordnung,<br />

Rolle))<br />

Szenenabfolge<br />

Transition<br />

Content-<br />

Object<br />

Repräsentationsstil<br />

Kontext,<br />

Aufgabe<br />

Abbildung 5: Sichtenstern für eine Dialogszene mit entsprechenden SiteLang-Elementen<br />

6.1.4 Der Spezifikationsrahmen für Dialogschritte<br />

Die Spezifikation der einzelnen Dialogschritte wird in sechs Dimensionen aufgefächert:<br />

Die Intentionen der einzelnen Dialogschritte folgen der allgemeinen Mission der Anwendung und werden durch<br />

entsprechende Metaphorik gut unterstützt.<br />

Der Story-Raum wird durch die H<strong>and</strong>lungsverläufe der Anwendung bestimmt. Er zerfällt in Szenen, die wiederum<br />

in Dialogschritte zerlegt werden.<br />

Die Spezifikation der Benutzung basiert auf einer Darstellung der Akteure, ihrer Rollen, Rechte und Verantwortlichkeiten,<br />

sowie der Präsentation.<br />

Der Content der einzelnen Dialogschritte wird durch eine Content-Objekt-Suite bestimmt.<br />

Die unterstützende Funktionalität für die einzelnen Dialogschritte wird auf der Funktionalität der Content-Typen<br />

aufgesetzt.<br />

Der Kontext der einzelnen Dialogschritte wird durch den Kontextraum determiniert.<br />

Diese sechs Dimensionen können in Zusammenhag mit dem Zachman-Spezifikationsrahmen gestellt werden. Wir<br />

unterschieden vier Hauptdimensionen für jeden Dialogschritt:<br />

die zugelassenen Akteure des Dialogschrittes,<br />

die Einbettung in den Story-Raum,<br />

die bereitgestellten Content-Objekte und<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 634<br />

der Zeitrahmen für die Absolvierung des Dialogschrittes.<br />

Diese Hauptdimensionen sind in Bild 6 graphisch mit ihren Assoziationen skizziert.<br />

Intention<br />

Aufgaben<br />

Rollen, Verantwortlichkeiten<br />

Zeitbeschränkungen, Ablauf<br />

Dialogschritt<br />

Akteur<br />

Gemeinsame<br />

Öffentliche<br />

Private<br />

Zeitrahmen<br />

Content-Objekte<br />

Art<br />

Existenz, Gültigkeit<br />

Funktionalität<br />

Content<br />

Räume<br />

Arbeitsresultate<br />

Abbildung 6: Der Spezifikationsrahmen für Dialogschritte<br />

Die Assoziationen werden gleichzeitig mit dem Rahmen dargestellt. So sind z.B. Content-Objekte mit Akteuren<br />

assoziiert. Sie können öffentlich sein, von Akteuren gemeinsam benutzt werden oder auch privat sein. Akteure<br />

beteiligen sich in Dialogschritten in unterschiedlichen Rollen und Verantwortlichkeiten. Die Content-Objekte werden<br />

als Content-Suite mit einer entsprechenden Funktionalität bereitgestellt. Für Arbeitsgruppen sind Dokumente<br />

und Arbeitsräume typische Content-Objekte. Die Content-Objekte sind ggf. nicht dauerhaft gültig und können erzeugt,<br />

modifiziert und gelöscht werden. Die Dialogschritte werden zur Bewältigung von Aufgaben mit bestimmten<br />

Intentionen benutzt.<br />

Als typisches Beispiel kann die Untersetzung des Spezifikationsrahmens für Dialogschritte von Arbeitsgruppen-<br />

Sites wie in Bild 7 angesehen werden:<br />

Die Akteure sind Arbeitsgruppenmitglieder, Arbeitsgruppenleiter und -verantwortliche, insbesondere Administratoren.<br />

Der Story-Raum besteht aus einer Reihe von Dialogschritten wie z.B. dem Zusammenarbeitsschritt.<br />

Die Content-Objekte, z.B. die Gruppendokumente, können auch spezielle Dokumente wie Tagesordnungen, allgemeine<br />

Nachrichten oder persönliche Mitteilungen sein. Öffentliche Dokumente werden in W<strong>and</strong>zeitungen etc.<br />

veröffentlicht. Dokumente können verpackt und entpackt, editiert oder auch nur gelesen werden. Es werden<br />

den Mitgliedern eigene Arbeitsräume, z.B. Schreibtische und persönliche Speicher, zur Verfügung gestellt.<br />

Der Zeitrahmen wird durch die Zusammenarbeit der Arbeitsgruppe vorgegeben.<br />

Der Spezifikationsrahmen für einen Beitrag eines Arbeitsgruppenmitgliedes wird in Bild 8 vorgestellt:<br />

Die Akteure sind diesmal Mitglieder einer Redaktionskommission. Sie erstellen, kommentieren und lesen gemeinsame<br />

Beiträge.<br />

Der Story-Raum umfaßt z.B. den Dialogschritt einer Beitragserstellung.<br />

Die Content-Objekte sind Beiträge. Sie werden mit der üblichen Funktionalität wie bei Texteditiersystemen unterstützt.<br />

Die Beiträge können abgelegt, zwischengespeichert oder auch gelöscht werden.<br />

Der Zeitrahmen wird durch den Aufgabenbereich der Redaktionsgruppe diktiert. Dokumente, die keine Endfassung<br />

darstellen, werden nach der Redaktionsperiode gelöscht oder ggf. archiviert.<br />

Der Spezifikationsrahmen ist eine Verallgemeinerung der Theorie der Wortfelder.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 635<br />

Leiter<br />

Kooperation Vollständiges Dokument<br />

Intention Aufgaben<br />

Mitglied<br />

Deadline<br />

Rollen, Verantwortlichkeit<br />

Zeitbeschränkung, Ablauf<br />

Moderator<br />

Phase<br />

Arbeitet mit<br />

Arbeitsgruppenmitglied<br />

Zeitintervall<br />

Gemeinsame<br />

W<strong>and</strong>zeitung Öffentliche<br />

Gruppendokumente<br />

Art<br />

Existenz, Lebensspanne<br />

Schreibtisch Privat<br />

Persönlicher Speicher Funktionalität Content<br />

Editieren<br />

Durchmustern<br />

Meinung<br />

Ent-/Verpacken<br />

Antwort<br />

Räume Arbeitsresultate<br />

Klub Archiv Report Programm<br />

Protokoll<br />

Diskussionsraum<br />

Abbildung 7: Der Spezifikationsrahmen für Arbeitsgruppen-Sites<br />

Unterstützung der Arbeitsgruppe Einreichen<br />

Intention<br />

Aufgabe<br />

Mitglied<br />

Deadline<br />

Rollen, Verantwortlichkeiten<br />

Zeitbeschränkungen, Ablauf<br />

Einreichen eines Beitrages<br />

Phase<br />

Erstelle Beitrag<br />

Redaktionskommissionsmitglied<br />

Redaktionsperiode<br />

Gemeinsame<br />

Beiträge <strong>and</strong>erer<br />

Beitrag<br />

Art<br />

Existenz, Gültigkeit<br />

Beiträge zum Durchmustern<br />

Arbeitsraum Private<br />

Persönlicher Speicher Funktionalität Content<br />

Schreiben<br />

Einreichen<br />

Revidieren<br />

Download der letzten Version Raum Arbeitsresultate<br />

Diskussion der Beiträge<br />

Durchmustern vorh<strong>and</strong>ener Beiträge Diskussionsraum<br />

Beitrag<br />

Abbildung 8: Der Spezifikationsrahmen für Beiträge von Arbeitsgruppenmitgliedern<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 636<br />

6.1.5 Die detaillierte Spezifikation der Dialogschritte und Dialogszenen<br />

Eine vollständige Beschreibung der Dialogschritte kann mit dem Arbeitsblatt erstellt werden.<br />

Dialogschritt<br />

header<br />

Name<br />

Titel<br />

Container<br />

Inhalt<br />

Text<br />

multimedia object<br />

Funktionalität<br />

Anpassungsstil<br />

Einordnung in Hierarchien<br />

Adhäsion<br />

Adaptation<br />

Interaktionsstil<br />

Steuerungstil<br />

involvierte Akteure<br />

Layout<br />

Graphik<br />

Bild<br />

Video<br />

Audio<br />

Operationen<br />

algorithmisches Objekt<br />

Oft wird eine vollständige Beschreibung schwierig. Deshalb können wir eine Beschreibung gliedern in<br />

obligatorische Best<strong>and</strong>teile, deren Spezifikation unbedingt erforderlich ist,<br />

weitere sinnvoll Best<strong>and</strong>teile, (good practice) deren Spezifikation der weiteren Bearbeitung zugute kommt und die<br />

in einer Spezifikation nicht fehlen sollten,<br />

optionale Best<strong>and</strong>teile, die eine Beschreibung sinnvoll ergänzen, aber die nicht für den Abschluß der Spezifikation<br />

erforderlich sind, und<br />

nützliche Best<strong>and</strong>teile, die eine Einordnung und eine Beschreibung des Kontextes erlauben.<br />

Diese Untergliederung erscheint auf dem ersten Blick als überfrachtet. Da in der Praxis Entwicklungsgruppen sehr<br />

häufig innerhalb kurzer Zeiträume wechseln bzw. je nach Projektetappe nur für eine kurze Zeit existieren, ist eine<br />

gute, alle Aspekte umfassende Dokumentation erforderlich.<br />

Eine Beschreibung der Dialogszenen, in denen diese Untergliederung vorgenommen ist, wird im folgenden Arbeitsblatt<br />

angegeben:<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 637<br />

Szene<br />

header<br />

Inhalt Name Entwickler copyright<br />

Problemgebiet Motivation Source<br />

Lösung Intention auch bekannt als siehe auch<br />

Variante<br />

Anwendungsgebiet<br />

Anwendung<br />

Anwendbarkeit<br />

Konsequenzen der Anwendung<br />

Beispieleinsatz<br />

angew<strong>and</strong>t in Anwendungen<br />

Benutzbarkeitspr<strong>of</strong>il Erfahrunsberichte DBMS<br />

Beschreibung<br />

Strukturierung: Funktionalität: Interaktivität: Kontext:<br />

Struktur, statische IC Operationen, dynamische<br />

IC, Erzwingungsstrategien<br />

Story-Raum, Akteure,<br />

Content-Objekte, Repräsentation<br />

Implementation<br />

Implementation Programmkode assoziierte Szenario<br />

assoziierte Szenen Kollaboration Integrationsstrategie<br />

obligatorisch good practice optional nützlich<br />

Aufgaben, Intention, Geschichte,<br />

Umgebung, Ziele<br />

Ein Szenario ist z.B. in Bild 9 beschrieben.<br />

Haupt-Story (z.B. als Folge von Szenen)<br />

Szenario (Ausschnitt des Story-Raumes ) mit/ohne Seitenpfade<br />

✲ ✲<br />

Seitenpfad mit<br />

✻<br />

partieller Veränderung des Szenariums<br />

❄<br />

2 ✾<br />

sc 1 ✲ sc 2 ✲ sc 3 ✲ sc 4 ✲ sc 5 ✲ ...<br />

Abbildung 9: Szenario in einem Story-Raum<br />

Ein Szenario ist durch eine Zuweisung von Werten an die Parameter konkretisiert. Damit wird das Szenario für<br />

einen Benutzer zu einem Szenarium, das dieser durchläuft. Mit der Zuordnung eines konkretisierten Szenario zu<br />

einem Benutzer wird damit auch der Akteur personalisiert.<br />

Die Adaption der Elemente des Story-Raumes an einen konkreten Durchlauf kann durch den Aufbau von Sitzungsobjekten<br />

in der folgenden Form erfolgen. Sitzungsobjekte selbst verfügen wiederum über eine Historie und<br />

erlauben damit eine Aufzeichnung der Historie der Benutzung durch einen Akteur.<br />

Ein Beispiel einer Lernszene wird in Bild 10 dargestellt. Ein Lehrstuhl erarbeitet das Lehrveranstaltungsangebot<br />

gemeinsam. Dabei existieren zwei Einwahlstränge, die parallel ablaufen: die Planung von Vorlesungen mit den<br />

Übungen etc. und die Erarbeitung eines Seminarvorschlages. Bei der Planung von Vorlesungen kann man auswählen,<br />

ob eine Anforderung bearbeitet wird oder ob ein neuer Kurs erarbeitet wird.<br />

Bei der Eingabe von Daten kann man auch auf alte, historische Daten zurückgreifen. Analog kann auch ein Mitarbeiter<br />

eines Lehrstuhles seine Arbeitsaufgaben diskutieren. Am Ende werden die Daten durch den Lehrstuhlleiter<br />

eingereicht.<br />

Eine analoge Szene können wir auch generisch entwickeln. Eine Suchszene in einer Webseite muß unterschiedliche<br />

Facetten der Suche darstellen:<br />

• Die eigenschaftsbasierte Suche orientiert sich auf Haupteigenschaften, die auch als solche für den Content<br />

spezifiziert sein müssen z.B. durch Angabe von Schalen eines Sterntyps. Die eigenschaftsbasierte Suche muß<br />

robust sein. Wir wenden deshalb dafür SoundEx-Algorithmen an.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 638<br />

Szene zur kollaborativen Semesterplanung<br />

❨<br />

Einreichung<br />

der Daten durch den<br />

Lehrstuhlleiter<br />

✿<br />

Akzeptierung einer<br />

Kursanforderung<br />

✿<br />

Bestätigung<br />

❑<br />

❯<br />

❥ Zuweisung<br />

von Kursen<br />

an Mitarbeiter<br />

Login<br />

durch den<br />

Lehrstuhl<br />

❑<br />

❥<br />

Generierung<br />

neuer Kurse<br />

als Vorschläge<br />

❥ Anpassung<br />

der Daten<br />

für einen Kurs<br />

❯<br />

❥ Eingabe der<br />

erforderlichen<br />

Daten<br />

✿ 2<br />

❑<br />

❯<br />

Bestätigung<br />

der Kurszuweisungen<br />

durch Mitarbeiter<br />

3<br />

Darstellung<br />

der Vorschläge<br />

für Kurse<br />

❥<br />

Auswahl<br />

von Daten für<br />

das Kurse<br />

❯<br />

Alte, gespeicherte<br />

Daten vergangener<br />

Semester<br />

❯<br />

Formulierung<br />

von Nebenbedingungen<br />

Abbildung 10: Szene zur kollaborativen Planung eines Lehrveranstaltungsangebotes eines Lehrstuhles<br />

• Die assoziative Suche geht dagegen von assoziierten Begriffen aus. So kann z.B. eine Hotelsuche mit einer<br />

Suche nach Hotels in der Nähe von einer Sehenswürdigkeit oder eines Transportmittels beginnen, wobei die<br />

Nähe selbst durch Fuzzy-Funktionen unterstützt wird.<br />

• Eine Suche kann auch für Schnäppchensucher von Sonderangeboten angeboten werden.<br />

Die Suche ist ein hochgradig iterativer Prozeß mit einer schrittweisen Verfeinerung. Abschließend kann eine Buchung<br />

erfolgen. Die Suchszene kann zu jeder Zeit ohne weitere Schritte verlassen werden. In Bild 11 wird eine Suchszene<br />

dargestellt, die diese Aspekte umfaßt. Diese Gestaltung der Suchszene hat sich bei der Gestaltung von Websites<br />

bewährt. Mit dieser Gestaltung verwenden wir Techniken der aspekt-orientierten und generativen Programmierung.<br />

Gleichzeitig kann dieser Zugang als eine Variante der subjekt-orientierten Programmierung verstehen.<br />

Suchszene<br />

für Veranstaltungen<br />

kartenbasierte<br />

Suche<br />

❑<br />

❥<br />

❯ ✾<br />

❥ Resultat &<br />

Verfeinerungsschritt<br />

Sehenswürdigkeiten<br />

❑<br />

individuelle<br />

Anfrage<br />

❨<br />

3❯<br />

❥ zielgerichtete<br />

Suche<br />

❑<br />

✾<br />

eigenschaftsbasierte<br />

Suche<br />

3<br />

Anfangsschritt<br />

❯<br />

❥ Buchungsschritt<br />

Abbildung 11: Dialogschritte innerhalb eines Suchszene<br />

Neben den hier dargestellten Suchschritten gibt es noch weitere Varianten für Dialogschritte zur Suche:<br />

• Die antonymbasierte Suche beginnt mit einem Begriff, den man nicht sucht, der aber relativ gut das Gegenteil<br />

umschreibt.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 639<br />

• Das “Zappen” erlaubt den Beginn an einer beliebigen Stelle und eine spezifische Form des “Drill-down”.<br />

• Das “Roll-up” beginnt mit einem speziellen Begriff und hangelt sich über die Gattung oder Kategorisierung zu<br />

den gewünschten Begriffen.<br />

• Das Umschauen oder Kramen ist eine Suche mit einer Drill-down-Funktion zur Verfeinerung.<br />

• Die Formulierung eines vollständigen Suchausdruckes z.B. mit einer SQL-Anweisung ist eher die Ausnahme.<br />

• Die Suche mit intelligenten, sich “durchfragenden” Agenten ist eine Form des Auslegens von Fallen oder der<br />

Beauftragung von Suchhelfern.<br />

In analoger Form kann auch die Navigation oder auch der Export/Import in generischer Form dargestellt und mit<br />

konkreten Datenstrukturen unterlegt werden.<br />

Login Scene With Adaptation <strong>of</strong> System Facilities to Learner<br />

Adaptation for<br />

interactive<br />

learning 2<br />

Join<br />

supervised<br />

program<br />

❑<br />

Adapt for<br />

experiments<br />

✿with data<br />

Change<br />

payment or<br />

pr<strong>of</strong>ile ❨<br />

❥<br />

✿<br />

Learner<br />

login<br />

❥<br />

Join<br />

cooperating<br />

group<br />

Enter<br />

Login<br />

❑<br />

❯<br />

Module<br />

selection<br />

2<br />

❑<br />

❥ Programm<br />

selection<br />

❥<br />

Unit<br />

selection<br />

3<br />

Anonymous<br />

login<br />

❥<br />

Extend<br />

by adding<br />

payment<br />

Abbildung 12: Example <strong>of</strong> a Scene: Login scene to learning site<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 640<br />

EVALUATOR<br />

close<br />

group<br />

check<br />

answers<br />

❑<br />

❨<br />

❯<br />

3<br />

collect<br />

wikis<br />

define<br />

new<br />

wikis<br />

❑<br />

H<br />

group<br />

❯ communi-<br />

❯<br />

develop new<br />

wikis<br />

cation<br />

content<br />

chunk<br />

space<br />

wiki<br />

delivery<br />

box<br />

H<br />

❯<br />

new<br />

wiki<br />

wiki<br />

sheet<br />

quit<br />

group<br />

WIKI TEAM<br />

MEMBER<br />

✾<br />

2<br />

✾<br />

❥ discussion<br />

& evaluation<br />

❯<br />

revised<br />

wiki<br />

next<br />

wiki<br />

❑<br />

group<br />

help<br />

hints<br />

&<br />

tricks<br />

room<br />

SUPPORTING<br />

EXPERT<br />

pending<br />

wikis<br />

❯<br />

confirmed<br />

wikis<br />

❑<br />

❯<br />

outdated<br />

wikis<br />

Abbildung 13: Wiki Storyboards<br />

Algorithms Using Data<br />

selection<br />

<strong>of</strong> necessary<br />

data sets<br />

❑<br />

❥<br />

collection<br />

<strong>of</strong> data sets<br />

owned<br />

by learner<br />

illustration <strong>of</strong><br />

algorithm<br />

chosen<br />

❨<br />

3<br />

❥ reminding<br />

background &<br />

configuration<br />

✿<br />

❑<br />

3❯<br />

❥ execution<br />

<strong>of</strong> chosen<br />

algorithm<br />

quick<br />

tutorial ❨<br />

selection<br />

<strong>of</strong> another<br />

algorithm<br />

❨<br />

❯<br />

explanation<br />

<strong>of</strong> results<br />

obtained<br />

Abbildung 14: Storyboard with Side Pathes<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 641<br />

6.1.6 Storyboards are Different from Workflows<br />

Supervised Solution <strong>of</strong> Exercises<br />

SUPERVISOR<br />

close<br />

group<br />

check<br />

answers<br />

❑<br />

❨<br />

❯<br />

collect<br />

answers<br />

❑<br />

3<br />

define<br />

new<br />

assignments<br />

H<br />

group<br />

communication<br />

❯<br />

❯<br />

develop new workplace<br />

new<br />

assignments<br />

assignments<br />

assignment<br />

&<br />

answer<br />

delivery<br />

box<br />

H<br />

❯ ✾<br />

answering<br />

sheet<br />

2<br />

quit<br />

group<br />

✾<br />

EXERCISE TEAM<br />

MEMBER<br />

revised<br />

assignment<br />

❑<br />

❥ discussion<br />

& evaluation<br />

❯<br />

next<br />

assignment<br />

group<br />

help<br />

hints<br />

&<br />

tricks<br />

room<br />

SO-<br />

CRATE<br />

new<br />

pending<br />

tricks<br />

❯<br />

hints<br />

& tricks<br />

❑<br />

❯<br />

outdated<br />

hints<br />

& tricks<br />

Abbildung 15: Storyboard with [1,1]-[n≫ 1,m] Workflow<br />

v 1<br />

✲<br />

insert T Info<br />

sessionInfo ✲<br />

confirm<br />

Login Scene<br />

Wait<br />

Choose Submission<br />

❄<br />

SubmitPaperData Scene<br />

❯<br />

α<br />

submit<br />

PaperData<br />

scene<br />

A ✻ ❄<br />

δ<br />

submit<br />

Permit<br />

A ✻ ❄<br />

✲ ✲ ✲<br />

update T Info update<br />

✲<br />

confirmed<br />

✲ ✲<br />

login<br />

✛ ✛<br />

login correct<br />

✲ ✲<br />

obtain<br />

✲ ✲<br />

confirm<br />

✛ ✛<br />

upload correct<br />

✲<br />

Paper Submission System Workflow<br />

To<br />

initialize✲ generate<br />

To<br />

session media object<br />

❄<br />

To<br />

deliver<br />

container<br />

❄<br />

Received<br />

update<br />

data ❦<br />

For ❄ Is<br />

Check ✲required<br />

data data<br />

consistency change ✶<br />

❄<br />

Received<br />

paper ✲ close<br />

To<br />

data session<br />

❄<br />

To<br />

prepare ✲ close<br />

To<br />

acknowledgement session<br />

Abbildung 16: Storyboard with [1,1]-[n≫ 1,m] Workflow: Paper submission<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 642<br />

Sequenced Competitive Solution Scene<br />

❑<br />

Selection<br />

<strong>of</strong> problem<br />

typ ❨<br />

❑<br />

❥<br />

<strong>Analysis</strong><br />

<strong>of</strong> learners<br />

selection<br />

❑<br />

Selection<br />

<strong>of</strong> appropriate<br />

data 2<br />

❑<br />

❥Consideration<br />

on missing<br />

data<br />

Evaluation<br />

<strong>of</strong> learners<br />

competition<br />

results<br />

❑<br />

Task<br />

delivery<br />

step<br />

❑<br />

❯<br />

Selection<br />

<strong>of</strong> appropriate<br />

algorithm<br />

Code<br />

upload &<br />

installation<br />

❑<br />

❯<br />

Finding<br />

a solution for<br />

missing data<br />

Inspection<br />

<strong>of</strong> sample<br />

solution<br />

❑<br />

❯ Selection<br />

<strong>of</strong> appropriate<br />

attributes ❨<br />

❥<br />

Selection<br />

<strong>of</strong> target<br />

attribute<br />

❯<br />

Computation<br />

<strong>of</strong> associations<br />

through mining<br />

❥Submission<br />

<strong>of</strong> solution<br />

for competition<br />

Abbildung 17: Dialogue Scene for Sequenced Training With Competitive Exercises<br />

Competitive Solution Scene<br />

❨<br />

Submission<br />

<strong>of</strong> competitive<br />

✿solution<br />

Delivery<br />

<strong>of</strong> prepared<br />

✿ data<br />

Computation<br />

<strong>of</strong> associations<br />

through mining<br />

❑<br />

❯<br />

❥ Evaluation<br />

<strong>of</strong> submitted<br />

solution<br />

Task<br />

delivery<br />

step<br />

❑<br />

❥<br />

Collection<br />

<strong>of</strong> learners<br />

data<br />

❥Preparation<br />

<strong>of</strong> learners<br />

data<br />

❯<br />

❥Formulation<br />

<strong>of</strong> learners<br />

✿hypotheses2<br />

❑<br />

❯<br />

Inspection <strong>of</strong><br />

sample solution<br />

& comparison<br />

3<br />

<strong>Information</strong><br />

on applicable<br />

algorithms<br />

❥<br />

Code<br />

upload &<br />

installation<br />

❯ Reminder<br />

<strong>of</strong> learning element<br />

on hypotheses<br />

❯<br />

Repetition<br />

<strong>of</strong> solution<br />

for competition<br />

Abbildung 18: Dialogue Scene for Training With Competitive Exercises<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 643<br />

6.2 Actor Modeling<br />

KDS 3.2<br />

6.2.1 Benutzer- und Akteursmodelle<br />

Wie bereits dargestellt, unterscheiden wir zwischen einem Benutzer und einem Akteur. Ein Benutzer 1 ist eine Repräsentation<br />

der aktuell agierenden Person z.B. durch die Login-Daten und die persönlichen Daten sowie die Benutzungsgeschichte.<br />

Benutzer werden im allgemeinen kategorisiert oder gruppiert.<br />

Benutzer können nach ihren Eigenschaften gruppiert und mit einem Typkonzept dargestellt werden. Ein Akteur<br />

ist ein abstrakter Benutzer-Typ, der eine Gruppe von Benutzern abstrakt darstellt. Damit werden die allgemeinen<br />

Charakteristiken von Benutzern beschrieben. In der konzeptionellen Modellierung sind wir mehr an einer Darstellung<br />

von Akteuren orientiert.<br />

Akteure sind den einzelnen Dialogschritten und damit den Szenen mit entsprechenden Rechten und Rollen zugeordnet.<br />

Diese Rollen erlauben einem Akteur das Agieren mit dem <strong>Information</strong>ssystem. Eine direkte Interaktion<br />

mit entsprechenden Funktionen über entsprechende Sichten oder das Schema direkt ist nach wie vor auch möglich.<br />

In diesem Fall wird jedoch nicht eine entsprechende Oberflächenmodellierung vorgenommen. Da solche Interaktionen<br />

in ihrer Vielfalt kaum zu beh<strong>and</strong>eln sind, modellieren wir sie nicht gesondert, sondern benutzen die Dienste der<br />

logischen Schicht.<br />

Dieses Akteurmodell verallgemeinert das Use-Case-Modell. Wir streben eine möglichst abstrakte Beschreibung<br />

am Anfang an und gehen erst dann ins Detail, wenn der Endanwender nicht mehr involviert ist. Beziehungen zwischen<br />

den Akteuren werden nur durch entsprechende Dialoge aufgebaut. Die Beziehung zwischen Akteur und System<br />

findet hier jedoch nur durch entsprechende Dialoge statt. Ein Akteur aktiviert einen Dialog und erhält Daten aus dem<br />

Dialog, modifiziert Daten im Dialog oder stellt dem System Daten im Dialog zur Verfügung. Damit ist das hier angew<strong>and</strong>te<br />

Modell viel allgemeiner und zugleich praktikabler als das Use-Case-Modell.<br />

Einem Akteur wird ein Pr<strong>of</strong>il zugeordnet. Es umfaßt<br />

das Ausbildungspr<strong>of</strong>il mit einer allgemeinen Darstellung der erforderlichen Kenntnisse, Fähigkeiten und Fertigkeiten,<br />

das Arbeitspr<strong>of</strong>il mit einer Darstellung der Spezifika der Akteure und in Ergänzung zum Ausbildungspr<strong>of</strong>il und<br />

das Persönlichkeitspr<strong>of</strong>il zur Darstellung der Eigenschaften von Gruppen.<br />

Das Ausbildungspr<strong>of</strong>il stellt für eine Gruppe von Benutzern das gesamte Spektrum der Ausbildung, die die Benutzer<br />

• benötigen,<br />

• mitbringen und ggf. auch<br />

• nicht besitzen<br />

sollen, dar. Die letzte Kategorie dient auch der Charakterisierung von Wissens-, Fertigkeiten- und Fähigkeitslücken.<br />

Diese Kategorie erlaubt auch eine Ableitung von Content, der für die Bewältigung der Arbeitsaufgabe durch das<br />

<strong>Information</strong>ssystem bereitgestellt werden muß.<br />

Die erste Kategorie dient der Darstellung des Bildungsweges, der auch in grober Form dargestellt werden kann.<br />

Die Darstellung des Bildungsweges wird meist in analoger Form wie in Stellenanzeigen oder Stellenpr<strong>of</strong>ilen eines<br />

Arbeitsplatzes erfolgen. Wir benötigen diese Kategorie zur Ableitung der pragmatischen Annahmen, die eine Vereinfachung<br />

des Systemes bedingen.<br />

Die zweite Kategorie kennzeichnet das Bildungsspektrum der Benutzer. Wird das Spektrum nicht berücksichtigt,<br />

dann verleitet ein System relativ schnell zum Mißbrauch oder wird abgelehnt, obwohl es gerade zur Bewältigung der<br />

Arbeitsaufgabe adäquat erscheint.<br />

Das Arbeitspr<strong>of</strong>il ist analog zur KADS-Charakterisierung [LFe93] auf eine Klassifikation der Akteure nach Eigenschaften<br />

ausgerichtet:<br />

1 Wie bereits betont, benutzen wir ‘Benutzer’ neutral und nicht geschlechtsspezifisch.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 644<br />

• Fähigkeiten, die Akteure zur Bewältigung der Arbeitsaufgaben besitzen sollen,<br />

• Fertigkeiten, die zur Benutzung des Systemes erforderlich sind,<br />

• Wissen, das zum Verständnis der Benutzung des Systemes erforderlich ist,<br />

• Arbeitsumgebung, die durch die Akteure toleriert bzw. akzeptiert wird, und<br />

• Systeme, mit denen die Akteure bereits Arbeitsaufgaben bewältigt haben.<br />

Das Persönlichkeitspr<strong>of</strong>il umfaßt auch das Polaritätenpr<strong>of</strong>il. Typische Polaritätenpr<strong>of</strong>ile sind nach Anmutungscharakteren<br />

sachlich-romantisch, konventionell-originell, klassisch-modisch, traditionell-avantgardistisch, tough-tender,<br />

rustikal-artifiziell und einfach-wertvoll. Im Einzelnen können wir dazu Differenzierungen nach Notenskalen für die<br />

Antonyme vornehmen.<br />

sachlich - romantisch konventionell - originell<br />

nüchtern - gefühlvoll üblich - ausgeflippt<br />

rational - sensitiv bedeckt - frisch<br />

überlegt - sinnlich seriös - ungewöhnlich<br />

bürgerlich - bohemehaft<br />

klassisch - modisch traditionell - avantgardistisch<br />

dezent - laut alt - jung<br />

zeitlos - modern uni - bunt<br />

ruhig - unruhig ruhig - erregend<br />

zurückhaltend - aufdringlich vertraut - vertraut<br />

gewohnt - poppig<br />

tough - tender rustikal - artifiziell<br />

herb - süßlich natürlich - künstlich<br />

geometrisch - blumig verspielt - streng<br />

hart - weich einfach - komplex<br />

robust - zart schwer - leicht<br />

eckig - rund grob - grazil<br />

Daraus kann die Charakterisierung von Benutzergruppen abgeleitet werden.<br />

Bekannt ist z.B. nach [KT95] das Fremdbild wie in Bild 19.<br />

stabil<br />

✻<br />

wild stark<br />

hart<br />

introvertiert<br />

✛<br />

triebhaft<br />

✲<br />

aggressiv<br />

gesellig<br />

extravertiert<br />

❄<br />

labil<br />

Abbildung 19: Das Fremdbild des Bayern<br />

Ähnliche Pr<strong>of</strong>ile sind auch für <strong>and</strong>ere Gruppen bekannt. Mit diesen Pr<strong>of</strong>ilen können Portfolios für die einzelnen<br />

Benutzergruppen erstellt werden. Hinzu kommen dabei auch noch Morphologien. Ein Oberflächen-Portfolio setzt<br />

sich dabei aus mehreren ebenen Pr<strong>of</strong>ilen zusammen wie Funktion-Semantik, Prägnanz-Expressivität.<br />

Zum Persönlichkeitspr<strong>of</strong>il gehört auch das subjektive <strong>Information</strong>sbedürfnis, das wiederum abhängig von der (intuitiven)<br />

Erkenntnis ist, daß die vorh<strong>and</strong>ene <strong>Information</strong> zur Lösung einer Aufgabe nicht ausreicht, daß das Wissen<br />

zu gering ist, daß die <strong>Information</strong> aus vorh<strong>and</strong>enen Wissen und <strong>Information</strong>en nicht oder nicht so schnell generiert<br />

werden kann, daß die Unsicherheit, Unbestimmtheit, Unschärfe oder die Widersprüche nicht <strong>and</strong>ers aufgelöst werden<br />

können. Wir unterscheiden den <strong>Information</strong>sbedarf vom <strong>Information</strong>sbedürfnis. Das <strong>Information</strong>sbedürfnis ist<br />

abstrakt ein Wunsch nach besserer <strong>Information</strong>. Der <strong>Information</strong>sbedarf wird für das Portfolio benötigt.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 645<br />

Bei der Entwicklung von <strong>Information</strong>ssystemen sind unterschiedliche <strong>Information</strong>sbedürfnisse entsprechend dem<br />

Pr<strong>of</strong>il zu beachten. Damit kann ein <strong>Information</strong>ssystem nur dann von Best<strong>and</strong> sein, wenn es ein Bündel von <strong>Information</strong>sdiensten<br />

aus den folgenden Kategorien bereitstellt.<br />

<strong>Information</strong>sdienste im allgemeinen Interesse orientieren sich insbesondere analog zu Zeitungen auf die Bereitstellung<br />

von <strong>Information</strong>en des täglichen Alltags. Beispiele sind Wetterdienste, Veranstaltungskalender, Regionalinformationen,<br />

Sportinformationen und Nachrichtendienste.<br />

<strong>Information</strong>sdienste zur Gestaltung der Freizeit orientieren sich z.Z. noch am Computerspielmarkt, werden aber<br />

auch immer stärker Aufgaben der Kommunikation (wie auch Email) übernehmen und sich zunehmend in eine<br />

stärkere Konkurrenz mit Printmedien wie Nachschlagewerke, Verzeichnisse wie Adreßbücher begeben.<br />

<strong>Information</strong>sdienste zur Erfüllung von Arbeitsaufgaben werden zuerst als allgemeine Betriebsinformationssysteme<br />

(wie z.B. als Campusinformationssystem) erfolgreich sein. Die Achillesferse der heute vorrangig entwickelten<br />

Wirtschaftsinformationsdienste ist die Aktualität der angebotenen <strong>Information</strong> 2 .<br />

Jede Gruppe von Benutzern besitzt auch Spezifika. Diese ergänzen das allgemeine Pr<strong>of</strong>il um folgende <strong>Information</strong>en:<br />

positive Arbeitserfahrungen für die Anwendung wie praktizierte Kenntnisse, Lösungsstrategien und Fertigkeiten<br />

bei der Anwendung des eigenen Wissens,<br />

negative Arbeitserfahrungen (i.a. Fehlersuche, Fehlerbeseitigung, Arbeitsplanung, Arbeitsschrittentscheidungen,<br />

Bewertung des Arbeitsfortschrittes, Konstruktion der Lösungen, Umgang mit Abstraktionstechniken, Effektivität,<br />

Erweiterung für bereits gefundene Teillösungen und Kooperationsfähigkeit) und<br />

spezielle Kenntnisse (wie (Wissens-)Repäsentationstechniken, (Wissens-)Akquisition und <strong>and</strong>ere).<br />

Die Pr<strong>of</strong>ile von Akteuren können kategorisiert und damit einer Skalierung unterzogen werden. Wir können z.B.<br />

mit der folgenden Kategorisierung die Pr<strong>of</strong>ile der Akteure zum Erstellen eines Lehrveranstaltungsvorschlages eines<br />

Lehrstuhles vornehmen:<br />

Ausbildungspr<strong>of</strong>il Arbeitspr<strong>of</strong>il Persönlichkeitspr<strong>of</strong>il Folgerung<br />

erforderlichan-<br />

vor-<br />

nicht Fähigkeitekeiteumgebuntenpr<strong>of</strong>il<br />

Fertig-<br />

Wissen Arbeits-<br />

System Polaritä-<br />

... für Umgebunden<br />

vorh.<br />

Java,<br />

C++<br />

Unix<br />

Informatik<br />

Informatik<br />

Organisationserfahrung<br />

Programmierung<br />

Informatik<br />

Workstation<br />

rigide ... Komm<strong>and</strong>osprache,<br />

ohne Sicherung<br />

Büro-<br />

Kauffrau/<br />

-mann<br />

PH-<br />

Studium<br />

Informatik<br />

Organisator<br />

kollaborativ<br />

allg. PC-Platz minimal moderat ... Fehlertoleranz,<br />

Übersichtlichkeit<br />

... ... ... ... ... ... ... ... ... ... ...<br />

Andere ableitbare Eigenschaften sind z.B. die erforderlich Hilfe, die Art des Systemerlernens, die Adaptivität<br />

der Interfaces, die Erweiterbarkeit, exploratives H<strong>and</strong>eln, selbst gesteuerte Nutzung, Merkhilfen, Aufgabenorientierung,<br />

Routinetoleranz, Technikerwartungen, Zusatzaufw<strong>and</strong>toleranz, EDV-Terminologie-Toleranz, Aufgabenbezug,<br />

Benutzerführung, Beispiele, Einführung und Voreinstellungen.<br />

Aus dem Pr<strong>of</strong>il können wir die Art und die Form der <strong>Information</strong>spräsentation und das <strong>Information</strong>sbeschaffungsverhalten<br />

der Akteure ableiten. Weiterhin kann man Benutzungspräferenzen der Akteure skizzieren.<br />

2 Die Erfahrung im Projekt FuEline deutete auf eine Halbwertszeit von weniger als 3 Monaten hin, wodurch der Verfall eines wie perfekt<br />

auch immer gestalteten <strong>Information</strong>sbest<strong>and</strong>es innerhalb kurzer Zeit vollständig ist, wenn nicht ein effizienter Updateservice auf der Grundlage<br />

einer guten Updatestrategie möglich ist.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 646<br />

Akteure können mit <strong>and</strong>eren Akteuren zusammenwirken. Im Zusammenwirken spielen Ziele eine Rolle. Ein<br />

Modell zur Darstellung der Ziele stellen wir in Bild 20 kurz zusammen.<br />

Akteur<br />

✻<br />

6<br />

✛<br />

✛<br />

Mit<br />

Zusammenarbeit<br />

Von<br />

✲ Art der<br />

Zusammenarbeit<br />

unscharfes<br />

Ziel<br />

❨<br />

Ziel<br />

✻<br />

✲<br />

Erfüllungskriterium<br />

❄<br />

❂<br />

⊕<br />

Welt<br />

erreicht<br />

Medien-Typ<br />

✻<br />

❄<br />

Aufgabe<br />

✛<br />

Lösung<br />

Abbildung 20: Die Zusammenarbeit von Akteuren zum Erreichen von Zielen<br />

Im Zielmodell unterscheiden wir zwischen unscharfen oder “weichen” Zielen und “harten” Zielen. Weiche Ziele<br />

besitzen kein genau darstellbares Erfüllungskriterium. Harte Ziele sind dagegen durch ein Erfüllungskriterium<br />

charakterisiert. Zum Erreichen von Zielen können Akteure zusammenarbeiten.<br />

Einem Akteur kann ein Sicherheitspr<strong>of</strong>il zugeordnet werden. Wir verwenden dazu eine Datenstruktur wie in Bild<br />

21.<br />

Das Sicherheitspr<strong>of</strong>il eines Akteurs wird durch Sicherheitsoptionen, mit denen die gesamte Sicherung des Systemes<br />

dargestellt werden kann, charakterisiert. Zur Durchführung von Aufgaben im Rahmen des Story-Raumes<br />

werden entsprechende Medien-Typen bereitgestellt. Da diese den Aufgaben zugeordnet sind, werden Sicherheitsoptionen<br />

mit vier Parametern spezifiziert.<br />

Akteure werden mit entsprechenden Sicherheitsoptionen zur Erfüllung von Aufgaben ausgestattet.<br />

Aufgaben determinieren die erlaubten Aktionen, erfordern Aktionen oder determinieren spezifische Sicherheitspr<strong>of</strong>ile.<br />

Rollen von Akteuren entsprechen den bereits besprochenen Rollen im Story-Raum. Für Sicherheitspr<strong>of</strong>ile sind außerdem<br />

Rollen von Interesse, die einer Gruppe von Akteuren zugeordnet werden.<br />

Eine Sicherheitsoption basiert entweder auf erlaubten Aktionen oder expliziten Verboten.<br />

Ein Benutzer wird einem Akteur zugeordnet. Er kann gleichzeitig einer Reihe von Akteuren zugeordnet werden.<br />

6.2.2 Die Darstellung des Arbeitsrahmens und Benutzer- und Akteurportfolio<br />

Das Portfolio des Akteurs wird beschrieben durch:<br />

• die Beschreibung des Inhaltes der Aufgabe,<br />

• die Spezifikation der Rechte des Akteurs im entsprechenden Dialogschritt,<br />

• die Beschreibung der Rolle des Akteurs und<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 647<br />

Rechte<br />

✲<br />

Erlaubte<br />

Aktion<br />

✻<br />

✯<br />

Verbote<br />

...<br />

✛<br />

Benutzerpr<strong>of</strong>il<br />

Aufgabe<br />

✛<br />

⊕<br />

Sicherheitsoption<br />

✲<br />

Akteur ✛ Zuordnung ✲<br />

❄<br />

Benutzer<br />

✻<br />

✒<br />

Gruppenrolle<br />

✲<br />

❄<br />

Rolle<br />

Log<br />

Abbildung 21: Das Sicherheitspr<strong>of</strong>il von Akteuren<br />

• die Ausführungsmodelle für das Agieren mit Angaben zur Zeitdauer (minimal, maximal, normal), sowie zu<br />

den Ausführungsprioritäten.<br />

Eine Aufgabe ist eine Vorgabe für zielorientiertes H<strong>and</strong>eln und wird durch die folgenden Aspekte beschrieben:<br />

• Die Darstellung der Aufgaben geht von einer Zielstruktur aus. Diese Zielstruktur kann im zust<strong>and</strong>sorientierten<br />

Zugang zur Modellierung durch Angabe des Zielzust<strong>and</strong>es erfaßt werden.<br />

• Durch eine Wissenspr<strong>of</strong>il werden die Details des Aufgabenwissens erfaßt.<br />

• Die Beschreibung der Arbeitsmittel basiert auf der Darstellung des Content und der erforderlichen Funktionalität.<br />

• Die Erfüllung einer Aufgabe erfolgt in Arbeitsabläufen, die in einzelne Arbeitsvorgänge strukturiert sind.<br />

• Es kann ein allgemeines Abarbeitungsmodell für die Wege zum Zielzust<strong>and</strong> vorgegeben sein. In stark strukturierten<br />

Arbeitsfeldern wird gerade auf die genaue und detaillierte Darstellung dieses Abarbeitungsmodelles<br />

viel Wert gelegt.<br />

Eine Spezifikation der Arbeitsvorgänge umfaßt folgende Best<strong>and</strong>teile:<br />

Die allgemeine Struktur wird beschrieben durch<br />

• einen Auslöser,<br />

• eine organisatorische Einheit,<br />

• eine Tätigkeit des Benutzers,<br />

• verwendete Hilfsmittel und<br />

• eine Ablage und einen Adressaten.<br />

Das Resultat der Ausführung führt zu einem<br />

• einem Ergebnis,<br />

• das unter bestimmten Bedingungen akzeptiert wird.<br />

Die semantischen Rahmenbedingungen sind definiert durch<br />

• Bedingungen, unter denen der Arbeitsvorgang ausgeführt werden kann, und<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 648<br />

• organisatorische R<strong>and</strong>bedingungen.<br />

Arbeitsabläufe werden durch Aktivitätenfolgendiagramme beschrieben. Sie bestehen aus<br />

einem Aktivitätstyp zur Kategorisierung von gleichartigen Aktivitäten,<br />

einer Transition von Input/Outputdaten durch die Aktivität und<br />

der Steuerung des Beginns, der Verzweigung etc. und der Beendigung einer Aktivität.<br />

Mit dieser Spezifikation können wir Aktivitätenfolgendiagramme mit Workflow-Programmen assoziieren. Aktivitätenfolgendiagramme<br />

können sowohl zust<strong>and</strong>sorientiert durch Zust<strong>and</strong>saktivitätendiagramme als auch ereignisorientiert<br />

durch Ereignisfolgendiagramme dargestellt werden.<br />

Rechte eines Akteurs werden durch Zuordnung von Funktionen des Content-Objekt-Suite dargestellt, die ein<br />

Akteur zur Erfüllung der Arbeitsaufgabe erhält. Mit der expliziten Zuordnung wird ggf. der Spezifikationsaufw<strong>and</strong><br />

höher. Wir können jedoch diese Zuordnung auch durch entsprechende Rechtetypen darstellen. Damit wird für die<br />

Spezifikation der Rechte nur eine Zuordnung zum Typ erforderlich.<br />

Die Rolle eines Akteurs baut auf einer Kategorisierung der Erfüllung der Arbeitsaufgabe und auf dem Organisationsmodell<br />

auf.<br />

Das Ausführungsmodell besteht aus<br />

einem Aufgabenaufruf, mit dem die Ausführung initiiert werden kann,<br />

einem Datenaustausch, mit der benötigte Daten für die Ausführung bereitgestellt und wieder in das <strong>Information</strong>ssystem<br />

eingepflegt werden können,<br />

einer Aufgabenablaufsteuerung, mit der sequentielle und nebenläufige Abläufe dargestellt werden<br />

einem Arbeitsbereich, auf dem mehrere unterschiedliche Aufgaben abgelegt werden können, und<br />

einem Synchronisationsmodell, zum Abgleich der Ausführung von Aufgaben, die sich im Arbeitsbereich befinden.<br />

5ergänzt werden.<br />

Aus der Darstellung der Aufgaben können wir den <strong>Information</strong>sbedarf ableiten. Der <strong>Information</strong>sbedarf ist nach<br />

einer genauen Analyse des augenblicklichen Wissensst<strong>and</strong>es und der Ziele der Wissensvermittlung ableitbar und<br />

sogar in Geschäftsprozesse abbildbar. Die Qualität der Aufbereitung von <strong>Information</strong>en wird durch den augenblicklichen<br />

<strong>Information</strong>sbedarf mit determiniert.<br />

Das Portfolio wird mit den Arbeitsgestaltungsdimensionen für die Gestaltung humaner Arbeit erweitert:<br />

Der Entscheidungsspielraum kennzeichnet das Ausmaß, in dem ein Benutzer seinen Arbeitsprozeß selbst gestalten<br />

kann.<br />

Die arbeitsbezogene Kollaboration dient der Abstimmung von Teilen der Arbeitsaufgabe mit <strong>and</strong>eren Akteuren.<br />

Einschränkungen durch psychische Belastungen können durch entsprechende Hilfsmittel minimiert werden.<br />

Der Zeitrahmen kennzeichnet die Möglichkeit, den Arbeitsablauf zeitlich selbständig durch den Akteur zu gestalten.<br />

Die Variabilität ist bestimmt durch den Zusammenhang der Arbeitsvorgänge und der Vorgehensweise zur Aufgabenerfüllung.<br />

Die Wahrnehmungen des Benutzers unterstützen die schnellere Erfassung der anstehenden Aufgaben.<br />

Die körperliche Aktivität unterstützt die Erfüllung der Aufgaben.<br />

Die Strukturierbarkeit des Arbeitsbereiches erlaubt eine Anpassung an die Arbeitsweise und Arbeitsmethodik des<br />

Benutzers.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 649<br />

Zur Spezifikation der Arbeitsgestaltungsdimension verwenden wir ein Gestaltungspolaritätenpr<strong>of</strong>il mit entsprechenden<br />

antonymen Charakterisierungen wie z.B. für den Arbeitsvorgang zum Erstellen der Vorschläge eines Lehrstuhles<br />

für Lehrveranstaltungen:<br />

Spielraum Kollaboration Belastung Zeitrahmen Variabilität Wahrnehmung Aktivität Strukturierbarkeit<br />

vollkommen<br />

Abstimmung nebenläufi-<br />

Ablieferungs-<br />

hoch, mit wohl-<br />

Direkt-<br />

Aufgabenblatt<br />

im Lehrstuhl ge Tätigkeit zeitpunkt Sitzung, strukturiert, eingabe, mit Ord-<br />

eigenständiterstützung<br />

volle Un-<br />

ohne Maus Übernahme nung nach<br />

vorh<strong>and</strong>ener<br />

Daten<br />

Erfüllungsst<strong>and</strong><br />

Durch Interaktionsdiagramme werden die Story, die Szenario und das Drehbuch unterlegt. Interaktionsdiagramme<br />

sind gerichtete Graphen, deren Knoten Zustände des Systemes und deren Kanten Transitionen darstellen,<br />

die durch einen Akteur ausgelöst werden können. Es kann ein Akteur in seinen Rollen, mit seinen Rechten bei der<br />

Aufgabenlösung dargestellt werden. Das Akteurmodel faßt folgende Eigenschaften zusammen:<br />

Pr<strong>of</strong>il des Akteurs,<br />

Arbeitsziele des Akteurs,<br />

Sicherheitspr<strong>of</strong>il des Akteurs und<br />

Portfolio des Akteurs.<br />

Wir trennen davon jedoch im Gegensatz zu Use-Case die Beziehungen der Dialoge zu den Daten und zu den<br />

Funktionen. Diese Trennung entspricht der klassischen Vorgehensweise und verhindert ein Überladen der Konstrukte.<br />

Damit sind außerdem auch die dort geforderten Ressourcenmodelle, Organigramme, Firmenstrategiemodelle, etc.<br />

nicht mehr notwendig. Mit der Verbindung zu den Sichten erhalten wir eine Seiteninhaltsbeschreibung.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 650<br />

6.3 Task Modeling<br />

KDS 3.3


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 651<br />

6.4 Räume zur Speyifikation der Interaktivität<br />

6.4.1 Der Interaktionsraum zur Darstellung der Interaktivität<br />

Die Interaktivität kann unter zwei Gesichtspunkten dargestellt werden:<br />

Der System-Gesichtspunkt umfaßt alle Input-, Output- und Speicherprozesse und baut auf der Strukturierung der<br />

Daten, auf den Sichten zur zusammenhängenden Darstellung der Daten, sowie auf dem technischen Workflow,<br />

der wiederum auf Systemprozessen basiert, auf.<br />

Der Benutzer-Gesichtspunkt basiert auf den Rollen und Aufgaben von Benutzergruppen, deren Sichtweisen auf<br />

die dargestellten Daten und die ablaufenden Prozesse. Diese Sichtweisen sind auch durch die Pragmatik der<br />

Benutzergruppen geprägt.<br />

Ein <strong>Information</strong>ssystem basiert auf einer Schichten-Architektur, die die klassische ANSI-Sparc-Architektur verallgemeinert.<br />

Im folgenden vertiefen wir diesen Zugang. Die Architektur ist in Bild 22 (b) skizziert. Mit dieser Architektur<br />

wird nicht nur die klassische Seeheim-Architektur in Bild 22 (a) verbessert, sondern auch eine ganzheitliche<br />

Betrachtung von Anwendungen ermöglicht. Die Oberflächenmodellierung wurde auch für Datenbanken im wesentlichen<br />

auf der Grundlage des Seeheim-Modelles nach Bild 22 (a) (ohne Dialogmanagementsystem und Sichtengenerator)<br />

vorgenommen. Das klassische Seeheim-Modell trennt wie in Client/Server-Architekturen die Präsentation<br />

vom Anwendungssystem. Diese Trennung hat sich für eine Vielzahl von Anwendungen durchgesetzt. Die Funktionalität<br />

der Anwendungssysteme kann sich dabei weiter in die Clients verlagern. Für Datenbanksysteme hat sich diese<br />

Architektur sogar mit einer Verallgemeinerung zur Arch-Architektur noch nicht durchgesetzt. Vorstellbar ist nach<br />

[Sch96] auch eine Erweiterung der Präsentationskomponente zu einem Dialogmanagementsystem. Die Arbeiten der<br />

DBIS-Arbeitsgruppe haben zu der hier verwendeten verallgemeinerten Architektur geführt.<br />

Das verallgemeinerte Seeheim-Modell<br />

Das DBIS-Modell für <strong>Information</strong>ssysteme<br />

<strong>Information</strong>ssystem<br />

✻<br />

❄<br />

Anwendungskomponente<br />

Funktionalität<br />

Prozesse<br />

Dynamische<br />

Integritätsbedingungen<br />

(Pragmatik)<br />

Präsentationskomponente<br />

Graphikbasissystem<br />

Sichtengenerator<br />

Dialogmanagementsystem<br />

Prozeßgenerator<br />

DBMS<br />

Story-Raum<br />

Stories<br />

Szenario<br />

Content-Typen-Raum<br />

Struktur<br />

Strukturierung<br />

Struktur<br />

Statische<br />

Integritätsbedingungen<br />

(Pragmatik)<br />

Container<br />

Akteure<br />

Kontext<br />

Funktionalität<br />

(a)<br />

Abbildung 22: Spezifikation von <strong>Information</strong>ssystemen<br />

(b)<br />

Die Trennung zwischen Client und Server ist eine der möglichen Separation innerhalb einer Anwendung. Vorstellbar<br />

sind weitere Trennungen, wie z.B. die Trennung für verteilte <strong>Information</strong>ssysteme, die Trennung für Web-<br />

<strong>Information</strong>ssysteme mit relativ einfachen Client oder auch Applet-basierte Clients. Das DBIS-Modell ist auf keine<br />

der Trennlinien angewiesen und erlaubt eine spätere Entscheidung für eine Plattform.<br />

Typische weitere Trennungen sind meist als Multi-Tier-Architekturen, z.B. als 3-Tier-Architekturen spezifiziert.<br />

Die Spezifikation des Interaktionsraumes wird in folgenden Entwurfsdokumenten niedergelegt:<br />

Drehbuch: Der Ablauf der Interaktion, die Akteure, die Stories der Anwendung werden im Drehbuch zusammengefaßt.


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 652<br />

Content-Typen: Das Systeminterface wird als Container-Objekt bereitgestellt, mit dem ein Akteur sowohl die aktuellen<br />

und spezifischen Sichtweisen auf die Datenbank erhält, als auch die entsprechende Funktionalität zum<br />

Agieren mit dem <strong>Information</strong>ssystem.<br />

Der Interaktionsraum wird um “S<strong>of</strong>t”-Best<strong>and</strong>teile erweitert:<br />

Kollaborationsrahmen: Die Interaktion basiert auf der Existenz mehrerer Parteien, die in unterschiedlichen Rollen<br />

agieren, kollaborieren und unterschiedliche Interessen verfolgen.<br />

Gestaltungsrahmen: Bei der Gestaltung von Benutzungsschnittstellen ist es angebracht, einem einheitlichen Schema<br />

zu folgen. Wir fassen den “Style Guide” zur Gestaltung von Interfaces, die Metaphorik und die allgemeinen<br />

Gestaltungsrichtlinien im Gestaltungsrahmen zusammen.<br />

Arbeitsrahmen: <strong>Information</strong>ssysteme sollen bei der Bewältigung von Arbeitsaufgaben eingesetzt werden. Deshalb<br />

müssen auch das Portfolio, das Aufgabenspektrum der einzelnen Benutzer und die Lösungsschritte für die<br />

Arbeitsaufgaben angemessen bei der Gestaltung berücksichtigt werden.<br />

6.4.2 Der Kontext-Raum<br />

Die Laufzeit-Präsentation wird durch Instantiierung des Kontextes (technische Umgebung, Aufgabe, Geschichte,<br />

Umstände) und durch Adaption an den Benutzer (Pr<strong>of</strong>il, Portfolio) erzeugt. Diese <strong>Information</strong> muß deshalb im<br />

Entwurf mit erarbeitet werden.<br />

Wir betrachten unterschiedliche Spielarten von Kontext. Diese Spielarten können mit dem Zwiebelprinzip zum<br />

Ausspielen in die XML-Dokumente eingebracht werden.<br />

Allgemeiner Kontext dient zur Beschreibung des Kontextraumes.<br />

Umstände allgemeiner Art kennzeichnen insbesondere Beschränkungen der Benutzung, Einspielen von Hilfsmitteln<br />

etc.<br />

Das Benutzungsmodell der Akteure hängt von einer Reihe von Parametern ab wie<br />

die Bezahlung,<br />

das Organisationsmodell zur Benutzung,<br />

die daraus resultierenden Rechte und<br />

die darauf aufbauenden Rollen.<br />

Das Portfolio der Akteure wird bestimmt<br />

durch die Aufgaben,<br />

durch die spezifischen Rechte,<br />

durch die spezifischen Rollen,<br />

durch die Umstände der Benutzung und<br />

durch die Ziele.<br />

Technische Einschränkungen allgemeiner Art erweitern oder schränken die Benutzung ein. Sie sind gegeben<br />

durch<br />

die Umgebung der Benutzung wie z.B. Hardware, Server-S<strong>of</strong>tware, Client-S<strong>of</strong>tware und den Kanal,<br />

sowie durch<br />

die Verteilung auf unterschiedliche Knoten.<br />

Der konkrete Benutzungskontext basiert auf einer Beschreibung der Assoziationen, wobei auch eine entsprechende<br />

Bindung, Umordnung zur sequentiellen Repräsentation berücksichtigt wird, und der Ort und die Zeit der<br />

Benutzung zu Veränderungen führen kann. Der Benutzungskontext ist determiniert durch<br />

die Einbettung in den Story-Raum insbesondere unter Berücksichtigung<br />

des benutzten Content je nach angeforderter


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 653<br />

Version,<br />

Navigation u.a. Funktionalität, sowie dem<br />

Sicherheitspr<strong>of</strong>il,<br />

die Anpassung an den Benutzer, wobei auch<br />

Ort,<br />

Zeit und<br />

Benutzungsgeschichte variieren können,<br />

die Auslieferung von Content in Containern, deren Typ variieren kann und die auch an die<br />

verpackten Content-Objekte<br />

anpaßbar sein müssen,<br />

durch das aktuelle Szenarium und die unterstützenden Session-Objekte,<br />

das konkrete Benutzungsmodell,<br />

die aktuelle Umgebung wie z.B.<br />

den Kanal mit seiner aktuellen Übertragungskapazität und seiner Sicherheit, sowie die<br />

aktuell gewählte Verschlüsselung.<br />

Die Spielarten von Kontext können einer Abhängigkeitsstruktur unterliegen. Wenn wir z.B. voraussetzen,<br />

• daß der syntaktische Kontext, der durch den Content bestimmt ist, und der Zusatzkontext, der durch die Hilfsmittel<br />

bestimmt ist, unabhängig vonein<strong>and</strong>er sind und<br />

• daß sich die Spielarten schichten lassen aufgrund der Abhängigkeitsbeziehung,<br />

dann kann ein Ausspiel des Content in der Form erfolgen wie in Bild 23.<br />

Pragmatischer Kontext (Situation, physische Umgebung, Sozial-, Strategie-, Zeit)<br />

Website-Kontext (Provider, SW/HW Lieferant)<br />

Expliziter Kontext (Story-Raum)<br />

Syntaktischer<br />

verbaler Kontext<br />

Extra-syntaktischer<br />

Zusatzkontext<br />

Content-Suite,<br />

Akteure, Pr<strong>of</strong>ile,<br />

Meta-<strong>Information</strong><br />

Bezahlung, ...<br />

Potentielle Umgebung, <strong>Information</strong>ssystem, Szenen, Aufgaben, Rollen<br />

Intention, Themen, Umstände, Mission, Anliegen<br />

Aktuelles Szenario, Historie, aktuelle Umgebung, Benutzer, Ziel, Umstände, Kultur<br />

Abbildung 23: Das Zwiebelprinzip zum Einbringen von Kontext


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 654<br />

6.5 Spezifikation auf unterschiedlichen Abstraktionsschichten<br />

Wie bereits in den vorhergehenden Teilen diskutiert, unterscheiden wir zwischen dem Diskurs, den H<strong>and</strong>lungsrahmen,<br />

dem Storyboard, dem Drehbuch und der Inszenierung der Dialoge. In unterschiedlichen Entwurfsetappen werden<br />

die Dialoge im Abstraktionsschichtenmodell spezifiziert. <strong>Information</strong>ssysteme sind meist auf unterschiedliche<br />

Benutzergruppen ausgerichtet, die unterschiedliche Anforderungen an die Benutzung, an das intuitive Verständnis<br />

der einzelnen Schritte, an die Funktionalität und die Gestaltung der Oberflächen haben. Da eine zusammenhängende<br />

Darstellung nach unserer Kenntnis nicht existiert, stellen wir unsere Methodik ausführlicher vor.<br />

Das Finden der Motive und Ideen und die Darstellung des Diskurses kann auf den <strong>Information</strong>en, die wir bereits<br />

in der Anwendungsanalyse erhalten haben, aufsetzen. Wir entwickeln erste grobe und bruchstückhafte Ideen.<br />

Später können wir aus diesen Ideen eine Auswahl treffen. In dieser Etappe ist eher eine Methode wie das<br />

mind mapping angebracht. Damit ist ein Entwerfer voll gefordert. Oft ist nicht die objektivste Auswahl von<br />

Ideen die beste, sondern eine subjektive Auswahl. Dabei zeigt sich, daß das Ideenmaterial eigene Prinzipien<br />

hat und auch widersprüchlich sein kann. Es wird in diesem Schritt das Anwendungsgebiet mit den einzelnen<br />

Anwendungsschritten skizziert. Das Ergebnis ist die Darstellung des Diskurses im Lastenheft.<br />

Die Entwicklung des H<strong>and</strong>lungsrahmens kann nun zu einer groben Darstellung der Aktionen der Akteure führen.<br />

Wir modellieren deshalb die Akteure in dieser Etappe mit ihren Rollen, Rechten, Aufgaben und Zielen im<br />

Groben. Der H<strong>and</strong>lungsrahmen ist mit der Darstellung der Motive und Ziele im vorigen Schritt bereits skizziert.<br />

Noch ehe ein Drehbuch erstellt wird, muß zumindest für den Dialogteil ein Entwickler wissen, worin die<br />

Geschichte besteht. In der Geschichte werden die Hauptdialoge mit ihren Zielen und Absichten dargestellt.<br />

Nicht alle Einzelszenen müssen enthalten sein.<br />

Es existiert eine Vielfalt von möglichen Stories. Trotzdem gibt es Regeln zur Beschreibung von Geschichten.<br />

Jede Geschichte wird durch Motive, Absichten und Ziele geprägt. Damit ist auch ein Skelett der H<strong>and</strong>lung<br />

gegeben. Auf der Grundlage dieses Skeletts kann die Geschichte eine Struktur erhalten. Sie sollte frei von<br />

Widersprüchen und nur beschränkt rekursiv sein.<br />

Ein System wird nur dann akzeptiert, wenn es einen intuitiv erkennbaren Nutzen bringt und echte Bedürfnisse<br />

von Akteuren in einfacher Form befriedigt. Ein System ist damit auch vom Zeitgeist abhängig, sollte sich<br />

diesem aber nicht vordergründig verpflichtet fühlen. Jede Szene ist klar und deutlich zu entwerfen und muß<br />

mit einem entsprechenden Inhalt an der richtigen Stelle, mit der richtigen Hintergrundinformation und mit<br />

adäquaten Aufgaben komponiert werden. Außerdem sind für jede Szene die <strong>Information</strong>en den Akteuren in<br />

der richtigen Sorte, in der richtigen Dosis, in der richtigen Form, in vollem Umfang und zu akzeptablen Kosten<br />

zur Verfügung zu stellen. Allen Akteuren ist klar und deutlich darzustellen, worin der nächste Arbeitsschritt<br />

besteht, in welcher Szene der Story er sich befindet und welche Probleme nun gelöst werden sollen und können.<br />

Eine Anwendung kann auf eine Fülle von Zielgruppen oder auf einige wenige Akteure orientiert werden.<br />

Anstatt eine Story ‘drauflos zu entwickeln’, bevorzugen wir eine methodische Entwicklung. Wir arbeiten uns<br />

von der Idee zur Grobstruktur und weiter über verschiedene Zwischenstadien bis zur Endfassung vor. Die drei<br />

wichtigsten Entwicklungsstadien sind Expose, Treatment und die ausgearbeite Story. Ein solches schrittweises<br />

Vorgehen bringt beträchtliche Vorteile durch die schrittweise Beseitigung von Unsicherheitsfaktoren und das<br />

Hinzufügen von zusätzlichem Material mit sich. Jede Szene kann damit ihren richtigen Platz in der Story<br />

erhalten. Sprünge werden vermieden. Der langsame Aufbau gewährleistet auch Detailtreue.<br />

Eine Story baut auf Ereignissen auf, in denen Akteure in Arbeitsschritten ontologische Einheiten benutzen.<br />

Deshalb wird hier auch eine enge Integration der Dialogentwicklung mit der Entwicklung der Sichten und der<br />

Funktionen vorgenommen.<br />

Das Resultat dieses Schrittes ist als H<strong>and</strong>lungsrahmen Best<strong>and</strong>teil des Pflichtenheftes.<br />

Die Spezifikation des Storyboards wird auf der Grundlage der entwickelten Story durch Auswahl von möglichen<br />

Ausprägungen und Verfeinerung entwickelt. Die Story besteht aus Szenen, die nun in einer Form ausgeprägt<br />

werden, die dem tatsächlichen Ablauf der H<strong>and</strong>lung entspricht. Wir nutzen dazu eine Aufnahme der möglichen<br />

Szenario. Ein Szenario ist ein genereller Ablauf aus der Sicht der Akteure. Dieser Auflauf oder Durchlauf soll<br />

dem aktuellen Geschehen in der Anwendung entsprechen.


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 655<br />

Geschäftsprozeßschicht<br />

Motivationsschicht<br />

Vorstudie<br />

Story-Entwurf<br />

Anwendungsgebiet<br />

Anwendungsschritt<br />

Lastenheft: Diskurs<br />

Aktionsschicht<br />

Feinstudie<br />

Szenenentwicklung<br />

Stories<br />

Ereignis<br />

Pflichtenheft: H<strong>and</strong>lungsrahmen<br />

Implementationsschicht<br />

Plot<br />

Entwurf<br />

Szenenbeschreibung<br />

Thema<br />

Storyboard<br />

konzeptionelle<br />

Schicht<br />

Szenenraum<br />

Implementation<br />

Szenenausschmückung<br />

Dialogschritt<br />

Drehbuch<br />

Arbeitsoberfläche<br />

Präsentationsraum<br />

Inszenierung<br />

Abbildung 24: Die Arbeitsprodukte im Abstraktionsschichtenmodell für den Story-Raum (Dialogaspekte)


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 656<br />

Die einzelnen Szenario können wir schrittweise mitein<strong>and</strong>er verknüpfen und diese integrieren. Mit einer derartigen<br />

Integration entsteht eine Verfeinerung der Story. Die einzelnen Szenen werden nun durch entsprechende<br />

Dialogschritte untersetzt, in denen die Akteure entsprechende H<strong>and</strong>lungen und Aktionen vornehmen und dazu<br />

Daten vom Format der Aktionssichten-Suite verwenden.<br />

Zwischen Story und Szenarien existiert ein Unterschied. Die Geschichte ist das eigentliche Geschehen. Die<br />

Szenario bestimmen die Auswahl von Szenen und Szenenfolgen. Jede einzelne Szene stellt ein Thema der<br />

Anwendung dar. Im Falle unserer Beispielanwendung sind Themen Angabe von Vorschlägen zu Lehrveranstaltungen,<br />

Zusammenstellung eines Stundenplanes, Übersicht über ein Institutspr<strong>of</strong>il.<br />

Die Szenario stellen einen verfeinerten Ablauf einer einzelnen Story dar. Dabei wird es <strong>of</strong>t vorkommen, daß<br />

nicht eine einzelne Story zur Darstellung aller möglichen Szenario ausreicht, sondern eine Menge von Stories,<br />

die die Abläufe in der Anwendung beschreibt. In diesen Fall entwickeln wir den Raum der Stories, den Story-<br />

Raum. Dieser Story-Raum kann auch auf <strong>and</strong>ere Art durchlaufen werden als in den angegebenen Szenario. In<br />

diesem Fall entdecken wir Lücken in der Darstellung der Anwendung. Die Stories werden durch einen Plot<br />

in diesem Entwurfsschritt verfeinert. Das Plot ist eine Anordnung der Ereignisse des Story-Raumes. In der<br />

Dramaturgie (Film, Drama, Erzählung, Musik) wird <strong>of</strong>t nur eine einzelne Story zur Grundlage genommen. In<br />

der Architektur sind Plots nichtlinear. Plots umfassen<br />

• die Raumplanung und die Raumordnung für die Stories, d.h. die Planung und den Ablauf der Szenen,<br />

• den allgemeinen Ablauf der Themen,<br />

• Prinzipien zur Szenographie und zum Aktionsraum,<br />

• die Aktionen der Darsteller und Akteure,<br />

• Prinzipien der Komposition und des Klangbildes, die als Qualitätsparameter dargestellt werden können,<br />

und<br />

• Prinzipien der Akzeptanz und Aufnahme (in der Dramaturgie der Musik: Melodie und Rhythmus).<br />

Es ist <strong>of</strong>fensichtlich, daß nicht alle Plots in der gleichen Form dargestellt werden können. Die Plots werden für<br />

die Ausarbeitung der Szenario aufbereitet. Das vorh<strong>and</strong>ene Material wird auf eine einfache und klare H<strong>and</strong>lungsfolge<br />

reduziert. Die Story wird damit konkretisiert bzw. verfeinert. In der Story sind keine detailliert<br />

ausgearbeiteten Szenen enthalten, dies trifft auch für das Szenario zu. Es enthält die Szenenabfolge und alle<br />

Dialoge. In das Szenario fließt bereits die gesamte <strong>Information</strong>sfülle ein. Sobald wir uns für eine bestimmte<br />

Auswahl entschieden haben, kommen neue <strong>Information</strong>en hinzu. Sie ergeben sich aus dem bisher Betrachteten.<br />

Damit ‘entwickelt sich das Szenario selbst’. Es werden auch Unzulänglichkeiten und Fehler sichtbar.<br />

Die einzelnen Szenen kann man sich durch überlappende Blöcke darstellen. Da eine <strong>Information</strong> und eine<br />

Aktion noch nachwirken kann bzw. antizipiert wird, sind die Szenen nicht vollständig trennbar.<br />

Mit der Szenenentwicklung betten wir auch die Dialoge in die H<strong>and</strong>lungen und die Daten ein. H<strong>and</strong>lungen sind<br />

Folgen von Aktionen. Aktionen benötigen Daten als benutztes Wissen, für die Ein- und Ausgabe. Eine Sicht<br />

entspricht dann einer oder mehreren Aktionen. Damit wird für die Szenarien auch die Darstellung von Motiv,<br />

Absicht und Ziel weiter verfeinert.<br />

Ein Motiv kann zu einer Absicht führen. Einer Absicht liegt gewöhnlich ein Wunsch zugrunde, ein bestimmtes<br />

Ziel zu erreichen. Jede Aktion führt zu einem (meist erwünschten) Ergebnis. Hinter jeder Absicht steckt ein<br />

Ziel. Keine Aktion erfolgt ohne Grund. Das Motiv ist die Ursache der Aktion. Zwischen Ursache und Wirkung<br />

besteht eine direkte Verbindung.<br />

Absichten haben verschiedene Eigenschaften, sind direkt, indirekt, bewußt, unbewußt, freiwillig, unfreiwillig,<br />

<strong>of</strong>fensichtlich oder versteckt. Kann eine Absicht nicht verwirklicht werden, entsteht ein Konflikt oder evt. auch<br />

nur ein Gegensatz.<br />

Das Ziel orientiert auf ein in der Zukunft liegendes Ereignis, das durch eine Absicht herbeigeführt werden soll.<br />

Beide Kategorien können beliebig weit ausein<strong>and</strong>er liegen.<br />

Zwischen den Aktionen gibt es Verknüpfungspunkte. Absichten können auch von einer Gruppe von Akteuren<br />

bzw. von Akteuren mit verschiedenen Rollen gleichzeitig getragen werden.


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 657<br />

Ein Szenario muß auch akzeptabel sein. Damit werden Benutzerbedürfnisse anh<strong>and</strong> der Spezifikation des Szenarios<br />

geprüft. Dabei konzentrieren wir uns auf folgende Probleme:<br />

Verständlichkeit: Jedes Szenario und jede Szene muß verst<strong>and</strong>en werden. Deshalb ist Klarheit und Verständlichkeit<br />

oberstes Gebot, wobei die Inhalte für alle Anwender (ggf. auch weltweit) die gleiche Semantik<br />

besitzen müssen. Der Benutzer kann nur entsprechend seinen Erfahrungen fehlende Teile antizipieren.<br />

Er soll vom Motiv auf die Absicht und von der Absicht auf das Ziel schließen können. Sind wesentliche<br />

Teile unverständlich, dann kann er keine Schlußfolgerungen ziehen. Der Benutzer will <strong>Information</strong>en,<br />

die er noch nicht kennt, d.h. es werden neue <strong>Information</strong>en geliefert, die sich anh<strong>and</strong> des Allgemeinwissens<br />

einordnen lassen. Bei der Vermittlung von z.T. komplexen und tiefgründigen Inhalten ist besondere<br />

Sorgfalt bei der Ausschöpfung aller Darstellungsmöglichkeiten notwendig.<br />

Plausibilität: Ein Szenario muß plausibel sein und sollte sich an die gewohnten Arbeitsweisen anlehnen.<br />

Der Stellenwert der Plausibilität und des Realismus ist dabei umgekehrt proportional zum Auffassungsvermögen<br />

und Ausbildungsgrad.<br />

Identifikation: Mit einem Szenario muß auch das Interesse der Akteure geweckt und wach gehalten werden.<br />

Für die Akteure muß eine enge Verflechtung zwischen dem Inhalt, den Prozessen und den Dialogen<br />

einerseits und der Arbeitsweise <strong>and</strong>erseits erreicht werden. Ein Benutzer soll sich mit ‘seinem’ System<br />

identifizieren können. Die Identifikation hat eine ganze Reihe von erwünschten Auswirkungen und ist ein<br />

wesentlicher Grund für die Akzeptanz eines Systemes.<br />

Für das Szenario bewerten wir abschließend seine Qualität.<br />

Vollständigkeit: Alle Szenen sind vollständig und bis ins Detail ausgestaltet.<br />

Bedürfnisgerecht: Die Aktionen, <strong>Information</strong>en und Dialoge entsprechen den Bedürfnissen der Akteure.<br />

Didaktisch aufbereitete Granulierung: <strong>Information</strong>en können in der Granulierung auch einen Akteur überfordern,<br />

was häufig bei einer direkten Übertragung von Darstellungen mit Printmedien vorkommt.<br />

Inhaltliche Konsistenz: Jede Aktion, jede <strong>Information</strong>, jeder Dialog besitzt einen lokalen und einen globalen<br />

Kontext. In beiden sollten Widersprüche vermieden werden.<br />

Resultat dieses Schrittes ist ein Storyboard mit einer detaillierten Beschreibung der Szenen. Es werden die<br />

Stories aus dem Pflichtenheft mit den Ereignissen durch Plots und Themen verfeinert. Diese Szenen wiederum<br />

werden schrittweise untersetzt durch einzelne Aktionen der Akteure. Das Storyboard zeigt die Anwendung aus<br />

der Sicht des Benutzers. Oft werden dazu auch graphische Repräsentationen benutzt. Eine solche Repräsentation<br />

wird bei Website-Entwicklungen Mockup genannt. Ein Mockup stellt eine Folge oder allgemein partiell<br />

geordnete Menge von Themen dar unter Einbezug der Gestaltungsmittel der visuellen Gestaltung.<br />

Für das Drehbuch werden die Szenen des Storyboards weiterentwickelt. Durch das Drehbuch wird die Art und Weise,<br />

in der die Geschichte realisiert werden soll, spezifiziert. Ein Drehbuch spezifiziert eine Story bzw. den<br />

gesamten Story-Raum im Detail. Das Drehbuch ist eine konzeptionelle Repräsentation des H<strong>and</strong>lungsablaufes<br />

aller Facetten der Anwendung.<br />

Das Drehbuch basiert auf Szenen, die mitein<strong>and</strong>er durch explizite Übergänge verbunden sind. Die Szenen<br />

selbst realisieren entsprechende Aktionen von Akteuren, die durch Dialogschritte dargestellt werden. Diese<br />

Aktionen können durch kurze prägnante Beschreibungen charakterisiert werden. Wir streben dazu auch eine<br />

Kurzcharakterisierung an. Dazu benutzen wir Verben oder auch Substantive. Diese Worte werden als Wortfelder<br />

dargestellt.<br />

Eine Szene ist dann ein algebraischer Ausdruck von Dialogschritten. Die Algebra muß dazu auch die Parallelität<br />

von Schritten berücksichtigen. Einer Szene sind Akteure mit entsprechenden Rollen und Aufgaben<br />

zugeordnet. Eine Szene nutzt ein Medien-Objekt. Ein Dialogschritt wird unter Beteiligung einiger Akteure, die<br />

in die Szene involviert sind, ausgeführt. Dabei werden die Akteure einem Kontext zugeordnet. Dieser Kontext<br />

stellt insbesondere die technischen Rahmenbedingungen der Benutzung dar.<br />

Wir berücksichtigen für das Drehbuch auch Eigenschaften und Wirkungen auf den Benutzer. Damit wird das<br />

Drehbuch im wesentlichen von drei Faktoren bestimmt: von der Form, den Aktionen der Story und den Besonderheiten<br />

der Arbeitsweise der Endbenutzer. Wir können damit im einzelnen Folgearbeitspakete herausstellen:


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 658<br />

Kategorisierung der Endbenutzer: Aktionen und Dialoge existieren nicht unabhängig von den Akteuren. Es<br />

können die Akteure kategorisiert und mit Charakteristika versehen werden. Dabei interessieren nur solche<br />

Details, die für den Verlauf der Dialoge von Bedeutung sind, d.h. wir erfassen einige Charakteristika<br />

und charakterisieren nicht etwa den Endanwender. In diesem Zusammenhang werden auch die Beziehungen<br />

der Endbenutzer soweit wie notwendig mit erfaßt. Die Kategorisierung sollte sich durch eine relative<br />

Beständigkeit auszeichnen.<br />

Aktionsphasen: So wie ein Verb Aktion bzw. H<strong>and</strong>lung verdeutlicht, kann auch Aktion in den drei Zeitdimensionen<br />

dargestellt werden, die untrennbar mitein<strong>and</strong>er verbunden sind. Eine für die Zukunft geplante<br />

Aktion weist auf ein bevorstehendes Ereignis. Ihr geht eine Absicht und damit ein Motiv voraus, die sich<br />

einem allgemeinen Plan des Szenarios unterordnet. Ereignisse, die in der Vergangenheit stattf<strong>and</strong>en, sind<br />

in ihrem Zeitbezug auch darzustellen.<br />

Aktive und inaktive Zustände: Szenen können, aber müssen nicht zu einer Aktivierung führen. Deshalb kann<br />

auch ein Szenario vorsehen, daß einzelne Aktionen ‘schlummern’. Wir können diese Verzögerung durch<br />

lang <strong>and</strong>auernde Transaktionen darstellen. Die Implementierung wird damit jedoch komplexer. Bei inaktiven<br />

Zuständen fehlt ein Motiv für eine Aktion oder es liegt eine Störung vor. Zur Spezifikation ziehen<br />

wir deshalb auch die Kategorisierung der Endbenutzer mit heran. Wenden Benutzer Aktionen an, ohne<br />

agieren zu können, dann liegt ein Konflikt vor. Ein Beispiel dafür ist das exklusive Schreiben von Daten<br />

für höchstens einen Benutzer. Dazu benötigen wir eine Konfliktlösungsstrategie je nach Intensität der Absicht<br />

und unterscheiden Hindernisse von Komplikationen und diese von Gegenabsichten. Unkritisch sind<br />

dagegen inaktive Zustände, die nach Erreichen eines Zieles erreicht wurden.<br />

Hauptabsichten und Teilabsichten: Gewöhnlich ist ein Geschäftsprozeß bzw. ein Szenario keine Kette von<br />

Ereignissen. Wir finden ein Netzwerk von Motiven, Absichten und Zielen vor. Die Absichten können<br />

in Teilabsichten, die den Hauptabsichten dienen, und Hauptabsichten kategorisiert werden. Damit ergibt<br />

sich auch eine zeitliche Ordnung und eine Variation in der Reihenfolge. Dabei können die Absichten<br />

gemeinsam dargestellt werden, die sich einem gemeinsamen Zweck unterwerfen (Gesetz von der Einheit<br />

des Zwecks). Teilabsichten sind Änderungen unterworfen, Hauptabsichten dagegen nicht. Teilabsichten<br />

sollten stets beendbar sein. Sie besitzen auch Hilfsziele.<br />

Wirkungen auf den Benutzer: Die Art und Weise, wie verschiedene Kategorien von Benutzern in ihren Rollen<br />

auf Ereignisse reagieren, wird in die Gestaltung des Drehbuches mit einbezogen. Wir untersuchen dazu<br />

für die Benutzergruppen auch die Antizipationsfähigkeit, den Erfahrungsschatz und die Fähigkeiten zur<br />

Bewältigung von Schwierigkeiten und benutzen für die Gestaltung der Szenen diese <strong>Information</strong>en. Eine<br />

kluge und durchdachte Ereignisstruktur ist Voraussetzung für eine Akzeptanz der Dialoge. Der Benutzer<br />

soll in der Lage sein, die Distanz zum Erreichen des Ziels abzuschätzen, wozu auch eine Umstellung der<br />

Szenen beitragen kann.<br />

Eigenschaften der Darstellungsmedien: Der Entwickler kann sich vieler Medien bedienen, um alle Best<strong>and</strong>teile<br />

einer Szene dem Akteur mitzuteilen. Es müssen Dialoge, Geräusche, H<strong>and</strong>lungen, Dekorationen,<br />

Darstellungsobjekte und Musik in konsistenter Form eingesetzt werden.<br />

Damit ist das Verfassen ebenso wie alle <strong>and</strong>eren Schritte der Entwurfsschicht nicht nur zu eine schöpferischen<br />

Tätigkeit, sondern ist vor allem auch ein H<strong>and</strong>werk, das sich an Regeln der H<strong>and</strong>werkskunst orientiert. Am<br />

Ende entsteht auf der Grundlage des Szenarios, der Story und der Ideen ein ausgereiftes Drehbuch.<br />

Die Szenenfolge wird anschließend auf Variation, Veränderung und Kontrast untersucht. Für die einzelnen<br />

Szenen sind die Verbindungen explizit zu modellieren. Deshalb werden evt. zusätzliche Verbindungselemente<br />

aufgenommen. Nicht alle Szenen sind mitein<strong>and</strong>er gleich eng verbunden. Es lassen sich Szenenblöcke (Akte)<br />

mit besonders starken Verbindungselementen bilden.<br />

Nach der Fertigstellung des Drehbuches sollte man den Entwicklungsprozeß umkehren und eine Zusammenfassung<br />

des vorliegenden Drehbuches schreiben. Diese Zusammenfassung ist dann mit dem Storyboard, dem<br />

Story-Raum und den Ideen und Motiven zu vergleichen.<br />

Für das Drehbuch bewerten wir abschließend seine Qualität, d.h. insbesondere die folgenden Qualitätskriterien:


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 659<br />

Benutzerführung: Die Akteure benötigen neben einer angepaßten Hilfe auch eine Führung durch komplexe<br />

Prozesse.<br />

Differenzierung: Es werden die unterschiedlichen Kategorien von Akteuren unterstützt.<br />

Medienmix: Die Medienauswahl erfolgt an den Inhalt angepaßt.<br />

Hypermediale Struktur: Es werden die Aktionen, <strong>Information</strong>en und Dialoge in einer benutzergerechten Form<br />

geboten, die ein Verlieren im ‘Cyberspace’ verhindert.<br />

Verbindung von Arbeit und Vergnügen: Da eine multimediale Darstellung auch eine ‘Emotionalisierung’ der<br />

Darstellung erlaubt, ist der Einsatz dieser Mittel zu konzipieren.<br />

Konsistenz: Jede Szene muß an sich und auch in ihrem Kontext konsistent sein.<br />

Erwartungskonformität: Die Erwartungen der Akteure sind für unterschiedliche Szenen verschieden. Dabei<br />

sind auch verschiedene Kategorien von Akteuren zu beachten.<br />

Für die Inszenierung wird die Form der Dialoge und damit der Präsentationsraum bestimmt. Wir entwickeln in<br />

dieser Schicht die Arbeitsoberflächen für jeden Dialogschritt im einzelnen. Ebenso wie das Storyboard den<br />

H<strong>and</strong>lungsrahmen nicht verändert, wird durch die Inszenierung das Drehbuch nicht verändert. Es werden die<br />

einzelnen Szenen und Dialogschritte des Szenenraumes ausgeschmückt.<br />

Die Spezifikation der Dialogschritte im Drehbuch basiert bereits auf einem Rahmen. Wir können diesen Rahmen<br />

als Start für die Spezifikation eines Gestaltungsrahmens oder zumindest eines Gestaltungsrasters für die<br />

Gestaltung der Oberflächen benutzen. Es stehen neben Rahmen für Fenstersysteme auch Rahmen für beliebig<br />

formatierbare Dokumente zur Verfügung. Ein solcher Rahmen wird in Analogie zu den üblichen Beziehungen<br />

Anwendungsgebiet Element allgemeine Struktur<br />

Datenbanksysteme Tupel Relationen-Typ<br />

XML-Technologie XML-Dokument XSchema-Suite oder DTD-Suite<br />

Benutzer-Schnittstellen-Technologie Fenster Stil-Regeln<br />

XML-Generatoren XSL-Regel ???<br />

Kommunikationssysteme ??? ???<br />

entwickelt.<br />

Diese Rahmen sind etwas komplexer als die Stil-Regeln für Benutzer-Schnittstellen, weil wir auch die Anwendergruppe,<br />

deren Pr<strong>of</strong>ile und deren Portfolio mit berücksichtigen wollen. Zur Gestaltung entwickeln wir<br />

Gestaltungsrahmen, die die Art der Gestaltung, die allgemeinen Prinzipien und den Umgang mit multimedialen<br />

Elementen darstellen. Mit dem Gestaltungsrahmen wird vorgegeben, wie die Oberflächen gestaltet werden.<br />

Außerdem sollen die Arbeitsoberflächen das Arbeiten mit dem System vereinfachen. Dazu erscheint es günstig,<br />

auch die Art des Zusammenwirkens, die Beziehungen der unterschiedlichen Akteure und die Darstellung des<br />

Zusammenwirkens durch den Arbeitsplatz zu kanonisieren. Dafür werden entsprechende Kommunikationsrahmen<br />

entwickelt. Die Art der Kollaboration bzw. Kooperation, die Art des Zusammenwirkens und der Arbeitsplatz<br />

werden mit berücksichtigt.<br />

Wir berücksichtigen neben den bereits diskutierten Eigenschaften von Oberflächen die folgenden Gestaltungsmöglichkeiten.<br />

Multimediale Darstellung: Einziger Zweck der Oberfläche ist es, etwas mitzuteilen. Sie ist niemals Selbstzweck,<br />

sondern steht im Dienste der Arbeit mit den <strong>Information</strong>en. Durch die Einengung auf den Bildschirm<br />

wird die ‘Vermittlung einer Botschaft’ auch eingeschränkt. Eine Folge von Bildschirmen soll<br />

weder ermüden noch von der eigentlichen Arbeit ablenken.<br />

Zugleich kann eine Oberfläche mehr <strong>Information</strong>en vermitteln als ein einfaches Foto. Es werden Aktionen<br />

und Objekte in der Wechselwirkung sichtbar. Die ‘Dekoration’ ist jede Art von Hintergrund. Die Requisite<br />

kann entweder zur Dekoration oder zum Akteur gehören. Lichtwechsel und das Aussehen von Requisiten<br />

dienen der Gestaltung von Oberflächen.<br />

Eine multimediale Arbeitsumgebung schließt die Verwendung von Tönen ein. Töne sind ebenso eine<br />

<strong>Information</strong>squelle. Die wichtigste Funktion des Tones liegt im Dialog mit dem Akteur. Er ist die bei<br />

weitem einfachste Form der Faktenübermittlung. Er sollte jedoch nur dann angew<strong>and</strong>t werden, wenn


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 660<br />

<strong>and</strong>ere Ausdrucksmöglichkeiten voll ausgeschöpft sind. Demgegenüber kann jede Aktion von bestimmten<br />

Geräuschen begleitet sein. Hintergrundmusik ist ein Best<strong>and</strong>teil der Tonebene, jedoch i.a. nicht der<br />

Geschichte. Es können damit auch <strong>Information</strong>en vermittelt werden.<br />

<strong>Information</strong>squellen: Jede Oberfläche, jeder Dialogschritt vermittelt <strong>Information</strong>en. Damit wird eine Oberfläche<br />

zur <strong>Information</strong>squelle. Die Vielfalt der <strong>Information</strong>en kann auch durch die Kombination verstärkt,<br />

abgeschwächt oder auch beigeordnet werden. Durch eine neue <strong>Information</strong> kann auch eine Veränderung<br />

implizit angezeigt werden. Wird die <strong>Information</strong> komplexer, dann ist die Wiederholung ein nützliches<br />

und angebrachtes Mittel. Verdopplung kann verwendet werden, um Daten, die benötigt aber evt. vergessen<br />

werden, wieder in Erinnerung zu bringen. Typische Verdopplungsfunktionen sind Statusleisten. Sie<br />

sind jedoch mit Vorsicht zum richtigen Zeitpunkt mit der richtigen <strong>Information</strong> anzuwenden. Die Vielfalt<br />

an zu vermittelnder <strong>Information</strong> ist in geschickter Anordnung (Arrangement, Koordination) dem Akteur<br />

zu vermitteln. Dabei ist auch die semantische Konsistenz zu beachten. Widersprüche deuten auf Fehler<br />

hin.<br />

<strong>Information</strong>squellen dürfen nicht mit Symbolismus verwechselt werden, der eher eine ungeeignete Art<br />

der Bildkonzeption ist.<br />

Bildauswertung und Bildkomposition: Jede Szene in der Inszenierung und jede Oberfläche besteht aus kleinen<br />

Einheiten, die wiederum aus kleinen Einheiten zusammengefügt sein können. Sie setzen sich zu einer<br />

Einstellung zusammen, die sich auch je nach Betrachtungspunkt verändern kann. Das Blickfeld selbst ist<br />

begrenzt. Es wird nur ein relevanter bzw. wichtiger Ausschnitt gezeigt, d.h. die informationsträchtigen<br />

Elemente, die zur gleichen Aktion gehören, werden als Elemente einer Einstellung zusammengefaßt. Eine<br />

gute Einstellung hält mit den Aktionen und ihren Zielen Schritt. Mitunter ist die Reaktion wichtiger als<br />

die Aktion. Wir unterscheiden dabei verschiedene Einstellungstypen (Groß-, Nah-, halbtotale etc. Einstellung).<br />

Jede Einstellung kann auf unterschiedliche Weise informationsvermittelnden Fakten entsprechen.<br />

Eine Einstellung kann auch dynamisch sein und trägt damit u.a. der Verlagerung des Interesses Rechnung.<br />

Ein Einstellungswechsel darf nicht zu kraß sein. Die Szenarien sollen durch eine nahtlose Verbindung<br />

von Einstellungen zusammenhängen. Mittel der Abgrenzung wie Auf- und Abblende sind deshalb in den<br />

Entwurf mit einzubinden.<br />

Einzelszenen: Die Einzelszenen können auch aus mehreren Einstellungen bestehen. In diesem Fall sind auch<br />

mehrere Sichten auf die Datenbank zu integrieren. Ereignisse sind in den Szenen selbst enthalten. Einzelszenen<br />

sind durch ihren Ort, ihre Zeit (Zeitpunkt, Laufzeit, Länge) mitbestimmt. Eine kunstvolle Zusammenstellung<br />

von Elementen verbessert nicht unbedingt die Qualität der Inszenierung, es kann dadurch<br />

die Aufmerksamkeit der Arbeit entzogen werden. Damit wird die Exposition von Ort und Zeit zum Entwurfsproblem.<br />

Auswahl der <strong>Information</strong>en: Ein Szenario wird durch den Akteur als eine Folge von Einzelinformationen<br />

beobachtet. Alle <strong>Information</strong>en beruhen in der Inszenierung auf Selektion. Es werden bestimmte Szenen<br />

herausgehoben oder auch nur angedeutet. Jede <strong>Information</strong> zieht auch weitere <strong>Information</strong>en nach sich.<br />

Voraussetzung für die richtige <strong>Information</strong>sauswahl ist daher die Kenntnis aller Fakten über den Dialogablauf<br />

und die zugrundegelegten Funktionen und Daten. Es können zu wenig, zu viel oder die korrekte<br />

Anzahl von wichtigen Fakten in den Entwurf eingehen. Dies trifft insbesondere auch auf die Darstellung<br />

der Begleitinformation zu. Zugleich werden die Vorkenntnisse der Benutzer mitberücksichtigt.<br />

Der <strong>Information</strong>spflicht am Anfang eines Szenarios muß in stärkerem Maß nachgekommen werden. Man<br />

kann auch <strong>Information</strong>en, die später benötigt werden, vorher ‘säen’.<br />

Die Verteilung der <strong>Information</strong>en unterliegt ebenso wie die Verteilung von Wissen und Nichtwissen komplizierten<br />

Gesetzmäßigkeiten und verstärkt die Wichtigkeit der <strong>Information</strong>svermittlung. Durch eine ungeschickte<br />

Verteilung können auch Mißverständnisse hervorgerufen werden.<br />

Die Inszenierung bietet mit einer multimedialen Ausgestaltung des Drehbuches eine Vielfalt von Möglichkeiten,<br />

die, gerade weil sie existieren, danach verlangen, genutzt zu werden. Damit werden jedoch neue Hindernisse<br />

aufgetürmt, die die erfolgreiche Nutzung erschweren. Es ist nicht möglich, das gesamte Hintergrundwissen<br />

und den ‘common-sense’ in die Ausgestaltung zu integrieren. Obwohl wir viele Ereignisse präsentieren


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 661<br />

können, ist es schwierig, sie klar und verständlich zu präsentieren, weil i.a. keine beschreibenden und erklärenden<br />

Manual-Kurzgeschichten hinzugenommen werden sollten.<br />

Abschließend bewerten wir die Qualität der Inszenierung.<br />

Zieltechnik: Die Zieltechnik beeinflußt in sehr starkem Maße die Qualität und auch die Implementierbarkeit<br />

von einzelnen Szenen.<br />

Einheitlichkeit: Neben St<strong>and</strong>ardinteraktionen besitzen wir auch aus dem Inhalt abgeleitete Interaktionen. Eine<br />

Vereinheitlichung ist dabei angebracht.<br />

Pr<strong>of</strong>essionelles <strong>Design</strong>: Ein System soll einen Akteur nicht unterfordern, nicht überfluten und auch ein einfaches<br />

Wiedereinsteigen ermöglichen. Damit sind auch die Dialoge pr<strong>of</strong>essionell zu gestalten.<br />

Fehlerrobustheit: Eine Fehlbedienung darf weder zum ‘core dump’ noch zu unkontrollierbaren Zuständen<br />

führen. Ein Akteur muß selbst aus einer Fehlersituation wieder herausfinden.<br />

Hierarchie der einzelnen Szenen: Da die Szenen geordnet werden, ist auch dem Akteur eine wiederholte Anwahl<br />

von einzelnen Szenen zu gestatten, so daß auch ein konsistentes, nach- und rückverfolgbares Szenenmanagement<br />

einen Benutzer unterstützen muß.<br />

Farbauswahl: Wie jedes <strong>and</strong>ere Darstellungsmittel sind auch die Farben mit einer semantischen Bedeutung<br />

zu versehen.<br />

Darstellungsskalierung: Je nach Akteur, je nach vorh<strong>and</strong>enem Client oder Darstellungsmedium sind unterschiedliche<br />

Interaktionsmöglichkeiten vorzusehen.<br />

Offene Systeme: Ein <strong>Information</strong>ssystem wird in immer stärkerem Maße mit <strong>and</strong>eren Systemen in integrierter<br />

Form verwendet. Deshalb ist der Output für einige St<strong>and</strong>ards mit aufzubereiten.<br />

Erweiterbarkeit: Ein <strong>Information</strong>ssystem beginnt aufgrund der Änderungen in der Anwendung selbst, in den<br />

Pr<strong>of</strong>ilen der Akteure und durch Hinzunahme von Funktionalität bald nach der Erstellung ‘zu leben’. Die<br />

möglichen Erweiterungen sollten antizipiert werden.<br />

Auswahl der multimedialen Medien: Ein Akteur sollte entsprechend seinem Benutzerpr<strong>of</strong>il die Interaktion<br />

und die benutzten multimedialen Formen selbst und evt. auch dynamisch auswählen können.


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 662<br />

6.6 Der Kollaborationsrahmen<br />

Wir unterscheiden zwischen Kooperation, Koordination und Kommunikation. Diese drei Formen der Kollaboration<br />

werden im nächsten Abschnitt im Detail beh<strong>and</strong>elt. Kollaboration zwischen Akteuren wird im Rahmen der Spezifikation<br />

des Story-Raumes und im Rahmen der Spezifikation der Verteilung dargestellt. Es werden unterschiedliche<br />

Aspekte für den Story-Raum dargestellt. Hier sind die allgemeinen Aspekte von Bedeutung. Für die Spezifikation der<br />

Verteilung werden diese Aspekte verfeinert und im Detail angegeben.<br />

Der Kooperationsrahmen soll bei der Inszenierung eine automatische Generierung der Oberflächen für die einzelnen<br />

Dialogschritte unterstützen. Im einzelnen ist der Kooperationsrahmen spezifiziert durch Angaben zu:<br />

Koordination bzw. Kooperation: Wir unterscheiden zwischen Koordination und Kooperation.<br />

Charakterisierung nach Koordinationsformen: Eine Koordination von Akteuren erfolgt für die Bewältigung<br />

von Arbeitsaufgaben. Diese Aufgaben werden mit einer Reihen von Koordinationstypen verbunden.<br />

Typische Koordinationstypen sind z.B. die Broker- bzw. Trader-Customer-Koordination, die Client-<br />

Dispatcher-Koordination oder die Publisher-Subscriber-Koordination. Sie stellen allgemeine entfaltbare<br />

Workflows dar, bei denen der Ablauf der Koordination durch entsprechende verfeinerbare Dialogschritte<br />

gekennzeichnet wird. Diese Koordinationstypen werden im weiteren zum Austauschrahmen zur Spezifikation<br />

der Verteilung erweitert. Der Austauschrahmen umfaßt die gesamte Kollaboration.<br />

Charakterisierung nach Kooperationsformen: Kooperation zwischen Akteuren basiert auf einer Darstellung<br />

des Arbeitsprozesses, einer Angabe des Organisationsmodelles und einer Darstellung des Arbeitsplatzes<br />

bzw. Arbeitsraumes.<br />

Die Kooperationsformen zum Erreichen der Ziele werden im Rahmen der Kooperation der Benutzer<br />

abgeglichen. Es sind sowohl spezifische Formen der Interaktion als auch des Reviewing und der Kontrolle<br />

zu vereinbaren.<br />

Die Rollen bei der Kooperation werden für die einzelnen Benutzer im Detail festgelegt.<br />

Charakterisierung der Formierung: Wir unterscheiden unterschiedliche Arten der Formierung von Gruppen<br />

in<br />

inhaltsbezogene Formierung, bei der der Kooperationsrahmen durch Ziel und Portfolio determiniert<br />

wird,<br />

arbeitsweise-orientierte Formierung, die eine Anpassung der Content-Objekte an die z.Z. präferierte<br />

bzw. im nächsten Schritt erwartete Arbeitsweise ermöglicht, und<br />

Formierung durch Selbstorganisation der Gruppe, die eigenständig die Inhalte, den Zeitpunkt und<br />

den Arbeitsraum bestimmt.<br />

Charakterisierung nach Raum und Zeit: Wie bereits dargestellt, können wir bei einer Zusammenarbeit unterschiedliche<br />

Content-Objekt-Zuordnungen und Zeiträume darstellen.<br />

Gleiches Content-Objekt und synchrone Zusammenarbeit: Ein typische Form dieser Zusammenarbeit<br />

sind Brainstorming-Sitzungen.<br />

Gleiches Content-Objekt und asynchrone Zusammenarbeit: Ein typische Form dieser Zusammenarbeit<br />

kann man in Videokonferenzen beobachten.<br />

Verschiedene Content-Objekte und synchrone Zusammenarbeit: CASE-Werkzeuge realisieren diese<br />

Art der Zusammenarbeit.<br />

Verschiedene Content-Objekte und asynchrone Zusammenarbeit: Diese Zusammenarbeit ist z.B.<br />

für elektronische Post typisch.<br />

Charakterisierung nach Kooperationsvertrag: Der Kooperationsvertrag dient dem Abgleich der Interessen<br />

der kooperierenden Benutzer. Es werden sowohl Absprachen zu den Inhalten als auch zu den zu wählenden<br />

Szenario sowie die Einordnung in Arbeitsräume und Zeiträume getr<strong>of</strong>fen.<br />

Art des Zusammenwirkens: Kollaboration basiert auf einer expliziten oder impliziten Kommunikation, auf Regeln<br />

des Zusammenwirkens und einer Dramaturgie des Zusammenwirkens. Die Art des Zusammenwirkens wird <strong>of</strong>t


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 663<br />

in kanonischer Form vorgegeben. In diesem Fall wird das Zusammenwirken durch kleine Szenario bestimmt,<br />

die mitein<strong>and</strong>er kombiniert werden können.<br />

Die Art des Zusammenwirkens wird <strong>of</strong>t mit einem Vertrag der Kollaboration gekoppelt. Best<strong>and</strong>teile des Vertrages<br />

sind die klassischen juristischen Fallfragen:<br />

“Wer”<br />

arbeitet zusammen (“wie”)<br />

“mit wem”<br />

zu welchem Gegenst<strong>and</strong> (“was” )<br />

auf welcher Anspruchsgrundlage (“woraus”).<br />

Diese Fallfragen verallgemeinern wir zu Spezifikationsrahmen für die Art des Zusammenwirkens:<br />

Die Beziehungen der Anwender und die Beziehungen des Benutzers mit dem System können durch Beziehungsstrukturen<br />

dargestellt werden. Diese Beziehungsstrukturen können Ethikregeln unterliegen oder<br />

explizit formuliert sein. Wir können wie im Falle der aspekt-orientierten Programmierung auch auf allgemeine<br />

Beziehungsstrukturen zurückgreifen oder explizit die Einhaltung der allgemeinen Geschäftsbedingungen<br />

postulieren.<br />

Arten der Aktivität werden durch Verbgruppen mit Verben der H<strong>and</strong>lungen wie kaufen, lernen und informieren,<br />

ergative Verben wie fliehen, Prozeßverben wie einschlafen (ingressive Prozesse) und verblühen<br />

(egressive Prozesse) und Verben zur Beschreibung eines Zust<strong>and</strong>es wie schlafen oder haben relativ gut<br />

charakterisiert. Wir sind für <strong>Information</strong>ssysteme an der ersten und der letzten Verbgruppen stärker interessiert.<br />

In diesen beiden Gruppen unterscheiden wir<br />

• Verben des Geschehens,<br />

• Verben des Zunehmens,<br />

• Verben der Übereinstimmung/Verschiedenheit,<br />

• Verben des Mitteilung,<br />

• Verben des Argumentation,<br />

• Verben der Zustimmung,<br />

• Verben der Leitung,<br />

• Verben des Zusammentreffens,<br />

• Verben der sinnlichen Wahrnehmung,<br />

• Verben der Nahrungsaufnahme und<br />

• Verben des Reinigens.<br />

Die ersten acht Gruppen sind für <strong>Information</strong>ssysteme relevant und können zu speziellen Kooperationsrahmen<br />

verwendet werden.<br />

Diskurstypen in der Zusammenarbeit können nach der Konversationstheorie unterschieden werden in:<br />

H<strong>and</strong>lungen: Es wird der Partner zu einer H<strong>and</strong>lung aufgefordert.<br />

Klärung: Es erfolgt mit dem Partner eine Klärung.<br />

Entscheidung: Es wird mit dem Partner eine Entscheidung getr<strong>of</strong>fen.<br />

Orientierung: Es wird dem Partner eine Orientierung für dessen Tätigkeiten gegeben.<br />

Wir können mit dieser Klassifikation der Arten des Zusammenwirkens in Erweiterung der Klassifikation Wer-<br />

2-Wem (2 steht für “to” (mit)) mit einem Muster der Form<br />

Provider Art des Inhaltes Art der Aktivität<br />

2 Kunde<br />

charakterisieren. Daraus ergibt sich für die Gestaltung von Websites eine Klassifikation in:<br />

E-Business-Sites: B(usiness) P(rodukt) 2V(erwaltung) kaufen , B P 2B kaufen , B P 2K(unde) kaufen ,<br />

V I(nformation) 2K kaufen , K P 2 K kaufen ( bzw. C(ustomer) P 2 C kaufen )<br />

Lern-Sites: B W(issen) 2K lernen , K W 2 K lernen<br />

<strong>Information</strong>-Sites: B I(nformation) 2G(ast) informieren , V I 2G informieren , K I 2G informieren


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 664<br />

Arbeitsgruppen-Sites: A(rbeitsgruppe)2A agieren , A2Ginformieren, agieren<br />

Corporate-Identity-Sites: P(rovider) I 2G anschauen<br />

Unterhaltungs-Sites: B U(nterhaltung) 2G agieren , G U 2G agieren<br />

Arbeitsplatz: Der Content-Typ Arbeitsplatz soll die Kollaboration unterstützen. Er muß deshalb auch die Aspekte<br />

der Kollaboration berücksichtigen. Zur Darstellung benutzen und verfeinern wir die Kern-Typen des Content-<br />

Typs Arbeitsplatz:<br />

Akteure werden mit ihren Kollaborationsbeziehungen dargestellt. Sie umfassen<br />

Kooperationsbeziehungen,<br />

Koordinationsbeziehungen und<br />

Kommunikationsbeziehungen, sowie das<br />

Organisationsmodell.<br />

Gruppen verfügen über spezifische Formen der Kollaboration. Diese Kollaboration basiert <strong>of</strong>t auf relativ<br />

festgeschriebenen und demzufolge abzubildenden Beziehungsstrukturen.<br />

Rechte werden mit der expliziten Darstellung der Kollaboration in Rechte zu Kooperation, Koordination und<br />

zur Kommunikation untersetzt.<br />

Portfolio werden den Einzelaufgaben zugeordnet, wobei die Art des Zusammenwirkens auch die Art der<br />

Abarbeitung des Portfolios determiniert.<br />

Die Organisation wird durch die Darstellung der Dramaturgie der Kollaboration verfeinert.<br />

Der Kollaborationsrahmen wird noch einmal bei der Spezifikation der Verteilung betrachtet, dort allerdings mit<br />

einer Konzentration auf die technische Unterstützung. Zu Spezifikation der Kollaboration können wir die folgende<br />

Tabelle oder auch ein Arbeitsblatt wie bereits bei der Spezifikation der Szenen und der Dialogschritte verwenden:<br />

Kollaborationsrahmen<br />

Kollaboration Art des Zusammenwirkens Arbeitsplatz<br />

Form Rollen Formierung<br />

Raum<br />

/ Zeit<br />

Vertrag<br />

Beziehungen<br />

Arten Diskurstyp<br />

Akteure<br />

Gruppe Rechte Portfolio<br />

... ... ... ... ... ... ... ... ... ... ... ... ...<br />

Organisation<br />

Wir unterscheiden die Kopplungsmechanismen nach Seite ?? in Interaktionskopplung (Kopplung im Story-Raum)<br />

Komponentenkopplung (Container-Kopplung) und Vererbungskopplung. Sie können auch im Kombination verwendet<br />

werden.<br />

Die Kohäsion kann analog zur Kohäsion auf Seite ?? durch die Bindung zwischen den einzelnen kooperierenden<br />

Objekten beschrieben werden.


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 665<br />

6.7 Der Gestaltungsrahmen<br />

Durch die Spezifikation eines Gestaltungsrahmens kann in allgemeiner Form die Darstellung der gesamten Arbeitsoberflächen-Suite<br />

und des Präsentationsraumes in einheitlicher Form und auch mit der XML-Technologie erfolgen.<br />

Zur Gestaltung von S<strong>of</strong>tware und insbesondere von Dialogen nach ergonomischen Kriterien stellt die DIN-Norm<br />

66234, Teil 8 folgende Kriterien auf:<br />

Erwartungskonformität: Ein Dialog ist erwartungskonform, wenn sich die Erwartungen, Erfahrungen und bisherigen<br />

H<strong>and</strong>lungen der Benutzer im Dialog widerspiegeln.<br />

Steuerbarkeit: Ein Dialog ist steuerbar, wenn er sich dem augenblicklichen Arbeitsstil, der Geschwindigkeit und<br />

der Wahl der Arbeitsmittel anpassen läßt.<br />

Aufgabenangemessenheit: Ein Dialog ist aufgabenangemessen, wenn er die Erledigung der Arbeitsaufgaben unterstützt,<br />

ohne zusätzlich zu belasten.<br />

Selbstbeschreibungsfähigkeit: Ein Dialog ist selbstbeschreibungsfähig, wenn er entweder direkt oder indirekt<br />

(z.B. über adäquate Hilfen) verständlich ist.<br />

Fehlerrobustheit: Ein Dialog ist fehlerrobust, wenn trotz erkennbarer Fehler ein richtiges Resultat erzeugt wird.<br />

Bei der Bewertung von Benutzungsoberflächen können eine Reihe von Parametern betrachtet werden:<br />

Robustheit: Ein System darf durch eine falsche H<strong>and</strong>lung nicht in seinen wesentlichen Parametern (Benutzbarkeit,<br />

Durchlauf etc.) beeinflußt werden.<br />

Benutzbarkeit: Die Benutzbarkeit bzw. Brauchbarkeit kann durch verschiedene Parameter bewertet werden.<br />

Analytische Meßmethoden werden z.B. beim Vollständigkeitstest herangezogen. Damit kann ermittelt werden,<br />

ob alle benötigten <strong>Information</strong>en auch dargestellt werden.<br />

Leistungsparameter sind z.B. die benötigte Arbeitszeit, die Fehlerrobustheit und die Zeitersparnis.<br />

Die kognitive Beanspruchung stellt die geistige Anstrengung des Benutzers dar. Stimmen das mentale Modell<br />

des Benutzers und die Reaktionen am Bildschirm überein, dann ist sie gewöhnlich gering.<br />

Die Benutzerzufriedenheit berücksichtigt die Nützlichkeit des Systemes für den Anwendungsbereich und auch<br />

den Lernaufw<strong>and</strong> zur Bedienung des Systemes.<br />

Die Modellierung von Benutzungsoberflächen umfaßt die Spezifikation verschiedener Bereiche:<br />

Dialogmethoden erfüllen unterschiedliche Zwecke. Wir können verschiedene Zugänge in realen Systemen finden:<br />

Eingabemasken entsprechen Formularen. Damit ist auch die Arbeitsweise determiniert.<br />

Befehle und Aufforderungen an den Benutzer werden zum Abruf von Daten benutzt. Dabei kann die Struktur<br />

durch meist deterministische Ablaufdiagramme dargestellt werden.<br />

Menüs können mehrere Optionen oder Funktionen, aus denen der Benutzer auswählen kann, darstellen. Menüs<br />

können auch als Popup- oder Klappmenüs gestaltet werden.<br />

Schaltflächen dienen zum Auslösen von Funktionen.<br />

Die Eingabemaske eignet sich am besten zur Eingabe von <strong>Information</strong>en über eine semantische Einheit. Sie<br />

sind weniger für die Modifikation von Daten geeignet. Dazu ist eine Menüstruktur eher geeignet.<br />

Arbeitssicht: Eine Arbeitssicht (auch Arbeitsbereich in der Literatur) definiert alle <strong>Information</strong>en, die für eine bestimmte<br />

Aufgabe benötigt werden.<br />

Layout: Durch das Layout wird die Darstellung der <strong>Information</strong>en der einzelnen Arbeitsschritte beschrieben.<br />

Prozeßsicht: Durch die Prozeßsicht wird der Arbeitsablauf bzw. der Geschäftsprozeß der Anwendung spezifiziert.


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 666<br />

Diese ergonomischen Prinzipien, die allgemein für S<strong>of</strong>twareprodukte entwickelt wurden, können zu Gestaltungsprinzipien<br />

weiterentwickelt werden bzw. von produktspezifischen Forderungen kann abgesehen werden. Wir führen als<br />

allgemeines Rahmenwerk Gestaltungsrahmen ein.<br />

Die Gestaltung von Schnittstellen besitzt eine Reihe von Analoga mit der Gestaltung von Werbematerial. Aus<br />

Optimierungsgründen sind jedoch kaum dessen gestalterische Möglichkeiten ausschöpfbar. Insbesondere sind die<br />

Effizienz und die Übersichtlichkeit zu beachten. Hinzu kommen aber auch zusätzliche Möglichkeiten. Werkzeuge,<br />

die z.Z. im Entstehen sind, werden auch Sprache, Gestik, intelligente Agenten und integrierte Multimedia (Panmedia<br />

ist ein besserer Begriff) einschließen.<br />

Graphiken von Web-Oberflächen werden immer noch mit Blick auf unbegrenzte Ressourcen entworfen. Mit<br />

dem Internet II aber auch schon bei einer Vermittlung von <strong>Information</strong>en über Modems sollte man sich bei der<br />

graphischen Gestaltung auf die <strong>Information</strong>svermittlung besinnen und auf graphische Arabesken und Manierismen<br />

sowie intergalaktische Multimedia-Effekte verzichten.<br />

Oberflächen sollten im allgemeinen der Anwendungsphilosophie, der Anwendungslogik und dem Anwendungszweck<br />

folgen. Deshalb sollte eine Anwendung immer als Ganzes entworfen werden. Die Organisation der Oberflächen<br />

und die visuelle Struktur der einzelnen Oberfläche folgen der Anwendungslogik. Sind die Oberflächen zur<br />

Präsentation bestimmt, dann ist auch die Firmenstrategie mit einzubeziehen. Das Corporate <strong>Design</strong> - von der Werbung<br />

bei der Beratung teuer als das Entwurfswissen eingebracht - ist nicht von der Darstellung zu trennen. Bestimmte<br />

Bedienelemente wie z.B. die rechte Maustaste können für spezielle Effekte in einer ganzheitlichen Gestaltung reserviert<br />

werden.<br />

Die <strong>Information</strong>sdarstellung, die Darstellung des Arbeitsprozesses und die davon abhängige Darstellung der<br />

Suchmechanismen sollte zum einem integriert erfolgen, zum <strong>and</strong>eren durch die Architektur in separaten Einheiten<br />

gehalten werden. Insbesondere sollten der Suchmechanismus und die verschiedenen Verknüpfungsnetze nicht mit<br />

der <strong>Information</strong> gemeinsam dargestellt sein. Eine Integration bedeutet keinesfalls die weitestgehende Unabhängigkeit<br />

der einzelnen Oberflächen vonein<strong>and</strong>er aufzugeben. Verbindungen zwischen den einzelnen Oberflächen sind explizit<br />

darzustellen bzw. durch globale Techniken wie Zwischenablagen und dynamischen Datenaustausch zu unterstützen.<br />

Kontextsensitive Oberflächen, insbesondere solche, die von mehreren <strong>and</strong>eren abhängen, sollten vermieden werden<br />

oder nur mit einer hierarchischen Strukturierung angew<strong>and</strong>t werden.<br />

Eine Darstellung von <strong>Information</strong>en sollte so einfach 3 sein, wie es die <strong>Information</strong>sfülle zuläßt. Die <strong>Information</strong><br />

ist übersichtlich zu gestalten. Durch geschickte Vernetzung von Oberflächen kann eine Übersichtlichkeit geschaffen<br />

werden, die weit über die Möglichkeiten von Printmedien hinausgeht. Durch verschiedene übergreifende Verzeichnisse<br />

kann eine Transparenz geschaffen werden, die eine umfassende und aktuelle Recherche in einfacher Form<br />

ermöglicht. Einfachheit impliziert auch Eleganz. Der Stil ordnet sich hier unter. Die Repräsentation und das Aussehen<br />

folgen auf dieser Grundlage.<br />

Einfache Oberflächen bedeuten auch minimale Wege sowohl für die Bedienung als auch für das Auge. Mengen<br />

von Oberflächen werden umso eher angenommen, umso mehr sie einer einheitlichen Strukturierung unterliegen.<br />

Die Verteilung der Funktionalität sollte einheitlich sein. Die Eingabeoberflächen benötigen eine einfache und übersichtliche<br />

Gestaltung. Sind aufgrund einer <strong>Information</strong>svielfalt mehrere Oberflächen notwendig, dann ist auch der<br />

Zusammenhang explizit darzustellen.<br />

Die <strong>Information</strong>sdarstellung muß klar, einfach und intuitiv verständlich sein. Negative <strong>Information</strong> und negative<br />

Anfragen erfordern vom Benutzer ein genaues Verständnis der unterlegten Logik. Besser ist es, diese <strong>Information</strong> in<br />

positiver Logik zu formulieren. Farben können <strong>Information</strong> tragen. Sie sollten aber stets der <strong>Information</strong>sdarstellung<br />

untergeordnet werden. In verteilten Anwendungen sollte man mit Farben sparsam umgehen und den Schwarz-Weiß-<br />

Test nicht auslassen. Warnhinweise sollten auch als solche unmißverständlich zu erkennen sein. Fehlermeldungen<br />

sollten kontextsensitiv, minimal und auch für den Normalbenutzer intuitiv verständlich sein. Die Darstellung von wesentlichen<br />

<strong>Information</strong>en sollte plattformunabhängig erfolgen. Die Statusleiste kann auch eine Kurzhilfeinformation<br />

mit einbeziehen. Skalierung, Kontrast und Größenverhältnisse sind der <strong>Information</strong>sdarstellung zu unterwerfen.<br />

Oberflächen sollten an die Fertigkeiten und Fähigkeiten der Benutzer angepaßt sein. Die Benutzer können nach<br />

den Kriterien von [Alt96] charakterisiert werden: positive Erfahrungen (wie z.B. Arbeitssprache), negative Erfahrungen<br />

(z.B. Fehler, Entscheidungen, Wortwahl) und Fertigkeiten bzw. Fähigkeiten (z.B. Wissen, motorische, visuelle<br />

Fertigkeiten, Abstraktions- und Formulierungsfähigkeiten etc.). Damit hat auch die Orientierung auf den Benutzer<br />

3 Vielleicht sollte man eher das “Small is beautiful” in den Mittelpunkt stellen.


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 667<br />

Vorrang vor dem Testen von nichtst<strong>and</strong>ardisierten Werkzeugen. Obwohl die Maus in vielen Anwendungen zum normalen<br />

Arbeitsinstrument geworden ist, sollte stets auch die Tastatur unterstützt werden. Sie ist meist schneller und<br />

bei sinnvoller Anordnung der einzelnen Arbeitsschritte kann sogar der Tabulator für das Beenden eines Teilschrittes<br />

und den Beginn des nächsten Teilschrittes benutzt werden. Sind unterschiedliche Gruppen von Benutzern zu berücksichtigen,<br />

dann sollte auch ein unterschiedliches Bedienniveau implementiert werden. Die Bediensprache ist dem<br />

Benutzer und seinem Anwendungsgebiet mit anzupassen. Jede Art von Benutzung führt zu einem Feedback durch<br />

das System. Damit wird einem Benutzer der nächste Schritt erleichtert.<br />

Weiterhin determinieren die Fähigkeiten der Benutzer und ihren Bedürfnissen, ob ein black-box-Zugang, der dem<br />

Benutzer Details der Implementation vollständig vorenthält, ein glass-box-Zugang, der dem Benutzer auch gestattet,<br />

die Arbeitsweise des <strong>Systems</strong>, insbesondere das input-output-Verhalten, zu verstehen und sein Verhalten dementsprechend<br />

zu verändern, oder ein Mix dieser beiden Zugänge anzustreben ist.<br />

Da eine Vielzahl von Oberflächen in einer Anwendung zu entwickeln sind, ist auch bei der Gestaltung die Wirtschaftlichkeit<br />

zu beachten. Die Oberflächen sollten generisch bzw. parametrisch sein oder zumindest einem St<strong>and</strong>ard<br />

folgen, der mit der Anwendung korreliert. Die Wiederverwendung von existierenden Oberflächen erleichtert ebenso<br />

wie die St<strong>and</strong>ardisierung das Erlernen der Benutzung.<br />

Die Effizienz und Aspekte der Sicherheit sollten durch das Dialogmangementsystem (oder falls kein System<br />

existiert, dann sind diese Probleme beim Entwurf der Oberflächen mit zu betrachten) optimierbar sein.<br />

Die Gestaltung von Oberflächen erfordert die Einbeziehung so unterschiedlicher Disziplinen wie Wahrnehmungspsychologie,<br />

Ergonomie, Soziologie, Informatik, Grafikdesign und Marketing in die Datenbankprogrammierung. In<br />

der ersten Näherung können die Gestaltungselemente (Typographie, Symbole und Piktogramme, Farbe sowie Proportion<br />

und Aufbau des Bildschirms) betrachtet werden.Hinzu kommen die Betrachtung der Eleganz und der Einfachheit,<br />

der Organisation und visuellen Struktur, der Anordnung und Bedienung, der Bilder und der Repräsentation und Stil-<br />

Zuordnung von Widget-Typen<br />

⋄ Sichten-Suite<br />

⋄ Funktionalität<br />

⋄ Strukturierung<br />

⋄ Fenster<br />

⋄ Menü, Operationsauswahl,...<br />

⋄ Konstantenfeld, Datenfeld, Gruppe<br />

Einfach-, Mehrfachauswahl, Liste, Tabelle,...<br />

Parameterfestlegung<br />

⋄ Strukturierung (Schemata),<br />

Name, Typ, Wertebereich,<br />

Vorbelegungen<br />

⋄ St<strong>and</strong>ardwerte, Benutzerpräferenzen,<br />

Umgebungsbeschreibung, Stileigenschaften<br />

⋄ Wechselwirkung zwischen<br />

Arbeitsplätzen innerhalb einer Gruppe,<br />

gruppenübergreifend,<br />

Position, Ausrichtung<br />

✛<br />

St<strong>and</strong>ardwerte<br />

❄<br />

⋄ Repräsentationstypen<br />

Fenster, Menü, Gruppe,<br />

Konstantenfelder, Datenfelder,<br />

Operationsauswahl, Liste, Tabelle<br />

⋄ Abb. abstrakter Content-Typen<br />

auf Zielsystem<br />

⋄ globale Festlegungen<br />

⋄ Geometrie<br />

⋄ Konfiguration der Generierung<br />

❄<br />

Anordnung - Layout<br />

⋄ innerhalb einer Gruppe<br />

⋄ gruppenübergreifend<br />

⋄ Priorität<br />

⋄ Anwendungssemantik<br />

⋄ Gestaltungsgesetze<br />

❄<br />

Abbildung 25: Die Vorgehensweise zur Zusammenstellung von Benutzungsoberflächen<br />

fragen. Auf dieser Architektur kann auch die Vorgehensweise zur Generierung von Benutzungsschnittstellen wie in<br />

Bild 25 aufgesetzt werden.


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 668<br />

Der Gestaltungsrahmen soll uns eine allgemeine Beschreibung der Gestaltung erlauben und auch eine automatische<br />

Adaptierung oder Adaption an die Eigenarten der Benutzer, an die technische Umgebung und den Kontext<br />

im allgemeinen gestatten. Es sind bereits eine Vielzahl von Regeln zur Gestaltung von Graphischen Benutzungsoberflächen<br />

bekannt. Diese Regeln werden jedoch selten im Zusammenhang betrachtet. Mit der Spezifikation des<br />

Gestaltungsrahmens wollen wir jedoch auch den Zusammenhang in der Gestaltung betonen und zugleich auch eine<br />

Einheitlichkeit bei der Gestaltung realisieren.<br />

Der Gestaltungsrahmen erlaubt auch eine allgemeine Kategorisierung der Gestaltung und zugleich auch eine<br />

Assoziation mit Metaphern, die als gesamtheitliche Metaphern der gesamten Gestaltung unterlegt werden können.<br />

Wir kommen auf diese Anwendung am Ende des Abschnitt noch einmal zurück.<br />

Zuerst stellen wir unseren Zugang zum Gestaltungsrahmen vor. Der Gestaltungsrahmen ist durch<br />

Playout mit Werkzeugen,<br />

Layout,<br />

Metaphern,<br />

Akteure und<br />

Qualitätsanforderungen<br />

spezifiziert.<br />

Die unterschiedlichen Layoutentscheidungen werden in Monographien zu graphischen Benutzungsschnittstellen ausführlich<br />

beh<strong>and</strong>elt. Für die Spezifikation des Gestaltungsrahmen wollen wir uns allerdings auf generelle Typen von Layoutentscheidungen<br />

konzentrieren. Deshalb wird nicht im Detail diskutiert werden, ob grün oder pastellgrün passende<br />

Farben sind. Die Charakterisierung der Akteure haben wir bereits bei der Spezifikation des Story-Raumes vorgenommen.<br />

Diese Spezifikation wird nun mit den Pr<strong>of</strong>ilen und den Portfolios kombiniert. Die Qualitätsanforderungen<br />

haben wir bereits im Detail eingeführt. Wir werden sie jedoch im weiteren zu Qualitätsvorgaben für die Interfaces<br />

verfeinern.<br />

Die einzelnen Komponenten des Gestaltungsrahmens sind die folgenden:<br />

Werkzeuge zur Gestaltung der Benutzungsoberflächen in den 90er Jahren sind in einer Vielfalt entwickelt worden,<br />

daß eine Übersicht schwerfällt. Zugleich fällt ins Auge, daß fast alle diese Werkzeuge keine große Verbreitung<br />

gefunden haben. Eine Ursache ist sicherlich auch der Hang zur ‘featuritis’.<br />

Die Werkzeugentscheidung sollte sich an einer Klasse von Interfacewerkzeugen orientieren. Mit der Angabe<br />

von Gestaltungsrahmen werden sich auch stärker Typen von Interfacewerkzeugen herausschälen, wenn sich<br />

durch XML allgemeine St<strong>and</strong>ards wie z.B. SVG zur Graphikdarstellung durchsetzen.<br />

Der Typ von Interfacewerkzeugen wird durch eine Darstellung folgender Parameter spezifiziert:<br />

Funktion: Die Werkzeuge können<br />

• einfache Funktionen zur Verfügung stellen z.B. wie HTML mit einer Reihe von Umgebungen,<br />

• komplexe Funktionen bereitstellen, mit denen z.B. auch ein Playout von Simulationen, analoge und<br />

digitale Video- und Audio-Dateien oder Kodierung, Fehlerbeh<strong>and</strong>lung etc. unterstützt werden,<br />

• Kommunikations-, Kooperations- und Koordinationsfunktionen sowie Austauschformate unterstützen,<br />

• Bindungsfunktionen, mit denen <strong>Information</strong>en und Content-Suiten eingebunden werden können, besitzen<br />

und<br />

• Verwaltungsfunktionen zur Verwaltung und Weiterführung von Sitzungen und Arbeitsräumen anbieten.<br />

Aufgabenklasse: Durch die Werkzeuge werden bestimmte Aufgaben unterstützt und ggf. auch nicht unterstützt.<br />

Es sind die Aufgabenklassen zu charakterisieren, die durch die Werkzeuge unterstützt werden.<br />

Paradigma der Darstellung: Die einzelnen Funktionen der Werkzeuge erlauben unterschiedliche Darstellungen<br />

wie z.B. ereignisorientierte, objektorientierte oder zust<strong>and</strong>sorientierte Darstellung der Funktionsabarbeitung.


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 669<br />

Kollaboration: Die Funktionalität der Werkzeuge kann ggf. auch einem Benutzer seinen Schreibtisch, einer<br />

Gruppe einen Arbeitsraum, eine Kollaborationsunterstützung oder auch Arbeitsspeicher bereitstellen. Die<br />

Kollaborationsunterstützung basiert auf einer Architektur zur Unterstützung der Kollaboration. Die Kollaboration<br />

erfordert ggf. auch langlebige Transaktionen und auch das Anlegen von temporären Klassen<br />

sowohl beim Benutzer als auch beim Server. Die Kollaboration kann über unterschiedliche Kanäle erfolgen.<br />

Leistung: Werkzeuge stellen Funktionalität in einer bestimmten Qualität und mit einer bestimmten Kompetenz<br />

zur Verfügung. Die Spezifikation der minimalen Qualitätsanforderungen wie Allgegenwart und<br />

Sicherheit ist mit dem Gestaltungsrahmen vorzugeben.<br />

Layout: Das Benutzungsinterface soll dem Akteur ein einfaches Agieren zur Bewältigung seiner Aufgaben gestatten.<br />

Es kann in allgemeiner Form die Art des Benutzerinterfaces durch einen Layout-Guide vorgegeben werden.<br />

Layout-Guides können sich an die ‘corporate identity’ des Betriebes anlehnen, können unterschiedlichen<br />

Gestaltungsrichtlinien folgen und auch durch entsprechende Regelwerke an den Kontext und die Benutzung<br />

adaptiert werden.<br />

Die Gestaltung von Schnittstellen sollte den oben dargestellten Prinzipien der Ergonomie und der Psychologie<br />

folgen. Dazu gehören auch Prinzipien der visuellen Gestaltung.<br />

Das Layout wird durch eine Spezifikation folgender Parameter vorgegeben:<br />

Metapher: Ein System soll sich dem Benutzer in einer einheitlichen Form präsentieren, wobei die allgemeine<br />

Arbeitsumgebung ebenso wie eine bevorzugte Form der Darstellung mit einbezogen wird. In unserem<br />

Beispiel kann z.B. die Raumplanung mit einer Reiter-Darstellung, die Vorlesungsübersicht durch hierarchische<br />

Strukturen unterstützt werden, die dem Studienplan und der Lehrstuhlübersicht folgen, unterstützt<br />

werden.<br />

Screen-Layout für Funktion und Interaktion: Funktionen und insbesondere Interaktionsfunktionen sind als<br />

besondere Gestaltungselemente durch eine entsprechende Typisierung einheitlich und schnell erkennbar<br />

gestaltet.<br />

Umsetzung der Prinzipien der (visuellen) Wahrnehmung: Schnittstellen sollen einfach , leicht zu überschauen<br />

und auch so zu bedienen sein, daß die Übersicht nicht verloren geht. Dazu sind Parameter der<br />

visuellen Wahrnehmung wie Ordnung und insbesondere Hierarchie, Wirkung auf bestimmte Akteure und<br />

auch der Schrittfolge durch eine entsprechende Struktur zu unterstützen. Daraus kann sowohl die vertikale<br />

als auch funktionale Navigation abgeleitet werden.<br />

Da auch multimediale Elemente eingebracht werden können spielt neben der visuellen Kommunikation<br />

auch die audio-basierte Kommunikation sowie auch <strong>and</strong>ere Arten eine Rolle. Insbesondere für barrierefreie<br />

Systeme wird auf die <strong>and</strong>eren Kommunikationsmöglichkeiten zurückgegriffen.<br />

Umsetzung der Prinzipien der (visuellen) Kollaboration: Die unterschiedlichen Facetten der Kollaboration<br />

werden durch einen generellen Rahmen der Szenen, durch eine Abfolge der Szenen und durch didaktische<br />

Regeln bei der Erschließung des Story-Raumes allgemein dargestellt. Didaktische Regeln fassen<br />

sowohl die Redundanz der Kollaboration als auch die Erwartungskonformität.<br />

Ebenso wie für die Realisierung von Barrierefreiheit eine Unterstützung durch nicht-visuelle Kommunikation<br />

erforderlich.<br />

Berücksichtigung der Gestaltungsgesetze des Bildschirmes: Ein Bildschirm ist eine zweidimensionale<br />

Oberfläche, mit dem evt. auch dreidimensionale Effekte erzielt werden können. Die Gestaltung der Bildschirmoberfläche<br />

muß Gestaltungsprinzipien wie<br />

• dem Prinzip der visuellen Kollaboration in Abhängigkeit von den Arbeitsaufgaben, der Story und<br />

der Einfachkeit der Vermittlung,<br />

• dem Prinzip der visuellen Wahrnehmung basierend auf einer Abstimmung von Anordnung, Wirkung<br />

und Gliederung und<br />

• dem Prinzip der visuellen Gestaltung unter Berücksichtigung der Optik, der Ähnlichkeit, der Geschlossenheit,<br />

der Symmetrie, der Prägnanz und des Aufnahmeflusses<br />

angemessen berücksichtigen.


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 670<br />

Akteure sind Gruppen von Benutzern. Die generelle Spezifikation der Akteure wurde bereits in diesem Kapitel<br />

dargestellt. Für den Gestaltungsrahmen nehmen wir eine Kategorisierung der Akteure vor nach<br />

Einordnung in Zielgruppen,<br />

Polaritäten-Pr<strong>of</strong>il, insbesondere das psychographischen Pr<strong>of</strong>il und nach<br />

Adaption an<br />

Pr<strong>of</strong>il,<br />

Portfolio und<br />

Benutzungsgeschichte etc. vor.<br />

Es werden außerdem die Erwartungshaltung, die allgemeinen Gruppeneigenschaften, der Bildungs- und<br />

Arbeitshintergrund klassifiziert.<br />

Qualitätsvorgaben: <strong>Information</strong>ssysteme sollen sich durch eine hohe Benutzbarkeit auszeichnen. Benutzbarkeit<br />

kann man auf Qualitätsanforderungen abbilden:<br />

Verständlichkeit: Es sind alle Funktionen, die Navigation und Aufforderungen unmißverständlich für einen<br />

Benutzer.<br />

Einfachheit Das System ist einfach gehalten. Das System lenkt nicht von der Lösung von Aufgaben ab.<br />

Erlernbarkeit: Es soll einem Benutzer, der das System das erste Mal benutzt, und einem Benutzer, der das<br />

System nach längerer Pause wieder benutzt, ein einfacher Einstieg in die Benutzung des Systemes ohne<br />

hohen Lernaufw<strong>and</strong> möglich sein.<br />

Diese Anforderungen kann man auf Merkmale des Systemes abbilden:<br />

Erscheinungsform des Interfaces: Das Interface ist einfach, nicht überladen, besitzt ein ansprechendes Layout<br />

und eine akteurbezogene Inhaltsgestaltung.<br />

Durchschaubarkeit des Story-Raumes: Der Story-Raum wird so optimiert, daß ein Benutzer seine Aufgaben<br />

mit dem einfachsten Szenarium bewältigen kann. Hilfreich ist hierbei eine angemessene Navigation<br />

im Story-Raum.<br />

Les- und Browsbarkeit des Content: Der Content soll in einer Form präsentiert werden, die sowohl das Lesen,<br />

als auch das schnelle Durchmustern erlaubt, die keine Sprachbarrieren aufbaut (weder fremdsprachig<br />

noch von der Umgangssprache her) und die sprachlich einfach ist.<br />

Vertrautheit und Nutzbarkeit: Ein Benutzer soll die Form der Benutzung und insbesondere die Szenario<br />

nicht erst erlernen, sondern sollte aufgrund seiner Erfahrungen das System einfach h<strong>and</strong>haben, einfach<br />

erlernen und schnell die Arbeit an beliebiger Unterbrechungsstelle wieder aufnehmen können.<br />

Diese Merkmale können mit entsprechenden Metriken unterlegt werden.<br />

Diese Forderungen wurden in der Cottbuser Arbeitsgruppe unter dem Begriff “omasicher” zusammengefaßt.<br />

• Ein <strong>Information</strong>ssystem sollte ohne zusätzliche Ausbildung, in einfacher Art, aufgrund von <strong>of</strong>fensichtlichen<br />

Optionen, für jedermann, innerhalb des Erwartungshorizontes des Benutzers, mit kontextsensitiver<br />

Hilfe, mit entsprechender Wortwahl, mit einfachen Dialogen und Teilaufgaben benutzt werden können.<br />

• Es sollte stets der aktuelle, von Benutzer auch real angeforderte Inhalt in dem Moment präsentiert werden,<br />

in dem ihn der Benutzer auch benötigt.<br />

• Es sollten dem Benutzer keine nicht nachvollziehbaren Wartezeiten zugemutet werden.<br />

• Das System sollte einfach benutzbar sein, Fehler des Benutzers tolerieren, solange diese aufgelöst werden<br />

können und von hoher Benutzbarkeit sein.<br />

Wir fassen diese vier Forderungen unter dem Stichwort HOME zusammen:<br />

High quality content,<br />

Often updated,<br />

Minimal download time und<br />

Ease <strong>of</strong> use.


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 671<br />

6.7.1 Die Dimensionen des Gestaltungsrahmens<br />

Wir können den Gestaltungsrahmen um weitere Perspektiven erweitern und zugleich die obigen Betrachtungen systematisieren.<br />

Der Gestaltungsrahmen kann mit sechs Dimensionen separiert werden:<br />

<strong>Information</strong><br />

Story<br />

Metaphern<br />

zur <strong>Information</strong>sdarstellung<br />

◆<br />

Content<br />

❖<br />

✒<br />

✯<br />

❯<br />

Daten<br />

❨<br />

❥<br />

❥ ✙<br />

Repräsentation<br />

der Daten<br />

✕<br />

Benutzer<br />

✻<br />

❄<br />

✙<br />

❥ ✙<br />

Repräsentation<br />

der Prozesse<br />

Technische Umgebung des Benutzers<br />

✯<br />

❨<br />

☛<br />

Prozesse<br />

✯<br />

❨<br />

❑<br />

❨<br />

✌<br />

Funktionalität<br />

✗<br />

Metaphern<br />

zur Story-<br />

Darstellung<br />

und Funktionalitätsunterstützung<br />

Layout<br />

Nutzungsraum<br />

Playout<br />

Abbildung 26: Dimensionen des Gestaltungsrahmens<br />

In der Dimension des Benutzers wird der Benutzer entweder als Akteur charakterisiert oder mit seinem Pr<strong>of</strong>il und<br />

Portfolio angegeben. Einbezogen wird das Polaritätenpr<strong>of</strong>il. Ableitbar ist dann die Zielgruppe und die erforderliche<br />

Anpassung.<br />

In der Dimension der Daten werden die erforderlichen Sichten betrachtet.<br />

In der Dimension der Datenrepräsentation werden Parameter zur Gestaltung der Oberflächen wirksam wie<br />

• Form und Farbe,<br />

• Kontrast und Rhythmus und<br />

• Struktur und Komposition<br />

eingesetzt.<br />

In der Dimension der Prozesse werden die Abläufe der Story betrachtet.<br />

In der Dimension des Prozeßrepräsentation werden die entsprechenden Implementationen der Stories dargestellt.<br />

In der Dimension der technischen Umgebung des Benutzers werden die Potentiale der Verbindung, der Technik<br />

des Benutzers und der Server-Technik dargestellt. Diese Potentiale erlauben Effekte oder schränken diese stark<br />

ein.<br />

Diese Gestaltungsdimensionen können auch in kombinierter Art und Weise zur Gestaltung herangezogen werden:<br />

In den kombinierten Dimensionen Benutzer-Daten-Datenrepräsentation werden Metaphern zur <strong>Information</strong>sdarstellung,<br />

mit denen ein Bezug auf die Benutzerwelten und die das Verständnis der Daten auf die Benutzer<br />

darstellen, eingesetzt.<br />

In den kombinierten Dimensionen der Benutzer-Prozeß-Repräsentation werden Metaphern der Bewegung wirksam.


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 672<br />

In der kombinierten Dimension der Daten-Benutzer-Welt wird der <strong>Information</strong>sgehalt, der Wert der <strong>Information</strong><br />

und die Benutzbarkeit der <strong>Information</strong> dargestellt.<br />

In der kombinierten Dimension der Daten-Datenrepräsentation spielt die Bereitstellung der Daten als Content<br />

eine Rolle.<br />

In der kombinierten Dimension der Prozesse-Prozeßrepräsentation wird aus der erforderlichen Funktionalität<br />

abgeleitet, welche gestalterischen Mittel erforderlich werden.<br />

In der kombinierten Dimension der Prozeßrepräsentation-Umgebung wird das Playout abgeleitet. Es orientiert<br />

sich an<br />

• dem Anliegen der Darstellung und setzt Anforderungen der Darstellung der Prozesse um,<br />

• der Story selbst und<br />

• den technischen Möglichkeiten, die durch die Umgebung gegeben sind.<br />

In der kombinierten Dimension der Datenrepräsentation-Umgebung wird aus den zur Verfügung stehenden <strong>Information</strong>en<br />

das Layout abgeleitet. Es orientiert sich an<br />

• der Art des Content,<br />

• dem Inhalt des Content und<br />

• dem Anliegen der Benutzung<br />

• sowie den technischen Möglichkeiten der Umgebung.<br />

In der kombinierten Dimension der Benutzer-Prozesse wird die Story benutzt, um die Layout- und die Playout-<br />

Gestaltung abzuleiten.<br />

Parallel zu den Dimensionen kann der Grad der Ausprägung bestimmt werden, mit dem Kategorien wie<br />

• kraftvolle Gestaltung,<br />

• angereicherte (wertebasierte) Gestaltung,<br />

• erweiterte Gestaltung um Aspekte von<br />

• Verspieltheit (Romantik, Leidenschaft),<br />

• Kreativität mit einer Neuheit und überraschenden Effekten,<br />

• erfrischende Gestaltung mit Momenten einer Leichtigkeit und Transparenz,<br />

• Beruhigung durch Momente der Harmonie und der Ausgegleichenheit und<br />

• Anregung durch exotische und magische Elemente,<br />

• natürliche Gestaltung mit einem Bezug auf das Umfeld des Benutzers und<br />

• dynamische Gestaltung mit einer internen Bewegung und Spannung<br />

benutzt werden, um eine Verstärkung oder Abschwächung zu erreichen.<br />

Der Gestaltungsrahmen orientiert sich deshalb zentral auf<br />

das Layout der Daten unter Berücksichtigung der technischen Möglichkeiten,<br />

das Playout der Prozesse unter Berücksichtigung der technischen Umgebung des Benutzers,<br />

Metaphern zur <strong>Information</strong>sdarstellung und<br />

Metaphern zur Story-Darstellung und Funktionsunterstützung


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 673<br />

und mittelbar auf<br />

die Repräsentation der Daten und<br />

die Repräsentation der Prozesse wie z.B. die Orientierung im Nutzungsraum auf der Grundlage von<br />

Feedback,<br />

mentalen Modellen,<br />

Metaphern zur Orientierung und<br />

Gestaltungsrastern<br />

und der Nutzungsdramaturgie der Interaktivität<br />

durch Verfeinerung der Repräsentationen, d.h. durch Unterlegung der Repräsentation mit gestalterischen Mitteln.<br />

Layout und Playout können zum Nutzungsraum zusammengefaßt werden.<br />

Die Spezifikation des Gestaltungsrahmens wird somit durch folgende Spezifikation unterstützt:<br />

• Beschreibung der Benutzer, der Akteure, der Benutzergruppen,<br />

• Spezifikation der Story,<br />

• Spezifikation der Prozesse,<br />

• Spezifikation des Content,<br />

• Spezifikation der Repräsentation der Daten,<br />

• Spezifikation der Repräsentation der Prozesse und<br />

• Angaben zur technischen Umgebung des Benutzers.<br />

Der Gestaltungsrahmen legt die Gestaltungsgrundlagen fest. Dabei werden<br />

• Prinzipien der visuellen Kollaboration,<br />

• Prinzipien der visuellen Wahrnehmung und<br />

• Prinzipien der visuellen Gestaltung<br />

für die konkrete Aufgabe verfeinert.<br />

Dazu werden Gestaltungslemente und Gestaltungsmittel eingesetzt.<br />

6.7.2 Die Umsetzung des Gestaltungsrahmens<br />

Wir erhalten eine Charakterisierung des Gestaltungsrahmens in tabellarischer Form:<br />

Aufgabe<br />

Playout Layout Metapher Akteure Qualität<br />

Dar-<br />

Kol-<br />

Funktionenehmunischirgruppritätion<br />

Wahr-<br />

Kom-<br />

Bild-<br />

Ziel-<br />

Pola-<br />

Adapstellunratiomunlabokation<br />

Funktion<br />

der<br />

<strong>Information</strong><br />

der<br />

Funktionalität<br />

... ... ... ... ... ... ... ... ... ... ... ... ... ...<br />

In dieser Tabelle führen wir die <strong>Information</strong> zum Akteur zur direkten Assoziation mit. Sie dient eher der direkten<br />

Bezugnahme und bestimmt nicht den Gestaltungsrahmen. Die Qualitätsparameter dienen der Kontrolle.


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 674<br />

Dieser Gestaltungsrahmen kann dann den Arbeitsoberflächen im speziellen oder dem Präsentationsraum im allgemeinen<br />

zugeordnet werden.<br />

Wie bereits betont, kann dieser Gestaltungsrahmen verwendet werden, um Metaphern zu gewinnen. Die Spezifikation<br />

von Metaphern kann mit folgenden Metaphorikrahmen erfolgen:<br />

Name der Metapher;<br />

Die Darstellung der Eigenschaften assoziiert Eigenschaften der Metapher mit dem Anwendungsgebiet. Die Intensität<br />

und die Dominanz der Eigenschaften kann mit erfaßt werden.<br />

Klasse der Metapher (personalisierte, allegorische, symbolische).<br />

Bedeutung für unterschiedliche Benutzergruppen in unterschiedlichen kulturellen Kontexten.<br />

Repräsentation der Metapher durch entsprechende Formen und Farben, Kontrast und Rhythmus, Struktur und<br />

Komposition.<br />

Die Zuordnung von Metaphern zum Gestaltungsrahmen und zu den Content-Suiten sowie zur Funktionalität erfolgt<br />

explizit<br />

durch Angabe der Suiten (Content-Suiten, Funktionen, Container, Akteure),<br />

durch Angabe der Metapher-Einbettung mit den Parametern für<br />

die Funktion der Metapher in der Suite,<br />

die Anwendbarkeit der Metapher im Gestaltungsrahmen z.B. als Vollseiten-, Teilseiten-, Beiwerk-Metapher,<br />

das Ursprungsgebiet der Metapher,<br />

die Abstraktionsrichtung<br />

(Generalisierung/Spezialisierung),<br />

die Richtung (vom Lebewesen zum Gegenst<strong>and</strong>, vom Gegenst<strong>and</strong> zum Lebewesen),<br />

dem beabsichtigten Effekt (prädikativ oder überzeugend; attributiv, genitiv, kompositional, Apposition) und<br />

die Repräsentationsform als Auswahl unter den verschiedenen möglichen Repräsentationsformen der Metapher,<br />

sowie<br />

durch Angabe der Intention der Metapher mit Parametern für<br />

den Kontext (Intention für Akteur, Erwartungen des Akteurs, Co-Notationen (soziale und emotionale)),<br />

der Funktion (intern, prädikativ, heuristisch, emotional, sozial, rhetorisch, ästhetisch) und<br />

dem Typus der Metapher (konventionell, kreativ, Ex-Metapher, Re-Metapher).<br />

Wir können wiederum anstelle einer Tabelle Arbeitsblätter zur Darstellung der Metaphern verwenden.<br />

Der Gestaltungsrahmen wird außerdem durch eine Spezifikation der<br />

Betonung,<br />

Dominanz,<br />

Transparenz und der<br />

Kontrastierung<br />

ergänzt. Mit dieser Darstellung können wir auch die Akzeptanz, die Wahrnehmung, die Aufnahme des Inhaltes, seine<br />

Verarbeitung und die Stimmung beeinflussen.<br />

Diese Spezifikation kann auch als Interface-Polaritätenpr<strong>of</strong>il mit einer ordinalen Bewertungsskala zur Darstellung<br />

der Ausgeprägtheit der Eigenschaften erstellt werden.


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 675<br />

6.8 Perspektiven der Mensch-Computer-Interaktion<br />

Traditionell werden vier verschiedene Perspektiven der Interaktion unterschieden:<br />

Maschinenperspektive: Der Computer wird bei den Betrachtungen in den Mittelpunkt gestellt. Der Mensch wird als<br />

Maschinenbediener wahrgenommen.<br />

Systemperspektive: Mensch und Computer werden als gleichberechtigte Partner eines Systemes aufgefaßt.<br />

Kommunikationsperspektive: Programme und Benutzer unterhalten sich gleichberechtigt in einer Dialogsprache.<br />

Werkzeugperspektive: Der Computer unterstützt den Benutzer bei der Erfüllung seiner Aufgaben.<br />

Auf der Grundlage dieser Perspektiven können wir vier Methoden zur Entwicklung von Oberflächen ableiten:<br />

Die empirische Methode orientiert sich an den aktuellen Herangehensweisen, verallgemeinert diese und gestattet<br />

die Entwicklung in einem trial-<strong>and</strong>-error-Prozeß.<br />

Die kognitive Methode untersucht zuerst das Verhalten des Menschen, ergründet sein mentales Modell und nutzt<br />

diese Erkenntnisse zur Entwicklung von benutzungsfreundlichen und intuitiv verständlichen Oberflächen.<br />

Die prediktive (funktionsorientierte) Methode leitet aus den Zielen der Anwendung, den Aufgaben und den technischen<br />

Möglichkeiten eine Lösung für die Gestaltung des Arbeitsprozesses und der entsprechenden Oberflächen<br />

ab.<br />

Die anthropomorphe Methode bildet die Kommunikation von Mensch und Maschine in Form von Dialogen, Dialogobjekten<br />

und Oberflächen nach.<br />

Meist wird eine Kombination dieser Methoden gewählt. Eine bevorzugte Variante ist die Kombination der prediktiven<br />

und der anthropomorphen Methoden.<br />

Aus diesen Perspektiven sind zwei grundsätzliche Zugänge zur Gestaltung von Oberflächen ableitbar:<br />

Der konstruktive Ingenieurzugang orientiert sich an den Entwicklern und den vorh<strong>and</strong>enen technischen Möglichkeiten<br />

und damit an der Maschinenperspektive. Systeme dieser Bauart können einfach und elegant, einfacher<br />

auch durch den Benutzer zu pflegen und für den eingearbeiteten Benutzer auch durchschaubar sein.<br />

Der Benutzer-Aufgaben-Zugang beruht auf eine Kombination der Werkzeug-, Kommunikations- und der Systemperspektive.<br />

Ausgehend von einem Aufgabenmodell und einem Interaktionsmodell wird der Computer zum<br />

Partner bei der Lösung einer Arbeitsaufgabe. Die einzelnen Arbeitsschritte werden in Oberflächen nachgebildet.<br />

Der Vorteil dieses Zugangs ist die leichte Erlernbarkeit. Von Nachteil ist die Fixierung auf den aktuellen<br />

Zust<strong>and</strong> des Arbeitsprozesses, der u.U. auch von bislang benutzten, nicht adäquaten Werkzeugen und deren<br />

Funktionalität geprägt ist.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 676<br />

6.9 Stories auf der Benutzungsschicht<br />

6.9.1 Szene als Grundkonstrukt<br />

6.9.2 Pragmatics <strong>of</strong> Storyboarding<br />

• Usage analysis:<br />

• Life Cases: How the stories match the users’ intentions <strong>and</strong> expectations<br />

• User Models: Which user/actor pr<strong>of</strong>iles <strong>and</strong> portfolios have to be considered<br />

• Contexts: Everything that surrounds <strong>and</strong> thus impacts on a utilisation situation<br />

• WIS portfolio:<br />

• content <strong>and</strong> utilisation chunks<br />

• Starting point: <strong>Analysis</strong> <strong>of</strong> intentions<br />

• Intentions are coarsely formulated as part <strong>of</strong> a strategic WIS model (mission, purpose, goals)<br />

• Utilisation scenarios are developed on the basis <strong>of</strong> intentions<br />

• Therefore, address the description <strong>of</strong> intentions:<br />

• Clear underst<strong>and</strong>ing <strong>of</strong> aims <strong>and</strong> targets <strong>of</strong> the WIS<br />

• This includes long-range <strong>and</strong> short-term targets, expected visitors, characteristics <strong>of</strong> this audience,<br />

tasks performed by the users, necessary <strong>and</strong> nice-to-have content, restrictions <strong>of</strong> usage, etc.<br />

Capturing Intention through Life Cases.<br />

• <strong>Analysis</strong> <strong>of</strong> intentions structures the WIS: actors <strong>and</strong> tasks become apparent<br />

• Life cases shed more light into the tasks <strong>and</strong> the way they are to be executed<br />

• Life cases give rise to the development <strong>of</strong> task scenarios<br />

• Life cases focus on observations in real life situations, thus takes a user-centered approach that goes beyond<br />

task analysis<br />

• This will help identifying <strong>and</strong> resolving conflicting or competing intentions, before abstracting <strong>and</strong> mapping<br />

life cases to scenarios<br />

Characterisation <strong>of</strong> Life Cases.<br />

• Observations:<br />

• collect <strong>and</strong> assess behaviour relating to the specific application<br />

• include a background check that relates usage to intentions, goals or tasks<br />

• Processes:<br />

• arrange all the actions observed in an application into a main logical <strong>and</strong> coherent pattern<br />

• this may involve exceptions through exceptions <strong>and</strong> parallel execution <strong>of</strong> independent actions<br />

• Assessment:<br />

• reconstruct the sequence <strong>of</strong> actions <strong>and</strong> specific behaviour <strong>of</strong> users<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 677<br />

• underst<strong>and</strong> the role each individual has within the story<br />

• develop the user pr<strong>of</strong>ile<br />

• Individual pr<strong>of</strong>iles:<br />

• clarify background including physical, <strong>and</strong> behavioural characteristics <strong>of</strong> individuals<br />

• Interpersonal coherence:<br />

• a variation in the activity will relate to variations <strong>of</strong> other life cases<br />

• Significance <strong>of</strong> time <strong>and</strong> place:<br />

• choices depend on mobility, surrounding, <strong>and</strong> schedules <strong>of</strong> events <strong>of</strong> interest<br />

• Experience <strong>and</strong> skills:<br />

• individuals may show different behavioural patterns <strong>of</strong> service employment<br />

Capturing Intention through Life Cases.<br />

Modelling <strong>of</strong> normal succeeding behaviour<br />

Search by analogy<br />

❥<br />

Disselection<br />

on options<br />

❑<br />

No<br />

further<br />

options<br />

❥Knowledge about<br />

problems<br />

❯<br />

Survey<br />

on choices<br />

❑<br />

❨<br />

❥<br />

Sample<br />

cases<br />

2❨<br />

❑<br />

❥<br />

Similar<br />

cases<br />

3<br />

Background<br />

knowledge<br />

✿<br />

❯ 3 ✾<br />

Succesfull<br />

Approaches<br />

cases<br />

Abbildung 27: One <strong>of</strong> the scenes for active learning in the DaMiT system<br />

Mapping users behaviour with all possible options<br />

Intelligent support by knowledge structures<br />

Adaptation to users pr<strong>of</strong>ile <strong>and</strong> portfolio<br />

Logistics for content<br />

Integration <strong>of</strong> the Description <strong>of</strong> the Application Domain.<br />

Life <strong>and</strong> application cases<br />

Mapping Life Cases to Business Use Cases.<br />

Application domain<br />

• is characterised by the life case that characterises typical application situations for groups <strong>of</strong> users (actors)<br />

within a context,<br />

• can be used to derive business use cases depending on the task portfolio <strong>and</strong> on the story under consideration,<br />

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

• is described through narrative descriptions based on word fields.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 678<br />

from<br />

pro<strong>of</strong> <strong>of</strong> moving out<br />

address<br />

to<br />

pro<strong>of</strong> <strong>of</strong> moving in<br />

citzen <strong>of</strong>fice<br />

town clerk`s <strong>of</strong>fice<br />

issuer<br />

passport<br />

factory inspectorate<br />

public authorities<br />

civil servant<br />

contracters<br />

documentation agency<br />

agencies<br />

basic changes<br />

associated documents<br />

income tax card<br />

special names<br />

pseudonyms<br />

fratemity<br />

TV/radio<br />

ministery<br />

tax <strong>of</strong>fice<br />

statistics agenca<br />

police<br />

aliens department<br />

automated contracting<br />

directory companies<br />

data protection <strong>of</strong>ficial<br />

<strong>of</strong>ficial bodies<br />

companies<br />

special support<br />

recipients<br />

actors<br />

necessary documents<br />

passport<br />

identification<br />

certificaters<br />

pro<strong>of</strong>s<br />

birth certificate<br />

degrees<br />

certificate <strong>of</strong> authority<br />

special documents<br />

for authorizing others<br />

pension approval certificate<br />

employment documents<br />

schools<br />

religious organizations<br />

parties<br />

support <strong>of</strong> organization<br />

relocation<br />

citizenship<br />

marriage certificate<br />

driving licence<br />

child identification card<br />

tax<br />

partners<br />

potential changes<br />

address<br />

housing benefit<br />

house owner benefit<br />

housing allowance<br />

housing programme<br />

social support<br />

children<br />

potential changes<br />

address<br />

school<br />

housing eligibility<br />

associated parties<br />

pets<br />

pet tax<br />

pets registration<br />

insurance agencies<br />

health insurance<br />

tv/radio<br />

house number<br />

special parking permission<br />

move life case<br />

forwarding period<br />

forwarding mail<br />

forwarding address<br />

insurance<br />

bank<br />

contracting<br />

collect charges<br />

house registration application for registration<br />

associated life cases<br />

ownership<br />

car<br />

housing<br />

supply<br />

employment<br />

vehicle documents<br />

parking card<br />

special<br />

special contracts<br />

energy,gas<br />

water,sewage<br />

phone<br />

employer<br />

employment <strong>of</strong>fice<br />

documents from h<strong>and</strong>icaped<br />

private people<br />

parties, organisation<br />

registration<br />

directory<br />

accepted restrictions<br />

overruled restrictions<br />

obligation <strong>of</strong> secrecy<br />

disclosure<br />

provided reasons<br />

restrictions<br />

special/exceptional<br />

foreign resident<br />

foreign temporary<br />

second home additional taxation rent level<br />

Life cases<br />

Actor ✲ ✛ Environment<br />

✙<br />

❥<br />

Persona<br />

Platform<br />

✾<br />

❄<br />

3<br />

Stories ✛ ✲ Business ✛ ✲<br />

use cases<br />

Portfolio<br />

Bundling in<br />

❄<br />

Narrations<br />

Actions<br />

Content<br />

❄✾<br />

Substantive<br />

word fields<br />

Content<br />

Tasks<br />

3❄<br />

Verb<br />

word fields<br />

Abbildung 28: The natural language representation <strong>of</strong> application domain elements<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 679<br />

Stories Business use cases Portfolio<br />

Requirements<br />

prescription<br />

✾❄<br />

Storyboard<br />

3❄✾<br />

3❄<br />

Non-functional<br />

requirements<br />

Functional<br />

requirements<br />

Abbildung 29: The use <strong>of</strong> application domain information for requirements elicitation <strong>and</strong> analysis<br />

Mapping the Business Use Cases to Requirements.<br />

The application domain description can be used to deduct<br />

the requirements prescription<br />

• through functional requirement,<br />

• through non-functional requirements, <strong>and</strong> additionally<br />

• through the storyboard <strong>of</strong> the application.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 680<br />

6.10 Szenenraum als konzeptionelle Wiederspegelung<br />

6.10.1 Dialogschritt als Grundkonstrukt<br />

6.10.2 Screenography<br />

intention<br />

context<br />

The description <strong>of</strong> the kind<br />

or the specification<br />

<strong>of</strong> the general<br />

grid or pattern<br />

storyboard<br />

content<br />

functionality<br />

Abbildung 30: The screenography pentagon for associations to other WIS dimensions<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 681<br />

6.11 Präsentationsraum auf der Implementationssschicht<br />

Arbeitsoberfläche als Grundkonstrukt.<br />

Interaktionsraum mit SiteLang<br />

Benutzer- und Akteursmodelle, -portfolio und -pr<strong>of</strong>ile<br />

Kontextraum, Kollaborationsrahmen<br />

Gestaltungsrahmen, Gestaltungsmuster<br />

6.12 Richtlinien für gute SiteLang-Spezifikationen<br />

• The structure <strong>of</strong> the sentences <strong>and</strong> to describe use cases in a textual form should be simple.<br />

• Always make clear which actors are involved in an action.<br />

• Only include conditions (with alternative branches) if it really necessary.<br />

• For exceptional cases, always make clear the condition under which the exceptional case occur.<br />

• All use cases should be written in such a way that the user can underst<strong>and</strong> them.<br />

• Use strong verbs in use case names.<br />

• Try to write scenarios, not requirements.<br />

• Don’t write too tersely.<br />

• Don’t write in a passive voice.<br />

• Avoid synonyms <strong>and</strong> homonyms.<br />

• You should mention your assumption explicitly when some action is carried out under certain conditions.<br />

• You should mention the condition for stopping repeated actions explicitly.<br />

• You should mention the co-occurrence <strong>of</strong> several actions explicitly.<br />

• Avoid the use <strong>of</strong> negations, adverbs, <strong>and</strong> modal verbs in the description <strong>of</strong> an action.<br />

Richtlinien für Qualitätsmanagement von SiteLang-Spezifikationen.<br />

Richtlinien für Prozeßmanagement von SiteLang-Spezifikationen.<br />

Richtlinien für Darstellung von SiteLang-Spezifikationen.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 682<br />

6.13 Darstellung durch UML-Konstrukte<br />

Use-Case-Diagramme.<br />

Akteure<br />

Use Case mit include- und extend-Hierarchien<br />

Activity-Diagramme.<br />

als Verallgemeinerung von Ereignis-Diagrammen, SDL, Zust<strong>and</strong>smodellierungstechniken und Petri-Netzen<br />

mit Synchronisationspunkten in AND-AND-Semantik<br />

mit Knoten zur Darstellung von Aktivitäten<br />

mit Bedingungen an Überführungskanten<br />

Statechart-Diagramme in der UML-Interpreation.<br />

Warum dann SiteLang anstatt von UML.<br />

Lifelines sind eine <strong>and</strong>ere Sicht auf Durchläufe, parallele Ausführung wird implizit dargestellt<br />

Beispiel Fujaba: join <strong>of</strong> adapted UML class diagrams, UML activity diagrams <strong>and</strong> collaboration diagrams<br />

• Damit Abbildungsprobleme statt wie bei SiteLang nur Overlay-Formen<br />

• Stets nur Sichtweise dargestellt, Integration erfolgt implizit über Namen<br />

• Zu stark an Java orientiert (THIS)<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 683<br />

6.14 Ein Beispiel: Zielgruppenorientierte Portalseiten<br />

c○Thomas Voigt, BTU Cottbus<br />

1. Zielsetzung.<br />

Der Online-Auftritt der BTU Cottbus soll um drei zielgruppenorientierte Portalseiten ergänzt werden. Auf diesen Portalseiten sind stets aktuelle<br />

<strong>Information</strong>en abrufbar. Es wird zwischen Meldungen, Terminen und Veranstaltungen nach Art ihrer Darstellung unterschieden. Auf<br />

nachgeordneten Seiten finden sich ein Veranstaltungskalender und ein durchsuchbares Archiv. Alle <strong>Information</strong>en sollen in einer zentralen<br />

Datenbank bereitgehalten werden.<br />

2. Produkteinsatz.<br />

2.1. Anwendungsbereiche.<br />

Das System soll auf den Webservern der BTU Cottbus (Rechenzentrum) eingesetzt werden. Die Beiträge sollen von verschiedenen Stellen aus<br />

erstellt, jedoch zentral gehalten werden. 2.2. Zielgruppen.<br />

Ein erstes Portal soll externe Besucher und Studieninteressenten mit aktuellen <strong>Information</strong>en und einer angepaßten Navigation versorgen. Ein<br />

zweites Portal soll auf die Interessen der Cottbuser Studenten zugeschnitten werden. Ein drittes Portal, speziell für Mitarbeiter der Universität,<br />

soll nur intern erreichbar sein. Die Betreuung der Beiträge soll hierarchisch organisiert sein. Zugelassene Redakteure schreiben Beiträge, die<br />

von den zuständigen Rubrikbetreuern freigegeben werden müssen. Die Portalbetreuer entscheiden anschließend, welche der Beiträge bereits<br />

auf einer Portalseite verlinkt werden.<br />

3. Anwendungsfälle.<br />

3.1. Rollen und Akteure.<br />

WWW-extern.<br />

WWW-extern umfaßt alle Nutzer, die sich nicht am System angemeldet haben und deren Anfrage nicht aus dem Netz der Universität stammt.<br />

WWW-extern hat die geringsten Rechte: Er kann nur Beiträge lesen, die für die externe Nutzung freigegeben wurden. WWW-intern.<br />

Alle Nutzer, deren Anfragen aus dem Adreßbereich der BTU stammen (Mitarbeiter der Universität). WWW-intern muß sich nicht anmelden<br />

und hat alle Rechte von WWW-extern, darf aber zusätzlich Beiträge einsehen, die nur für die interne Verwertung freigegeben wurden.<br />

Redakteur.<br />

Redakteure können selbst Beiträge erstellen und eigene Beiträge bearbeiten. Dazu müssen sie sich am System mit ihrem Namen und einem Paßwort<br />

anmelden. Ein neuer Beitrag muß vom zugehörigen Rubrikbetreuer bestätigt werden, bevor er öffentlich einsehbar ist. Rubrikbetreuer.<br />

Rubrikbetreuer haben alle Rechte eines Redakteurs und verwalten jeweils eine oder mehrere Rubriken. Sie entscheiden, ob ein Beitrag eines<br />

Redakteurs in ihrer Rubrik für die Öffentlichkeit freigegeben wird. Freigegebene Beiträge sind danach s<strong>of</strong>ort auf den Webseiten abrufbar.<br />

Rubrikbetreuer dürfen zusätzlich zu ihren eigenen alle fremden Beiträge in ihrer Rubrik bearbeiten (kürzen, abändern usw.). In nicht von ihnen<br />

betreuten Rubriken werden sie wie Redakteure beh<strong>and</strong>elt. Einige (vom Portalbetreuer zugelassene) Rubrikbetreuer dürfen auch selbst neue<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 684<br />

Redakteure bestimmen. Portalbetreuer.<br />

Der Portalbetreuer ist die höchste Instanz des <strong>Systems</strong>. Er erbt alle Rechte des Rubrikbetreuers, darf neue Rubriken anlegen und die zugehörigen<br />

Rubrikbetreuer bestimmen. Der Portalbetreuer entscheidet über das Erscheinungsbild der Portal-Seiten (welche der freigegebenen Beiträge<br />

wann auch auf der ersten Seite erscheinen und welcher Beitrag zum Aufmacher wird).<br />

3.2. Szenen.<br />

Anmelden.<br />

Vor jeglicher aktiver Benutzung des <strong>Systems</strong> müssen sich privilegierte Anwender mit Namen und Paßwort anmelden. Eine erfolgreiche Anmeldung<br />

bleibt für einen bestimmten Zeitraum aktiv (Sitzung).<br />

Beteiligte Akteure: Protalbetreuer, Rubrikbetreuer, Redakteur<br />

Vorbedingungen: keine<br />

Nachbedingungen: Dem Benutzer wird eine Rolle mit zugehörigen Privilegien zugewiesen. Eine Sitzung (Session) wird angelegt. Solange die<br />

Sitzung gültig ist muß der Anwender sich nicht bei jeder Aktion erneut anmelden. Der Anwender wird auf eine seiner Rolle entsprechende<br />

Seite weitergeleitet.<br />

Ausnahmefälle: Bei fehlgeschlagender Anmeldung wird dem Nutzer automatisch die Rolle WWWextern bzw. WWW-intern zugeordnet (ohne<br />

Sitzung).<br />

Externe Beiträge lesen.<br />

Beiträge (Meldungen, Termine, Veranstaltungen, Veranstaltungskalender) auf einer der Portalseiten (oder nachgeschaltete) werden von einem<br />

Anwender gelesen.<br />

Beteiligte Akteure: alle<br />

Vorbedingungen: keine<br />

Nachbedingungen: keine<br />

Ausnahmefälle: Es liegen keine aktuellen Beiträge vor. In diesem Fall gibt das System eine entsprechende Meldung aus. Interne Beiträge<br />

lesen.<br />

Anwender aus dem lokalen Netz der BTU (Mitarbeiter) sehen Beiträge ein, die als “intern” eingestuft wurden.<br />

Beteiligte Akteure: WWW-Intern (Mitarbeiter der BTU)<br />

Vorbedingungen: Anh<strong>and</strong> der IP-Adresse wurde der Anwender als lokaler Benutzer eingestuft (z.B. vom Webserver per .htaccess).<br />

Nachbedingungen: Zusätzlich zu den ”<br />

externen“ Beiträgen, werden auch die ”<br />

internen“ aufgelistet. Beitrag freigeben<br />

Ein vom Redakteur geschriebener (interner oder externer) Beitrag bedarf der Genehmigung durch einen Rubrikbetreuer, bevor er unter dieser<br />

Rubrik online gehen darf.<br />

Beteiligte Akteure: Rubrikbetreuer<br />

Vorbedingungen: Ein Redakteur verfaßt einen Beitrag, weist ihm eine Rubrik zu und legt ihn dem Rubrikbearbeiter vor.<br />

Nachbedingungen: Der Beitrag bekommt ein aktualisiertes Veröffentlichungsdatum und kann auf den entsprechenden Seiten abgerufen werden.<br />

Er findet sich dann auch in der Admin-Liste der Beiträge wieder, die für die Veröffentlichung auf den Portalseiten in Frage kommen.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 685<br />

Ausnahmefälle: Der Beitrag erfüllt nicht die erforderlichen Kriterien für eine Veröffentlichung. In diesem Fall wird der Beitrag abgelehnt,<br />

der Redakteur erhält hierüber eine Nachricht und legt den Beitrag ggf. nach Bearbeitung erneut vor. Der Rubrikbetreuer kann den Inhalt des<br />

Beitrages aber auch den Erfordernissen anpassen (z.B. ihn einer <strong>and</strong>eren Rubrik zuweisen). Auch hierüber erhält der Redakteur des Beitrages<br />

eine Nachricht.<br />

Hauptseite freigeben.<br />

Auf den Portalseiten wird auf einige Beiträge in Kurzform verwiesen. Der Platz dafür ist knapp bemessen, es können eventuell nicht alle<br />

Beiträge auf den ersten Seiten erscheinen. Es muß also eine Auswahl getr<strong>of</strong>fen werden. Alle weiteren Beiträge sind über nachgeordnete Seiten<br />

erreichbar. Weiterhin wird ein Beitrag mit Bild zum “Aufmacher” bestimmt, der einen größeren Platz auf der Portalseite eingeräumt bekommt.<br />

Beteiligte Akteure: Portalbetreuer<br />

Vorbedingungen: Eine Liste der von den Rubrikbetreuern freigegebenen Beiträge liegt vor. Nachbedingungen: Die ausgewählten Beiträge<br />

erscheinen auf den Portalseiten.<br />

Ausnahmefälle: Trifft der Portalbetreuer keine Auswahl bzw. bleiben Plätze unbelegt, werden Beiträge vom System ausgewählt (z.B. nach<br />

Veröffentlichungsdatum). Findet sich für einen infrage kommenden Aufmacher kein passendes Bild, kann der Portalbetreuer den Verfasser<br />

benachrichtigen oder den Beitrag selbst anpassen.<br />

Termin schreiben.<br />

Ein Termin ist ein Beitrag, der an eine bestimmte Zeit gebunden ist (z.B. Beginn der Rückmeldefrist für Studenten). Termine werden an<br />

bestimmten, dafür vorgesehenen Stellen präsentiert (daher die Notwendigkeit der Unterscheidung). Der Anwendungsfall umfaßt das Verfassen,<br />

Bearbeiten und Entfernen eines Termins.<br />

Beteiligte Akteure: Redakteur<br />

Vorbedingungen: Die benötigten Pflichtdaten sind eingegeben worden.<br />

Nachbedingungen: Der neu erstellte/bearbeitete Termin liegt dem zuständigen Rubrikbetreuer zur Freigabe vor.<br />

Ausnahmefälle: Wurde ein bestehender Termin bearbeitet/gelöscht, der bereits eine Freigabe erhalten hatte, werden die Änderungen erst nach<br />

erneuter Bestätigung durch den Rubrikbetreuer aktiv. Meldung schreiben.<br />

Eine Meldung ist ein Beitrag, der an einen bestimmten Zeitraum gebunden ist (z.B. Pressemeldungen). Meldungen werden an bestimmten,<br />

dafür vorgesehenen Stellen präsentiert (daher die Notwendigkeit der Unterscheidung). Der Anwendungsfall umfaßt das Verfassen, Bearbeiten<br />

und Entfernen einer Meldung. Meldungen können zum Aufmacher der Portalseite werden, wenn sie ein Bild enthalten.<br />

Beteiligte Akteure: Redakteur<br />

Vorbedingungen: Die benötigten Pflichtdaten sind eingegeben worden.<br />

Nachbedingungen: Die neu erstellte/bearbeitete Meldung liegt dem zuständigen Rubrikbetreuer zur Freigabe vor.<br />

Ausnahmefälle: Wurde eine bestehende Meldung bearbeitet/gelöscht, der bereits eine Freigabe erhalten hatte, werden die Änderungen erst<br />

nach erneuter Bestätigung durch den Rubrikbetreuer aktiv.<br />

Veranstaltung schreiben.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 686<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 687<br />

Eine Veranstaltung ist ein Beitrag, der an eine bestimmte Zeit und einen Veranstaltungsort gebunden ist (z.B. ”<br />

BTU tanzt“). Veranstaltungen<br />

werden an bestimmten, dafür vorgesehenen Stellen präsentiert und in den Veranstaltungskalender aufgenommen (daher die Notwendigkeit der<br />

Unterscheidung). Veranstaltungen können zum Aufmacher einer Portalseite werden, wenn sie ein bild enthalten. Der Anwendungsfall umfaßt<br />

das Verfassen, Bearbeiten und Entfernen einer Veranstaltung.<br />

Beteiligte Akteure: Redakteur<br />

Vorbedingungen: Die benötigten Pflichtdaten (insbesondere Veranstalter und Veranstaltungsort) sind eingegeben worden.<br />

Nachbedingungen: Die neu erstellte/bearbeitete Veranstaltung liegt dem zuständigen Rubrikbetreuer zur Freigabe vor.<br />

Ausnahmefälle: Wurde eine bestehende Veranstaltung bearbeitet/gelöscht, die bereits eine Freigabe erhalten hatte, werden die Änderungen erst<br />

nach erneuter Bestätigung durch den Rubrikbetreuer aktiv.<br />

Inhalt zufügen.<br />

Umfaßt die Eingabe aller Pflichtdaten sowie weiterer Angaben eines Beitrages.<br />

Beteiligte Akteure: Redakteur<br />

Vorbedingungen: Der Redakteur hat sich am System angemeldet und einen neuen Beitrag begonnen oder einen bestehenden Beitrag zur<br />

Bearbeitung ausgewählt.<br />

Nachbedingungen: Der Beitrag enthält alle notwendigen Angaben und kann dem Rubrikbetreuer vorgelegt werden.<br />

Ausnahmefälle: Sind die Pflichtangaben nicht vollständig, wird der Redakteur zur Korrektur aufgefordert.<br />

Zeitraum wählen.<br />

Die drei Beitragstypen unterscheiden sich unter <strong>and</strong>erem in der Zeitdauer ihrer Aktualität. Der Redakteur legt einen oder mehrere Tage fest, an<br />

denen der Beitrag (nach erfolgter Freigabe) online stehen soll; eine weitreichende Vorplanung ist mittels Kalenderfunktion möglich. An diesen<br />

Tagen findet sich der Beitrag auch in der Liste des Portalbetreuers. Nach Ablauf des letzten Tages wird der Beitrag archiviert.<br />

Beteiligte Akteure: Redakteur<br />

Vorbedingungen: Redakteur hat sich am System angemeldet und einen neuen Beitrag begonnen oder einen bestehenden Beitrag zur Bearbeitung<br />

ausgewählt.<br />

Nachbedingungen: Der Beitrag wird mit einer Menge von Tagen verknüpft, an denen er online stehen soll.<br />

Rubrik wählen.<br />

Jeder Beitrag ist einer oder mehreren Rubriken zuzuordnen. Je nach gewählter Rubrik liegt er dem (oder den) Rubrikbetreuer(n) zur Freigabe<br />

vor.<br />

Beteiligte Akteure: Redakteur<br />

Vorbedingungen: Redakteur hat sich am System angemeldet und einen neuen Beitrag begonnen oder einen bestehenden Beitrag zur Bearbeitung<br />

ausgewählt.<br />

Nachbedingungen: Dem Beitrag ist mindestens eine Rubrik zugeordnet.<br />

Ort wählen.<br />

Veranstaltungen finden <strong>of</strong>t an den gleichen Orten statt. Zudem gehört zu jedem Ort ein <strong>Information</strong>ssatz (Anschrift, Betreiber usw.), später<br />

soll eine Kopplung mit <strong>and</strong>eren lokalen <strong>Information</strong>ssystemen (elektr. Lageplan) möglich sein. Um das Eintragen von Veranstaltungen zu<br />

erleichtern, hält das System eine (von jedem Redakteur erweiterbare) Menge von Orten vor, aus denen komfortabel, schnell und fehlerarm ein<br />

spezieller Veranstaltungsort gewählt werden kann.<br />

Beteiligte Akteure: Redakteur<br />

Vorbedingungen: Redakteur hat sich am System angemeldet und schreibt eine neue Veranstaltung oder bearbeitet eine bestehende Veranstaltung.<br />

Nachbedingungen: Die Veranstaltung ist mit einem Ort verknüpft und kann zur Freigabe weitergeleitet werden.<br />

Ausnahmefälle: Der Veranstaltungsort ist noch nicht in der Datenbank aufgeführt. Der Redakteur fügt die Daten des Ortes der Datenbank zu<br />

(Anwendungsfall Orte verwalten) und wiederholt den Vorgang.<br />

Bild zufügen.<br />

Der Aufmacher (Meldung oder Veranstaltung) einer Portalseite sollte ein Bild enthalten. Dazu wählt der Redakteur beim Erstellen des Beitrages<br />

ein Bild (in einem unterstützten Grafikformat) und eine Bildunterschrift aus. Auf dem Server wird das Bild in ein webgerechtes Format<br />

gebracht (z.B. mit GD verkleinert und in JPEG oder PNG konvertiert).<br />

Beteiligte Akteure: Redakteur<br />

Vorbedingungen: Redakteur hat sich am System angemeldet und einen neuen Beitrag begonnen oder einen bestehenden Beitrag zur Bearbeitung<br />

ausgewählt. Ein gescanntes Foto bzw. eine Grafik für den Beitrag stehen zur Verfügung.<br />

Nachbedingungen: Der Beitrag enthält ein Bild in einem definierten Format. Ein Beitrag mit Bild kommt als Aufmacher einer Portalseite in<br />

Frage (und wird dem Portaladministrator an entsprechender Stelle zur Auswahl gestellt).<br />

Ausnahmefälle: Das Dateiformat des Bildes ist nicht unterstützt (z.B. vom GD-Paket).<br />

Rubriken verwalten.<br />

Alle Beiträge gehören einer oder mehrerer Rubriken an. Die Rubrik soll die Suche im Archiv erleichtern und bestimmt, an welcher Stelle der<br />

Beitrag später online zu finden ist. Nur der Portalbetreuer als höchste Instanz des <strong>Systems</strong> darf Rubriken zufügen, verändern oder entfernen.<br />

Beteiligte Akteure: Portalbetreuer<br />

Vorbedingungen: keine<br />

Nachbedingungen: Der neuen Rubrik können Betreuer zugeordnet werden (eine abgeänderte Rubrik behält ihre bisherigen Betreuer bei).<br />

Ausnahmefälle: Eine Rubrik mit diesem Namen besteht bereits, der Portalbetreuer wird aufgefordert, eine <strong>and</strong>ere Bezeichnung zu wählen.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 688<br />

Rubrikbetreuer zuordnen.<br />

Bevor in eine neue Rubrik Beiträge gestellt werden können, muß ein Rubrikbetreuer bestimmt werden, der die eingegangenen Beiträge bewertet<br />

und freigibt. Der Portalbetreuer wählt dazu einen oder mehrere Redakteure aus. Diese Auswahl kann jederzeit geändert werden. Der<br />

Portaladministrator legt damit auch fest, daß der Rubrikbetreuer seinerseits neue Redakteure bestimmen darf.<br />

Beteiligte Akteure: Portalbetreuer<br />

Vorbedingungen: Es sind Redakteure vorh<strong>and</strong>en, die die Rubrikbetreuung übernehmen können. Nachbedingungen: Ein Redakteur wurde zum<br />

Rubrikbetreuer “befördert” (oder die Rechte eines bestehenden Rubrikbetreuers werden auf eine weitere Rubrik ausgeweitet). Hat eine Rubrik<br />

mindestens einen Betreuer, so steht die Rubrik für neue Beiträge zur Verfügung.<br />

Ausnahmefälle: Wird der letzte Betreuer einer Rubrik entfernt, können ab s<strong>of</strong>ort keine Beiträge mehr in diese Rubrik eingestellt werden.<br />

Redakteure verwalten.<br />

Die Rubrikbetreuer haben das Recht, selbst Redakteure zu bestimmen; dadurch soll der Portaladministrator entlastet werden. Diese Rubrikbetreuer<br />

haben auch die Möglichkeit, einen bestehenden Redakteur zu sperren, so daß ihm in Zukunft der Login verwehrt bleibt.<br />

Beteiligte Akteure: Portalbetreuer<br />

Vorbedingungen: Der Portalbetreuer darf neue Redakteure anlegen.<br />

Nachbedingungen: Ein weiterer Redakteur kann sich anmelden (bzw. kann dies nicht mehr tun, wenn er gesperrt wurde).<br />

Orte verwalten.<br />

Die Redakteure pflegen eine Liste von Veranstaltungsorten. Zu jedem Ort werden Angaben (Betreiber, Kontaktadresse, Lagebeschreibung usw.)<br />

gespeichert, die anschließend für Veranstaltungs-Beiträge genutzt werden können. Jeder Redakteur darf das Verzeichnis der Veranstaltungsorte<br />

bearbeiten oder neue Orte zufügen (das System vermerkt den anlegenden Redakteur und die letzte Änderung).<br />

Beteiligte Akteure: Redakteur<br />

Vorbedingungen: Alle Pflichtangaben zum Veranstaltungsort sind vorh<strong>and</strong>en.<br />

Nachbedingungen: Ein neuer/geänderter Datensatz steht allen Redakteuren für Veranstaltungen zur Verfügung.<br />

Ausnahmefälle: Doppelte Einträge werden nicht angenommen.<br />

Veranstalter verwalten.<br />

Die Redakteure pflegen eine Liste von Veranstaltern (Personen, Institutionen, Vereine, die eine Veranstaltung durchführen). Zu jedem Veranstalter<br />

werden Angaben (Name, Kontaktadresse usw.) gespeichert, die anschließend für Veranstaltungs-Beiträge und den Veranstaltungskalender<br />

genutzt werden können. Jeder Redakteur darf das Verzeichnis der Veranstalter bearbeiten oder neue Veranstalter zufügen (das System<br />

vermerkt den anlegenden Redakteur und die letzte Änderung).<br />

Beteiligte Akteure: Redakteur<br />

Vorbedingungen: Alle Pflichtangaben zum Veranstalter sind vorh<strong>and</strong>en.<br />

Nachbedingungen: Ein neuer/geänderter Datensatz steht allen Redakteuren für Veranstaltungen zur Verfügung.<br />

Ausnahmefälle: Doppelte Einträge werden nicht angenommen.<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 689<br />

Übung:<br />

Mensch-Maschine-Interaktion<br />

EER-Modelle Interaktion Akteuere Objekte I-Sicht O-Sicht Enabled processes<br />

Web IS


CAU zu Kiel, IfI, ISE, β 6. Interaktivität ab SS 2012 690<br />

Literatur<br />

[Alt96]<br />

[KT95]<br />

M. Altus. A modular design strategy for a flexible graphical database design environment: An experimental<br />

study. LNCS 1157, pages 146–162, Cottbus, Germany, Oct. 7 - 10, 1996, 1996. Springer, Berlin.<br />

E. Küthe <strong>and</strong> M. Thun. Marketing mit Bildern: Management mit Trend-Tableaus, Mood-Charts, Storyboards,<br />

Fotomontagen und Collagen. DuMont, Köln, 1995.<br />

[LFe93] C. Löckenh<strong>of</strong>f, D. Fensel, <strong>and</strong> R. Studer (eds.). CommonKADS, Proc. 3rd KADS meeting. München, 1993.<br />

[Sch96] B. Schewe. Kooperative S<strong>of</strong>twareentwicklung - Ein objektorientierter Ansatz. Deutscher Universitäts-<br />

Verlag, Wiesbaden, 1996.<br />

Web IS


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

7. Grundlagen WS 2011/12<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 />

7 Grundlagen<br />

Was du ererbt von deinen Vätern hast,<br />

Erwirb es, um es zu besitzen.<br />

Was man nicht nützt, ist eine schwere Last;<br />

Nur was der Augenblick erschafft, das kann man nützen.<br />

Goethe, Faust, Erster Teil, Nacht, Faust<br />

7.1 Normalisierung<br />

7.1.1 Gründe zur Normalisierung<br />

Probleme der Modellierung.<br />

Die Datenbankspezifikation ist gezeichnet von<br />

Modellierungsbeschränkungen durch die<br />

gewählte Spezifikationssprache, in der ggf. die Anwendung nur mit komplexen Spezifikationen und verwickelten<br />

Schemata unterstützt wird,<br />

gewählte Spezifikationsmethodik, die ggf. zu falschen Spezifikationsurteilen führt, den Kontext der Modellierung<br />

und die gewählte Referenzmodellierung<br />

unterlegte Spezifikationstheorie mit Modalität, Gewißheit und Schärfe der Modellierungsurteile, sowie die<br />

Urteilsart und<br />

Wahl des Ausschnittes der Realität, der modelliert wird<br />

Implementationsbeschränkungen z.B. aufgrund der Verarbeitung im DBMS. Typische Beschränkungen sind:<br />

Beschränkungen des SQL-Dialektes


CAU zu Kiel, IfI, ISE, β 7. Grundlagen WS 2011/12 692<br />

Beschränkungen der Integritätspflege z.B. durch Zulassung von wenigen Integritätsbedingungen wie<br />

Wertebereichsbeschränkungen<br />

Schlüsselbeschränkungen und<br />

referentielle Integritätsbedingungen<br />

Beschränkungen des DBMS insbesondere Speicherverwaltung und Transaktionsverarbeitung<br />

Verhalten von semantisch sinnvollen Einheiten, das (nicht) berücksichtigt wird und durch Dekomposition ggf. erschwert<br />

wird.<br />

Optimierungserfordernisse.<br />

Probleme bei der Optimierung von Datenbankanwendungen sind:<br />

(A) Redundanzprobleme durch schwierige oder ggf. auch Nichtunterstützung kontrollierter Redundanz<br />

(B) <strong>Information</strong>sblockierung aufgrund der <strong>Information</strong>skapazität des Schemas<br />

Insert-Anomalie durch rigide Erzwingung von einfügebeschränkenden Integritätsbedingungen<br />

(C) <strong>Information</strong>sverluste von DB-Modifikation z.B.<br />

Delete-Anomalie: Es werden Teil-<strong>Information</strong>en in Objekten, die eine eigenständige Bedeutung haben vernichtet<br />

(D) Evolutionsempfindlichkeit und Instabilität bei Veränderungen (Evolutionsresistenz bzw. Evolutionsrobustheit<br />

erfordert eine vollständig <strong>and</strong>ere Architektur von Schemata. Dazu existiert bis auf die TIS@CAU-Ansätze kein<br />

Lösungsvorschlag.)<br />

(E) Unterschiedliche Abstraktionen in partieller Koexistenz z.B. auch Sichten<br />

(F)Performanzprobleme durch Spezifika der Anwendung, durch falsche Strukturierung (ggf. auch bei Wahl der<br />

falschen Normalisierung), komplexe oder verwobene Datenstrukturen.<br />

Verhaltensveränderungen von Operationen, insbesondere Komplexität von Operationen durch Umgebungseinbeziehung,<br />

z.B.<br />

Update-Anomalie, bei der eine Einobjektoperation zu einer Bulkoperation wird, z.B. ein table scan erfordert,<br />

damit die Architektur von DBMS schon aufgrund der beschränkt vorh<strong>and</strong>enen Ressourcen<br />

im Puffer- und Cache-Bereich grausam überfordert<br />

Anfragefehlverhalten aufgrund von der Berechnungskomplexität priorisierter Anfragen<br />

Wird aufgehoben durch Zusammenführung von Strukturen (Denormalisierung):<br />

Vorteile der Denormalisierung:<br />

Erhöhung der Berechnungsgeschwindigkeit im Retrieval<br />

Blockierung der Separation semantisch sinnvoller Einheiten und damit Vermeidung von zusätzlichen<br />

Verbunden und Reduktion von Fremdschlüsseln<br />

Vorausberechnung und Mitführung abhängiger Daten mit redundanten Attributen und abgeleitete Daten<br />

Reduktion von notwendigen Indizes<br />

Reduktion der Anzahl von Tabellen<br />

Einführung von Surrogatattributen zur Vereinfachung der Identifikation und von Fremdschlüsseln<br />

Nachteile der Denormalisierung<br />

Update slow down und DBMS-internes slow down


CAU zu Kiel, IfI, ISE, β 7. Grundlagen WS 2011/12 693<br />

hohe Abhängikeit von der Anwendung und Inflexibilität bei Evolution<br />

hohe Redundanz ohne einfache Pflegemechanismen<br />

(G) Schwierige Pflege und Modifizierbarkeit von Daten<br />

Ansatz zur Messung der Qualität von Schemata.<br />

Gegeben sei eine Menge M aller möglichen Typen einer Anwendung. Diese Menge kann von einer minimalen Menge<br />

erzeugt werden. Es können nun Teilmengen von M betrachtet werden.<br />

Vollständige Teilmengen erlauben die Ableitung aller <strong>and</strong>eren Typen in M.<br />

Korrekte Teilmengen besitzen keine Typen, die mit <strong>and</strong>eren Typen im Widerspruch stehen.<br />

Unter den vollständigen und korrekten Teilmengen F ULL(P(M)) können wir die optimalen Schemata OP T IMAL(P(M))<br />

herausschälen. Es kann nun das gefundene Schema S dagegen bewertet werden. Dazu werden die minimalen Abstände<br />

gemessen:<br />

NumbOfConcept(S) − NumbOfErr(S, S ′ )<br />

correctness OP T (S) = max S ′ ∈OP T IMAL(P(M))<br />

Concept(S ′ )<br />

NumbOfConcept(S) − NumbOfDifferences(S, S ′ )<br />

completeness OP T (S) = max S ′ ∈OP T IMAL(P(M))<br />

Concept(S ′ )<br />

Diese beiden Maße können kombiniert werden zu:<br />

mit<br />

SQ = (β2 + 1.0) × completeness OP T (S) × correctness OP T (S)<br />

β 2 × completeness OP T (S) + correctness OP T (S)<br />

β = 1: Korrektheit und Vollständigkeit gleichwertig<br />

β = 0: nur Korrektheit bewertet<br />

β = ∞: nur Vollständigkeit bewertet<br />

Diese Maße stehen in Korrelation zu Maßen aus dem <strong>Information</strong> Retrieval<br />

Präzision zum Messen der Korrektheit (F: gefunden; R: relevant)<br />

|F(q, D 1 )) ∩ R Q S 1 ,S 2<br />

(q, D 1 )|<br />

|F(q, D 1 ))|<br />

Recall zum Messen der Vollständigkeit<br />

|F(q, D 1 )) ∩ R Q S 1 ,S 2<br />

(q, D 1 )|<br />

|R Q S 1 ,S 2<br />

(q, D 1 )|<br />

Fallout zum Messen der Inkorrekheit einer Funktion<br />

|F(q, D 1 )) \ R Q S 1 ,S 2<br />

(q, D 1 )|<br />

|ALL \ R Q S 1 ,S 2<br />

(q, D 1 )|


CAU zu Kiel, IfI, ISE, β 7. Grundlagen WS 2011/12 694<br />

7.1.2 Allgemeines Herangehen<br />

Zerlegung der Datenbankanwendung in Komponenten.<br />

Dieser Ansatz stellt eine Eigenentwicklung der TIS@CAU-Gruppe dar, basiert auf dem Herausschälen von Komponenten<br />

und einer Entwicklung einer Kollaborationsarchitektur zwischen den Komponenten.<br />

Herausfinden von verbotenen Teilstrukturen.<br />

2. Normalform Teilschlüssel implizieren nicht Nicht-Schlüsselattribute<br />

3. Normalform jedes Nicht-Schlüssel-Attribut darf nur direkt von einem Schlüssel abhängen (kein transitiver Schluß)<br />

Boyce-Codd-Normalform jede nicht-triviale funktionale Abhängigkeit ist eine Schlüsselabhängigkeit<br />

4. Normalform jede geltende mehrwertige Abhängigkeit ist ableitbar aus den geltenden Schlüsselabhängigkeiten<br />

5. Normalform jede geltende Verbundabhängigkeit ist ableitbar aus den geltenden Schlüsselabhängigkeiten<br />

Einfüge-, Lösch- und Update-Anomalien treten genau dann nicht auf, wenn nur funktionale Abhängigkeiten gelten<br />

und Schema in BCNF ist<br />

Separation von verschiedenen Gesichtspunkten.<br />

Schema Datenbank Anfragen Anfrageergebnisse<br />

zeitunabhängige Beschreibung<br />

zeitabhängige Beschreibung<br />

Entwurf durch Modularisierung und Separation von Aspekten<br />

Redundanzarmut und günstiges Verhalten (z.B. keine Anomalien (insert, delete, update erfordern Nacharbeit)) durch<br />

Verbot von Teilstrukturen und Trennung von Gesichtspunkten<br />

R = (R 1 , ..., R m , Σ 0 ) , R i = (U i , Σ i ), Σ = ⋃ m<br />

i=1 Σ i ∪ Σ 0 verbotene Teilstrukturen<br />

durch Normalisierung<br />

als adäquate Dekomposition T und Wiederherstellungsoperation f<br />

T (R i , Σ i ) = (R i,1 , ..., R i,k , Σ T i )<br />

R j i = (U i,j, Σ i,j )<br />

2 Eigenschaften<br />

• verlustfrei: gleiche Daten repräsentiert<br />

R t i = f(T (Rt i ))<br />

weder Datenverlust noch Datenerzeugung<br />

• Erhalt der Integritätsbedingungen: Σ i |= ⋃ k<br />

j=1 Σ i,j ∪ Σ T i<br />

• Unabhängige Pflege der Teilstrukturen<br />

⋃ k<br />

j=1 Σ i,j ∪ Σ T i<br />

|= Σ i<br />

Damit erhalten wir 4 Teilaufgaben:<br />

1. Semantische Eigenschaften = syntaktische Eigenschaften<br />

2. Beweis der obigen =<br />

3. Algorithmen zur Gewinnung


CAU zu Kiel, IfI, ISE, β 7. Grundlagen WS 2011/12 695<br />

4. geringe Kosten<br />

Formalisierung von Heuristiken<br />

Separation Einheitliches Verhalten Ableit. von Gesichtspunkten<br />

Aufgabe 1 : Aufgabe 1:<br />

( keine verbotenen Teilstrukturen) (semantische Forderungen)<br />

- 3NF - Verbundpfade eindeut. - sichere Sichteninstanzunterstütz.<br />

- BCNF -sichere Sichtenanfrageunterst.<br />

- 4NF<br />

- 5NF (syntaktische Forderungen) - für FD’s : join support<br />

- referent. NF - γ-azyklisch (X 1 , ..., X n ) ∈ Σ +<br />

- unique-key NF - α-azyklisch ∪F i ) + ⊇ F<br />

Beziehungen<br />

- BCNF & Verbundunterstützung sind compatibel (Dekomp.)<br />

- 3NF und sichere Verbundunterstützung sind compatibel (Synthese)<br />

γ-azyklisch gdw. Verbundpfade sind wesentlich eindeutig<br />

Optimierung zur Entwurfszeit<br />

Aufgabe 4: Syntaktische Eigenschaften garantieren geringe Kosten<br />

Speicherung Anfragen update<br />

-Normalformen γ-Azykliz. ohne Referenzen<br />

- Verbundbäume monoton 1 Schlüssel<br />

- Projektion über Überdeck. BCNF<br />

von Verbunden<br />

α-Azykliz.<br />

- Existenz von<br />

monotonen Verbundbäumen<br />

7.1.3 FD-basierte Normalformen für das relationale Modell<br />

Üblicher Zugang:<br />

T ist definiert durch eine Verbundabhängigkeit und Projektion und f ist der entsprechende Verbund<br />

möglich ist ebenso: Horizontale Dekompositionsabhängigkeit, Partition und Vereinigung<br />

Verbotene Teilstrukturen definiert durch verschiedene Normalformen :<br />

3NF verboten ist folgende Eigenschaft in Σ i :<br />

Z → {A} ∈ Σ + i , A ∉ Z, A Nichtschlüsselattribut (d.h. in keinem Schlüssel von R i), Z → U i ∉ Σ + i<br />

Nachteil: entscheidbar in NP<br />

Boyce-Codd-Normalform verboten ist folgende Eigenschaft in Σ i :<br />

Z → {A} ∈ Σ + i , A ∉ Z, Z → U i ∉ Σ + i<br />

Vorteil: entscheidbar in P<br />

4NF verboten ist folgende Eigenschaft in Σ i :<br />

Z →→ X ∈ Σ + i , X ⊈ Z, Z → U i ∉ Σ + i


CAU zu Kiel, IfI, ISE, β 7. Grundlagen WS 2011/12 696<br />

Strenge Project-Join-NF verboten ist folgende Eigenschaft in Σ i :<br />

(Y 1 , ..., Y k ) ∈ Σ + i<br />

, {X → U i ∈ Σ + i } ̸|= (Y 1, ..., Y k )<br />

5NF verboten ist folgende Eigenschaft in Σ i :<br />

(Y 1 , ..., Y k ) ∈ Σ + i<br />

, ∃j : Y j → U i ∉ Σ + i<br />

Project-Join-NF verboten ist folgende Eigenschaft in Σ i :<br />

(Y 1 , ..., Y k ) ∈ Σ + i<br />

, {X → U i ∈ Σ + i } ̸|= (Y 1, ..., Y k )<br />

Überstrenge Project-Join-NF verboten ist folgende Eigenschaft in Σ i :<br />

(Y 1 , ..., Y k ) ∈ Σ + i<br />

, ∀X → U i ∈ Σ + i<br />

: {X → U i } ̸|= (Y 1 , ..., Y k )<br />

InklusionsNF verboten ist folgende Eigenschaft in Σ i :<br />

R i [X] ⊆ R j [Y ] ∈ Σ + und Y → U j ∉ Σ +<br />

Referentielle Normalform<br />

genau ein Schlüssel verboten ist folgende Eigenschaft in Σ i :<br />

es existieren zwei verschiedene mininale Schlüssel<br />

Vorteil: entscheidbar in P<br />

Domain-Schlüssel-Abhängigkeit (DKNF) verboten ist die folgende Teilstruktur für die Menge Σ i,K der Schlüsselund<br />

Domainabhängigkeiten von Σ + i<br />

:<br />

α ∈ Σ + i<br />

, nichttrivial und Σ i,K ̸|= α<br />

Achtung: Verschiedene Bücher verwenden davon abweichende Notationen.<br />

Afunktionale und min-max-Abhängigkeiten<br />

afunktionale Abhängigkeit: R t |= X −→‖ Y falls für alle ν ∈ R t existiert µ ∈ R t mit ν = X µ und ν ≠ Y µ<br />

zur horizontalen Dekomposition von Relationen<br />

R t = R t 1 ∪ Rt 2 mit<br />

• ∅ = R t 1 ∩ Rt 2<br />

• R t 1 |= X → Y<br />

• R2 t |= X −→‖ Y<br />

min-max-Abhängigkeiten geben Wiederholfaktor an und gleichzeitig Begrenzung für Redundanz<br />

Nichtnull-Abhängigkeiten<br />

Ableitbarkeit von Aspekten<br />

Semantische Forderungen der relationalen Praxis


CAU zu Kiel, IfI, ISE, β 7. Grundlagen WS 2011/12 697<br />

Unterstützung von Sichten Gegeben sei eine Sicht S V über V mit einer Menge von Integritätsbedingungen<br />

Σ V , die in S V gelten sollen. Dann wird gefordert, daß diese Sicht berechnet werden kann.<br />

∀V ⊆ U(∧Σ V = Σ + | V )∃Q∀R t UnivRrel(R t [V ]) ⊆ Q(R)<br />

Sichere Unterstützung von Sichten wenn =<br />

Sichtenanfrage-Unterstützung ∀Q ∈ Query(V, R)∃P ∈ Query(U, R) : Q(V t ) = P (R t )<br />

Charakterisierung der semantischen Forderungen<br />

Sichtenbeh<strong>and</strong>lung Sichtenanfrage-Unterstützung gdw. Unterstützung von Sichten<br />

im positiven Fall sogar effizient<br />

sichere Unterstützung von Sichten gdw. ( ⋃ F i ) + ⊇ F und (U 1 , ..., U m ) ∈ Σ +<br />

Unique-Key Hat ein Relationenschema genau einen minimalen Schlüssel, dann ist es genau dann in BCNF,<br />

wenn es in 3NF ist.<br />

DKNF - Anomalien Ein Relationenschema hat genau dann keine Insert und Delete anomalien, wenn es in<br />

DKNF ist.<br />

NF-Beziehungen Überstrenge PJNF ⇒ strenge PJNF<br />

strenge PJNF ⇒ PJNF<br />

PJNF ⇒ 4NF<br />

4NF ⇒ BCNF<br />

BCNF ⇒ 3NF<br />

||dom(A)|| ≥ 2 : DKNF ⇒ 4NF<br />

Alle domain-Abhängigkeiten lassen mindestens k Werte zu für k = max.-Komponenten-Anzahl in JD von<br />

Σ, die eine Überdeckung der Dekomposition darstellen. Dann DKNF ⇒ PJNF<br />

Eigenschaften von Integritätsbedingungen:<br />

Entscheidbarkeit der Implikationseigenschaft<br />

• entscheidbar für tupelerzeugende und gleichungserzeugende Abhängigkeiten<br />

• nicht entscheidbar für eingebettete JD’s<br />

• nicht entscheidbar für eingebettete MVD’s<br />

• nicht entscheidbar FD’s und ID’s<br />

Axiomatisierbarkeit von Klassen von Integritätsbedingungen<br />

• axiomatisierbar FD’s ∪ MVD’s<br />

• nicht axiomatisierbar für FD’s und Inklusionsabh.<br />

• axiomatisierbar für tupel- und gleichungserzeugende Abhängigkeiten<br />

• nicht axiomatisierbar für JD’s<br />

Komplexität des Implikationsproblemes<br />

• 3NF ist NP-complete<br />

• ‘Ist A Schlüsselattribut’ ist NP-vollständig<br />

• BCNF ist polynomial<br />

• Ein-Schlüssel-Problem ist polynomial<br />

{A ∈ U i |U i \ {A} ∉ Σ i } −→ U i ∈ Σ i<br />

Algorithmen Normalisierung in 2 verschiedenen Herangehensweisen


CAU zu Kiel, IfI, ISE, β 7. Grundlagen WS 2011/12 698<br />

Analyse allgemeines Herangehen: wenn Schema nicht redundanzfrei, dann zerlege das Schema in 2 (oder<br />

mehrere) Teilschemata<br />

Beispiel:<br />

R = ({SSN, Stadt, L<strong>and</strong>, Staat, Alter, Sex}, {SSN → Stadt, Stadt → L<strong>and</strong>, L<strong>and</strong> → Staat, SSN →<br />

Alter, SSN → Sex})<br />

R 1 = ({SSN, Stadt, L<strong>and</strong>, Alter, Sex}, {SSN → Stadt, Stadt → L<strong>and</strong>, L<strong>and</strong> → Staat, SSN →<br />

Alter, SSN → Sex})<br />

R 1,1 = ({SSN, Stadt, Alter, Sex}, {SSN → Stadt, SSN → Alter, SSN → Sex})<br />

R 1,2 = ({Stadt, L<strong>and</strong>}, {Stadt → L<strong>and</strong>})<br />

R 2 = ({L<strong>and</strong>, Staat}, {L<strong>and</strong> → Staat})<br />

Nachteile: Erhaltung der IC’s ist meist schwierig zu kontrollieren<br />

Weiteres Beispiel:<br />

Ort, Bundesl<strong>and</strong>, Ministerpräsident, Einwohneranzahl<br />

Regierung: Bundesl<strong>and</strong><br />

Städte: Ort, Bundesl<strong>and</strong>, Einwohneranzahl<br />

Hintergrund: Dekomposition nach Blattabhängigkeiten<br />

Synthese allgemeines Herangehen: Generierung einer minimalen Überdeckung aller IC’s und Synthese nach<br />

dieser minimalen Überdeckung von Schemata<br />

Beispiel:<br />

R wie oben<br />

minimale Überdeckung aller Abhängigkeiten : {SSN → Stadt, Stadt → L<strong>and</strong>, L<strong>and</strong> → Staat, SSN →<br />

Alter, SSN → Sex})<br />

Gruppenbildung: {SSN, Stadt, Alter, Sex} , {Stadt, L<strong>and</strong>}, {L<strong>and</strong>, Staat}<br />

Hinzufügen eines Schlüsselschemas<br />

R 1 = ({SSN, Stadt, Alter, Sex}, {SSN → Stadt, SSN → Alter, SSN → Sex})<br />

R 2 = ({Stadt, L<strong>and</strong>}, {Stadt → L<strong>and</strong>})<br />

R 3 = ({L<strong>and</strong>, Staat}, {L<strong>and</strong> → Staat})<br />

3NF-Algorithmus<br />

Input: Menge von funktionalen Abhängigkeiten für einen Typ<br />

Output: ein normalisiertes Schema<br />

Bestimmung einer kanonischen Überdeckung einer Menge von funktionalen Abhängigkeiten<br />

Σ c heist kanonische Uberdeckung von ΣF, wenn die folgenden drei Kriterien erfüllt sind:<br />

• Σ + c = Σ + c<br />

• . In Σ c existieren keine FDs , die überflüßige Attribute enthalten. D.h. es muß folgendes gelten:<br />

• ∀A ∈ X ∧ X → Y ∈ Σ c : Σ c \ {X → Y } ∪ {X \ {A} → Y } ̸|= Σ c<br />

• ∀B ∈ Y ∧ X → Y ∈ Σ c : Σ c \ {X → Y } ∪ {X → Y \ {B}} ̸|= Σ c<br />

• Jede linke Seite einer funktionalen Abhängigkeit in Σ c ist einzigartig. Dies kann durch sukzessive<br />

Anwendung der Vereinigungsregel auf FDs der Art X → Y, X → Y ′ erzielt werden, so<br />

dass die beiden FDs durch X → Y ∪ Y ′ ersetzt werden.<br />

Berechnung der kanonischen Überdeckung<br />

• Führe fur jede FD X → Y ∈ Σ c die Linksreduktion durch, d.h.:<br />

Überprüfe fur alle A , ob A überflüssig in X → Y ist, d.h. ob A ∈ X + Sigma c<br />

, X \ {A} gilt. Falls<br />

dies der Fall ist, ersetze X \ {A} → Y .<br />

• Führe für jede (verbliebene) FD die Rechtsreduktion durch.<br />

Überprüfe fur alle B, ob B überflüssig ist, d.h. ob<br />

∀B ∈ Y ∧ X → Y ∈ Σ c : Σ c \ {X → Y } ∪ {X → Y \ {B}} |= Σ c gilt. Falls dies der Fall ist,<br />

ist B auf der rechten Seite überflüssig und kann eliminiert werden.<br />

• Entferne die FDs der Form X → ∅, die im 2. Schritt möglicherweise entst<strong>and</strong>en sind.


CAU zu Kiel, IfI, ISE, β 7. Grundlagen WS 2011/12 699<br />

• Fasse mittels der Vereinigungsregel FDs der Form X → Y 1 ... X → Y m zu X → Y 1 ∪ Y m .<br />

Konstruktion einer Dekomposition bestehend aus 2 (ggf. leeren) Teilen<br />

• Für jede funktionale Abhängigkeit von Σ c wird ein Schema angelegt.<br />

• Ist kein X mit X → Y m zu X → Y 1 ∪ Y m ∈ Σ c ein Schlüssel von R, dann wird ein Schema mit<br />

einem Schlüssel hinzugefügt.<br />

Reduktion des Schemas: Ist ein Schema entst<strong>and</strong>en, in dem die Komponenten eines Teilschemas in<br />

einem <strong>and</strong>eren Teilschema echt enthalten sind, dann kann das erste Teilschema entfernt werden.<br />

Eigenschaft des Algorithmus: (SSA)<br />

Proposition 1 Es werden alle Abhängigkeiten erhalten.<br />

Proposition 2 Das Resultat ist ein Schema, in dem alle Relationenschemata in dritter Normalform sind.<br />

Überblick über Normalisierungsalgorithmen<br />

Author Strategie NF IC Relships Komplex.<br />

Bernstein Synthese 3NF FD CR polyn.<br />

Fagin Analyse 4NF FD+MVD LD exp.<br />

Biskup/D/B Synthese 3NF FD LD+CR polyn.<br />

Ullman Analyse 4NF FD+MVD LD exp.<br />

Tsou/Fischer Analyse 4NF FD+MVD LD polyn.<br />

Zaniolo/Melkan<strong>of</strong>f Analyse 3NF FD+MVD LD+CR expon.<br />

LD = lossless decomposition ; CR = constraint representation<br />

Theorem 1 Die Zerlegung π X∪Y (R C ) und π X∪Z (R C ) ist verlustlos für disjunkte Mengen X, Y, Z falls π X∪Y ∪Z (R C ) =<br />

π X∪Y (R C ) ✶ π X∪Y (R C ) gilt.<br />

Proposition 3 Gilt die funktionale Abhängigkeit X → Y in R C , dann ist die Zerlegung π X∪Y \X (R C ) und<br />

π X∪U\(X∪Y ) (R C ) verlustlos.<br />

∀(U, F )∃(X 1 , ..., X m ) : (U, F ) unterstützt (X i , F i ) mit Verbund für Anfragen und alle (X i , F i ) sind in BCNF<br />

∀(U, F )∃(X 1 , ..., X m ) : (U, F ) unterstützt sicher (X i , F i ) mit Verbund für Anfragen und alle (X i , F i ) sind in<br />

3NF<br />

Leider werden BCNF nicht durch einen Synthesealgorithmus erzeugt. Es existiert jedoch die Beobachtung<br />

1.<br />

Ursache von Nicht-BCNF-fähigen Schemata: Überladung von Attributen (Makowsky)<br />

Behebung: Aufspleißen des Attributes<br />

Ort, PLZ, Straße<br />

{ Ort, Straße } → {P LZ}<br />

{P LZ} → {Ort}<br />

Überladenes Attribut, das zerlegt werden kann<br />

PLZ Ortsbereich, PLZ Zustellbezirk<br />

{ Ort, Straße } → {P LZ Zustellbezirk}<br />

{P LZ Ortsbereich} ↔ {Ort}<br />

Speicherkosten Ein Schema S ist in xNF gdw. jede Dekomposition T von S hat für jede DB S t komplexere Darstellung,<br />

d.h.<br />

size(S t ) ≤ size(T (S t ))


CAU zu Kiel, IfI, ISE, β 7. Grundlagen WS 2011/12 700<br />

Update-Kosten ∀R ∀X ⊆ U i (X → U i ∈ Σ + )∀(R1 t , ..., Rt m) ∀{t} ∈ SAT (R i )<br />

SAT (R)<br />

gdw. R i referenziert nicht, hat genau einen Schlüssel und ist in BCNF<br />

(R t 1 , ..., Rt i−1 , Rt i ∪{t}, Rt i+1 , ..., Rt m) ∈<br />

Konsistenz von Schemata Verbundabhängigkeit heißt m-zyklisch, wenn äquivalent zu einer Menge von Verbundabhängigkeiten<br />

mit höchstens m Komponenten jeweils.<br />

2-zyklisch = azyklisch<br />

Implikationsproblem von FD’s und m-zyklischen Verbundabhängigkeiten ist polynomial; das normale Problem ist NPhart<br />

Azyklizität ist mit Graham-Algorithmus testbar:<br />

Termersetzungssystem: Regel 1: (Y 1 , ..., Y m ) ⇒ (many(Y 1 ), .., many(Y m ))<br />

Regel 2: falls Y i ⊆ Y j , i ≠ j : (Y 1 , ..., Y m ) ⇒ (Y 1 , .., Y i−1 , Y i+1 , ..., Y m )<br />

(Y 1 , ..., Y m ) ⇒ ∗ λ gdw. azyklisch<br />

Schema R heißt k-konsistent, wenn für beliebige j 1 , ..., j k ∈ {1, ..., m} und i ∈ {j 1 , ..., j k } gilt: (R j1 ✶ ... ✶<br />

R jk )[R i ] = R i<br />

R ist konsistent, wenn m-konsistent<br />

R ist k-konsistent gdw. (U 1 , ..., U m ) k-zyklisch ist<br />

ein Schema ist paarweise konsistent, genau dann wenn für alle i,j R i [U i ∩ U j ] ⊆ R j [U i ∩ U j ]<br />

Hypergraphen<br />

zur Darstellung der Join-Verbindung von Attributen in Schemata<br />

damit kann für Attribute auch eindeutiges Verständnis von Gesichtspunkten ausgedrückt werden<br />

Universalrelationen-Annahme (universal relation schema assumption) : Jedes Attribut ist bzgl. seiner Bedeutung<br />

eindeutig unabhängig vom Schema definiert.<br />

Wenn erfüllt, dann kann gesamte Datenbank als eine Universalrelation (evt. aufgefüllt mit Nullwerten - schwache<br />

Universalrelation) aufgefaßt werden.<br />

Basiszusammenhang-Annahme (basic connection assumption): Jede Attributteilmenge X ⊆ U hat genau eine<br />

Bedeutung im Schema.<br />

damit Anfragebedeutung durch Attributmenge eindeutig bestimmt<br />

Ein-Geschmack-Annahme (unique flavour assumption): für jeden Benutzer und jede Attributmenge in einem relationalen<br />

Ausdruck und jede Datenbank R t ist jedem Tupel unabhängig von der Art seiner Erzeugung eine<br />

Bedeutung zugeordnet<br />

Arten von Zyklen in Hypergraphen<br />

Pfade im Hypergraphen deuten auf die Komplexität der Berechnung von Anfragen hin<br />

je einfacher der Pfad ist, umso einfacher wird die Berücksichtigung von Nebenbedingungen<br />

purer Zyklus Folge Y 1 , ..., Y k mit Y i ∩ Y i+1modk ≠ ∅ 1 ≤ i ≤ k und Y i ∩ Y j ∩ Y l = ∅ für verschiedene i,j,l<br />

für Attribute gibt es mindestens zwei verschiedene verbindende Pfade<br />

z.B. ({A, B}, {B, C}, {C, D}, {D, E}, {E, A})<br />

damit zwischen A, C zwei verbindende Pfade, die auch verschiedene Zusammenhänge formalisieren können<br />

γ-Zyklus Y 1 , Y 2 Y 3 mit Y 1 ∩ Y 2 ∩ Y 3 ≠ ∅ , (Y 1 ∩ Y 2 ) \ Y 3 ≠ ∅ , (Y 2 ∩ Y 3 ) \ Y 1 ≠ ∅<br />

dann existieren für Attribute in (Y 2 ∩ Y 3 ) \ Y 1 ≠ ∅ und (Y 1 ∩ Y 2 ) \ Y 3 ≠ ∅ wieder 2 verbindende Pfade<br />

Beispiel: ({A, C, H}, {B, C, K}, {A, B, C, L})<br />

zwei verschiedene Pfade zwischen A, B, die evt. verschiedene Zusammenhänge formalisieren


CAU zu Kiel, IfI, ISE, β 7. Grundlagen WS 2011/12 701<br />

Damit ist Schema<br />

γ-azyklisch falls weder purer noch γ-Zyklus existiert<br />

α-azyklisch wenn obiger Reduktionsalgorithmus von Graham λ liefert<br />

Ein Schema ist gd. γ-azyklisch, wenn Join monoton ist, bzw. wenn verlustlose Projektionen (join und project sind<br />

vertauschbar) existieren bzw. gdw. eindeutige Verbindungen existieren .<br />

d.h. Verbundabhängigkeit des Schemas impliziert alle eingebetteten Verbundabhängigkeiten<br />

α-azyklisch gdw. ∃ monotoner Verbundbaum gdw. keine hängenden Tupel gdw. R t i = Rt [U i ] gdw. alle mehrwertigen<br />

Abhängigkeiten implizieren Verbund<br />

Klassische Dekompositionstheorie ergibt bereits eine Reihe von Schemazerlegungen, z.B. das Schema in Bild 1 kann<br />

in eines der Schemata in Bild 2 zerlegt werden.<br />

C<br />

✻<br />

A<br />

✛<br />

R<br />

✲<br />

B<br />

Abbildung 1: Ein Beispielschema<br />

A<br />

✛<br />

R2<br />

R2<br />

✲<br />

C<br />

✛<br />

R3<br />

C<br />

✛<br />

❄<br />

R1 ✲<br />

Schema 2<br />

B<br />

❄<br />

A<br />

✛ R1 ✲<br />

Schema 3<br />

❄<br />

B<br />

C<br />

C<br />

✛<br />

✛<br />

R1 ✲ A ✛ R2 ✲<br />

Schema 1’<br />

R1 ✲ A ✛ R2 ✲<br />

Schema 1<br />

C<br />

C<br />

Abbildung 2: Die Zerlegung des Beispielschemas<br />

Die Zerlegung hängt von der Gültigkeit von Integritätsbedingungen ab. Der Fall ‘funktionale Abhängigkeiten’ ist<br />

in der folgenden Tabelle dargestellt.<br />

Funktionale Abhängigkeiten Schema nach Dekomposition<br />

{A} → {B} Schema 1<br />

{A} → {B} → {C} Schema 1’<br />

{A} → {B, C} Schema 1<br />

{A} ↔ {B} → {C} Schema 1, Schema 1’<br />

{A} ↔ {B, C} Schema 2<br />

{A} ↔ {B} ↔ {C} Schema 3<br />

{A} → {B} ← {C} Schema 3<br />

{A, B} → {C}<br />

kein neues Schema<br />

{A} ↔ {B} Schema 1, Schema 1’


CAU zu Kiel, IfI, ISE, β 7. Grundlagen WS 2011/12 702<br />

Eine analoge Tabelle läßt sich auch für mehrwertige Abhängigkeit angeben.<br />

Vorsicht vor <strong>and</strong>eren Zerlegungen der Proponenten des binären Entity-Relationship-Modelles.<br />

7.1.4 ER-Entwurfstheorie<br />

Verschiedene Gründe für die Normalisierung:<br />

+ Speicherminimierung: Redundante Daten erfordern zusätzlichen Speicherplatz.<br />

+ Minimierung des Risikos inkonsistenter Datenbanken: Die Kontrolle der Konsistenz von Datenbanken<br />

erfordert zusätzliche Operationen. Da damit die Integritätspflege die Performanz eines Systemes negativ beeinflußt,<br />

sollte die Konsistenzpflege minimiert werden.<br />

+ Anomalien: Sind in einer Datenbank Werte redundant gespeichert, dann ist bei jeder Operation über solchen<br />

Werten entweder diese Operation auch auf redundante Werte angew<strong>and</strong>t werden oder eine extra Spezifikation<br />

der Integritätspflege vorgenommen werden.<br />

+ Schemastabilität bei Änderungen: Durch Normalformen ziehen Änderungen des Datenschemas weniger<br />

Änderung der Datenbestände nach sich.<br />

Traditionelle Normalisierungstheorie<br />

Lokale Normalisierung: Jede Relation separat.<br />

Eingeschränkte IC-Zielmenge: Es werden i.a. nur Schlüsselbedingungen unterstützt.<br />

Besser:<br />

Globale Normalisierung mit eingeschränkten Zielen (Lokalisierung der zu normalisierenden Teile, ...).<br />

Einfache IC-Mengen: Abbildung von (S, Σ) auf (S ′ , Σ ′ ) mit Σ ′ ⊆ GoodConstraints.<br />

Beispiel bereits in Ansätzen in der relationalen Theorie: DK/NF (domain-key-NF), domain dependencies, key<br />

dependencies<br />

Normalisierungszugänge sind meist auf die Struktur einer Datenbank ausgerichtet und berücksichtigen kaum, ob semantisch<br />

sinnvolle Einheiten zerlegt werden oder sogar die Performanz dadurch sinkt. Damit wird nicht die akurate<br />

Modellierung bewertet, sondern eher die strukturelle Korrektheit. Deshalb wird hier auf Normalisierung nicht in vollem<br />

Umfange Wert gelegt. Wir unterscheiden zwischen relationaler, hierarchischer und Netzwerk-Normalisierung.<br />

Da auch bei der Modellierung bereits die Art der Plattform mit berücksichtigt werden kann, sollte man in diesem<br />

Schritt auch die Art der Normalisierung mit berücksichtigen. Im weiteren wird die relationale Normalisierung bevorzugt.<br />

Ziel ist ein Schema, das sich in ein Normalform-Schema des logischen Zielmodelles übersetzen läßt ohne daß eine<br />

zusätzliche Normalformbetrachtung erforderlich wird. Im Vorgriff definieren wir deshalb eine HERM-Normalform<br />

relationaler Schemata. Darauf aufbauend wird eine Normalform für HERM-Schemata definiert.<br />

Für ein relationales Schema R = (R, F, I) mit der Attributmenge R, den funktionalen Abhängigkeiten F und den<br />

Inklusionsabhängigkeiten I wird anh<strong>and</strong> der Inklusionsbeziehungen ein Graph mit den Knoten R definiert. Für jeden<br />

Typ R werden die ID’s R[X 1 ] ⊆ S 1 [Y 1 ], ..., R[X n ] ⊆ S n [Y n ] zusammengestellt (verlassende ID’s). Z R = ∪ n i=1 X i<br />

Relationshiptyp 0-ter Ordnung: Typ, der keine unpaaren verlassenden ID’s hat (d.h. T [Z] ⊆ R[X] ⇒ R[X] ⊆<br />

T [Z]).


CAU zu Kiel, IfI, ISE, β 7. Grundlagen WS 2011/12 703<br />

Relationshiptyp i-ter Ordnung: Im Graphen gelten folgende Eigenschaften:<br />

1. Keine unpaaren verlassenden ID’s.<br />

2. Mindestens ein Typ S j ist (i − 1)-ter Ordnung. Die maximale Ordnung der Typen S j ist i − 1.<br />

3. Alle linken Seiten der verlassenden ID’s sind paarweise disjunkt.<br />

4. Alle linken Seiten Z R bilden eine Schlüssel von R.<br />

Schwacher Typ i-ter Ordnung: Folgende Bedingungen gelten:<br />

1. n ≥ 1<br />

2. Für jeden minimalen Schlüssel W von R existiert eine Zerlegung W 1 , W 2 so daß W 1 ∩ X i = ∅ oder<br />

W 1 ∩ X i = X i gilt und W 2 ∩ Z = ∅.<br />

Ein relationales Schema ist in HERM-Normalform, falls<br />

1. die ID-Menge azyklisch und nicht redundant ist,<br />

2. alle ID’s schlüsselbasiert sind (d.h. R[X] ⊆ S[Y ] ⇒ Y Teil eines Schlüssels von S oder selbst Schlüssel von<br />

S ist),<br />

3. alle Typen in BCNF bzgl. F ∪ I sind und<br />

4. R zerlegt werden kann in Relationshiptypen entsprechender Ordnung bzw. schwache Typen entsprechender<br />

Ordnung.<br />

Ein HERM-Schema ist in Normalform, wenn jeder Typ in BCNF ist, alle Inklusionsabhängigkeiten schlüsselbasiert<br />

sind und wenn Relationshiptypen durch ihre Komponenten identifizierbar sind.<br />

Es gilt: Ein HERM-Schema ist in ein relationales Schema in HERM-Normalform genau dann durch einfache<br />

Transformation ohne Einbettung transformierbar, wenn es in HERM-Normalform ist.<br />

(d.h.: Jedem Typen wird ein relationaler Typ zugeordnet. Komponenten in Relationshiptypen werden durch einen<br />

minimalen Schlüssel mit entsprechenden Erweiterungen des Namen dargestellt.)<br />

Analog kann eine Transformation mit Einbettung über comp(R, R ′ ) = (1, 1) definiert werden. Es sei V = R \ Z.<br />

Relationshiptyp 0-ter Ordnung mit Fremdschlüsseln Es gibt nur solche unpaare verlassende ID’s R[X] ⊆ S[Y ]<br />

mit X ∩ K = ∅ für einen Schlüssel K von R.<br />

Relationshiptyp i-ter Ordnung mit Fremdschlüsseln wie oben<br />

Schwacher Typ i-ter Ordnung mit Fremdschlüsseln<br />

2. wie oben<br />

1. wie oben<br />

3. mindestens eine verlassende ID R[X] ⊆ S[Y ], wobei X ein Teil eines minimalen Schlüssels ist.<br />

Ein relationales Schema ist in schwacher HERM-Normalform, falls<br />

1. die ID-Menge azyklisch und nicht redundant ist,<br />

2. alle ID’s schlüsselbasiert sind (d.h. R[X] ⊆ S[Y ] ⇒ Y Teil eines Schlüssels von S oder selbst Schlüssel von<br />

S ist),<br />

3. alle Typen in BCNF bzgl. F ∪ I sind und


CAU zu Kiel, IfI, ISE, β 7. Grundlagen WS 2011/12 704<br />

4. R zerlegt werden kann in Relationshiptypen mit Fremdschlüsseln entsprechender Ordnung bzw. schwache Typen<br />

mit Fremdschlüsseln entsprechender Ordnung.<br />

Beispiel:<br />

Institut = (Name, Gebäude)<br />

Angestellter = (Name, ArbeitetIn.Institut.Name, Gehalt)<br />

Angestellter[ArbeitetIn.Institut.Name] ⊆ Institut[Name]<br />

Dieses relationale Schema kann nach obigen Regeln zur Überführung in ein HERM-Schema überführt werden. Wir<br />

erhalten die Typen<br />

Institut’ = ( { Name, Gebäude }, { Name } )<br />

Angestellter’ = ( { Name, Gehalt }, { Name } ) .<br />

Das relationale Schema Angestellter enthält einen Fremdschlüssel. Außerdem gilt die Inklusionsabhängigkeit. Bei<br />

Einführung eines Relationshiptypen<br />

ArbeitetIn = ( Angestellter’, Institut’, ∅ )<br />

mit den Komplexitätsbeschränkungen<br />

comp(ArbeitetIn, Angestellter ≽ (0,1) , comp(ArbeitetIn, Angestellter) ≽ (1,n) ,<br />

die sich aus der Schlüsselabhängigkeit von Angestellter undder Inklusionsabhängigkeit ableiten. Das HERM-Diagramm<br />

ist in Bild 4 dargestellt. Die Einlagerung kann mitunter besser sein aus operationalen Gesichtspunkten.<br />

Name<br />

Gehalt<br />

Name<br />

Gebäude<br />

Angestellter’ ✛<br />

(1,1)<br />

ArbeitetIn<br />

✲<br />

Institut’<br />

Abbildung 3: Beispiel für ein HERM-Schema, das in eine schwache HERM-NF überführt wird<br />

Damit ist ein <strong>and</strong>eres Herangehen möglich als in der Literatur empfohlen:<br />

* Schrittweise Transformation von HERM-Schemata in normalisierte HERM-Schemata; gegebenenfalls mit Unterstützung<br />

des Benutzers<br />

* Festlegen des für den Benutzer noch tolerierbaren veränderten Schemas;<br />

Hat ein <strong>and</strong>eres Schema ein besseres operationales Verhalten, ist aber für den Benutzer nicht ausreichend<br />

einsichtig, dann kann das Transformationsverfahren als Regelwerk abgelegt werden.<br />

* Automatische Überführung des normalisierten HERM-Schemas in ein normalisiertes relationales Schema.<br />

Der Benutzer kann im weiteren auf dem HERM-Schema arbeiten und ist nicht auf ein Verständnis der Normalisierung<br />

angewiesen.<br />

Es gibt eine Reihe von Verhaltensproblemen in Datenbanken, die auf schlechte Strukturierung zurückführbar sind:<br />

Schlüsselbasierte update-Anomalien: Durch eine update-Operation kann eine, die Primär- oder alle Schlüsselbeziehungen<br />

außer Kraft gesetzt werden. Die beiden ersten Fälle werden bei 4NF bzw. BCNF vermieden.<br />

Schlüsselbasierte insert-Anomalien: Obwohl nach einer insert-Operation alle Schlüsselbeziehungen gelten, kann<br />

eine <strong>and</strong>ere Integritätsbedingung, die vorher galt, nicht mehr gelten. Schemata in vierter Normalform sind frei<br />

von diesen Anomalien.<br />

Schlüsselbasierte delete-Anomalien: Obwohl nach einer delete-Operation alle Schlüsselbeziehungen gelten, kann<br />

eine <strong>and</strong>ere Integritätsbedingung, die vorher galt, nicht mehr gelten. Schemata in vierter Normalform sind frei<br />

von diesen Anomalien.


CAU zu Kiel, IfI, ISE, β 7. Grundlagen WS 2011/12 705<br />

Nichtdeterministische Operationen: Die Verfeinerung der Operation führt zu einer Operation, die je nach Fall<br />

verschiedene Eingabeinformationen erfordert. Man kann unterscheiden in Identifikationsinformationen und<br />

Objektinformationen, die auf das betr<strong>of</strong>fene Objekt abzielen. Ist ein Typ in BCNF bzw. in 4NF, dann ist ein<br />

solches Verhalten ausgeschlossen für die Verfeinerung der einfachen Operationen.<br />

Objektbasierte update-Anomalien: Obwohl das Einfügen des modifizierten Objekten wieder zu einem konsistenten<br />

Zust<strong>and</strong> führt, ist die direkte Modifikation nicht konsistent.<br />

Redundante <strong>Information</strong>smengen: Eine <strong>Information</strong> kann ohne Benutzung dieser aus bereits in der Datenbank<br />

vorh<strong>and</strong>enen <strong>Information</strong>en abgeleitet werden.<br />

7.1.5 ER-basierte Beh<strong>and</strong>lung von mehrwertigen Abhängigkeiten<br />

Mehrwertige Abhängigkeiten sind genuine ER-Abhängigkeiten wie wir im weiteren zeigen werden.<br />

Wir betrachten zuerst einige einfache Beispiele:<br />

Name<br />

Gehalt<br />

Name<br />

Gebäude<br />

Angestellter’ ✛<br />

(1,1)<br />

ArbeitetIn<br />

✲<br />

Institut’<br />

Abbildung 4: Beispiel für ein HERM-Schema, das in eine schwache HERM-NF überführt wird<br />

Student ✛<br />

✻<br />

❨<br />

Belegt<br />

✲<br />

Vorles<br />

InDept<br />

Von<br />

❄<br />

Dept<br />

❥<br />

Leiter<br />

Abbildung 5: Ungünstige Zerlegung des komplexen Typen<br />

Student ✛<br />

Belegt<br />

✲<br />

Vorles<br />

✻<br />

InDept<br />

❄<br />

Dept<br />

✛<br />

Leitet<br />

✲<br />

Leiter<br />

Abbildung 6: Bessere Zerlegung des komplexen Typen<br />

Die unterschiedlichen Definitionen von mehrwertigen Abhängikeiten am Beispiel.<br />

Beispiel: Mitarbeiter, Mitversichert, Projekt, Lieferant, Produkt


CAU zu Kiel, IfI, ISE, β 7. Grundlagen WS 2011/12 706<br />

{ Name } → { Abteilung, Mitversichert }|{ Projekt, Produkt, Lieferant }<br />

{ Name } → { Mitversichert }|{ Abteilung, Projekt, Produkt, Lieferant }<br />

{ Projekt } → { Name, Abteilung, Mitversichert }|{ Produkt, Lieferant }<br />

{ Produkt } → { Abteilung, Name, Mitversichert, Projekt }|{ Lieferant }<br />

Ein Mitarbeiter determiniert die Abteilung und seine Mitversicherte unabhängig von den Projekten und benutzten<br />

Produkten, sowie deren Lieferanten.<br />

...<br />

In einem Projekt wird mit Produkten von Lieferanten unabhängig von den Mitarbeitern, deren Mitversicherten und<br />

deren Abteilungen gearbeitet.<br />

Ein Produkt wird von einem Lieferanten geliefert, unabhängig wer in welchem Projekt damit arbeitet.<br />

Gegeben: relationales Schema R = (U R , Σ R ), Relation R C über R<br />

Teilmengen X, Y ⊆ U R und Z = U R \ (Y ∪ X)<br />

(1) Klassische Definition: R C |= X → Y |Z<br />

falls für alle t, t ′ ∈ R C mit t = X t ′ ein Element t ′′ ∈ R C<br />

existiert mit t ′′ = X∪Y t und t ′′ = X∪Y t ′<br />

(2) Dekompositionsdefinition: R C |= X → Y |Z<br />

falls R C = R C [X ∪ Y ] ✶ R C [X ∪ Z]<br />

(3) Unabhängigkeitsdefinition: R C |= X → Y |Z<br />

falls (σ X=x (R C ))[Y ] = (σ (X=x)∧(Z=z) (R C ))[Y ]<br />

für alle X-Werte x ∈ R C [X] und alle Z-Werte z ∈ R C [Z]<br />

Äquivalenzbeweis: (1) ⇒ (2) ⇒ (3) ⇒ (1)<br />

Z.B. für (1) ⇒ (2) ist Ziel: R C ⊇ R C [X ∪ Y ] ✶ R C [X ∪ Z]<br />

Gegeben seien t 1 ∈ R C [X ∪ Y ] und t 2 ∈ R C [X ∪ Z] mit t 1 = X t 2<br />

⇒ {t 1 } ✶ {t 2 } ⊆ R C wegen R C |= X → Y |Z<br />

Diese Definitionen im Beispiel:<br />

Name Abteilung Project Produkt ...<br />

Bodo DB-Adm Migration DB2 ...<br />

Bodo DB-Adm Integration Sybase ...<br />

Bodo DB-Prog Migration DB2 ...<br />

Bodo DB-Prog Integration Sybase ...<br />

Hans DB-Adm Ablösung MS SQL ...<br />

Hans Middlew Ablösung MS SQL ...<br />

Karl DB-Prog Migration DB2 ...<br />

Karl DB-Prog Portal Sybase ...<br />

... ... ... ... ...<br />

• Ableitung von Tupeln aus existierenden:<br />

Name Abteilung Project Produkt ...<br />

Bodo DB-Adm Migration DB2 ...<br />

Bodo DB-Prog Integration Sybase ...<br />

Bodo DB-Adm Integration Sybase ...<br />

• Dekomposition in { Name, Abteilung } und { Name, Project, Produkt,...}


CAU zu Kiel, IfI, ISE, β 7. Grundlagen WS 2011/12 707<br />

Name Abteilung Name Project Produkt ...<br />

Bodo DB-Adm Bodo Migration DB2 ...<br />

Bodo DB-Prog Bodo Integration Sybase ...<br />

Hans DB-Adm Hans Ablösung MS SQL ...<br />

Hans Middlew Karl Migration DB2 ...<br />

Karl DB-Prog Karl Portal Sybase ...<br />

... ... ... ... ...<br />

Zwei weitere Definitionen sind die folgenden:<br />

(4) Konstruktordefinition: R C |= X → Y |Z<br />

falls für alle x ∈ R C [X] mit (σ X=x (R C ))[Y ∪ Z] = (σ X=x (R C ))[Y ] × (σ X=x (R C ))[Z]<br />

d.h. ν Z (ν Y \X (ν X (R C ))) = ν Y \X (ν Z (ν X (R C )))<br />

(5) Strukturierungsdefinition: R C |= X → Y |Z<br />

R C {X} {Y } {Z}<br />

A 1 ... A k A k+1 ... A m A m+1 ... A n<br />

... ... ... ... ... ... ... ... ...<br />

X = {A 1 , ..., A k }, Y = {A k+1 , ...., A m }, Z = {A m+1 , ..., A n }<br />

als verschachtelte Relation<br />

Weiterführung der Beispiele<br />

• Verschachtelte Relation: (Name, {Abteilung }, { Project, Produkt,...} )<br />

Name { Abteilung } { (Project, Produkt, ...) }<br />

Bodo { DB-Adm, DB-Prog } { (Migration, DB2, ...)<br />

(Integration, Sybase,...) }<br />

Hans { DB-Adm, Middlew } { (Ablösung, MS SQL, ... )}<br />

Karl { DB-Prog } { (Migration, DB2, ...)<br />

(Portal, Sybase, ...) }<br />

... ... ...<br />

Die ER-Beh<strong>and</strong>lung von MVD’s.<br />

Gegeben: relationales Schema R = (U R , Σ R ), Relation R C über R<br />

Teilmengen X, Y ⊆ U R und Z = U R \ (Y ∪ X)<br />

(6) Trennung von Gesichtspunkten: R C |= X → Y |Z<br />

Y ✛ XY ✲ X ✛ XZ ✲<br />

Z<br />

oder als Schneeflockenschema mit Relationship-Typen<br />

✛<br />

XY ✲ X ✛ XZ ✲<br />

oder als Sternschema mit schwachen Relationship-Typen<br />

Y(X)<br />

✲ X ✛ (X)Z<br />

(1,n) (1,n)


CAU zu Kiel, IfI, ISE, β 7. Grundlagen WS 2011/12 708<br />

(Abteilung)<br />

DB-Adm<br />

DB-Prog<br />

Middleware<br />

✲ Mitarb. ✛<br />

Bodo<br />

Hans<br />

Karl<br />

(Project, Produkt,...)<br />

(Migration, DB2, ...)<br />

(Integration, Sybase,...)<br />

(Ablösung, MS SQL, ... )<br />

(Portal, Sybase, ...)<br />

Das Beispielschema und die beh<strong>and</strong>elte MVD wird dann durch das folgende ER-Diagramm repräsentiert:<br />

Beobachtung 2.<br />

Ein adäquate Beh<strong>and</strong>lung von MVD ist nur mit vollständiger rechter Seite sinnvoll.<br />

Die Axiomatisierung von mehrwertigen Abhängigkeiten in der ER Welt.<br />

Ableitungsregeln in der klassischen relationalen Notation:<br />

Gegeben seien:<br />

X, X ′ , X ′′ , Y, Y ′ , Z, Z ′ , V, W ⊆ U<br />

alle Mengen einer Abhängigkeit bilden Überdeckung von U<br />

Axiom: (1 M ) X → ∅|Z<br />

Regeln<br />

(23 M )<br />

(27 M )<br />

(21 M )<br />

X → X ′ ∪ Y |X ′′ ∪ Z<br />

X ∪ X ′ ∪ X ′′ → Z|Y<br />

X ∪ V → Y |Z , X → Y ∪ Z|V<br />

X → Y |Z ∪ V<br />

(Abschwächung)<br />

(Wurzelreduktion)<br />

X → Y ∪ Y ′ |Z ∪ Z ′ , X → Y ∪ Z|Y ′ ∪ Z ′ (Baumrestrukturierung)<br />

X → Y |Z ∪ Z ′ ∪ Y ′<br />

Theorem 2 (1) (1 M ), (21 M ) und (23 M ) sind vollständig für mehrwertige Abhängigkeiten<br />

(2) (1 M ), (21 M ), (23 M ) und (27 M ) sind korrekt<br />

Ableitungsregeln (Strukturell):<br />

Axiom<br />

Wurzelreduktion<br />

X ∪ Z<br />

✲<br />

X<br />

Y (X)<br />

✲ X ∪ V ✛ (X)Z Y ∪ Z(X)<br />

✲ X ✛ (X)V<br />

Y (X)<br />

✲<br />

X<br />

✛ (X)Z ∪ V<br />

Baumrestrukturierung<br />

Abschwächung<br />

Y ∪ Y ′ (X)<br />

(X)Y ′ ∪ Z ′<br />

X ′ ∪ Y (X)<br />

✲<br />

X<br />

✛ (X)X ′′ ∪ Z<br />

❄<br />

X<br />

✛ (X)Z ∪ Z ′<br />

Y ∪ Z(X)<br />

✲<br />

❄<br />

X<br />

Y<br />

(X ∪ X ′<br />

∪X ′′ )<br />

✲<br />

X<br />

∪X ′<br />

∪X ′′<br />

✛<br />

Z<br />

(X ∪ X ′<br />

∪X ′′ )<br />

✲ Y (X)<br />

✛ (X)Z ∪ Z ′ ∪ Y ′<br />

X<br />

Ableitungsregeln für MVD und FD


CAU zu Kiel, IfI, ISE, β 7. Grundlagen WS 2011/12 709<br />

X, X ′ , X ′′ , Y, Y ′ , Z, Z ′ , V, W ⊆ U<br />

alle Mengen einer mehrwertigen Abhängigkeit bilden Überdeckung von U<br />

Axiom: (1 F ) X ∪ Y −→ Y (1 M ) X → ∅|Z<br />

X −→ Y<br />

Regeln (21 F )<br />

(FD − MVD − Reduktion)<br />

X → Y<br />

X −→ Y , Y −→ Z<br />

(22 F )<br />

(FD − Transitivität)<br />

X ∪ V ∪ W −→ V ∪ Z<br />

(23 M )<br />

(3 F,M )<br />

(21 M )<br />

X → X ′ ∪ Y |X ′′ ∪ Z<br />

X ∪ X ′ ∪ X ′′ → Z|Y<br />

X ∪ V → Y |Z , X → Y ∪ Z|V<br />

X → Y |Z ∪ V<br />

X ∩ Y<br />

→ Y \ X|X \ Y , X −→ Z<br />

X ∩ Y −→ Y ∩ Z<br />

(MVD − Abschwächung)<br />

(MVD − Wurzelreduktion)<br />

(FD − Rückkopplung)<br />

Theorem 3 (1 F ), (1 M ), (21 F ), (22 F ), (23 M ), (3 F,M ) sind vollständig und korrekt für funktionale und mehrwertige<br />

Abhängigkeiten.<br />

Beweis: siehe B. Thalheim - HERM-Buch<br />

Hierarchische Abhängigkeit X<br />

→ Y 1 |Y 2 |...|Y m als Verallgemeinerung der mehrwertigen Abhängikeiten<br />

Y 2 (X) ...<br />

Y 1 (X)<br />

❄<br />

✲<br />

X ✛<br />

(X)Y m<br />

Ableitungsregel:<br />

(27 H )<br />

X → Y ∪ Y ′ |Z ∪ Z ′ , X → Y ∪ Z|Y ′ ∪ Z ′ (Baumentfaltung)<br />

X → Y |Y ′ |Z|Z ′<br />

✲<br />

Y ∪ Y ′ (X)<br />

✛ (X)Z ∪ Z ′<br />

X<br />

✲<br />

Y ∪ Z(X)<br />

✛ (X)Y ′ ∪ Z ′<br />

X<br />

Y (X)<br />

Y ′ (X)<br />

❄<br />

✲<br />

Z(X)...<br />

❄<br />

X ✛<br />

(X)Z ′ ✲<br />

Abhängigkeitsbasis<br />

Gegeben Menge funktionaler und mehrwertiger Abhängigkeiten Σ<br />

X + = { A ∈ U | Σ |= X −→ {A} }<br />

Dep M (X, Σ) = { Y i | Σ |= X → Y i , Y i ∩ X + = ∅,<br />

̸ ∃Y i ′ ⊂ Y i(Y i ′ ≠ Y i ∧ Σ |= X → Y i ′)<br />

}<br />

Dep M,F (X, Σ) = Dep M (X, Σ) ∪ { X + \ X }


CAU zu Kiel, IfI, ISE, β 7. Grundlagen WS 2011/12 710<br />

Abhängigkeitsbasis<br />

X<br />

X + \ X<br />

✠<br />

(X)Y 1<br />

✛<br />

(X)Y 2<br />

❪ ...<br />

(X)Y m<br />

als Stern-Schema<br />

Unterschiedliche Sichtweisen<br />

über Schalen des Sterns<br />

Verallgemeinerung<br />

zu Schneeflocken-Schema<br />

Berechnung über Axiomatisierung mit hierarchischen Abhängigkeiten<br />

analoge Theorie zu Graph-Abhängigkeiten<br />

Erwünscht: Konkurrenzfreie (konfliktfreie) Abhängigkeitsbasis<br />

Ausblick zur Abhängigkeitsbasis<br />

• Es existiert ein O(|R| · |Σ| p )-Algorithmus zur Bestimmung der Abhängigkeitsbasis einer Menge X ⊆ U.<br />

• Konkurrierende Abhängigkeitsbasis besitzt<br />

• Wurzelschnitt: es existiert für X → Y |Z ∈ Σ ∗ eine spleißende Abhängigkeit S → T |V ∈ Σ ∗ ,<br />

d.h. es gilt sowohl X ∩ T ≠ ∅ als auch X ∩ V ≠ ∅ ,<br />

oder<br />

• Schnittanomalie: aus Σ |= X → Z|V, Y → Z|W folgt nicht Σ |= (X ∩ Y ) → Z.<br />

• Konkurrierende Abhängigkeitsbasis führt zu unterschiedlichen<br />

Schema-Varianten je nach Sichtweise<br />

Vereinheitlichung durch Vergröberung oder<br />

Ergänzung der Abhängigkeiten<br />

Reduzierte Abhängigkeitshülle:<br />

Σ ∗ = { X → Y |Z | Σ |= X → Y |Z , X ∩ Y = X ∩ Z = Y ∩ Z = ∅ , Y ≠ ∅ , Z ≠ ∅ }<br />

Sichtweisen durch Abhängigkeitsbasis<br />

Mitarbeitsichtweise<br />

DepBasis(Name,Σ) \{ Name} =<br />

{{ Abteilung }, { Mitversichert }, { Project, Produkt, Lieferant }}<br />

(Project, Produkt, Lieferant)<br />

❄<br />

Abteilung ✲ Name ✛ Mitversichert


CAU zu Kiel, IfI, ISE, β 7. Grundlagen WS 2011/12 711<br />

Projektsichtweise<br />

DepBasis(Projekt,Σ) \{ Projekt} =<br />

{{ Produkt }, { Lieferant }, { Name, Abteilung, Mitversichert }}<br />

(Name, Abteilung, Mitversichert)<br />

❄<br />

Produkt ✲ Projekt ✛ Lieferant<br />

Sichtweisen durch Abhängigkeitsbasis<br />

Dekomposition des Relationship-Typen zu einem Teilschema<br />

nur im Fall konkurrenzfreier mehrwertiger Abhängigkeiten<br />

ansonsten Wahl einer Sichtweise<br />

oder Wahl einer Abschwächung<br />

oder wiederholte Betrachtung der Abhängigkeiten<br />

z.B. kann Lieferant ggf. falsch angebunden sein (zu schwach spezifiziert)<br />

Beobachtung 3.<br />

Unterschiedliche Sichtweisen sind ggf. je nach Aspekt der Anwendung interessant und können ggf. auch konkurrierend<br />

benutzt werden.<br />

Beobachtung 4.<br />

Eine kombinierte Sichtweise kann, muß aber nicht existieren.<br />

Kombinierte Sichtweise<br />

DepBasis(Name,Σ) \{ Name} =<br />

{{ Abteilung }, { Mitversichert }, { Project, Produkt, Lieferant }}<br />

DepBasis(Projekt,Σ) \{ Projekt} =<br />

{{ Produkt }, { Lieferant }, { Name, Abteilung, Mitversichert }}<br />

Abteilung<br />

✛<br />

arbeitet ✲ Name ✛ Mitversichert<br />

❄<br />

Produkt ✲ Projekt ✛ Lieferant<br />

Beobachtung 5.<br />

• Mehrwertige Abhängigkeiten spezifizieren eine interne Strukturierung.<br />

• Mehrwertige Abhängigkeiten sind axiomatisierbar.<br />

(auch gemeinsam mit funktionalen Abhängigkeiten


CAU zu Kiel, IfI, ISE, β 7. Grundlagen WS 2011/12 712<br />

nicht aber gemeinsam mit Inklusionsabhängigkeiten<br />

(Verwaschung der Arten))<br />

• Die Abhängigkeitsbasis erlaubt eine vollständige Entfaltung zu stärkster hierarchischer Abhängigkeit.<br />

Die ER-Repräsentation führt zu einem verständlichem Schema.<br />

• Es können konkurrierende Schemata existieren.<br />

Literatur


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

8. Verteilung ab SS 2011/12<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 />

8 Spezifikation der Verteilung bzw. der Kollaboration<br />

Entzwei’ und gebiete! Tüchtig Wort;<br />

Verein’ und leite! Bessrer Hort.<br />

Goethe, Sprichwörtlich<br />

auch Wieringa Part V<br />

Zusätzliche Literatur: [?, ?, Sch96, ?, ?, ?]<br />

8.1 Grundlagen verteilter Datenbanksysteme<br />

Best<strong>and</strong>teil der Grundvorlesung<br />

In den 60er und 70er Jahren beobachteten wir einen Übergang von Datei- zu Datenbanksystemen. Damit wurden die Datenunabhängigkeit<br />

der Anwendungsprogramme erhöht, eine transaktionsorientierte Verarbeitung und ein Mehrnutzerbetrieb ermöglicht sowie eine hohe Ausfallsicherheit<br />

im Parallelbetrieb erreicht, insbesondere durch Integration von Recovery-Funktionen wie Crash-Recovery, Media-Recovery. Da<br />

Hardware teuer war, wurden die teuren Hardware-Ressourcen effizient genutzt durch eine starke Zentralisierung von Rechentechnik. Damit<br />

st<strong>and</strong>en kleine Adreßräume zur Verfügung und die S<strong>of</strong>tware war limitiert. Damit mußten auch eine redundanzarme bzw. -freie Speicherung<br />

von Daten und eine minimale Anzahl von Relationen erzwungen werden. Diese Situation änderte sich danach vollständig. Hardware wurde zunehmend<br />

kostengünstiger. Man konnte schrittweise zu ‘online’-Anwendungen übergehen. Damit versagte allerdings auch die Datenintegration<br />

via Job-Control-Sprache. Es wurde außerdem ein ‘online’-Update erforderlich. Dies bedingte das Zusammenführen von bislang getrennten<br />

Anwendungen und Datenbeständen. Außerdem mußte die Integration verteilter <strong>Information</strong>ssysteme angestrebt werden.<br />

In den 80er Jahren wurden mit der Weiterentwicklung der Datenbanktechnologie verstärkt verteilte Systeme eingesetzt. Dafür gibt es<br />

verschiedene Ursachen:<br />

• Daten werden zunehmend teurer und stellen Kapital dar, dessen Pflege meist nur einer Einrichtung zugeordnet werden darf. Daten<br />

werden wieder direkt ‘vor Ort’ verarbeitet wie vor Einführung der Rechenzentren.<br />

• Das Geschäftsleben und der Wettbewerb werden globalisiert. Die Benutzeranforderungen und der Markt favorisieren deshalb eine<br />

dezentralisierte Verwaltung bei der Forderung nach einer vollständigen Benutzbarkeit aller Daten.<br />

• Eine immer größere Anzahl von verschiedenartigen Lösungen und verschiedenartigen Datenbanken erforderte zugleich die Investitionen<br />

durch Datensharing beizubehalten.<br />

• Mit dem Trend zu autonomen Betriebseinheiten (‘lean management’, ‘pr<strong>of</strong>it center’) wurden ‘überintegrierte’ <strong>Information</strong>ssysteme<br />

aufgesplittet und eine Dezentralisierung der Datenverarbeitung angestrebt.


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 714<br />

Diese Forderungen konnten zunehmend durch die Hardware (und die S<strong>of</strong>tware) befriedigt werden. LAN’s wurden auch aufgrund steigender<br />

Kosten bei Mainframe-Lösungen immer populärer.<br />

Damit wurden mit einer Verbesserung der Produktionsorganisation und dem Trend zur ‘schlanken Produktion’ auch eine schnelle Reaktion,<br />

intelligente Operationen Datenbanksystemanforderungen wie schneller ad-hoc-Zugriff und verteilter Zugriff bzw. verteilte Speicherung neu<br />

aufgewertet. Verteilte Datenbanksysteme haben gegenüber zentralisierten Datenbanksystemen die Vorteile einer höheren Performanz (insbesondere<br />

bei entsprechenden Entfernungen und einer Vielzahl von Benutzern), geringerer Kosten (insbesondere für die Pflege) und einer<br />

höheren Zuverlässigkeit und Verfügbarkeit (insbesondere bei partiellen Systemfehlern). Damit können zugleich Daten entsprechend Anforderungspr<strong>of</strong>ilen<br />

an verschiedenen Stellen abgelegt werden, auf Daten schneller zugegriffen werden, Daten schneller verarbeitet werden, Erweiterungen<br />

(insbesondere von weiteren Teilnehmern) einfacher vorgenommen werden, die Kommunikation verbessert, geringere CPU-Kosten,<br />

benutzerfreundliche und spezialisierte Schnittstellen erzeugt werden, die Anwendungen gegenüber von Ausfällen eines Knotens besser abgesichert<br />

werden und die Prozessoren vonein<strong>and</strong>er unabhängig operieren. Diesen Vorteilen stehen allerdings Nachteile wie komplexere Verwaltung<br />

und Steuerung, schwierigeres Sicherheitsmanagement und das Fehlen von St<strong>and</strong>ards gegenüber.<br />

Eine verteilte Datenbank ist eine inhaltlich zusammenhängende Datenbank, die auf mehreren physisch unabhängigen Knoten (Rechner,<br />

Speichermedien) verteilt wird. Die auf den Knoten abgelegten Partitionen der Datenbank können dabei auch nicht separiert vonein<strong>and</strong>er sein<br />

(Datensharing). Ein verteiltes System ist gekennzeichnet durch<br />

• eine Anwendungsschnittstelle für verschiedene Endbenutzer,<br />

• eine Validierungsfunktion zur Analyse der Datenanforderungen,<br />

• eine Transformationskomponente zur Berechnung der Anforderungen an die Komponenten,<br />

• eine Anfrageoptimierung, die die Verteilung berücksichtigt,<br />

• ein Input/Output-Interface für die Daten,<br />

• eine Formatierungsfunktion zur Anpassung der generierten Daten an die Benutzeranforderungen,<br />

• ein Sicherheitsmanagement, um Datensicherheit zu gewährleisten,<br />

• Backup- und Wiederanlauffunktionen,<br />

• eine Datenbankadministration,<br />

• eine Steuerung für den konkurrierenden Zugriff über das Netz und<br />

• eine Transaktionsverwaltung.<br />

Damit besteht ein verteiltes DBMS aus Rechnern, die Knoten zugeordnet sind, einem Kommunikationsnetzwerk zur Verbindung der Knoten,<br />

aus einem Netzwerk-Hard- und S<strong>of</strong>tware, aus Transaktionsprozessoren (TP) und aus Datenprozessoren (DP).<br />

TP<br />

DP<br />

Lokales DBMS<br />

✛<br />

✲ Kommunikationsnetzwerk<br />

✛<br />

✲<br />

TP<br />

DP<br />

Lokales DBMS<br />

Abbildung 1: Grundsätzliche Architektur verteilter DBMS<br />

Die verteilte Datenbank präsentiert sich gegenüber den Endbenutzern bzw. Anwendungsprogrammen wie eine zentrale Datenbank. Dieses<br />

Ziel erfordert das Verstecken aller ‘störenden’ Aspekte. Die Lösung besteht in der Realisierung eines (‘integrierenden’ und ‘homogenisierenden’)<br />

globalen Schemas. Deshalb sind die Verteilung der Daten, inklusive der Kopienhaltung (d. h. der Partitionierung 1 und Allokation), ebenso<br />

wie die strukturellen und semantischen Heterogenitäten (mittels Schematransformation bzw. -integration) zu verstecken. Aus Performanz- und<br />

Sicherheitsgründen werden dabei dieselben Daten an verschiedenen Knoten redundant gespeichert (redundante Allokation). <strong>Information</strong>en des<br />

gleichen Typs werden ggf. an verschiedenen Knoten verschieden dargestellt, z. B. <strong>and</strong>ers strukturiert (strukturelle Heterogenität) bzw. mit<br />

<strong>and</strong>eren Bedeutungsinhalten (semantische Heterogenität). Eine <strong>and</strong>ere Lösung ist die Partitionierung globaler Relationen, indem logisch an<br />

sich zusammengehörende Daten in homogener Form an verschiedenen Knoten gespeichert werden.<br />

Mit dieser Funktionalität kann ein verteiltes DBMS<br />

• eine Anfrage entgegennehmen,<br />

• diese analysieren, prüfen und zerlegen,<br />

• diese Teile den einzelnen Komponenten zuordnen,<br />

• auf verschiedene I/O-Operationen zurückführen,<br />

• die entsprechenden Daten suchen, lokalisieren, lesen und validieren,<br />

• auf dieser Grundlage die Konsistenz, Sicherheit und Integrität prüfen,<br />

• die Daten entsprechend der ursprünglichen Dekomposition validieren und<br />

1 Wir verwenden hier den Begriff ‘Partition’. In der Literatur wird neben dem Begriff ‘Partition’ der Begriff ‘Fragment’ benutzt. Da wir<br />

jedoch auf eine disjunkte Überdeckung des Datenbankinhaltes orientieren, ist das Wort ‘Partition’ eher geeignet.


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 715<br />

• am Ende die gewonnenen Daten entsprechend der Anfrage dem Benutzer zur Verfügung zu stellen.<br />

Diese Aktivitäten sind aber für dem Benutzer nicht sichtbar. Wir unterscheiden dabei verschiedene Arten von Sichtbarkeit.<br />

Je nach Verteilung der einzelnen Komponenten unterscheiden wir<br />

Einfachknoten-Berechnung und Einfachknoten-Datenhaltung,<br />

Einfachknoten-Berechnung und Mehrfachknoten-Datenhaltung,<br />

Mehrfachknoten-Berechnung und Einfachknoten-Datenhaltung und<br />

Mehrfachknoten-Berechnung und Mehrfachknoten-Datenhaltung.<br />

Die Mehrfachknoten-Berechnung und Einfachknoten-Datenhaltung entspricht im Wesentlichen der Client/Server-Architektur der Workstationbasierten<br />

DBMS.<br />

Wir können auf verschiedene Rechner bei Vorh<strong>and</strong>ensein eines Netzes verschiedene Ressourcen verteilen:<br />

Daten: Daten können auf verschiedenen Rechnern abgelegt und auf Anfrage bzw. Abforderung <strong>and</strong>eren Rechnern zugänglich gemacht werden.<br />

Prozesse: Prozesse können auf verschiedenen Rechnern ausgeführt und über ein Netz zusammengeführt werden.<br />

Steuerung: Die Bearbeitung kann durch verteilte Steuerung der einzelnen Prozesse und des Datenaustausches erleichtert werden.<br />

Dabei kann die Organisation der Verteilung unterschieden werden nach Prozeßcharakteristika und Prozeßwissen:<br />

Umfang des Sharing: In verteilten Datenbanken kann sowohl kein Sharing an <strong>Information</strong>en stattfinden als auch Sharing in verschiedenen<br />

Stufen. Je größer der Sharing-Anteil, umso kritischer wird die Pflege und umso besser wird die Zugriffszeit auf Fremddaten.<br />

Verhalten von Zugriffsmustern: Die Zugriffsmuster über das Netz können statisch oder auch dynamisch sein. Statische Zugriffsmuster, die<br />

sich nicht verändern, sind relativ selten. Dynamische Zugriffsmuster bedingen dagegen einen ständigen Anpassungsprozeß.<br />

Umfang des Wissens über den verteilten Zugriff: Die <strong>Information</strong> über das Zugriffsverhalten kann vollständig, wird jedoch meist nur<br />

partiell sein. Je weniger Wissen vorh<strong>and</strong>en ist, umso schlechter kann die verteilte Datenbank an die Anforderungen angepaßt werden.<br />

Grundsätzlich sollen in einer verteilten Datenbank die Benutzer nicht mit der Verteilung direkt konfrontiert sein. Die Verteilung wird<br />

deshalb unsichtbar bleiben:<br />

Nichtsichtbarkeit der Verteilung: Die Benutzer wissen nicht, welche Daten auf welche Knoten verteilt wurden.<br />

Wir unterscheiden dabei verschiedene Niveaus von Nichtsichtbarkeit:<br />

Nichtsichtbarkeit der Partitionierung : Der Benutzer kennt weder die Partitionierung noch die Knoten, sondern kann das System<br />

benutzen wie eine zentralisierte Datenbank.<br />

Nichtsichtbarkeit der Lokalisierung bei sichtbarer Partitionierung : Der Benutzer muß die Partition angeben, nicht aber die Lokalisierung.<br />

Sichtbarkeit der Lokalisierung und Partitionierung : Der Benutzer muß sowohl die Lokalisierung als auch die Partitionierung angeben.<br />

Nichtsichtbarkeit der Transaktionen: Die Benutzer kennen die Verteilung von Transaktionen nicht.<br />

Durch remote-Anforderungen können Daten auch von <strong>and</strong>eren Knoten, z.T. auch unabhängig und parallel, geholt werden. Es wird durch<br />

einige Systeme auch eine verteilte Steuerung ermöglicht. Mit einem Zweiphasen-Commit-Protokoll wird der Abschluß der Transaktion<br />

auch über verschiedene Knoten kontrolliert.<br />

Nichtsichtbarkeit des Ausfalls einzelner Komponenten: Solange ein Ausfall nicht das Funktionieren beeinflußt, erfahren die Benutzer<br />

nichts vom Ausfall einzelner Komponenten.<br />

Nichtsichtbarkeit des Funktionierens: Das System hat nach außen das gleiche Verhalten wie ein zentralisiertes System.<br />

Nichtsichtbarkeit der Heterogenität: Das System ist in der Lage, die verschiedenen heterogenen Best<strong>and</strong>teile dem Benutzer wie ein einheitliches,<br />

auf einem globalen konzeptionellen Schema beruhendes System erscheinen zu lassen.<br />

8.1.1 Verteilungskonzepte<br />

Mit einer Partitionierung sind Einschränkungen der Performanz verbunden.<br />

Daten können auf verschiedene Art partitioniert werden wie in Bild 44:<br />

Horizontale Partitionierung: Daten werden horizontal zerlegt (d. h. eine Tabelle oder Relation wird tupelweise zerlegt in verschiedene Teilrelationen)<br />

und verschiedenen Medien zugeordnet. In Bild 44 wird die Relation R durch Anwendung von Selektionsoperationen in drei<br />

Teilrelationen zerlegt, wobei gefordert wird, daß sich die Relation R aus den Teilrelationen wiederherstellen läßt durch Vereinigung<br />

dieser Teilrelationen. Damit müssen die Bedingungen α, β und γ als Disjunktion den Wahrheitswert true ergeben. Neben Selektionsoperationen<br />

können auch <strong>and</strong>ere Operationen der relationalen Algebra verwendet werden. Es wird jedoch im Kontext verteilter DBS<br />

exklusiv die Selektion verwendet.


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 716<br />

Vertikale Partitionierung: Daten werden vertikal zerlegt (d. h. eine Relation oder Tabelle wird attributweise dekomponiert) und auf verschiedene<br />

Medien verteilt. In Bild 44 wurde die Relation R durch Projektion in zwei Teilrelationen zerlegt. Der natürliche Verbund dieser<br />

beiden Teilrelationen muß wiederum die ursprüngliche relation R ergeben.<br />

Gemischte Partitionierung: Daten werden sowohl horizontal als auch vertikal zerlegt und auf verschiedene Knoten aufgeteilt. Es werden<br />

schrittweise zur Partitionierung Selektion und Projektion angew<strong>and</strong>t.<br />

A 1 A 2 A 3 A 4<br />

A 1 A 2 A 3 A 4<br />

Relation R 2<br />

A 1 A 2 A 3 A 4<br />

= σ β (R)<br />

Relation R 1<br />

= σ α (R)<br />

Relation R 3<br />

= σ γ (R)<br />

horizontale Partitionierung<br />

⇑ ↓<br />

(Dekompostion durch Selektion)<br />

A 1 A 2 A 3 A 4<br />

Rekonstruktion<br />

R := R 1 ∪ R 2 ∪ R 3<br />

Relation R<br />

vertikale Partionierung<br />

(Dekomposition durch Projektion)<br />

⇓<br />

↑<br />

Rekonstruktion<br />

R := R[{A 1 , A 2 , A 3 }] ✶ R[{A 1 , A 4 }]<br />

A 1 A 2 A 3<br />

A 1 A 4<br />

Relation<br />

R[{A 1 , A 2 , A 3 }]<br />

Relation<br />

R[{A 1 , A 4 }]<br />

Abbildung 2: Partitionierungskonzepte<br />

Die Partitionierungstiefe kann bei einer Partitionierung von keine Partitionierung bis zu einer Partitionierung auf Attribut- bzw. Objektniveau<br />

reichen.<br />

Für die Partitionierung sind einige Korrektheitsregeln in verschiedenen Abstufungen einzuhalten:<br />

Vollständigkeit: In Analogie zur Eigenschaft der verlustlosen Dekomposition bei der Normalisierung können Klassen in mehrere Teilklassen<br />

oder anh<strong>and</strong> von Teilstrukturen in Partitionen zerlegt werden. Eine Eigenschaft eines Objektes kann dabei einmalig oder mehrmalig<br />

repräsentiert sein.<br />

Rekonstruierbarkeit:<br />

Je nach Zerlegung bzw. Partitionierung existiert eine Funktion ∇ zur Wiederherstellung der ursprünglichen Klassen.<br />

Disjunktheit: Die Partitionen sind entweder disjunkt oder es existiert ein Algorithmus, mit dessen Hilfe gleiche Eigenschaften eines Objektes<br />

in verschiedenen Partitionen gepflegt werden können. Meist kann ein solcher Algorithmus über Identifikationsmechanismen definiert<br />

werden.<br />

Sobald eine Datenbank partitioniert ist, muß eine Allokation der verschiedenen Partitionen zu den Knoten des Netzes erfolgen. Die<br />

Partitionierung und Allokation werden ebenso wie im Falle zentraler DBS in einem Datenbank-Katalog (data dictionary (DD)) verwaltet. Ein<br />

zugeordnetes Datum kann dabei repliziert oder einmalig einem Knoten zugeordnet sein. Es können Prozesse für Daten in zwei Extremen<br />

unterstützt werden:


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 717<br />

Read-only-Zugriff für Replikate: Die Zuverlässigkeit und Effizienz (insbesondere für parallele Zugriffe) ist bei Read-only-Zugriffen auf<br />

Replikaten höher. Zugleich entsteht aber ein update-Problem.<br />

Read-<strong>and</strong>-write-Rechte für Replikate: Die Zuverlässgkeit und unter gewissen Umständen die Effizienz sinken. Ein update wird analog zu<br />

Triggermechanismen vorgenommen.<br />

Je nach Umfang der Replikation können verschiedene Probleme entstehen. Damit ist für jede Anwendung abzuwägen, inwieweit eine<br />

Replikationsstrategie günstig ist.<br />

Art der Replikation: volle teilweise keine<br />

Anfrageberechnung<br />

einfach<br />

gleiche Komplexit .ȧt<br />

←→<br />

gleiche Komplexit .ȧt<br />

←→<br />

DD-Verwaltung einfach oder<br />

nicht existent<br />

Steuerung der mittel hoch einfach<br />

Parallelität<br />

Zuverlässigkeit sehr hoch hoch niedrig<br />

Realistisches mögliche realistische mögliche<br />

Anwendungsszenario Anwendung Anwendung Anwendung<br />

Komplexität der Operationen bzw. Eigenschaften der Operationen<br />

Die Analogie zu Diensteplattformen ergibt hier einen der versprechenden Implementationsansätze.<br />

Common Facilities<br />

Object Request Broker<br />

Object Services<br />

Betriebssystem, Transportdienste<br />

Abbildung 3: CORBA auf IDL Grundlage<br />

Durch die Object Management Group (OMG) wurde die in Bild 3 und Bild 4 dargestellte Object Management Architecture (OMA)<br />

verabschiedet. Sie gestattet eine höhere Interoperabilität durch st<strong>and</strong>ardisierte Zugriffsschnittstellen. Die Schnittstellenbeschreibung erfolgt<br />

durch IDL (Interface Definition Language). Der Object Request Broker ist der Vermittler in der Client-/Server-Kooperation zwischen Objekten.<br />

Ein Aufruf besteht aus dem Tripel (Operationsname, Zielobjekt, Parameter). Damit wird eine Ortstransparenz realisiert. Die Objektdienste<br />

(Object Services) realisieren Basisfunktionen für die Erzeugung und Verwaltung von Klassen und Objekten, zur Namensverwaltung und für<br />

die Persistenz von Datenbank-Objekten. Mit den Common Facilities werden allgemeine Hilfsfunktionen (Klassenbibliotheken) zur Verfügung<br />

gestellt.<br />

Anwendungsobjekte<br />

Common<br />

Facilities<br />

Object Request Broker<br />

Objektdienste<br />

Abbildung 4: OMG - Architektur<br />

In der Realisierung von OMA in der Common Object Request Broker Architecture (CORBA) in Bild 5 sind statische und dynamische<br />

Methodenaktivierungen (Aufrufschnittstellen) realisiert. Die ORB-Schnittstelle ermöglicht einen Zugriff auf Infrastrukturfunktionen, z. B.<br />

für die Verwaltung globaler OIDs und die Registrierung von Objekten. Die Kommunikation zwischen ORBs wird über das IIOP (Internet<br />

Inter-ORB-Protokoll) realisiert.


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 718<br />

Client<br />

Objekt Implementation<br />

IDL<br />

Stubs<br />

❄ ❯ ✠ ❄ ❘<br />

ORB<br />

Schnittstellen<br />

IDL<br />

Skelett<br />

ORB Kern<br />

Object<br />

Adapter<br />

Interface<br />

Repository<br />

Implementation<br />

Repository<br />

Abbildung 5: CORBA - Architektur<br />

8.1.2 Architektur verteilter Datenbanksysteme<br />

In konventionell realisierten verteilten Datenbanksystemen wird die Verteilung in den Anwendungen selbst realisiert. Die Anwendungsprogramme<br />

können mitein<strong>and</strong>er kommunizieren. Dadurch werden an den Entwurf der Schnittstellen dieser Programme hohe Anforderungen<br />

gestellt. In verteilten Datenbanksystemen wird die Verteilung über das verteilte Datenbankmanagementsystem übernommen. Die Verteilung<br />

der Daten ist für das einzelne Anwendungsprogramm nicht mehr sichtbar.<br />

Allen verteilten Datenbanksystemen ist die Verteilung der Daten auf verschiedene Knoten und die lokale Verarbeitung von Anfragen<br />

durch die lokalen Komponenten gemeinsam. Mitunter werden auch verteilte Dateisysteme als verteilte Datenbanksysteme bezeichnet. Obwohl<br />

Dateisysteme als Datenbanksysteme der ersten Generation aufgefaßt werden können, haben sie wenig gemeinsam mit Datenbanksystemen.<br />

Die Funktionalität von verteilten Datenbanksystemen kann nach der folgenden Tabelle unterschieden werden:<br />

Merkmale verteilter Homogene Interope- Föde- Offene<br />

Datenbanksysteme eng integr. rable rierte Multi-DB<br />

Physische Verteilung der Daten + + + +<br />

Logische Sicht als eine Datenbank + +/- +/- -<br />

Nichtsichtbarkeit der Verteilung + - +/- -<br />

Gemischter DB-Zugang (glob./lok.) - - + -<br />

Zerlegung glob. Anfragen durch DBMS + - + -<br />

Lokale Ausführung von Teilanfragen + + + +<br />

Globales Transaktionskonzept + - + -<br />

Lokale Autonomie wird erhalten - + - +<br />

Homogene, eng integrierte verteilte Datenbanksysteme<br />

Das verteilte System ist von außen als ein homogenes System sichtbar. Es besitzt ein integriertes Schema. Die lokalen Systeme sind nicht<br />

autonom. Das Transaktionskonzept ist global.<br />

Damit werden Leistungsanforderungen wie im Falle zentraler Datenbanksysteme anwendbar. Daraus resultiert auch die Anwendungsbreite:<br />

• Hochleistungsdatenbanksysteme durch Nutzung der Parallelverarbeitung;<br />

• Fehlertolerante Datenbanksysteme durch Nutzung der kontrollierten Redundanz;<br />

• Dezentralisierte Datenbanksysteme zur Reduktion des Kommunikationsaufkommens und der Abhängigkeit vom Netz.<br />

Mehrrechnerdatenbanksysteme sind eine typische Realisierungsform von homogenen integrierten Datenbanksystemen. Es sind im Wesentlichen<br />

drei Realisierungsvarianten entwickelt worden:<br />

• In der Shared-Everything-Architektur sind sowohl Systempuffer als auch Sperrtabelle global.<br />

• In der Shared-Disk-Architektur wird wie in der vorhergehenden Variante die Platten-Peripherie über eine Variante von Bussystemen<br />

gemeinsam genutzt. Die einzelnen Anfragen werden lokal durch eigene Rechner mit eigenem Hauptspeicher verarbeitet.<br />

• In der Shared-Nothing-Architektur wird ein vollständig verteiltes System aufgebaut, dessen einzelne Systeme durch schnelle Kommunikationverbindungen<br />

mitein<strong>and</strong>er verbunden sind.<br />

Architektur föderativer Datenbanken<br />

Föderative Datenbanken folgen dem Besitzer/Benutzer-Prinzip, wobei zusätzlich noch einem Benutzer Leserechte durch den Besitzer verweigert<br />

werden können. Sie wirken aufgrund einer Spezifikation der Kooperation zusammen. Bei Kopplungen muß auch die lokale Effizienz


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 719<br />

gewahrt bleiben. Wir unterscheiden dabei<br />

• singuläre Föderationen, bei denen die lokalen DBMS heterogen sein können, die jedoch auf einem globalen Schema basieren und<br />

dieses für die Berechnungen benutzen, und<br />

• multiple Föderationen, bei denen die einzelnen Systeme auch eigene, <strong>and</strong>eren nicht zugänglich gemachte Daten besitzen, die nicht<br />

mehr auf einem globalen Schema beruhen und die über Exportschemata mitein<strong>and</strong>er zusammenarbeiten.<br />

Eine Weiterentwicklung von multiplen Föderationen sind sprachlich gekoppelte Multi-DBMS. Dazu wird jedoch erst geforscht, so daß hier für<br />

den Entwurf nur föderative DBMS betrachtet werden.<br />

Der Entwurf einer föderativen Datenbank kann dabei von folgender Referenzarchitektur ausgehen:<br />

Lokale Schemata sind die Schemata der einzelnen Netzknoten.<br />

Komponentenschemata sind die lokalen Schemata in einer für die Koordinierung aufbereiteten Form. Das Datenbankmodell kann verschieden<br />

vom Datenbankmodell des lokalen Schemas sein.<br />

Exportschemata beschreiben die netzweit zugänglichen Daten, die den Teilnehmern einer Föderation zugänglich gemacht werden müssen.<br />

Föderative Schemata fassen die Exportschemata analog zur Sichtenintegration wie oben beschrieben zu einem allgemeinen Schema zusammen.<br />

Weiterhin werden Ansätze zur Auflösung von Modellierungskonflikten, statische Daten zur Optimierung, zur Verteilung<br />

(Partitionierung, Replikation etc.) erfaßt.<br />

Transformationsprozessoren erlauben eine Abbildung der lokalen Schemata auf die Komponentenschemata.<br />

Filterprozessoren filtern aus den Komponentenschemata die Daten für die Exportschemata heraus.<br />

Konstruktionsprozessoren dienen zur Einbindung der Exportschemata in die oder das föderative Schema.<br />

✻<br />

Exportschema<br />

❄<br />

Filterprozessor<br />

✻<br />

Interface zum föderativen Schema<br />

❄<br />

Konstruktionsprozessor<br />

✻<br />

Komponentenschema<br />

❄<br />

Transformationsprozessor<br />

✻<br />

Lokales DB-Schema<br />

❄<br />

Lokales<br />

DBMS<br />

Abbildung 6: Die Architektur von föderativen Datenbanksystemen<br />

Der nächste Schritt sind interoperable föderative <strong>Information</strong>ssysteme. Deren Dienste können wie in Bild 46 dargestellt werden.<br />

Diese Entwicklungslinie läßt sich für interoperable, föderative Systeme fortsetzen.<br />

Verteilung \ DBMS Zentrale Verteilte Interoperable Föderative<br />

Datenbankmodell A A B B<br />

Plattform A A A B<br />

Replikation/Partitionierung A B B B<br />

Insgesamt ergibt sich damit die folgende in Bild 47 dargestellte Architektur.


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 720<br />

Anwendungs-Service<br />

Abstrakter Service<br />

Konkreter Service<br />

System Service<br />

Abbildung 7: Eine Schichten-Architektur für interoperable Umgebungen<br />

Lokaler Benutzer A<br />

Lokaler Benutzer B<br />

Benutzer-<br />

Interface<br />

System A<br />

Globaler Benutzer<br />

System B<br />

Benutzer-<br />

Interface<br />

Lokale<br />

Anwendungen<br />

Lokales<br />

DBMS<br />

Föderationssystem<br />

Benutzer-<br />

Interface<br />

Globales<br />

Kommunikationsund<br />

Verknüpfungs-<br />

System<br />

Föderationssystem<br />

Lokale<br />

Anwendungen<br />

Lokales<br />

DBMS<br />

Abbildung 8: Interoperable föderierende <strong>Information</strong>ssysteme


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 721<br />

Offene Multidatenbanksysteme<br />

In einem <strong>of</strong>fenen, sehr losen Verbund werden <strong>of</strong>fene Multidatenbankensysteme realisiert. Typische Anwendungsbeispiele sind autonome Systeme,<br />

die ihre Funktionalität ‘befreundeten’ Systemen öffnen wie z. B. Reservierungssysteme, Recherchedatenbanken und <strong>Information</strong>sdienste.<br />

Die Integration findet nur in den anwendungsnahen Schichten statt und kann von lokaler Komponente zu lokaler Komponente variieren. Damit<br />

wird ein hoher Grad an Autonomie erreicht. Zugleich sind diese Systeme eher für den lesenden Zugriff geeignet. Eine globale Transaktionskomponente<br />

kann nicht existieren. Die Modifikation der Daten wird dann nicht wie mit einem Two-Phase-Commit unterstützt, sondern durch<br />

entsprechende Kompensationsoperationen vorgenommen. Eine Transaktion wird z. B. in einem Buchungssystem durch eine Stornierungsbuchung<br />

aufgehoben. Ein Rollback existiert nur lokal.<br />

Übungsaufgaben.<br />

Die folgenden Übungsaufgaben dienen der Kontrolle des allgemeinen Verständnisses. Es sollen noch einmal kurz Verteilungskonzepte, grundlegende<br />

Architekturen und die grundlegenden Definitionen geprüft werden.<br />

1. Anwendungsszenarien. Entwickeln Sie realistische Anwendungsszenarien, in denen eine Berechnung bzw. eine Datenhaltung auf jeweils<br />

Einfach- bzw. Mehrfachknoten eine sinnvolle Lösung ist!<br />

2. Zugriffsmuster. Entwickeln Sie für eine Anwendung Zugriffsmuster, die eine verteilte Datenhaltung günstig erscheinen lassen bzw. sehr<br />

aufwendig werden lassen.<br />

3. Abgrenzung zu verteilten Dateisystemen. Ein verteiltes Dateisystem suggeriert der benutzenden Anwendung, daß alle Dateien lokal<br />

verfügbar sind. Skizzieren Sie die Funktionsaufrufe, die notwendig sind, wenn eine Anwendung auf einen Datenblock über einen<br />

Knoten A zugreift, der zu einer Datei gehört, die jedoch auf einem Knoten B gespeichert ist! Ist damit eine lokale Anfragebearbeitung<br />

möglich?<br />

8.1.3 Mehrrechner-Datenbanksysteme<br />

In diesem Kapitel werden Mehrrechner-Datenbanksysteme eingeführt. Es werden Anforderungen vorgestellt, die zur Entwicklung von Mehrrechnersystemen<br />

führten. Im Überblick beh<strong>and</strong>eln wir darauf aufbauende Architekturen. Diese Systeme werden in der Praxis breit angew<strong>and</strong>t.<br />

Sie erlauben eine einfachere Verwaltung als verteilte DBS, sind jedoch redundanter und kostenintensiver.<br />

Die in diesem Kapitel beh<strong>and</strong>elten Konzepte werden vertiefend in [?, Rah94, ?] beh<strong>and</strong>elt, sowie in der Vielzahl von Zeitschriften- und<br />

Konferenzveröffentlichungen (genannt seien dazu Konferenzserien wie ACM SIGMOD, ADBIS, BTW, DEXA, ER, FOIKS, ICDT, VLDB).<br />

Wir unterscheiden zwischen verteilten und parallelen Systemen.<br />

Ein verteiltes System besteht aus autonomen Subsystemen, die <strong>of</strong>t (weit) entfernt vonein<strong>and</strong>er angeordnet sind, aber koordiniert zusammenarbeiten,<br />

um eine gemeinsame Aufgabe zu erfüllen. Das für verteilte Systeme charakteristische Kernproblem ist der Mangel an<br />

globalem (zentralisiertem) Wissen.<br />

Ein paralleles System besteht aus einer Vielzahl gleichartiger Subsysteme (Komponenten), die lokal zuein<strong>and</strong>er angeordnet sind und nur<br />

einen geringen Grad an Autonomie aufweisen. Charakteristisch ist eine enge und hochgradig parallele Bearbeitung eines Benutzerauftrags.<br />

Anforderungen an Mehrrechner-Datenbanksysteme.<br />

Mehrrechner-Datenbanksysteme bedingen den Einsatz mehrerer Rechner bzw. DBMS zur koordinierten Verarbeitung von Datenbankoperationen.<br />

Anforderungen an solche Systeme sind:<br />

• Hohe Leistung: hohe Transaktionsraten bei kurzen Antwortzeiten<br />

• Hohe Verfügbarkeit/Fehlertransparenz<br />

• Modulare Erweiterungsfähigkeit<br />

• Verteiltransparenz für DB-Benutzer (für Anwendungsprogramme bzw. Endbenutzer)<br />

• Koordinierter Zugriff auf heterogene Datenbanken<br />

• Unterstützung geographisch verteilter Datenbanken (Wahrung einer hohen Knotenautonomie)<br />

• Hohe Kosteneffektivität<br />

• Einfache H<strong>and</strong>habbarkeit/Administrierbarkeit.<br />

Typische Anwendungen verteilter Systeme entwickeln sich insbesondere im Internetkontext. Die in Bild 9 dargestellte Anwendung kann<br />

sowohl eine klassische Datenbankanwendung (wie z. B. eine Anwendung im Bankwesen oder im Versicherungsbereich) sein als auch eine<br />

Internetanwendung. Ein typisches Beispiel könnte z. B. ein Auskunftssystem ’Veranstaltungskalender Deutschl<strong>and</strong>’ sein. Nur durch eine<br />

lokale Pflege und ggf. vor Ort kann die Konsistenz und die Aktualität der Daten gesichert werden. In diesem Fall wird eine Anfrage, die<br />

eine <strong>and</strong>ere Site betrifft, an das lokale Anwendungssystem dieser Site übergeben. Dieses verarbeitet die Anfrage und stellt dem anfragenden<br />

System die Antwort zur Verfügung. Eine derartige Architektur erfordert jedoch eine abgestimmte Vorbereitung. In diesem Fall kooperieren<br />

die Anwendungssysteme. Es wird keine vollständige Integration angestrebt. In Bild 9 wird die Entwicklungslinie von zentralisierten Systemen<br />

hin zu verteilten und spezialisierten Systemen aufgezeigt, die gerade im Internetbereich die Zukunft bestimmen werden. Im Internetbereich<br />

bestimmen die obigen Anforderungen die Anwendungen.<br />

Verteilte DBMS können zu parallelen DBMS weiterentwickelt werden. Damit werden die Beschränkungen der sequentiellen Verarbeitung<br />

überwunden. Typische Leistungsmerkmale bei sequentieller Verarbeitung sind:


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 722<br />

Zentralisiertes System<br />

Site A Site B Site C<br />

Kooperierende verteilte Anwendungen<br />

HTTP<br />

Server<br />

DBMS<br />

DB<br />

⇒<br />

Site A Site B Site C<br />

✻ ✻ ✻<br />

Netzwerk<br />

❄ ❄ ❄<br />

Lok. Anw. Lok. Anw. Lok. Anw.<br />

✻ ✻ ✻<br />

Netzwerk<br />

❄ ❄ ❄<br />

Zentalisiertes<br />

Anwendungssystem<br />

Anwendungsserver<br />

Anw.-<br />

server<br />

DBMS<br />

DB<br />

✛✲<br />

Anw.-<br />

server<br />

DBMS<br />

DB<br />

✛✲<br />

Anw.-<br />

server<br />

DBMS<br />

DB<br />

Abbildung 9: Von zentralisierten Internet-Systemen zu verteilten<br />

• Zugriffsraten zur Platte mit 5 MB/s,<br />

• Suchen z. B. mittels Relationen-Scan mit einer Geschwindigkeit von 1 MB/s,<br />

• Sortieren mit einer Geschwindigkeit von 0.1 MB/s und<br />

• relativ langsamer Verbund.<br />

Größere Datenbanken können damit nicht mehr unterstützt werden. Durch den Einsatz von Parallelität innerhalb von Transaktionen (Intra-<br />

Transaktionsparallelität) können dagegen erreicht werden:<br />

• kurze Antwortzeiten für daten- und/oder berechnungsintensive DB-Anfragen<br />

• zeitgünstige Operationen auf großen Relationen z. B. Scan, Join-Berechnung, Sortierung, Indexgenerierung,<br />

• Volltextsuche in Literaturdatenbanken und<br />

• effiziente Multimedia-Anwendungen.<br />

Mit einer hohen InterTransaktionsparallelität werden hohe Transaktionsraten für OLTP und lineares Durchsatzwachstum erreicht.<br />

Parallele Datenbanksysteme sind ein spezieller Typ von Mehrrechner-DBS mit den Hauptzielen: hohe Leistung, Verfügbarkeit, Skalierbarkeit<br />

und Kosteneffektivität. Ihre Architektur kann wie in Bild 10 dargestellt werden durch:<br />

• Parallelrechner mit hoher Anzahl von Mikroprozessoren,<br />

• lokale Verteilung (Cluster),<br />

• skalierbares Hochgeschwindigkeitsnetzwerk und<br />

• I/O-Parallelität.<br />

Parallele Systeme genügen Anforderungen wie hohen Transaktionsraten mit einem Durchsatz von weit mehr als 1000 Transaktionen pro<br />

Sekunde (TPS) (vom Typ ’Kontenbuchung’), realisieren kurze Antwortzeiten trotz höheren Durchsatzes und Kommunikationsverzögerungen<br />

auf der Grundlage von Parallelisierung komplexer Anfragen und sind demzufolge von hoher Akzeptanz für den Dialogbetrieb. Sie genügen<br />

deshalb ständig steigenden Leistungsanforderungen durch wachsende Zahl von Benutzern/Terminals, Einführung neuer Anwendungen und<br />

neuer Transaktionstypen, durch ständiges Wachstum der Datenbanken, durch Bearbeitung komplexerer Vorgänge und Integritätsbedingungen,<br />

insbesondere auch bei Benutzung höherer Programmiersprachen und für komfortablere Benutzerschnittstellen.<br />

Beispiele für hohe Leistungsanforderungen sind Bankanwendungen und Reservierungssysteme, in denen Kontenbuchungen oder Platzreservierungen<br />

mit einem Durchsatz von mehreren 1000 TPS und einer Antwortzeit von weniger als 2 Sekunden (sec) bearbeitet werden<br />

sollen, Telefonvermittlungssysteme, die auf einem Benutzerpr<strong>of</strong>il basieren und Abrechnungssätze generieren, wodurch in Zeiten hohen Verkehrsaufkommens<br />

mehr als 15.000 solcher Transaktionen pro Sekunde entstehen und deren Antwortzeiten kleiner als 0.2 sec sein sollten,<br />

Management<strong>Information</strong>ssysteme, in denen auf z. B. einer 500 GB großen Datenbank komplexe Ad-Hoc-Anfragen ablaufen, die mitunter<br />

einen vollständigen Scan der Datenbank erfordern, und Web-Server und E-Commerce-Anwendungen.<br />

Klassifikation von Mehrrechner-Datenbanksystemen.<br />

Mehrrechner-Datenbanksysteme können nach folgenden Parametern klassifiziert werden: Klassifikationsmerkmale:


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 723<br />

PE PE PE PE PE<br />

DBS DBS DBS DBS DBS<br />

PE PE PE PE PE<br />

... ...<br />

... ... ...<br />

Hochgeschwindigkeitsnetz<br />

DBS DBS DBS DBS DBS<br />

... ...<br />

... ... ...<br />

PE PE PE PE PE<br />

Prozessorfeld<br />

DBS DBS DBS DBS DBS<br />

Paralles I/O-System<br />

Abbildung 10: Parallele Datenbanksysteme<br />

Rechnerkopplung (enge, lose oder nahe Kopplung)<br />

Räumliche Verteilung (ortsverteilt oder lokal)<br />

Externspeicheranbindung (gemeinsam (’shared’) oder partitioniert)<br />

Integrierte vs. föderative MehrrechnerDBS<br />

Homogene vs. heterogene DBS<br />

Funktionale Spezialisierung vs. funktionale Gleichstellung der Prozessoren.<br />

Die enge Rechnerkopplung (tightly coupled) in Bild 11 ist ein weit verbreiteter Ansatz. Sie ist gekennzeichnet durch folgende Eigenschaften:<br />

• gemeinsamer Hauptspeicher für alle Prozessoren;<br />

• jeweils eine Kopie von S<strong>of</strong>tware-Komponenten (Betriebssystem, Datenbanksystem, Anwendungssystem etc.);<br />

• jeder Prozessor besitzt einen Hardware-Cache.<br />

Vorteile dieser Architektur sind insbesondere:<br />

• einfache Realisierung,<br />

• wenig neue DB-Probleme,<br />

• effiziente Kommunikation über Hauptspeicher,<br />

• Lastbalancierung durch Betriebssystem und<br />

• Single System Image Verwaltung.<br />

Es ergeben sich jedoch die folgenden Nachteile:<br />

• mangelnde Fehlerisolation durch gemeinsam benutzte Speicher und S<strong>of</strong>tware;<br />

• begrenzte Erweiterbarkeit und Skalierbarkeit (N < 30, meist N < 10) und<br />

• Cache-Kohärenz.<br />

Die lose Rechnerkopplung (loosely coupled) in Bild 12 verwendet N autonome Rechner mit separatem Hauptspeicher pro Knoten und<br />

eigenen S<strong>of</strong>tware-Kopien. Die Kommunikation wird durch Nachrichtenaustausch realisiert.<br />

Vorteile dieser Architektur sind insbesondere:<br />

• höhere Fehlerisolation und Verfügbarkeit und<br />

• bessere Erweiterbarkeit.<br />

Sie besitzt jedoch auch Nachteile:<br />

• Der Nachrichtenaustausch ist aufwendig und führt zum Kommunikations-Overhead.<br />

• Es wird kein ‘single system image’ verwendet und damit die Redundanz vergrößert.<br />

Die nahe Rechnerkopplung (closely coupled) in Bild 13 ist ein Kompromiß zwischen enger und loser Kopplung mit dem Ziel einer<br />

effizienteren Kommunikation verglichen mit loser Kopplung unter Beibehaltung einer ausreichenden Fehlerisolation und Erweiterbarkeit. N<br />

autonome Rechnerknoten kommunizieren zum Teil über gemeinsame Halbleiter-Speicherbereiche. Voraussetzung dazu ist eine lokale Rechneranordnung.<br />

Der gemeinsame Speicher muß einen schnellen Zugriff im Mikrosekundenbereich zur Umgehung von Prozeßwechseln für einen synchronen<br />

Zugriff besitzen. Er hat i. Allg. keine Instruktionsadressierbarkeit, ist ggf. nicht flüchtig und führt Speicherinhalte ggf. doppelt. Eine weitere<br />

Einsatzform einer nahen Kopplung beruht auf der Verwendung von Spezialprozessoren, z. B. einer ’lock engine’ zur globalen Synchronisation.<br />

Bei der topologischen bzw. räumlichen Verteilung können verschiedene Zuordnungen angew<strong>and</strong>t werden:


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 724<br />

Privater<br />

Cache<br />

Privater<br />

Cache<br />

Prozessor<br />

Prozessor<br />

Hauptspeicher<br />

Abbildung 11: Enge Kopplung von Rechnern<br />

Privater<br />

Cache<br />

Privater<br />

Cache<br />

Prozessor<br />

✛<br />

✲<br />

Prozessor<br />

Hauptspeicher<br />

Hauptspeicher<br />

Abbildung 12: Lose Kopplung von Rechnern<br />

Privater<br />

Cache<br />

Privater<br />

Cache<br />

Prozessor<br />

✛<br />

✲<br />

Prozessor<br />

Hauptspeicher<br />

Hauptspeicher<br />

■<br />

❘ ✠<br />

✒<br />

Gemeinsamer<br />

Speicher<br />

Abbildung 13: Nahe Kopplung von Rechnern


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 725<br />

lokale Zuordnung: Mit einer lokalen Verteilung ist eine schnelle Rechnerkopplung möglich. Komponenten wie Speicher und Hochgeschwindigkeitsbus<br />

werden ggf. gemeinsam benutzt. Der Nachrichtenaustausch ist effizienter und robuster als in Weitverkehrsnetzen.<br />

Es werden einfachere Kommunikationsprotokolle z. B. im Broadcast- bzw. Multicast-Verfahren verwendet. Damit kann eine effektive<br />

dynamische Lastverteilung erreicht werden. Sie ist eine bessere Voraussetzung für Intra-Transaktionsparallelität und erlaubt eine<br />

einfachere Administration.<br />

ortsverteilte Zuordnung: Damit werden dezentrale Organisationsstrukturen unterstützt. Sie ist Voraussetzung für schnelle Katastrophen-<br />

Recovery, da sich replizierte Datenbanken an entfernten Knoten befinden.<br />

Die Verteilung wird stark durch die Kommunikationskosten mitbestimmt. Die Kosten zum Senden und Empfangen einer Nachricht setzen<br />

sich aus den folgenden Komponenten zusammen:<br />

• CPU-Kosten für Kommunikationsprotokoll;<br />

• Signallaufzeiten für Übertragung des ersten Bits (i. Allg. angenommen: Lichtgeschwindigkeit);<br />

• Übertragungsdauer für die gesamte Nachricht aufgrund der vorh<strong>and</strong>enen B<strong>and</strong>breite des Kommunikationsmediums.<br />

Der Kommunikationsaufw<strong>and</strong> wird durch die technischen Möglichkeiten stark determiniert. Sie sind einer Veränderung unterworfen, die<br />

jedoch nicht mit den wachsenden Anforderungen des Internetzeitalters schritthalten, wie die folgende Tabelle zeigt:<br />

Shared Memory LAN WAN<br />

typische Entfernung < 10 m 1 km 10.000 km<br />

CPU-Kosten pro SEND/RECEIVE 250 Instr. 2500 Instr. 25.000 Instr.<br />

Signallaufzeit 0,1 µs 10 µs 100.000 µs<br />

B<strong>and</strong>breite 1990 1 Gbps 10 Mbps 50 Kbps<br />

B<strong>and</strong>breite 2000 1 Gbps 1 Gbps 100 Mbps<br />

Weiterhin unterscheiden sich verteilte Systeme durch ihre Externspeicheranbindung:<br />

gemeinsamer Externspeicher: Der Externspeicher wird gemeinsam in einer lokale Rechneranordnung genutzt. Damit bieten sich lose oder<br />

nahe Kopplung mit Shared-Disk bzw. Datenbank-Sharing an oder auch die enge Kopplung.<br />

Von Vorteil ist, daß jeder Prozessor alle Daten direkt erreichen und damit eine Lastbalancierung vornehmen kann. Es ist außerdem<br />

keine Partitionierung der Datenbank erforderlich.<br />

Nachteilig wirken sich neue Datenbank-Probleme z. B. bzgl. Synchronisation, Pufferverwaltung, Logging/Recovery aus.<br />

partitionierter (Shared-Nothing; DB-Distribution) Es kann eine lokale oder ortsverteilte Rechneranordnung verwendet werden. Im Allgemeinen<br />

bietet sich eine lose Rechnerkopplung an. Die (statische) Replikation der Daten ist möglich. Dieser Zugang ermöglicht eine<br />

verteilte Transaktionsausführung beim Zugriff auf entfernte Daten.<br />

Zusammenfassend kann man die verwendeten Zugänge wie in Bild 14 unterscheiden.<br />

Mehrrechnersysteme<br />

Rechnerkopplung<br />

Externspeicherzuordnung<br />

gemeinsam<br />

partitioniert<br />

Topologische<br />

Verteilung<br />

lokal lokal ortsverteilt<br />

eng nahe lose (nahe) lose lose<br />

Shared<br />

everything Shared disk Shared nothing<br />

Abbildung 14: Zugänge für Mehrrechnersysteme<br />

Parallele Datenbanksysteme können in analoger Art und Weise unterschieden werden in:<br />

Shared-everything-Architektur: Mit einem Hochgeschwindigkeitsnetzwerk sind sowohl die Prozessoren als auch die Speicher und die Datenbanken<br />

mitein<strong>and</strong>er verbunden. Damit kann eine hohe Universalität durch symmetrisches Multiprocessing erreicht werden. Zugleich<br />

sind diese Systeme sehr komplex, schlecht erweiterbar und wenig robust.<br />

Shared-disk-Architektur: Durch ein Hochgeschwindigkeitsnetzwerk werden die Datenbanken und die Einzelrechner mitein<strong>and</strong>er verbunden.<br />

Die Einzelrechner benutzen gemeinsam die Datenbanken, sind aber in ihrer Steuerung und Berechnung isoliert.


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 726<br />

Shared-nothing-Architektur: Die Rechner verfügen über ihre lokalen Datenbanken, Prozessoren etc. Sie sind über ein Hochgeschwindigkeitsnetz<br />

mitein<strong>and</strong>er verbunden.<br />

Die beiden letzten Architekturen haben eine Reihe von Vor- und Nachteilen:<br />

Kriterium Shared-nothing Shared-disk<br />

Leistungsfähigkeit<br />

- statische Datenpartitionierung be stimmt<br />

Ausführungsort von DB-Operationen<br />

- lokale Erreichbarkeit aller Daten wodurch<br />

größere Möglichkeiten zur Lastba-<br />

Erweiterbarkeit<br />

Verfügbarkeit<br />

Technische<br />

Probleme<br />

- geringe Möglichkeiten zur Lastbalancierung<br />

oder Einsparung von Kommunikationsvorgängen<br />

- besonders problematisch: ‘dominie rende’<br />

Transaktionstypen und DB-Bereiche<br />

- neuer Rechner erfordert physische Neu<br />

aufteilung der Datenbank (N → N+1)<br />

- besonders problematisch für nichtrelationale<br />

DBS<br />

lancierung entstehen<br />

- Kommunikation für Synchronisation und<br />

Kohärenzkontrolle<br />

- nahe Kopplung kann zur Leistungssteigerung<br />

eingesetzt werden; trotzdem höhere<br />

Flexibilität zur Parallelisierung<br />

- keine physische (Neu-)Aufteilung der<br />

DB<br />

- direkte Plattenanbindung kann Rechneranzahl<br />

begrenzen (‘nachrichtenbasierte’<br />

I/O-Schnittstelle)<br />

- gesamte DB bleibt nach Rechnerausfall<br />

erreichbar<br />

- komplexe Crash-Recovery<br />

- Partition eines ausgefallenen Rechners<br />

zunächst nicht mehr erreichbar<br />

- Übernahme/Recovery der betr<strong>of</strong>fenen<br />

Partition durch <strong>and</strong>eren Rechner vorzusehen<br />

(ggf. Überlastungsgefahr)<br />

- ortsverteilte Replikation ermöglicht - Erstellung einer globalen Log-Datei<br />

schnelle Katastrophen-Recovery<br />

- Bestimmung der physischen DB- - Synchronisation<br />

Partitionierung<br />

- verteilte Anfrageverarbeitung - globale Deadlock-Beh<strong>and</strong>lung<br />

- parallele Anfrageverarbeitung - Kohärenzkontrolle<br />

- Beh<strong>and</strong>lung replizierter Datenbanken - Logging<br />

- verteiltes Commit-Protokoll - Recovery<br />

- globale Deadlock-Beh<strong>and</strong>lung - Lastverteilung, -balancierung<br />

- Lastverteilung, -balancierung - parallele Anfrageverarbeitung<br />

- Administration - Administration<br />

- besondere Probleme in ortsverteilten Systemen<br />

(Netzwerkpartitionierungen, Knotenautonomie,<br />

...)<br />

Oft wird eine vollständige Integration von verteilten Systemen angestrebt. Da das Integrationsproblem algorithmisch unentscheidbar<br />

ist, kann kein Integrationsalgorithmus existieren. Integrierte Systeme haben ein gemeinsames konzeptionelles DB-Schema. Der DB-Zugriff<br />

erfolgt wie im zentralen Fall, womit auch Verteilungstransparenz gewährleistet ist. Damit besitzen die beteiligten DBMS eine eingeschränkte<br />

Autonomie. Die einfachste Verwirklichung geht von identischen DBS-Instanzen aus, wodurch ein homogenes verteiltes System entsteht.<br />

Beispiele solcher Systeme sind verteilte DBS und Shared-disk-DBS.<br />

Andererseits ist eine vollständige Integration auch nicht das Ziel. Meist ist eine Föderation oder eine Kooperation von Systemen ausreichend.<br />

Damit können auch weitgehend unabhängige DBMS mit privaten konzeptionellen DB-Schemata verwaltet werden. Es wird eine<br />

partielle Exportierung von Schemainformationen für externe Zugriffe modelliert. Eine Heterogenität ist sowohl bei Datenmodellen als auch<br />

bei der Transaktionsverwaltung möglich. Damit entstehen allerdings Probleme mit der semantischen Heterogenität. Eine Verteilungstransparenz<br />

ist i. Allg. nur bedingt erreichbar.<br />

Die Prozessorfunktionalität gestattet eine weitere Unterscheidung verteilter und Mehrrechner-DBS:<br />

Funktionale Gleichstellung: Jeder Knoten besitzt die gleiche Funktionalität bzgl. DB-Verarbeitung. I. Allg. werden vollständige DBMS in<br />

jedem Knoten verwendet. Die Funktionen werden repliziert.<br />

Funktionale Spezialisierung: Die Funktionen werden partitioniert, separiert oder auch spezialisiert. Typische Beispiele sind DB-Maschinen<br />

mit Spezialprozessoren für bestimmte DB-Funktionen z. B. für den Verbund, das Sortieren oder auch Kommunikationsfunktionen.<br />

Ein spezielles Beipiel sind Workstation/Server-DBS. Sie werden besonders bei Non-St<strong>and</strong>ard-Anwendungen verwendet. Damit kann<br />

eine DB-gestützte Verarbeitung großer, komplex-strukturierter Datenmengen in der Workstation unterstützt werden, insbesondere bei<br />

hoher Rereferenz-Wahrscheinlichkeit bei den Daten und bei langen Transaktionen.<br />

Sowohl die Workstations als auch der Server verarbeiten Daten, besitzen eine Steuerfunktionalität und verarbeitende Funktionen.<br />

Durch den Workstation-Objektpuffer können Kommunikationsvorgänge eingespart werden. Anfragen und Methoden werden ggf. lokal<br />

ausgeführt. Auf dem Server werden globale Aufgaben ausgeführt: Logging, Synchronisation, Externspeicherverwaltung etc.


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 727<br />

Die Spezialisierung erschwert Lastbalancierung, Erweiterbarkeit und Fehlertoleranz. Deshalb werden Mischformen aus horizontaler/vertikaler<br />

Verteilung verwendet.<br />

Zusammenfassend können wir die Eigenschaften von Mehrrechnersystemen wie folgt vergleichen:<br />

Parallele DBS Verteilte DBS Föderative<br />

DBS<br />

Workst./Server-<br />

DBS<br />

Hohe Transaktionsraten ++ ◦/+ ◦ ◦<br />

IntraTAParallelität ++ ◦/+ -/ ◦ ◦/+<br />

Erweiterbarkeit + ◦/+ ◦ ◦<br />

Verfügbarkeit + + - ◦<br />

Verteilungstransparenz ++ + ◦ ++<br />

geographische Verteilung - + + ◦<br />

Knotenautonomie - ◦ + -<br />

DBSHeterogenität - - + -/ ◦<br />

Administration ◦ - -/– ◦<br />

Übungsaufgaben.<br />

Die folgenden Übungsaufgaben sollen das Verständnis der obigen Ausführungen testen. Sie sind deshalb so angelegt, daß bereits eine kurze<br />

Antwort genügt. Die letzte Übungsaufgabe dient der Erweiterung des Horizonts. Sie ist optional.<br />

1. Katalogverwaltung. Welche Alternativen eignen sich zur Katalogverwaltung in lokal verteilten Shared-Nothing-Systemen, bei denen keine<br />

Knotenautonomie zu unterstützen ist?<br />

2. Namensauflösung in R ∗ . In R ∗ wurde folgende vierteilige Struktur globaler Objektnamen realisiert:<br />

[@].][@] .<br />

Damit kann sowohl eine global eindeutige Bezeichnung für Benutzer als auch für Objekte erzeugt werden. Bei der Namensauflösung<br />

werden nicht angegebene Knotennamen mit aktuellen Knoten ersetzt.<br />

Welche Vorteile ergeben sich durch die Hinzunahme von ?<br />

Eine Relation Thalheim@L.Adresse@F soll von verschiedenen Benutzern an verschiedenen Orten referenziert werden. Wie sieht der<br />

jeweils kürzeste Name aus, der (ohne Synonyme) korrekt zum vollständigen Namen exp<strong>and</strong>iert werden kann<br />

◦ für den Benutzer Thalheim,<br />

◦ für sonstige Benutzer,<br />

◦ am Knoten L, am Knoten B und am Knoten F ?<br />

3. Veränderung der Knotentopologie. Ein Knoten eines verteilten DBS soll dauerhaft aus dem System genommen werden. Kann dies mit<br />

der obigen Struktur globaler Namen unterstützt werden?<br />

4. Synonyme. Welche Probleme ergeben sich bei der Verwendung von Synonymen zur Unterstützung von Verteilungstransparenz ?<br />

5∗. Nutzung st<strong>and</strong>ardisierter Dienste. Die Katalog- und Namensverwaltung in verteilten Systemen ist ein generelles Problem. Inwieweit<br />

könnten st<strong>and</strong>ardisierte Directory-Dienste wie z. B. X.500 zur Lokalisierung von Datenbank-Objekten genutzt werden?<br />

8.1.4 Verteilte Datenbanksysteme<br />

In diesem Abschnitt untersuchen wir Konzepte verteilter Datenbanksysteme und verteilter DBMS. Sie basieren auf einer Verteilung der Datenbanken<br />

an sich und verlangen deshalb eine Unterstützung bei der Pflege und Wartung. Sie sind demzufolge komplexer, haben allerdings<br />

aufgrund geringerer Redundanz den Vorteil einer schnelleren Anfrageverarbeitung.<br />

Die in diesem Kapitel beh<strong>and</strong>elten Konzepte können vertiefend in den Literaturquellen [?, ?, Dad96, KE96, ?] nachgelesen werden, sowie<br />

in der Vielzahl von Zeitschriften- und Konferenzveröffentlichungen (genannt seien dazu Konferenzserien wie ACM SIGMOD, ADBIS, BTW,<br />

DEXA, ER, FOIKS, ICDT, VLDB).<br />

Die meisten kommerziellen DBS unterstützen eine Teilfunktionalität von verteilten DBS. Beispiele kommerzieller Systeme sind T<strong>and</strong>em<br />

NonStop SQL, CA Ingres/Star; CA-DB:STAR, Oracle, Informix/Star, Sybase Replication Server, IBM DRDA (DB2, DB2/2, DB2/6000,<br />

SQL/DS, ...), Cincom Supra, Empress, UDS-D und Sesam-DCN. Frühe Prototypen sind z. B. die Systeme R* (IBM), SDD-1 (CCA), Distributed<br />

Ingres, VDN, POREL, DDM, DDTS, Sirius-Delta und Polypheme.<br />

Fundamentales Prinzip der verteilten DBS ist:<br />

Für den Benutzer sollen alle Aspekte der Verteilung verborgen bleiben (Verteilungstransparenz).<br />

C. J. Date stellte 12 ‘Regeln’ für verteilte DBS auf:<br />

1. Größtmögliche lokale Autonomie und lokale Verwaltung von lokalen Daten;<br />

2. Keine Abhängigkeit vom zentralen Knoten;<br />

3. Permanenter Betrieb;<br />

4. Ortsunabhängigkeit (Ortstransparenz), d. h. die physische Lokation von Daten muß verborgen bleiben und Datenumverteilungen dürfen<br />

keine Auswirkungen auf Programme haben;<br />

5. Partitionierungsunabhängigkeit;


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 728<br />

6. Replikationsunabhängigkeit;<br />

7. Verteilte Anfrage-Bearbeitung, die für den Zugriff auf externe Daten und die Optimierung verteilter Anfragen erforderlich ist;<br />

8. Verteilte Transaktionsverwaltung, einschließlich Synchronisation, Recovery (verteiltes Commit-Protokoll);<br />

9. Hardware-Unabhängigkeit;<br />

10. Betriebssystemunabhängigkeit;<br />

11. Netzwerkunabhängigkeit;<br />

12. DBMS-Unabhängigkeit.<br />

Nicht jedes dieser Kriterien wird durch die kommerziellen Systeme befriedigt, z. B. ist das Kriterium 10 bei einigen Firmen im Interesse der<br />

Firmenpolitik nie unterstützt worden. Die meisten dieser Regeln führen direkt zu heterogenen DBMS.<br />

Heterogene Datenbanken.<br />

Heterogene Datenbanken verwalten inhaltlich verw<strong>and</strong>te <strong>Information</strong>en einer Institution, eines Unternehmens, etc. Die <strong>Information</strong>en sind<br />

in der Praxis häufig über mehrere heterogene Datenbanken verstreut, die unabhängig vonein<strong>and</strong>er entworfen wurden und betrieben werden.<br />

Heterogenität tritt auf bezüglich:<br />

• Hardware (Rechner, Peripherie, Kommunikationssystem, ...),<br />

• Betriebssystemen (Windows, Linux, Unix, MS/DOS, MVS, VMS, BS2000 ...),<br />

• Kommunikationsprotokollen (SNA, TCP/IP, Transdata, OSI ...),<br />

• DBMS (Hersteller, Version),<br />

• Datenmodellen (relational, objekt-orientiert, CODASYL, hierarchisch),<br />

• Anfragesprache (SQL-Dialekt, DL/1, ...),<br />

• Transaktionsverwaltung (Synchronisation, Logging, Recovery) und<br />

• Repräsentation der Daten, die wieder zu einer größeren semantischen Heterogenität führt.<br />

Semantische Heterogenität ist <strong>of</strong>t durch Entwurfsautonomie verursacht. Eine mögliche Beh<strong>and</strong>lung kann durch Schemaintegration analog zu<br />

Zugängen föderativer DBS erfolgen. Es sind in diesem<br />

Zusammenhang Namenskonflikte (Synonyme, Homonyme) zu lösen. Es werden unterschiedliche Namen für dieselben Attribute/Relationen<br />

verwendet bzw. die gleichen Bezeichner für unterschiedliche Attribute/Relationen. Damit muß eine Umbenennung erfolgen. Bei der Modellierung<br />

werden unterschiedliche Formate verwendet (unterschiedliche Datentypen, Genauigkeit, etc. ). Dies erfordert den Einsatz von Konversionsfunktionen.<br />

Es treten strukturelle Unterschiede z. B. bei der Repräsentation von <strong>Information</strong> durch Attribute bzw. eigene Relation(en), bei<br />

unterschiedlichen Beziehungstypen (1:N, M:N, ...), durch unterschiedliche Integritätsbedingungen (Eindeutigkeit, referentielle Integrität, Nullwertbeh<strong>and</strong>lung,<br />

Defaultwerte, Wertebereiche, etc.) auf. Außerdem können Daten fehlen oder widersprüchlich sein, z. B. durch Eingabefehler<br />

und unterschiedlichen Änderungsst<strong>and</strong>. Das folgende Beispiel zeigt diese Konflikte bereits auf:<br />

Datenbank 1 (UNIBIB):<br />

PUBLIKATION (Pubnr, Titel, Typcode)<br />

BUCHPUB (Pubnr, Verlag, Ejahr, #Exemplare, ISBN)<br />

VERFASSER (Pubnr, Vname)<br />

SCHLAGWORT (Pubnr, Sname)<br />

Datenbank 2 (STADTBIB):<br />

BUCH (ISBN, Titel, Autoren, Vnr, Jahr, Preis, St<strong>and</strong>ort)<br />

VERLAG (Vnr, Vname, Adresse)<br />

Für heterogene Datenbanken ergeben sich die folgenden Anforderungen:<br />

• Zugriff auf mehrere Datenbanken innerhalb einer Transaktion bei Wahrung der ACID-Eigenschaften;<br />

• Einheitliche Zugriffsschnittstelle trotz Heterogenität bei den beteiligten DBS;<br />

• Wahrung einer hohen Unabhängigkeit der einzelnen DBS (Knotenautonomie);<br />

• Mächtige Zugriffsschnittstelle (In einer DBMS-Operation sollten Daten aus verschiedenen Datenbanken verknüpft werden können<br />

durch Verbund-Bildung, etc.) und<br />

• Möglichst hohe Verteilungstransparenz.<br />

Verschärfend wirkt sich dabei die Knotenautonomie aus:<br />

• Es wird <strong>of</strong>t von einer Entwurfsautonomie ausgegangen (logischer DB-Entwurf, physischer DB-Entwurf, Wahl des lokalen DBS).<br />

• Abstrahierend wird in Programmen von der Ausführungsautonomie ausgegangen.<br />

• Mit einer Kooperationsautonomie wird dem lokalen System die Verantwortung für die Kooperation übertragen.<br />

• Hauptursache für Heterogenität ist jedoch die Entwurfsautonomie.


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 729<br />

Aufruf von<br />

Transaktionsprogrammen Ad-Hoc-Anfragen<br />

❄<br />

TP-<br />

Monitor<br />

Anwendungsprogramme<br />

Server<br />

DC-System<br />

❄<br />

DBMS<br />

❄<br />

Datenbanken<br />

Abbildung 15: Grobaufbau eines zentralisierten DBMS<br />

Alternativen zur Bearbeitung heterogener Datenbanken/Datenquellen sind die Vorabintegration der Datenquellen durch Verlagern in separate<br />

Datenbanken wie z. B. im Data-Warehouse-Ansatz und die Beibehaltung selbständiger Datenbanken bei Bereitstellung gemeinsamer Zugriffsmöglichkeiten.<br />

Zentralisierte Transaktionssysteme erlauben eine Aktivierung durch Ad-Hoc-Queries. Sie besitzen außerdem, wie in Bild 15 dargestellt,<br />

ein Datenkommunikationssystem (DC), das den Aufruf von Transaktionsprogrammen gestattet. Verteilte Systeme wie in Bild 9 erlauben eine<br />

Verteilung unter Kontrolle des Datenkommunikationssystemes bzw. der Transaktionsverarbeitungsmonitore (TP-Monitor). Diese Teilsysteme<br />

verbergen weitgehend die Heterogenität bezüglich Kommunikationsprotokollen, Netzwerken, Betriebssystem und Hardware. Die Datenbanksysteme<br />

können dabei entweder homogenisiert werden oder auch autonom bleiben. Eine Homogenisierung bedingt auch eine Schemaintegration<br />

der Einzelsysteme. Da die Schemaintegration algorithmisch nicht entscheidbar ist, kann eine Homogenisierung nur in Ausnahmefällen<br />

angestrebt werden.<br />

Heterogene Datenbanken kann man mit einem Ansatz der kontrollierten Autonomie zusammenführen. Wir können für heterogene Datenbanken<br />

folgende Ansätze unterscheiden:<br />

A) Homogener und integrierter Ansatz: Durch Verteilung einer logischen Datenbank unter mehrere Rechnern wird eine enge Kooperation<br />

zwischen DBS zur Gewährleistung von voller Verteilungstransparenz erforderlich. Demzufolge ist dieser Ansatz - obwohl mitunter<br />

praktiziert - ungeeignet zur Unterstützung heterogener Datenbanken. Ein homogener und integrierter Ansatz wird jedoch bei homogenen<br />

Datenbanken den <strong>and</strong>eren Ansätzen vorgezogen.<br />

Die Schemaintegration kann in einem Vierschrittverfahren erfolgen:<br />

• Vorintegration: Es werden eine Integrationsstrategie (binär, n-stellig) ausgewählt, die Integrationsreihenfolge unter den Schemata<br />

festgelegt, Schlüsselk<strong>and</strong>idaten bestimmt und äquivalente Wertebereiche sowie Konversionsfunktionen zwischen ihnen<br />

definiert.<br />

• Erkennung von Namens- und strukturellen Konflikten: Es werden Synonym- und Homonymbeziehungen zwischen den<br />

Typen der einzelnen Schemata bestimmt. Sind Typen weder synonym noch homonym, stehen aber in einer ontologischen Beziehung,<br />

dann werden allgemeinere Begriffe für die Integration herausgebildet. Gegebenenfalls erfolgt außerdem eine Ableitung<br />

von Kooperationsbeziehungen zwischen den Typen. Mit den Kooperations- und Synonymbeziehungen können Typen der Schemata<br />

zusammengeführt werden.<br />

• Die Auflösung struktureller Konflikte ist <strong>of</strong>t schwierig. Durch Schematransformationen, z. B. Umw<strong>and</strong>lung von Attributen in<br />

eigenständige Relationen, kann eine Vereinheitlichung herbeigeführt werden.<br />

• Das Mischen und die Restrukturierung sind nicht automatisierbar. Es kann aber versucht werden, zuerst zu mischen und danach<br />

zur Reduzierung von Redundanz zu restrukturieren. Oft kann man Transformationsfunktionen für Datenkonflikte ableiten.<br />

B) Autonome DBS: Mit einer expliziten Integration bei weiterer Selbständigkeit der Systeme ergeben sich die in Bild 16 dargestellten Alternativen.<br />

B.1) Programmierte Verteilung: Der DB-Zugriff erfolgt über den Aufruf vordefinierter Programmfragmente bzw. von Prozeduren/Methoden.<br />

Typische Realisierungsformen sind verteilte Transaktionssysteme auf der Basis von TP-Monitoren und verteilten<br />

OO-Systemen z. B. mittels CORBA.<br />

Ein Beispiel zur programmierten Verteilung ist die in Bild 17 angegebene Transaktion, die erst dann wirksam wird, wenn<br />

beide Teiltransaktionen wirksam geworden sind. Durch ein verteiltes Commit, das durch den TP-Monitor koordiniert wird,<br />

kann die ACID-Eigenschaft der Transaktion gewahrt werden. Die Einzelsysteme sind indirekt beteiligt. Sie müssen Datenbank-<br />

Operationen von nicht-lokalen Transaktionen akzeptieren. Außerdem müssen sie am verteilten Commit-Protokoll teilnehmen,


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 730<br />

Programmierte<br />

Verteilung<br />

A(nw.-)P(rogr.)<br />

AP<br />

DBS<br />

Präsentation<br />

AP<br />

DBS<br />

Verteilung von<br />

DB-Operationen<br />

DBS<br />

Präsentation<br />

AP<br />

DBS<br />

Föderative Systeme<br />

Präsentation<br />

AP<br />

Föderatives DBS<br />

DBS DBS<br />

Abbildung 16: Alternativen für autonome DBS<br />

Transaktionsprozeß: Überweisung<br />

Eingaben (K1, K2, S)<br />

BEGIN TRANSACTION<br />

CALL ABHEBUNG (Bank1, S, K1, ...)<br />

CALL EINZAHLUNG (Bank2, S, K2,...)<br />

COMMIT TRANSACTION<br />

Ausgabemitteilung<br />

TP-Monitor 1<br />

Überweisung<br />

Transaktionsprozeß: Abhebung<br />

TP-Monitor 2 TP-Monitor 3<br />

Transaktionsprozeß: Einzahlung<br />

Parameter übernehmen<br />

...<br />

EXEC SQL UPDATE account<br />

SET balance = balence - :S<br />

WHERE acctno = :K1<br />

...<br />

Erfolg melden<br />

Abhebung<br />

Bank 1<br />

DBS<br />

Einzahlung<br />

Bank 1<br />

DBS<br />

Parameter übernehmen<br />

...<br />

EXEC SQL UPDATE girokonto<br />

SET kst<strong>and</strong> = kst<strong>and</strong> + :S<br />

WHERE knummer = :K2<br />

...<br />

Erfolg melden<br />

Abbildung 17: Programmierte Verteilung in einer Bank-Transaktion


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 731<br />

um verteilte Änderungstransaktionen wie in Bild 17 zu ermöglichen. Ein verbreiteter Ansatz ist ein Zwei-Phasen-Commit mit<br />

zentralem Koordinator. In der ersten Phase wird eine Abstimmung über ein Commit bzw. einen Abbruch mit jedem Rechner<br />

durchgeführt, an dem die Transaktion aktiv war. In der zweiten Phase wird allen beteiligten Rechnern das Ergebnis des globalen<br />

Commits mitgeteilt. Die Koordination wird auf einem ‘sicheren’ Rechner (Server) durchgeführt. Ein Commit-Protokoll<br />

gewährleistet nur die Eigenschaften A und D von ACID. Die Isolation erfordert globale Serialisierbarkeit, die gewährleistet ist,<br />

falls jedes DBS ein striktes Zweiphasen-Sperrprotokoll (lange Lese- und Schreibsperren) zur Synchronisation verwendet. Die<br />

Auflösung globaler Deadlocks erfolgt über Timeout.<br />

Die Verbindung zu den einzelnen Systemen findet im Beispiel über Embedded-SQL-Schnittstellen statt. Eine <strong>and</strong>ere Alternative<br />

ist das Call-Level-Interface der einzelnen DBS.<br />

B.2) Verteilung von DB-Operationen: Verschiedene DBS übernehmen die Ausführung von Anfragen. Aufrufgranulat ist dabei die<br />

einzelne Datenbank-Operation, z. B. die SQL-Anweisung. Der Aufbau der Datenbanken muß bekannt sein. Ein Client-DBS<br />

kann die Anwendungsprogramm-Rolle übernehmen.<br />

Verteilte Transaktionsverarbeitung kann nach X/Open (Distributed Transaction Processing, DTP) erfolgen. Es werden ein allgemeines<br />

Modell sowie Schnittstellen zur verteilten Transaktionsverarbeitung in heterogenen Systemen definiert. Ein Schnittstelle<br />

zur Transaktionsverwaltung (TM), die die Transaktionsverwaltung koordiniert, nutzt BEGIN, COMMIT, ROLLBACK von<br />

Transaktionen. Wie in Bild 18 dargestellt, erlaubt eine Verbindungskontrolle zwischen Anwendungsprogramm und der Trans-<br />

Schnittstelle zur<br />

Transaktionsverwaltung<br />

Anwendung<br />

✯<br />

❥<br />

Transaction<br />

Manager<br />

❄<br />

Resource<br />

Manager<br />

Integrationsschnittstelle<br />

zwischen TA-Manager<br />

und DBS<br />

Abbildung 18: Verteilte Transaktionsverarbeitung von X/Open<br />

aktionsverwaltung die Durchführung des 2-Phasen-Commit-Protokolls (2PC). Außerdem erlauben XA-kompatible DBS eine<br />

Commit-Initiierung von ‘außen’. Die Einzelsysteme können abstrahierend als Ressourcen-Manager (RM) verst<strong>and</strong>en werden.<br />

Beispiel sind neben DBS auch Dateisysteme, Mail-Systeme, Window-Manager. Sie müssen über eine eigene Synchronisation,<br />

ein Logging und Recovery verfügen. Die Schnittstelle zur Transaktionsverwaltung wird dabei durch die folgenden Komm<strong>and</strong>os<br />

unterstützt:<br />

tx open<br />

Öffnen der dem TM bekannten RM<br />

tx close<br />

Beenden der Verbindung zwischen AP und TM<br />

tx begin<br />

Starten einer globalen Transaktion<br />

tx commit erfolgreiches Beenden einer globalen Transaktion<br />

tx rollback Rücksetzen einer globalen Transaktion<br />

tx info<br />

<strong>Information</strong>en über aktuelle Transaktion anfordern<br />

tx set TA control ‘chained’ Transaktions-Modus ein- /ausschalten<br />

tx set TA timeout Zeit für automatisches Rollback setzen<br />

tx commit return Fortsetzen des AP schon nach Phase 1 des 2PC-Protokolls<br />

Analoge Komm<strong>and</strong>os kann man für die Integrationsschnittstelle benutzen:<br />

ax reg Registrieren eines RM beim TM<br />

ax unreg Abmelden eines RM beim TM<br />

xa open Initialisierung RM für AP<br />

xa close RM-Nutzung beenden für AP<br />

xa start RM nimmt an neuer Transaktion teil<br />

xa end RM beendet Arbeit an Transaktion<br />

xa prepare Aufforderung zur Commit-Vorbereitung<br />

xa commit Commit-Aufforderung<br />

xa rollback Rollback-Aufforderung<br />

xa complete Nachfrage, ob xa-Aufruf beendet<br />

xa forget RM kann <strong>Information</strong> über heuristisch beendete Transaktion<br />

xa recover Anforderung von IDs zu Transaktionen, die im RM im Zust<strong>and</strong><br />

vergessen<br />

xa recover Anforderung von IDs zu Transaktionen, die im RM im Zust<strong>and</strong><br />

‘prepared’ bzw. heuristisch beendet sind


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 732<br />

Die Kommunikation wird über den Communication-Resource-Manager realisiert, der eine st<strong>and</strong>ardisierte Kommunikation über<br />

RPC oder Peer-to-Peer ermöglicht. Eine Verteilungstransparenz wird nicht erreicht. OSI TP kann als verteiltes Commit-Protokoll<br />

zwischen den TM benutzt werden.<br />

Eine <strong>and</strong>ere Architektur wird durch die Open DataBase Connectivity (ODBC) wie in Bild 19 realisiert. ODBC basiert auf<br />

einer API-Definition von Micros<strong>of</strong>t für einen einheitlichen Zugriff auf SQL-Datenbanken. Es ist ein Call-Level-Interface auf<br />

der Grundlage von dynamischem SQL. Die Verteilung wird durch das Verschicken von DB-Befehlen realisiert. Pro SQL-Server<br />

existiert ein eigener ‘ODBC-Treiber’ auf der Client-Seite. Transaktionen bleiben damit auf einen Server beschränkt.<br />

Anwendung<br />

z. B. Access<br />

Anwendung<br />

z. B. Excel<br />

Anwendung<br />

z. B. Explorer<br />

Client (PC)<br />

ODBC-Treiber-Manager<br />

ODBC-Treiber ODBC-Treiber<br />

Netzwerk-S<strong>of</strong>tware Netzwerk-S<strong>of</strong>tware<br />

Netzwerk<br />

Server A<br />

Netzwerk-S<strong>of</strong>tware<br />

DBS (z. B. Oracle)<br />

Netzwerk-S<strong>of</strong>tware<br />

DBS (z. B. Sybase)<br />

Server B<br />

Abbildung 19: Open DataBase Connectivity (ODBC)<br />

Für ODBC wurden unterschiedliche Treiber entwickelt. Die Kernfunktionen und -Datentypen sind nach X/Open CLI bestimmt.<br />

Erweiterungen (Level 1 oder Level 2) dazu sind Date, Time, ScrollCursor, asynchrone Befehlsausführung etc. Damit kann eine<br />

einstufige oder mehrstufige Verarbeitung von DB-Operationen realisiert werden. Einstufige Treiber (one-tier driver) erlauben<br />

einen direkten Datenzugriff (lokal oder entfernt). Der Treiber verarbeitet SQL-Anweisungen für Nicht-SQL-Systeme. Typisches<br />

Beispiel sind Zugriffe auf Xbase-Dateien. Bei mehrstufigem Treibereinsatz werden die SQL-Anweisungen an das Server-DBS<br />

weitergegeben. Der Zugriff erfolgt auch für Nicht-SQL-DBS über eine SQL-Unterstützung auf Client- oder Server-Seite, ggf.<br />

über einen DB-Gateway im dreistufigem Ansatz.<br />

Der ODBC-Ansatz wurde auch in analoger Form für Java-Umgebungen (JDBC) eingesetzt. Neben diesen St<strong>and</strong>ardisierungansätzen<br />

sind auch die Multivendor Integration Architecture (MIA), St<strong>and</strong>ards über Remote Database Access (RDA) und SQL<br />

Access, sowie die IBM Distributed Relational Database Architecture (DRDA) weiter verbreitet.<br />

B.3) Föderative DBS: Das föderative System kann eine vereinheitlichte Datenbank-Sicht unterstützen. Damit kann auch eine verteilte<br />

Ausführung einer Datenbank-Operation ermöglicht werden. Wie bereits dargestellt in Bild 45, 46 und 47 erlauben föderative<br />

verteilte DBS die Bildung von Föderationen zwischen existierenden, unabhängigen DBS zum Datenaustausch. Es wird eine<br />

begrenzte Kooperation zwischen den DBS bei Wahrung einer möglichst hohen Knotenautonomie angestrebt. Dabei können<br />

heterogene DBS unterstützt werden.<br />

Föderative verteilte DBS haben eine weitergehende Funktionalität verglichen mit verteilten Transaktionssystemen. Sie erlauben<br />

DBS-übergreifende Operationen, eine höhere Verteilungstransparenz, eine weitgehend einheitliche Anfragesprache, eine<br />

Unterstützung bezüglich Heterogenität bei Datenmodellen und bei der Transaktionsverwaltung, eine Unterstützung bezüglich<br />

semantischer Heterogenität. Föderative Systeme besitzen eine Zusatzebenen-Architektur wie in Bild 47 dargestellt. Mit dem<br />

globalen Kommunikations- und Verknüpfungssystem können sowohl globale Anfragen und Transaktionen unterstützt werden<br />

als auch lokale Anfragen und Transaktionen weitergegeben werden.<br />

Globale Transaktionen werden zu lokalen Subtransaktionen wie in Bild 20 zerlegt. Die Transaktionsverwaltung wird zweischichtig.<br />

Die lokale Transaktionen verbleiben lokal. Systemübergreifende Transaktionen werden in globale Subtransaktionen durch<br />

das föderative System zerlegt. Die lokale Autonomie bedingt das Verbergen von Steuerinformation des lokalen DBS (für die<br />

Synchronisation und das Recovery). Dabei kann das lokale DBS nicht zwischen lokalen und globalen Transaktionen unterscheiden,<br />

weil die globalen Subtransaktionen wie lokale Transaktionen mit dem ACID-Prinzip beh<strong>and</strong>elt werden. Die lokalen DBS<br />

entscheiden unabhängig über das Commit lokal ausgeführter Transaktionen. Bereits existierende lokale Programme werden nach<br />

der Integration weiterbenutzt. Die Transaktionsverwaltung ist damit heterogen lokal.<br />

Das föderative System kann nur die globalen Transaktionen synchronisieren. Es wird angenommen, daß alle Objekte, auf die<br />

zugegriffen wird, durch das föderative DBS identifiziert werden können. Damit wird nur eine Erkennung von direkten Konflikten<br />

zwischen globalen Transaktionen möglich. Es ergeben sich allerdings Probleme durch transitive Abhängigkeiten mit lokalen<br />

Transaktionen.<br />

Damit ergeben sich bei föderativen Systemen Einschränkungen bezüglich der Funktionalität (z. B. begrenzte Unterstützung<br />

globaler Änderungstransaktionen, der lokalen Autonomie (ggf. mit Erweiterungen der lokalen Transaktionsverwaltung), der


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 733<br />

Glob.TA 1 Glob.TA 2 Glob.TA 3<br />

Lok.TA 1<br />

❄ ❄ ❄<br />

Globale föderative Transaktionsverwaltung<br />

GTA 1.1 GTA 2<br />

GTA 3.2<br />

Lok.TA 2<br />

GTA 1.2<br />

GTA 3.1<br />

Lok.TA 3<br />

❄ ❄ ✠ ❘ ❄ ✠ ❘ ❄<br />

Lokales DBS 1 Lokales DBS 2 Lokales DBS n<br />

Abbildung 20: Zweischichtige Transaktionsverwaltung in föderativen Systemen<br />

Heterogenität (z. B. Verwendung identischer Synchronisations- und Commit-Protokolle in den lokalen DBS), bei den ACID-<br />

Zusicherungen (z. B. Verzicht auf eine globale Serialisierbarkeit)).<br />

Ein einfacher ‘Ansatz’ ist die Beschränkung globaler Transaktionen auf höchstens eine ändernde Subtransaktion. Der X/Open-<br />

Ansatz verwendet dagegen ein st<strong>and</strong>ardisiertes Commit-Protokoll (XA-Schnittstelle), ein striktes 2PL in jedem lokalem DBS<br />

und ein Timeout zur globalen Deadlock-Beh<strong>and</strong>lung. In der Forschung gibt es zahlreiche Vorschläge zur Synchronisation mit<br />

dem Ziel eines höheren Grades an Autonomie und Heterogenität als beim X/Open-Ansatz, wobei die Annahmen sehr einschneidend<br />

sein können und ggf. eine weitgehende Serialisierung globaler Transaktionen erfordern.<br />

Damit ergibt sich bezüglich Kooperationsumfang und Verteilungstransparenz aufsteigend eine Systemhierarchie in:<br />

◦ isolierte Datenbanksysteme,<br />

◦ verteilte Transaktionssysteme (Transaction routing bzw. programmierte Verteilung),<br />

◦ Verteilung von Datenbank-Operationen ,<br />

◦ föderative Datenbanksysteme (lose gekoppelte föderative Systeme (Multi-DBS)<br />

bzw. die komplexeren eng gekoppelten föderativen Systeme),<br />

◦ verteilte Datenbanksysteme,<br />

◦ parallele Datenbanksysteme.<br />

Diese Hierarchie staffelt absteigend in der Komplexität Knotenautonomie bzw. Heterogenität bzw. Verteilungsgranulat.<br />

Für verteilte DBS sind jedoch aus folgenden Gründen weitergehende St<strong>and</strong>ards notwendig.<br />

Portabilität: Durch st<strong>and</strong>ardisierte API’s werden Funktionen für den DB-Zugriff, die Transaktionsverwaltung und die Kommunikation zur<br />

Verfügung gestellt. Eine Teil-St<strong>and</strong>ardisierung erfolgt durch das X/OPEN-Konsortium. Die Kommunikation kann auf der Micros<strong>of</strong>t<br />

Open Database Connectivity (ODBC) oder auch der Sun Java Database Connectivity (JDBC) aufsetzen. Datenbank-Anfragesprachen<br />

sind in diesem Fall ISO SQL bzw. normierte SQL-Subsets.<br />

Interoperabilität: Mit einer st<strong>and</strong>ardisierten Kommunikation kann eine weitgehende Interoperabilität von Datenbank-Anwendungen errecht<br />

werden. Die Nachrichtenformate und Protokolle werden festgelegt, z. B. ISO OSI, RDA (Remote Database Access), TP, CCR, ROSE,<br />

TCP/IP und LU6.2.<br />

Damit kann eine Architektur wie in Bild 21 unterstützt werden.<br />

Anwendung<br />

Anwendung<br />

API’s (application program interfaces)<br />

Middleware<br />

Plattform-Schnittstellen<br />

Plattform 1<br />

- Betriebssystem<br />

- Hardware<br />

Plattform n<br />

- Betriebssystem<br />

- Hardware<br />

Abbildung 21: St<strong>and</strong>ardschnittstellen in Middleware-Architektur


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 734<br />

Ein allgemeiner St<strong>and</strong>ard hat sich bislang nicht durchgesetzt. Deshalb verwenden viele größere Systeme Datenbank-Gateways als eigenständige<br />

Schnittstelle. Selbst bei SQL-Datenbanksystemen bestehen erhebliche Unterschiede im Sprachumfang, der Syntax, den Datentypen,<br />

den Fehlercodes, etc. Gateways führen Transformationen zwischen Client und ServerSQL durch. Dabei entsteht ein hoher Aufw<strong>and</strong> zur<br />

Unterstützung zahlreicher Gateways. Die Definition einer gemeinsamen SQL-Teilmenge und einheitlicher Fehlercodes reduziert jedoch die<br />

Gateway-Anzahl. Die Gateway-Architektur ist in Bild 22 dargestellt.<br />

Client<br />

(AP, tools)<br />

Client-SQL<br />

Eingabedaten<br />

✛<br />

✲<br />

Daten/Fehlercodes<br />

im Client-Format<br />

Gateway<br />

Server-SQL<br />

Server-Formate<br />

✛<br />

✲<br />

Ausgabedaten,<br />

Fehlercodes im<br />

Server-Format<br />

Server<br />

(DBS)<br />

Abbildung 22: Einsatz von Gateways<br />

Die weiterführende Architektur in Bild 23 wird durch Wrapper (Adapter, Verkappseler, Paketierer) und Mediatoren (Vermittler, Broker)<br />

verfolgt. Mediatoren stellen eine gemeinsame Zugriffsschnittstelle auf heterogene Datenquellen zur Verfügung, zerlegen Anfragen und<br />

bündeln die Teilergebnisse für die Clients. Sie greifen ggf. auf Metadaten zurück und erlauben u. U. auch die dynamische Bestimmung relevanter<br />

<strong>Information</strong>squellen. Wrapper stellen den Mediatoren eine einheitliche Zugriffsschnittstelle auf die lokalen Systeme zur Verfügung.<br />

Sie haben eine Funktionalität, die der von Gateways zur Anpassung der Syntax, zum Ausgleich von Funktionsdefiziten etc. ähnelt. Sie binden<br />

unterschiedliche DBS, Dateisysteme, Spezialsyteme etc. ein.<br />

Client 1 Client 2 Client m<br />

Mediator 1 Mediator 2<br />

Metadaten<br />

Wrapper 1 Wrapper 2 Wrapper n<br />

Info-Quelle 1<br />

(DBS 1)<br />

Info-Quelle 2<br />

(DBS 2)<br />

Info-Quelle n<br />

(DBS n)<br />

Abbildung 23: Einsatz von Wrappern und Mediatoren<br />

Das bereits in Bild 4 und Bild 5 dargestellte CORBA-Framework erlaubt eine Middleware-Unterstützung für die Kooperation verteilter<br />

Systeme. Mit CORBA ist ein st<strong>and</strong>ardisierter Aufruf von Methoden (Anwendungsprogrammen) über den Object Request Broker realisiert<br />

(Bild 24). Der Zugriff auf nicht-objektorientierte DBS kann über bereitzustellende Anwendungsprogramme (Server-Objekte) bzw. Wrapper<br />

Anwendung<br />

(‘Client-Objekte’)<br />

Object Request Broker<br />

OODBS<br />

Wrapper 1<br />

RDBMS 1<br />

Wrapper 2<br />

RDBMS 2<br />

Object<br />

Transaction<br />

Service<br />

Concurrency<br />

Control<br />

Service<br />

Query<br />

Service<br />

Abbildung 24: CORBA als Middleware-Konzept<br />

erfolgen. Der Object Transaction Service (OTS) umfaßt die Unterstützung für verteilte Transaktionen (2PC) und geschachtelte Transaktionen.


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 735<br />

Mit einem Concurrency Control Service (CCS) werden auch global nutzbare Synchronisationsdienste realisiert. Ein Query Service ermöglicht<br />

Anfragen auf OODBS und SQLDBS.<br />

Ein typisches Beispiel für diesen Ansatz ist die Distributed Relational Database Architecture (DRDA) von IBM. Damit wird die Interoperabilität<br />

zwischen SQL-DBS von IBM (DB2/MVS, DB2/6000, DB2/2, DB2/400) sowie DRDA-kompatible Fremd-DBS unterstützt. Als<br />

Ausführungsart kann RUW (Remote Unit <strong>of</strong> Work) (bei der jede SQL-Operation einer Transaktion durch das DBMS verarbeitet wird), DUW<br />

(Distributed Unit <strong>of</strong> Work) (bei der einzelne SQL-Operationen einer Transaktion durch verschiedene DBMS verarbeitet werden) und DR (Distrubuted<br />

Request) (bei dem eine SQL-Anweisung einer Transaktion verschiedenen DBMS übergeben werden kann) gewählt werden. Beispiel<br />

einer RUW ist die folgende Sequenz:<br />

CONNECT TO L.DB2 ... ;<br />

SELECT ... FROM PERS1 ... ;<br />

COMMIT WORK;<br />

CONNECT TO F.DB2 ... ;<br />

SELECT ... FROM PERS2 ... ;<br />

UPDATE PERS2 SET ... ;<br />

COMMIT WORK;<br />

DISCONNECT ...<br />

In der Ablaufumgebung definiert die DRDA die Nachrichtenformate und -protokolle, die Abbildung von SQL auf DRDA-Nachrichten über<br />

Application Requester/Server und die verteilte Transaktionsverarbeitung.<br />

DRDA ist ein typisches Beispiel für einen Firmenst<strong>and</strong>ard. Andere Firmenst<strong>and</strong>ards sind Micros<strong>of</strong>t OLE DB, Micros<strong>of</strong>t Universal Data<br />

Access und der IBM DB2 Data Joiner. So wird in dem auf ActiveX basierenden Common Object Model (COM) mit dem Object-Linking-<strong>and</strong>-<br />

Embedding-Ansatz (OLE) der Zugriff auf heterogene Datenquellen über festgelegte COM-Schnittstellen wie in Bild 25 realisiert. Beteiligte<br />

Anwendungen / Werkzeuge<br />

OLE DB<br />

Query<br />

processor<br />

Tabular<br />

data<br />

File<br />

systems<br />

<strong>and</strong>. COM-<br />

Kompon.<br />

Spreadsheets<br />

OLE DB/ODBC<br />

Treiber-Manager<br />

ODBC<br />

Treiber<br />

ODBC<br />

Treiber<br />

DBS 1 DBS 2<br />

Abbildung 25: Micros<strong>of</strong>t OLE DB<br />

Komponenten dabei sind<br />

◦ als Data Provider SQL-DBS (Zugriff über ODBC), Dateien, Spreadsheets,<br />

EMailArchive, etc.<br />

◦ als Data Consumers die Anwendungen und Werkzeuge und<br />

◦ als Data Service Providers die Anfrage-Systeme etc.<br />

Voraussetzung der Anwendbarkeit sind allerdings tabellarische Daten. Sieben Objekttypen (mit insgesamt 55 Schnittstellen) (DataSources,<br />

DBSessions Comm<strong>and</strong>s, Rowsets, Indexes, Errors, Transactions) können verwendet werden. Damit wird die Interoperabilität zwischen mehreren<br />

Datenquellen (verteilte Anfragen) unterstützt. Verteilte Transaktionen sollen über Micros<strong>of</strong>ts TP-Monitor unterstützt werden. Unterschiede<br />

gegenüber ODBC sind dabei die komponenten-basierte Architektur, die Verwendung von COM-API statt C-API und die Berücksichtigung von<br />

Nicht-SQL-Systemen. Angekündigt ist eine Unterstützung für verteilte Anfragen und Transaktionen.<br />

Dagegen ist der IBM DB2 Data Joiner eine föderative DBS-Lösung für den einheitlichen Zugriff (DB2 SQL) auf zahlreiche SQL-DBS.<br />

Es werden zahlreiche Client- und Server-Plattformen unterstützt. Der Data Joiner besitzt eine hohe Funktionalität. Verteilte und globale Anfragen<br />

(Joins) mit umfassender Anfrage-Optimierung werden ermöglicht. Es werden objekt-relationalen Eigenschaften (UDTs, UDFs, LOBs,<br />

rekursive Anfragen), verteilte Transaktionen (XA-Unterstützung) und replizierte Datenhaltung unterstützt. Eine Ortstransparenz wird über<br />

Nicknames realisiert:<br />

CREATE NICKNAME D_KUNDE FOR DB2.J15USER3.CUSTOMER<br />

CREATE NICKNAME O_LIEFERUNGEN FOR ORACLE..J15USER3.ORDER_HISTORY<br />

SELECT D.CUSTNAME<br />

FROM D_KUNDE D, O_LIEFERUNGEN O<br />

WHERE D.CUSTNO = O.CUSTNO AND O.SHIPDATE = 19990401<br />

Schemata verteilter DBS.<br />

Obwohl die vollständige Schemaintegration algorithmisch nicht lösbar ist, kann man die Entwicklung eines integrierten Schemas in verteilten<br />

Anwendungen anstreben. Eine Schemaarchitektur kann man dabei an die föderativen Systeme wie in Bild 48 anlegen. Dabei wird angestrebt,


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 736<br />

ein gemeinsames konzeptionelles und internes Schema für alle Knoten anzulegen. Von Vorteil ist, daß ein globales konzeptionelles Schema<br />

Verteilungstransparenz unterstützt. Es wird jedoch keine Knotenautonomie unterstützt. Deshalb ist ein globales Schema, dem das Verteilungsschema<br />

unterlegt wurde, ungeeignet. Es ist außerdem für geographisch verteilte Systeme ungeeignet. Mit der in Bild 48 angegebenen<br />

Lokales<br />

externes<br />

Schema 1<br />

Lokales<br />

externes<br />

Schema 2<br />

Lokales<br />

externes<br />

Schema m<br />

Globales konzeptionelles Schema<br />

Globales Verteilungsschema<br />

Lokales<br />

konzept.<br />

Schema 1<br />

Lokales<br />

konzept.<br />

Schema 2<br />

Lokales<br />

konzept.<br />

Schema n<br />

Lokales<br />

internes<br />

Schema 1<br />

Lokales<br />

internes<br />

Schema 2<br />

Lokales<br />

internes<br />

Schema n<br />

Lokales<br />

DBS 1<br />

Lokales<br />

DBS 2<br />

Lokales<br />

DBS n<br />

Abbildung 26: Verallgemeinerung der Dreiebenen-Schema-Architektur<br />

Architektur wird die Verteilungstransparenz durch das globale konzeptionelle Schema und die Knotenautonomie durch die lokalen konzeptionellen<br />

und internen Schemata unterstützt. Ein Katalog führt die Metadaten für die DB-Verarbeitung. Im Katalog werden die Namen und<br />

Adressen externer Knoten und der DBS, Angaben zur Datenverteilung und Angaben zu Relationen, Sichten, Attribute, Integritätsbedingungen,<br />

Benutzern, Zugriffsrechten, Indexstrukturen, Statistiken etc . geführt. Jeder Knoten führt für die lokalen Objekte die Katalogdaten.<br />

Alternativen für die Realisierung eines globalen Kataloges (Verteilungsinformationen, Angaben zu nicht-lokalen Objekten und Benutzern)<br />

sind:<br />

◦ zentralisierter Katalog;<br />

◦ vollständig replizierter Katalog;<br />

◦ Mehrfachkataloge: Kombination aus den beiden ersten Ansätzen und<br />

◦ partitionierter Katalog<br />

Ein weitere Variante ist die Verwendung eines partitionierten Kataloges und die Pufferung (Caching) von entfernten Katalogdaten.<br />

Die beiden Wesentlichen Alternativen zur Beh<strong>and</strong>lung veralteter Katalogangaben sind<br />

- entweder eine Verlinkung der Daten, so daß sich der Besitzerknoten vermerkt, wo Katalogdaten gepuffert sind<br />

und invalidiert diese bei einer Änderung, oder<br />

- die Verwendung von Zeitstempeln, so daß bei der Ausführung einer Operation festgestellt wird, ob veraltete<br />

Katalogdaten verwendet wurden, und ggf. eine Neuübersetzung und -ausführung mit aktualisierten Daten (wie z.<br />

B. im System R*) vorgenommen wird.<br />

Anforderungen an die Namensvergabe sind damit<br />

◦ eindeutige Bezeichner für globale Objekte: Relationen, Sichten, Indexe usw.;<br />

◦ Stabilität gegenüber Datenumverteilungen (Migration);<br />

◦ Unterstützung von Verteilungstransparenz;<br />

◦ lokale Namensvergabe.<br />

Die Struktur des Namensraums kann entweder global unter Einsatz von Namensservern oder Namenskonventionen konzipiert sein, woduch<br />

allerdings ein weiteres Zuverlässigkeitsproblem entsteht, oder hierarchisch sein, wodurch die Knotenautonomie gewährleistet wird, die<br />

Netzwerk-Partitionierung toleriert wird und eine Anpassung an das Wachstum einfach ist.<br />

Zur Namensvergabe kann eine dreiteilige Objektbezeichnung<br />

[ [.].]<br />

gewählt werden. Damit wird eine lokale Namenswahl durch Benutzer wie in zentralisierten Systemen unterstützt. Verschiedene Benutzer<br />

können die gleichen Objektnamen verwenden. Die Referenzierung lokaler Objekte erfolgt wie im zentralen Fall. Diese Lösung erfordert<br />

jedoch die Verwendung von für externe Objekte. Damit wird die Ortstransparenz verletzt. Eine Änderung der Datenallokation<br />

erfordert auch Programmänderungen.


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 737<br />

Abhilfemöglichkeiten existieren eine Reihe. Durch die Verwaltung von Synonymen (Aliases) für jeden Benutzer, wobei die automatische<br />

Abbildung auf vollen Objektnamen durch das DBS erfolgt, kann die Allokation mitgeführt werden. Damit wird bei Datenmigration nur eine<br />

Anpassung der Synonymtabellen notwendig oder im ursprünglichem Knoten wird ein Vorwärtsverweis auf die neue Datenlokation gespeichert.<br />

Ein Beispiel eine solchen Lösung ist das System R ∗ . Es verwendet als Syntax<br />

:: =[ [@].] [@birth_node] .<br />

Darauf werden Expansionsregeln für systemweite Namen aufgesetzt:<br />

• ein fehlender wird ersetzt durch die aktuelle USERID;<br />

• ein fehlender wird ersetzt durch die aktuelle KNOTENID;<br />

• ein fehlender wird ersetzt durch die aktuelle KNOTENID<br />

Vorteile dieses Zuganges sind Knotenautonomie und die Auswirkungsfreiheit auf Namen und damit bestehende Programme bei Migration<br />

eines Objektes. Erkauft werden diese Vorteile mit einer umständlicheren Adressierung, falls das Objekt nicht an Benutzerknoten gespeichert<br />

wird, weil mindestens ein Knotenname angegeben werden muß. Durch Synonyme kann hier Abhilfe geschaffen werden.<br />

Das verteilte System wird um eine Routine zur Namensauflösung wie in Bild 27 erweitert. Beteiligte Rechner sind Geburtsknoten (‘birth<br />

site’, meist im globalen Namen enthalten), Katalogknoten (‘catalog site’) und Speicherknoten (‘store site’). Es wird die Replikation (mehrere<br />

Speicherknoten) damit unterstützt. Die Trennung von Geburts- und Speicherknoten erlaubt eine Stabilität gegenüber Datenumverteilungen.<br />

Der Katalogknoten kann mit dem Geburts- oder Speicherknoten übereinstimmen, wodurch die Kommunikation verringert wird.<br />

✲<br />

globaler Name<br />

Geburtsknoten<br />

Birth site<br />

❄<br />

Katalogknoten<br />

Catalog site<br />

Speicherknoten<br />

Store site<br />

✮ ❄<br />

Speicherknoten<br />

<br />

Store site<br />

Speicherknoten<br />

Store site<br />

Abbildung 27: Namensauflösung<br />

In analoger Form findet die Namensauflösung über Synonyme statt. Wie in Bild 28 illustriert, werden Synonyme (Alias-Namen) durch<br />

eine Abbildung benutzerspezifischer logischer Namen in vollqualifizierte globale Namen umgew<strong>and</strong>elt. Die Verwaltung von Synonymtabellen<br />

wird durch DBS im lokalen Katalog vorgenommen. Dieser Ansatz findet Verwendung in vielen kommerziellen Systemen wie z. B. T<strong>and</strong>em<br />

NonStop SQL, DB2, Oracle, etc.<br />

lokale<br />

Synonymtabelle<br />

globale<br />

Katalogdaten<br />

✾<br />

logischer Objektname<br />

3 ❄<br />

globaler Objektname<br />

3 ❄<br />

physische Objektadresse<br />

Abbildung 28: Namensauflösung über Synonyme<br />

Die in Bild 48 dargestellte Architektur für verteilte Datenbanksysteme ist nur eine der möglichen Alternativen. Ziele einer Schema-<br />

Architektur sind:<br />

• Bereitstellung eines globalen Schemas, um auch im weiteren mit globalen Relationen zumindest aus Benutzersicht arbeiten zu können;<br />

• Bereitstellen von externen Sichten (views) auf das globale Schema um verschiedenen Anwendungs- und Benutzeraspekten Rechnung<br />

tragen zu können;<br />

• Nichtsichtbarkeit von Heterogenitäten in den lokalen Schemata und Datenmodellen, der Partitionierung der globalen Relationen, der<br />

Allokation von Partitionen und von redundanten Speicherungen der Partitionen;<br />

• Bereitstellung von <strong>Information</strong>en für die Anfrage-Prozessoren und den Datenbank-Administrator über die Partitionierung der globalen<br />

Relationen, die physischen Speicherungsorte von Partitionen, evt. redundant gespeicherte Partitionen und die anzuwendende Kopien-<br />

Update-Strategie.


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 738<br />

Es existieren neben der dargestellten Architektur eines homogenen, prä-integrierten verteilten DBMS weitere Architekturen:<br />

Homogene, prä-integrierte DBS: Von den vorgegebenen globalen Relationen werden die Partitionen und Allokationen abgeleitet. Dadurch<br />

entsteht keine Heterogenität in den lokalen Schemata. Sie sind strukturell und semantisch homogen und verwenden das gleiche Datenbankmodell.<br />

Sie sind meist von vornherein als verteiltes System ausgelegt.<br />

Heterogene, prä-integrierte DBS besitzen kein gemeinsames Datenbankmodell. Dadurch wird auf Implementationsebene die Heterogenität<br />

voll sichtbar und wirksam. Durch das Anwendungssystem muß deshalb die Heterogenität verborgen werden. Beispiele sind CADoder<br />

auch Web-Systeme, die meist mit komplexen Datentypen operieren müssen. Eine echte Integration kann nur selten erreicht werden.<br />

Meist wird nur eine Hybrid-Lösung erreicht. Damit entstehen aber auch interne Verarbeitungsprobleme, z. B. ein unterschiedliches<br />

Recovery-Verhalten im Fehlerfall. Trotzdem wird diese Entwicklungslinie in Zukunft viel stärker sein, weil Spezial-DBS als ‘embedded<br />

system’ entstehen und weil Spezialaufgaben auch Spezial-DBS erfordern. Wünschenswert wäre jedoch ein Verhalten wie ein<br />

monolithisches DBMS, wobei sowohl Integrationsprobleme für die Schemata gelöst werden müssen als auch aufein<strong>and</strong>er abgestimmte<br />

Basis-Funktionalitäten (Synchronisation, Recovery, Transaktionsvewaltung etc.) in allen Systemen verfügbar sein müssen.<br />

Post-integrierte Systeme werden auf der Basis bereits existierender DBS entwickelt. Die lokalen Systeme müssen weiterhin voll verfügbar<br />

bleiben. Tolerierbar sind ggf. Neuübersetzungen, nicht aber Eingriffe in den Quellcode. Damit muß das alte System als Sicht des neuen<br />

<strong>Systems</strong> erhalten bleiben.<br />

Eine Integrationsphase wird nachträglich ausgelöst. Die Integration von Datenbankschemata kann nach dem Wiederverwendungszyklus<br />

erfolgen: Prä-Inegration, Vergleich und Abgleich insbesondere bei der Konfliktlösung und der Auflösung von Ambiguitäten,<br />

Vereinheitlichungsphase, Einbettungs-, Restrukturierungs- und Zusammenfassungsphase.<br />

Schwierig gestalten sich Datenbank-Updates bei post-integrierten Systemen. Solange Daten disjunkt sind, ist eine Modifikation einfach.<br />

Schwieriger wird die Beherrschung der Redundanz.<br />

Wie bereits für prä-integrierte Systeme unterscheiden wir:<br />

Homogene, post-integrierte Systeme: Ist eine Integration erreicht worden, dann kann man die Systeme wie homogene, prä-integrierte<br />

Systeme fahren. Es wird durch eine Sichten-Architektur das jeweilige lokale System unterstützt. Die Sichten lassen auch einen<br />

Update zu. Damit wird eine mächtige Abbildungspsrache eingesetzt, die eine Transformation lokaler und globaler Daten auf<br />

lokale Daten gestattet.<br />

Heterogene, post-integrierte Systeme: Wird ein einheitliches Datenbank-Modell (z. B. das relationale) angewnadt, dann kann<br />

auf einer einheitlichen Sprachschnittstelle aufgesetzt werden. Damit können entsprechende Transformationen auf einheitlicher<br />

Sprachgrundlage definiert werden. Im allgemeinen Fall kann <strong>of</strong>t eine homogenisierende Schicht mit einem Ansatz analog zu<br />

föderativen Systemen eingesetzt werden, der dann auch gestattet die Operationen der lokalen Systeme aufein<strong>and</strong>er abzubilden.<br />

Günstig ist es, diese Operationen bereits zur Compile-Zeit bereitzustellen. Dynamisch erzeugte Operationen erfordern eine umfangreiche<br />

Implementierung und bringen Performanzprobleme. Eine Alternative ist <strong>of</strong>t die Verwendung eines reich strukturierten<br />

Datenbankmodelles wie z. B. des erweiterten ER-Modelles, in dem die lokalen Schemata spezifizierbar sind.<br />

Der globale Katalog von verteilten DBS erleichtert die Verwaltung erheblich. Er umfaßt neben der Schemainformation auch statistische<br />

Angaben, Angaben zur Authorisierung und Abbildungsvorschriften (Sichten etc.). Er kann sowohl den einzelnen Wrappern zur Verfügung<br />

gestellt werden als auch global, nicht-redundant verwaltet werden.<br />

Datenverteilung, Allokation und Partitionierung.<br />

Mit der Dreiebenen-Schema-Architektur in Bild 48 erscheint eine Trennung zwischen der Verteilung von Daten auf<br />

logischer Ebene mit einer prädikativen Beschreibung der Verteilung insbesondere zur (horizontalen, vertikalen, gemischten) Partitionierung<br />

globaler Relationen und auf<br />

physischer Ebene mit einer Festlegung des Speicherungsortes mit einer redundanten oder nicht-redundanten Allokation von Partitionen<br />

wie in Bild 49 sinnvoll. Einheiten der Datenverteilung sind die Partitionen. Wünschenswert ist eine Zerlegung von Relationen mit der Selektionsoperation<br />

oder mit der Projektionsoperation (horizontale und vertikale Partitionierung). Oft wird auch die Partitionierung redundant<br />

sein. Eine replizierte Speicherung von Partitionen bietet höhere Freiheitsgrade bei der Query-Optimierung, bedingt aber auch einen höheren<br />

Änderungsaufw<strong>and</strong>. Gründe für eine horizontale bzw. vertikale Partitionierung sind Lastbalancierung, Nutzung von Lokalität, Reduzierung<br />

des Verarbeitungsumfangs und Unterstützung von Parallelverarbeitung.<br />

Anschließend werden Teile der Partitionen Knoten zugeordnet (allokiert). Die Zuordnung ist bestimmt weitgehend Ausführungsort von<br />

DB-Operationen. Damit erhalten wir widersprechende Teilziele. Zum einem orientieren wir uns auf eine Minimierung der Kommunikationskosten,<br />

zum <strong>and</strong>eren jedoch auch auf eine Lastbalancierung.<br />

Die Partitionierung und Allokation sollte den folgenden Anforderungen genügen:<br />

Vollständigkeit: : Jedes Datum muß in wenigstens einer Partition enthalten sein.<br />

Rekonstruierbarkeit: Die Zerlegung sollte verlustfrei sein.<br />

(Weitestgehende) Disjunktheit: Um durch die Redundanz in den Partitionen nicht einen zu hohen Pflegeaufw<strong>and</strong> in Kauf nehmen zu<br />

müssen, sollten die Partitionen disjunkt sein oder es sollten im Falle der Nichtdisjunktheit der Partitionen einfache Pflegemechanismen<br />

implementierbar sein. Da die Redundanz ggf. auch auf physischem Niveau noch beibehalten wird, kann man auch für die logische<br />

Aufteilung vereinfachend von einer redundanzfeien Partition ausgehen.<br />

Für die weitere Diskussion betrachten wir das ER-Schema in Bild 30. Nach [?] wird aufgrund der Kardinalitätsbeschränkungen dieses<br />

Schema in die folgenden Relationen übersetzt:


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 739<br />

Globale<br />

Relation<br />

R 1<br />

✰✛<br />

Partition<br />

von R 1<br />

✸<br />

✲<br />

P 11<br />

P 12<br />

✛<br />

✛<br />

❨<br />

Allokation der<br />

Partitionen P 1j<br />

✲<br />

✲<br />

✸<br />

A 111<br />

A 121<br />

A 131<br />

Knoten<br />

A<br />

✛<br />

✐<br />

❦<br />

✲ P 13<br />

✰ ❥A 122<br />

♦<br />

✶A 141<br />

✮<br />

A 151<br />

P 14<br />

✼<br />

❦<br />

✇A 132<br />

A 142<br />

P 15<br />

✴✛<br />

✲A 152<br />

Knoten<br />

B<br />

Knoten<br />

A<br />

Benutzersicht<br />

logische<br />

Aufteilung<br />

physische<br />

Speicherung<br />

Abbildung 29: Partitionierung und Allokation globaler Relationen<br />

arbeitet<br />

(1,1)<br />

Nr ❄<br />

Name Angest<br />

Gehalt<br />

Anschrift<br />

✛<br />

Name<br />

✲ Abteilung Bereich<br />

Budget<br />

✻<br />

(1,1) Nr<br />

Manager<br />

Teil ✛ liefert ✲ Lieferant<br />

(1,1)<br />

Nr Preis<br />

Nr Name Stadt<br />

Abbildung 30: Das ER-Schema der Beispieldatenbank


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 740<br />

ANGEST (PersNr, AngName, Gehalt, AbtNr, Anschrift)<br />

ABTEILUNG (AbtNr, AbtName, Bereich, MgrPersNr, Budget)<br />

TEILE (TeileNr, LiefNr, Preis)<br />

LIEFERANT (LiefNr, LiefName, Stadt)<br />

Eine horizontale Partitionierung wird durch<br />

Selektionsprädikate R i := σ Pi (R) (1 ≤ i ≤ n) bestimmt.<br />

Die Forderung auch Vollständigkeit impliziert, daß jedes Tupel einer Partition zugeordent sein muß, d. h. ∪ n i=1R i = R. Damit ist eine<br />

horizontale Zerlegung verlustfrei, falls die Partitionen mit einem Selektionsprädikat definiert sind.<br />

Die horizontale Partitionierung ist disjunkt, falls R i ∩ R j = ∅ für 1 ≤ i < j ≤ n gilt.<br />

Für unser Beispiel können wir z. B. eine horizontale Partitionierung von LIEFERANT erhalten mit:<br />

LIEFERANTORT1 := σ Stadt=‘Berlin ′(LIEFERANT)<br />

LIEFERANTORT2 := σ Stadt=‘Cottbus ′(LIEFERANT)<br />

LIEFERANTORT3 := σ Stadt≠‘Berlin ′ ∧ Stadt≠‘Cottbus ′(LIEFERANT)<br />

Die Partionierung muß nicht notwendig über einen Schlüssel definiert sein wie das Beispiel illustriert.<br />

Eine Partionierung kann ggf. auch im Schema weiter fortgesetzt werden. So definieren z. B. Fremdschlüssel-Primärschlüssel-Beziehungen<br />

Abhängigkeiten zwischen Relationen. Eine abgeleitete Partitionierung wird durch die referenzierte Relation und deren Partitionierung bestimmt.<br />

Im Beispiel erhalten wir<br />

TEILE1 := TEILE ✄< LIEFERANTORT1<br />

TEILE2 := TEILE ✄< LIEFERANTORT2<br />

TEILE3 := TEILE ✄< LIEFERANTORT3<br />

für den natürlichen Semi-Verbund ✄< .<br />

Vorteil einer abgeleiteten Partitionierung ist die lokale Berechenbarkeit des Verbundes. Abgeleitete horizontale Partitionierungen lassen sich<br />

sehr einfach anh<strong>and</strong> des zugehörigen ER-Schemas nachzeichnen. Die (abgeleitete) horizontale Partitionierung ist über σ, ∪ definiert. Analog<br />

können auch <strong>and</strong>ere Operationen der Relationenalgebra verwendet werden. In der verwendeten Form ist die Partitionierung auch in SQL<br />

nachvollziehbar:<br />

select *<br />

from R<br />

where Selektionsbedingung .<br />

Die vertikale Partitionierung ist definiert durch das Paar Projektion und Verbund (π, ✶), d. h.<br />

R i := π X(R) (1 ≤ i ≤ n), R =✶ n i=1 R i .<br />

Wie auch in der Normalisierung kann eine Verlustfreiheit nur erreicht werden bei Zerlegung nach einer mehrwertigen oder funktionalen<br />

Abhängigkeit. Oft wird gefordert, daß der Primärschlüssel in alle Partitionen übernommen wird. Damit gilt die Verlustfreiheit in jedem Fall.<br />

Der Vorteil dieser rigiden Forderung ist die vereinfachte Pflege der Integrität. Die Vollständigkeit wird erreicht, wenn jedes Attribut in wenigstens<br />

einer Partition enthalten ist.<br />

In unserem Beispiel können wir die folgende vertikale Partitionierung anstreben:<br />

ANGEST Adresse := π P ersNr,AngName,Anschrift (ANGEST)<br />

ANGEST Abt := π P ersNr,AbtNr (ANGEST)<br />

ANGEST Gehalt := π P ersNr,AngName,Gehalt (ANGEST)<br />

Die Relation ANGEST wird aus dem Verbund :<br />

ANGEST Adresse ✶ ANGEST Abt ✶ ANGEST Gehalt<br />

erhalten.<br />

Die vertikale Partitionierung kann ebenfalls durch einen SQL-Projektionsausdruck definiert werden. Vertikale Partitionierung wird z. Z.<br />

von verteilten DBMS nur rudimentär unterstützt.<br />

Vertikale und horizontale Partitionierung können auch kombiniert werden, wodurch komplexere Partitionen entstehen. Gemischte (hybride)<br />

Partitionen bestehen aus Bäumen von Partitionen wie in Bild 50.<br />

R 21<br />

R 1 R 22<br />

R 23<br />

Zerlegung<br />

der Relation R<br />

R<br />

V<br />

✠ ❘<br />

V<br />

R 2<br />

H H H<br />

✠ ❄❘<br />

R 21 R 22 R 23<br />

Partitionierungsbaum<br />

Abbildung 31: Gemischte Partitionierung<br />

R 1<br />

✶<br />

✒■<br />

∪<br />

✒✻■<br />

R 21 R 22 R 23<br />

Rekonstruktionsbaum<br />

Ein Beispiel für eine Partitionierung wie in Bild 50 ist die Partitionierung von ABTEILUNG in die folgenden Relationen, die eine<br />

Partitionierung nach Leitungsgesichtspunkten und nach Arbeitsbereichen der Abteilungen vornimmt:


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 741<br />

ABTEILLeiter := π AbrNR,MgrP ersNr,Budget (ABTEILUNG)<br />

ABTEILUNG-SW := σ Bereich=‘S<strong>of</strong>tware ′(π AbrNr,AbtName,Bereich (ABTEILUNG))<br />

ABTEILUNG-HW := σ Bereich=‘Hardware ′(π AbrNr,AbtName,Bereich (ABTEILUNG))<br />

ABTEILUNGSonst :=<br />

σ Bereich≠‘S<strong>of</strong>tware ′ ∧Bereich≠‘Hardware ′(π AbrNr,AbtName,Bereich(ABTEILUNG))<br />

Eine Partitionierung kann nach unterschiedlichen Transparenzstufen erfolgen. Es kann sichtbar oder unsichtbar sein, welchem Knoten<br />

eine Partition zugeordnet wird. Es kann sichtbar oder unsichtbar sein, inwieweit eine Replikation bei der Allokation vorgenommen wird.<br />

Partitionstransparenz: Die Partitionierung ist dem Benutzer nicht sichtbar. Er benutzt nur die globalen Namen. Liegt keine Partitionstransparenz<br />

vor, dann kann der Benutzer auch den Partitionsnamen für den Zugriff benutzen.<br />

Replikationstransparenz: Ein Benutzer kann nicht für Tupel unterscheiden, ob diese Tupel mehrfach in Partitionen vorkommen. Liegt keine<br />

Replikationstransparenz vor, dann kann der Benutzer Tupel je nach Partition auswählen.<br />

Ortstransparenz: Die Zuordnung zu Knoten ist unbekannt. Liegt dagegen keine Ortstransparenz vor, dann kann der Benutzer den Knotennamen<br />

als Zugriffspfad benutzen.<br />

Die Bestimmung geeigneter Partitionierungen kann <strong>of</strong>t mit einem intuitiven Ansatz erfolgen. In vielen Anwendungen reicht es bereits<br />

aus, die Partitionierung nach lokalen Zugriffsanforderungen vorzunehmen. Bei komplexeren Anwendungen gibt es eine Vielzahl von Einflußgrößen.<br />

Dann ist eine systematische Vorgehensweise erforderlich. Dazu werden die Anwendungen analysiert nach einer Reihe von Parametern:<br />

• Art des Zugriffs (lesend oder schreibend);<br />

• Häufigkeit der Operationen;<br />

• Auswahlbedingungen der Anfragen;<br />

• betr<strong>of</strong>fene Relationen und innerhalb dieser Gruppen von Attributen;<br />

• zu übertragende Datenmengen.<br />

Auf der Grundlage dieser Entwurfsinformationen wird untersucht, ob eine Partitionierung sinnvoll wird, z. B. durch eine geringere Anzahl von<br />

Zugriffen. Wird die Zugriffshäufigkeit durch Selektionsprädikate geringer oder die Zugriffsbreite (Arität der Tupel) geringer durch vertikale<br />

Partitionierung, dann führt eine Partitionierung zu einem Performanzgewinn.<br />

Die Bestimmung horizontaler und vertikaler Partitionen kann mit einem Rückgriff auf die Booleschen Funktionen berechnet werden. Wir<br />

deuten dieses Verfahren hier kurz an. Es ist den Verfahren zur Optimierung Boolescher Schaltkreise entlehnt.<br />

Wir betrachten dazu zuerst die horizontale Partitionierung. Jeder Selektionsausdruck, der zur horizontalen Partitionierung verwendet wird,<br />

hat eine induktive Struktur, die auf der Grundlage von Elementartermen der Form Aωa mit a ∈ dom(A) und ω ∈ {, ≤, ≥, =, ≠} definiert<br />

sind. Die Menge der Elementarterme α 1 , ..., α k kann zur Darstellung der Selektionsausdrücke in disjunktiver Normalform benutzt werden. Die<br />

Elementarausdrücke werden mit der Aufrufhäufigkeit und der Selektivität gewichtet. Mit diesen Angaben kann eine Partitionierung bestimmt<br />

werden, bei der eine Partition nicht in unterschiedlicher Weise von zwei (oder mehr) der unterstellten Anfragetypen referenziert wird und sich<br />

für die Tupel einer Partition in etwa die gleiche Zugriffshäufigkeit ergibt. Mit den verwendeten Selektionsausdrücke können nun die Monome<br />

herausgefiltert werden, die nun ihrerseits als Komponenten der Selektionsausdrücke benutzt werden.<br />

Abgeleitete horizontale Partitionen werden analog zu obigen Verfahren in die Partitionierung einbezogen. Es wird am einfachsten dazu<br />

das ER-Schema herangezogen. Damit läßt sich der Effekt einer Partitionierung auf <strong>and</strong>ere Relationen relativ einfach bestimmen. Daraus<br />

können über die Fremdschlüssel-Beziehungen Partitionierungen abgeleitet werden für die referenzierenden Relationen. Diese werden wiederum<br />

so beh<strong>and</strong>elt wie bereits zuvor die Relationen für den Fall der horizontalen Partitionierung. Eine Zusammenführung mit den referenzierten<br />

Relationen erfolgt dabei über den Semi-Verbund.<br />

Die vertikale Partitionierung ist ein relativ komplexes Optimierungsproblem. Es werden <strong>of</strong>t statt einer exakten Lösung dafür heuristische<br />

Verfahren verw<strong>and</strong>t, die z. B. die Zugriffshäufigkeiten auf Attributgruppen benutzen, um eine Attributgruppierung abzuleiten.<br />

Nachdem eine Partionierung bestimmt wurde, können die einzelnen Partitionen Knoten des Netzes zuordnet werden. Die Allokation erfordert<br />

eine Optimierungstrategie. Optimierungsziele dabei sind u.a. die Unterstützung kurzer Antwortzeiten bzw. eines hohen Durchsatzes,<br />

die Minimierung des Kommunikationsbedarfs und die Lastbalancierung. Das Optimierungsmodell basiert demzufolge auf einer Minimierung<br />

einer Kostenfunktion unter Einhaltung von R<strong>and</strong>bedingungen. Hauptkomponenten der Kostenfunktion sind demzufolge als negativer Faktor<br />

die Kommunikationskosten, als positiver Faktor der Umfang der lokalen Verarbeitung und als Nebenbedingung Das Nichtüberschreiten von<br />

Grenzwerten zur Auslastung einzelner Rechner. Plazierungsaspekte sind zum einem die Effizienz, d. h. insbesondere die Minimierung der<br />

Remote-Zugriff-Kosten und die Vermeidung von Engpässen in der Kommunikation und bei den lokalen Rechnern, und zum <strong>and</strong>eren die Datensicherheit<br />

z. B. durch Auswahl von Knoten unter Verläßlichkeitsaspekten und durch redundante Speicherung von Daten. Bei der Plazierung<br />

können zwei Hauptansätze verfolgt werden:<br />

• nicht-redundante Allokation (Plazierung) mit einem ggf. höheren Kommunikationsaufw<strong>and</strong> und<br />

• redundante Allokation (Platzierung) mit einem ggf. höheren Pflegeaufw<strong>and</strong>.<br />

Das mathematische Modell für die nicht-redundante Allokation benutzt die folgenden Parameter:<br />

• K : Anzahl der Knoten im Netz;<br />

• P : Anzahl von zu allokierenden Partitionen der globalen Relationen;<br />

• T : Anzahl der Typen von Lese- und Änderungsoperationen auf den globalen Relationen;<br />

• M i : maximale Speicherkapazität in den Dateneinheiten am Knoten i (1 ≤ i ≤ K);


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 742<br />

• S i : Speicherkosten pro Dateneinheit am Knoten i (1 ≤ i ≤ K);<br />

• U ij : Übertragungskosten pro Dateneinheit vom Knoten i nach Knoten j (1 ≤ i, j ≤ K, i ≠ j);<br />

• G p : Größe in Dateneinheiten der Partition p (1 ≤ p ≤ P );<br />

• O tp : Größe in Dateneinheiten einer Teiloperation (d. h. einer Anfragezeichenkette) vom Typ t gegen die Partition p (1 ≤ p ≤ P ,<br />

1 ≤ t ≤ T );<br />

• R tp : Größe in Dateneinheiten des Resultats einer Teiloperation (d. h. einer Anfragezeichenkette) vom Typ t gegen die Partition p<br />

(1 ≤ p ≤ P , 1 ≤ t ≤ T );<br />

• H it : Häufigkeit, mit der Operationen vom Typ t am Knoten i gestellt werden (1 ≤ i ≤ K, 1 ≤ t ≤ T );<br />

• V pi : charakteristische Funktion der Verteilung der Partition auf die Knoten, wobei V pi = 1 gilt , falls die Partition p am Knoten i<br />

allokiert ist und V pi = 0 sonst für (1 ≤ p ≤ P , 1 ≤ i ≤ K).<br />

Bei Leseoperationen gilt typischerweise R tp >> O tp. Damit kann u. U. auch der Faktor O tp vernachlässigt werden. Bei Änderungsoperationen<br />

kann dagegen O tp relativ groß werden, während R tp lediglich eine Bestätigung für die Durchführung der Operation beschreibt.<br />

Damit entstehenden die folgenden Kostenbest<strong>and</strong>teile:<br />

Speicherkosten: Σ S = ∑ P<br />

∑ K<br />

p=1 Gp i=1 VpiSi<br />

Übertragungskosten: Σ U =<br />

∑ P<br />

∑ K<br />

∑ K<br />

∑ T<br />

p=1 i=1 j=1 t=1 H itO tp V pj U ij + ∑ P<br />

∑ K<br />

∑ K<br />

∑ T<br />

p=1 i=1 j=1 t=1 H itR tp V pj U ji<br />

∑<br />

Nebenbedingung für die nicht-redundante Speicherung: K<br />

i=1 V pi = 1 für alle p (1 ≤ p ≤ P )<br />

∑<br />

Nebenbedingung für maximale Speicherkapazitäten: P<br />

p=1 G pV pi ≤ M i für alle i (1 ≤ i ≤ K)<br />

Damit ist das Optimierungsproblem für die nicht-redundante Allokation als Minimierungsaufgabe gegeben, bei der die Funktion<br />

d. h. die Funktion<br />

P∑<br />

p=1<br />

unten den Nebenbedingungen<br />

G p<br />

K<br />

∑<br />

i=1<br />

V pi S i +<br />

p=1 i=1 j=1 t=1<br />

Σ S + Σ U ,<br />

P∑ K∑ K∑ T∑<br />

P∑ K∑ K∑ T∑<br />

H it O tp V pj U ij +<br />

H it R tp V pj U ji<br />

p=1 i=1 j=1 t=1<br />

(i) ∑ K<br />

i=1<br />

Vpi = 1 für alle p (1 ≤ p ≤ P ) und<br />

(ii) ∑ P<br />

p=1 G pV pi ≤ M i für alle i (1 ≤ i ≤ K)<br />

minimiert wird.<br />

Bei hinreichend guten Abschätzungen für die einzelnen Parameter kann das Optimierungsproblem durch Optimierungswerkzeuge gelöst<br />

werden, wobei durch die Komplexität der Kostenfunktion mit erheblichen Rechenaufw<strong>and</strong> zu rechnen ist. Es kann sowohl die Knotentopologie<br />

als auch die Partitionierung als dynamischer Parameter in das Optimierungsproblem einfließen. Neuere Algorithmen der Genetischen<br />

Programmierung und der Heuristik versprechen hier Abhilfe.<br />

Das Kostenmodell für die redundante Allokation ist bezüglich der Speicherkosten und der Nebenbedingung für die maximale Speicherkapazitäten<br />

gleich. Ändern müssen sich jedoch die beiden <strong>and</strong>eren Größen:<br />

Übertragungskosten: Wir unterscheiden hier nach den Operationen. Es gibt T L Leseoperationen auf den globalen Relationen und T S<br />

Änderungsoperationen auf den globalen Relationen, wobei T = T L + T S gilt.<br />

Eine Leseoperation gegen die Partition p wird an denjenigen Knoten i ges<strong>and</strong>t, von dem das Resultat mit den geringsten Kosten<br />

erhalten werden kann. Damit erhalten wir<br />

Σ L U = ∑ P<br />

∑ K<br />

∑ T<br />

L<br />

p=1 i=1 t=1 H it min K j=1, V pj =1(O tp U ij + R tp U ji )<br />

Eine Änderungsoperation gegen die Partition p wird an alle Knoten ges<strong>and</strong>t, an denen die Partition p allokiert ist. Damit erhalten<br />

wir<br />

Σ S U = ∑ P<br />

∑ K<br />

∑ T<br />

S<br />

p=1 i=1 t=1 H ∑ K<br />

it j=1, V pj =1 (O tpU ij + R tp U ji )<br />

∑<br />

Nebenbedingung für die nicht-redundante Speicherung: K<br />

i=1<br />

Vpi ≥ 1 für alle p (1 ≤ p ≤ P ), weil jede Partition an mindestens einem<br />

Knoten allokiert sein muß.<br />

Damit ist das Optimierungsproblem für die redundante Allokation als Minimierungsaufgabe gegeben, bei der die Funktion<br />

unten den Nebenbedingungen<br />

(i) ∑ K<br />

i=1<br />

Vpi ≥ 1 für alle p (1 ≤ p ≤ P ) und<br />

(ii) ∑ P<br />

p=1 G pV pi ≤ M i für alle i (1 ≤ i ≤ K)<br />

minimiert wird.<br />

Σ S + Σ L U + Σ S U


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 743<br />

Man ist damit von Ansatz her in der Lage, eine optimale Lösung exakt zu berechnen, falls alle Parameterwerte hinreichend genau bestimmt<br />

werden können. Man kann in der Verfeinerung noch Transaktionen und die interne Anfrageoptimierung der lokalen Rechner berücksichtigen,<br />

womit die Optimierungsaufgabe jedoch wesentlich komplexer wird und das Allokationsproblem nicht mehr dynamisch beh<strong>and</strong>elt werden kann.<br />

Deshalb werden meist heuristische Verfahren in der Praxis angew<strong>and</strong>t, die im Wesentlichen an den obigen Optimierungsverfahren angelehnt<br />

sind, jedoch die Lastverteilung an der Zugriffsfrequenz optimieren. Es wird zunächst die Partition mit der höchsten Zugriffsfrequenz betrachtet.<br />

Danach werden die lokalen Zugriffsfrequenzen berechnet. Eine Allokation wird nach dem Zugriffsgewicht zugeordnet.<br />

Übungsaufgaben.<br />

Die folgenden Übungsaufgaben dienen der Kontrolle des Verständnisses der in diesem Kapitel beh<strong>and</strong>elten Teilkomplexe. Sie sollen ohne<br />

zusätzliche Hilfsmittel bewältigt werden.<br />

1. Korrektheit der abgeleiteten horizontalen Partitionierung: Die bislang beh<strong>and</strong>elte horizontale Partitionierung und die abgeleitete horizontale<br />

Partitionierung sind nur dann korrekt, falls in der abhängignen Relation keine Nullwerte als Fremdschlüssel vorkommen dürfen.<br />

Wie ist die Partionierung zu erweitern, falls diese Voraussetzung nicht mehr zutrifft? Welche Auswirkungen ergeben sich hinsichtlich<br />

des Semi-Verbundes?<br />

2. Bestimmung von Partitionen: Ein Unternehmen bestehe aus Werken, denen jeweils die Abteilungsnummern 100-120, 130-180, 181-190<br />

sowie alle <strong>and</strong>eren zugeordnet sind. Außerdem soll die Relation ANGEST partitioniert werden in Manager und Angestellte, die keine<br />

Manager sind. Die Angestelltendaten sollen außerdem zur Sicherheit in vertrauliche Daten (Gehalt) und öffentliche Daten separiert<br />

werden.<br />

Man bestimme die horizontalen, vertikalen und die abgeleiteten horizontalen Relationen von ABTEILUNG und ANGEST.<br />

3. Bestimmung horizontaler Partitionen: Ein Unternehmen hat die Bereiche ‘S<strong>of</strong>tware’, ‘Hardware’ und ‘Service’. die Abteilungen seine<br />

jeweils primär einem Bereich zugeordnet (S<strong>of</strong>tware: 1-25, Hardware: 36-42 und Service: 26-35, 43-50). Die Analyse der Anwendungen<br />

ergebe folgende Zugriffsbereiche bzgl. der Relation ABTEILUNG:<br />

A 1 : Zugriff auf alle Tupel mit dem Bereich = ‘S<strong>of</strong>tware’;<br />

A 2 : Zugriff auf alle Tupel mit dem Bereich = ‘Hardware’;<br />

A 3 : Zugriff auf alle Tupel mit dem Bereich = ‘Service’;<br />

A 4 : Zugriff auf alle Tupel mit der Abteilungsnummer ∈ {1, ..., 20};<br />

A 5 : Zugriff auf alle Tupel mit der Abteilungsnummer ∈ {21, ..., 37};<br />

A 6 : Zugriff auf alle Tupel mit der Abteilungsnummer ∈ {37, ..., 50}.<br />

Die Relation ABTEILUNG sei geeignet (horizontal) zu partitionieren. Ermitteln Sie außerdem Ansätze für heuristische Gewichte unter<br />

der Annahme einer Gleichverteilung der Anwendungen.<br />

4. Integration von verteilten Systemen: Gegeben seien die folgenden Schemata A und B:<br />

TEIL_A(TeilNr, Bezeichnung, PreisDM, Lagerort)<br />

LIEF_A(TeilNr, LieferNr)<br />

TEIL_B(TeilNr, TeilBez, LiefNr)<br />

PREIS_B(TeilNr, PreisEuro)<br />

LAGERORT_B(TeilNr, Lagerort)<br />

Formulieren Sie die Abbildungen in das Schema<br />

TEIL(TeilNr, TeilBez, LiefNr, PreisEuro, Lagerort)<br />

und für einige ausgewählte Anfragen die Transformation.<br />

8.1.5 Verteilte Anfrage- und Transaktionsverarbeitung<br />

In diesem Kapitel beh<strong>and</strong>eln wir die Auswirkungen der gewählten Verteilung auf die Funktionalität des Datenbanksystemes. Zuerst wird<br />

anh<strong>and</strong> der Anfrageberechnung aufgezeigt, mit welchen Mechanismen eine effiziente Berechnung von Anfragen in einem verteilten System<br />

erfolgen kann. Danach werden die Auswirkungen der Verteilung auf das Transaktionskonzept untersucht.<br />

Verteilte Anfragenbearbeitung.<br />

Zur optimalen verteilte Anfragebearbeitung wird eine Ausführungsplan in Abhängigkeit von der Datenverteilung bestimmt. Kostenfaktoren<br />

sind Übertragungskosten (Nachrichtenanzahl, Nachrichtenumfang), I/O-Kosten, die Geschwindigkeit insbesondere Antwortzeiten und<br />

ggf. CPU-Bedarf und Hauptspeicherbedarf. Zur Auswahl der optimalen Strategie sind eine Reihe von Entscheidungen zu treffen:<br />

◦ Anfrage-Zerlegung in lokal ausführbare Teilanfragen;<br />

◦ Ausführungsreihenfolge für Selektion, Projektion und Join;<br />

◦ Nutzung von Indexstrukturen;<br />

◦ Parallelisierung von Teilanfragen;<br />

◦ Auswahl der globalen und lokalen Join-Strategie (Nested-Loop, Sort-Merge,<br />

Hash-Join);<br />

◦ Rechnerauswahl, z. B. zur Join-Berechnung;<br />

◦ Auswahl der Replikate.<br />

Diese Entscheidungen können schrittweise getr<strong>of</strong>fen werden, so daß ein Phasenmodell zur Berechnung nach Bild 51 realisiert werden kann.<br />

Das Phasenmodell mündet in folgende Schrittfolge:<br />

1. Prüfung der Anfrage auf syntaktische und semantische Korrektheit;


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 744<br />

globale Anfrage<br />

Dialekt der DB-Sprache<br />

globales Schema<br />

Verteilungsschema<br />

globale Statistiken<br />

lokales Schema<br />

✲<br />

✲<br />

✲<br />

✲<br />

✲<br />

❄<br />

Anfrage-Parsing<br />

validierte globale<br />

❄<br />

Anfrage<br />

Anfragetransformation<br />

algebraischer<br />

❄ Ausdruck<br />

Daten-Lokalisierung<br />

Partition-<br />

❄<br />

Ausdruck<br />

globale Optmierung<br />

global optimierter<br />

❄Partition-Ausdruck<br />

lokale Optimierung<br />

❄<br />

optimierte lokale Anfrage<br />

Abbildung 32: Phasen der verteilten Anfragebearbeitung<br />

2. Transformation globaler Anfragen in lokal ausführbare Anfragen mit algebraischen Termersetzungstechniken;<br />

3. Lokalisierung der Daten in den einzelnen Knoten;<br />

4. Vereinfachung der Anfrageausdrücke mit Methoden der algebraischen Optimierung, z. B. Vereinfachung von Algebra-Ausdrücken und<br />

Elimination redundanter Teilausdrücke;<br />

5. Bestimmung der Berechnungsverfahren für Operationen, insbesondere des Verbundes;<br />

6. Bewertung und Auswahl von Ausführungsstrategien mit den Kostenparametern, ggf. Abschätzung von Zwischenergebnisgrößen und<br />

einem Abwägen zwischen Funktionsexport und Datenexport.<br />

Wünschenswert - aber nicht immer realistisch - ist dabei auch eine Berücksichtigung des aktuellen Systemzust<strong>and</strong>es zur Laufzeit.<br />

In der Phase der Anfragetransformation wird<br />

• eine Interndarstellung für die Anfrage (z. B. in der Relationenalgebra) erzeugt,<br />

• eine Namensauflösung anh<strong>and</strong> des globalen Schemas ausgelöst,<br />

• die Anfrage semantisch analysiert,<br />

• die Anfrage normalisiert und<br />

• algebraisch vereinfacht unter Benutzung der Äquivalenzregeln der Operationenalgebra.<br />

Da die Anfragen in SQL oder einer <strong>and</strong>eren DBMS-Sprache formuliert sind, müssen sie zuerst aufbereitet werden. Es wird dazu eine<br />

Transformation in die interne Sprache vorgenommen. In relationalen Systemen ist dies eine Variante der relationalen Algebra.<br />

In der Namensauflösung werden die logischen Objektnamen internen Bezeichnern zugeordnet. Im verteilten Fall werden ggf. Synonymtabellen<br />

und die Katalogdaten verwendet.<br />

Mit einer semantischen Analyse wird geprüft, ob die verwendeten Relationen und Attribute im globalen Schema definiert sind. Sind die<br />

Operationen auf Sichten spezifiziert, dann wird eine Anfrageexpansion durchgeführt, um die Anfrage auf die Basisrelationen zurückzuführen.<br />

Außerdem erfolgt die Überprüfung von Integritätsbedingungen.<br />

In der Normalisierungsphase wird die Anfrageklausel in eine konjunktive Normalform überführt. Dazu werden die Gleichungen der<br />

Booleschen Algebra benutzt.<br />

Meist können die entst<strong>and</strong>enen Ausdrücke vereinfacht werden. Dazu werden die Äquivalenzregeln der relationalen Algebra in der Anfrageoptimierung<br />

angew<strong>and</strong>t. Typische Regeln sind z. B. die folgenden:<br />

• Der Verbund ist kommutativ, assoziativ,<br />

monoton, d. h. R ⊆ S ⇒ R ✶ T ⊆ S ✶ T ,<br />

absorbtiv, d. h. R ⊆ R ′ ⇒ R ✶ R ′ = R und<br />

idempotent, d. h. R ✶ ∅ = ∅ ,<br />

R ✶ S = R × S falls R ∩ S = ∅ und<br />

R ✶ S = R ∪ S falls R = S.


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 745<br />

• Verbund und Selektion können mitein<strong>and</strong>er vertauscht werden:<br />

⎧<br />

⎨ σ A=c (R) ✶ S<br />

σ A=c(R ✶ S) = σ A=c(R) ✶ σ A=c(S)<br />

⎩<br />

R ✶ σ A=c (S)<br />

falls A ∈ R \ S<br />

falls A ∈ R ∩ S<br />

falls A ∈ S \ R<br />

• Alle Tupel einer Relation können wiederhergestellt werden durch Verbund einer vertikal zerlegten Relation, d. h.<br />

für ∪ k i=1X i = R<br />

• Tupel in der Projektion des Verbundes sind in der Komponente des Verbundes enthalten: π Xj (✶ k i=1 R i) ⊆ R j.<br />

• Gilt für eine Relation R =✶ k i=1 π Xi (R) , dann gilt die Verbundabhängigkeit (X 1 , ...X k ) in R .<br />

• Projektion und Verbund können vertauscht werden, wenn die gemeinsamen Attribute in der Projektion verwendet werden:<br />

S) = π X(R) ✶ π X(S) falls R ∩ S ⊆ X.<br />

• Selektion und Verbund können vertauscht werden: π X(σ A=c(R)) = σ A=c(π X(R)) falls A ∈ X ∩ R.<br />

• Projektionen können zusammengefaßt werden:<br />

π X(π Y (R)) = π X∩Y (R).<br />

• Die verallgemeinerte Vereinigung ist kommutativ, idempotent, monoton, assoziativ, distributiv mit Verbund.<br />

• Die Selektionen σ A=c, σ A≠c definieren eine Partition.<br />

• Selektionen können einzeln bearbeitet und zusammengefaßt werden:<br />

σ X=Y (R) = σ A1 =B 1<br />

(σ A2 =B 2<br />

(...σ Am=B m (R)...)) für X = A 1 , ...A m , Y = B 1 , ..., B m .<br />

• Der Quotient zweier Relationen genügt der Gleichung<br />

R/S = π R\S (R) \ π R\S ((π R\S (R) ✶ π R∩S(S)) \ R).<br />

Außerdem gilt für den Quotienten (R ✶ S)/S = R falls R ∩ S = ∅ .<br />

R ⊆✶ k i=1 π Xi (R)<br />

π X (R ✶<br />

Diese Regeln können als Termersetzungsregeln benutzt werden. Analog kann man den Operatorenbaum wie in Bild 50 umw<strong>and</strong>eln. Meist<br />

werden auch Heuristiken angew<strong>and</strong>t wie z. B.<br />

frühzeitige Ausführung von Selektionsoperationen;<br />

frühzeitige Durchführung von Projektionen (ohne Duplikateliminierung);<br />

Zusammenfassung mehrerer Selektionen und Projektionen auf demselben Objekt;<br />

Bestimmung gemeinsamer Teilausdrücke.<br />

So wird z. B. die Anfrage ‘Gesucht sind die Teilenummern aller Teile aller Lieferanten, deren Namen mit A beginnt, und deren Preis<br />

zwischen 10 und 20 Einheiten liegt!’ durch die SQL-Anfrage<br />

select TeileNr<br />

from TEILE, LIEFERANT<br />

where TEILE.LiefNr = LIEFERANT.LiefNr<br />

Preis < 20 <strong>and</strong> Preis > 10 <strong>and</strong><br />

LiefName like ’A%’<br />

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

angedrückt, die in den algebraischen Ausdruck<br />

π T eileNr (σ P reis>10∧P reis10∧P reis


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 746<br />

Horizontale Partitionierung: Durch Verbund-Berechnung bei horizontaler Partitionierung wird ein reduzierter Kommunikations- und Verarbeitungsumfang<br />

für Joins auf Partitionierungsattribut erreicht. Parallele Verbund-Berechnungen ersparen aufwendige Transfers.<br />

Gegeben sei z. B. eine Partititionierung von R und S in R 1 , R 2 , R 3 und S 1 , S 2 . Dann kann ein Verbund R ✶ S berechnet werden<br />

durch (R 1 ∪ R 2 ∪ R 3 ) ✶ (S 1 ∪ S 2 ) . Durch Ausmultiplizieren erhalten wir den Ausdruck<br />

(R 1 ✶ S 1) ∪ (R 1 ✶ S 2) ∪ (R 2 ✶ S 1) ∪ (R 2 ✶ S 2) ∪ (R 3 ✶ S 1) ∪ (R 3 ✶ S 2).<br />

Dieser Ausdruck erscheint auf den ersten Blick komplexer, erfordert jedoch weniger Kommunikation zu seiner Berechnung.<br />

Sind die Partitionen auf unterschiedliche Knoten disjunkt verteilt, dann wird dieser Ausdruck wesentlich einfacher. Sind z. B. die<br />

Objekte in R i, S j nach gleichen Selektionsprädikaten partitioniert, z. B. R 1 = σ α(R), R 2 = σ β1 (R), R 3 = σ β2 (R) und S 1 =<br />

σ α (S), S 2 = σ β1 ∨β 2<br />

(S), dann kann der obige Ausdruck vereinfacht werden zu<br />

(R 1 ✶ S 1) ∪ (R 2 ✶ S 2) ∪ (R 3 ✶ S 2).<br />

In analoger Art können auch die <strong>and</strong>eren Operationen der relationalen Algebra den Partitionen zugeordnet werden.<br />

Abgeleitete horizontale Partitionierung: In ähnlicher Form kann eine noch weitergehende Optimierung für die abgeleitete horizontale Partitionierung<br />

ereicht werden, indem die Partitionierung der referenzierten Relation zu einer Partitionierung der referenzierenden Relation<br />

führt. In diesem Fall wird der algebraische Ausdruck ebenso vereinfachbar sein wie im Falle der horizontalen Partitionierung.<br />

Vertikale Partitionierung: Die Partitionen sind durch Projektionsausdrücke definiert. Damit können Äquivalenzen, die für die Projektion<br />

gelten in analoger Form benutzt werden, um lokal ausführbare Ausdrücke aus den Anfrageausdrücken zu berechnen.<br />

Ein Parallelausführung kommt nur in sehr eingeschränktem Umfang zum Zuge. Durch eine geschickte Transformation ist allerdings<br />

<strong>of</strong>t eine Reduktion der Zwischenergebnisgrößen möglich und damit eine einfachere Berechnung.<br />

Nach einer Berechnung der lokal ausführbaren Ausdrücke kann auch ein Reduktionsschritt initiiert werden, bei dem überflüssige Teilausdrücke<br />

entfernt werden. Außerdem können überdeckte Ausdrücke entfernt werden. Dabei werden im Falle der horizontalen Partitionierung die<br />

Zerlegungsprädikate mitbetrachtet. Es wird dann für die lokalen Ausdrücke berechnet, ob diese Ausdrücke ggf. in der Partition zu einer leeren<br />

Menge führen.<br />

Problematisch sind Aggregationsfunktionen. Sind die Partitionen nicht disjunkt, dann kann sowohl bei der Summierung als auch bei der<br />

Ermittlung der Tupelanzahl durch Duplikate ein Fehler auftreten. Damit sind nur die Minimum-Funktion und die Maximum-Funktion lokal<br />

berechenbar. I. Allg. sind die Summe, die Tupelanzahl und die Average-Funktion nicht lokal berechnbar, wenn keine echte Partition vorliegt.<br />

Falls eine Duplikat-Eliminierung notwendig ist, dann muß i. Allg. das Resultat global ermittelt werden.<br />

Im obigen Beispiel nehmen wir an, daß die Datenbank partitioniert wurd nach Lieferantenorten. Demzufolge kann diese Anfrage nur<br />

berechnet werden durch eine Vereinigung aller Partitionen. Wir nehmen außerdem an, daß damit eine Partitionierung von TEILE impliziert ist.<br />

Damit wird der Ausdruck<br />

π T eileNr (σ P reis>10∧P reis10∧P reis10∧P reis10∧P reis


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 747<br />

Kostenfunktionen können wesentlich genauer durch das Einbeziehen von Statistiken spezifiziert werden. Die obigen Eingangsgrößen<br />

bestimmen im Wesentlichen den Kommunikationsaufw<strong>and</strong>. Damit ist die Selektivität eine wesentliche Eingangsgröße. Die Seleketivität Sel<br />

eines algebraischen Ausdrucks E der über einer Relation R definiert ist (Verbund, Selektion, Projektion, komplexe Ausdrücke), ist bestimmt<br />

durch<br />

Sel(E) = |E(R)|<br />

|R|<br />

Da diese Größe stark von der augenblicklichen Größe der Relation abhängt, werden Schätzungen verwendet, die eine ungefähre Kenntnis der<br />

Verteilung der Werte in dom(A) für die Attribute A voraussetzen. Setzt man z. B. eine Gleichverteilung der Werte und die Unabhängigkeit<br />

der Attributwerte innerhalb eines Tupels voraus, dann gelten<br />

Sel(σ A>a) ≈<br />

Sel(σ A


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 748<br />

Filterstrategien: (hash-filter join) Der Ansatz ist dem vorhergehenden Ansatz sehr ähnlich. Es wird auch hier eine verteilte Berechnung<br />

erfolgen. Der Datentransfer ist damit reduziert. Im Unterschied allerdings wird nicht die komplete Verbundrelation ges<strong>and</strong>t, sondern<br />

nur ein Bitvektor, der anzeigt, welche der möglichen Werte in dom(A) in den Relationen auftreten. Der Bitvektor kann noch kleiner<br />

gehalten werden, wenn er mittels einer Hashfunktion erzeugt wird. Existiert ein Wert nicht in der Relation, dann tritt er auch nicht unter<br />

den Hashwerten auf. Aufgrund der Doppeltbelegung kann aber ggf. auch die Existenz eines Wertes in der Relation angezeigt werden,<br />

für den ein entsprechender Wert mit dem gleichen Hashwert in der Relation existiert.<br />

Wird z. B. h(x) = xmod7 über dem Wertebereich {0, ..., 13} gewählt, dann zeigt der Bitvektor (0101011) für die Werte (6, 5, 4, 3, 2, 1, 0)<br />

an ,daß 5 oder 12, 3 oder 10, 1 oder 8 und 0 oder 7 in der Relation auftreten. Erhält der Knoten K S einen Bitvektor vom Knoten K R ,<br />

dann kann er mit dem eigenen Bitvektor nicht verbindbare Tupel aussortieren und nur die Tupel an K R senden, für die möglicherweise<br />

ein Tupel in R existiert.<br />

In einem abschließenden fünften Schritt wird die lokale Optimierung durchgeführt. Diese wird nach den Optmierungsprinzipien durchgeführt,<br />

die auch für zentrale DBS gelten. Wir verweisen auf die Optmierungsverfahren in den <strong>and</strong>eren Lektionen.<br />

Verteilte Transaktionsverwaltung.<br />

Auch im Falle verteilter DBS sollten die ACID-Eigenschaften von Transaktionen gewahrt sein:<br />

• Atomarität (atomicity): Es wird die Transaktion entweder volständig wirksam oder gar nicht. Die Atomarität wird durch Commit-<br />

Protokolle unterstützt.<br />

• Konsistenz (consistency): Startet die Transaktion in einem Zust<strong>and</strong>, in dem alle Integritätsbedingungen gelten, dann sollen diese auch<br />

nach Abschuß der Transaktion gelten. Mit verteilten DBS kann auch eine verteilte Überwachung von Integritätsbedingungen z. B.<br />

bei partitionierten Relationen realisiert werden. Die Integritätssicherung erfordert außerdem auch ggf. eine Ausführung verzögerter<br />

Integritätsbedingugnen im Rahmen eines erweiterten Commit-Protokolles.<br />

• Isolierte Zurücksetzbarkeit (isolation): Wird eine Transaktion ausgeführt oder auch zurückgesetzt, dann sind davon die <strong>and</strong>eren<br />

Transaktionen nicht betr<strong>of</strong>fen. Die Isolation von Transaktionen wird durch eine Synchronisation der Ausführung von Transaktionen<br />

gewährleistet. Dabei entstehen auch rechnerübergreifende Abhängigkeiten und spezifische Blockierungen (deadlocks).<br />

• Dauerhaftigkeit (durability): Das Ergebnis einer Transaktion wird dauerhaft in die Datenbank eingebracht, sobal sie akzeptiert ist.<br />

Durch Logging und Recovery wird eine Robustheit gegenüber partiellen Fehlern, insbesondere Kommunikationsfehlern (z. B. Netzwerkpartitionen)<br />

gewährleistet. Im Kontext verteilter DBS wird dabei als Neuerung das globale Commit-Protokoll eingeführt. Commit-Protokolle<br />

sollen die Atomarität verteilter Transaktionen durch rechnerübergreifenden Mehr-Phasen-Abgleich sicherstellen. An ein Commit-Protokoll<br />

stellen wir deshalb Anforderungen wie<br />

◦ Korrektheit,<br />

◦ geringer zusätzlicher Aufw<strong>and</strong> (Nachrichten, I/O),<br />

◦ geringe Antwortzeitverlängerung,<br />

◦ Robustheit gegenüber von Rechnerausfällen und Kommunikationsfehlern und<br />

◦ weitgehende lokale Autonomie.<br />

Jeder an einer verteilten Transaktionsausführung beteiligte Rechner soll möglichst lange das Recht auf einseitigen Transaktionsabbruch haben.<br />

Wir werden unten als wesentliche Alternativen drei Commit-Protokolle beh<strong>and</strong>eln.<br />

Wir unterscheiden im weiteren zwischen ‘lokalen’ Transaktionen und ‘globalen’ Transaktionen. Globale Transaktionen bestehen i.d.R.<br />

aus mehreren Teiltransaktionen, die bestimmte Teilaufgaben übernehmen. Erzeugt eine Teiltransaktion T eine weitere Teiltransaktion T ′ ,<br />

dann wird T ′ auch als Subtransaktion bezeichnet. Meist übernimmt die Teiltransaktion des ‘Startknotens’ die Steuerung des Ablaufs der globalen<br />

Transaktion. Sie hat damit die Aufgabe, Subtransaktionen zu initiieren, die Ergebnisse zu sammeln, Fehlernachrichten auszuwerten,<br />

eine Commit-Beh<strong>and</strong>lung (z. B. mit einem Zwi-Phasen-Commit-Protokoll) durchzuführen und ggf. auch Recovery-Maßnahmen einzuleiten.<br />

Existiert eine derartige Steuertransaktion, dann wird diese auch als Primärtransaktion (primary transaction, master transaction) und der Startknoten<br />

als Primärknoten (primary site, master site) bezeichnet. In zukünftigen Systemen werden auch geschachtelte Transaktionen unterstützt.<br />

Damit kann auch ein isoliertes Rücksetzen von Subtransaktionen erfolgen, eine transaktionsinterne Synchronisation zwischen den Teiltransaktionen<br />

und eine Parallelausführung von Teil- und Subtransaktionen. Geschachtelte Transaktionen können durch einen Transaktionsbaum, der<br />

die Aufrufbeziehungen darstellt, visualisiert werden.<br />

Wir können im Wesentlichen vier Formen der Ausführung von Transaktionen unterscheiden:<br />

Entfernter Programmaufruf: Im Anwendugnsprogrmm wird ein <strong>and</strong>erer Knoten explizit spezifiziert. Das DB-Programm wird auf dem <strong>and</strong>eren<br />

Knoten ausgeführt. Der Aufruf wird dabei komplet abgeschlossen. Es gibt keine systemseitige Fortpflanzung des Aufrufs an<br />

<strong>and</strong>ere Knoten.<br />

Entfernte Ausführung einer Transaktion: Die komplette Transaktion wird auf einen <strong>and</strong>eren Knoten ausgeführt. Die entfernte Transaktion<br />

wird jeweils komplett abgeschlossen. Es gibt keine systemseitige Fortpflanzung der entfernten Transaktion. Voraussetzung für dieses<br />

Konzept ist, daß der <strong>and</strong>ere Knoten das Transaktionskonzept unterstützt. Dieser Knoten wird im Anwendungsprogramm explizit<br />

angegeben. Das Konzept wird in Bild 34 illustriert.<br />

Entfernt ausgeführte Teil-Transaktionen: Die globale Transaktion wird in Teil-Transaktionen zerlegt. diese werden dann auf den <strong>and</strong>eren<br />

Knoten ausgeführt. Die Ausführung einer Teil-Transaktion ist bedingt. Es erfolgt keine Fortpflanzung der Teiltransaktionen auf <strong>and</strong>ere<br />

Knoten, d. h. es existieren keine Sub-Transaktionen. Für den lesenden Zugriff ist diese Vorgehensweise kein Problem. Anders ist<br />

dies dagegen für Änderungen. Es kann zu Konflikten kommen. z. B. wird mit dem partiellen Commit der Teil-Transaktionen kein<br />

Commit der gesamten Transaktion erzwungen. Damit können bei einem Systemfehler oder Transaktionsabbruch beim Primärknoten


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 749<br />

Anwendungsprogramm<br />

BeginOfTransaction<br />

execute<br />

3<br />

3<br />

✾<br />

ok<br />

execute<br />

3<br />

✾<br />

ok<br />

commit<br />

3<br />

❄<br />

✾<br />

ok<br />

Zeit Knoten A Knoten B<br />

Abbildung 34: Entfernte Ausführung einer Transaktion<br />

Konflikte entstehen, die es mit einem zusätzlichen Nachrichtenaustausch zu beheben gilt. Es werden Nachrichten ‘prepare-to-commit’<br />

und ‘ready-to-commit’ zwischen den Rechnern ausgetauscht. Das in Bild 35 dargestellte Protokoll erlaubt mit einer zusätzlichen<br />

Kommunikation eine korrekte Ausführung.<br />

Anwendungsprogramm<br />

BeginOfTransaction ✲<br />

execute ✲<br />

✛ ok<br />

prepare to commit ✲<br />

✛ready to commit<br />

✲<br />

✛<br />

✛<br />

BeginOfTransakction<br />

execute ✲<br />

ok<br />

prepare to commit ✲<br />

ready to commit<br />

❄<br />

commit<br />

✲<br />

commit<br />

✲<br />

Zeit Knoten A Knoten B Knoten C<br />

Abbildung 35: Ausführung eines Zwei-Phasen-Commit-Protokolls durch Anwendungsprogramm<br />

Verteilte globale Transaktionen: Verteilte Transaktionen verhalten sich gegenüber den Anwnedungsprogrammen wie eine gewöhnliche<br />

Transaktion. Die Transaktion wird DBMS-seitig zerlegt in Teil-Transaktionen. Das Anwendungsprogramm kennt diese Zerlegung<br />

nicht. Die Teil-Transaktionen werden entfernt ausgeführt. Sie sind transparent für das Anwendungsprogramm. Die Teil-Transaktionen<br />

können ggf. fortgepflanzt werden auf <strong>and</strong>ere Knoten. auch dies bleibt unsichtbar für das Anwendungsprogramm. Die Durchführung<br />

dieses Protokolls wird in Bild 36 dargestellt. Ein Commit-Protokoll kann in unterschiedlicher Form verwaltet werden.<br />

• In einer zentralisierte Commit-Struktur verwaltet die Primärtransaktion die Abstimmung mit allen <strong>and</strong>eren Teil- und Sub-<br />

Transaktionen.<br />

• In einer hierarchischen Commit-Struktur wird die Verwaltung der Sub-Transaktionen den Teil-Transaktionen überlassen.


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 750<br />

Anwendungsprogramm<br />

BeginOfTransaction T<br />

BeginOfTransaction✲<br />

T1<br />

execute ✲<br />

execute ✲<br />

BeginOfTransaktion T2 ✲<br />

execute ✲<br />

execute ✲<br />

prepare to commit T1 ✲<br />

prepare to commit T2 ✲<br />

✛ready to commit<br />

✛<br />

ready to commit<br />

commit T1 ✲<br />

commit T2 ✲<br />

CommitTransaction T<br />

❄<br />

Zeit Knoten A Knoten B Knoten C<br />

Abbildung 36: Ausführung eines Zwei-Phasen-Commit-Protokolls durch verteiltes DBMS<br />

• In einer linearen Commit-Struktur wird die Verwaltung jeweils den Teil-Transaktioß-nen weitergegeben, so daß eine Kette von<br />

Teil-Transaktionen entsteht.<br />

Die Commit-Struktur hängt im Wesentlichen von der Bekanntheit der Allokation und Partitionierung ab. Ist diese <strong>Information</strong> vollständig<br />

vorh<strong>and</strong>en, dann ist eher ein flacher Transaktionsgraph sinnvoll. Ist die <strong>Information</strong> über die Partitionierung und die Allokation dagegen<br />

nicht vollständig, dann empfehlen sich eher tief geschachtelte Commit-Strukturen, meist hierarchisch jedoch.<br />

Die Abort-Nachrichten gehen nur an die Teil-Transaktionen, die nicht mit Failed gestimmt haben. Ein Problem beim Zwei-Phasen-<br />

Commit-Protokoll ist die relative lange Blockieurng im Falle eines Primärknotenausfalls.<br />

Die Knoten haben unterschiedliche Zustände. Am Primärknoten, ebenso wie an den koordinierenden Teilknoten werden die folgenden<br />

Zustände angenommen:<br />

• initial (als Beginn-Zust<strong>and</strong> der Transaktion mit dem Nachfolgezust<strong>and</strong> ‘wait’),<br />

• wait (als Warte-Zust<strong>and</strong> auf die Nachrichten der Teil-Transaktionen mit den Nachfolgezuständen ‘aborting’ und ‘committing’),<br />

• aborting (falls ein Failed oder TimeOut empfangen wurde mit dem Nachfolgezust<strong>and</strong> ‘terminated’),<br />

• committing (falls von allen Teil-Transaktionen ein ‘ready’ empfangen wurde mit dem Nachfolgezust<strong>and</strong> ‘terminated’) und<br />

• terminated (als Endzust<strong>and</strong>).<br />

Die Teilknoten realisieren dagegen die Zustände<br />

• wait (auf einen Eröffnungsdialog mit den Nachfolgezuständen ‘prepared’ und ‘abort’),<br />

• prepared (falls eine Prepare-Nachricht vom Vater empfangen wurde, auf das mit Ready geantwortet wird, mit ‘aborted’ oder<br />

‘committed’ als Nachfolgeknoten)<br />

• aborting (falls ein Abort oder TimeOut empfangen wurde mit einem Aussenden eines Failed an den Vaterknoten) und<br />

• committing (falls Commit empfangen wurde mit einer Antwort als Bestätigung des Zust<strong>and</strong>des an den Vaterknoten).<br />

Das hier vorgestellte Zwei-Phasen-Commit-Protokoll bedarf noch weiterer Verfeinerungen, einer speziellen Log-Datei und entsprechender<br />

TimeOut-Verwaltung.<br />

Werden mehrere Transaktionen konkurrierend auf den gleichen Ressourcen ausgeführt, dann muß auch für verteilte DBS eine Unterstützung<br />

für die Konsistenzpflege realisiert werden. Wie auch im Falle zentraler DBS können inkonsistentes Lesen, verlorengegangene Änderungen<br />

und Verletzungen der Konsistenz der Daten auftreten. Aus diesem Grund muß eine konsistenzbewahrende Änderung des Datenbankzust<strong>and</strong>es<br />

unterstützt werden.<br />

Bei Transaktionen, die auf mehreren Rechnern verteilt sind reicht es nicht aus, wenn die Transaktionen jeweils lokal serialisierbar sind.<br />

Die Transaktionen in Bild 37 sind lokal serialisierbar, nicht aber global. Die lokalen Abhängigkeitsgraphen der Transaktionen (Knoten A:<br />

T 1 → T 2 und Knoten B: T 2 → T 1) ergeben den globalen Serialisierungsgraphen<br />

T 1<br />

→ ← T 2 .<br />

Es ist zyklisch, damit ist eine Ausführung mit dem Plan von Bild 37 nicht sinnvoll.<br />

Eine Lösung ist die Serialisierung paralleler globaler Transaktionen mit einer erweiterten Verwaltung von Sperren, insbesondere für die<br />

lokalen DBS. Globale und lokale Transaktionen können Änderungen <strong>and</strong>erer globaler Transaktionen erst dann ‘sehen’, wenn diese das globale<br />

Commit abgeschlossen haben. Findet das globale Commit einer Transaktion T zeitlich vor dem globalen Commit einer <strong>and</strong>eren Transaktion<br />

T ′ statt, dann müßte in einer äquivalenten seriellen Ausführungsreihenfolge T 1 vor T 2 ausfgeführt werden.


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 751<br />

Knoten A<br />

Schritt T 1<br />

1. r(A)<br />

2.<br />

T 2<br />

w(A)<br />

Knoten B<br />

Schritt<br />

3.<br />

4.<br />

T 1<br />

r(A)<br />

T 2<br />

w(A)<br />

Abbildung 37: Lokal serialisierbare Transaktionen<br />

Das strenge Zwei-Phasen-Sperrprotokoll ist eine Verallgemeinerung des klassischen zentralen Sperrprotokolls. Eine Transaktion erwirbt<br />

global Sperren, die bis zum End-Of-Transaction gehalten und ‘auf einen Schlag’ global freigegeben werden.<br />

Die Sperrverwaltung kann lokal erfolgen z. B. für die Daten, die dem Knoten durch die Partition zugeordnet sind, oder global im System.<br />

Obwohl die Erkennung von Verklemmungen (deadlocks) einfacher im zweiten Fall ist, wird aus Performanzproblemen und aufgrund der<br />

Eingriffe in die lokale Autonomie der Knoten bei den Systemen die lokale Sperrverwaltung gewählt. Eine Transaktion, die am Knoten A<br />

ausgeführt wird, muß für die Daten, die auf dem Knoten B liegen, eine Sperre vom Knoten B erwerden. Verträglichkeiten der neuen Sperre<br />

mit bereits vorliegenden Sperren können lokal entschieden werden.<br />

Verklemmungen sind lokal nicht zu erkennen, wenn gleichzeitig Transaktionen nicht nur lokale Berechnungen erfordern. Ein Beispiel<br />

wird in Bild 38 dargestellt. Es können exklusive Sperren (lockX) oder Lesesperren (lockS; shared) angefordert werden. Exklusive Sperren<br />

Schritt<br />

Knoten A<br />

T 1<br />

T 2<br />

Schritt<br />

Knoten B<br />

T 1<br />

T 2<br />

0.<br />

1.<br />

2.<br />

6.<br />

BOT<br />

lockS(A)<br />

r(A)<br />

lockX(A)<br />

≀ ≀ ≀<br />

3.<br />

4.<br />

5.<br />

7.<br />

BOT<br />

lockX(B)<br />

w(B)<br />

lockS(B)<br />

≀ ≀ ≀<br />

Abbildung 38: Verteilte Verklemmung<br />

erlauben eine Modifikation der Daten. Lesesperren können durch mehrere Transaktionen gemeinsam benutzt werden. Wird eine Sperre angefordert<br />

obwohl das Objekt von einer <strong>and</strong>eren Transaktion bereits gesperrt ist, dann muß die Transaktion warten (≀ ≀ ≀). Im Beispiel setzen zwar<br />

die Transaktionen Sperren auf unterschiedlichen Objekten, aber am Knoten A wartet T 2 auf eine Freigabe durch T 1 . Am Knoten B ist dies<br />

umgekehrt. Wiederum erhalten wir die gegenseitige globale Abhängigkeit der beiden Transaktionen<br />

T 1<br />

→ ← T 2 .<br />

Die Sperren können in der Vorausschau berechnet werden. Dazu existieren drei Verfahren zur Erkennung von Verklemmungen:<br />

Zeitmarken: Nach Verstreichen von festgelegten Zeitintervallen werden Transaktionen, die in diesen Zeitintervallen keine weiteren Aktionen<br />

ausgelöst haben, zurückgesetzt. Zeitmarken müssen optimal bestimmt werden. Sind die Zeitmarken zu niedrig gesetzt, dann werden<br />

Transaktionen zu schnell zurückgefahren. Sind sie zu hoch, dann dann wird die Performanz der Anwendung durch lange Wartezeiten<br />

verringert.<br />

Zentrale Erkennung von Verklemmungen: Ein neutraler Knoten verwaltet die Wartebeziehungen der Transaktionen. Von Vorteil ist die<br />

einfache Berechnung der Wartegraphen. Nachteilig ist das hohe Nachrichtenaufkommen sowie die Entstehung von Phantom-Verklemmungen,<br />

die durch Laufzeiten von Nachrichten im System entstehen.<br />

Dezentrale (verteilte) Erkennung von Verklemmungen: Lokale Knoten führen ihre eigenen Wartegraphen, die um einen Knoten external<br />

erweitert werden. Es wird lokal eine Kante von external zu T i in den Wartegraphen eingefügt, falls eine Transaktion durch einen <strong>and</strong>eren<br />

Knoten auf diesen Knoten initiiert wurde (z. B. in Bild 38 die Kante external → T 2 für den Knoten A). Es wird eine Kante von<br />

T i zu external in den Wartegraphen eingefügt, falls die Transaktion auf einen <strong>and</strong>eren Knoten durch eine Sub- oder Teiltransaktionen<br />

weitergeführt wird (z. B. in Bild 38 die Kante T 1 → external für den Knoten A). Lokal kann nun in den Wartegraphen nach Zyklen gesucht<br />

werden. Existiert ein Zyklus, der external einschließt, dann wird der Wartegraph aus den externen Wartegraphen der assoziierten<br />

Knoten ergänzt indem dessen Wartegraph in den aktuellen aufgenommen wird. Damit erhalten wir im Beispiel für den Knoten B<br />

external → ← T1 → ← T2 → ← external .<br />

Damit liegt ein Zyklus vor, der ohne den Knoten external auskommt. Dieser Zyklus signalisiert eine Verklemmung. Deshalb können<br />

die Transaktionen T 1 und T 2 nicht parallel verarbeitet werden.


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 752<br />

Die Erkennung von Verklemmungen kann eine sehr komplexe Aufgabe werden. Deshalb hat die Vermeidung von Verklemmungen in<br />

verteilten Systemen eine größere Bedeutung als in zentralen. Zur Vermeidung von Verklemmungen werden im Wesentlichen die folgenden<br />

vier Verfahren angew<strong>and</strong>t:<br />

Optimistische Mehrbenutzersynchronisation: Nach Abschluß der Bearbeitung einer Transaktion wird eine Validierungsphase angeschlossen.<br />

Stellt sich an Ende der Bearbeitung heraus, daß die Konflikte mit <strong>and</strong>eren Transaktionen entst<strong>and</strong>en sind, dann werden die Konflikte<br />

gelöst, indem alle beteiligten Transaktionen zurückgesetzt werden. Es ist mit mehr Rücksetzungen zu rechnen. Dafür entstehen<br />

allerdiings keine Verklemmungen. Optimistische Verfahren gehen davon aus, daß Konflikte selten auftreten.<br />

Zeitstempel-basierte Synchronisation: Jedem Objekt O der Datenbank wird ein Lese- und ein Schreibzeitstempel rts(O), wts(O) zugeordent.<br />

Die Zeitstempel werden mit jeder Transaktion, die eine Lese- bzw. Schreiboperation durchführt, geändert. Anh<strong>and</strong> dieser<br />

Zeitstempel kann entschieden werden, ob die beabsichtigte Operation noch durchgeführt werden kann, ohne die Serialisierbarkeit zu<br />

veletzen. Falls dies nicht möglich ist, wird die Transaktion abgebrochen. Transaktionen selbst erhalten ebenfalls Zeitstempel ts(T ). Gilt<br />

ts(T ) < wts(O), dann ist ein Lesezugriff einer Transaktion T auf das Objekt O nicht zulässig. Ein Schreibzugriff einer Transaktion<br />

T ist unzulässig auf ein Objekt O, falls ts(T ) < max(wts(O), sts(O)) gilt.<br />

Wound/Wait: Die jüngeren Transaktionen warten auf die älteren. Fordert eine ältere Transaktion eine Sperre auf ein Objekt an, für das bereits<br />

eine jüngere Transaktion eine Sperre besitzt, dann wird die jüngere Transaktion abgebrochen. Damit entstehen keine Wartegraphen,<br />

sondern es wird ein Abbruch forciert.<br />

Wait/Die: Die älteren Transaktionen warten auf die jüngeren. Falls eine jüngere Transaktion eine Sperre auf ein Objekt anfordert, für das<br />

bereits eine Sperre durch eine ältere Transaktion existiert, dann wird die jüngere Transaktion abgebrochen.<br />

Dies Verfahren setzen eine eindeutige globale Identifikation der Transaktionen voraus. Um einfach Zeitpunkte von Transaktionen vergleichen<br />

zu können, wird eine Kodierung der Form lokale Zeit ⊕ KnotenID zur Identifikation von Transaktionen gewählt. Diese Identifikation setzt<br />

jedoch voraus, daß die Uhren der lokalen Systeme sehr gut aufein<strong>and</strong>er abgestimmt sind.<br />

In diesem Abschnitt haben wir Partitionen betrachtet. Im Falle von Replikaten wird die Lesegeschwindigkeit erhöht, die Änderungsgeschwindigkeit<br />

jedoch aufgrund der Konsistenzforderungen verlangsamt. Im Falle von Änderungen sind auch Schreibsperren auf allen Kopien<br />

zu setzen, wodurch ein Verfügbarkeitsproblem entsteht, weil bei Ausfall eines Knoten alle entsprechenden Transaktionen warten müssen. Dies<br />

kann behoben werden durch entsprechende unschärfere Verfahren wie z. B. das Quorum-Consensus-Verfahren. Eine Transaktion muß bereits<br />

zum Lesen ein Minimum an Sperren anfordern von den Systemen. Analog werden auch Schreibsperren mit einer Mindestzahl belegt. Damit<br />

kann eine Ausfallsicherheit je nach Höhe des Quorum gewährleistet werden.<br />

Zusammenfassend erhalten wir damit Synchronisationsverfahren wie in Bild 39 visualisiert.<br />

Synchronisationsverfahren in verteilten DBS<br />

zentral<br />

verteilt<br />

Sperrverfahren<br />

optimistisch<br />

optimistisch<br />

Sperrverfahren<br />

Zeitmarken<br />

zentrale Verklemmungserkennung<br />

Vermeidung von<br />

Verklemmungen<br />

Wait/Die<br />

Wound/Wait<br />

zentral<br />

Erkennung von<br />

Verklemmungen<br />

verteilt<br />

Abbildung 39: Übersicht zu Synchronisationsverfahren<br />

Übungsaufgaben.<br />

Die folgenden Übungsaufgaben sollen die hier vorgestellten Konzepte anwenden. Es wird damit kontrolliert, inwieweit diese Konzepte verst<strong>and</strong>en<br />

worden sind. Diese Aufgaben sind vollständig zu lösen und stellen den Kern der Übungsaufgaben dar.<br />

1. Pr<strong>of</strong>ile von Relationen: Gegeben seinen die globalen Relationen TEILE und LIEFERANT mit der zuvor verwendeten Partitionierung.<br />

Anstellen Sie gleichverteilte Attributwerte. Wählen Sie entsprechende Ausführungsstrategien für die Berechnung folgender Relationen<br />

aus:<br />

• R 1 := σ P reis=200 T EILE<br />

• R 2 := T EILE ✶ LIEF ERANT<br />

Beziehen Sie in die Begründung auch Schätzungen für die einzelnen Parameter mit ein.


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 753<br />

2. Analogie des Zwei-Phasen-Commit-Protokolls: J. Gray - einer der geistigen Väter des Transaktionskonzeptes - hat die Analogie zwischen<br />

dem Zwei-Phasen-Commit-Protokoll und dem Ablauf einer Eheschließung herausgestellt. Bei der Eheschließung spielt der<br />

St<strong>and</strong>esbeamte bzw. Priester die Rolle des Primärknotens, und Braut und Bräutigam die Rolle der Sekundärknoten. Beschreiben Sie<br />

im Detail diese Analogie.<br />

3. Unsicherheit des Zwei-Phasen-Commit-Protokolls: Das Zwei-Phasen-Commit-Protokoll ist nicht sicher für beliebige Knotentopologien.<br />

Zeigen Sie, daß es sicher für lineare Commit-Strukturen ist.<br />

4. Zeitstempelverfahren: Man begründe die Unzulässigkeit von Lese- bzw. Schreibzugriffen von Transaktionen auf Objekte. Warum erlaubt<br />

das oben beschiebene Verfahren einen korrekten Ablauf der Transaktionen?


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 754<br />

8.2 Vom 3K-Modell und <strong>and</strong>eren Modellen hin zu DistLang<br />

Wir werden uns hier auf eine spezifische Form der Kollaboration konzentrieren: das 3K-Modell in Bild 40.<br />

Koordination<br />

Kommunikation<br />

Kooperation<br />

Abbildung 40: Das 3K-Dreieck der Kollaboration<br />

Nach [?]<br />

Kommunikation: Unter Kommunikation versteht man einen verläßlichen und hinreichend schnellen Austausch von<br />

<strong>Information</strong>sobjekten.<br />

Koordination: Koordination erfordert noch kein gemeinsames Ziel, jedoch gemeinsame Interessen und/oder organisatorische<br />

Zusammengehörigkeit.<br />

Kooperation: Kooperation bedingt eine starke Übereinstimmung von Zielen; die Gruppe ist als Ganzes für das<br />

Ergebnis verantwortlich.<br />

Begriffsbestimmungen (nach British Encyclopedia [SYea03])<br />

Collaboration: Late Latin collaboratus, past participle <strong>of</strong> collaborare to labor together, from Latin com- + laborare<br />

to labor<br />

• to work jointly with others or together especially in an intellectual endeavor<br />

• to cooperate with or willingly assist an enemy <strong>of</strong> one’s country <strong>and</strong> especially an occupying force<br />

• to cooperate with an agency or instrumentality with which one is not immediately connected<br />

Communication: in a variety <strong>of</strong> facets<br />

• an act or instance <strong>of</strong> transmitting<br />

• information communicated or a verbal or written message<br />

• a process by which information is exchanged between individuals through a common system <strong>of</strong> symbols,<br />

signs, or behavior;<br />

also : exchange <strong>of</strong> information<br />

personal rapport<br />

• a technique for expressing ideas effectively (as in speech)<br />

the technology <strong>of</strong> the transmission <strong>of</strong> information (as by print or telecommunication)<br />

Coordination: Late Latin coordination-, coordinatio, from Latin co- + ordination-, ordinatio arrangement, from<br />

ordinare to arrange- more at ordain<br />

Cooperation:<br />

• the act or action <strong>of</strong> coordinating<br />

• the harmonious functioning <strong>of</strong> parts for effective results<br />

• the action <strong>of</strong> cooperating : common effort<br />

• association <strong>of</strong> persons for common benefit


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 755<br />

Deutsche Begriffe dagegen: (Bibliographisches Institut & F. A. Brockhaus AG, 2003)<br />

Zusammenwirken: (Kollaboration is leider falsch belegt)<br />

gemeinschaftlich an der Lösung bestimmter Aufgaben arbeiten<br />

gutes, abgestimmtes, harmonisches Zusammenwirken<br />

collaboration hat drei Bedeutungen im Deutschen: mit-/zusammenarbeiten, behilflich sein, mit dem Feind kollaborieren<br />

Kommunikation: der Prozess des Zeichenaustausches zwischen Menschen (Humankommunikation), Tieren (animalische<br />

Kommunikation), innerhalb lebender Organismen (Biokommunikation) wie auch innerhalb oder zwischen<br />

technischen Systemen (technische Kommunikation, Maschinenkommunikation) beziehungsweise zwischen<br />

Mensch und technischem System (Mensch-Maschine-Kommunikation). Bei menschlicher Kommunikation h<strong>and</strong>elt<br />

es sich um einen wechselseitigen Prozess der Bedeutungsvermittlung, um Interaktion. Als intentional gesteuerter<br />

Übertragungsvorgang erfolgt Kommunikation zwischen Personen oder Personengruppen (interpersonale<br />

Kommunikation), zwischen Mitgliedern von Organisationen, Institutionen und Verbänden (Gruppenkommunikation)<br />

oder durch die Zwischenschaltung eines technischen Verbreitungsmittels (mediengebundene<br />

Kommunikation, Massenkommunikation) bezeichnet. Elemente des Kommunikationsaktes sind Sender (Kommunikator,<br />

Quelle der <strong>Information</strong>), Empfänger (Adressat, Rezipient), Code (Sprache, Druck, Bild, Ton; Zeichenvorrat,<br />

Sprachschicht), Kanal (physischer Übertragungsweg, z.B. Sprache, Schallwellen, Schrift), Kontext<br />

(situationale Bestimmungsmomente) und Inhalt (Gegenst<strong>and</strong> der Kommunikation). Zum Kommunikationsprozess<br />

gehören Verschlüsselung (Encodierung), Übermittlung (Signalisierung) und Entschlüsselung (Decodierung,<br />

Interpretation).<br />

Koordination: Zuordnung, Beiordnung<br />

Kooperation: Zusammenarbeit<br />

Das 3K-Modell kann man zu einem Schichtenmodell verdichten:<br />

Cooperation<br />

Layer<br />

Cooperation space / workspace: workspace control,<br />

awareness, notifications,<br />

security over user functions<br />

Media object unit<br />

manager<br />

Coordination<br />

Layer<br />

Coordination space: operation management,<br />

session management<br />

shared resources management, users management<br />

Coordination <strong>and</strong><br />

contracting system<br />

Communication<br />

Layer<br />

Communication space: (a)synchronous,<br />

multicast/broadcast,<br />

protocols, st<strong>and</strong>ard<br />

Communication<br />

support system<br />

Abbildung 41: Layers <strong>of</strong> a Typical Collaboration System<br />

Nach [?]<br />

Systemklasse Kommunikation: Kommunikationssysteme sind Systeme, deren Aufgabe darin besteht, den expliziten<br />

<strong>Information</strong>saustausch zwischen verschiedenen Kommunikationspartnern zu ermöglichen. Dabei werden in<br />

erster Linie Raum- und Zeitdifferenzen überbrückt. Typische Beispiele sind elektronische Post-Systeme und<br />

Videokonferenzen. Auch Bulletin Board Systeme können zu dieser Klasse gezählt werden, wenn geschlossene<br />

Gruppen adressiert werden.<br />

Systemklasse gemeinsame <strong>Information</strong>sräume: Diese Klasse stellt gemeinsame <strong>Information</strong>sräume für eine Gruppe<br />

zur Verfügung, in denen <strong>Information</strong>en längere Zeit in geeigneter Form mit Hilfe geeigneter Zugriffsmechanismen<br />

gespeichert werden. Der <strong>Information</strong>saustausch ist implizit. In diese Klasse fallen verteilte Hyptertext


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 756<br />

Systeme und spezielle Datenbanken, deren <strong>Information</strong>en gleichzeitig von verschiedenen Benutzern abgefragt<br />

werden können. Bulletin Board Systeme können ebenfalls zu dieser Klasse gezählt werden.<br />

Systemklasse Workflow-Management: Ein Workflow ist eine endliche Folge von Aktivitäten, wobei die Folge von<br />

Ereignissen ausgelöst und beendet wird. Im allgemeinen sind Workflows organisationsweite, arbeitsteilige Prozesse,<br />

in die eine große Anzahl von Akteuren einbezogen sind. Workflow-Management umfasst alle Aufgaben,<br />

die bei der Modellierung , der Simulation sowie bei der Ausführung und Steuerung von Workflows erfüllt werden<br />

müssen. Workflow-Management-Werkzeuge unterstützen die Aufgaben des Workflow-Management durch<br />

die Ausführung von S<strong>of</strong>tware. Deren Unterstützungsfunktion besteht primär darin, Workflows auszuführen und<br />

zu koordinieren. Dazu werden unter <strong>and</strong>erem Techniken aus dem Bereich elektronischer Post-Systeme und spezielle<br />

Datenbanksysteme eingesetzt.<br />

Systemklasse Workgroup-Computing: Workgroup-Computing-Systeme unterstützen die Kooperation von Personen,<br />

die in Gruppen oder Teams arbeiten und Aufgaben mit mittleren bis geringen Strukturierungsgraden<br />

und Wiederholungsfrequenzen zu lösen haben. Die Koordinationsfunktion bezieht sich hier auf die für die<br />

Problemstellung notwendigen Kooperationsbeziehungen innerhalb der Gruppe. In diese Klasse gehören Planungssysteme<br />

wie Terminverwaltungs- und -vereinbarungssysteme, Gruppeneditoren und Entscheidungs- und<br />

Sitzungsunterstützungssysteme.<br />

8.2.1 Raum-Zeit-Matrix<br />

Die Raum-Zeit-Matrix geht auf Robert Johansen zurück und ist eine zweidimensionale Betrachtung von CSCW-<br />

Systemen: Einerseits wird davon ausgegangen, daß die Gruppenmitglieder, die ein Groupware-System einsetzen,<br />

räumlich verteilt arbeiten. Das heißt, es kommt darauf an, ob sie benachbart oder entfernt arbeiten; das kann vom<br />

gleichen Büro, über die gleiche Etage in einem Gebäude bis zu verschiedenen Kontinenten reichen.<br />

Andererseits spielt auch die zeitliche Verteilung eine Rolle: Arbeiten die Benutzer eines CSCW-<strong>Systems</strong> zur<br />

gleichen Zeit, oder zu verschiedenen Zeiten?<br />

In die Raum-Zeit-Matrix aus obiger Abbildung werden die CSCW-Systeme eingeordnet, was zunächst eine gewisse<br />

Übersichtlichkeit schafft. Bei genauerer Betrachtung stellt man jedoch schnell fest, daß einige Systemkategorien<br />

nicht eindeutig in eines der vier Felder eingeordnet werden können. Ein Beispiel hierfür sind die Gruppeneditoren,<br />

die es mit synchroner Funktionalität gibt, so genannte Realzeiteditoren, und auch in asynchroner Form, also Editoren<br />

mit Benachrichtigung. Darüber hinaus ist auch die räumliche Verteilung bei Gruppeneditoren nicht eindeutig, Gruppeneditoren<br />

stehen in der Regel geographisch benachbarten und entfernten Benutzern gleichermaßen zur Verfügung.<br />

Diese Klassifizierung darf nicht im Sinne einer Eingrenzung und Abgrenzung angesehen werden. Die einzelnen Kategorien<br />

können bestenfalls Systemkomponenten aufnehmen, da ein umfassendes CSCW-System den Anforderungen<br />

aller vier Quadranten genügen muß‘.<br />

Jonathan Grudin, heute Mitarbeiter bei Micros<strong>of</strong>t, erweiterte die Vier-Felder-Matrix von Johansen zu einer Neun-<br />

Felder-Matrix, indem er den zusätzlichen Parameter “Vorhersehbarkeit” einführte. Daraus ergibt sich für die geographische<br />

Komponente folgende Aufteilung: “Gleicher Ort”, “verschiedener Ort vorhersehbar” und “verschiedener Ort<br />

nicht vorhersehbar”. Bei der zeitlichen Komponente unterschied er analog nach “synchron”, “asynchron vorhersehbar”<br />

und “asynchron nicht vorhersehbar”. Damit ergibt sich folgende erweiterte Raum-Zeit-Matrix:<br />

Raum/Zeit gleiche Zeit (synchron) verschiedene Zeit (asynchron)<br />

vorhersehbar<br />

nicht vorhersehbar<br />

gleicher Ort face-to-face-Sitzung Schichtarbeit “schwarzes Brett”<br />

verschiedener Ort Videokonferenz E-Mail kollaboratives Verfassen<br />

vorhersehbar<br />

von Dokumenten<br />

verschiedener Ort Mobilfunkkonferenz Nicht-Realzeit- Vorgangsbearbeitung<br />

nicht vorhersehbar<br />

Konferenz<br />

Tabelle: Erweiterte Raum-Zeit-Matrix nach Grudin<br />

verschiedener Ort Video- E-Mail kollaboratives vorhersehbar konferenz Verfassen von Dokumenten verschiedener<br />

Ort Mobilfunk- Nicht-Realzeit- Vorgangs- nicht vorhersehbar konferenz Rechnerkonferenz bearbeitung


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 757<br />

Die in obiger Tabelle dargestellte erweiterte Raum-Zeit-Matrix ist zwar auch übersichtlich, die angesprochenen<br />

Probleme, die Johansens Ansatz hat, sind aber auch hier zu sehen. Es gibt Groupware-Systeme, die sich in mehr<br />

als eine Kategorie einordnen lassen. Also ist auch die Grudin-Erweiterung nicht als Eingrenzung und Abgrenzung<br />

zu verstehen. Trotzdem ist die Raum-Zeit-Matrix das am häufigsten gebrauchte Klassifikationsschema, wenn an<br />

Universitäten Vorlesungen über rechnergestützte Gruppenarbeit gehalten werden.<br />

8.3 Anwendungsorientierte Funktionsklassen<br />

Einen <strong>and</strong>eren Ansatz als die Raum-Zeit-Matrix verfolgen die so genannten anwendungsorientierten Funktionsklassen.<br />

Diese Art der Klassifizierung ist auch für die vorliegende Arbeit interessant, denn ihr Hauptmerkmal ist, wie<br />

der Name bereits verrät, die Anwendungsorientierung. Deshalb passen die Funktionsklassen gut in das pragmatische<br />

Konzept, das diese Arbeit verfolgen soll. In [1] ist nachzulesen, daß Ellis et al. Anfang der 90er Jahre folgende<br />

Funktionsklassen unterschieden haben: Nachrichtensysteme, Gruppeneditoren, elektronische Sitzungsräume, Konferenzsysteme,<br />

gemeinsame <strong>Information</strong>sräume, Agentensysteme und Koordinationssysteme. Diese Einteilung bildet<br />

die oberste Hierarchie und wird durch Unterkategorien konkretisiert. Etwa unterscheidet man bei den Konferenzsystemen<br />

folgende vier Unter-Arten:<br />

Nachrichtensysteme: Nachrichtensysteme sind für den asynchronen Nachrichtenaustausch zwischen Gruppenmitgliedern<br />

verantwortlich. Das sind meist Textnachrichten, aber auch Grafiken, Töne und Videos können bei<br />

einigen Systemen zwischen Sender und Empfänger ausgetauscht werden. Die Verwaltung von Nachrichten<br />

wird durch Strukturinformationen geregelt, etwa mittels einer Betreffzeile beim E-Mail-Vers<strong>and</strong>. Die Erweiterung<br />

der Funktionalität eines Nachrichtensystems kann empfängerspezifisch oder absenderspezifisch erfolgen.<br />

Empfängerspezifisch bedeutet, daß der Empfänger bestimmte Regeln definiert, etwa eine Filterung nach Absenderadresse.<br />

Absenderspezifisch bedeutet, daß der Sender etwas spezifiziert und mit der Nachricht verschickt,<br />

man spricht dabei von so genannten Skripten. Nachdem der Empfänger die Nachricht erhalten hat, wird das<br />

Skript ausgeführt. Das könnte etwa eine Bestätigung über den Erhalt der Nachricht für den Absender sein, die<br />

automatisch nach Öffnen der Mitteilung zurückgeschickt wird.<br />

Gruppeneditoren: Gruppeneditoren werden dann eingesetzt, wenn mehrere Bearbeiter an einem gemeinsamen Dokument<br />

arbeiten. Auch für die gemeinsame Entwicklung eines S<strong>of</strong>tware-<strong>Systems</strong> sind Gruppeneditoren nötig.<br />

Dabei ist der Editor in der Lage, durch Benachrichtigungen die Benutzer auf dem aktuellen St<strong>and</strong> der Bearbeitung<br />

zu halten. Die Benutzer werden also nicht vonein<strong>and</strong>er isoliert. Bei den Realzeiteditoren arbeiten aktuell<br />

mehrere Benutzer am selben Dokument, dabei hat meist nur einer Schreibrechte, alle <strong>and</strong>eren Leserechte. Die<br />

asynchronen Editoren, oder auch Editoren mit Benachrichtigung genannt, verfügen über einen eingebauten<br />

Benachrichtigungsmechanismus, der über Änderungen informiert.<br />

Elektronische Sitzungsräume: Elektronische Sitzungsräume sind Sitzungsräume für so genannte face-to-face-Sitzungen,<br />

die mit Rechnern ausgestattet sind. Die Rechner werden dabei als Group Support <strong>Systems</strong> (GSS) eingesetzt,<br />

das bedeutet, sie helfen bei der Findung von Gruppenentscheidungen. Ein GSS faßt Meinungen, Zweifel und<br />

Einschätzungen zusammen und befragt die ganze Gruppe dazu. So kommt es iterativ zu einer gemeinsamen<br />

Entscheidung.<br />

Konferenzsysteme: Konferenzsysteme gibt es in vielen verschiedenen Ausprägungen, man unterscheidet Nicht-<br />

Realzeitrechnerkonferenz, Realzeitrechner-Konferenz, Telekonferenz und Desktopkonferenz. Bei der Nicht-<br />

Realzeitkonferenz erfolgt eine asynchrone Kommunikation. Oftmals wird dafür E-Mail verwendet. Das Konferenzsystem<br />

bereitet dann die Nachrichten entsprechend auf. Eine synchrone Rechnerkonferenz oder auch Realzeitrechnerkonferenz<br />

genannt, bietet die Möglichkeit des synchronen Datenaustausches, es besteht jedoch keine<br />

Audio- oder Video-Verbindung. Dies ist erst bei der Telekonferenz der Fall, wobei diese die Einschränkung<br />

hat, daß eine gemeinsame Bearbeitung von Daten nicht vorgesehen ist. Erst die so genannte Desktopkonferenz<br />

schafft die Verschmelzung von Realzeitrechnerkonferenz und Telekonferenz.<br />

Gemeinsame <strong>Information</strong>sräume: Gemeinsame <strong>Information</strong>sräume haben die Aufgabe, den <strong>Information</strong>sschatz der<br />

Gruppe zu speichern und zu verwalten. Es gibt vier Kooperationsmodi, die bei der Bearbeitung gemeinsamer


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 758<br />

<strong>Information</strong>en unterschieden werden: Jedes Mitglied bearbeitet einen Teil unabhängig von den <strong>and</strong>eren (getrennte<br />

Verantwortlichkeit); zu einem Zeitpunkt hat immer nur genau ein Gruppenmitglied Vollzugriff (wechselseitig<br />

ausschließlicher Zugriff); jedes Mitglied entwickelt seine eigene Version der Dokumente (alternative<br />

Versionen); die Mitglieder können gleichzeitig arbeiten und es stehen geeignete Mechanismen zur konsistenten<br />

Datenhaltung zur Verfügung (synchroner Zugriff).<br />

Agentensysteme: Ein S<strong>of</strong>tware-Agent ist ein Programm oder Programm-Modul, das im Auftrag eines Benutzers bestimmte<br />

Aufgaben selbständig ausführen kann. In Bezug auf Groupware sind Agenten S<strong>of</strong>tware-Komponenten,<br />

die als Teilnehmer menschliche Gruppenmitglieder ersetzen. Sie übernehmen dabei bestimmte Rollen, etwa die<br />

Protokollierung einer Sitzung. Agenten agieren dabei normalerweise autonom, das heißt sie können auch ohne<br />

direkte Kontrolle durch einen menschlichen Benutzer agieren und kontrollieren ihren inneren Zust<strong>and</strong> selbst.<br />

Sie können außerdem mit <strong>and</strong>eren Agenten oder auch Benutzern kommunizieren.<br />

Koordinationssysteme: Koordinationssysteme oder auch Workflow-Management-Systeme werden zur Koordinierung<br />

von Arbeitsabläufen eingesetzt, dabei unterscheidet man vier Arten, abhängig von der modellierten <strong>Information</strong>:<br />

formularorientierte Systeme, prozedurorientierte Systeme, konversationsorierntierte Systeme und<br />

kommunikationsorientierte Systeme.<br />

8.3.1 DistLang<br />

• Formularorientierte Systeme lehnen sich an den guten alten Umlaufzettel an, der mit dem Dokument von<br />

Bearbeitungsstelle zu Bearbeitungsstelle w<strong>and</strong>ert. Nach Ausführen von bestimmten Tätigkeiten wird auf<br />

einem Formular unterschrieben und das Dokument weitergegeben. Die Reihenfolge der Bearbeiter legt<br />

ein Ablaufplan fest.<br />

• Prozedurorientierte Systeme umfassen mehrere Schritte, die zum Ziel führen. Die kooperativen Tätigkeiten<br />

von Gruppenmitgliedern werden in einer Prozedurbeschreibung vorherbestimmt.<br />

• Konversationsorientierte Systeme modellieren die Interaktionen zwischen Gruppenmitgliedern. Die Kooperation<br />

basiert auf dem Austausch sprachlicher Äußerungen, die auf elektronische Nachrichten abgebildet<br />

werden.<br />

• Kommunikationsorientierte Systeme modellieren komplexe Kommunikationsstrukturen innerhalb einer<br />

Organisation. Diese Struktur drückt die Organisationsstruktur aus und beinhaltet Rollen.<br />

besteht aus 2 zentralen Komponenten<br />

Media-Objekt-Einheit:<br />

Austauschrahmen:<br />

8.4 Die Media-Objekt-Einheit<br />

Als Tripel<br />

(Media type, Unit Manager, Competence, Characteristics), i.e.<br />

S = (M, Man, C, F).<br />

analog zum Sharepoint-Konzept (MS) bzw. Konzepte von Workplace (IBM)<br />

Media types <strong>of</strong>fer their own functions including statistical packages, functions proposed for data warehouses, or<br />

data mining algorithms.<br />

The unit manager Man supports functionality <strong>and</strong> quality <strong>of</strong> units <strong>and</strong> manages containers, their play-out <strong>and</strong><br />

their delivery to the client. It is referred to as a units provider.<br />

The competence <strong>of</strong> a unit manifests itself in the set <strong>of</strong> tasks T that may be performed <strong>and</strong> the guarantees for<br />

their quality.


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 759<br />

Raw<br />

media<br />

type<br />

Course<br />

insertion<br />

view<br />

Course<br />

negotiation<br />

view<br />

Extensions<br />

(unit/<br />

order)<br />

Chair<br />

priority<br />

order<br />

Assistant<br />

order<br />

Media types Units manager Competence<br />

Co-<br />

/Adhesion<br />

Hierarchy<br />

Term<br />

order<br />

Coursecentered<br />

Workload<br />

order<br />

Cooperation<br />

Coursecentered<br />

Mac-<br />

XSL5<br />

Mozi-<br />

XSL5<br />

Daily<br />

refresh<br />

Weekly<br />

refresh<br />

Deliver<br />

only<br />

Exchange<br />

Playout Kind Communication<br />

Coordination<br />

Task<br />

None None Input<br />

main<br />

course<br />

data<br />

View<br />

others<br />

Unit characteristics F is based on properties that may be ordered on abstraction layers:<br />

QoS<br />

Select<br />

or insert<br />

Accept<br />

or reject<br />

Unit quality at business user layer are based on unit level agreements <strong>and</strong> the media types at this layer.<br />

Unit characteristics at conceptual layer describe properties the unit must provide in order to meet the unit level<br />

agreements. Further, functions available to the client at specified by their interfaces <strong>and</strong> semantic effects.<br />

Unit characteristics at implementation layer specify the syntactical interfaces <strong>of</strong> functions, the data sets provided<br />

<strong>and</strong> their behavior <strong>and</strong> constraints to the information system <strong>and</strong> to the client.<br />

Other<br />

assistants<br />

Assignment<br />

Characteristics<br />

Range<br />

<strong>of</strong> variation<br />

Responsible<br />

person<br />

Assistant<br />

at chair,<br />

assigned<br />

(course)<br />

Party Organization Context<br />

Inform,<br />

provide<br />

Insert<br />

new,<br />

select<br />

Own<br />

plan<br />

Dependent<br />

(chair)<br />

Linux,<br />

PC,<br />

browser<br />

Linux<br />

Negotiate<br />

Cooperate,<br />

ApproveBy<br />

(chair)<br />

Time<br />

slot<br />

[request,<br />

deadline]<br />

[request,<br />

meeting]<br />

Media<br />

types<br />

none none none Last 3<br />

terms<br />

lectures<br />

none<br />

colleagues<br />

∃!!<br />

assignment<br />

for<br />

chair<br />

Chair<br />

schedule<br />

Quality <strong>of</strong> unit Σ S is characterized depending on the abstraction layers:<br />

Roles Rights Relations<br />

Hierarchy<br />

Synchronization<br />

Coordination<br />

Environment<br />

Full<br />

History,<br />

pr<strong>of</strong>ile,<br />

adaptation<br />

Quality parameters at business user layer may include ubiquity ( access unrestricted in time <strong>and</strong> space) <strong>and</strong> security<br />

(against failures, attacks, errors; trustworthy).<br />

Quality parameters at conceptual layer subsume interpretability (formal framework for interpretation) <strong>and</strong> consistency<br />

(<strong>of</strong> data <strong>and</strong> functions).<br />

Quality parameters at implementation layer include durability (access to the entire information unless it is explicitly<br />

overwritten), robustness (based on a failure model for resilience, conflicts, <strong>and</strong> persistency), performance<br />

(depending on the cost model, response time <strong>and</strong> throughput), <strong>and</strong> scalability (to changes in units, number <strong>of</strong><br />

clients <strong>and</strong> servers).<br />

8.5 Austauschrahmen<br />

The different aspects <strong>of</strong> collaborating systems may be represented similar to Figure 41 <strong>and</strong> managed by data structures<br />

displayed in Figure 42. The external components, such as the work sessions <strong>and</strong> the session manager, belong to<br />

the coordination layer. They show how one coordination component can be linked to the components <strong>of</strong> the communication<br />

layer. The communication infrastructure interacts with the user interface <strong>and</strong> background processes through<br />

the event h<strong>and</strong>ler. The user buffer provides temporary storage <strong>of</strong> messages <strong>and</strong> is used for synchronization <strong>of</strong> data<br />

exchange. A number <strong>of</strong> basic features are provided for the channel management:<br />

Correct message delivery <strong>and</strong> receipt:


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 760<br />

Agenda ✛ ✲<br />

Scheduled in<br />

Item<br />

✛<br />

Contribution<br />

✻<br />

❄<br />

Channel<br />

status<br />

Session<br />

manager<br />

✛<br />

Work/meeting<br />

session<br />

✲<br />

✒<br />

User<br />

Channel<br />

buffer<br />

❫<br />

✲<br />

Channel<br />

✻<br />

✠<br />

✛<br />

Event<br />

h<strong>and</strong>ler<br />

✲<br />

Event<br />

h<strong>and</strong>ler<br />

kind<br />

❄<br />

Message<br />

✛<br />

Log<br />

File<br />

❄<br />

Process<br />

✛<br />

User<br />

interface<br />

Abbildung 42: The database diagram for communication/coordination infrastructure<br />

Message storage:<br />

Message distribution:<br />

Message persistence:<br />

A number <strong>of</strong> communication infrastructure pattern may be applied:<br />

Proxy pattern:<br />

Broker pattern:<br />

Client-dispatcher pattern:<br />

Forwarder-receiver pattern:<br />

Serializer pattern:<br />

Reactor pattern:<br />

Naming pattern:<br />

8.5.1 Allgemeine Architekturen kollaborativer Systeme<br />

Architektur Preprint S. 30<br />

Komponenten von Systemen können zum einem im Rahmen der Systemarchitektur zusammengestellt werden, wobei<br />

diese aus drei separierbaren Teilen bestehen kann:<br />

der Anwendungsarchitektur mit der Strukturierung des <strong>Systems</strong> aus der Sicht der Anwendung,<br />

der Technikarchitektur mit einer Beschreibung der Komponenten des <strong>Systems</strong>, die von der Anwendung unabhängig<br />

sind (Zugriffsschicht, GUI-Rahmen, Fehlerbeh<strong>and</strong>lung, ...),<br />

Architektur der technischen Infrastruktur wie physische Geräte (Rechner, Netze, Peripherie,...), installierte<br />

<strong>Systems</strong><strong>of</strong>tware und das Zusammenspiel von HW und SW, Programmiersprachen


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 761<br />

St<strong>and</strong>ard-Anwendungsarchitekturen können insbesondere das Weiterentwickeln von Systemen extrem erleichtern.<br />

St<strong>and</strong>ard-TI-Architekturen wie .NET, EJB mit Swing bzw. JSP (als Basis der GUI-Programmierung)<br />

Anwendungsarchitektur zur Spezifikation der funktionalen Komponenten der Anwendung<br />

• mit einer Übersicht über die Komponenten, deren Leistungsumfang, deren Daten (mit Anwendugnsfällen,<br />

Datenmodell, Nachbarsystemen)<br />

• mit einer Außensicht, in der die Schnittstellen auf der Ebene der Operationen beschrieben werden<br />

• mit einer Innensicht, die die konkrete Klassenstruktur, ... darstellt<br />

Technikarchitektur die auch der Anwendungsarchitektur folgen kann<br />

Techische-Infrastruktur-Architektur mit einer Darstellung der technischen Komponenten und deren Kommunikationsmodell<br />

(z.B. RMI, HTTP, CORBA)<br />

Komponenten erlauben ggf. auch Ausnahmezustände<br />

Jedes Komponentenobjekt besitzt Zust<strong>and</strong> und einen Konsistenzbegriff.<br />

Schnittstellen: mit der Spezifikation von<br />

• Angabe der Sichten zum Import/Export (oder bei <strong>and</strong>eren Ansätzen: Angabe der bereitgestellten Methoden)<br />

• Spezifikation der konkurrierenden Benutzung<br />

• ACID-Koordination<br />

• Abkommen zum wiederholten Lesen:<br />

• restricted repeatable read<br />

• unrestricted repeatable read<br />

• non-repeatable read<br />

• Invarianten<br />

• Vor- und Nachbedingungen<br />

• Testfälle<br />

• Fehler<br />

• Konstanzangaben<br />

• Kopplungsmodellen wie loose Kopplung, enge Kopplung, objektorientierte Kopplung oder diensteorientierte<br />

Kopplung<br />

Außerdem werden Schittstellen ggf. verfeinert, erweitert<br />

Verbindungen mit einem Kanalkonzept, ggf. Kanaleigenschaften<br />

Sichtweisen sind<br />

Konzeptionelle Sicht mit einer Grobarchitektur des <strong>Systems</strong>, seinen Komponenten<br />

Modul-Sicht<br />

Ausführungssicht<br />

Programmsicht<br />

Eine Architektur ist ausgeglichen, wenn alle unterschiedlichen Sichtweisen auf das System als Overlay-<br />

Schema über dem Grundschema dargestellt werden können<br />

Andere Sichtweisen sind: model driven architecture, model driven components


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 762<br />

8.5.2 Architecture Description Language (ADL)<br />

Components that perform computation<br />

Connectors that express relationships (typically communication) between the components<br />

ADL<br />

Architecture Modeling Features<br />

Components<br />

Interface<br />

Types<br />

Semantics<br />

Constraints<br />

Evolution<br />

Non-functional properties<br />

Connectors<br />

Interface<br />

Types<br />

Semantics<br />

Constraints<br />

Evolution<br />

Non-functional properties<br />

Architectural Configurations<br />

Underst<strong>and</strong>ability<br />

Compositionality<br />

Refinement <strong>and</strong> traceability<br />

Heterogeneity<br />

Scalability<br />

Evolution<br />

Dynamism<br />

Constraints<br />

Non-functional properties<br />

Tool Support<br />

Active Specification<br />

Multiple Views<br />

<strong>Analysis</strong><br />

Refinement<br />

Implementation Generation<br />

Dynamism<br />

8.5.3 Kollaborationsraum<br />

Entwurf verteilter <strong>Information</strong>ssysteme<br />

Plug in <strong>and</strong> play<br />

Abeck/Lockemann/Schiller<br />

Übung:


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 763<br />

8.5.4 Kollaborationsrahmen<br />

Preprint S. 29-30<br />

Preprint S. 153-15<br />

ggf. in der Spezifikation<br />

• Kommunikationsrahmen Preprint S. 154u<br />

• Koordinationsramhen Preprint S. 155u<br />

• Kooperationsrahmen Preprint S. 155m<br />

Kollaborationsstil Preprint S. 30<br />

8.6 Kommunikation auf der Grundlage von Sessions und Kontext<br />

Allgemeines Modell der concurrency<br />

Chu space: two-dimensional matrix whose rows indices represent events <strong>and</strong> the columns represent states<br />

A = (A, r, X) over the alphabet Σ, the carrier set A, the co-carrier set X <strong>and</strong> the function r : A × X → Σ<br />

constituting the interaction matrix<br />

Chu spaces are more general than Petri nets which yields a synchronization <strong>of</strong> two atomic actions rather than<br />

their concurrent execution<br />

Sitzungen zwischen Client und Server<br />

Kontext durch den Zust<strong>and</strong> der Kommunikation darstellbar<br />

8.6.1 Communication h<strong>and</strong>les for representation <strong>of</strong> sessions<br />

similar to the treatment in Embedded SQL, O(pen) D(ata)b(ase) C(onnectivity), J(ava) D(ata)b(ase) C(onnectivity)<br />

Host embedding procedure: consisting <strong>of</strong><br />

Blocks distinguishable by a precompiler (EXEC SQL<br />

Association rules for associating client namespaces to servers namespace (e.g. in Embedded SQL: declaration<br />

<strong>of</strong> host variables) <strong>and</strong> overcoming type mismatches (e.g., sets via cursor treatment)<br />

DECLARE cursor-name [INSENSITIVE] [SCROLL] CURSOR FOR table-expression<br />

[ORDER BY order-item-comma-list]<br />

[FOR {READ ONLY | UPDATE [OF column-list] } ]<br />

und Abbildungs- und Wertezuweisungsfunktionen, sowie Durchmusterungsfunktionen<br />

Executables that run through the application<br />

Status processing having<br />

Computation space for sessions in private, in shared or logged memory<br />

Diagnostics area<br />

Input space<br />

Output space<br />

Sessions, connections <strong>and</strong> transactions as a generalization <strong>of</strong> existing technology


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 764<br />

Establish connection CONNECT TO { DEFAULT | db-name-string }<br />

[ AS connection-name-string ] [ USER user-id-string ]<br />

possibly with some default rules<br />

SET CONNECTION TO { DEFAULT | connection-name-string }<br />

Terminate connection DISCONNECT { DEFAULT | db-name-string }<br />

Execution environment for parallel execution <strong>of</strong> requests for instance with an isolation level<br />

8.6.2 Context for communication sessions<br />

Communicating entities maintains context information through a context block<br />

• sequence numbers <strong>of</strong> the messages transmitted in each direction (for reliably transmitting messages)<br />

• addressing information<br />

• encryption keys<br />

• current direction <strong>of</strong> communication<br />

8.6.3 Context for client/server sessions<br />

Context may be stored<br />

• either locally at the server<br />

• or globally in the context database<br />

• or locally at the client<br />

Typical concept: context h<strong>and</strong>le<br />

e.g. cookie<br />

8.6.4 Guaranteed properties<br />

Typical properties:<br />

• Global atomicity <strong>and</strong> isolation<br />

• Load balancing <strong>and</strong> routing<br />

• Recoverable queues<br />

• Security properties<br />

• Threading<br />

• Supporting servers<br />

• Nested transactions<br />

z.B. mit Transaction processing monitors<br />

oder auch durch Web application servers J2EE mit session beans, entity beans, message-driven beans, die durch<br />

EJB container gestützt werden


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 765<br />

8.6.5 Communication Diagrams <strong>and</strong> Channels<br />

nach Wieringa, S. 202ff.<br />

Data transformations are stateless transformations whose output is a mathematical function <strong>of</strong> the input.<br />

Data stores are containers for data that <strong>of</strong>fers a transactional interface.<br />

Subsystems are components with state <strong>and</strong> behavior.<br />

Objects<br />

Object classes is a type <strong>of</strong> a component.<br />

We distinguish channels<br />

Event channels connect two components so that one <strong>of</strong> them cause the other to deliver a service.<br />

Data channels connect two components so that one <strong>of</strong> them can get information about the other.<br />

8.7 Verträge zur Kollaboration<br />

8.7.1 Vertrag<br />

(nach Eiffel)<br />

• Wer: Aktiver Partner<br />

• Wie: Szenario<br />

• Mit Wem: Subjekt-Partner<br />

• Was: Gegenst<strong>and</strong><br />

• Woraus: Anspruchsgrundlage<br />

Vertragsstufen<br />

1. Syntaktische Stufe: IDL-Beschreibung, ggf. auch auf Niveau normaler Programmiersprache<br />

2. Verhaltensstufe: Vor- und Nachbedingungen, ggf. mit UML/OCL<br />

3. Synchronisationsstufe: Service object synchronization, Pfadausdruck, Synchronization counter<br />

4. Quality <strong>of</strong> services level<br />

Beispiele von Verträgen:<br />

Obligationen<br />

Passagier 15 Minuten vor Abflug, mit<br />

akzeptieren Gepäck, bezahltes<br />

Ticket<br />

Fluggesellschaft<br />

Tranport des Kunden zum Ziel<br />

Verpflichtung<br />

Erreicht Ziel<br />

Keine Verpflichtung späte Passagiere<br />

aufzunehmen, bei zuviel<br />

Gepäck, bei nichtbezahltem<br />

Ticket<br />

Geschichte: Hoare (69) - Tripel;<br />

Dijkstra (1975) - guarded comm<strong>and</strong>ss, weakest liberal precondition<br />

Spezifikation:<br />

Vorbedingung: als logischen Ausdruck über den vorgefundenen Zust<strong>and</strong>


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 766<br />

Invariante: als logischen Ausdruck, statische Integritätsbedingung<br />

Nachbedingung: als logischen Ausdruck über den erreichten Zust<strong>and</strong> ggf. mit<br />

Defaultinterpretation: Zurückweisen, falls nicht erfüllt<br />

Accept On Interpretation: H<strong>and</strong>lung kann wiederholt werden bis Zust<strong>and</strong> erreicht ist<br />

Kompensationsdefinition: mit Kompensationsanweisung<br />

• durch alternative Anweisung (Pfad) oder<br />

• explizite Reparaturanweisung z.B. Trigger<br />

• Anweisung für den Fehlerfall<br />

Kontextregel für den Vertrag z.B.<br />

• Synchronisationsbedingungen zur Abstimmung, bei Ressourcenkonflikten<br />

• Lokalisationsabstraktion, scope<br />

Geschäftsregel, auf deren Grundlage der Vertrag geschlossen wird<br />

Korrektheit von Verträgen durch Hoare-Tripel<br />

• Vorbedingung und Invariante sind erfüllt<br />

• Nachbedingung und Invariante sind erfüllt<br />

• Kontextbedingung gilt<br />

Apparat zur Kontrolle der Korrektheit von Verträgen:<br />

Compile-Zeit-Kontrolle<br />

Laufzeitkontrolle<br />

8.7.2 Theorie zur Kontrolle der Verträge<br />

Theorie des Subtyping<br />

Schwache Korrektheit für eine Klasse C und Superklasse C Super<br />

• Vorbedingungen erfüllen für öffentliche Methoden:<br />

pre f (x) ∨ ∀C Super (C Super .pre f (x))<br />

• Nachbedingungen erfüllen für öffentliche Methoden:<br />

post f (x) ∧ ∀C Super (C Super .post f (x)) Jede öffentliche Methode erfüllt<br />

• Invarianten erfüllen<br />

INV ∧ ∀C Super (C Super .INV )<br />

Starke Korrektheit als implikative Beschränkung:<br />

• Vorbedingungen erfüllen für öffentliche Methoden:<br />

pre f (x) ⇒ ∀C Super (C Super .pre f (x))<br />

• Nachbedingungen erfüllen für öffentliche Methoden:<br />

post f (x) ⇒ ∀C Super (C Super .post f (x)) Jede öffentliche Methode erfüllt<br />

• Invarianten erfüllen<br />

INV ⇒ ∀C Super (C Super .INV )<br />

Sprachen, die einen solchen Zugang folgen: Eiffel, Biscotti, Java Assertion Facility, ContractJava, iContract, Jass,<br />

<strong>Design</strong> by Cotnract for C++, Hanshake, jContractor, Jcontract


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 767<br />

8.7.3 Einbettung in UML<br />

beachten<br />

• OCL ist eine ausdrucksbasierte Sprache, damit seiteneffektfrei<br />

• OCL ist keine Programmiersprache<br />

• OCL ist typisiert<br />

Ausweg: Hinzufügen des Vertragsrahmens<br />

z.Z. wird allerdings ein Meta-Modell für OCL erarbeitet, damit dann auch integrierbar<br />

Daumenregeln<br />

• Separation von Manipulationsoperationen und Anfrageoperationen<br />

• Vermeidung komplexer Navigationsoperationen<br />

• Vermeidung komplexer Assertionen<br />

• Einbeziehen von Entwurfspattern<br />

• Genaue Kontrolle der Vorbedingungen<br />

• Abgeleitete Anfragen sollen explizit durch Basisanfragen ausdrückbar sein<br />

• Seiteneffekte von Manipulationsoperationen auf Anfrageoperationen explizit darstellen<br />

• Seiteneffektfreie Anfrageoperationen<br />

• Kontrolle der Erzeugung von Objekten<br />

8.7.4 Dienstvertrag<br />

Preprint S. 29-30<br />

Vertrag: ein Rechtsgeschäft, das durch übereinstimmende Willenserklärungen, das heißt durch Angebot und Annahme,<br />

zust<strong>and</strong>e kommt.<br />

Man unterscheidet öffentlich-rechtliche Verträge (Staatsverträge, Konkordate) und privatrechtliche Verträge, unter<br />

Letzteren schuldrechtliche (obligatorische, z.B. Kauf, Miete), dingliche (Auflassung), familienrechtliche (Ehevertrag)<br />

und erbrechtliche (Erbvertrag), ferner entgeltliche und unentgeltliche, je nachdem, ob für die Leistung des einen Teils<br />

eine Gegenleistung des <strong>and</strong>ern vereinbart ist oder nicht. Unter einem Vertrag zugunsten Dritter versteht man das vertragliche<br />

Versprechen der Leistung an einen Dritten, nicht am Vertragsabschluss Beteiligten (§§ 328 folgende BGB).<br />

Ein Vertragsangebot kann nur innerhalb der gesetzten Frist angenommen werden, ein unter Anwesenden oder telefonisch<br />

gemachtes Vertragsangebot kann nur s<strong>of</strong>ort, der einem Abwesenden gemachte Antrag nur bis zu dem Zeitpunkt<br />

angenommen werden, in dem der Antragende den Eingang der Antwort unter regelmäßigen Umständen erwarten<br />

darf (§147 BGB). Verspätete Annahme gilt als neuer Antrag. Verträge können formlos (auch mündlich oder durch<br />

schlüssige H<strong>and</strong>lungen) abgeschlossen werden, soweit keine gesetzlichen Formvorschriften bestehen. Die auf Verschulden<br />

beruhende Verletzung eines Vertrags (Vertragsverletzung) verpflichtet zu Schadensersatz. (elektronischer<br />

Geschäftsverkehr). 2<br />

eng in Beziehung dazu:<br />

Formvorschriften: die Bindung eines Rechtsgeschäfts an vorgeschriebene Erklärungsmittel.<br />

Bei privaten Rechtsgeschäften gilt der Grundsatz der Formfreiheit, nur ausnahmsweise ist öffentliche Beglaubigung<br />

(die Echtheit der Unterschrift des Erklärenden unter seiner schriftlichen Erklärung wird vom Notar oder einer<br />

<strong>and</strong>eren, l<strong>and</strong>esrechtlich dafür vorgesehenen Stelle beglaubigt) erforderlich. Hiervon zu unterscheiden ist die amtliche<br />

Beglaubigung (besonders durch die Gemeindebehörde), deren Beweiskraft sich auf Zwecke der Verwaltung<br />

2 (c) Bibliographisches Institut & F. A. Brockhaus AG, 2003


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 768<br />

beschränkt. Weiter gibt es die notarielle Beurkundung (Aufnahme einer Niederschrift durch den Notar, die vor den<br />

Beteiligten verlesen, von ihnen genehmigt und unterschrieben wird, z.B. bei Grundstücksgeschäften) oder die Schriftform<br />

(Niederschrift der Erklärung mit eigenhändiger Unterschrift des Erklärenden). Die gesetzliche Schriftform kann<br />

seit 1.8. 2001 durch die elektronische Form ersetzt werden, wenn sich aus dem Gesetz nichts <strong>and</strong>eres ergibt (§126<br />

BGB). Der Aussteller muss der Erklärung gemäß §126a BGB seinen Namen hinzufügen und das elektronische Dokument<br />

mit einer qualifizierten elektronischen Signatur(erteilen Zertifizierungsstellen, die bei der Regulierungsbehörde<br />

Telekommunikation und Post akkreditiert sind) nach dem Signaturgesetz versehen. Ausgeschlossen ist die elektronische<br />

Form z.B. für Arbeitszeugnisse und Bürgschaftserklärungen. Die Textform (§126b BGB) macht die eigenhändige<br />

Unterschrift einer Person in bestimmten Fällen entbehrlich. Soweit das Gesetz die Textform vorschreibt, muss die<br />

Erklärung in einer lesbaren Form abgegeben (Brief, Faxkopie, Computerfax, E-Mail), die Person des Erklärenden<br />

genannt und das Ende der Erklärung durch Nachbildung der Namensunterschrift oder <strong>and</strong>ers erkennbar gemacht<br />

werden. Vorgesehen ist die Textform z.B. für Mieterhöhungen bis zur ortsüblichen Vergleichsmiete (§558a BGB, in<br />

Kraft ab 1.9. 2001). Da Formvorschriften eine Schutzfunktion für die Beteiligten bezwecken, macht die Nichtbeachtung<br />

der gehörigen Form in der Regel ein Rechtsgeschäft unwirksam 3<br />

elektronischer Geschäftsverkehr: auf die Lieferung von Waren oder Dienstleistungen gerichtete Verträge, die durch<br />

den Einsatz von Fernkommunikationstechniken, besonders das Internet, zust<strong>and</strong>e kommen.<br />

Auf diese Weise abgeschlossene Verträge sind nach allgemeinem Vertragsrecht gültig, wobei sich das anzuwendende<br />

Recht nach dem internationalen Privatrecht bestimmt. V.a. bei Verbraucherverträgen ist dies regelmäßig das inländische<br />

Recht (Artikel 2729 Einführungsgesetz zum BGB). Verbraucherschützende Sonderregeln ergeben sich aus der<br />

europäischen Fernabsatzrichtlinie von 1997 (durch Gesetz vom 27.6. 2000 in deutsches Recht umgesetzt: v.a. <strong>Information</strong>spflichten,<br />

§§312b ff. BGB), ein zweiwöchiges Widerrufsrecht nach §355 BGB) und aus der Richtlinie über<br />

rechtliche Aspekte des elektronischen Geschäftsverkehrs im Binnenmarkt von 2000 (durch Gesetz vom 14.12. 2001<br />

umgesetzt: bestätigt die Rechtsgültigkeit elektronischer Verträge; legt fest, dass für den Diensteanbieter das Recht<br />

des Mitgliedsstaates gilt, in dem er seine Niederlassung hat, nicht das des St<strong>and</strong>ortes seines Servers). 4<br />

contract<br />

• either: a binding agreement between two or more persons or parties; especially : one legally enforceable<br />

or: a business arrangement for the supply <strong>of</strong> goods or services at a fixed price<br />

or: the act <strong>of</strong> marriage or an agreement to marry<br />

• a document describing the terms <strong>of</strong> a contract<br />

• the final bid to win a specified number <strong>of</strong> tricks in bridge<br />

• an order or arrangement for a hired assassin to kill someone<br />

to contract<br />

intransitive senses in the meaning<br />

• to make a contract<br />

• to draw together so as to become diminished in size; also : to become less in compass, duration, or length<br />

transitive senses in the meaning<br />

• either: to bring on oneself especially inadvertently<br />

or: to become affected with<br />

• either: to establish or undertake by contract<br />

or: betroth; also : to establish (a marriage) formally<br />

or: to hire by contract, to purchase (as goods or services) on a contract basis- <strong>of</strong>ten used with out<br />

3 (c) Bibliographisches Institut & F. A. Brockhaus AG, 2003<br />

4 (c) Bibliographisches Institut & F. A. Brockhaus AG, 2003


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 769<br />

• either: limit, restrict<br />

or: knit, wrinkle<br />

or: to draw together : concentrate<br />

• to reduce to smaller size by or as if by squeezing or forcing together<br />

• to shorten (as a word) by omitting one or more sounds or letters<br />

Synonyms: shrink, condense, compress, constrict, deflate mean to decrease in bulk or volume.<br />

Contract applies to a drawing together <strong>of</strong> surfaces or particles or a reduction <strong>of</strong> area or length. Shrink implies a<br />

contracting or a loss <strong>of</strong> material <strong>and</strong> stresses a falling short <strong>of</strong> original dimensions. Condense implies a reducing <strong>of</strong><br />

something homogeneous to greater compactness without significant loss <strong>of</strong> content. Compress implies a pressing into<br />

a small compass <strong>and</strong> definite shape usually against resistance. Constrict implies a tightening that reduces diameter.<br />

Deflate implies a contracting by reducing the internal pressure <strong>of</strong> contained air or gas.<br />

Spezifikation: Preprint S. 151u-153o<br />

Vertragmodell mit den Komponenten<br />

Dienstmodell<br />

Kollaborationsvertrag z.B. Kollaborationsmodell Preprint S. 28<br />

Qualitätsmodell<br />

Zeitmodell<br />

Kontextmodell<br />

Akteursmodell<br />

Fehlermodell Preprint S. 28, Preprint S. 152<br />

Sicherheitsmodell Preprint S. 28, Preprint S. 152<br />

8.7.5 Alternative Spezifikation von Contracts mit Eiffel-Frames nach Plösch<br />

8.8 Spezifikation der Koordination<br />

8.9 Spezifikation der Kooperation<br />

8.10 Specification <strong>of</strong> virtual communities<br />

A virtual community is a group in which individuals come together based on an obligation to each another or as<br />

a group in which individuals come together for a purpose. We distinguish between the notion <strong>of</strong> the community<br />

(Gemeinschaft) <strong>and</strong> the notion <strong>of</strong> the society. The first kind may be separated into<br />

• communities by kinship,<br />

• communities <strong>of</strong> locality, <strong>and</strong><br />

• communities <strong>of</strong> mind (based on shared interest, expertise, <strong>and</strong> passion).<br />

Organizational communities are specified by<br />

their sustained social interaction<br />

their community st<strong>and</strong>ards<br />

membership rules<br />

Communities meet four types <strong>of</strong> customer needs:


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 770<br />

• interest which are formed by individuals with a shared interest, expertise <strong>and</strong> passion.<br />

• relationship building with a well-developed social <strong>and</strong> personal element<br />

• transaction which focus on the exchange <strong>of</strong> information to facilitate economic exchanges <strong>and</strong><br />

• fantasy which provide people the ooprtunity to explore new identities in an imaginary world <strong>of</strong> fantasy.<br />

8.11 Spezifikation auf unterschiedlichen Abstraktionsschichten<br />

auf der Anforderungsschicht<br />

8.11.1 als Grundkonstrukt<br />

auf der Benutzungsschicht<br />

8.11.2 als Grundkonstrukt<br />

als konzeptionelle Wiederspegelung<br />

8.11.3 als Grundkonstrukt<br />

auf der Implementationssschicht<br />

8.11.4 als Grundkonstrukt<br />

Spezifikation auf unterschiedlichen Abstraktionsschichten<br />

8.11.5 weiteres:<br />

8.11.6 Warum dann DistrLang anstatt von UML<br />

EER-Modelle<br />

Verteilung<br />

Sichten<br />

Replikation<br />

8.12 Verteilte <strong>Information</strong>ssysteme<br />

8.12.1 Konzepte verteilter Datenbanksysteme<br />

In den 60er und 70er Jahren beobachteten wir einen Übergang von Datei- zu Datenbanksystemen. Damit wurden die<br />

Datenunabhängigkeit der Anwendungsprogramme erhöht, eine transaktionsorientierte Verarbeitung und ein Mehrnutzerbetrieb<br />

ermöglicht sowie eine hohe Ausfallsicherheit im Parallelbetrieb erreicht, insbesondere durch Integration<br />

von Recovery-Funktionen wie Crash-Recovery, Media-Recovery. Da Hardware teuer war, wurden die teuren<br />

Hardware-Ressourcen effizient genutzt durch eine starke Zentralisierung von Rechentechnik. Damit st<strong>and</strong>en kleine<br />

Adreßräume zur Verfügung und die S<strong>of</strong>tware war limitiert. Damit mußten auch eine redundanzarme bzw. -freie Speicherung<br />

von Daten und eine minimale Anzahl von Relationen erzwungen werden. Diese Situation änderte sich danach<br />

vollständig. Hardware wurde zunehmend kostengünstiger. Man konnte schrittweise zu ‘online’-Anwendungen<br />

übergehen. Damit versagte allerdings auch die Datenintegration via Job-Control-Sprache. Es wurde außerdem ein<br />

‘online’-Update erforderlich. Dies bedingte das Zusammenführen von bislang getrennten Anwendungen und Datenbeständen.<br />

Außerdem mußte die Integration verteilter <strong>Information</strong>ssysteme angestrebt werden.<br />

In den 80er Jahren wurden mit der Weiterentwicklung der Datenbanktechnologie verstärkt verteilte Systeme<br />

eingesetzt. Dafür gibt es verschiedene Ursachen:<br />

• Daten werden zunehmend teurer und stellen Kapital dar, dessen Pflege meist nur einer Einrichtung zugeordnet<br />

werden darf. Daten werden wieder direkt ‘vor Ort’ verarbeitet wie vor Einführung der Rechenzentren.


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 771<br />

• Das Geschäftsleben und der Wettbewerb werden globalisiert. Die Benutzeranforderungen und der Markt favorisieren<br />

deshalb eine dezentralisierte Verwaltung bei der Forderung nach einer vollständigen Benutzbarkeit<br />

aller Daten.<br />

• Eine immer größere Anzahl von verschiedenartigen Lösungen und verschiedenartigen Datenbanken erforderte<br />

zugleich die Investitionen durch Datensharing beizubehalten.<br />

• Mit dem Trend zu autonomen Betriebseinheiten (‘lean management’, ‘pr<strong>of</strong>it center’) wurden ‘überintegrierte’<br />

<strong>Information</strong>ssysteme aufgesplittet und eine Dezentralisierung der Datenverarbeitung angestrebt.<br />

Diese Forderungen konnten zunehmend durch die Hardware (und die S<strong>of</strong>tware) befriedigt werden. LAN’s wurden<br />

auch aufgrund steigender Kosten bei Mainframe-Lösungen immer populärer.<br />

Damit wurden mit einer Verbesserung der Produktionsorganisation und dem Trend zur ‘schlanken Produktion’ auch<br />

eine schnelle Reaktion, intelligente Operationen Datenbanksystemanforderungen wie schneller ad-hoc-Zugriff und<br />

verteilter Zugriff bzw. verteilte Speicherung neu aufgewertet. Verteilte Datenbanksysteme haben gegenüber zentralisierten<br />

Datenbanksystemen die Vorteile einer höheren Performanz (insbesondere bei entsprechenden Entfernungen<br />

und einer Vielzahl von Benutzern), geringerer Kosten (insbesondere für die Pflege) und einer höheren Zuverlässigkeit<br />

und Verfügbarkeit (insbesondere bei partiellen Systemfehlern). Damit können zugleich Daten entsprechend Anforderungspr<strong>of</strong>ilen<br />

an verschiedenen Stellen abgelegt werden, auf Daten schneller zugegriffen werden, Daten schneller<br />

verarbeitet werden, Erweiterungen (insbesondere von weiteren Teilnehmern) einfacher vorgenommen werden,<br />

die Kommunikation verbessert, geringere CPU-Kosten, benutzerfreundliche und spezialisierte Schnittstellen erzeugt<br />

werden, die Anwendungen gegenüber von Ausfällen eines Knotens besser abgesichert werden und die Prozessoren<br />

vonein<strong>and</strong>er unabhängig operieren. Diesen Vorteilen stehen allerdings Nachteile wie komplexere Verwaltung und<br />

Steuerung, schwierigeres Sicherheitsmanagement und das Fehlen von St<strong>and</strong>ards gegenüber.<br />

Eine verteilte Datenbank ist eine inhaltlich zusammenhängende Datenbank, die auf mehreren physisch unabhängigen<br />

Knoten (Rechner, Speichermedien) verteilt wird. Die auf den Knoten abgelegten Partitionen der Datenbank<br />

können dabei auch nicht separiert vonein<strong>and</strong>er sein (Datensharing). Ein verteiltes System ist gekennzeichnet<br />

durch<br />

• eine Anwendungsschnittstelle für verschiedene Endbenutzer,<br />

• eine Validierungsfunktion zur Analyse der Datenanforderungen,<br />

• eine Transformationskomponente zur Berechnung der Anforderungen an die Komponenten,<br />

• eine Anfrageoptimierung, die die Verteilung berücksichtigt,<br />

• ein Input/Output-Interface für die Daten,<br />

• eine Formatierungsfunktion zur Anpassung der generierten Daten an die Benutzeranforderungen,<br />

• ein Sicherheitsmanagement, um Datensicherheit zu gewährleisten,<br />

• Backup- und Wiederanlauffunktionen,<br />

• eine Datenbankadministration,<br />

• eine Steuerung für den konkurrierenden Zugriff über das Netz und<br />

• eine Transaktionsverwaltung.<br />

Damit besteht ein verteiltes DBMS aus Rechnern, die Knoten zugeordnet sind, einem Kommunikationsnetzwerk zur<br />

Verbindung der Knoten, aus einem Netzwerk-Hard- und S<strong>of</strong>tware, aus Transaktionsprozessoren (TP) und aus Datenprozessoren<br />

(DP).


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 772<br />

TP<br />

DP<br />

Lokales DBMS<br />

✛<br />

✲ Kommunikationsnetzwerk<br />

✛<br />

✲<br />

TP<br />

DP<br />

Lokales DBMS<br />

Abbildung 43: Grundsätzliche Architektur verteilter DBMS<br />

Die verteilte Datenbank präsentiert sich gegenüber den Endbenutzern bzw. Anwendungsprogrammen wie eine<br />

zentrale Datenbank. Dieses Ziel erfordert das Verstecken aller ‘störenden’ Aspekte. Die Lösung besteht in der Realisierung<br />

eines (‘integrierenden’ und ‘homogenisierenden’) globalen Schemas. Deshalb sind die Verteilung der Daten,<br />

inklusive der Kopienhaltung (d. h. der Partitionierung 5 und Allokation), ebenso wie die strukturellen und semantischen<br />

Heterogenitäten (mittels Schematransformation bzw. -integration) zu verstecken. Aus Performanz- und Sicherheitsgründen<br />

werden dabei dieselben Daten an verschiedenen Knoten redundant gespeichert (redundante Allokation).<br />

<strong>Information</strong>en des gleichen Typs werden ggf. an verschiedenen Knoten verschieden dargestellt, z. B. <strong>and</strong>ers strukturiert<br />

(strukturelle Heterogenität) bzw. mit <strong>and</strong>eren Bedeutungsinhalten (semantische Heterogenität). Eine <strong>and</strong>ere<br />

Lösung ist die Partitionierung globaler Relationen, indem logisch an sich zusammengehörende Daten in homogener<br />

Form an verschiedenen Knoten gespeichert werden.<br />

Mit dieser Funktionalität kann ein verteiltes DBMS<br />

• eine Anfrage entgegennehmen,<br />

• diese analysieren, prüfen und zerlegen,<br />

• diese Teile den einzelnen Komponenten zuordnen,<br />

• auf verschiedene I/O-Operationen zurückführen,<br />

• die entsprechenden Daten suchen, lokalisieren, lesen und validieren,<br />

• auf dieser Grundlage die Konsistenz, Sicherheit und Integrität prüfen,<br />

• die Daten entsprechend der ursprünglichen Dekomposition validieren und<br />

• am Ende die gewonnenen Daten entsprechend der Anfrage dem Benutzer zur Verfügung zu stellen.<br />

Diese Aktivitäten sind aber für dem Benutzer nicht sichtbar. Wir unterscheiden dabei verschiedene Arten von Sichtbarkeit.<br />

Je nach Verteilung der einzelnen Komponenten unterscheiden wir<br />

Einfachknoten-Berechnung und Einfachknoten-Datenhaltung,<br />

Einfachknoten-Berechnung und Mehrfachknoten-Datenhaltung,<br />

Mehrfachknoten-Berechnung und Einfachknoten-Datenhaltung und<br />

Mehrfachknoten-Berechnung und Mehrfachknoten-Datenhaltung.<br />

Die Mehrfachknoten-Berechnung und Einfachknoten-Datenhaltung entspricht im Wesentlichen der Client/Server-<br />

Architektur der Workstation-basierten DBMS.<br />

Wir können auf verschiedene Rechner bei Vorh<strong>and</strong>ensein eines Netzes verschiedene Ressourcen verteilen:<br />

Daten: Daten können auf verschiedenen Rechnern abgelegt und auf Anfrage bzw. Abforderung <strong>and</strong>eren Rechnern<br />

zugänglich gemacht werden.<br />

5 Wir verwenden hier den Begriff ‘Partition’. In der Literatur wird neben dem Begriff ‘Partition’ der Begriff ‘Fragment’ benutzt. Da wir<br />

jedoch auf eine disjunkte Überdeckung des Datenbankinhaltes orientieren, ist das Wort ‘Partition’ eher geeignet.


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 773<br />

Prozesse: Prozesse können auf verschiedenen Rechnern ausgeführt und über ein Netz zusammengeführt werden.<br />

Steuerung: Die Bearbeitung kann durch verteilte Steuerung der einzelnen Prozesse und des Datenaustausches erleichtert<br />

werden.<br />

Dabei kann die Organisation der Verteilung unterschieden werden nach Prozeßcharakteristika und Prozeßwissen:<br />

Umfang des Sharing: In verteilten Datenbanken kann sowohl kein Sharing an <strong>Information</strong>en stattfinden als auch<br />

Sharing in verschiedenen Stufen. Je größer der Sharing-Anteil, umso kritischer wird die Pflege und umso besser<br />

wird die Zugriffszeit auf Fremddaten.<br />

Verhalten von Zugriffsmustern: Die Zugriffsmuster über das Netz können statisch oder auch dynamisch sein. Statische<br />

Zugriffsmuster, die sich nicht verändern, sind relativ selten. Dynamische Zugriffsmuster bedingen dagegen<br />

einen ständigen Anpassungsprozeß.<br />

Umfang des Wissens über den verteilten Zugriff: Die <strong>Information</strong> über das Zugriffsverhalten kann vollständig,<br />

wird jedoch meist nur partiell sein. Je weniger Wissen vorh<strong>and</strong>en ist, umso schlechter kann die verteilte Datenbank<br />

an die Anforderungen angepaßt werden.<br />

Grundsätzlich sollen in einer verteilten Datenbank die Benutzer nicht mit der Verteilung direkt konfrontiert sein.<br />

Die Verteilung wird deshalb unsichtbar bleiben:<br />

Nichtsichtbarkeit der Verteilung: Die Benutzer wissen nicht, welche Daten auf welche Knoten verteilt wurden.<br />

Wir unterscheiden dabei verschiedene Niveaus von Nichtsichtbarkeit:<br />

Nichtsichtbarkeit der Partitionierung : Der Benutzer kennt weder die Partitionierung noch die Knoten, sondern<br />

kann das System benutzen wie eine zentralisierte Datenbank.<br />

Nichtsichtbarkeit der Lokalisierung bei sichtbarer Partitionierung : Der Benutzer muß die Partition angeben,<br />

nicht aber die Lokalisierung.<br />

Sichtbarkeit der Lokalisierung und Partitionierung : Der Benutzer muß sowohl die Lokalisierung als auch<br />

die Partitionierung angeben.<br />

Nichtsichtbarkeit der Transaktionen: Die Benutzer kennen die Verteilung von Transaktionen nicht.<br />

Durch remote-Anforderungen können Daten auch von <strong>and</strong>eren Knoten, z.T. auch unabhängig und parallel,<br />

geholt werden. Es wird durch einige Systeme auch eine verteilte Steuerung ermöglicht. Mit einem Zweiphasen-<br />

Commit-Protokoll wird der Abschluß der Transaktion auch über verschiedene Knoten kontrolliert.<br />

Nichtsichtbarkeit des Ausfalls einzelner Komponenten: Solange ein Ausfall nicht das Funktionieren beeinflußt,<br />

erfahren die Benutzer nichts vom Ausfall einzelner Komponenten.<br />

Nichtsichtbarkeit des Funktionierens: Das System hat nach außen das gleiche Verhalten wie ein zentralisiertes<br />

System.<br />

Nichtsichtbarkeit der Heterogenität: Das System ist in der Lage, die verschiedenen heterogenen Best<strong>and</strong>teile dem<br />

Benutzer wie ein einheitliches, auf einem globalen konzeptionellen Schema beruhendes System erscheinen zu<br />

lassen.<br />

8.12.2 Verteilungskonzepte<br />

Mit einer Partitionierung sind Einschränkungen der Performanz verbunden.<br />

Daten können auf verschiedene Art partitioniert werden wie in Bild 44:<br />

Horizontale Partitionierung: Daten werden horizontal zerlegt (d. h. eine Tabelle oder Relation wird tupelweise zerlegt<br />

in verschiedene Teilrelationen) und verschiedenen Medien zugeordnet. In Bild 44 wird die Relation R<br />

durch Anwendung von Selektionsoperationen in drei Teilrelationen zerlegt, wobei gefordert wird, daß sich die<br />

Relation R aus den Teilrelationen wiederherstellen läßt durch Vereinigung dieser Teilrelationen. Damit müssen


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 774<br />

A 1 A 2 A 3 A 4<br />

A 1 A 2 A 3 A 4<br />

Relation R 2<br />

A 1 A 2 A 3 A 4<br />

= σ β (R)<br />

Relation R 1<br />

= σ α (R)<br />

Relation R 3<br />

= σ γ (R)<br />

horizontale Partitionierung<br />

⇑ ↓<br />

(Dekompostion durch Selektion)<br />

A 1 A 2 A 3 A 4<br />

Rekonstruktion<br />

R := R 1 ∪ R 2 ∪ R 3<br />

Relation R<br />

vertikale Partionierung<br />

(Dekomposition durch Projektion)<br />

⇓<br />

↑<br />

Rekonstruktion<br />

R := R[{A 1 , A 2 , A 3 }] ✶ R[{A 1 , A 4 }]<br />

A 1 A 2 A 3<br />

A 1 A 4<br />

Relation<br />

R[{A 1 , A 2 , A 3 }]<br />

Relation<br />

R[{A 1 , A 4 }]<br />

Abbildung 44: Partitionierungskonzepte


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 775<br />

die Bedingungen α, β und γ als Disjunktion den Wahrheitswert true ergeben. Neben Selektionsoperationen<br />

können auch <strong>and</strong>ere Operationen der relationalen Algebra verwendet werden. Es wird jedoch im Kontext verteilter<br />

DBS exklusiv die Selektion verwendet.<br />

Vertikale Partitionierung: Daten werden vertikal zerlegt (d. h. eine Relation oder Tabelle wird attributweise dekomponiert)<br />

und auf verschiedene Medien verteilt. In Bild 44 wurde die Relation R durch Projektion in zwei<br />

Teilrelationen zerlegt. Der natürliche Verbund dieser beiden Teilrelationen muß wiederum die ursprüngliche<br />

relation R ergeben.<br />

Gemischte Partitionierung: Daten werden sowohl horizontal als auch vertikal zerlegt und auf verschiedene Knoten<br />

aufgeteilt. Es werden schrittweise zur Partitionierung Selektion und Projektion angew<strong>and</strong>t.<br />

Die Partitionierungstiefe kann bei einer Partitionierung von keine Partitionierung bis zu einer Partitionierung<br />

auf Attribut- bzw. Objektniveau reichen.<br />

Für die Partitionierung sind einige Korrektheitsregeln in verschiedenen Abstufungen einzuhalten:<br />

Vollständigkeit: In Analogie zur Eigenschaft der verlustlosen Dekomposition bei der Normalisierung können Klassen<br />

in mehrere Teilklassen oder anh<strong>and</strong> von Teilstrukturen in Partitionen zerlegt werden. Eine Eigenschaft<br />

eines Objektes kann dabei einmalig oder mehrmalig repräsentiert sein.<br />

Rekonstruierbarkeit: Je nach Zerlegung bzw. Partitionierung existiert eine Funktion ∇ zur Wiederherstellung der<br />

ursprünglichen Klassen.<br />

Disjunktheit: Die Partitionen sind entweder disjunkt oder es existiert ein Algorithmus, mit dessen Hilfe gleiche<br />

Eigenschaften eines Objektes in verschiedenen Partitionen gepflegt werden können. Meist kann ein solcher<br />

Algorithmus über Identifikationsmechanismen definiert werden.<br />

Sobald eine Datenbank partitioniert ist, muß eine Allokation der verschiedenen Partitionen zu den Knoten des<br />

Netzes erfolgen. Die Partitionierung und Allokation werden ebenso wie im Falle zentraler DBS in einem Datenbank-<br />

Katalog (data dictionary (DD)) verwaltet. Ein zugeordnetes Datum kann dabei repliziert oder einmalig einem Knoten<br />

zugeordnet sein. Es können Prozesse für Daten in zwei Extremen unterstützt werden:<br />

Read-only-Zugriff für Replikate: Die Zuverlässigkeit und Effizienz (insbesondere für parallele Zugriffe) ist bei<br />

Read-only-Zugriffen auf Replikaten höher. Zugleich entsteht aber ein update-Problem.<br />

Read-<strong>and</strong>-write-Rechte für Replikate: Die Zuverlässgkeit und unter gewissen Umständen die Effizienz sinken. Ein<br />

update wird analog zu Triggermechanismen vorgenommen.<br />

Je nach Umfang der Replikation können verschiedene Probleme entstehen. Damit ist für jede Anwendung abzuwägen,<br />

inwieweit eine Replikationsstrategie günstig ist.<br />

Art der Replikation: volle teilweise keine<br />

Anfrageberechnung<br />

einfach<br />

gleiche Komplexit .. at<br />

←→<br />

gleiche Komplexit .. at<br />

←→<br />

DD-Verwaltung einfach oder<br />

nicht existent<br />

Steuerung der mittel hoch einfach<br />

Parallelität<br />

Zuverlässigkeit sehr hoch hoch niedrig<br />

Realistisches mögliche realistische mögliche<br />

Anwendungsszenario Anwendung Anwendung Anwendung<br />

Komplexität der Operationen bzw. Eigenschaften der Operationen


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 776<br />

8.12.3 Architektur verteilter Datenbanksysteme<br />

In konventionell realisierten verteilten Datenbanksystemen wird die Verteilung in den Anwendungen selbst realisiert.<br />

Die Anwendungsprogramme können mitein<strong>and</strong>er kommunizieren. Dadurch werden an den Entwurf der Schnittstellen<br />

dieser Programme hohe Anforderungen gestellt. In verteilten Datenbanksystemen wird die Verteilung über das<br />

verteilte Datenbankmanagementsystem übernommen. Die Verteilung der Daten ist für das einzelne Anwendungsprogramm<br />

nicht mehr sichtbar.<br />

Allen verteilten Datenbanksystemen ist die Verteilung der Daten auf verschiedene Knoten und die lokale Verarbeitung<br />

von Anfragen durch die lokalen Komponenten gemeinsam. Mitunter werden auch verteilte Dateisysteme als<br />

verteilte Datenbanksysteme bezeichnet. Obwohl Dateisysteme als Datenbanksysteme der ersten Generation aufgefaßt<br />

werden können, haben sie wenig gemeinsam mit Datenbanksystemen. Die Funktionalität von verteilten Datenbanksystemen<br />

kann nach der folgenden Tabelle unterschieden werden:<br />

Merkmale verteilter Homogene Interope- Föde- Offene<br />

Datenbanksysteme eng integr. rable rierte Multi-DB<br />

Physische Verteilung der Daten + + + +<br />

Logische Sicht als eine Datenbank + +/- +/- -<br />

Nichtsichtbarkeit der Verteilung + - +/- -<br />

Gemischter DB-Zugang (glob./lok.) - - + -<br />

Zerlegung glob. Anfragen durch DBMS + - + -<br />

Lokale Ausführung von Teilanfragen + + + +<br />

Globales Transaktionskonzept + - + -<br />

Lokale Autonomie wird erhalten - + - +<br />

8.12.4 Homogene, eng integrierte verteilte Datenbanksysteme<br />

Das verteilte System ist von außen als ein homogenes System sichtbar. Es besitzt ein integriertes Schema. Die lokalen<br />

Systeme sind nicht autonom. Das Transaktionskonzept ist global.<br />

Damit werden Leistungsanforderungen wie im Falle zentraler Datenbanksysteme anwendbar. Daraus resultiert<br />

auch die Anwendungsbreite:<br />

• Hochleistungsdatenbanksysteme durch Nutzung der Parallelverarbeitung;<br />

• Fehlertolerante Datenbanksysteme durch Nutzung der kontrollierten Redundanz;<br />

• Dezentralisierte Datenbanksysteme zur Reduktion des Kommunikationsaufkommens und der Abhängigkeit<br />

vom Netz.<br />

Mehrrechnerdatenbanksysteme sind eine typische Realisierungsform von homogenen integrierten Datenbanksystemen.<br />

Es sind im Wesentlichen drei Realisierungsvarianten entwickelt worden:<br />

• In der Shared-Everything-Architektur sind sowohl Systempuffer als auch Sperrtabelle global.<br />

• In der Shared-Disk-Architektur wird wie in der vorhergehenden Variante die Platten-Peripherie über eine Variante<br />

von Bussystemen gemeinsam genutzt. Die einzelnen Anfragen werden lokal durch eigene Rechner mit<br />

eigenem Hauptspeicher verarbeitet.<br />

• In der Shared-Nothing-Architektur wird ein vollständig verteiltes System aufgebaut, dessen einzelne Systeme<br />

durch schnelle Kommunikationverbindungen mitein<strong>and</strong>er verbunden sind.<br />

8.12.5 Architektur föderativer Datenbanken<br />

Föderative Datenbanken folgen dem Besitzer/Benutzer-Prinzip, wobei zusätzlich noch einem Benutzer Leserechte<br />

durch den Besitzer verweigert werden können. Sie wirken aufgrund einer Spezifikation der Kooperation zusammen.<br />

Bei Kopplungen muß auch die lokale Effizienz gewahrt bleiben. Wir unterscheiden dabei


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 777<br />

• singuläre Föderationen, bei denen die lokalen DBMS heterogen sein können, die jedoch auf einem globalen<br />

Schema basieren und dieses für die Berechnungen benutzen, und<br />

• multiple Föderationen, bei denen die einzelnen Systeme auch eigene, <strong>and</strong>eren nicht zugänglich gemachte Daten<br />

besitzen, die nicht mehr auf einem globalen Schema beruhen und die über Exportschemata mitein<strong>and</strong>er<br />

zusammenarbeiten.<br />

Eine Weiterentwicklung von multiplen Föderationen sind sprachlich gekoppelte Multi-DBMS. Dazu wird jedoch erst<br />

geforscht, so daß hier für den Entwurf nur föderative DBMS betrachtet werden.<br />

Der Entwurf einer föderativen Datenbank kann dabei von folgender Referenzarchitektur ausgehen:<br />

Lokale Schemata sind die Schemata der einzelnen Netzknoten.<br />

Komponentenschemata sind die lokalen Schemata in einer für die Koordinierung aufbereiteten Form. Das Datenbankmodell<br />

kann verschieden vom Datenbankmodell des lokalen Schemas sein.<br />

Exportschemata beschreiben die netzweit zugänglichen Daten, die den Teilnehmern einer Föderation zugänglich<br />

gemacht werden müssen.<br />

Föderative Schemata fassen die Exportschemata analog zur Sichtenintegration wie oben beschrieben zu einem allgemeinen<br />

Schema zusammen. Weiterhin werden Ansätze zur Auflösung von Modellierungskonflikten, statische<br />

Daten zur Optimierung, zur Verteilung (Partitionierung, Replikation etc.) erfaßt.<br />

Transformationsprozessoren erlauben eine Abbildung der lokalen Schemata auf die Komponentenschemata.<br />

Filterprozessoren filtern aus den Komponentenschemata die Daten für die Exportschemata heraus.<br />

Konstruktionsprozessoren dienen zur Einbindung der Exportschemata in die oder das föderative Schema.<br />

✻<br />

Exportschema<br />

❄<br />

Filterprozessor<br />

✻<br />

Interface zum föderativen Schema<br />

❄<br />

Konstruktionsprozessor<br />

✻<br />

Komponentenschema<br />

❄<br />

Transformationsprozessor<br />

✻<br />

Lokales DB-Schema<br />

❄<br />

Lokales<br />

DBMS<br />

Abbildung 45: Die Architektur von föderativen Datenbanksystemen


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 778<br />

Anwendungs-Service<br />

Abstrakter Service<br />

Konkreter Service<br />

System Service<br />

Abbildung 46: Eine Schichten-Architektur für interoperable Umgebungen<br />

Der nächste Schritt sind interoperable föderative <strong>Information</strong>ssysteme. Deren Dienste können wie in Bild 46<br />

dargestellt werden.<br />

Diese Entwicklungslinie läßt sich für interoperable, föderative Systeme fortsetzen.<br />

Verteilung \ DBMS Zentrale Verteilte Interoperable Föderative<br />

Datenbankmodell A A B B<br />

Plattform A A A B<br />

Replikation/Partitionierung A B B B<br />

Insgesamt ergibt sich damit die folgende in Bild 47 dargestellte Architektur.<br />

Lokaler Benutzer A<br />

Lokaler Benutzer B<br />

Benutzer-<br />

Interface<br />

System A<br />

Globaler Benutzer<br />

System B<br />

Benutzer-<br />

Interface<br />

Lokale<br />

Anwendungen<br />

Lokales<br />

DBMS<br />

Föderationssystem<br />

Benutzer-<br />

Interface<br />

Globales<br />

Kommunikationsund<br />

Verknüpfungs-<br />

System<br />

Föderationssystem<br />

Lokale<br />

Anwendungen<br />

Lokales<br />

DBMS<br />

Abbildung 47: Interoperable föderierende <strong>Information</strong>ssysteme<br />

8.12.6 Offene Multidatenbanksysteme<br />

In einem <strong>of</strong>fenen, sehr losen Verbund werden <strong>of</strong>fene Multidatenbankensysteme realisiert. Typische Anwendungsbeispiele<br />

sind autonome Systeme, die ihre Funktionalität ‘befreundeten’ Systemen öffnen wie z. B. Reservierungssysteme,<br />

Recherchedatenbanken und <strong>Information</strong>sdienste. Die Integration findet nur in den anwendungsnahen Schichten<br />

statt und kann von lokaler Komponente zu lokaler Komponente variieren. Damit wird ein hoher Grad an Autonomie<br />

erreicht. Zugleich sind diese Systeme eher für den lesenden Zugriff geeignet. Eine globale Transaktionskomponente<br />

kann nicht existieren. Die Modifikation der Daten wird dann nicht wie mit einem Two-Phase-Commit unterstützt,<br />

sondern durch entsprechende Kompensationsoperationen vorgenommen. Eine Transaktion wird z. B. in einem Buchungssystem<br />

durch eine Stornierungsbuchung aufgehoben. Ein Rollback existiert nur lokal.


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 779<br />

8.12.7 Heterogene Datenbanken<br />

Heterogene Datenbanken verwalten inhaltlich verw<strong>and</strong>te <strong>Information</strong>en einer Institution, eines Unternehmens, etc.<br />

Die <strong>Information</strong>en sind in der Praxis häufig über mehrere heterogene Datenbanken verstreut, die unabhängig vonein<strong>and</strong>er<br />

entworfen wurden und betrieben werden. Heterogenität tritt auf bezüglich:<br />

• Hardware (Rechner, Peripherie, Kommunikationssystem, ...),<br />

• Betriebssystemen (Windows, Linux, Unix, MS/DOS, MVS, VMS, BS2000 ...),<br />

• Kommunikationsprotokollen (SNA, TCP/IP, Transdata, OSI ...),<br />

• DBMS (Hersteller, Version),<br />

• Datenmodellen (relational, objekt-orientiert, CODASYL, hierarchisch),<br />

• Anfragesprache (SQL-Dialekt, DL/1, ...),<br />

• Transaktionsverwaltung (Synchronisation, Logging, Recovery) und<br />

• Repräsentation der Daten, die wieder zu einer größeren semantischen Heterogenität führt.<br />

Semantische Heterogenität ist <strong>of</strong>t durch Entwurfsautonomie verursacht. Eine mögliche Beh<strong>and</strong>lung kann durch Schemaintegration<br />

analog zu Zugängen föderativer DBS erfolgen. Es sind in diesem<br />

Zusammenhang Namenskonflikte (Synonyme, Homonyme) zu lösen. Es werden unterschiedliche Namen für dieselben<br />

Attribute/Relationen verwendet bzw. die gleichen Bezeichner für unterschiedliche Attribute/Relationen. Damit<br />

muß eine Umbenennung erfolgen. Bei der Modellierung werden unterschiedliche Formate verwendet (unterschiedliche<br />

Datentypen, Genauigkeit, etc. ). Dies erfordert den Einsatz von Konversionsfunktionen. Es treten strukturelle<br />

Unterschiede z. B. bei der Repräsentation von <strong>Information</strong> durch Attribute bzw. eigene Relation(en), bei unterschiedlichen<br />

Beziehungstypen (1:N, M:N, ...), durch unterschiedliche Integritätsbedingungen (Eindeutigkeit, referentielle<br />

Integrität, Nullwertbeh<strong>and</strong>lung, Defaultwerte, Wertebereiche, etc.) auf. Außerdem können Daten fehlen oder widersprüchlich<br />

sein, z. B. durch Eingabefehler und unterschiedlichen Änderungsst<strong>and</strong>.<br />

8.12.8 Schemata verteilter DBS<br />

Obwohl die vollständige Schemaintegration algorithmisch nicht lösbar ist, kann man die Entwicklung eines integrierten<br />

Schemas in verteilten Anwendungen anstreben. Eine Schemaarchitektur kann man dabei an die föderativen<br />

Systeme wie in Bild 48 anlegen. Dabei wird angestrebt, ein gemeinsames konzeptionelles und internes Schema für<br />

alle Knoten anzulegen. Von Vorteil ist, daß ein globales konzeptionelles Schema Verteilungstransparenz unterstützt.<br />

Es wird jedoch keine Knotenautonomie unterstützt. Deshalb ist ein globales Schema, dem das Verteilungsschema<br />

unterlegt wurde, ungeeignet. Es ist außerdem für geographisch verteilte Systeme ungeeignet. Mit der in Bild 48<br />

angegebenen Architektur wird die Verteilungstransparenz durch das globale konzeptionelle Schema und die Knotenautonomie<br />

durch die lokalen konzeptionellen und internen Schemata unterstützt. Ein Katalog führt die Metadaten<br />

für die DB-Verarbeitung. Im Katalog werden die Namen und Adressen externer Knoten und der DBS, Angaben zur<br />

Datenverteilung und Angaben zu Relationen, Sichten, Attribute, Integritätsbedingungen, Benutzern, Zugriffsrechten,<br />

Indexstrukturen, Statistiken etc . geführt. Jeder Knoten führt für die lokalen Objekte die Katalogdaten.<br />

8.12.9 Datenverteilung, Allokation und Partitionierung<br />

Mit der Dreiebenen-Schema-Architektur in Bild 48 erscheint eine Trennung zwischen der Verteilung von Daten auf<br />

logischer Ebene mit einer prädikativen Beschreibung der Verteilung insbesondere zur (horizontalen, vertikalen,<br />

gemischten) Partitionierung globaler Relationen und auf<br />

physischer Ebene mit einer Festlegung des Speicherungsortes mit einer redundanten oder nicht-redundanten Allokation<br />

von Partitionen


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 780<br />

Lokales<br />

externes<br />

Schema 1<br />

Lokales<br />

externes<br />

Schema 2<br />

Lokales<br />

externes<br />

Schema m<br />

Globales konzeptionelles Schema<br />

Globales Verteilungsschema<br />

Lokales<br />

konzept.<br />

Schema 1<br />

Lokales<br />

konzept.<br />

Schema 2<br />

Lokales<br />

konzept.<br />

Schema n<br />

Lokales<br />

internes<br />

Schema 1<br />

Lokales<br />

internes<br />

Schema 2<br />

Lokales<br />

internes<br />

Schema n<br />

Lokales<br />

DBS 1<br />

Lokales<br />

DBS 2<br />

Lokales<br />

DBS n<br />

Abbildung 48: Verallgemeinerung der Dreiebenen-Schema-Architektur<br />

Globale<br />

Relation<br />

R 1<br />

✰✛<br />

Partition<br />

von R 1<br />

✸<br />

✲<br />

P 11<br />

P 12<br />

✛<br />

✛<br />

❨<br />

Allokation der<br />

Partitionen P 1j<br />

✲<br />

✲<br />

✸<br />

A 111<br />

A 121<br />

A 131<br />

Knoten<br />

A<br />

✛<br />

✐<br />

❦<br />

✲ P 13<br />

✰ ❥A 122<br />

♦<br />

✶A 141<br />

✮<br />

A 151<br />

P 14<br />

✼<br />

❦<br />

✇A 132<br />

A 142<br />

P 15<br />

✴✛<br />

✲A 152<br />

Knoten<br />

B<br />

Knoten<br />

A<br />

Benutzersicht<br />

logische<br />

Aufteilung<br />

physische<br />

Speicherung<br />

Abbildung 49: Partitionierung und Allokation globaler Relationen


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 781<br />

wie in Bild 49 sinnvoll. Einheiten der Datenverteilung sind die Partitionen. Wünschenswert ist eine Zerlegung von<br />

Relationen mit der Selektionsoperation oder mit der Projektionsoperation (horizontale und vertikale Partitionierung).<br />

Oft wird auch die Partitionierung redundant sein. Eine replizierte Speicherung von Partitionen bietet höhere Freiheitsgrade<br />

bei der Query-Optimierung, bedingt aber auch einen höheren Änderungsaufw<strong>and</strong>. Gründe für eine horizontale<br />

bzw. vertikale Partitionierung sind Lastbalancierung, Nutzung von Lokalität, Reduzierung des Verarbeitungsumfangs<br />

und Unterstützung von Parallelverarbeitung.<br />

Anschließend werden Teile der Partitionen Knoten zugeordnet (allokiert). Die Zuordnung ist bestimmt weitgehend<br />

Ausführungsort von DB-Operationen. Damit erhalten wir widersprechende Teilziele. Zum einem orientieren<br />

wir uns auf eine Minimierung der Kommunikationskosten, zum <strong>and</strong>eren jedoch auch auf eine Lastbalancierung.<br />

Die Partitionierung und Allokation sollte den folgenden Anforderungen genügen:<br />

Vollständigkeit: : Jedes Datum muß in wenigstens einer Partition enthalten sein.<br />

Rekonstruierbarkeit: Die Zerlegung sollte verlustfrei sein.<br />

(Weitestgehende) Disjunktheit: Um durch die Redundanz in den Partitionen nicht einen zu hohen Pflegeaufw<strong>and</strong><br />

in Kauf nehmen zu müssen, sollten die Partitionen disjunkt sein oder es sollten im Falle der Nichtdisjunktheit<br />

der Partitionen einfache Pflegemechanismen implementierbar sein. Da die Redundanz ggf. auch auf physischem<br />

Niveau noch beibehalten wird, kann man auch für die logische Aufteilung vereinfachend von einer<br />

redundanzfeien Partition ausgehen.<br />

Eine horizontale Partitionierung wird durch Selektionsprädikate R i := σ Pi (R) (1 ≤ i ≤ n) bestimmt.<br />

Die Forderung nach Vollständigkeit impliziert, daß jedes Tupel einer Partition zugeordnet sein muß, d. h. ∪ n i=1 R i =<br />

R. Damit ist eine horizontale Zerlegung verlustfrei, falls die Partitionen mit einem Selektionsprädikat definiert sind.<br />

Die horizontale Partitionierung ist disjunkt, falls R i ∩ R j = ∅ für 1 ≤ i < j ≤ n gilt.<br />

Die vertikale Partitionierung ist definiert durch das Paar Projektion und Verbund (π, ✶), d. h.<br />

R i := π X (R) (1 ≤ i ≤ n), R =✶ n i=1 R i .<br />

Wie auch in der Normalisierung kann eine Verlustfreiheit nur erreicht werden bei Zerlegung nach einer mehrwertigen<br />

oder funktionalen Abhängigkeit. Oft wird gefordert, daß der Primärschlüssel in alle Partitionen übernommen wird.<br />

Damit gilt die Verlustfreiheit in jedem Fall. Der Vorteil dieser rigiden Forderung ist die vereinfachte Pflege der<br />

Integrität. Die Vollständigkeit wird erreicht, wenn jedes Attribut in wenigstens einer Partition enthalten ist.<br />

Die vertikale Partitionierung kann ebenfalls durch einen SQL-Projektionsausdruck definiert werden. Vertikale<br />

Partitionierung wird z. Z. von verteilten DBMS nur rudimentär unterstützt.<br />

Vertikale und horizontale Partitionierung können auch kombiniert werden, wodurch komplexere Partitionen entstehen.<br />

Gemischte (hybride) Partitionen bestehen aus Bäumen von Partitionen wie in Bild 50.<br />

R 21<br />

R 1 R 22<br />

R 23<br />

Zerlegung<br />

der Relation R<br />

R<br />

V<br />

✠ ❘<br />

V<br />

R 2<br />

H H H<br />

✠ ❄❘<br />

R 21 R 22 R 23<br />

Partitionierungsbaum<br />

Abbildung 50: Gemischte Partitionierung<br />

R 1<br />

✶<br />

✒■<br />

∪<br />

✒✻■<br />

R 21 R 22 R 23<br />

Rekonstruktionsbaum<br />

Die Bestimmung geeigneter Partitionierungen kann <strong>of</strong>t mit einem intuitiven Ansatz erfolgen. In vielen Anwendungen<br />

reicht es bereits aus, die Partitionierung nach lokalen Zugriffsanforderungen vorzunehmen. Bei komplexeren<br />

Anwendungen gibt es eine Vielzahl von Einflußgrößen. Dann ist eine systematische Vorgehensweise erforderlich.<br />

Dazu werden die Anwendungen analysiert nach einer Reihe von Parametern:<br />

• Art des Zugriffs (lesend oder schreibend);


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 782<br />

• Häufigkeit der Operationen;<br />

• Auswahlbedingungen der Anfragen;<br />

• betr<strong>of</strong>fene Relationen und innerhalb dieser Gruppen von Attributen;<br />

• zu übertragende Datenmengen.<br />

Auf der Grundlage dieser Entwurfsinformationen wird untersucht, ob eine Partitionierung sinnvoll wird, z. B. durch<br />

eine geringere Anzahl von Zugriffen. Wird die Zugriffshäufigkeit durch Selektionsprädikate geringer oder die Zugriffsbreite<br />

(Arität der Tupel) geringer durch vertikale Partitionierung, dann führt eine Partitionierung zu einem Performanzgewinn.<br />

Die Bestimmung horizontaler und vertikaler Partitionen kann mit einem Rückgriff auf die Booleschen Funktionen<br />

berechnet werden. Wir deuten dieses Verfahren hier kurz an. Es ist den Verfahren zur Optimierung Boolescher<br />

Schaltkreise entlehnt.<br />

Wir betrachten dazu zuerst die horizontale Partitionierung. Jeder Selektionsausdruck, der zur horizontalen Partitionierung<br />

verwendet wird, hat eine induktive Struktur, die auf der Grundlage von Elementartermen der Form Aωa<br />

mit a ∈ dom(A) und ω ∈ {, ≤, ≥, =, ≠} definiert sind. Die Menge der Elementarterme α 1 , ..., α k kann zur<br />

Darstellung der Selektionsausdrücke in disjunktiver Normalform benutzt werden. Die Elementarausdrücke werden<br />

mit der Aufrufhäufigkeit und der Selektivität gewichtet. Mit diesen Angaben kann eine Partitionierung bestimmt<br />

werden, bei der eine Partition nicht in unterschiedlicher Weise von zwei (oder mehr) der unterstellten Anfragetypen<br />

referenziert wird und sich für die Tupel einer Partition in etwa die gleiche Zugriffshäufigkeit ergibt. Mit den verwendeten<br />

Selektionsausdrücke können nun die Monome herausgefiltert werden, die nun ihrerseits als Komponenten der<br />

Selektionsausdrücke benutzt werden.<br />

Abgeleitete horizontale Partitionen werden analog zu obigen Verfahren in die Partitionierung einbezogen. Es wird<br />

am einfachsten dazu das ER-Schema herangezogen. Damit läßt sich der Effekt einer Partitionierung auf <strong>and</strong>ere Relationen<br />

relativ einfach bestimmen. Daraus können über die Fremdschlüssel-Beziehungen Partitionierungen abgeleitet<br />

werden für die referenzierenden Relationen. Diese werden wiederum so beh<strong>and</strong>elt wie bereits zuvor die Relationen<br />

für den Fall der horizontalen Partitionierung. Eine Zusammenführung mit den referenzierten Relationen erfolgt dabei<br />

über den Semi-Verbund.<br />

Die vertikale Partitionierung ist ein relativ komplexes Optimierungsproblem. Es werden <strong>of</strong>t statt einer exakten<br />

Lösung dafür heuristische Verfahren verw<strong>and</strong>t, die z. B. die Zugriffshäufigkeiten auf Attributgruppen benutzen, um<br />

eine Attributgruppierung abzuleiten.<br />

Nachdem eine Partionierung bestimmt wurde, können die einzelnen Partitionen Knoten des Netzes zuordnet werden.<br />

Die Allokation erfordert eine Optimierungstrategie. Optimierungsziele dabei sind u.a. die Unterstützung kurzer<br />

Antwortzeiten bzw. eines hohen Durchsatzes, die Minimierung des Kommunikationsbedarfs und die Lastbalancierung.<br />

Das Optimierungsmodell basiert demzufolge auf einer Minimierung einer Kostenfunktion unter Einhaltung von<br />

R<strong>and</strong>bedingungen. Hauptkomponenten der Kostenfunktion sind demzufolge als negativer Faktor die Kommunikationskosten,<br />

als positiver Faktor der Umfang der lokalen Verarbeitung und als Nebenbedingung Das Nichtüberschreiten<br />

von Grenzwerten zur Auslastung einzelner Rechner. Plazierungsaspekte sind zum einem die Effizienz, d. h. insbesondere<br />

die Minimierung der Remote-Zugriff-Kosten und die Vermeidung von Engpässen in der Kommunikation und<br />

bei den lokalen Rechnern, und zum <strong>and</strong>eren die Datensicherheit z. B. durch Auswahl von Knoten unter Verläßlichkeitsaspekten<br />

und durch redundante Speicherung von Daten. Bei der Plazierung können zwei Hauptansätze verfolgt<br />

werden:<br />

• nicht-redundante Allokation (Plazierung) mit einem ggf. höheren Kommunikationsaufw<strong>and</strong> und<br />

• redundante Allokation (Platzierung) mit einem ggf. höheren Pflegeaufw<strong>and</strong>.<br />

Das mathematische Modell für die nicht-redundante Allokation benutzt die folgenden Parameter:<br />

• K : Anzahl der Knoten im Netz;<br />

• P : Anzahl von zu allokierenden Partitionen der globalen Relationen;


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 783<br />

• T : Anzahl der Typen von Lese- und Änderungsoperationen auf den globalen Relationen;<br />

• M i : maximale Speicherkapazität in den Dateneinheiten am Knoten i (1 ≤ i ≤ K);<br />

• S i : Speicherkosten pro Dateneinheit am Knoten i (1 ≤ i ≤ K);<br />

• U ij : Übertragungskosten pro Dateneinheit vom Knoten i nach Knoten j (1 ≤ i, j ≤ K, i ≠ j);<br />

• G p : Größe in Dateneinheiten der Partition p (1 ≤ p ≤ P );<br />

• O tp : Größe in Dateneinheiten einer Teiloperation (d. h. einer Anfragezeichenkette) vom Typ t gegen die<br />

Partition p (1 ≤ p ≤ P , 1 ≤ t ≤ T );<br />

• R tp : Größe in Dateneinheiten des Resultats einer Teiloperation (d. h. einer Anfragezeichenkette) vom Typ t<br />

gegen die Partition p (1 ≤ p ≤ P , 1 ≤ t ≤ T );<br />

• H it : Häufigkeit, mit der Operationen vom Typ t am Knoten i gestellt werden (1 ≤ i ≤ K, 1 ≤ t ≤ T );<br />

• V pi : charakteristische Funktion der Verteilung der Partition auf die Knoten, wobei V pi = 1 gilt , falls die<br />

Partition p am Knoten i allokiert ist und V pi = 0 sonst für (1 ≤ p ≤ P , 1 ≤ i ≤ K).<br />

Bei Leseoperationen gilt typischerweise R tp >> O tp . Damit kann u. U. auch der Faktor O tp vernachlässigt werden.<br />

Bei Änderungsoperationen kann dagegen O tp relativ groß werden, während R tp lediglich eine Bestätigung für die<br />

Durchführung der Operation beschreibt.<br />

Damit entstehenden die folgenden Kostenbest<strong>and</strong>teile:<br />

Speicherkosten: Σ S = ∑ P<br />

p=1 G p<br />

∑ K<br />

i=1 V piS i<br />

Übertragungskosten: Σ U =<br />

∑ P ∑ K ∑ K ∑ T<br />

p=1 i=1 j=1 t=1 H itO tp V pj U ij + ∑ P ∑ K ∑ K ∑ T<br />

p=1 i=1 j=1 t=1 H itR tp V pj U ji<br />

Nebenbedingung für die nicht-redundante Speicherung: ∑ K<br />

i=1 V pi = 1 für alle p (1 ≤ p ≤ P )<br />

Nebenbedingung für maximale Speicherkapazitäten: ∑ P<br />

p=1 G pV pi ≤ M i für alle i (1 ≤ i ≤ K)<br />

Damit ist das Optimierungsproblem für die nicht-redundante Allokation als Minimierungsaufgabe gegeben, bei der<br />

die Funktion<br />

Σ S + Σ U ,<br />

d. h. die Funktion<br />

P∑<br />

∑<br />

K<br />

G p<br />

p=1 i=1<br />

V pi S i +<br />

P∑<br />

K∑<br />

K∑<br />

p=1 i=1 j=1 t=1<br />

T∑<br />

H it O tp V pj U ij +<br />

P∑<br />

K∑<br />

K∑<br />

p=1 i=1 j=1 t=1<br />

T∑<br />

H it R tp V pj U ji<br />

unten den Nebenbedingungen<br />

(i) ∑ K<br />

i=1 V pi = 1 für alle p (1 ≤ p ≤ P ) und<br />

(ii) ∑ P<br />

p=1 G pV pi ≤ M i für alle i (1 ≤ i ≤ K)<br />

minimiert wird.<br />

Bei hinreichend guten Abschätzungen für die einzelnen Parameter kann das Optimierungsproblem durch Optimierungswerkzeuge<br />

gelöst werden, wobei durch die Komplexität der Kostenfunktion mit erheblichen Rechenaufw<strong>and</strong><br />

zu rechnen ist. Es kann sowohl die Knotentopologie als auch die Partitionierung als dynamischer Parameter in das<br />

Optimierungsproblem einfließen. Neuere Algorithmen der Genetischen Programmierung und der Heuristik versprechen<br />

hier Abhilfe.<br />

Das Kostenmodell für die redundante Allokation ist bezüglich der Speicherkosten und der Nebenbedingung für<br />

die maximale Speicherkapazitäten gleich. Ändern müssen sich jedoch die beiden <strong>and</strong>eren Größen:


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 784<br />

Übertragungskosten: Wir unterscheiden hier nach den Operationen. Es gibt T L Leseoperationen auf den globalen<br />

Relationen und T S Änderungsoperationen auf den globalen Relationen, wobei T = T L + T S gilt.<br />

Eine Leseoperation gegen die Partition p wird an denjenigen Knoten i ges<strong>and</strong>t, von dem das Resultat mit den<br />

geringsten Kosten erhalten werden kann. Damit erhalten wir<br />

Σ L U = ∑ P ∑ K ∑ T L<br />

p=1 i=1 t=1 H it min K j=1, V pj =1 (O tpU ij + R tp U ji )<br />

Eine Änderungsoperation gegen die Partition p wird an alle Knoten ges<strong>and</strong>t, an denen die Partition p allokiert<br />

ist. Damit erhalten wir<br />

Σ S U = ∑ P ∑ K ∑ T S<br />

p=1 i=1 t=1 H ∑ K<br />

it j=1, V pj =1 (O tpU ij + R tp U ji )<br />

Nebenbedingung für die nicht-redundante Speicherung: ∑ K<br />

i=1 V pi ≥ 1 für alle p (1 ≤ p ≤ P ), weil jede<br />

Partition an mindestens einem Knoten allokiert sein muß.<br />

Damit ist das Optimierungsproblem für die redundante Allokation als Minimierungsaufgabe gegeben, bei der die<br />

Funktion<br />

Σ S + Σ L U + Σ S U<br />

unten den Nebenbedingungen<br />

(i) ∑ K<br />

i=1 V pi ≥ 1 für alle p (1 ≤ p ≤ P ) und<br />

(ii) ∑ P<br />

p=1 G pV pi ≤ M i für alle i (1 ≤ i ≤ K)<br />

minimiert wird.<br />

Man ist damit von Ansatz her in der Lage, eine optimale Lösung exakt zu berechnen, falls alle Parameterwerte<br />

hinreichend genau bestimmt werden können. Man kann in der Verfeinerung noch Transaktionen und die interne<br />

Anfrageoptimierung der lokalen Rechner berücksichtigen, womit die Optimierungsaufgabe jedoch wesentlich komplexer<br />

wird und das Allokationsproblem nicht mehr dynamisch beh<strong>and</strong>elt werden kann. Deshalb werden meist heuristische<br />

Verfahren in der Praxis angew<strong>and</strong>t, die im Wesentlichen an den obigen Optimierungsverfahren angelehnt<br />

sind, jedoch die Lastverteilung an der Zugriffsfrequenz optimieren. Es wird zunächst die Partition mit der höchsten<br />

Zugriffsfrequenz betrachtet. Danach werden die lokalen Zugriffsfrequenzen berechnet. Eine Allokation wird nach<br />

dem Zugriffsgewicht zugeordnet.<br />

8.12.10 Verteilte Anfragenbearbeitung<br />

Zur optimalen verteilte Anfragebearbeitung wird eine Ausführungsplan in Abhängigkeit von der Datenverteilung<br />

bestimmt. Kostenfaktoren sind Übertragungskosten (Nachrichtenanzahl, Nachrichtenumfang), I/O-Kosten, die Geschwindigkeit<br />

insbesondere Antwortzeiten und ggf. CPU-Bedarf und Hauptspeicherbedarf. Zur Auswahl der optimalen<br />

Strategie sind eine Reihe von Entscheidungen zu treffen:<br />

◦ Anfrage-Zerlegung in lokal ausführbare Teilanfragen;<br />

◦ Ausführungsreihenfolge für Selektion, Projektion und Join;<br />

◦ Nutzung von Indexstrukturen;<br />

◦ Parallelisierung von Teilanfragen;<br />

◦ Auswahl der globalen und lokalen Join-Strategie (Nested-Loop, Sort-Merge,<br />

Hash-Join);<br />

◦ Rechnerauswahl, z. B. zur Join-Berechnung;<br />

◦ Auswahl der Replikate.<br />

Diese Entscheidungen können schrittweise getr<strong>of</strong>fen werden, so daß ein Phasenmodell zur Berechnung nach Bild 51<br />

realisiert werden kann. Das Phasenmodell mündet in folgende Schrittfolge:<br />

1. Prüfung der Anfrage auf syntaktische und semantische Korrektheit;<br />

2. Transformation globaler Anfragen in lokal ausführbare Anfragen mit algebraischen Termersetzungstechniken;


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 785<br />

globale Anfrage<br />

Dialekt der DB-Sprache<br />

globales Schema<br />

Verteilungsschema<br />

globale Statistiken<br />

lokales Schema<br />

✲<br />

✲<br />

✲<br />

✲<br />

✲<br />

❄<br />

Anfrage-Parsing<br />

validierte globale<br />

❄<br />

Anfrage<br />

Anfragetransformation<br />

algebraischer<br />

❄ Ausdruck<br />

Daten-Lokalisierung<br />

Partition-<br />

❄<br />

Ausdruck<br />

globale Optmierung<br />

global optimierter<br />

❄Partition-Ausdruck<br />

lokale Optimierung<br />

❄<br />

optimierte lokale Anfrage<br />

Abbildung 51: Phasen der verteilten Anfragebearbeitung<br />

3. Lokalisierung der Daten in den einzelnen Knoten;<br />

4. Vereinfachung der Anfrageausdrücke mit Methoden der algebraischen Optimierung, z. B. Vereinfachung von<br />

Algebra-Ausdrücken und Elimination redundanter Teilausdrücke;<br />

5. Bestimmung der Berechnungsverfahren für Operationen, insbesondere des Verbundes;<br />

6. Bewertung und Auswahl von Ausführungsstrategien mit den Kostenparametern, ggf. Abschätzung von Zwischenergebnisgrößen<br />

und einem Abwägen zwischen Funktionsexport und Datenexport.<br />

Wünschenswert - aber nicht immer realistisch - ist dabei auch eine Berücksichtigung des aktuellen Systemzust<strong>and</strong>es<br />

zur Laufzeit.<br />

In der Phase der Anfragetransformation wird<br />

• eine Interndarstellung für die Anfrage (z. B. in der Relationenalgebra) erzeugt,<br />

• eine Namensauflösung anh<strong>and</strong> des globalen Schemas ausgelöst,<br />

• die Anfrage semantisch analysiert,<br />

• die Anfrage normalisiert und<br />

• algebraisch vereinfacht unter Benutzung der Äquivalenzregeln der Operationenalgebra.<br />

Literatur<br />

[Dad96] P. Dadam. Verteilte Datenbanken und Client/ServerSysteme. Springer, Berlin, 1996.<br />

[KE96] A. Kemper <strong>and</strong> A. Eikler. Datenbanksysteme. Oldenbourg-Verlag, München, 1996.<br />

[Rah94]<br />

E. Rahm. Mehrrechner-Datenbanksysteme: Grundlagen der verteilten und parallelen Datenbankverarbeitung.<br />

Addison-Wesley, Bonn, 1994.


CAU zu Kiel, IfI, ISE, β 8. Verteilung ab SS 2011/12 786<br />

[Sch96] Alex<strong>and</strong>er Schill. Rechnergestützte Gruppenarbeit in verteilten Systemen. Prentice Hall, München, 1996.<br />

[SYea03] J.E. Safra, I. Yeshua, <strong>and</strong> et. al. Encyclopædia Britannica. Merriam-Webster, 2003.


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

9. Methodik 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 />

9 Systematische Entwicklung von <strong>Information</strong>ssystemen<br />

Nicht Kunst und Wissenschaft allein,<br />

Geduld will bei dem Werke sein.<br />

Goethe, Faust, Erster Teil, Hexenküche, Mephistopheles<br />

Literatur

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!