|
|
 |
Informatik-Lexikon
Schemaevolution
Security Patterns
Semantische Anfrageoptimierung
Semistrukturierte Daten
Sensornetze, Drahtlose
Softwarevisualisierung
SPEC-Benchmarks
SQL2-Norm und SQL3-Projekt
Software-Enwicklung, siehe CASE
Software Engineering, agentenorientiertes (AOSE)
Sozionik
Suche, Nullfenster-
Schemaevolution
|
Kurzinfo Ein
Schema (Muster, Entwurf) dient der modellhaften Beschreibung realer Sachverhalte.
Mit Hilfe solcher Modelle kann der Mensch in seiner täglichen Arbeit unterstützt
werden. So gibt es z.B. Datenbankschemata zur Beschreibung von
Daten und deren Beziehung untereinander und Workflow-Schemata zur
Modellierung von Arbeitsprozessen (engl. workflow).
|
Erläuterung
Ein Workflow-Schema legt unter anderem fest, welche Aktivitäten
in welcher Reihenfolge zur Ausführung kommen.
Dadurch ist für Workflow-Instanzen, die ausgehend von diesem Workflow-Schema
erzeugt und ausgeführt werden, klar, ob sie parallele oder alternative
Ausführungspfade aufweisen und welche externen Programme ggf. mit
einer bestimmten Aktivität verknüpft sind. Durch das Workflow-Schema
sind also bereits zur Modellierungszeit alle zur Laufzeit möglichen
Ausführungsvarianten bestimmt.
Sowohl Datenbank- als auch Workflow-Schemata beschreiben in der Regel
Sachverhalte aus der realen Welt. Wenn sich diese Sachverhalte andern
oder neue Aspekte hinzukommen, müssen unter Umständen auch die
Schemata angepasst werden. Bei der Evolution von Datenbank-Schemata geht
es dabei fast ausschließlich darum, die Datentypen, Datenstrukturen
und Integritatsbedingungen des alten" Datenbank-Schemas (möglichst)semantikerhaltend
auf die entsprechenden Datentypen, Datenstrukturen und Integritätsbedingungen
des neuen" Datenbank--Schemas abzubilden.
Dagegen bedeutet im einfachsten Fall (!)eine Workflow-Schema-Änderung,
dass es für eine gewisse Zeit Workflow-Instanzen geben wird, die
noch nach dem alten Schema, und solche, die (weil nach der Schemaänderung
gestartet)nach dem neuen Schema abgewickelt werden. In vielen Fallen reicht
dieses einfache Koexistenzmodell jedoch nicht aus, sei es, weil sich z.B.
gesetzliche Rahmenbedingungen geändert haben oder weil das alte Workflow-Schema
gravierende Mangel aufweist.
Soll eine Schemaänderung also auch auf die bereits laufenden Instanzen
angewendet werden, spricht man von Workflow-Schemaevolution [1,
6].
Um zu verstehen, was bei einer Workflow-Schemaevolution zu leisten ist,
stellt man sich eine Workflow-Instanz am besten als ein in Ausführung
befindliches Programm vor, das aus einer Folge von Prozeduren besteht.
Diese werden entweder nacheinander gerufen (sequenzielle Ausführung)oder
treten in einer If-then-else-Bedingung auf (alternative Verzweigung) oder
können auch parallel zur Ausführung kommen. Bei einer Workflow-Schemaevolution
wird nun versucht, in einem solchen Programm ein oder mehrere neue Prozeduren
einzufügen, zu löschen, zu verschieben, Verzweigungsbedingungen
zu ändern, parallele Pfade hinzuzufügen oder zu löschen;
und zwar so, dass eine zuvor korrekte Parameterversorgung aller Prozeduren
unter allen Ausführungsalternativen auch nach der Änderung gewährleistet
ist. Hierbei ist zu beachten, dass diese Instanzen alle unterschiedlich
weit in ihrer Ausführung sind und dass die Anwendbarkeit einer Schemaevolution
auf eine bestimmte Workflow-Instanz davon abhängt, wie weit deren
Ausführung bereits fortgeschritten ist [6,
7].So macht z.B. die Einfügung des Schrittes
Sendung kontrollieren" in Abb.1 gemäß des neuen
Workflow-Schemas nur für solche Workflow-Instanzen Sinn, bei denen
der Schritt Ware versenden" noch nicht ausgeführt worden
ist.
|
|
Den oben beschriebenen Sachverhalt (Propagation von Schemaänderungen
bezeichnet man in der Literatur auch als dynamischen Fall [3].
Grundlegende Herausforderungen sind hier, zu jedem Zeitpunkt Korrektheit
und Konsistenz zu gewährleisten und die Migrationen -besonders bei
einer großen Anzahl von Workflow-Instanzen - automatisch und effizient
durchzuführen [6]. Betrachtet man dagegen
nur die erforderlichen Strukturtransformationen ohne Berücksichtigung
des Zustands, spricht man vom statischen Fall.
In der Forschung befasst man sich schon seit einiger Zeit mit Workflow-Systemen,
die es erlauben, im Einzelfall ad hoc vom geplanten Ablauf abzuweichen
[2, 4, 5].
Nur mit einer Funktionalität dieser Art werden Workflow-Management-Systeme
wirklich breit einsetzbar werden. Die große Herausforderung besteht
darin, eine Schemaevolution der oben beschriebenen Art zukünftig
auch auf Instanzen anwendbar zu machen, deren Instanz"-Schema
durch Ad-hoc-Änderungen inzwischen vom Originalschema des Workflow-Typs
abweicht. Die spannende Frage hier ist, welche Propagationen man noch
zulassen soll und welche nicht mehr.
Wenn eine Ad-hoc-Änderung die Schemaänderung beispielsweise
bereits vorweggenommen hat, dann sollte die Schemaänderung natürlich
nicht mehr auf diese Instanz angewendet werden. Betreffen Schemaänderung
und Ad-hoc-Änderung dagegen unterschiedliche Bereiche einer Workflow-Instanz,
sollte eine Propagation sehr wohl - wenn sonst nichts dagegen spricht
- erfolgen können.
Fazit
Zusammenfassend kann gesagt werden, dass Schemaevolution in Workflow-Management-Systemen
aufgrund des dynamischen Charakters von Prozessen neuartige und interessante
Fragestellungen aufwirft. Diese zu lösen, wird für zukünftige
prozessorientierte Informationssysteme essenziell sein, damit die realisierten
Anwendungen rasch und kostengünstig an neue Gegebenheiten angepasst
werden können.
Artikelanfang Seitenanfang
|
|
Literatur
- van der Aalst, W. M.P., Basten, T.: Inheritance
of workflows: an approach to tackling problems related to change. Theoretical
Computer Science, 2002
- van der Aalst, W. M.P., Jablonski, S.: Dealing
with workflow change: Identification of issues and solutions. Int. J.
Computer Syst., Science and Engineering 15(5), 267–276 (2000)
- Casati, F., Ceri, S., Pernici, B., Pozzi, G.:
Workflow evolution. Data and Knowledge Engineering 24(3), 211–238 (1998)
- Müller, R., Rahm, E.: Dealing with logical
failures for collaborating workflows. Proc. Int. 5th Conf. on Coop.
Inf. Syst., Eilat, 2000, pp. 210–223
- Reichert, M., Dadam, P.: ADEPT flex – Supporting
dynamic changes of workflows with-out losing control. J. Intelligent
Inf. Syst. 10(2), 93–129 (1998)
- Rinderle, S., Reichert, M., Dadam, P.: Effiziente
Verträglichkeitsprüfung und automati-sche Migration von Workflow-Instanzen
bei der Evolution von Workflow-Schemata. Informatik – Forschung und
Entwicklung 17(4), 177–197 (2002)
- Sadiq S., Marjanovic O., Orlowska M.: Managing
change and time in dynamic workflow processes. The Int. Journal of Coop.
Inf. Syst. 9(1, 2) (2000)
Artikelanfang Seitenanfang
|
|
Autor & Copyright
Stefanie Rinderle rinderle@informatik.uni-ulm.de
Peter Dadam dadam@informatik.uni-ulm.de
Abt. Datenbanken und Informationssysteme,
Universität Ulm
© 2003 Informatik Spektrum, Springer-Verlag Berlin Heidelberg
Artikelanfang Seitenanfang
|
Security Patterns
Kurzinfo Obwohl
Sicherheit heute eine obligatorische Eigenschaft moderner, verteilter
Anwendungen sein sollte, können wir beobachten, dass wir von einem adäquaten
Sicherheitsniveau weit entfernt sind: Die gleichen Fehler treten immer
wieder auf, wie beispielsweise Buffer Overflows in Anwendungen
oder Standardpasswörter in IT-Systemen.
|
Erläuterung
Während Kodierungsfehler grundsätzlich automatisch erkannt
werden können, ist es eher schwierig, Sicherheit auf der Entwurfsebene
- richtig - zu machen. Gründe dafür sind u.a. in dem menschlichen
Verhalten beim Problemlösen zu suchen [2].
So werden Probleme oftmals ad hoc gelöst, ohne dass Nebenwirkungen
berücksichtigt werden. Problematisch ist auch die Einstellung, Fehler
bewusst in Kauf zu nehmen und erst zu beheben, wenn sie (oft zufällig)
entdeckt werden. Wir glauben daher, dass nur erfahrene Experten Sicherheitsanforderungen
analysieren, zuverlässig Sicherheitslücken aufdecken und IT-Systeme
mit - guter - Sicherheit entwerfen und betreiben können [5].
Patterns, die bisher hauptsächlich beim objektorientierten Softwareentwurf
eingesetzt wurden, stellen eine Möglichkeit dar, dieses Problem zu
lösen. Sie sind ein Konzept, um immer wieder auftretende Probleme
sowie bewährte Lösungen schriftlich zu dokumentieren. In strukturierter
Form wird festgehalten, in welchem Kontext das Problem auftritt,
welche Anforderungen (engl. forces) zu beachten sind und welche
Lösungen sich dafür anbieten.
Da Patterns von Experten geschrieben und diskutiert werden, können
Laien von deren Wissen und Expertise profitieren. Daher bietet es sich
an, diesen Ansatz systematisch auf den Problembereich Sicherheit zu übertragen
und bestehende Werkzeuge und Prozesse auf diese Weise sinnvoll zu ergänzen.
Grundlagen von Security Patterns
Security Patterns weisen eine Struktur auf, die mit herkömmlichen
(Design) Patterns vergleichbar sind. Die Bedeutung der Elemente im Hinblick
auf den Sicherheitsaspekt wird im Folgenden kurz vorgestellt.
Kontext Der Kontext eines Security Patterns kann mit einem Beispielszenario
illustriert werden. Mit Hilfe einer Aufzählung der Annahmen können
Aspekte der Umgebung, in der das IT-System benutzt werden soll, beschrieben
werden. Oftmals müssen IT-Systeme bestimmten Sicherheitsvorgaben
entsprechen. Eine optionale Beschreibung solcher Aussagen erleichtert
daher die eindeutige Bestimmung der Schutzziele.
Problem Der Kern von Sicherheitsproblemen bilden Bedrohungen,
da ein IT-System grundsätzlich nur dann als sicher gelten kann, wenn
Maßnahmen gegen alle bekannten Bedrohungen getroffen werden. Optional
können ebenfalls Schutzziele, die ein komplementärer Begriff
zu den Bedrohungen sind, formuliert werden. Nur wenn ein bestimmtes Schutzziel
gilt, wird eine Bedrohung auch als Gefahr betrachtet.
Anforderungen Verschiedene Anforderungen beeinflussen unmittelbar
die Lösung. Dazu gehören Sicherheitsanforderungen sowie andere
Anforderungen, die durch die Forderung nach Sicherheit beeinflusst werden,
wie z.B. Benutzbarkeit oder Performanz.
Lösung Entsprechend der Anforderungen werden Maßnahmen
aufgeführt, die das Problem im jeweiligen Kontext lösen, d.h.
die Risiken auf ein Minimum reduzieren. Dabei sollte es mindestens eine
Maßnahme für jede Bedrohung bzw. jeden Angriff geben. An dieser
Stelle bietet es sich auch an, Vor- und Nachteile der Anwendung eines
Security Patterns zu diskutieren.
Verwandte Patterns Da Maßnahmen einerseits den Kontext ändern
und andererseits zu neuen Problemen führen können, sind in diesem
Fall Abhängigkeiten zu weiteren Security Patterns anzugeben. Da Patterns
bewährte Sicherheitslösungen beschreiben, werden sie nicht erfunden,
sondern gefunden. Sicherheitsstandards wie etwa der British Standard 7799
oder das IT-Grundschutzhandbuch sind daher wertvolle Orientierungshilfen
bei der Dokumentation von Security Patterns. Weitere Ressourcen sind Informationsquellen
wie z.B. einschlägige Web-Seiten und Mailing-Listen sowie relevante
Artikel oder Bücher. Interne Informationsquellen sind die Mitarbeiter
eines Unternehmens, die am besten wissen, - wie es schon immer gemacht
worden ist - und dies auch begründen können.
Security Patterns können - im Gegensatz zu den meisten objektorientierten
Design Patterns - in verschiedenen Phasen des Lebenszyklus eines IT-Systems
angewendet werden. So gibt es neben Security Patterns, die Lösungen
für sicherheitsrelevante Programmierprobleme beschreiben (z.B. Zugriffskontrolle
auf Objektebene), auch Security Patterns, die als Lösung Konfigurationen
oder Betriebskonzepte vorhandener IT-Systeme oder Anwendungen beschreiben.
Beispiel: Handhabung von Cookies
Kontext Serveranwendungen verwenden Cookies, um Informationen
über Klienten abzuspeichern und abzufragen. Ein Server verwendet
den HTTP-Header, um ein Cookie dauerhaft bei dem Klienten zu platzieren
und so Informationen wie beispielsweise eine eindeutige Benutzerkennung
zu hinterlegen. Fragt der Klient eine weitere Seite von dem Server an,
wird das Cookie automatisch mit der HTTP-Anfrage versendet.
Problem Zum Schutz der Benutzer wurde vereinbart, dass ein Cookie
nur von dem Server gelesen werden kann, der es erzeugt hat. Weiterhin
dürfen nur Informationen, die entweder vom Klient oder vom Server
erzeugt worden sind, ausgetauscht werden. Diese Konventionen genügen
jedoch nicht, um die Privatsphäre des Anwenders zu schützen.
Folgende Bedrohungen können identifiziert werden:
- Dienstanbieter können die Aktivitäten eines Benutzers verfolgen
und somit Profile erstellen.
- Benutzerdaten von verschiedenen Anbietern können zusammengeführt
werden. Dies geschieht z.B. bei weltweit operierenden Werbungsfirmen
wie AdDoubleclick.
- Mit Hilfe von HTML-basierten E-Mail-Nachrichten können Cookies
ohne Wissen des Benutzers personalisiert werden.
Anforderungen Folgende Anforderungen müssen berücksichtigt
werden:
- Anonymität: Dienstanbietern und andere Benutzern soll es nicht
möglich sein, die Identität eines Benutzers aus einer HTTP-Anfrage
abzuleiten. Ein Dienst darf weiterhin nicht den richtigen Benutzernamen
offen legen.
- Unverknüpfbarkeit: Ein Benutzer sollte mehrere HTTP-Anfragen
stellen können, ohne dass diese miteinander in Verbindung gebracht
werden.
- Benutzbarkeit: Viele Angebote sind nicht benutzbar, wenn Cookies nicht
akzeptiert werden. Außerdem möchten Benutzer oft keine zusätzliche
Software kaufen und installieren bzw. Änderungen in der Konfiguration
vornehmen.
Lösung Die Verwendung von Cookies muss aufseiten des Benutzers
eingeschränkt werden. Nahezu alle Web-Browser erlauben es, Cookies
von Fall zu Fall zu aktivieren. Der Benutzer muss dann immer entscheiden,
ob er einem Anbieter vertraut oder nicht. Cookies können auch periodisch
gelöscht werden, so dass die Erstellung von Profilen nicht mehr möglich
ist. Diese Variante wird z.B. von Programmen wie Opera oder Junkbuster
unterstützt. Maximaler Schutz ergibt sich, wenn Cookies grundsätzlich
deaktiviert werden.
Der Schutz der Privatsphäre ist immer mit Kompromissen verbunden.
Je stärker die Verwendung von Cookies eingeschränkt wird, desto
stärker wird die Benutzbarkeit eines auf Cookies basierenden WWW-Angebotes
beeinträchtigt.
Beispiel: Patternsystem für sichere Anwendungen
Security Patterns existieren nicht isoliert voneinander. Mehrere zusammenhängende
Security Patterns, die gemeinsam ein größeres Problem lösen, werden auch
als Security-Pattern-System bezeichnet. Die Patterns des Security-Pattern-Systems
von Yoder und Barcalow [6], bei denen es um Sicherheit
in Anwendungen geht, werden im Folgenden kurz einzeln vorgestellt (s.
auch Abb. 1).
|
Abb. 1. Abhängigkeiten zwischen Patterns im Security-Pattern-System.
|
Einzelner Zugangsweg Es ist schwierig, ein Anwendung abzusichern,
die prinzipiell beliebig viele Zugangspunkte hat. Als Lösung hat
sich daher die Beschränkung auf einen einzelnen Zugangsweg bewährt.
Prüfstelle Verschiedene Anwender haben unterschiedliche
Sicherheitsanforderungen. Nun tritt das Problem auf, wie diese unabhängig
von dem Entwurf der Anwendung realisiert werden können. Als Lösung
wird die Kapselung eines entsprechenden Verfahrens, das die Sicherheitsanforderungen
eines Unternehmens umsetzt, vorgeschlagen.
Rollen Die Verwaltung von Benutzern, die jeweils unterschiedliche
Rechte haben, ist ab einer gewissen Menge nicht mehr handhabbar. Mit Hilfe
von Rollen wird daher eine Gruppierung von Benutzern mit vergleichbaren
Rechten vorgenommen.
Sitzungen Verschiedene Module einer Anwendung benötigen
Zugriff auf sicherheitsrelevante Informationen, wie z.B. die Benutzeridentität.
Es hat sich bewährt, solche Informationen global mit Hilfe eines
Sitzungskonzeptes zu kapseln und abhängig von den Rechten eines Benutzers
lokal zugreifbar zu machen.
Volle Ansicht mit Fehlermeldungen Benutzer dürfen Operationen
nur dann aufrufen, wenn sie die entsprechenden Rechte besitzen. Abhängig
von diesen Rechten können daher Fehlermeldungen angezeigt werden,
sobald versucht wird, - illegale - Operationen aufzurufen.
Limitierte Ansicht Eine alternative Lösung ist es, dem Benutzer
entsprechend seiner Rechte lediglich die Operationen anzubieten, die er
durchführen darf.
Sichere Zugangsschicht Anwendungen können nur so sicher
sein wie ihre Umgebung. Auf Basis von externen Sicherheitsmechanismen
- etwa auf Ebene von Betriebssystem, Netzwerk oder Datenbanken - sollte
daher eine sichere Zugangsschicht aufgebaut werden, um die Nachrichten
von und zu der Anwendung zu schützen.
Ein Vorteil eines solchen Pattern-Systems ist beispielsweise, dass aus
der Anwendung eines Patterns umgehend ersichtlich ist, welche weiteren
Patterns noch berücksichtigt werden müssen. Ein anderer Vorteil
ist, dass erkannt werden kann, welche Auswirkungen ein Fehler in der Implementierung
eines Security Patterns haben kann.
Diskussion
Bei den vorangegangenen Beispielen wird dem Leser zunächst verdeutlicht,
welche Probleme überhaupt auftreten können. Es wird auch gezeigt,
welche Auswirkungen die unterschiedlichen Lösungsvarianten haben.
Solche Security Patterns sind ein Hilfsmittel, um Sicherheitsprobleme
effizient identifizieren, benennen und diskutieren zu können.
Selbst Laien sollte es so grundsätzlich möglich sein, Probleme
strukturiert zu lösen sowie entsprechende Abhängigkeiten und
Konsequenzen zu berücksichtigen.
Dem Thema Security Patterns wird von Forschern und Praktikern ein zunehmendes
Interesse entgegengebracht (siehe z.B. [3]). Seit
dem ersten Beitrag zum Thema Security Patterns im Jahr 1997 wurden immer
wieder Publikationen zu dem Thema veröffentlicht. Heute ist eine
ganze Reihe von einzelnen Security Patterns und Pattern-Systemen bekannt
(siehe z.B. [1] und [4]).
Dennoch bleiben einige Fragen offen, insbesondere um die Verwaltung und
Anwendung von Security Patterns verbessern zu können:
- Welche weiteren Eigenschaften zeichnen ein Security Pattern aus? Wo
sind die Unterschiede zu herkömmlichen Entwurfsmustern?
- Welche Attribute können zur Klassifizierung von Security Patterns
herangezogen werden?
- Um die Integration einzelner Security Patterns zu einem umfangreichen
Katalog zu erleichtern, muss die Diskussion über eine einheitliche
Struktur fortgeführt werden.
- Es müssen viele weitere Security Patterns identifiziert und dokumentiert
werden.
Wenn es einmal eine hinreichend große Menge von Security Patterns
gibt, könnte sich solch ein Katalog von Problemen und bewährten
Lösungen als nützliches Hilfsmittel erweisen, um die Lücke
zwischen theoretischen Sicherheitskonzepten und dem Tagesgeschäft
in Unternehmen zu schließen.
Artikelanfang Seitenanfang
|
|
Literatur
- Security Patterns Community: Security Patterns
Homepage.
http://www.security-patterns.de
(2002)
- Dörner, D.: Die Logistik des Mißlinges – Stragtegisches
Denken in komplexen Situa-tion. Reinbek: Rowohlt Tachenbuch Verlag 1999
- Fernandez, E. B.: Patterns for Secure System
Design.
http://www.cse.fau.edu/~ed/SecPatterns.pdf
(2001)
- The Open Group: Guide to Security Patterns.
http://www.opengroup.org/secu-rity/gsp.htm
(2002)
- Schumacher, M., Rödig, U.: Security Engineering
with Patterns. 8th Conference on Pat-tern Language of Programs (PLoP),
Monticello/IL, 2001
- Yoder, J., Barcalow, J.: Architectural Patterns
for Enabling Application Security. 4th Conference on Patterns Languages
of Programs (PLoP), Monticello/IL, 1997
Hinweis: Die URLs entsprechen dem Stand bei der Veröffentlichung
des Artikels und werden nicht aktualisiert.
Artikelanfang Seitenanfang |
|
Autor & Copyright
Markus Schumacher
Technische Universität Darmstadt
Fachbereich Informatik (ITO)
ms@ito.tu-darmstadt.de
© 2002 Informatik Spektrum, Springer-Verlag Berlin Heidelberg
Artikelanfang Seitenanfang |
Semistrukturierte Daten
Kurzinfo Wie
die meisten Forschungsgebiete der Informatik wurde die Datenbankforschung
zuerst vorwiegend vom Paradigma einer zentralen Verwaltung geprägt.
|
Erläuterung
Diese Sicht wurde zunehmend in Frage gestellt. Der Ansatz der semistrukturierten
Daten seit Mitte der 90 er Jahre ist ein weiterer Schritt in diese Richtung.
Ausgangspunkt war die Verwaltung von Inhalten im dezentralen WWW und die
Datenmodellierungssprache XML [8]. In den Ansatz
semistrukturierte Daten" führt das Buch von Abiteboul
et al. [5] ein.
Ein traditionelles Datenbanksystem setzt voraus, dass die gespeicherten
Daten gemäß einem im Voraus festgelegten Datenschema strukturiert
sind. Schemata erleichtern die Datenspeicherung und dienen der Anfrageauswertung.
Im dezentral verwalteten WWW sind Schemata oft zu restriktiv. In vielen
Bereichen wie in der Bioinformatik werden Daten in heterogenen Formaten
zwischen Datenbanken oder sonstigen Anwendungen ausgetauscht, denen kein
einheitliches Schema zugrunde liegt, weswegen solche Daten zunächst
unstrukturiert", danach semistrukturiert" genannt
wurden [4].
Oft haben zudem die Daten eine Struktur, die mit den flachen Tupeln
des relationalen Datenmodells nur unzutreffend wiedergegeben werden kann.
Auch das Objektmodell ist oft ungeeignet: Zwar kann man damit auch tiefe"
Strukturen repräsentieren, allerdings keine unregelmäßige
Strukturen mit fehlenden oder wiederholten Komponenten. Fehlt das Schema,
so muss zudem die Bedeutung der Struktur in den Datensätzen selbst
wiedergegeben werden. Man spricht von strukturtragenden" oder
von selbsterklärenden" Daten.
Ausgangspunkt XML
Die Datenmodellierungssprache XML [8] eignet
sich für die oben genannten Fälle: Mit XML können beliebig
komplexe Datensätze spezifiziert werden; XML lässt Ausnahmen
zu (in XML können alternative Strukturen spezifiziert werden und
die spezifizierte Struktur darf sogar missachtet werden); XML-Datensätze,
im XML-Jargon Dokumente genannt, sind strukturtragend.
Zum Beispiel kann eine Adresskartei wie folgt in XML spezifiziert werden:
< Adresskartei >
< Adresse >
< Name > Bartl Bastscho < /Name
>
< Einrichtung > Universität
München
< /Einrichtung >
< EMail > bartl@bastscho.net <
/EMail >
< /Adresse >
< Adresse >
< Name > Susi Schlau < /Name
>
< Einrichtung > Universität
München
< /Einrichtung >
< Abteilung > Fakultät für
Mathematik und
Informatik < /Abteilung
>
< Kontakt >
< EMail > susi@bastscho.net
< /EMail >
< Url > http://www.bastscho.
net/freunde/susi
< /Url
>
< /Kontakt >
< /Adresse
>
< /Adresskartei >
Der zweite Datensatz hat eine reichere Struktur als der erste; in den
beiden Datensätzen befindet sich die E-Mail-Adresse nicht auf derselben
Tiefe.
In einer Anfrage an eine solche Adresskartei sollen nicht nur die Texte,
Zahlen oder sonstige Daten ermittelt werden, die als Inhalte der innersten
Elemente vorkommen, sondern auch die Elementnamen, wie Name",
Einrichtung" oder Kontakt". Schema- und Objektdaten
sollen also in Anfragen nicht wie in traditionellen Anfragesprachen wie
SQL unterschiedlich behandelt werden.
Wird in einer solchen Adresskartei nach einer E-Mail-Adresse für
eine bestimmte Person gesucht, dann kann der Elementname EMail"
(oder irgendein Synonym dieses Elementnamens, welches eine sog. Ontologie
liefern könnte) an beliebiger Tiefe gesucht werden. Eine Anfragesprache
muss also über Sprachkonstrukte verfügen, die es ermöglichen,
eine unbekannte Struktur oder eine unbestimmte Tiefe auszudrücken.
Datenmodelle für semistrukturierte Daten
Für semistrukturierte Daten wurden einige Modelle vorgeschlagen,
die nur unwesentlich voneinander abweichen.
Im Object Exchange Model [5], kurz OEM, werden
Datensätze Objekte genannt. Wie Objekte von Objektdatenbanken kann
(muss aber nicht) ein OEM-Objekt eine sog. Objektidentität besitzen,
so dass zwei OEM-Objekte, die denselben Wert haben, unterschiedlich sein
können. Der Wert eines atomaren OEM-Objekts hat einen Typ wie etwa
integer", string" oder image". Ein zusammengesetztes
OEM-Objekt besteht aus Attributen, die Werte besitzen, die wiederum OEM-Objekte
sind. Die Attribute eines zusammengesetzten OEM-Objekts bilden entweder
eine Menge oder eine Sequenz. OEM bietet eine weitreichende Typanpassung,
um Unregelmäßigkeiten Rechnung zu tragen.
Ein OEM-Objekt kann als ein gerichteter Multigraph angesehen werden,
dessen Knoten eindeutige Objektbezeichner sind und dessen Kanten die Attribute
darstellen. Ein OEM-Objekt besitzt eine Wurzel, d.h. einen ausgezeichneten
Knoten, von dem aus alle Knoten des OEM-Objektes erreichbar sind.
Der erste Adresskarteieintrag kann also wie folgt dargestellt werden,
wobei & n" Objektbezeichner sind:
|
|
Die Kanten stellen sowohl die Beziehung eines Elements zu einem Kindelement
als auch etwaige Verweise wie (Hypertext- oder Nichthypertext-) Links
dar. Ein OEM-Objekt entspricht nicht notwendigerweise einem Baum, d.h.,
OEM lässt zyklische Objekte zu. OEM-Objekte können HTML-Links
oder einfache XML-Links darstellen, jedoch nicht die erweiterten XML-Links
von XLink [8].
Das Datenmodell, das der Anfragesprache UnQL [5]
zugrunde liegt, ist OEM ähnlich. Er ist aber wertbasiert",
d.h., dass es keine Objektidentität kennt. Mit diesem Datenmodell
ist die Verwendung der Bisimulation" für semistrukturierte
Daten eingeführt worden [5], die sich für
die Anfrageauswertung als wichtig erwiesen hat. Eine Simulation eines
Multigraphen G1 in einen Multigraphen G2 ist eine binäre Relation
S zwischen den Knoten von G1 und G2 , die die Kanten von G1 auf Kanten
von G2 abbildet. Eine Simulation S von G1 in G2 ist eine Bisimulation,
falls S 1 eine Simulation von G2 in G1 ist. Für UnQL sind zwei
semistrukturierte Objekte identisch, wenn sie bisimilar sind.
Das Datenmodell YAT [5] bietet neben ähnlichen
Merkmalen wie OEM und dem Datenmodell der Anfragesprache UnQL die Modellinstanziierung".
Damit können unter gewissen Umständen die Typen einer Datenmodellierung
den Typen einer anderen Datenmodellierung angepasst werden. So können
unterschiedliche Modellierungen von Anwendungen verglichen und Ergebnisse
von Anfragen strukturiert werden.
Vergleich mit den relationalen und Objektmodellen
Eine Relation oder Tabelle kann als ein semistrukturiertes Objekt dargestellt
werden, dessen Attribute die Tupel sind. Ein Tupel kann ebenfalls als
ein semistrukturiertes Objekt dargestellt werden, dessen Attribute die
Attributswerte des Tupels sind.
Diese Darstellung einer Relation ist ziemlich natürlich. Sie ist
aber auch etwas trügerisch. Zum einen kann eine Relation auf viele
andere Weisen als semistrukturiertes Objekt dargestellt werden. Zum anderen
kann bei einer solchen Repräsentation ein Teil der Semantik verloren
gehen, weil im Gegensatz zu einer relationalen Anfragesprache wie SQL
die Anfragesprachen für semistrukturierte Daten alle Knoten gleich
behandeln. So muss der Benutzer einer Anfragesprache für semistrukturierte
Daten die Bedeutung der Verknüpfungen beachten.
Ein Datenmodell für semistrukturierte Daten kann als Vereinfachung
eines Objektmodells angesehen werden, weil es in der Regel weder Klassen
noch Vererbung anbietet. Der Verzicht auf Klassen und Vererbung ist jedoch
fraglich. Die Modellinstanziierung von YAT [5]
entspricht der Vererbung.
Schemaextraktion
Traditionell stützen sich Anfrageauswertung und -optimierung auf
Schemata. Um Anfragen über semistrukturierten Daten auszuwerten,
bietet es sich also an, zuerst aus den vorhandenen Daten ein Schema zu
extrahieren.
Viele WWW-Informationsserver liefern HTML-Seiten, die dynamisch aus
einer Datenbank erzeugt werden. Es sind Methoden entwickelt worden, um
aus solchen Seiten ein Schema zu erkennen, das evtl. nicht identisch mit
dem Datenbankschema ist. Man spricht von web site wrapping"
und von Schemaextraktion". Das extrahierte Schema wird manchmal
data guide" genannt. Eine Schemaextraktion ist eine Art Klassifikation
von vorhandenen Datensätzen nach ihren Strukturen. Die meisten Methoden
sind halbautomatisch und interaktiv und stützen sich auf Heuristiken.
Von Nestorov et al. [6] wird ein auf Deduktion
und Datalog beruhender Ansatz zur Schemaextraktion dargestellt, der zulässt,
dass derselbe Datensatz mehreren Klassen zugeordnet wird und Approximationsschemata,
denen nicht alle Datensätze entsprechen, liefert. Eine Metrik wird
vorgeschlagen, womit die Qualität eines Approximationsschemas gemessen
werden kann.
Anfragesprachen
Eine Anfragesprache ist wünschenswert zur Erstellung von dynamischen
WWW-Seiten, die Inhalte teilen statt kopieren, um Sichten (views")
zu erzeugen und um die Suche nach Inhalten zu erleichtern. Wünschenswerte
Eigenschaften von Anfragesprachen für semistrukturierte Daten wurden
von Maier [7] ausgearbeitet.
Viele Anfragesprachen für semistrukturierte Daten oder für
das WWW" sind entwickelt worden u.a. Lorel [5]
und XQuery [8]. Einige sind von SQL und OQL inspiriert,
andere sind im Zusammenhang mit XML entstanden. Vergleiche bieten Bonifati
[1, 2] und Fernandez et
al. [3] an.
Die meisten Anfragesprachen verwenden Variablen, um Knoten einige
sowohl für Elementinhalte als auch für Elementnamen zu
bezeichnen. Reguläre Ausdrücke werden von vielen Anfragesprachen
verwendet, um die Navigation im befragten Datensatz auszudrücken.
Mit dem Sternoperator kann z.B. ein Element an beliebiger Tiefe gefunden
werden, mit dem Optionsoperator können Unregelmäßigkeiten
der Datensatzstruktur berücksichtigt werden. Mit einer Wildcard"
kann eine Navigation entlang von unvollständig spezifizierten Pfaden
definiert werden.
Zum Beispiel können im Stil von XML-QL wie folgt E-Mail-Adressen
an beliebiger Tiefe (ausgedrückt durch die Wildcard $ gefolgt vom
Sternoperator) gefunden werden, wobei $name und $email Variablen sind:
where < $* >
< Nachname > $name < /Nachname >
< EMail > $email < /EMail >
< />
in www.yellowpages.net/ adresses.xml"
construct < Antwort >
< Person >
< Name >
$name < /Name >
< Mail >
$email < /Mail >
< /Person >
< /Antwort >
Die meisten Anfragesprachen ermöglichen, die Antwort beliebig zu
strukturieren.
Einige Prototypen von Systemen zur Verwaltung von Websites",
d.h. zur Verwaltung von Inhalten, sind entwickelt worden, womit die ersten
Anfragesprachen für semistrukturierte Daten entwickelt und getestet
worden sind.
Artikelanfang Seitenanfang
|
|
Literatur
- Bonifati, A., Ceri, S.: Comparative Analysis
of Five XML Query Languages. Proc. ACM SIGMOD, Int. Conf. on Management
of Data (2000)
- Bonifati, A., Lee, D.: Technical Survey of
XML Schema and Query Languages. Proc. Int. Conf. on Very Large Databases
(2001)
- Fernandez, M., et al.: XML Query Languages:
Experiences and Exemplars. http://
cm.bell-labs.com/cm/cs/who/wadler/topics/xml.html
- Buneman, P., et al.: Programming Constructs
for Unstructered Data. Proc. Int. Workshop on Database Programming Languages
(DBPL) (1995)
- Abiteboul, S., et al.: Data on the Web – From
Relations to Semistructured Data and XML. Hove: Morgan Kaufmann 2000
- Nestorov, S., et al.: Extracting Schema from
Semistructured Data. Proc. ACM SIGMOD, Int. Conf. on Management of Data
(1998)
- Maier, D.: Database Desiderata for an XML Query
Language. Query Languages Workshop (1998);
www.w3.org/TandS/QL/QL98/pp/maier.html
- XML und XML-bezogene Formalismen: http://www.w3.org
Artikelanfang Seitenanfang
|
Softwarevisualisierung
|
Kurzinfo Die
erste internationale Konferenz zum Thema Softwarevisualierung fand diesen
Sommer im kalifornischen San Diego statt (für Details zu ACM SOFTVIS 2003
siehe http://www.softvis.org).
Grund genug einmal zu betrachten, worum es in diesem zunehmend an Bedeutung
gewinnenden neuen alten Forschungsgebiet geht.
|
Erläuterung
Softwarevisualisierung entwickelt und untersucht Methoden und Einsatz
von computergrafischen Darstellungen unterschiedlicher Aspekte von Software
wie z.B.
- ihrer statischen Struktur,
- ihrer konkreten oder abstrakten Ausführung,
- ihrer Evolution.
Im Gegensatz zur visuellen Programmierung und Diagrammtechniken zum
Softwareentwurf liegt dabei die Zielsetzung nicht in der Konstruktion,
sondern in der Analyse von Programmen und deren Entstehungsprozess.
Die Softwarevisualisierung kombiniert Techniken aus den Gebieten Softwaretechnik,
Programmiersprachen, Data Mining, Computergrafik, Informationsvisualisierung
und Mensch-Maschine-Kommunikation.
Visualisierung heißt Daten bzw. Information sichtbar zu
machen. Schon Aristoteles sagte 350 v. Chr., dass Denken ohne Bilder
unmöglich sei", Emanuel Kant meinte 1781:
Der Verstand vermag nichts anzuschauen und die Sinne nichts zu
denken. Nur daraus, dass sie sich vereinigen, kann Erkenntnis entspringen."
Und René Descartes stellte 1637 fest:
Imagination oder Visualisierung und besonders die Benutzung
von Diagrammen haben einen entscheidenden Anteil an der wissenschaftlichen
Forschung."
In der heutigen Zeit bedient man sich gerne des Mediums Computer, um
abstrakte Zusammenhänge bildlich darzustellen. Für Frederick
Brooks gehört Visualisierung zu den Schlüsseltechnologien, die
Intelligence Amplification "ermöglichen. Der Computer
soll dem Menschen also nicht das Denken abnehmen, sondern menschliche
Intelligenzleistungen verstärken.
Visualisierungen werden im Maschinenbau, in der Chemie, Physik und Medizin
verstärkt eingesetzt. Informatiker haben anspruchsvolle Systeme entwickelt,
um für diese Disziplinen Visualisierungen zu erzeugen. Erstaunlicherweise
machen Informatiker aber nur wenig Gebrauch von Visualisierungswerkzeugen,
wenn es um Entwurf, Implementierung oder Wartung von Software geht.
Theoretiker schätzen häufig Visualisierung gering, dabei stammt
das Wort Theorie " vom griechischen Verb theorein ,also
schauen ".Die frühen Pythagoräer stützten ihre
Theoreme nicht auf Beweise, sondern die Anschauung. Und die Praktiker,
insbesondere die Programmierer, scheinen sich dem Darstellungsniveau des
Computers anzupassen, anstatt dieses ihrer eigenen Wahrnehmung.
Dennoch ist die Begriffswelt der Informatik voller Metaphern. So reden
wir beispielsweise von Maschinen, Automaten, Bändern, Knoten und
Kanten, Archiven, Ordnern oder Fenstern. Eine Turingmaschine z.B. ist
ein mathematisches Modell, das aus Mengen, Funktionen und Relationen besteht.
Die Analogie zu Maschinen lässt uns Aspekte aus der physikalischen
auf die mathematische Welt übertragen.
Das Ziel der Softwarevisualisierung besteht nicht darin, schöne, bunte
Grafiken zu erzeugen, sondern solche, die mentale Bilder auslösen und
so das Verstehen von Software erleichtern. (Allerdings sind die psychologischen
Indizien für die Existenz und das Wesen mentaler Bilder zugegebenermaßen
widersprüchlich.) Dazu müssen geeignete, visuelle Metaphern
gefunden werden. Solche Metaphern verbessern nicht nur die Visualisierung,
sondern auch die Art und Weise, wie wir über Softwaresysteme reden.
Beispiele
Im Folgenden wollen wir einen Einblick in die Forschungsgebiete der Softwarevisualisierung
anhand von Beispielen zu jedem der am Anfang genannten Aspekte von Software
geben.
|
Abb. 1 Programmstruktur mit Analyseergebnissen
Statische Struktur
Mit dem in Saarbrücken entwickelten aiCall (s. Abb.1) lassen sich
Kontrollflussgraphen von Programmen samt den zugehörigen Analyseergebnissen
grafisch darstellen und interaktiv durchmustern (Evstiougov-Babaev in
[2]).So kann der Entwickler sehen, wie viel Stackzellen
ein Programm an einem beistimmten Programmpunkt benötigt, um so Stack-Overflows
frühzeitig zu erkennen und zu beseitigen. Visualisierungen auf höherer
Ebene werden benutzt, um die Architektur von Softwaresystemen darzustellen.
Geons (geometric icons)zeigen ähnlich einem UML-Diagramm Abhängigkeiten
von Objekten [5].Diese werden als vereinfachte
symbolhafte dreidimensionale Objekte dargestellt. Insbesondere bei der
Aggregation werden die aggregierten Objekte zusätzlich verkleinert
innerhalb des aggregierenden Objekts dargestellt. Ziel ist die bessere
Strukturierung und die damit verbundene verbesserte Lesbarkeit des Diagramms,
was Zeit sparen und Fehler vermeiden helfen soll.
Der Aufwand des wiederholten Dekodierens der Zeichenfolgen von Bezeichnungen
entfällt also, die Objekte sind grafisch dargestellt und können
so schneller erfasst und wiedererkannt werden. Diese Vorteile werden auch
durch Studien belegt.
Konkrete und abstrakte Ausführung
Lange Zeit stand die Visualisierung und insbesondere Animation von Algorithmen
im Mittelpunkt der Softwarevisualisierung. Mit klassischen Algo-rithmenanimationssystemen
lassen sich beispielsweise Animationen von Suchgraphen, Listen, dem n-Damen-Problem,
Binpacking oder Sortieralgorithmen erstellen. Es ist möglich, gleichzeitig
mehrere Sichten auf den Zustand des Algorithmus zu benutzen, etwa ein
Balkendiagramm und einen Baum zur Darstellung der zu sortierenden Daten
bei HeapSort. Abbildung 2 zeigt einen Screenshot der Animation des HeapSort-Algorithmus,
die mit einem aktuelleren System namens GANIMAL erstellt wurde [3].
|
Abb. 2 Animation des HeapSort-Algorithmus
|
Neuere Arbeiten beschäftigen sich auch mit der visuellen Ausführung
von Algorithmen mit abstrakten Eingabedaten wie abstrakten Shapegraphen
oder Baumfragmenten (Wihlem et al.in [2].
Evolution von Software
SeeSoft ist ein Programm zur Quellcodeverwaltung. Es stellt die einzelnen
Zeilen einer Datei als Pixel in einer Box dar, die die dazugehörige
Datei repräsentiert. Man kann hereinzoomen, sodass eine Quellcodezeile
als eine Linie dargestellt wird bis hin zu der tatsächlichen Textzeile.
Die dargestellten Textzeilen können unterschiedlich eingefärbt
werden.
Man kann verschiedene Metriken mit dem Farbspektrum assoziieren, etwa
den Zeitpunkt der letzten Änderung einer Programmzeile. So kann man
direkt sehen, an welcher Stelle in einer Datei erst kürzlich gearbeitet
wurde (rot)und welche schon lange unverändert geblieben sind (blau),
s. Abb.3.
|
Abb. 3 Pixelmap zeigt letzte Änderungen in Dateien
|
SeeSoft kann nicht nur eine Vielzahl von Dateien gleichzeitig darstellen,
sondern mit Hilfe eines Schiebereglers kann der Betrachter zwischen Dateiversionen
wechseln und sozusagen eine Zeitreise durch die Entwicklungsgeschichte
des Systems machen. In Tarantula [6] wurde der
Ansatz erweitert, um Textzeilen hervorzuheben, die vermutlich fehlerhaft
sind. Hierzu werden dynamische Slices, d.h. Mengen von tatsächlich
ausgeführten Programmpunkten, von erfolgreichen und fehlerhaften
Testläufen analysiert.
Zunehmende Bedeutung der Softwarevisualisierung
Die zunehmende Bedeutung, die Softwarevisualisierung im Software-Engineering
und insbesondere im Reengineering spielt, wird durch zwei aktuelle Studien
belegt. Bassil und Keller [1] untersuchten in
einer Umfrage, was sich Entwickler in der Industrie von Softwarevisualisierung
versprechen oder wünschen. Als Vorteile wurden aufgezählt: Einsparung
von Zeit und Geld, besseres Verständnis der Software, Erhöhung
der Produktivität und Qualität, Management der Komplexität
sowie verbesserte Fehlersuche. Vor allem wünschten sich die Befragten
die Integration von SV-Werkzeugen in andere Werkzeuge (third party) und
besseren Import und Export von Daten und Visualisierungen. Laut Koschkes
Studie (in [2])glauben 40% der über 100 befragten
Forscher auf den Gebieten Software Maintenance, Reverse Engineering und
Reengineering, dass Softwarevisualisierung absolut notwendig ist, weitere
42% halten sie für wichtig, aber nicht kritisch.
Ausblick
Leider muss man feststellen, dass es nur wenige Forscher gibt, die konsequent
den Einsatz von Softwarevisualisierung in verschiedenen Bereichen untersuchen.
Erwähnenswerte Ausnahme ist hier insbesondere John Stasko vom Georgia
Institute of Technology. Viele wenden vorhandene Visualisierungstechniken
mal eben schnell an und sind dann häufig enttäuscht über
die erzielten Ergebnisse.
Die Erzeugung der grafischen Ausgabe ist nur der letzte Schritt in der
Visualisierungspipeline": Datenerfassung, Analyse und Visualisierung.
Im Bereich wissenschaftlicher Visualisierung (scientific visualization)
werden alle drei Phasen heftigst erforscht. In der Softwarevisualisierung
wurden Analysemethoden mit dem Ziel, die Visualisierung (semi-)automatisch
auf das Wesentliche zu fokussieren, bisher wenig untersucht, obwohl im
Bereich der Programmanalyse theoretisch fundierte und praktisch relevante
Theorien exisitieren. Erste Ergebnisse, diese für die Visualisierung
von Programmmen zu verwenden, entstanden erst in jüngster Zeit (Wilhelm
et al.in [2]).
Eine Studie (Diehl in [2]) über die veröffentlichten
Arbeiten zeigt, dass die Visualisierung der statischen Struktur und der
konkreten Ausführung von Programmen vielfach untersucht wurde, während
die Visualisierung der abstrakten Ausführung von Programmen oder
der Evolution von Programmen und Systemen fast vollkommen unerforscht
ist.
Zu den Herausforderungen der nächsten Jahre zählen der Aufbau
von umfassenden Web-Datenbanken mit fertigen oder konfigurierbaren Algorithmenanimationen
für die Lehre, die Entwicklung und Integration skalierbarer, visueller
Werkzeuge für Softwaretechnik und insbesondere Reengineering, die
Visualisierung der Evolution von Softwaresystemen sowie in allen Bereichen
die Entwicklung neuer grafischer Metaphern und die empirische Evaluation
existierender und neuer Verfahren.
Einen Überblick zum Thema Softwarevisualisierung" und
insbesondere zu Systemen zur Programm- und Algorithmenanimation geben
drei Sammelbände aus den Jahren 1996,1998 und 2002 [2,
4, 7]. Aktuelle Informationen
bieten zudem die Webpages http://www.softvis.org
und http://www.softwarevisualisierung.de.
Letztere enthält Links zu im Bereich Softwarevisualisierung aktiven
Forschungsgruppen in Deutschland.
Artikelanfang Seitenanfang
|
|
Literatur
- Bassil, S., Keller, R. K.: Software visualization
tools: survey and analysis. In: Proceedings of the Ninth International
Workshop on Program Comprehension (IWPC2001), Toronto, Ontario, Canada,
2001
- Diehl, S. (ed.): Software visualization. LNCS,
vol. 2269. Berlin Heidelberg New York: Springer 2002
- Diehl, S., Kerren, A.: Generierung interaktiver
Visualisierungen von Berechnungsmodellen. Informatik-Forschung und Entwicklung,
2001
- Eades, P., Zhang, K. (eds.): Software visualization.
Singapore: World Scientific Pub. 1996
- Irani, P. P., Ware, C., Tingley, M.: Using
perceptual syntax to enhance semantic content in diagrams. IEEE Computer
Graphics & Applications 21(5), 2001
- Jones, J. A., Harrold, M. J., Stasko, J.: Visualization
of test information to assist fault localization. In: Proceedings of
the 24th International Conference on Software Engineering ICSE02, Buenos
Aires, 2002
- Stasko, J. T., Domingue, J., Brown, M. H.,
Price, B. A.: Software visualization. Cambridge/ MA: MIT Press 1998
Hinweis: Die URLs entsprechen dem Stand bei der Veröffentlichung
des Artikels und werden nicht aktualisiert.
Artikelanfang Seitenanfang |
|
Autor & Copyright
Dr. S. Diehl
FR 6.2 Informatik,
Universität des Saarlandes,
Postfach 151150,
66041 Saarbrücken
diehl@cs.uni-sb.de
DOI 10.1007/s00287-003-0314-4
© 2003 Informatik Spektrum, Springer-Verlag Berlin Heidelberg
Artikelanfang Seitenanfang |
SQL2-Norm und SQL3-Projekt
|
Erläuterung
Im Markt für Datenbanken haben sich mittlerweile die relationalen
Systeme etabliert und gewinnen zunehmend an Bedeutung. Zur Datenabfrage
und -manipulation dient in den meisten relationalen Datenbanken die Structured
Query Language (SQL), die in der ISO-Norm 9075 (International Organization
for Standardization) spezifiziert ist.
Den bisherigen Fassungen der SQL-Norm, erschienen 1987 [1]
und 1989 [2], fehlten wichtige Features zur Unterstützung
relationaler Systeme, wie sie von Codd, dem Erfinder des Relationsmodells,
definiert wurden. Proprietäre Lösungen der Datenbankhersteller
füllten diese Lücken, was die Portabilität darauf beruhender
Datenbankanwendungen erheblich erschwert.
Im letzten Jahr wurde eine wesentlich erweiterte Fassung dieser Norm
von ISO veröffentlicht - ISO 9075: 1992 [3]
(einen detaillierten Überblick gibt [8]). An den
Entwicklungsarbeiten beteiligten sich u.a. Vertreter aus Deutschland,
Frankreich, Großbritannien und den USA. In dieser Revision, bekannt
unter der Bezeichnung SQL2", wurden viele Kritikpunkte berücksichtigt
(u.a. von Codd [4] und Date [5,
6, 7]). Wesentliche Fortschritte
wurden erzielt durch:
- umfangreiche Erweiterung der relationalen Ausdrucksmöglichkeiten,
u.a. durch Generalisierung und Orthogonalisierung existierender Operationen;
- neue Datentypen und -operationen, Domänenkonzept
- Internationalisierung und benutzerdefinerte Zeichensätze
- dynamisches SQL
- die Möglichkeit, Tabellenstrukturen im laufenden Betrieb zu ändern
- umfangreiche Diagnosemöglichkeiten
- Möglichkeit des Zugriffs auf entfernte Datenbanken.
Durch die Mächtigkeit von SQL2 sind Anwender relationaler Datenbanken
in Zukunft wesentlich unabhängiger von proprietären Datenbankschnittstellen
und damit von einer bestimmten Basissoftware. Der Portabilitätsgewinn
bringt außerdem Vorteile für Produkte, die Datenbanksysteme
als intelligenten Datenserver verwenden.
Die Arbeiten der SQL Access Group (veröffentlicht von X/Open [9,
10]), einer Vereinigung führender amerikanischer
Hersteller, zeigen, daß über SQL und den für 1993 erwarteten
RDA-Standard (Remote Database Access) Datenbankprodukte verschiedener
Hersteller gekoppelt werden können: Front-End-Anwendungen eines Herstellers
können unabhängig von den jeweiligen Hardware Plattformen auf
Back-End-Produkte anderer Hersteller zugreifen. Die Spezifikationen dieser
Gruppe, auf denen u.a. auch die ODBC-Spezifikationen (Open Database Connectivity)
von Microsoft basieren, wurden inzwischen bei ISO als Erweiterung von
SQL vorgeschlagen.
Bereits seit längerer Zeit wird bei ISO - parallel zu SQL2 - am
Projekt SQL3" gearbeitet. SQL3 soll weitgehend aufwärtskompatibel
zu SQL2 sein. Zur Zeit werden u.a. folgende Erweiterungen gegenüber
SQL2 diskutiert:
- Unterstützung komplexer Datenstrukturen, z.B. Stücklisten
- Sprachmittel für Datenbankprozeduren (Stored Procedures")
- ereignisgesteuerte Datenmanipulation (Trigger")
- objektorientierte Konzepte, z.B. abstrakte Datentypen
- Unterstützung verteilter Datenbanken.
Aus heutiger Sicht wird der gesamte im SQL3-Projekt diskutierte Sprachumfang
erst in einigen Jahren als Norm verabschiedet sein. Daher sind bei ISO
Bestrebungen im Gange, kleinere Nachtragspakete zu SQL2" (SQL2-Addenda)
zu schnüren, die relativ schnell verabschiedet werden können
- z.B. die o.a. Spezifikation der SQL Access Group sowie die Sprachmittel
für Definition und Aufruf von Datenbankprozeduren.
Artikelanfang Seitenanfang
|
|
Literatur
- ISO 9075: 1987, Database Language SQL, 1987
- ISO 9075: 1989, Database Language SQL with
Integrity Enhancement, 1989
- ISO 9075: 1992, Database Language SQL, 1992
- Codd E.F.: Fatal Flaws in SQL. Datamation.
Part 1 and 2, August/September 1988
- Date C.J.: A Critique of the SQL Database Language.
ACM SIGMOD Rec. 14, Number 3 (1984)
- Date C.J.: Some Principles of Good Language
Design. ACM Sigmod Rec. 14, Number 3 (1984)
- Date C.J.: Where SQL Falls Short. Datamation,
May 1987
- Shaw, P.: Database Language Standards: Past,
Present and Future, in: A. Blaser (ed.): Database Systems of the 90s,
Lecture Notes in Computer Science Vol.466, S.55-80. Berlin: Springer
1990
- X/Open C201, Structured Query Language (SQL),
X/Open CAE Specification, August 1992
- X/Open S203, SQL Call Level Inferface (CLI).
X/Open Snapshot, September 199
Artikelanfang Seitenanfang
|
|
Autor & Copyright
Reinhold Weber
Siemens Nixdorf Informationssysteme AG,
Datenbanksysteme
Otto-Hahn-Ring 6,
W-8000 München 83
© 1993 Informatik Spektrum, Springer-Verlag Berlin Heidelberg
Artikelanfang Seitenanfang
|
Erläuterung
Sozionik ist ein interdisziplinäres Forschungsfeld zwischen Soziologie
und Künstlicher Intelligenz (KI). Dabei geht es um die Frage, ob
und wie es möglich ist, kommunikations- und kooperationsfähige
Computerprogramme zu entwickeln, die sich am Vorbild der menschlichen
Gesellschaft orientieren. Ähnlich wie man sich in der Bionik biologische
Körperfunktionen zum Vorbild für technische Konstruktionen nimmt,
stellt man sich in der Sozionik die Aufgabe, soziale Abläufe und
Strukturen als Anregung für die Gestaltung verteilter Computersysteme
zu nutzen. Das paßt zum Zeitgeist", denn wir können
seit einigen Jahren einen tiefgreifenden Wandel im technologischen Leitbild
von Entwicklern und Anwendern beobachten: Es ist nicht mehr das elektronische
Gehirn" des einsamen Superrechners, sondern es ist die Vision
einer elektronischen Gesellschaft" weltweit vernetzter Rechnersysteme,die
einer neuen Generation von Computertechnologien ihren Stempel aufprägen
wird.
Auch wenn die Bezeichnung Sozionik" neu ist [4,
5], lassen sich ihre Ursprünge bis in die
70er Jahre zurückverfolgen. Damals formulierte Carl Hewitt am MIT
in seinem berühmten Aufsatz über message passing"
[2] das sogenannte Unentscheidbarkeitsproblem
der verteilten KI: Was geschieht, wenn zwei in sich geschlossene Mikrotheorien"
mit Bezug auf ein und dieselbe Aufgabe zu widersprüchlichen Lösungen
kommen,die beide gleichermaßen logisch sind? Dieser Widerspruch
ist logisch unentscheidbar und läßt sich wie im Zusammenleben
realer Menschen nicht durch Kalkül, sondern nur durch Verhandlung
auflösen. Dafür werden soziale Fähigkeiten benötigt.
Um eine gemeinsam getragenen Entscheidung zu erreichen,muß man miteinander
reden,abwägen,verhandeln und Kompromisse schließen. Das erklärt
auch, warum Verhandlung" [1] die erste
Sozialmetapher war, die in den Arbeiten der verteilten KI eine wichtige
Rolle spielen konnte. Seitdem haben weitere soziologische Konzepte wie
Rollenerwartung, pluralistische Gemeinschaft, Kommunikation, Macht und
Vertrauen in die Forschungsarbeiten der verteilten KI Eingang gefunden.
Heute spricht man sogar von Artificial Social Systems" oder
Artificial Societies" und meint damit Computerprogramme,die
sich die Robustheit, Anpassungsfähigkeit und Kreativität wirklicher
sozialer Systeme zu eigen machen.
Als noch junges interdisziplinäres Unternehmen von Informatikern
und Soziologen steht die Sozionik vor drei Aufgaben, wobei sie sich an
drei entsprechenden Referenzkriterien" bewähren muß:
(1) Anwendungsreferenz"
Die erste Aufgabe besteht darin, praktische Anwendungssysteme wie soziale
Agenten", intelligente Assistenten" oder Multiagentensysteme"
(MAS) auf den Markt zu bringen. Mit dem Siegeszug des Internet wird es
zu einem Nachfrageschub für sozionische Produkte kommen. Zu denken
ist beispielsweise an einen elektronischen Agenten", der sich
im Auftrag seiner Firma im Internet auf die Suche nach potentiellen Kooperationspartnern
für ein bestimmtes Projekt macht und durch Vorgespräche"
mit Agentensystemen anderer Firmen eine Vorauswahl trifft. Die endgültige
Entscheidung wird dann allerdings den menschlichen Unternehmern vorbehalten
bleiben. Der praktische Erfolg solcher Anwendungsprogramme hängt
in hohem Maße von der gelungenen soziotechnischen" Systemgestaltung
ab, und deshalb ist es unabdingbar, daß hier beide Disziplinen eng
zusammenarbeiten.
(2) Soziologiereferenz"
Die zweite Aufgabe heißt social simulation". Sie verfolgt
das Ziel, künstliche Sozialsysteme und soziologische Simulationsprogramme
zu entwickeln, um gesellschaftliche Phänomene wie das Problem der
sozialen Strukturbildung oder die Dynamik des sozialen Wandels besser
verstehen zu lernen. Diese Simulatoren müssen aber so gebaut sein,
daß sie soziologisch angemessen, also weder naiv noch überabstrakt
sind, und das geht nur, wenn die entsprechenden Forschungs- und Entwicklungsarbeiten
auf Augenhöhe" mit der soziologischen Theoriediskussion
vorangetrieben werden. Hier kommt der Informatik die Aufgabe zu, die entsprechenden
technologischen Ressourcen bereitzustellen.
(3) Informatikreferenz"
Die dritte Aufgabe ist, soziale Phänomene und soziologische Konzepte
technologisch zu exploitieren und sie in neuartige informatische Konzepte
und Modelle umzusetzen. Es geht dann nicht um die soziologische Angemessenheit
sozionischer Produkte, sondern ausschließlich um ihre computerwissenschaftliche
Angemessenheit. Rechenzeit und Tempogewinn, Speicherbedarf und -optimierung,
algorithmische Effizienz und Eleganz sowie Wartbarkeit von Sprachen und
Programmen sind die hier gültigen Kriterien, an denen sich die innovativen
Leistungen der Sozionik messen lassen müssen. Die Soziologie kann
sich hier als Ideengeber für die Informatik betätigen,um neue
Mechanismen der Komplexitätsbewältigung, der Robustheit, der
Adaptionsdynamik oder der Selbstorganisation zu entwerfen. Das soziologische
Übergangsproblem" (micro-macro-link") von Mikrogemeinschaften
persönlich bekannter Gruppenangehöriger zu anonymen und hochkomplexen
Makrogesellschaften dürfte hier ein ganz besonders interessantes
Lösungspotential bieten, um das informatische Problem der Konstruktion
von largescale open sytems" [3] zu
bewältigen.
Artikelanfang Seitenanfang
|
|
Literatur
- Davis, R.; Smith, R.G. (1983): Negotiation
as a Metaphor for distributed problem solving, in: Artificial Intelligence
20 (1/83), S. 63-109.
- Hewitt, C. (1977): Viewing Control Structures
As Patterns of Passing Messages. Artificial Intelligence 8(3), 323-364
- Hewitt, C. (1991): Open Information Systems
Semantics for Distributed Artificial Intelligence, in: Artificial Intelligence
47 (1991), 79-106
- Malsch, Th.; Florian, M.; Jonas, M.; Schulz-Schaeffer,
I. (1996): Sozionik: Expeditionen ins Grenzgebiet zwischen Soziologie
und Künstlicher Intelligenz, in: KI 2/1996, 6-1
- Malsch, TH (1997), Die Provokation der „Artificial
Societies", Ein programmatischer Versuch über die Frage, warum die Soziologie
sich mit den Sozialmetaphern der Verteilten Künstlichen Intelligenz
beschäftigen sollte, Zeitschrift für Soziologie 1/1997
Artikelanfang Seitenanfang
|
|
Autor & Copyright
Thomas Malsch
Technische Universität Hamburg Harburg,
Arbeitsbereich Technikbewertung und Technikgestaltung,
Schloßmühlendamm 32,
D-21073 Hamburg
© 1997 Informatik Spektrum, Springer-Verlag Berlin Heidelberg
Artikelanfang Seitenanfang
|
|
 |
|
|