Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

25.08.1989 - 

SQL eignet sich nur eingeschränkt für komplexe Abfragen:

Eine Alternative bieten die deklarativen Regelsprachen

SQL hat sich zu einem Standard für Abfragesprachen entwickelt. Doch, so Werner Kießling*, eine Reihe von Mängeln schränken ihre Brauchbarkeit immer dann ein, wenn die Abfragen komplexer werden. Er setzt daher bei weniger gebräuchlichen Anwendungen auf deklarative Regelsprachen.

Zwei Jahrzehnte nach der Erfindung des relationalen Datenmodells durch Edgar F. Codd ist der Vormarsch dieser Datenbank-Technik auf dem kommerziellen Markt nicht mehr zu leugnen. Verantwortlich für diesen Erfolg sind eine Reihe allgemein anerkannter Vorzüge derartiger Systeme. Sie verfügen über automatisierte Sicherungsverfahren für permanente Datenbestände, leisten Transaktionsverwaltung für korrekten Mehrbenutzerbetrieb, verbessern durch Zugriffskontrollen die Datensicherheit und den Datenschutz und arbeiten vor allem häufig mit der standardisierten Abfragesprache SQL zusammen.

Die Sprache ist wenig komfortabel

Seit geraumer Zeit wird jedoch der SQL-Standard nicht nur von unzufriedenen Anwendern sondern auch von Datenbank-Pionieren wie Codd und Chris Date kritisiert. Neben semantischen Mängeln (Problematik der Duplikate und der Null-Werte) gewinnen folgende Schwachpunkte an Bedeutung:

- Mangelnde Benutzerfreundlichkeit: Nur in einfachen Fällen läßt sich SQL leicht und verständlich einsetzten. Besonders schwierig ist die Formulierung von geschachtelten Abfragen.

- Keine heterogenen Deduktionsmöglichkeiten: Heutige SQL-Systeme werden nur selten in verteilten Umgebungen eingesetzt. Ein Datenbank-Reasoning über Datenbestände in verschiedenen, heterogenen SQL-Systemen ist nicht möglich.

- Geringe Deduktionsmächtigkeit: Das jetzige Standard-SQL unterliegt einigen Einschränkungen, was die Formulierung rekursiver Abfragen und die Verwendung beliebiger Funktionen betrifft.

Diese Mängel in der Ausdrucksfähigkeit wirken sich gravierend auf Produktivität und Effizienz bei der Applikationsentwicklung aus. Häufig wird ein aufwendiger "Workaround" in einer Hochsprache (Embedded SQL) notwendig, um fehlende Funktionalitäten prozedural in anderen Hochsprachen wie C oder Cobol zu programmieren.

Rekursive Problemstellungen treten im Zusammenhang mit dem Traversieren allgemeiner Graphen oder Hierarchien auf. In einer Welt voller hierarchischer Strukturen stellt die Unfähigkeit einer Datenabfragesprache zur Rekursion eine einschneidende Beschränkung dar.

Wenig geeignet ist SQL auch für die iterierende Analyse großer Datenmengen wie sie etwa bei Trendanalysen von Finanzdaten nötig wird. Bei solchen Operationen muß die Anfrage immer wieder neu formuliert werden, ein bei SQL aufwendiger und fehlerträchtiger Schritt. Es kann daher lohnen sich nach einer Alternative zu dieser Abfragesprache

umzusehen.

Zur Auswahl stehen prozedurale, deklarative und regelbasierte Programmiersprachen. Bei prozeduralen Sprachen muß der Anwender explizit formulieren, wie eine Aufgabe gelöst werden soll. Zu dieser Kathegorie gehören Hochsprachen wie Pascal, C, Lisp, DL/ 1 oder DML.

Bei deklarativen Sprachen gibt der Anwender lediglich an, was zu lösen ist. Dadurch entstehen Produktivitätsvorteile bei der Anwendungsentwicklung. SQL bedeutet hier einen wichtigen Schritt in die richtige Richtung, wenn auch die Leistungsfähigkeit noch zu gering ist.

Einen zukunftsträchtigen Trend aus dem Bereich der wissensbasierten Systeme stellt die regelbasierte Programmierung dar. Anwenderwissen wird bei diesem Ansatz in der Form von Wenn-Dann-Regeln dargestellt, oft in Form von sogenannten "Hornklauseln".

Ideal wäre meines Erachtens eine mächtige deklarative Regelsprache, die effizient mit den Vorzügen relationaler Datenbanktechnologie verknüpft werden kann.

Nach intensiven Forschungen hat sich in den vergangenen zehn Jahren die Einbettung der Logikprogrammierung in die relationale Datenbank-Umgebung als geeigneter Ansatz herausgestellt. Die Syntax lehnt sich dabei an die erwähnten Hornklauseln an. Dabei sind sowohl Semantik als auch Performance eines solchen deklarativen Regelprogramms hinsichtlich der Reihenfolge der Regeln und Prämissen innerhalb einer Regel (kein Prolog) invariant.

Der auf Hornklauseln basierende Ansatz läßt sich durch Sprachelemente wie Negation und Aggregation konsistent erweitern. Die so gewonnene Sprachklasse ist dann mächtig genug, um alle berechenbaren Datenbankanfragen ausdrücken zu können.

Datenbank-Systeme mit solchen Regelsprachen werden häufig als deduktiv bezeichnet. Es gibt sie bei MCC in Austin/Texas, bei der Stanford University und bei Mad Intelligent Systems, München.

Bei deklarativen Regelsprachen braucht der Benutzer nur das "Was will ich" in den Regeln und Abfragen angeben, nicht auch noch das "Wie berechne ich es". Die Deduktionskontrolle, das heißt den Ubergang vom "was zum "wie", wird vollständig und automatisch vom System übernommen.

Im Gegensatz zu regelbasierten Systemen erlaubt die deklarative Semantik außerdem die Konstruktion eines optimierten Regel-Compilers anstelle eines Interpreters. Dieser kann den für eine Anfrageoptimierung notwendigen Deduktionsprozeß global über das gesamte Regelprogramm optimieren.

Die Problemlösung steht über der Technik

Zusammenfassend ergeben sich folgende Vorteile eines solchen Systems gegenüber SQL:

- Erleichterte Prototyp-Entwicklung: Spezifikationen können schneller und sicherer erstellt werden. Die Konzentration der Anwender widmet sich dem Problem und nicht der Computertechnik, da der Regelcompiler die Spezifikationen in lauffähigen Objektcode umsetzt.

- Erleichterte Wartung und inkrementelle Weiterentwicklung: Bei Anforderungsänderungen brauchen nur Regeln hinzugefügt oder weggenommen werden. Kosten- und arbeitsintensiver Wartungsaufwand wird reduziert.

Derartige deklarative Regelsprachen werden künftig eine zentrale Rolle als Deduktionskomponente von Expertensystem-Datenbanken-Technologien spielen. Ferner ist in diesem Ansatz die Fähigkeit zur Datenbankintegration mit verteiltem heterogenem Reasoning über angeschlossene SQL-Subdatenbanken vorgesehen.

Die genannten Vorteile kommen vor allem im kommerziellen Bereich zum Tragen, bei denen keine Standardsoftware eingesetzt wird. Dort also, wo komplexes Regelwissen auf große Datenmengen angewendet werden muß, die in herkömmlichen Datenbank-Systemen gespeichert sind.