Galileo Computing < openbook >
Galileo Computing - Professionelle Buecher. Auch fuer Einsteiger.
Galileo Computing - Professionelle Buecher. Auch fuer Einsteiger.


Java ist auch eine Insel von Christian Ullenboom
Buch: Java ist auch eine Insel (Galileo Computing)
gp Kapitel 20 Datenbankmanagement mit JDBC
gp 20.1 Das relationale Modell
gp 20.2 JDBC: der Zugriff auf Datenbanken über Java
gp 20.3 Die Rolle von SQL
gp 20.3.1 Ein Rundgang durch SQL-Anfragen
gp 20.3.2 Datenabfrage mit der Data Query Language (DQL)
gp 20.3.3 Tabellen anlegen mit der Data Definition Language (DDL)
gp 20.4 Datenbanktreiber für den Zugriff
gp 20.4.1 Treibertypen
gp 20.5 Datenbanken und ihre Treiber
gp 20.5.1 Die freie Datenbank MySQL
gp 20.5.2 JDBC-Treiber für MySQL: MySQL Connector/J
gp 20.5.3 Die Datenbank Microsoft Access
gp 20.5.4 Ein Typ-4-Treiber für den Microsoft SQL Server 2000
gp 20.5.5 Die JDBC-ODBC-Bridge
gp 20.5.6 ODBC einrichten und Access damit verwenden
gp 20.5.7 Oracle9i Enterprise Edition
gp 20.5.8 JDBC-Treiber für mobile Endgeräte
gp 20.6 Eine Beispielabfrage
gp 20.7 Mit Java an eine Datenbank andocken
gp 20.7.1 Der Treibermanager
gp 20.7.2 Eine Aufzählung aller Treiber
gp 20.7.3 Log-Informationen
gp 20.7.4 Den Treiber laden
gp 20.7.5 Verbindung zur Datenbank
gp 20.8 Datenbankabfragen
gp 20.8.1 Abfragen über das Statement-Objekt
gp 20.8.2 Ergebnisse einer Abfrage in ResultSet
gp 20.8.3 Unicode in der Spalte korrekt auslesen
gp 20.8.4 wasNull() bei ResultSet
gp 20.8.5 Wie viele Zeilen hat ein ResultSet?
gp 20.9 Java und SQL-Datentypen
gp 20.9.1 Die getXXX()-Methoden
gp 20.10 Transaktionen
gp 20.11 Elemente einer Datenbank hinzufügen und aktualisieren
gp 20.11.1 Batch-Updates
gp 20.12 Vorbereitete Anweisungen (Prepared Statements)
gp 20.12.1 PreparedStatement-Objekte vorbereiten
gp 20.12.2 Werte für die Platzhalter eines PreparedStatement
gp 20.13 Metadaten
gp 20.13.1 Metadaten über die Tabelle
gp 20.13.2 Informationen über die Datenbank
gp 20.14 Die Ausnahmen bei JDBC
gp 20.15 Java Data Objects (JDO)
gp 20.16 XML-Datenbanken
gp 20.16.1 Apache Xindice
gp 20.16.2 eXist und Weitere


Galileo Computing

20.16 XML-Datenbankendowntop

XML-Dateien sind in heutigen Anwendungen gang und gäbe. Doch wo kommen diese Daten her? Sicherlich wird ein Teil dynamisch von Hand erzeugt, doch ein anderer Teil bindet direkt die Daten aus einer Datenbank an. Ist die Datenbank relational, so müssen die XML-Daten transformiert werden. Viel effektiver ist es, gleich die XML-Dateien in einer XML-Datenbank abzulesen. Ihre Aufgabe soll es sein, die Daten wirtschaftlicher zu verwalten und Zugriff auf einzelne Elemente zu geben. Umkodierungen vom relationalen Modell in XML-Strukturen sollten die Performanz heben. Natürlich sollen auch Anfragen mit einer standardisierten Anfragesprache möglich sein.

Zur Speicherung der XML-Daten gibt es zwei unterschiedliche Ansätze: zum einen native XML-Datenbanken, die direkt XML speichern, und Hybriddatenbanken, vergleichbar mit objektrelationalen Datenbanken. Sie können zwar XML-Daten entgegennehmen, speichern sie aber selbst in Tabellen. Zu den Hybridlösungen zählen etwa der Microsoft SQL-Server sowie die Datenbank von Oracle.


Galileo Computing

20.16.1 Apache Xindicedowntop

Es gibt mittlerweile eine Reihe von nativen XML-Datenbanken, darunter einige freie, die Open-Source sind. Eine bekannte Datenbank ist Apache Xindice 1.0 (http://xml.apache.org/xindice/). Die in Java implementierte XML-Datenbank benutzt XPath (http://www.w3.org/TR/xpath) als Anfragesprache und XML:DB XUpdate >http://www.xmldb.org/xupdate/) als Update-Sprache. Xindice nutzt die XPath-Implementierung von Xalan. XML:DB ist eine herstellerneutrale API, vergleichbar mit JDBC. Xindice ist eine Core-Level-1-Implementierung und sehr einfach zu benutzen. Nach der Installation wird ein Server gestartet, und dann können Java- oder Kommandozeilenprogramme neue Einträge machen und XML-Dateien importieren. Allerdings sieht sich Xindice bisher nicht als System für riesige Dokumente, eher für viele kleine Minidokumente.

Für JDBC ist es geläufig, dass auf die Datenbank auch remote zugegriffen werden kann. Um entfernt auf Xindice zuzugreifen, sind mehrere Wege möglich. Die Basis von Xindice ist CORBA, doch in der Regel sind andere Wege leichter und effizienter, etwa der Zugriff über XML-RPC. Von Kimbro Staken und Kurt Ward stammt das Xindice XML-RPC-Interface (http://xindice-xmlrpc.sourceforge.net/. Damit wird die Datenbank XML-RPC fähig. Die Bibliothek ist sehr klein und wird vermutlich in der Zukunft in den Kern integriert. Das RPC-Interface steht wie Xindice unter der Apache Style Open-Source-Lizenz. Getestet ist es mit Clients in Java, PHP, Perl und Applescript.


Galileo Computing

20.16.2 eXist und Weiteretoptop

Eine weitere XML-Datenbank ist eXist, die unter der GNU LGPL steht (http://exist-db.org/). Auf die Datenbank lässt sich entfernt noch flexibler als Xinidice zugreifen: HTTP, XML-RPC, SOAP und WebDAV. Auch eXist kann mit XPath umgehen und unterstützt XML:DB.

Eine Übersicht über XML-Datenbanken gibt die Web-Seite http://www.rpbourret.com/xml/XMLDatabaseProds.htm von Ronald Bourret.





Copyright (c) Galileo Press GmbH 2004
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de