Datentabellen als Rückgrat von Enterprise-Applikationen Relationale Datenbanksysteme im Überblick
Anbieter zum Thema
Viele Zusammenhänge in unternehmerischen Applikationen lassen sich in Tabellenform abbilden. Die relationale Datenbank ist also weiterhin das A und O von Applikationen aus dem Enterprise-Umfeld. Hier haben die Projektverantwortlichen eine recht große Produktauswahl. Zeit für einen Überblick.

Applikationen im Großunternehmen (Enterprise) müssen sehr oft umfassende Datenmengen verarbeiten. Typische Beispiele sind Kunden- oder Produktdatenbanken mit einem sehr hohen Aufkommen an Datenvolumen.
Grundsätzlich lassen sich die zu verwaltenden Daten nach ihrer Strukturiertheit unterscheiden. Strukturierte Daten sind dadurch gekennzeichnet, dass es sich um Daten gleichen Typs handelt, welche sich durch unterschiedliche Werte (Inhalte) unterscheiden. Man kann diese sehr gut in Tabellenform strukturieren. Tabellen wiederum bestehen aus Spalten und Zeilen.
Jede Zeile repräsentiert einen Datensatz, auf welchen über einen eindeutigen Schlüssel (Primärschlüssel) sehr schnell und direkt zugegriffen werden kann. Typische Beispiele sind Kundendaten (Name, Vorname, Anschrift, Geburtsdatum, …); Produktdaten (Artikelnummer, Bezeichnung, Preis, …) oder Bestelldaten (Produktnummer, Kundennummer, Anzahl, …). Ähnliche Beispiele lassen sich massenhaft finden.
Stehen die Tabellen untereinander über ein Schlüsselkonzept in Beziehung und sind die Tabellenstrukturen normalisiert, dann haben wir es mit einer relationalen Datenbank zu tun. Eine solche Datenstruktur ist ideal, um eindeutige Zusammenhänge zwischen den Datenobjekten abzubilden. Relationale Datenbanken setzen SQL als Abfragesprache ein. Diese Sprache besitzt eine einfache Syntax mit wenigen Grundbefehlen. Das zugehörige Datenmanagementsystem, Relational Database Management System (RDBMS), ist für alle Verwaltungsarbeiten und die Regelung der Datenzugriffe zuständig.
Probleme zeigen relationale Datenbanken im Big-Data-Umfeld. Bei sehr großen Datenmengen jenseits des Terabyte-Bereichs stoßen diese heute an ihre Grenzen oder verursachen sehr hohe Kosten aufgrund der dann notwendigen Hardware-Anforderungen. Ebenso ist es schwierig bzw. kaum möglich unstrukturierte Daten, wie zum Beispiel Bilder, Dokumente usw. in diesen Datenbanken zu speichern bzw. Datensätze mit unterschiedlichem Aufbau abzulegen. Die Tabellenstruktur erfordert nämlich, dass die Datensätze über jeweils die gleichen Attribute (Eigenschaften) verfügen müssen.
Einen anderen Ansatz gehen die NoSQL-Datenbanken. NoSQL steht für „Not only SQL“ und wird für alternative Datenbankkonzepte zum relationalen Modell verwendet. NoSQL-Datenbanken nutzen beispielsweise Objekte, Dokumente, Wertepaare oder Listen und Reihen für die Organisation der Daten. Es existieren keine festgelegten Tabellenschemata.
Im Vergleich zu den relationalen Datenbanken sind NoSQL-Datenbanken sehr flexibel einsetzbar und für große Datenmengen gut geeignet. Oft werden die NoSQL-Datenbanken auch als „strukturierte Datenspeicher“ (engl. Structured Storage) bezeichnet. Da NoSQL für mehrere Arten von Datenbanktechnologien steht, kann man diese Art von Datenbanksystemen nach unterschiedlichsten Kriterien klassifizieren.
Eine sinnvolle Einteilung ist die Unterscheidung nach dem Datenbankmodell. Die wichtigsten Datenbankmodelle von NoSQL-Datenbanken sind Key-Value-Datenbanksysteme, Dokumentenorientierte Datenbanksysteme, Column-Family Datenbanksysteme und Graph-Datenbanken. Einige Datenbanksystem ermöglichen auch die Speicherung der Daten nach beiden Mustern, d.h. in Tabellenform (relational) und in Form von Dokumenten (NoSQL).
Grundsätzlich lassen sich die gängigen Systeme jedoch einer der Kategorien zuordnen. Unternehmerische Daten und Beziehungen lassen sich sehr gut in tabellarischer Form abbilden. Daher ist die relationale Datenbank hier nach wie vor das Mittel der Wahl. Bei einer Neuentwicklung bzw. einem umfassenden Relaunch eines bestehenden Projektes steht die Wahl der Datenbank an.
Produktübersicht
Viele Datenbanken sind schon seit vielen Jahren auf den Markt. Sie gelten als ausgereift und haben sich bewährt. Als Auswahl- und Entscheidungskriterien können daher spezifische Anforderungen und Kriterien herangezogen werden, zum Beispiel:
- Unterstützte Plattformen (Betriebssysteme)
- Unabhängigkeit von Programmiersprachen
- unterstütze Betriebsmodi, wie zum Beispiel eine serverbasierte Installation oder als eingebettete Datenbank für mobile Geräte
- Performance bei großen Datenaufkommen
- Möglichkeiten der parallelen Verarbeitung
- Sicherheitsmechanismen
- Optionen zur Wiederherstellung nach einem Ausfall
- Lizenzkosten
- Tool- und Werkzeugunterstützung für Administration und Wartung
- Verschlüsselung auf Datenbank- Tabellen- und Spaltenebene
- Synchronisationsmöglichkeiten
- Backup-Verfahren
Gerade die Unabhängigkeit von Geräten und Betriebssystemen ist heute wichtig. Sowohl server- als auch clientseitig kommen unterschiedliche Systeme zum Einsatz, welche durch die Wahl der Datenbank nicht eingeschränkt werden sollte. Aufgrund der Vielzahl von Eigenschaften ist ein Vergleich von SQL-Datenbanken nicht so einfach. In der folgenden Tabelle sind typische Vertreter relationaler Datenbanken aufgeführt, welche häufig in unternehmerischen Applikationslandschaften eingesetzt werden.
Merkmal | Firebird | InterBase | MS SQL Server | MySQL | SQLite |
---|---|---|---|---|---|
primäres Datenbankmodell | relational | relational | relational | relational | relational |
sekundäres Datenbankmodell | - | - | Document Store, Graph DBMS | Document Store | - |
Webseite | www.firebirdsql.org | www.embarcadero.com/products/interbase | www.microsoft.com/en-us/sql-server | www.mysql.com | www.sqlite.org |
Entwickler | Firebird Foundation | Embarcadero | Microsoft | Oracle | Dwayne Richard Hipp |
Erscheinungsjahr | 2000 | 1984 | 1989 | 1995 | 2000 |
aktuelle Version | 3.0.5 (2020) | InterBase 2020 (2019) | SQL Server 2019, November 2019 | 8.0.21, 2020 | 3.32.2 (June 4, 2020), Juni 2020 |
Lizenz | Open Source | kommerziell | kommerziell | Open Source | Open Source |
Implementierungssprache | C/ C++ | C | C++ | C/ C++ | C |
Server-Betriebssysteme | FreeBSD, HP-UX, Linux, macOS, Solaris, Unix, Windows, serverlos | Android, iOS, Linux, macOS, Windows | Linux, Windows | FreeBSD, Linux, macOS, Solaris, Windows | serverlos |
Sekundärindizes | ja | ja | ja | ja | ja |
SQL | ja | ja | ja | ja | ja |
Zugriffskonzepte | ADO.NET, C/ C++ API, JDBC, ODBC, OLE DB | ADO.NET, JDBC, ODBC | ADO.NET, JDBC, ODBC, OLE DB, Tabular Data Stream (TDS) | ADO.NET, JDBC, ODBC, natives API | ADO.NET, JDBC, ODBC |
unterstützte Sprachen | C, C#, C++, Delphi, Java, JavaScript (Node.js), Lua, Perl, PHP, Python, Ruby | .Net, C, C++, Delphi, Java, Object Pascal, PHP, Ruby | C#, C++, Delphi, Go, Java, JavaScript (Node.js), PHP, Python, R, Ruby, Visual Basic | Ada, C, C#, C++, D, Delphi, Eiffel, Erlang, Haskell, Java, JavaScript (Node.js), Objective-C, OCaml, Perl, PHP, Python, Ruby, Scheme, Tcl | Actionscript, Ada, Basic, C, C#, C++, D, Delphi, Forth, Fortran, Haskell, Java, JavaScript, Lisp, Lua, MatLab, Objective-C, OCaml, Perl, PHP, PL/SQL, Python, R, Ruby, Scala, Scheme, Smalltalk, Tcl |
Triggers | ja | ja | ja | ja | ja |
Partitionierung | keine | Tablespaces | Tabellen können auf mehrere Files aufgeteilt werden | horizontale Partitionierung | keine |
Fremdschlüssel | ja | ja | ja | ja | ja |
Transaktionskonzept | ACID | ACID | ACID | ACID | ACID |
In-Memory-Unterstützung | - | ja | ja | ja | ja |
Berechtigungskonzept | Benutzer mit feingranularem Berechtigungskonzept | Benutzer mit feingranularem Berechtigungskonzept entsprechend SQL-Standard | Benutzer mit feingranularem Berechtigungskonzept entsprechend SQL-Standard | Benutzer mit feingranularem Berechtigungskonzept | - |
Tabelle 1: Vergleich ausgewählter relationaler Datenbanksysteme. Daten u.a. von https://db-engines.com/.
Es lohnt sich, die genannten Datenbanken noch etwas genauer unter die Lupe zu nehmen:
MySQL von Oracle ist eine populäre Open-Source-Datenbank, die kostenfrei heruntergeladen werden kann. Für die Bereitstellung müssen jedoch auch Lizenzgebühren entrichtet werden. Die MySQL-Webseite zeigt eine Übersicht zu den erhältlichen Editionen.
Der Vorteil von MySQL ist deren weite Verbreitung. Unzählige serverseitige Web Applikationen arbeiten mit dieser Datenbank. Treiber gibt es für alle relevanten Systeme und Programmiersprachen. Die MySQL-Architektur ist auf einer Server-zu-Server-Replikation aufgebaut und bietet daher keine mobile Datenbank. MySQL kann neben Daten in Tabellenform auch unstrukturierte Daten speichern.
InterBase ist eine kommerzielle Datenbank von Embarcadero. Diese Datenbank gibt es ebenso in unterschiedlichen Editionen, d.h. die Developer Edition, Embedded IBLite, Embedded IBToGo, Desktop Edition und Server Edition. InterBase steht ebenso für alle wichtigen Gerätetypen (Desktop, Server, Mobile) und Betriebssysteme (Windows, macOS, Linux, Android, iOS) zur Verfügung. Ebenso kann man die Datenbank auch als eingebettete Datenbank unter Android und iOS verwenden, so dass eine einheitliche Datenbank auf den unterschiedlichsten Geräten und Systemen angewendet werden kann.
Eine besondere Funktion ist die Möglichkeit, den physischen Speicherort der Tabellen festzulegen (Tablespaces) und damit für eine höhere Perfomance zu sorgen. Auf diese Weise lassen sich beispielsweise Backup- und Archivtabellen auf langsamere Festplatten und Tabellen für die Produktion auf schnelle SSDs abgelegen.
Ebenso wird ein fein granulares Berechtigungskonzept auf Tabellen- und Spaltenebene geboten. Informationen zu den Editionen von InterBase findet man auf der Embarcadero-Webseite. InterBase kann direkt aus den integrierten Entwicklungsumgebungen Delphi bzw. RAD Studio verwendet werden; es stehen jedoch auch Treiber für die Programmiersprachen Java, PHP, Pearl und .NET Zur Verfügung.
Die Datenbank Microsoft SQL Server ist eine leistungsfähige Datenbank mit einem umfassenden Satz an Features. Neben der kostenpflichtigen Server Edition stehen ebenso eine Express Edition und eine Developer Edition bereit. SQL Server 2019 Express ist kostenfrei und für kleinere Entwicklungs- und Produktionsumgebungen von Desktop-, Web- und Serveranwendungen geeignet. Die Developer Edition bietet den vollem Funktionsumfang, für die Nutzung als Entwicklungs- und Testdatenbank in einer Nichtproduktionsumgebung.
Microsoft SQL Server steht für die Betriebssysteme Windows und Linux zur Verfügung. Informationen zu den Editionen von MS SQL Server findet man auf der Microsoft-Website. Die Datenbank zeichnet sich besonders dadurch aus, dass man diese direkt als Cloud-Variante über den hauseigenen Dienst Azure verwenden kann. Ein denkbarer Migrationspfad vom physischen Server zum über die Cloud bereitgestellten Service zeigt die vorangestellte Abbildung.
Firebird ist ein freies Datenbankmanagementsystem. Es ist der Ableger des kommerziell vertriebenen relationalen Datenbankmanagementsystems InterBase und ist primär für Open Source Projekte geeignet. Das Funktionsspektrum ist gegenüber InterBase geringer. Die aktuelle Version ist Firebird 3.0 aus dem Jahr 2020. Die Datenbank kann plattformübergreifend und aus unterschiedlichen Programmiersprachen eingesetzt werden. Eine Übersicht findet man unter FirebirdSQL.org. Für kommerzielle Projekte kann man einen professionellen Support buchen.
SQLite ist eine kleinere und eigenständige eingebettete Datenbank, die direkt auf Geräten, oft mobilen Devices, verwendet wird. Das Dateiformat ist stabil, plattformübergreifend und abwärtskompatibel. Der Quellcode der Datenbank ist Public-Domain und steht zur freien Nutzung bereit. Für die Nutzung von SQLite ist kein unabhängiger Datenbankserver notwendig, d.h. Client und Server (Datenbank) laufen im gleichen Prozess.
Diese Auswahl an (relationalen) Datenbanken kann nicht vollständig sein. Unter DB-Engines.comfindet man umfassende Informationen zu weiteren kommerziellen und Open Source Produkten. Die Funktionsvielfalt zwingt dazu, sich im Vorfeld umfassend mit den tatsächlichen Anforderungen im Projekt auseinanderzusetzen.
Fazit
Die Auswahl an relationalen Datenbanken (kommerziell und Open Source) ist erfreulicherweise groß. Für die Auswahl des passendenden Produktes werden die Kriterien Betriebssystemunabhängigkeit, Möglichkeiten des feingranularen Datenschutzes auf Tabellen- und Spaltenebene und die dauerhaften Lizenzkosten eine wichtige Rolle spielen. Für eine endgültige Entscheidung ist eine Betrachtung im Detail notwendig.
Dr. Veikko Krypczyk ist begeisterter Entwickler und Fachautor. Elena Bochkor arbeitet primär am Entwurf und Design mobiler Anwendungen und Webseiten. Weitere Informationen zu diesen und anderen Themen der IT finden Sie unter Larinet.com.
(ID:46810861)