IT-Wissen für Consultants – Datenbanken

20.08.2012

In der heutigen Ausgabe unseres IT-Basiswissen für Consultants befassen wir uns mit dem Thema Datenbanken. Datenbanken bzw. Datenbanksysteme (DBS) sind Systeme, um Daten elektronisch zu verwalten. Die Aufgabe einer solchen Datenbank ist es, große Datenmengen effizient und dauerhaft zu speichern und diese für Benutzer und Anwendungsprogramme bereitzustellen.

IT Wissen Consultants - Datenbanken

Transaktionen sichern ihre Daten

Datenbanken unterstützen sogenannte ACID-TransaktionenACID steht für Atomicity, Consistency, Isolation und Durability. Transaktionen, die diese Eigenschaften erfüllen, können nur als ganzes oder gar nicht ausgeführt werden (Atomicity). Sie beeinflussen sich nicht untereinander (Isolation) und hinterlassen in der Datenbank einen gültigen Datenstand (Consistency), der selbst nach einem plötzlichen Absturz wiederhergestellt werden kann (Durability). Besonders im Umfeld der Finanzwirtschaft sind solche Transaktion von besonderer Wichtigkeit. Wer möchte schon, dass das eigene Geld zwar vom Konto abgebucht, nicht aber beim Empfänger eingezahlt wird?

Datenbanken haben daher in der modernen Geschäftswelt eine herausragende Stellung. Das führt zu einer großen Bandbreite von Datenbanksystemen. Einige davon sind spezialisiert auf bestimmte Arten von Daten, beispielsweise Daten mit extrem großen Datenmengen (für Suchmaschinen) oder Daten, die zueinander in Beziehung stehen (Social Networks). Andere Datenbanksysteme versuchen Daten möglichst allgemein abzulegen. Zu dieser Familie von Datenbanksystemen gehören die relationalen und objektrelationalen Datenbanken, die im weiteren betrachtet werden sollen.

Relationale und objektrelationale Datenbanken

Diese Datenbanken, zu denen beispielsweise Oracle und MySQL gehören, sind in Tabellen gegliedert. Jede Tabelle verfügt über Spalten und Reihen. Die Reihen enthalten einzelne Einträge, deren Attribute in den Spalten festgelegt werden. Vorstellbar ist beispielsweise eine Tabelle mit Nutzerinformationen: Während jede Reihe einen Nutzer beschreibt, enthalten die Spalten die einzelnen Informationen zu dem Nutzer, z.B. Name, Geschlecht, Geburtstag…

Um die Daten aus solchen Tabellen abzufragen existiert die sogenannte Structured Query Language (kurz: SQL). Mit ihren vier grundlegenden Operationen INSERT, SELECT, UPDATE und DELETE ist es möglich die Daten der Tabelle beliebig zu verändern oder zu durchsuchen. Viele Anbieter von Datenbanksystemen erweitern SQL zudem um eigene Sprachkonstrukte, um ihren Funktionsumfang noch zu erweitern.

Die Anwendung mit der Datenbank verbinden

Um Anwendungen mit Datenbanken zu verbinden existiert im Java Umfeld die Java Database Connectivity (JDBC) Schnittstelle. Sie erlaubt es Java Programmen die Verbindung zu einer Datenbank herzustellen und anschließend über SQL auf die Daten zuzugreifen.

Leider bringt JDBC aber auch mehrere Probleme mit sich. Da die Hersteller von Datenbanksystemen dazu neigen eigene Erweiterungen zu SQL zu implementieren, greifen Entwickler immer wieder auf diese Erweiterungen zurück. Dadurch wird die Anwendung stark an ein bestimmtes Datenbanksystem gebunden. Sinn und Zweck einer Schnittstelle ist es allerdings die Komponenten links und rechts der Schnittstelle voneinander zu trennen, beispielsweise um sie beliebig austauschbar zu machen.

JDBC erfordert außerdem das Schreiben von zusätzlichem Code, der Java-Objekte in Tabelleneinträge und Tabelleneinträge in Java-Objekte konvertiert. Dieser Code stellt im Prinzip ein immer wiederkehrendes Problem dar, mit dem jede Java Anwendung mit Datenbankanbindung zu kämpfen hat. Aus diesem Grund entstand im Java EE Umfeld die Java Persistence API (kurz: JPA). JPA definiert eine Schnittstelle auf Java-Objektebene, die dazu dienen soll eben diese Konvertierung zu übernehmen. Es existieren verschiedene Implementierungen dieser Schnittstelle, beispielsweise Hibernate oder EclipseLink. Die meisten dieser Implementierungen bauen zwar auf JDBC auf, sorgen aber gleichzeitig durch strikte Beschränkung auf den SQL Standard dafür, dass die angeschlossenen Datenbanksysteme beliebig ausgetauscht werden können. JPA adressiert damit die wesentlichen Probleme von JDBC.

Auch die Produkte von doubleSlash bauen auf JPA auf und sind dadurch effizient und flexibel.

 

doubleSlash-Teaser-Blog_Programmierung

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*Pflichtfelder

*