Ein Datenbank Management System (kurz DBMS) 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 einer Festplatte und ist ein wichtiger Bestandteil von mehrschichten Architekturen. Es gibt sehr viele Anbieter von DBMS. Ein sehr weitverbreitetes Produkt ist das DBMS von mysql.
Zur Abfrage und Verwaltung der Daten bietet ein Datenbanksystem unterschiedliche Techniken. Dies hängt ab von der Art der Datenbank. So hat sich zum Beispiel die Structured Query Language (kurz SQL) als Standard für Relationale Datenbanken etabliert.
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.
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.
Ursprünglich ist XML als eine Sprache zur Darstellung von Dokumenten gestartet, mi
Die wesentlichen Funktionen von heutigen Datenbankmanagementsystemen sind:
Modellierung von semantischen Modellen wie Entity-Relationsship-Modelle
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
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.
Zu Beginn wird die zu erstellende Datenbank durch ein semantisches Modell z.B. ein Entity-Relationsship-Modell konzipiert. Gemäß dieses Designs wird die Datenbank mittels DDL -ein Teil von SQL - implementiert. Das Anlegen, Verändern, Löschen und Einsehen von Daten einer Dat
enbank erfolgt durch SQL-Ab- bzw. -Anfragen. Jede Anfrage wird überprüft, ob sie den Konsistenzbedingungen der Datenbank entspricht. Wenn nicht, wird die Abfrage abgewiesen.
Es gibt unterschiedliche Typen von DBMS.
Die Daten und das DBMS selber 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 Datenbank Verbindung zur Stand Alone Datenbank X geschlossen hat, kann eine zweite Anwendung B auf diese Datenbank X zurgreifen (Quelle: Ebner: SQL lernen, 2002, Adison Wesley S.13)
Server Architecture (Quelle: https://docs.oracle.com)
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 (Quelle: Ebner: SQL lernen, 2002, Adison Wesley S.14) .
Es gibt eine Vielzahl von Anbietern und Produkte 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:
Access von Microsoft
SQL-Server von Microsoft
MySQL von Oracle Cooperation
Postgres SQL von PostgreSQL Global Development Group