« Projekte
Erkennung semantischer Fehler in SQL-Anfragen
Projektbearbeiter:
Christian Goldberg
Finanzierung:
Haushalt;
SQL ist heute die Standard-Datenbanksprache für relationale und objektrationale Datenbanken, und wird dementsprechend in der Industriein großem Umfang genutzt. Wie andere Programme auch, können SQL-Anfragen Fehler enthalten. Heutige Datenbank-Managementsystemeerkennen praktisch nur Fehler, bei denen die Anfrage überhaupt nicht ausführbar ist. Es gibt dagegen bisher keine Warnungen für sicher nichtbeabsichtigte, oder zweifelhafte, oder zumindest suboptimale Anfragen. Ein Beispiel sind Anfragen mit inkonsistenter (d.h. immer falscher)Bedingung: Niemand wird bewußt eine Anfrage stellen, die völlig unabhängig vom Inhalt der Datenbank immer eine leere Antwortmenge liefernwird. Dennoch sind inkonsistente Anfragebedingungen mindestens in Klausuren nicht selten, bei einer Aufgabe hatten z.B. 10 von 70Studierenden eine inkonsistente Bedingung geschrieben. Wenn eine inkonsistente Bedingung auch häufig durch das unerwartete Ergebnisbemerkt werden wird, ist das nicht garantiert: Sucht der Benutzer nach Ausnahmen, freut er sich vielleicht, daß es keine gibt, und übersieht,daß die Anfrage falsch war. Neben inkonsistenten Bedingungen gibt es noch viele weitere Situationen, in denen ein intelligentes DBMSden Benutzer warnen sollte. Im Projekt wurden bisher ca. 40 solcher Negativ-Muster für SQL-Anfragen beschrieben, die meisten davon sindin Klausuren tatsächlich aufgetreten. Ein Werkzeug zur Erkennung solcher Fehler ist in Arbeit. Die meisten Probleme sind im allgemeinen Fallunentscheidbar, aber es gibt doch Algorithmen für eine recht große SQL-Teilmenge. Bisher wurden Statistiken über die Häufigkeit derverschiedenen Fehlertypen nur auf Basis von Klausuren erstellt, eine Zusammenarbeit mit der Industrie zum Test in realen Projekten wirdangestrebt. Das Werkzeg wird ansonsten auch in der Lehre (E-Learning) eingesetzt werden. Es ist anzunehmen, daßDatenbank-Managementsysteme der Zukunft mindestens einen Teil der Tests übernehmen werden.

Schlagworte

Datenbank, Datenbank-Anfragen, Fehler, Programmierfehler, SQL
Kontakt

weitere Projekte

Die Daten werden geladen ...