Datenbank
Ein Datenbanksystem (DBS) kommt bei der Verwaltung elektronischer Daten zum Einsatz. Der wesentliche Aufgabenbereich liegt auf der dauerhaften, effizienten und widerspruchsfreien Speicherung großer Datenmengen und der Bereitstellung benötigter Teilmengen in unterschiedlichen, bedarfsgerechten Darstellungsformen für Benutzer und Anwendungsprogramme.
Datenbanksysteme bestehen aus zwei Teilen:
- Datenbankmanagementsystem (DBMS): Verwaltungssoftware
- Datenbank (DB): die Menge der zu verwaltenden Daten
Das DBMS organisiert die Struktur der Daten und kontrolliert die Zugriffe auf die Datenbank. Hierfür kommt eine sogenannte Datenbanksprache zum Einsatz.
Es gibt viele verschiedene Arten, wie ein DBS Daten speichert und verwaltet, dies wird durch das Datenbankmodell festgelegt. Das gebräuchlichste Datenbankmodell ist das Relationale Datenbanksystem.
Geschichte
Bereits in den 1960er Jahren wurde das Konzept eingeführt, Daten durch eine separate Softwareschicht zwischen Betriebssystem und Anwendungsprogramm zu verwalten.
Dieses erste Konzept einer Datenbank brachte jedoch noch einige Probleme auf. Zum Beispiel, dass Datenspeicher in Form von Dateien in der Regel für eine spezielle Anwendung konzipiert wurden und ein erheblicher Teil des Tagesgeschäfts mit der Restrukturierung der Dateien belastet war.
Der erste Vorreiter der heutigen Datenbankenmanagementsysteme war IMS mit der Sprache Data Language One (DL/I) und einer hierarchischen Struktur. Parallel dazu entwickelte CODASYL ein Modell für netzwerkartig strukturierte Datenbanken.
Einen riesigen Schritt in Richtung heutiger Datenbanken machte in den 1960er und 1970er Jahren Edgar F. Codd mit seiner Forschungsarbeit am IDM Almaden Research Center. Mit seiner Arbeit entwickelte Codd die Grundlagen des ersten relationalen DBMS „System R“. Kurz darauf folgten weitere Systeme, wie Ingres von der Berkeley Group mit der Abfragesprache QUEL.
Die damaligen Firmen SDL / RSI (heute Oracle) verwerteten die Ergebnisse des System R und entwickelten das erfolgreiche SQL-DBMS.
In den 1980er Jahren wurden hierarchische und netzwerkartige Systeme von den relationalen Systemen verdrängt, woraufhin der Großteil der Unternehmen seine IT umstellte.
Zu den kommerziellen Hersteller von Datenbanksystemen in den 1990er Jahren zählen unter anderem IBM, Informix, Ashto-Tate mit dBASE sowie Microsoft und Oracle mit SQL-Servern. Allerdings werden in den 2000ern Open-Source-Datenbankmanagementsysteme immer populärer, woraufhin die führenden kommerziellen Hersteller gebührenfreie Versionen ihrer DB-Software anboten.
Bedeutung
Mittlerweile zählen Datenbanksysteme zum zentralen Bestandteil der Unternehmenssoftware, denn die Aktionsfähigkeit vieler Unternehmen hängt von der Verfügbarkeit, Vollständigkeit und Richtigkeit der Daten ab.
Die Datensicherheit ist daher ein wichtiger und gesetzlich vorgeschriebener Bestandteil der IT eines Unternehmens oder einer Behörde.
Komponenten eines Datenbanksystems
Ein Datenbanksystem besteht aus dem ausgeführten Datenbankmanagementsystem und den zu verwaltenden Daten. Mittels eines DBS lassen sich Daten persistent speichern und bietet mit dem DBMS eine Schnittstelle zur Manipulation dieser Daten.
Datenbankmanagementsystem
Das „Gehirn“ einer Datenbank stellt das Datenbankmanagementsystem (DBMS) dar. Dieses Managementsystem legt das Datenbankmodell fest und entscheidet maßgeblich über Funktionalität und Geschwindigkeit des Systems. DBMS wird selten auch Datenbankvewaltungssystem genannt. Gängig ist ebenfalls die Bezeichnung RDBMS für ein relationales Datenbankmanagementsystem.
Datenbank
Unter einer Datenbank (engl. database) versteht man eine logisch zusammengehörige Sammlung an Datenbeständen. Diese Bestände werden vom DBMS verwaltet und auf, für Benutzer unsichtbaren, Speichermedien abgelegt. Für den effizienten Zugriff sorgt eine Speicherhierarchie, die auch über einen schnellen Zwischenspeicher verfügt (Pufferpool). Um die Datenbank nutzen zu können, müssen sich alle Anwendungssysteme an das DBMS wenden. Direkter Zugriff auf den Speicher wird nur bei administrativen Tätigkeiten, wie der Datensicherung, erlaubt.
Was genau mit dem Begriff Datenbank assoziiert wird hängt stark vom Hersteller der DBMS ab.
Funktionen eines DBMS
Wesentliche Funktionen von Datenbankmanagementsystemen:
- Speicherung, Überschreibung und Löschung von Daten
- Verwaltung der Metadaten
- Vorkehrungen zur Datensicherheit
- Vorkehrungen zum Datenschutz
- Vorkehrungen zur Datenintegrität
- Ermöglichung des Mehrbenutzerbetriebs durch das Transaktionskonzept
- Optimierung von Anfragen
- Ermöglichung von Triggern und Stored Procedures
- Bereitstellung von Kennzahlen über Technik und Betrieb des DBMS
Datensicherheit
Für die Speicherung der relationalen Daten auf ein Speichermedium wird das sogenannte RDBMS eingesetzt. Hier werden nicht nur die eigentlichen Daten selber, sondern auch Informationen über Datenschemata und Zugriffsrechte von Benutzern gespeichert. Diese Zugriffsrechte sind wichtig, um die Datensicherheit zu garantieren (Schutz gegen Datenverlust und unerlaubten Zugriff).
Ein weiterer Aufgabenbereich von Datenbanken ist die Sicherung der Daten mit Hilfe von Backups.
Transaktionen
Ein sogenanntes Transaktionskonzept schützt gegen den parallelen Zugriff mehrerer Benutzer. So wird sichergestellt, dass Daten von verschiedenen Benutzern nicht gleichzeitig geändert werden. Vereinfacht dargestellt, sperren Transaktionen Daten vorübergehend für den Zugriff durch andere Benutzer, bis eine Transaktion durch das „Absenden“ beendet wird.
Datenintegrität
Die Regeln, wie Daten verändert werden dürfen, werden durch sogenannte Constraints sichergestellt. Wichtigster Vertreter hier ist wohl der Foreign Key Constraint, welcher die Datenlöschung von momentan verwendeten Daten innerhalb anderer Tabellen verhindert.
Anfrage-Optimierung
Um die Daten einer Datenbank überhaupt verwalten zu können benötigt die DB eine Datenbanksprache. Dabei wird eine Anfrage zuerst in logische Operationen der relationalen Algebra übersetzt und danach werden sogenannte Datenbankoperatoren ausgewählt, welche die logischen Operationen ausführen. Die Wahl der Operatoren nennt man das Erstellen eines Ausführungsplans durch den Abfrageoptimierer. Dieser Optimierer hat wesentlichen Einfluss auf die Effizienz des Gesamtsystems.
Eine wichtige Rolle bei der Optimierung spielen sogenannte Indizes. Diese dienen zur schnellen Auffindung eines bestimmten Datensatzes.
Anwendungsunterstützung
Datenbanksysteme bieten in der Regel zur Unterstützung von Datenbankapplikation Trigger und Stored Procedures. Der Trigger löst eine Aktion aus, wenn eine bestimmte Bedingung erfüllt wird. Stored Procedures werden innerhalb des Datenbanksystems ausgeführt und sind damit die effizienteste Möglichkeit, Daten zu manipulieren.
Datenbanken, welche über diese Funktionen verfügen, werden aktive Datenbanken genannt.
Sprachen
Die Datenbanksprache dient als Schnittstelle für folgende Zwecke:
- Datenabfrage und -manipulation
- Verwaltung der Datenbank und Definition der Datenstrukturen
- Berechtigungssteuerung
Mehrbenutzerfähigkeit
Der Zugriff auf die Daten wird über Berechtigungen verwaltet. Diese bestimmen, welche Operationen ausgeführt werden dürfen.
Konkurrenzsituationen regeln den gleichzeitigen Zugriff mehrerer Anwendungen bzw. mehrerer Anwender.
Eine Gruppe von Anforderungen, welche Datenbanksysteme im engeren Sinne gegenüber funktional erweiterten Dateisystemen auszeichnet:
- Verwaltung von Sperren
- Verwaltung der Systemprotokolle
- transaktionsorientiertes Arbeiten
Verschiedene Formen von Datenbanksystemen
Datenbankmodell
Die Grundlage der Strukturierung der Daten basiert auf dem Datenbankmodell, welches vom jeweiligen Hersteller festgelegt wird. Je nach Modell muss das Datenbankschema an bestimmte Strukturierungsmöglichkeiten angepasst werden:
- hierarchisch: Datenobjekte können ausschließlich in einer Eltern-Kind-Beziehung zueinander stehen
- netzwerkartig: Datenobjekte werden in Netzen miteinander verbunden
- relational: Daten werden zeilenweise in Tabellen verwaltet
- objektorientiert: Die Beziehungen zwischen Datenobjekten werden vom Datenbanksystem selbst verwaltet
Dies sind jedoch nur die Standardarten, es gibt zudem eine Vielzahl von Misch- und Nebenformen.
Ausrichtung
Es gibt zwei klassische Arten, wie man ein System ausrichtet, auf viele kleine Anfragen (OLTP) oder lang andauernde Auswertungen (OLAP). Es kommt jedoch oft genug vor, dass Systeme beiden Anforderungen gerecht werden müssen (zum Beispiel: Tagsüber läuft OLTP und nachts OLAP). Die DBA arbeitet dann unterschiedliche Konfigurationen aus.