Eine Datenbank ist ein System, dass der elektronischen Datenverwaltung dient. In der Datenbank werden die Datensätze effizient, dauerhaft und widerspruchsfrei gesammelt. Ziel ist es, dass die Informationen in der Form abgelegt werden, dass sie jederzeit einfach abgerufen, aktualisiert und verwaltet werden können.
Woraus bestehen Datenbanken?
Das Datenbanksystem besteht aus der eigentlichen Datenbank, also der Menge an gespeicherten Datensätzen und der Verwaltungssoftware, dem Datenbankmanagementsystem (DBMS). Das Datenbankmanagementsystem organisiert die Speicherung der Daten in einer sinnvollen Struktur. Außerdem ist das DBMS für die Kontrolle jedes lesenden und schreibenden Zugriffs verantwortlich.
Die Abfrage von Datensätzen erfolgt über eine vom DBMS zur Verfügung gestellte Datenbanksprache. Es gibt verschiedene Möglichkeiten, Daten in einer Datenbank zu strukturieren, die durch das zugrunde liegende Datenbankmodell erklärt werden. Am weitesten verbreitet ist das relationale Datenbanksystem.
Datenbanken stellen sicher, dass Unternehmen jederzeit optimal auf ihren Datenbestand zugreifen können und sind somit ein kritischer Bestandteil der IT eines Unternehmens. Neben der Korrektheit, Vollständigkeit und Verfügbarkeit muss eine Datenbank auch Aspekte der Datensicherheit berücksichtigen. Datenbanken bilden die gesamte Prozesskette des Unternehmens ab und beinhalten auch Datensätze, die von allgemeinem Interesse sind.
Als Schnittstelle stellt das Datenbanksystem eine Datenbanksprache für folgende Aktionen zur Verfügung:
- Abfrage und Manipulation des Daten (DML)
- Definition der Datenstruktur und Verwaltung der Datenbank (DDL)
- Steuerung der Berechtigung (DCL)
Wird ein relationales Datenbanksystem eingesetzt, werden alle drei Bereiche durch die Datenbanksprache SQL abgedeckt. Es gibt jedoch auch DBS, bei denen für die unterschiedlichen Funktionen unterschiedliche Sprachen eingesetzt werden.
Datenbankmanagementsystem
Das DBMS ist die Komponente des Datenbanksystems, die für die Verwaltung der Daten zuständig ist. Es handelt sich dabei um die Software, die für die Strukturierung und Abspeicherung der Datensätze verantwortlich ist und das Datenbankmodell festlegt. Es hängt im Wesentlichen vom Datenbankmanagementsystem ab, wie schnell und funktional das gesamte System ist.
Ein DBMS ist ein sehr komplexes Softwaresystem und eine der wichtigsten Komponenten der IT-Landschaft eines Unternehmens.
Das DBMS hat folgende Funktionen:
- speichern, überschreiben und löschen der Daten
- Metadaten verwalten
- Gewährleistung der Datensicherheit
- Sicherstellung des Datenschutzes
- Herstellung einer Datenintegrität
- Transaktionskonzept für Mehrnutzerbetrieb erstellen
- Abfragen optimieren
- Trigger und Stored Produces ermöglichen
- Kennzahlen des DBMS zur Verfügung stellen
Datenbank: Kernbestandteil des Datenbanksystems
Der eigentliche logisch zusammenhängende Datenbestand wird als Datenbank bezeichnet. Dieser Datenbestand wird vom DBMS verwaltet und den Nutzern und Anwendungen auf Speichermedien zur Verfügung gestellt. Um die Effizienz zu erhöhen, werden schnelle Zwischenspeicher verwendet und die Daten an sich hierarchisch strukturiert. Für die Nutzung der Daten wenden sich die Anwender oder Anwendersysteme an die Datenbank. Ein Datenmodell legt die logische Struktur fest, nach der alle Datensätze konsistent abgespeichert werden.
Welche Datenbanktypen werden unterschieden?
Das wichtigste Unterscheidungsmerkmal ist das Datenbankmodell. Dieses Modell legt fest, wie die Datensätze intern strukturiert werden. Es gibt verschiedene Möglichkeiten der Strukturierung. Bei einer hierarchischen Strukturierung stehen die Datensätze ausschließlich in einer Mutter-Kind-Beziehung zueinander. Demgegenüber werden bei Netzwerkstrukturen die Daten in Netzwerken verknüpft.
In einem objektorientierten Datenbankmodell verwaltet das Datenbanksystem selbst die Beziehungen zwischen den verschiedenen Datenobjekten. In diesem Modell können die Objekte Attribute und Daten von anderen Objekten erben. Das dokumentenorientierte Modell speichert die Daten als Dokumente, die über verschiedene Attribute verfügen können, ab. In diesem Modell wird keine Strukturgleichheit vorausgesetzt.
Das am weitesten verbreitete Datenbankmodell ist das relationale Modell, wobei die Datensätze in Tabellen abgespeichert und verwaltet werden. Jeder Datensatz wird in einer Zeile gespeichert. Der große Vorteil besteht darin, dass es beliebig viele Beziehungen zwischen den Daten geben kann. Diese Beziehungen werden durch die Werte bestimmter Tabellenspalten festgelegt. Da dieses Datenbankmodell (oder Mischformen mit einem hohen Anteil an diesem Modell) am häufigsten genutzt wird, soll es im Folgenden näher erläutert werden.
Video: db1 2: Video zum Wissensgebiet „Datenbank-Organisation“ des ECDL-Moduls „Datenbanken anwenden“
Das relationale Datenbankmodell
Das relationale Datenbankmodell gilt als Standard bei der Entwicklung eines Datenbanksystems und basiert auf den Prinzipien der relationalen Algebra. Bekannte und verbreitete Systeme sind Access sowie der Oracle-SQL-Server.
Bei diesen Datenbankmodellen werden drei Elemente verwendet:
- Tabellen
- Attribute
- Beziehungen
Das relationale Datenbankmodell ist die mathematische Beschreibung einer Tabelle sowie der Beziehungen dieser zu anderen Tabellen. Die relationale Algebra bestimmt die Operationen auf den Relationen und ist des Weiteren die Grundlage für die Datenbanksprache SQL. Vorteile dieser Datenbankmodelle sind die Einfachheit und die Flexibilität.
Aufbau einer relationalen Datenbank
Vereinfacht ausgedrückt ist ein relationales Datenbankmodell eine Sammlung von Tabellen, die miteinander verknüpft sind, wobei die Art der Verknüpfung die Struktur der Datensätze ausmacht. Ein Datensatz entspricht einer Zeile (dem sogenannten Tupel) in einer Tabelle.
Jedes Tupel besteht wiederum aus vielen verschiedenen Eigenschaften (den sogenannten Attributen), die identisch sind mit den Spalten einer Tabelle. Für jede Tabelle werden mit einem Relationsschema die Anzahl und der Typ der Attribute festgelegt. Die Verknüpfungen (Beziehungen) werden über Primärschlüssel hergestellt. Mit diesem Primärschlüssel können dann bestimmte Attribute abgefragt werden.
Grenzen der relationalen Datenbanken
Relationale Datenbanken sind geeignet, wenn sich die Strukturen der Daten in Tabellen abbilden lassen. Das gilt beispielsweise für Buchungen oder Lagerbestände. Es ist aber auch möglich, komplexere Tatbestände abzubilden, für die eine Tabelle nicht ausreicht. In diesem Fall werden mehrere Tabellen miteinander verknüpft. Die sogenannten Schlüsselfelder stellen die Verknüpfung zwischen den Datensätzen her und ermöglichen es, auf einen ganz speziellen Datensatz zuzugreifen.
Dennoch werden vermehrt innovative Datenbankmodelle genutzt, mit denen die Nachteile der relationalen Datenbank überwunden werden. Speziell für Anwendungen im Bereich Big Data, bei denen es darum geht, riesige Datenmengen aus polystrukturierten Quellen zu integrieren und flexibel an veränderte Bedingungen anzupassen, stoßen die relationalen Datenbankmodelle an Grenzen:
- Segmentierung
- Notwendigkeit künstlicher Schlüsselattribute
- externe Programmierschnittstelle
- Abbildungsmöglichkeiten begrenzt
Im relationalen Modell werden die Objekte segmentiert auf vielen verschiedenen Relationen abgespeichert. Die Anwendungsobjekte bestehen wiederum aus vielen verschiedenen Objekten oder Listen von Objekten. Bei einer Abfrage müssen komplexe Objekte durch „Joins“ rekonstruiert werden. Das verkompliziert die Abfragen und erfordert außerdem, dass bei jeder strukturellen Änderung die Abfragen angepasst werden müssen.
Des Weiteren müssen teilweise zur korrekten Identifizierung von Datensätzen künstliche Schlüssel eingesetzt werden. Zu diesem Zweck werden Attribute, die nur der Verwaltung und nicht der Beschreibung dienen, in die Relationen aufgenommen.
Außerdem ist es oft nötig, Schnittstellen zu mächtigeren als in der relationalen Datenbank genutzten Programmiersprachen herzustellen, was zu Problemen mit der Handhabung der Datenbank führen kann. Ein besonderer Nachteil der relationalen Datenbanksysteme besteht darin, dass teilweise Objekteigenschaften und Objektverhalten nicht adäquat abgebildet werden können.
Das anwendungstypische Verhalten der Objekte ist nicht darstellbar und muss umständlich in einer Anwendersoftware außerhalb der Datenbank beschrieben werden. Greifen verschiedene Anwendungen auf den identischen Datenbestand zu, kann eine redundante Implementierung die Folge sein.
Trotz aller Kritikpunkte sind die relationalen Datenbanksysteme immer noch am Weitesten verbreitet und punkten besonders mit Schnelligkeit und Zuverlässigkeit. In Branchen (beispielsweise Banken), bei denen ein kurzer Ausfall hohe monetäre Schäden verursachen würde, setzen deshalb die Unternehmen gern auf diese sichere Variante. Die Desktop-Versionen werden häufig von kleineren und mittelständischen Unternehmen verwendet.
Datenbanksysteme der neuen Generation: Nicht-relationale Datenbanken
Besonders wenn es darum geht, große Datenmengen aus unterschiedlichsten Datenquellen zu verarbeiten, kommen neue Konzepte ins Spiel. Die objektorientierten Datenbanken ermöglichen die wesentlich präzisere Abbildung von Informationen. Es ist denkbar, beispielsweise elektronische Schaltungen gemäß der Struktur abzuspeichern. Das hat zur Folge, dass es möglich wird, Teilschaltungen aus der gesamten Struktur herauszulösen und problemlos zu ersetzen. Objektorientierte Datenbankmodelle sind also wesentlich besser geeignet, um veränderte Strukturen zu übernehmen.
Zunehmend verbreitet sind die NoSQL-Datenbanken, die verschiedene Probleme der SQL-Datenbanken beseitigen. Die wachsende Datenflut führte zur Entwicklung dieser neuen Generation von Datenbanksystemen. Die Verarbeitung großer Datenmengen geht schneller als mit den relationalen Datenbanken. Bei diesem Ansatz wird kein Tabellenschema verwendet, sodass die Zugriffe beschleunigt werden. Besonders in Szenarien, in denen ein Big Data Einsatz notwendig wird, ist es sinnvoll, mit einem nicht-relationalen Datenbanksystem zu planen.
Ein wesentliches Merkmal dieser neuen Generation von Datenbanken ist, dass auf die Datendefinitionssprache SQL, welche die Strukturierung der Daten vorgibt, verzichtet wird. NoSQL bedeutet jedoch nicht, dass vollständig auf alle Elemente von SQL verzichtet wird. NoSQL bedeutet vielmehr „Not only SQL“, es werden also weitere Elemente aufgenommen, mit denen die Nachteile relationaler Datenbanken vermieden werden sollen.
Es geht immer darum, die Skalierbarkeit und Flexibilität klassischer Datenbanksysteme zu erhöhen, denn genau diese Fähigkeiten sind gefordert, wenn im Bereich Big Data riesige Datenmengen aus unstrukturierten Datenquellen verarbeitet werden sollen. Die SQL-Datenbanken sind demgegenüber nur schwer erweiter- und veränderbar.
Vorteile von NoSQL-Datenbanken
Nicht-relationale NoSQL-Datenbanken sind immer dann überlegen, wenn nicht-relational zugreifbare Daten wie beispielsweise unstrukturierte Kommunikationsdaten oder Daten aus den Social Media verarbeitet werden müssen. Des Weiteren können mit den NoSQL-Datenbanken auch sehr gut Datenmengen auf Basis von Video- und Bilddateien oder Audiodateien verwaltet werden.
NoSQL-Datenbanken verwenden im Gegensatz zu den relationalen SQL-Datenbanken keine Transaktionen, sondern synchronisieren Datenmengen in kurzen Zeitabständen zwischen den Knoten und erreichen somit eine Konsistenz. Aus diesem Grund ist es möglich, mit NoSQL-Datenbanken riesige Datenvolumen zu verarbeiten. Für manche Big Data Abfragen ist dies eine unabdingbare Voraussetzung.
Meist sind die NoSQL-Datenbanken Ergänzungen zu bestehenden SQL-Datenbanken, ohne diese vollständig zu ersetzen. Immer wenn feste Strukturen vorliegen und Daten untereinander zugewiesen werden müssen, sind die SQL-Datenbanken eine gute Wahl.
Besonders die Tatsache, dass auch Mitarbeiter ohne vertiefte IT-Kenntnisse die relationalen Datenbanken problemlos nutzen können, spricht dafür, dass auch in Zukunft SQL-Datenbanksysteme eingesetzt werden. Große Anbieter wie Oracle ermöglichen außerdem die Unterstützung von unstrukturierten Daten. Die SQL-Datenbanken überzeugen zudem damit, dass sie in Sachen Funktionalität sehr ausgereift sind.
Es gibt zahlreiche NoSQL Open Source Angebote wie beispielsweise Cassandra, MongoDB und HBase. Diese Datenbanksysteme unterstützten Cluster mit vielen gleichberechtigten Knoten und sind auf diese Weise relativ leicht skalierbar. Damit wird es möglich, den wachsenden Datenmengen Rechnung zu tragen. Außerdem gehen auch Big Data Anwendungen wie Hadoop nach diesem Prinzip vor, sodass der parallele Einsatz sehr sinnvoll ist.
Anstatt Quellcodes zu optimieren, bessere Abfragen zu generieren oder Indizes zu erstellen, können die Administratoren einfach neue Knoten in den Cluster einfügen, um die Rechenleistung zu maximieren. Als positiver Nebeneffekt steigt damit gleichzeitig die Verfügbarkeit der Datensätze, denn jeder neue Knoten erhöht die Ausfallsicherheit. Darüber hinaus sind keine Datensicherungen mehr notwendig.
Verschiedene Varianten von NoSQL-Datenbanken
Spaltenorientierte „Wide-Column-Datenbanken“ sind eine andere Möglichkeit, ein nicht-relationales Datenbanksystem zu implementieren, das dennoch einige Vorteile der relationalen Systeme aufweist. Diese Datenbanken sind geeignet, wenn es darum geht, große Datenmengen zu verarbeiten, bei denen relationale Datenbanken an Grenzen stoßen. Wichtig ist jedoch, dass die Daten nicht völlig unstrukturiert sind. Bei einem derartigen Datenmodell werden zwar sehr viele Zeilen aber auf der anderen Seite nur relativ wenige Spalten benötigt.
Werden bei Abfragen nicht alle Spalten verwendet, arbeitet dieses Datenbanksystem besonders effizient, denn im Normalfall werden bei jeder neuen Abfrage komplett alle Spalten ausgelesen. Bei sehr großen Datenvolumen ist diese Vorgehensweise jedoch aufwendig und verbraucht sehr viel Leistung.
Eine spaltenorientierte Datenbank nutzt im Gegensatz dazu nur genau die Spalten, die für die jeweilige Abfrage relevant sind. Es ist außerdem möglich, Spalten in Bereiche zu unterteilen und somit einheitliche Datentypen zu generieren, die jeweils nur eine überschaubare Anzahl von Werten pro Spalte aufweisen. Diese Datenbanken bieten das Potenzial, stark komprimiert zu werden, sodass Speicherplatz gespart werden kann. Das Einsparpotenzial ist besonders im Big Data Bereich sehr hoch.
Eine weitere Variante sind die Graphen-Datenbanken. Diese Datenbankmodelle speichern die unstrukturierten Daten zusammen mit deren Eigenschaften in Diagrammen. In diesem Fall wird das Datenbankformat RDF „Resource Description Framework“ verwendet, bei dem die Daten innerhalb von Graphen gespeichert werden. Ein derartiges Datenbankmodell eignet sich besonders zur Darstellung von Nutzerbeziehungen in den Sozialen Netzwerken. Die Abfragen werden dadurch beschleunigt, dass die Traversierung eines Graphen stets beim Startknoten beginnt.
In-Memory-Datenbanken
In-Memory-Datenbanken bieten eine weitere Möglichkeit, große Datenmengen zu verarbeiten. Abfragen können extrem schnell durchgeführt werden, denn alle Daten liegen im Arbeitsspeicher des Servers. Die Technik wird auch von einigen relationalen Datenbanksystemen verwendet. Das wesentliche Merkmal dieser Datenbanken ist, dass sich alle Daten und auch die Servermechanismen im Arbeitsspeicher befinden. Damit erlauben derartige Datenbanken Datenanalysen großer Datenbestände nahezu in Echtzeit.
Der SQL Server 2014 von Microsoft ermöglicht es, ganze Datenbanken im Arbeitsspeicher zu betreiben. Die Technologie ist unter dem Namen Online Transaction Processing (OLTP) bekannt und sorgt für extrem hohe Abfragegeschwindigkeiten innerhalb von integrierten Datenbanken, sodass sie auch für den Big Data Bereich hervorragend einsetzbar ist. Der Beschleunigungsfaktor liegt zwischen zehn und 50, was bei sehr großen Datenbanken ein wichtiges Entscheidungskriterium bedeutet.
Zusätzlich ist es Microsoft gelungen, die Datenbestände stark zu komprimieren, sodass sie nur noch sieben Prozent ihres ursprünglichen Volumens aufweisen und deswegen wesentlich weniger Speicherkapazität im Arbeitsspeicher benötigen. Des Weiteren ist die Aktualisierung der Daten ebenfalls möglich, sodass es nicht nötig ist, einen Index neu zu erstellen.
Welche Nachteile sind mit NoSQL-Strukturen verbunden?
Im Bereich Big Data sind die Datenbankstrukturen oft sehr kompliziert, sodass die Planung, Entwicklung und auch der Betrieb und eine eventuelle Optimierung sehr zeitaufwendig sind. Darüber hinaus ist es bei derartigen Systemen zwingend notwendig, in die Qualifikation der Mitarbeiter zu investieren. Bei den Open Source Lösungen ist meist kein ausreichender Support verfügbar, sodass die Unternehmen alle aufkommenden Probleme intern lösen müssen.
Welche Datenbankmodelle erfüllen die Anforderungen der Zukunft?
Die relationalen Datenbanken galten jahrzehntelang als das Optimum und die Open Source Lösung MySQL ist aus diesem Grund immer noch die Basis der meisten Webanwendungen. Big Data, das Internet of Things, Cloud-Lösungen, Sensordaten und viele weitere Entwicklungen verlangen jedoch nach skalierbaren, flexiblen Datenbankmodellen. Das führte zur Entwicklung nicht-relationaler Alternativen, die diesen Anforderungen besser gewachsen sind.
Resultat sind die dokumentenorientierten NoSQL-Systeme, bei denen auf die Verwendung der Abfragesprache SQL verzichtet wird. Einerseits steigen damit die Anforderungen an die Anwendungsschicht, aber auf der anderen Seite wird es dadurch möglich, Datenbestände und auch Arbeitsprozesse auf verschiedene Server zu verteilen. Derartige Datenbanksysteme sind dementsprechend fast unendlich skalierbar.
Außerdem ist die Strukturierung der Datensätze weniger starr, was selbstverständlich besonders bei unstrukturierten Daten ein großer Vorteil ist. Während bei einer relationalen Datenbank beim Hinzufügen anders strukturierter Datensätze die gesamte Datenbankstruktur verändert werden müsste, kann man bei nicht-relationalen Datenbanken einfach neue Datensätze hinzufügen, ohne etwas an der Grundstruktur zu verändern. Bei einer SQL-Datenbank müssten zwischen den Tabellen neue Relationen hergestellt werden, was extrem aufwendig ist.
NoSQL-Datenbanken sind für die Herausforderungen, denen die Unternehmen in Zukunft im Bereich der Datenanalyse begegnen, besser gewappnet. Mit ihnen können die meisten Probleme, die Big Data den Firmen heute noch bereitet, gelöst werden. Diese Datenbanken verfügen über ein sehr flexibles Datenmodell, sodass alle bekannten Formate gespeichert, verwaltet und durchsucht werden können. Das hat zur Folge, dass kaum noch eine Notwendigkeit zur Datentransformation besteht.
Wenn jedoch auf die Datentransformation verzichtet werden kann, verschwinden auch Probleme, die aus den fehleranfälligen Konvertierungs- und ETL-Prozessen resultieren. Eine mangelnde Datenintegrität und Einbußen in Sachen Funktionalität werden vermieden. Unternehmen können sehr viel einfacher heterogene Daten integrieren. Es ist darüber hinaus auch problemloser möglich, unternehmensindividuelle Anwendungen zu generieren und dynamische Inhalte bereitzustellen.
Datenbank-Trends
Die JAXenter-Umfrage 2017 ergab, dass sowohl die SQL- als auch die innovativen NoSQL-Datenbanksysteme weit verbreitet sind. Die Umfrage belegt auch, dass die Themen Datenspeicherung und Datenverarbeitung von hoher Relevanz für die Unternehmen sind. Die SQL-Datenbanken sind jedoch keine feste Größe mehr und man erwartet auch nicht, ein Datenbanksystem anzuschaffen, das dann mehr oder weniger unauffällig im Hintergrund funktioniert. Heute stehen den Firmen vielfältige Lösungen zur Verfügung, mit denen unternehmensindividuell der Weg in Richtung Big Data und Industrie 4.0 beschritten werden kann.
Die Datenbank eines Unternehmens ist entscheidend dafür, ob es gelingt, eine wachsende Datenflut und neue Datentypen zu speichern und zu verarbeiten. Nur dann können eigentlich wertlose Daten zu relevantem Wissen transformiert werden. Diese digitale Transformation ist die Zukunftsaufgabe, der sich sowohl Konzerne als auch kleine und mittelständische Unternehmen stellen müssen, um in einer globalisierten Wirtschaft wettbewerbsfähig zu bleiben. Unternehmensdaten müssen in einem breiten Kontext analysiert werden.
Dabei gibt es neben den unstrukturierten Daten aus Quellen wie den Social Media immer noch strukturierte Daten wie Finanzdaten, die ebenso wichtig für den Geschäftserfolg sind. Diese Daten zuverlässig, sicher und darüber hinaus modifizierbar zu speichern, gelingt immer noch am besten mit relationalen Datenbankmodellen. Aus diesem Grund spielen diese traditionellen Datenbanken weiterhin in den Unternehmen eine große Rolle und werden diese Rolle aller Wahrscheinlichkeit nach auch noch lange behalten. Es ist dennoch wichtig, für die Big Data Anwendungen nicht-relationale Ergänzungen zu betrachten und in die IT Struktur der Unternehmen zu integrieren.
Bildnachweis:© Shutterstock – Titelbild: Sergey Nivens – #01: Blackboard – #02: JNT Visual – #03: mitya – #04:Profit_Image – #05: Photon photo