Datenbanken müssen immer leistungsfähiger werden. Darunter scheint jedoch die Zuverlässigkeit zu leiden. Jetzt haben ETH-Informatiker ein Tool entwickelt, das mit drei unterschiedlichen Methoden automatisch logische Fehler in Datenbanksystemen aufspürt. Bisher konnten damit über 450 Bugs gefunden und behoben werden.
SQL-Datenbanken (Structured Query Language) bilden das Rückgrat der Informatik. ETH-Forscher haben nun Methoden entwickelt, die darin automatisch logische Fehler finden.
Wenn eine Adresse im Smartphone abgespeichert ist, gehen wir wie selbstverständlich davon aus, dass wir sie mit der richtigen Abfrage auch finden. Genauso wie mit den geeigneten Begriffen alle passenden Artikel im Webshop aufgelistet werden. Doch so selbstverständlich, wie wir meinen, ist das nicht. Ein logischer Fehler im Datenbank-Management-System (DBMS), in dem die gespeicherten Informationen verwaltet werden, kann falsche Antworten zurückliefern, ohne dass wir den Fehler überhaupt bemerken.
Überraschend viele Fehler in allen Systemen
Und genau derartige logische Fehler sind erstaunlich häufig. Oder besser gesagt, sie waren es bis vor kurzem. Forscher vom Advanced Software Technologies Lab der ETH Zürich haben jetzt nämlich ein Tool entwickelt, das automatisch logische Fehler in Datenbanksoftware aufspürt. Bereits konnten damit über 450 Programmierdefekte in weitverbreiteten Datenbanken gefunden und anschließend behoben werden.
„Wir waren selbst überrascht, wie viele Fehler in gängigen Datenbank-Management-Systemen stecken“, erläutert Manuel Rigger: „Mit unseren Methoden haben wir beispielsweise in der auf fast allen Smartphones und auch in vielen Web-Browsern laufenden SQLite-Datenbank über 150 Programmfehler entdeckt. Und das ist kein extremer Fall. Die Quote ist in allen Systemen, die wir bisher untersucht haben, ähnlich groß.“
Komplexe Programme und kaum erkennbare Bugs
Dass die ETH-Informatiker derart viele Bugs finden, hat zwei Hauptgründe. Zum einen sind heutige Datenbanken sehr komplex und können mehrere Millionen Zeilen Programm-Code umfassen. Da ist es praktisch unvermeidlich, dass Widersprüche entstehen und Programmierfehler passieren. Zum anderen sind logische Fehler nicht so einfach zu finden. Im Gegensatz zu Bugs, die das System abstürzen lassen, äußern sie sich nur selten offensichtlich. In der Regel ist ein Vergleich mit dem richtigen Ergebnis nötig, um sie zu bemerken. Genau das war bisher nur mit viel Aufwand möglich.
Das bis anhin einzige in der Praxis genutzte automatisierte Testverfahren ist bereits vor über 20 Jahren entworfen worden. Es beruht auf dem Vergleich von Abfragen mit unterschiedlichen Datenbanksystemen. Da jeder Hersteller spezifische Erweiterungen und Anpassungen am Abfrage-Standard SQL (Structured Query Language) vornimmt, ist das Formulieren von eindeutig vergleichbaren Fragen inzwischen aber auf einen kleinen Kernbereich der Systeme beschränkt. Die Abfragesprachen der Hersteller unterscheiden sich nämlich ähnlich wie die Dialekte einer menschlichen Sprache zum Teil erheblich.
Zwei Wochen Arbeit verloren
Persönlich vermutet Rigger zudem noch einen dritten Grund, wieso den Fehlern bisher nicht mit mehr Entschlossenheit nachgegangen wurde: Im Datenbankbereich konzentrieren sich derzeit die Aktivitäten darauf, die Systeme mit Methoden der künstlichen Intelligenz wie maschinellem Lernen noch leistungsfähiger zu machen. Daneben erscheint die Fehlersuche naturgemäß wenig attraktiv.
Rigger selbst hat seine Wurzeln im Software-Testing und in der Entwicklung von Compilern, mit denen verschiedene Programmier- und Maschinensprachen ineinander übersetzt werden können. Aufmerksam geworden auf die Fehler-Problematik im Datenbankbereich ist er durch eigene ärgerliche Erfahrungen, als wegen eines Fehlers im Datenbank-Management-System zwei Wochen Arbeit verloren gingen.
Drei Methoden für drei Fehlertypen
In der Folge hat sich der Testing-Spezialist gemeinsam mit dem Leiter des Advanced Software Technologies Lab, Zhendong Su, dem Problem angenommen. Ihre Lösung besteht in drei unterschiedlichen Methoden, mit denen sich zuverlässige Vergleichsabfragen finden lassen. Bei sogenannten Query Partitioning werden Abfragen automatisiert in mehrere Teile zerlegt und dann kontrolliert, ob das Ganze und die Summe der Teile das Gleiche ergeben.
Mit der zweiten Methode lassen sich gezielt Fehler aufspüren, die durch Optimierungs-Mechanismen in den Datenbanken hervorgerufen werden. Dabei werden die Abfragen für den Vergleich so abgewandelt, dass der Optimierungsmechanismus nicht mehr funktionieren kann.
Im Gegensatz zur den ersten zwei Methoden, die auch ohne detaillierte Kenntnisse der fraglichen Datenbank automatisiert durchgeführt werden können, verlangt die dritte ein spezifisches Datenbankwissen und auch eine individuelle Implementierung des Vergleichs. Bei der sogenannten Pivoted Query Synthesis wird eine ganze Reihe in der relationalen Datenbanktabelle zufällig ausgewählt. Danach muss eine Abfrage erstellt werden, welche die gewählte Reihe zum Ergebnis hat. So können logische Fehler wesentlich effizienter identifiziert werden, als wenn wie bisher einzelne Einträge von Hand analysiert werden müssen.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel Communications Group GmbH & Co. KG, Max-Planckstr. 7-9, 97082 Würzburg einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von redaktionellen Newslettern nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung, Abschnitt Redaktionelle Newsletter.
Tool ist bereits bei Herstellern im Einsatz
Mit ihren Methoden und dem Tool SQLancer, in welchem diese automatisiert wurden, haben die ETH-Informatiker offensichtlich schlafende Geister geweckt. Das Interesse der Datenbank-Hersteller ist ausgesprochen groß. Obwohl die drei Verfahren bisher nur informell als Preprints und über Social Media kommuniziert wurden und erst in diesen Tagen an einschlägigen Fachkonferenzen offiziell vorgestellt werden, haben bereits mehrere Hersteller angefangen, ihre Software damit zu testen. „Diverse Hersteller haben bereits zahlreiche Bugs in ihren Systemen gefunden und den SQLancer fest in ihr Testing eingebaut,“ weiß Rigger aus vielen direkten Kontakten: „Einige haben auch Programmiercode zu unserem als Open Source veröffentlichten Projekt beigesteuert oder das Tool an ihre spezifischen Bedürfnisse angepasst und erweitert.“