Software-Tipps

DBMS - Auswahlkriterien


Typische Funktionen und Tipps zur Auswahl von Datenbankmanagementsystemen

Definition Datenbankmanagementsystem

Mit Hilfe eines Datenbank-Management-Systems (DBMS) werden durch Nutzer Daten in eine Datenbank eingepflegt oder ausgelesen. Das System umfasst und verwaltet die Nutzeranfragen oder auch Anfragen anderer Programme an die Datenbank. Die Abfragen und die Verwaltung erfolgt über sogenannte Datenbanksprachen. Die gängigste Datenbanksprache ist SQL (Structured Query Language). Es gibt aber weitere Datenbanksprachen wie z.B. MDX (Multidimensional Expressions) die an Bedeutung gewinnen. Mit Hilfe von MDX können beispielsweise multidimensionale Abfragen in einem OLAP-Cube durchgeführt werden können. Dies kommt in der Regel im Bereich von Business Intelligence zum Einsatz.

Weitergehende Informationen zu Datenbankmodellen können Sie dem Kapitel 11.2 im Anhang Datenbanken entnehmen.

Beachten Sie bitte auch die aktuelle Marktübersicht der Softwarelösungen und Erklärungen zum Thema Datenbankmanagementsysteme (DBMS)

Ergänzend zu den allgemeinen Kriterien zur Bewertung von Software in den vorangegangenen Abschnitten haben wir hier spezifische Kriterien für die Bewertung von DBMS aufgeführt:

  • Elementarer Bestandteil eines DBMS sollte eine gut strukturierte und leicht zu erlernende Abfragesprache sein. SQL (Structured Query Language) ist dafür ein gelungenes Beispiel, an dem sich andere Abfrage- und Datenmanipulationssprachen messen lassen sollten.
  • Stellen Sie sicher, dass das DBMS ein Triggerkonzept unterstützt, um bei Änderung z.B. eines Datensatzes auch eine Änderung bei einem oder mehreren Datensätze zu veranlassen. Trigger ermöglichen eine elegante Einhaltung der referentiellen Integrität. Auch die Möglichkeit einer Änderungs- sowie Löschweitergabe sollte beachtet werden, um einfacher die Integrität der Daten zu erhalten.
  • Unterstützung bzw. Bereitstellung unterschiedlicher Benutzeroberflächen: Achten Sie darauf, dass es für das Datenbanksystem je nach Aufgaben verschiedene Benutzeroberflächen gibt oder/und genügend 3rd-Party-Anbieter (Drittanbieter) vorhanden sind, die Tools für Daten-Modellierung bereitstellen.
  • Beachten Sie die Interface-Unterstützung. Beispiele für die Kommunikation mit dem DBMS:
    • SOAP (Simple Object Access Protocol) Standard-Netzwerkprotokoll zum Austausch von Daten
    • JCA (Java Cryptography Architecture) JAVA-Programmierschnittstelle
    • XML (Extensible Markup Language) Textuelle Schnittstelle zur Verarbeitung von Hierarchien
    • JDBC (Java Database Connectivity) Universelle JAVA-Datenbankschnittstelle1
    • ODBC (Open Database Connectivity) Standardisierte SQL-Datenbankschnittstelle2
    • OLE DB / ADO (Object Linking and Embedding / ActiveX Data Objects) Standardisierte Programmierschnittstellen zum Zugriff auf verschiedene Datenquellen
  • Das DBMS sollte auch mit vielen Tabellen und deren Verknüpfungen3 leistungsfähig arbeiten. Beachten Sie, dass die anfänglich entworfenen Datenstrukturen anfangs aus wenigen und später aus immer mehr Tabellen und Datensätzen bestehen.4
  • Möglichkeiten eines Webzugriffs, um auf eine Datenbank, die auf einem Webserver liegt, direkt zugreifen zu können. Das kann z.B. sinnvoll sein, wenn von einer Datenbank auf einem Webserver, die normalerweise nur die Inhalte der Webseiten enthält, auch direkt ohne Web-Frontend Informationen abgerufen oder bearbeitet werden.
  • Achten Sie darauf, dass die Datenbanksprache Befehlssätze für die Manipulation, Definition und Zugriffskontrolle der Daten bereitstellt. Bei SQL sind das z.B. DML (Data Manipulation Language), DDL (Data Definition Language) und DCL (Data Control Language).
  • Das Datenbanksystem sollte Transaktionssicherheit nach dem ACID-Prinzp5 unterstützen. Somit ist gewährleistet, dass transaktionsübergreifende Statements auch im Fehlerfall einfach zurückgesetzt werden können und das nach erfolgreicher Ausführung von Transaktionen die Daten erfolgreich geändert sind. Mehrere Datenbank-Statements werden dazu in eine oder mehrere Transaktionen zusammengefasst. Bekannte Verfahren sind dabei: Transactionpoint, End-Transaction oder Rollback.
  • Möglichkeiten und Funktionen für Konsistenzkontrolle sowie der Integritätssicherung. Mit ihr ist gewährleistet, dass Daten oder gespeichertes Metadaten nicht fehlerbehaftet vorliegen, die z.B. bei einem Hardware- oder Softwaredefekt entstehen können.
  • Ausfallsicherheit zur Vermeidung von unnötigen Downtimes.6 Ein Aspekt der Erhöhung von Ausfallsicherheit ist z.B. das Master/Slave Prinzip (auch Replikation genannt).7 Siehe auch: 5 Datensicherung
  • Zugriff auf Daten über effiziente Zugriffspfade und Indizes.8 Dieses ist wichtig, damit Abfragen schnell und effizient ausgeführt werden können.
  • Flexible Attribut-9 und Metadatenverwaltung.10 Hierbei ist es wichtig, dass es möglichst einfach ist diese Daten mit Hilfe einer GUI oder diverse anderer Werkzeuge zu ändern.
  • Wird die Viewerstellung unterstützt?11
  • Stellen Sie sicher, dass das DBMS über die Möglichkeit der Programmierung von Stored Procedures12 verfügt. Somit können Sie Quellcodes aus der Business-Logik13 in die Datenschicht verschieben, um dadurch eine bessere Leistungsfähigkeit zu erzielen. Dadurch liegen oft benötigte Prozeduren bzw. Funktionen direkt im Datenbanksystem und werden schneller ausgeführt.
  • Überprüfen Sie, ob das DBMS über NoSQL-Support verfügt. NoSQL-Support bietet die Unterstützung von nicht relationalen Datenbanken an. Sie benötigen kein Tabellenschema. Auf Grund der Vermeidung des relationalen Systems erzielen Sie eine signifikant erhöhte Geschwindigkeit bei Schreib-/ sowie Leseoperation. Beispiele für NoSQL sind z.B. MongoDB, Memcached, MySQL Cluster u.v.m.
  • Stellen Sie sicher, dass Ihre Anforderung darin besteht, dass ein Datenbanksystem über eine hohe Verfügbarkeit14 sowie eine hohe Fehlertoleranz15 verfügt. Mit hoher Verfügbarkeit (auch als HA bezeichnet) sind Verfahren gemeint, die zur Ausfallsicherheit beitragen. Beispiele sind Datenbank-Spiegelungen,16 Failover-Clustering,17 Hot-Backups18 etc... Die Fehlertoleranz in einem DBMS beschreibt die Verfahren, die intern in einem Datenbanksystem durchgeführt werden, damit Datenbestände konsistent bleiben.
  • Bringen Sie in Erfahrung, ob mit dem Datenbanksystem die parallele Verarbeitung von großen Datenmengen erforderlich bzw. gewünscht ist. Die parallele Verarbeitung wird oft in Zusammenhang mit dem Begriff Multithreading19 gebracht. Stellen Sie dazu sicher, dass das DBMS Multi-Threading unterstützt und somit optimal auf Mehrkernprozessoren läuft. Für die hohe parallele Verarbeitung von großen Datenmengen sollten Sie auch in Betracht ziehen, dass Sie über ein ausreichend leistungsfähiges Serversystem verfügen, welches über genügend Arbeitsspeicher und über ein schnelles Festplattensystem verfügt.
  • Verteilte Datenbanken sind eine Technik von DBMS um Datenbestände auf mehrere Rechnerknoten zu verteilen, so dass sie autonom und meist unabhängig voneinander funktionieren können. Der Betrieb von verteilten Datenbanken wird u.a. für die Hochverfügbarkeit (siehe vorheriges Kriterium) eingesetzt. Überprüfen Sie, ob Ihre Anforderungen diese Technik benötigt. Häufige Einsatzgebiete verteilter Datenbanken sind z.B. in der Cloud- oder bei SaaS-Applikationen.

1 vgl. auch Ullenboom, Christian Java ist auch eine Insel, aufgerufen am 08.09.2017
2 vgl. auch Stärk, Jochen PHP-Tutorial - Was ist ODBC?, aufgerufen am 08.09.2017
3 Verknüpfungen bzw. Beziehungen zwischen Tabellen werden oft als “JOINS” bezeichnet. Häufig enthalten Abfragen Tabellen mit vielen JOINS auf andere andere Tabellen.
4 vgl. Computerwoche, Was ist denn nun eigentlich das Relationenmodell?, vom 27.08.1976, aufgerufen am 08.09.2017
5 Atomicity (Teilschritte einer Transaktion werden ganz oder gar nichts ausführt), Consistency (Eine Transaktion führt von einem konsistenten Stand zum nächsten), Isolation (Angabe eines Levels für die Darstellung von Transaktionen) und Durability (Nach Beendigung einer Transaktion, wird auch nach Fehlern das Ergebnis persistent erhalten bleiben)
6 Eine Downtime ist eine bewusste oder durch Fehler provozierte Abschaltung des Datenbankdienstes. Es kann in dieser Zeit ohne Sicherungsmaßnahmen auf keine Datenbankanfragen antworten oder diese ausführen.
7 Aufteilen der Datenbank auf mehrer Systeme mit individuellen Rollen: z.B. sechs Slave Datenbanksysteme für ausschließliche lesende Operation und zwei Mastersysteme, die Änderung an den Daten entgegen nehmen und diese widerum an den Slave übermitteln.
vgl. auch Replikationen in Datenbanken, Yves Adler, Hochschule für Technik, Wirtschaft, und Kultur Leipzig, Fachbereich: Informatik, Mathematik und Naturwissenschaften, aufgerufen am 08.09.2017
8 Dieses wird meist vom Datenbanksystem selber verwaltet, z.B. werden Abfragen intern optimal umgeschrieben, damit diese effizienter laufen.
9 Mit der Attributverwaltung ist die Verwaltung mit Hilfe einer Oberfläche des eigentlichen Datensatzes gemeint.
10 Mit der Metadatenverwaltung ist die Verwaltung durch eine Oberfläche gemeint, weitere Daten eines Datensatzes zu verwalten. Beispiel: Weitere Bilder, Dokumente, Bücher. Es wird mit der Metadatenverwaltung nicht der eigentlich Datensatz bearbeitet.
11 Mit Views ist eine Technik bei Datenbankensysteme gemeint, die über eine Datenbankabfrage eine Grundmenge des Rückgabeergebnis bildet, worauf hin mit weiteren Datenbankabfragen gearbeitet werden kann.
12 Gespeicherte Prozeduren
13 Geschäftslogik sind hier Programmfunktionen auf Anwendungsebene.
14 vgl. auch Hochverfügbarkeit, Vorlesung zur Datenbankadministration, Karsten Schmidt, AG DBIS University of Kaiserslautern, Germany
15 vgl. auch Fehlertoleranz, Prof. Dr. Klaus Küspert, Vorlesung Fehlertoleranz in Datenbanksystemen, Friedrich-Schiller-Universität Jena
16 Spiegelungen der Daten auf zwei oder mehrere Systemen
17 Aufbewahren des Datenbankstands redundant auf verschiedene Rechnerknoten
18 Ausführungen von Datensicherungen während des Betriebs und des Zugriffs
19 Gleichzeitiges Abarbeiten von Programmsequenzen in Fäden
Abkürzungen:
DBMS: Data Base Management System
SQL: Structured Query Language
MDX: Multidimensional Expressions
SOAP: Simple Object Access Protocol
JCA: Java Connection Architecture
XML: Extended Markup Language
JDBC: Java Data Base Connectivity
ODBC: Open Database Connectivity
OLE: Object Linking and Embedding
DB: Datenbank
GUI: Graphical User Interface
u.v.m.: und vieles mehr
vgl.: vergleiche
AG: Aktiengesellschaft
Dr.: Doktor