Datenbank Management System
Datenbankmanagementsysteme (abgekürzt DBMS, englisch Database Management System) sind Systemprogramme, die die strukturierte Speicherung von Daten in Datenbanken organisieren und alle lesenden und schreibenden Zugriffe kontrollieren. Sie sind ein wesentlicher Bestandteil moderner IT-Architekturen.
Einführung
Ein Datenbankmanagementsystem organisiert die strukturierte Speicherung von Daten in Datenbanken und kontrolliert alle lesenden und schreibenden Zugriffe. Zur Wahrung der Konsistenz des Datenbestandes müssen sich alle Anwendungssysteme an das DBMS wenden, um die Datenbank nutzen zu können.
Ein DBMS selbst gehört zur Kategorie der Systemsoftware, sorgt für eine dauerhafte Sicherung der Daten auf einem Speichermedium und ist ein wichtiger Bestandteil von mehrschichtigen Architekturen. Es gibt sehr viele Anbieter von DBMS. Ein sehr weitverbreitetes Produkt ist MySQL.
Zur Abfrage und Verwaltung der Daten bietet ein Datenbanksystem unterschiedliche Techniken. Dies hängt von der Art der Datenbank ab. So hat sich zum Beispiel die Structured Query Language (SQL) als Standard für relationale Datenbanken etabliert.
Funktionen eines DBMS
Die wesentlichen Funktionen von heutigen Datenbankmanagementsystemen sind:
- Modellierung von semantischen Modellen wie Entity-Relationship-Modellen
- Verwaltung mehrerer Datenbanken
- Speicherung, Überschreibung und Löschung von Daten
- Vorkehrungen zur Datensicherheit und Datenschutz durch Rechte- und Rollen-Konzepte
- 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
Arten von Datenbanken
Relationale Datenbank
Datenbanksysteme gibt es in verschiedenen Formen. Die gebräuchlichste Form ist das relationale Datenbankmodell. Die Art und Weise, wie ein solches System Daten speichert und verwaltet, wird durch das Datenbankschema festgelegt. Das Datenbankschema wird in der Regel aus einem Entity-Relationship-Modell abgeleitet.
Objektorientierte Datenbank
Am einfachsten lassen sich Objekte in objektorientierten Datenbanken serialisieren. Die Idee ist, dass man die im Speicher vorhandenen Objekte um einen persistenten Bereich erweitert, der dann von einer Datenbank verwaltet wird.
XML-Datenbanken
Ursprünglich ist XML als eine Sprache zur Darstellung von Dokumenten gestartet, mit der Zeit haben sich jedoch auch XML-Datenbanken entwickelt.
Komponenten
Ein Datenbankmanagementsystem besteht meist aus einer Administrationsoberfläche und den einzelnen Datenbanken. Datenbanken sind eigenständige Dienste. Die Administrationsoberfläche bietet eine Sicht auf diese Dienste durch eine grafische Benutzeroberfläche. Standardfunktionen können hier bequem gesteuert werden.
Technisch erfolgt die Interaktion mit einer Datenbank jedoch immer mit Hilfe der Sprache SQL. Aufgabenstellungen, die über die Standardanforderungen hinausgehen, müssen eigenständig durch SQL-Befehle programmiert werden. Eine Datenbank ist das Ergebnis eines Softwareentwicklungsprozesses.
Entwicklungsprozess
Zu Beginn wird die zu erstellende Datenbank durch ein semantisches Modell, z.B. ein Entity-Relationship-Modell, konzipiert. Gemäß dieses Designs wird die Datenbank mittels DDL - einem Teil von SQL - implementiert. Das Anlegen, Verändern, Löschen und Einsehen von Daten einer Datenbank erfolgt durch SQL-Abfragen bzw. -Anfragen. Jede Anfrage wird überprüft, ob sie den Konsistenzbedingungen der Datenbank entspricht. Wenn nicht, wird die Abfrage abgewiesen.
Architekturtypen
Stand-Alone-DBMS
Die Daten und das DBMS selbst befinden sich auf einem Rechner. Es können zwar unterschiedliche Anwendungen bzw. Anwender auf die Datenbank zugreifen, allerdings niemals parallel bzw. gleichzeitig. Erst wenn die Anwendung A die Datenbankverbindung zur Stand-Alone-Datenbank X geschlossen hat, kann eine zweite Anwendung B auf diese Datenbank X zugreifen.
Client-Server-Architektur
Einen anderen Ansatz verfolgen Client-Server-Datenbanken: Zugriff auf Dateien des Datenbestandes hat dort nur der Datenbank-Server, der die Arbeitsplatzrechner bedient. Anfragen werden also nicht auf dem Arbeitsplatzrechner bearbeitet, sondern auf dem Datenbank-Server, es werden dann nur die Ergebnisse an die Arbeitsplatzrechner geschickt. Hinzu kommt, dass Client-Server-Systeme meist viel besser auf den Umgang mit großen Datenmengen ausgerichtet sind.
Hersteller und Produkte
Es gibt eine Vielzahl von Anbietern und Produkten auf dem Markt. Alle basieren auf der Programmiersprache SQL. Jedoch verwendet jeder Hersteller einen anderen Dialekt dieser Sprache. Hier eine willkürliche Auswahl von Herstellern und Produkten:
- Microsoft Access von Microsoft
- Microsoft SQL Server von Microsoft
- MySQL von Oracle Cooperation
- PostgreSQL von PostgreSQL Global Development Group
- und viele andere