Neue Anwendungen, neue Risiken

HTML5 - Web und lokale Clients verknüpfen

SQL-Datenbank und IndexedDB

Die Schlüssel-Wert-Paare im localStorage-Objekt sind in der Regel mächtig genug, um viele Grundfunktionen auszuführen - sie sind jedoch keineswegs mit relationalen Datenbanken vergleichbar, die Daten in indexierten Tabellen speichern. Für diese Anforderung bietet der zukünftige HTML5-Standard zwei neue Optionen.

Die erste ist die Web SQL Database. Das Verfahren ist bereits vor längerer Zeit entworfen und implementiert worden ist, bevor er zugunsten einer abstrakteren Variante etwas aus dem Blickfeld geriet. WebKit- und Opera-Anwender können mit der abgespeckten Datenbank-Engine SQLite Tabellen erstellen und Wertereihen speichern - SQL-Grundwissen vorausgesetzt. Weil das W3C aber entschied, Web SQL Database nicht weiterzuentwickeln, ist der Standard heute nur noch für experimentierfreudige Tekkies geeignet - er wird trotz allem weiterhin von vielen Browsern unterstützt.

An seine Stelle trat die Indexed Database. Sie ist vollkommen SQL-frei und enthält massenweise Schlüssel-Wert-Paare, analog zum localStorage-Objekt. Der Unterschied: Dank ihres Indexes lassen sich benötigte Daten schneller finden. Browser speichern jede Tabelle in einem B-Baum, um die Ergebnisrecherche zu beschleunigen und den Programmierern die Möglichkeit einzuräumen, die eingegebenen Daten zu sortieren. Der indexierte Speicher schließt kritische Wettläufe, die im localStorage noch möglich sind, dadurch aus, dass er alle Änderungen im Code als Transaktionen ausführt. Datenbankadministratoren mögen das gut finden, ausreichende Praxiserfahrungen mit IndexedDB liegen jedoch noch nicht vor. So enthält die aktuelle Version des HTML5-Entwurfs die Anmerkung, dass noch entschieden werden müsse, was geschehe, wenn eine dynamische Transaktionen ein Datenbankobjekt sperren wolle, das betroffene Objekt aber bereits von einer anderen Transaktion gesperrt sei. Also: Es bleibt noch viel zu tun.