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.

ISO- und ANSI-Standard sind identisch


25.09.1992 - 

Mit SQL läßt sich Offenheit auf Datenbankebene schaffen

Dipl.-Inf. Thomas Vogg ist Systemplaner für DB/DC-Produkte bei der Siemens-Nixdorf Informationssysteme AG, München.

Die Standardisierung der Datenbank-Sprache SQL liegt eindeutig im Interesse der Anwender. Thomas Vogg beschreibt, wie weit der Standardisierungsprozeß heute fortgeschritten ist, und wie sich die SQL-Sprache in den nächsten Jahren entwickeln wird.

Im Jahre 1970 beschrieb E.F. Codd erstmals die Datenorganisation und Datenmanipulation von Datenbanksystemen mit mathematischen Mitteln, nämlich mit der Relationenalgebra, einer Teildisziplin der elementaren Mengenlehre. Auf diesen theoretischen Arbeiten basiert das Relationenmodell.

Seit etwa zehn Jahren sind einsatzfähige Produkte auf dem Markt, die auf diesem Modell beruhen. Dabei hat sich die Definition des Begriffs "relationales Datenbanksystem" in den letzten Jahren gewandelt. Gegenüber den abstrakten, immer komplexer werdenden Regelwerken von Codd hat sich mittlerweile eine praxisnahe Definition durchgesetzt, nämlich die der Datenbank-Sprache SQL (Structured Query Language).

SQL 2 noch in diesem Jahr

Nach einer Studie der Gartner Group befinden sich derzeit nur etwa fünf Prozent der kommerziellen Daten in relationalen Datenbanksystemen, auf die sich aber rund zehn Prozent der Anwendungen stützen. Man erwartet aber, daß sich im Jahr 2000 mehr als 50 Prozent der kommerziellen Daten in relationalen Datenbanksystemen befinden. Dann werden voraussichtlich 60 Prozent der Anwendungen auf der Basis dieser Systeme laufen.

Zum Durchbruch des relationalen Modells werden nicht nur die Möglichkeiten der Datenmanipulation mit deskriptiven mengenverarbeitenden Anweisungen und der einfachen Datenorganisation beitragen. Auch die Standardisierung der SQL spielt dabei eine wichtige Rolle. Seit Anfang der 80er Jahre sind kommerzielle Implementierungen von SQL auf dem Markt. Mit dem Ziel, eine Vereinheitlichung dieser Sprache zu erreichen, befassen sich seit 1982 maßgebliche Standardisierungsorganisationen wie ANSI und ISO.

1987 wurde der ISO-Standard für SQL verabschiedet (ISO/IEC 9075:1987). Zwei Jahre später kam es zu einer Aktualisierung dieses Standards. Dabei wurden die zwischenzeitlich entstandenen Zusätze (Addendum) eingearbeitet, wobei die verschiedenen Integritätsbedingungen berücksichtigt wurden - unter anderem auch die referentielle Integrität. SQL 2, eine erhebliche Erweiterung des Standards, wird voraussichtlich noch in diesem Jahr verabschiedet. An einer nächsten Stufe (SQL 3) wird bereits gearbeit. Eine Verabschiedung ist hier jedoch nicht vor 1994 zu erwarten. Für Verwirrung sorgt bisweilen, daß sich manche Anbieter auf ISO- und andere auf ANSI-Standards berufen.

Diese Standards sind jedoch identisch (siehe Abbildung 1 auf Seite 20).

Jeder Standard hat mehrere Konformitäts-Level, die einen unterschiedlichen Funktionsumfang beinhalten. So ist zum Beispiel der aktuelle Standard-Level 1 eine Untermenge von Level 2. Die Integritätserweiterungen enthalten die Integritätsbedingungen und sind nicht Bestandteil von Level 1 oder Level 2. Wenn ein Datenbanksystem wirklich alle Regeln des Standards erfüllt, dann ist es konform zu ISO/IEC 9075:1989 Level 2 plus Integritätserweiterungen.

Leider wird oft nur gesagt "konform zum ISO/ANSI-Standard" ohne weitere Angaben. Eine derartige Aussage hat keinen großen Wert.

Parallel zu diesen Standards werden von der X/Open-Gruppe einheitliche Schnittstellendefinitionen veröffentlicht, die X/Open Portability Guides (XPG3, voraussichtlich noch in diesem Jahr XPG4). Das Gremium orientiert sich dabei am ISO-Standard, berücksichtigt aber auch die Fähigkeiten der aktuell verfügbaren Implementationen. Das heißt: X/Open verlangt zwar teilweise nur eine Untermenge des ISO-Standards, fordert aber auch eine Reihe von praxisrelevanten Erweiterungen. Diese sind jedoch in fast allen Punkten ein Vorgriff auf die SQL-2-Norm.

Die Standardisierung der SQL-Sprachschnittstelle brachte eine neues Argument für relationale Datenbanken, die Offenheit. Da sich immer mehr Anbieter am Standard orientieren, bietet SQL neben allen anderen Vorteilen auch noch die Möglichkeit der einfachen Portierung von Anwendungen auf andere Systeme. Ein eventuell gewünschter Wechsel auf ein anderes Datenbanksystem scheint auf den ersten Blick kein Problem mehr zu sein, da ein Standard existiert und fast alle großen Anbieter verkünden, ihre Produkte seien ISO/ANSI-komform.

Aber so leicht ist es denn doch nicht. Kaum ein Datenbanksystem bietet den Standard "pur". Überall gibt es Erweiterungen, die meist nicht zu den Zusätzen in anderen Systemen kompatibel sind. Solche Erweiterungen sind zum Beispiel Datentypen für Datum und Zeit oder für unformatierte Daten (Binary Large Objects). Auch gibt es besondere Befehle, die eine höhere Performance gewährleisten. Wer solche Erweiterungen nutzt, begibt sich wieder in die Abhängigkeit.

Nicht alle ISO- oder ANSI-konformen Datenbanksysteme sind außerdem wirklich hundertprozentig konform. Leider gibt es doch irgendwo immer ein paar Kleinigkeiten, die nicht völlig mit dem Standard übereinstimmen. Wer portierbare Anwendungen schreiben will, hat nur die Möglichkeit, sich auf eine Untermenge der möglichen Funktionen zu beschränken. Dabei ist der Programmierer jedoch im Normalfall auf sich allein gestellt. Es bleibt ihm überlassen, sich die mögliche Untermenge selbst zusammenzustellen. Dies kann ein recht umfangreiches Unterfangen werden.

Siemens Nixdorf hat sich entschieden, dieses Problem für die im eigenen Haus unterstützten relationalen Datenbanksysteme individuell zu lösen. Im Rahmen des Schnittstellen-Konzeptes SIA wird ein Manual herausgegeben, das den gemeinsamen SQL-Sprachumfang der Datenbanksysteme Sesam/SQL, UDS/SQL und Informix für Cobol als Wirtssprache beschreibt.

Die nächste Version dieses Manuals wird auch die Datenbanksysteme Oracle und Comfobase beinhalten, sowie die Wirtssprache C unterstützen. Es hat sich gezeigt, daß die Ausrichtung auf die Norm bereits derart stark ist, daß der gemeinsame Sprachumfang schon sehr dicht an Level 2 der aktuellen SQL-Norm für den Bereich der Datenmanipulation heranreicht.

Es wäre unfair, den Anbietern als Grund für Erweiterungen zum Standard nur den Wunsch zu unterstellen, den Benutzer an ihr Datenbanksystem binden zu wollen. Erweiterungen zum Standard sind vielmehr Bestrebungen, sich vom Mitbewerber abzusetzen, besser zu sein als er. Sobald die Funktionalität der Norm erreicht ist, bleiben dafür eben nur Erweiterungen übrig.

Hier wird in vielen Bereichen der SQL 2-Standard für Abhilfe sorgen. Der niedrigste Level dieses Standards, die Entry SQL, enthält den gesamten aktuellen Standard (Level 2 plus Integritätserweiterungen). Zusätzlich gibt es als optionale Funktionalitäten des Entry SQL den SQL-State (als Alternative zu SQL-Code) zur besseren - da genauer normierten - Fehlerbehandlung. Eine Fülle neuer Funktionen enthalten die oberen SQL-2-Level Intermediate SQL und Full SQL (siehe Abbildung 2).

Die Full SQL ist derartig umfangreich, daß es nach Ansicht von Marktbeobachtern etwa zehn Jahre dauern wird, die volle Konformität zur Full SQL der SQL 2 zu erreichen. SQL 2 enthält als wichtige neue Features neue Datentypen (zum Beispiel Datum, Zeit), neue Operationen (zum Beispiel Outer Join, Outer Union), Domains, dynamisches SQL, Schema-Manipulation oder Konsistenzlevel für Transaktionen.

Die Fülle der neuen Funktionen ermöglicht es dem Anbieter, für Differenzierung zu sorgen, ohne sich außerhalb des Standards zu bewegen. Die Situation für den Anwender ändert sich dadurch zwar nicht sofort, da er auch dann unter Umständen nur mit einer Untermenge arbeiten kann. Aber er kann damit rechnen, daß sich diese Untermenge auch bei Datenbanksystemen verschiedener Anbieter im Laufe der Zeit vergrößert.

Stored Procedures und Triggers nicht in SQL 2

Leider sind Stored Procedures und Triggers, die schon heute beginnen, sich auf' dem Markt auszubreiten, in SQL 2 nicht behandelt. Dies sind Themen für SQL 3.

Beruhigend ist auf jeden Fall, daß mittlerweile alle führenden Anbieter eine klare Aussage getroffen haben, sich an den SQL-Standards zu orientieren. Man kann daher erwarten, daß eine Portierung von SQL-Anwendungen immer einfacher wird. Bei dem derzeitigen Trend zu Offenheit wird sich die Verbreitung der relationalen Datenbanksysteme auch aus diesem Grund verstärken. Die objektorientierten Systeme laufen diesem Trend zur Offenheit zuwider, da dort noch kein Standard verfügbar ist.