Datenbank
Ein Datenbanksystem (DBS) ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe eines DBS ist es, große Datenmengen sicher zu speichern und für Abfragen durch Benutzer oder Anwendungssoftware bereitzustellen. Das System besteht dabei aus zwei Teilen, der Verwaltungssoftware, dem Datenbankmanagementsystem (DBMS) und dem eigentlichen Datenspeicher, der Datenbank.
Die Verwaltungssoftware hat die Aufgabe, die Daten in der Datenbank zu speichern, zu organisieren, zu modifizieren oder Abfragen, die über eine Abfragesprache gestellt wurden zu beantworten.
Die vorliegende Wikipedia-Software arbeitet z.B. mit einem Datenbanksystem.
Geschichte
Ausgehend von den Problemen bei der Verarbeitung herkömmlicher Dateien wurde in den 1960er Jahren das Konzept eingeführt, Daten durch eine Software-Schicht zwischen Betriebssystem (Dateiverwaltung) und Anwendungsprogramm zu verwalten. Dieses Konzept begegnete der Fehlentwicklung, dass Datenspeicher in Form von Dateien in der Regel für eine spezielle Anwendung konzipiert wurden und ein erheblicher Teil des Tagesgeschäfts mit Umkopieren, Mischen und Restrukturieren der Dateien belastet war.
Eines der ersten großen DBMS war IMS mit der Sprache DL/I (Data Language One), ein hierarchisches Modell. Parallel dazu definierte CODASYL ein Modell für netzwerkartige Datenbanken.
Einen wesentlichen Fortschritt erzielte in den 1960er und 1970er Jahren Edgar F. Codd mit seiner Forschungsarbeit am IBM Almaden Research Center. Codd entwickelte die Grundlagen des ersten experimentellen relationalen Datenbanksystems System R. Die Berkeley Group folgte mit Ingres und der Abfragesprache QUEL, Oracle (damals noch unter den Firmennamen SDL und RSI) verwertete die Ergebnisse des System R und führte SQL zum kommerziellen Erfolg. IBM folgte mit SQL/DS und DB2. Die relationalen Datenbanksysteme verdrängten in den 1980ern die hierarchischen und netzwerkartigen Systeme und der Großteil der Behörden, Konzerne, Institute und mittelständischen Unternehmen stellte seine IT auf Datenbanksysteme um.
Während in den 1990ern wenige kommerzielle Hersteller von Datenbank-Software faktisch den Markt beherrschten (namentlich IBM, Informix, Microsoft mit SQL Server und Oracle), erlangen in den 2000ern die Open-Source-Datenbankmanagementsysteme eine immer größere Bedeutung. Vor allem MySQL und PostgreSQL erzielten signifikante Marktanteile. Als Reaktion bieten die führenden kommerziellen Hersteller (gebühren-)freie Versionen ihrer Datenbank-Software an.
Komponenten eines Datenbanksystems
Das Datenbanksystem ist das ausgeführte DBMS zusammen mit seinem Datenspeicher, der Datenbank. Es speichert die Nutzdaten einer Institution und bietet dank DBMS eine Schnittstelle zur Abfrage, Manipulation und Verwaltung dieser Daten.
Datenbankmanagementsystem
Das Datenbankmanagementsystem (DBMS) ist die eingesetzte Software, die für das Datenbanksystem installiert und konfiguriert wird. Das DBMS legt das Datenbankmodell fest, hat einen Großteil der unten angeführten Anforderungen zu sichern und entscheidet zum großen Teil über Funktionalität und Geschwindigkeit des Systems. Datenbankmanagementsysteme selbst sind hochkomplexe Softwaresysteme.
Die Auswahl des gewünschten DBMS ist eine kritische Entscheidung.
Für Datenbankmanagementsystem wird (selten) auch der Begriff Datenbankverwaltungssystem (DBVS) verwendet.
Datenbank
In der Theorie versteht man unter Datenbank den reinen Datenspeicher als technische Daten-Basis (engl. database). Dieser Speicher wird von einem laufenden DBMS verwaltet, wobei sich alle Anwendungssysteme an das DBMS wenden und die Datenbank selbst für sie unsichtbar ist. Allein administrativen Tätigkeiten, wie z.B. der Datensicherung ist der direkte Zugriff auf die Datenbank erlaubt.
Einzelne DBMS-Hersteller verwenden geringfügig voneinander abweichende Begrifflichkeiten dafür, was man genau unter einer Datenbank versteht: entweder alle Daten, die von einem laufenden DBMS bzw. der Instanz verwaltet werden, oder nur jeweils inhaltlich zusammengehörigen Daten. Bei verteilten Datenbanken gibt es auch im Modell mehrere Datenbanken auf unterschiedlichen Systemen, die miteinander verbunden sind.
Anforderungen
Ein Datenbanksystem muss im Gegensatz zur herkömmlichen Dateiverarbeitung den folgenden Anforderungen genügen:
Strukturierung und Integrität
- Das DBS erlaubt die Verwaltung von strukturierten Daten.
- Die Strukturierung selbst ist Aufgabe der Datenmodellierung, es entsteht das Schema, in dem die Daten vorliegen.
- Die interne Speicherung (internes Schema, Datenbank) ist zweitrangig und wird vom DBMS gesteuert.
- Für Anwendungssysteme lassen sich Sichten auf das Schema definieren, die ebenfalls vom DBMS umgesetzt werden.
- Das System soll durch eine geeignete zentrale Struktur Doppelspeicherungen (Redundanzen) vermeiden.
- Das DBS erlaubt die logische Trennung von Anwendungsprogramm und Datenspeicher. Diese Anforderungen sind anschaulich in der ANSI-SPARC-Architektur beschrieben.
- Ein DBS überwacht aktiv Regeln zur Gewährleistung der Datenintegrität.
- Es lehnt falsche Verweise auf Daten ab (Referenzielle Integrität).
- Es achtet auf korrekte Wertebereiche (z.B. mit Prüfsummenbildung bei Kontonummern).
Sprachen
- Das DBS stellt als Schnittstelle eine Datenbanksprache für die folgenden Zwecke zur Verfügung:
Bei den relationalen DBMS sind die drei Kategorien in einer Sprache (SQL) vereint, bei anderen Systemen existiert aber durchaus eine Trennung in Form unterschiedlicher Sprachen.
Mehrbenutzerfähigkeit
- Für den Zugriff auf die Daten des DBS werden Berechtigungen verwaltet. Ohne Berechtigung kann die entsprechende Operation nicht durchgeführt werden.
- Für den (pseudo-)gleichzeitigen Zugriff mehrerer Anwendungen bzw. Anwender regelt das DBMS Konkurrenzsituationen.
- Es werden Sperren (engl. locks) verwaltet.
- Es werden Systemprotokolle (engl. logs) verwaltet.
- Das DBS arbeitet transaktionsorientiert.
Diese Gruppe von Anforderungen zeichnet Datenbanksysteme im engeren Sinne gegenüber funktional erweiterten Dateisystemen aus. In Microsoft Access kann beispielsweise jeder Anwender durch einfaches Überschreiben der Dateien das System unbrauchbar machen.
Betrieb
- Ein DBS verwaltet neben den Nutzdaten Daten über das DBS selbst, also Daten über die Daten (Meta-Daten), z.B. eine Liste aller Tabellennamen einer relationalen Datenbank. Diese Daten sind von der Administration oder anderen Berechtigten abfragbar.
Meta-Daten werden in einem so genannten Systemkatalog oder auch Data Dictionary gehalten.
- Ein DBS arbeitet mit Datensicherung und Wiederherstellung (Backup und Recovery).
- Ein DBS kann Daten im- oder exportieren.
- Ein DBS kann mit anderen DBS verbunden werden (verteilte Datenbanksysteme).
- Ein Datenbanksystem arbeitet auch bei großen Datenmengen mit akzeptabler Antwortzeit und hohem Durchsatz.
Für den Betrieb von DBS ist die Berufsgruppe der Datenbank-Administratoren (DBA) zuständig.
Charakteristika
Datenbankmodell
Grundlage für die Strukturierung der Daten und ihrer Beziehungen zueinander ist das Datenbankmodell, das durch den DBMS-Hersteller festgelegt wird. Je nach Datenbankmodell muss das Datenmodell an bestimmte Strukturierungsmöglichkeiten angepasst werden:
- hierarchisch: Die Datenobjekte stehen in verdrahteten Eltern-Kind Beziehungen zueinander.
- netzwerkartig: Die Datenobjekte werden miteinander in Netzen verdrahtet.
- relational: Die Datenobjekte stehen in flachen Tabellen, Beziehungen ergeben sich aus Werten der Tabellenspalten.
- objektorientiert: Die Datenobjekte werden miteinander verdrahtet, sind gegebenenfalls miteinander verwandt und können vom System immer eindeutig identifiziert werden.
Es existiert eine Vielzahl von Misch- und Nebenformen, wie zum Beispiel das objektrelationale Modell.
Ausrichtung
Klassischerweise unterscheidet man eine Ausrichtung des Systems auf viele kleine Anfragen (OLTP) oder lang andauernder Auswertungen (OLAP). Es ist aber durchaus gängig, dass das selbe System beiden Anforderungen gerecht werden muss und zum Beispiel tagsüber für den OLTP- und nachts für den OLAP-Betrieb „gefahren“ wird. Die DBA arbeitet dann unterschiedliche Konfigurationen aus (Hauptspeicher des Servers, Prozess-Anzahl, Optimierungsstrategie beim Zugriff etc.).
Verwendung
Bedeutung
Datenbanksysteme sind heute ein zentraler Bestandteil fast jedes Software-Systems. Sie verwalten Lagerbestände eines Unternehmens, Patienteninformationen in Krankenhäusern, Telefondaten in der Auskunft, Finanztransaktionen in der Bank. Damit stellen sie einen kritischen Teil jedes Unternehmens und jeder Behörde dar. Von der Verfügbarkeit, Vollständigkeit und Richtigkeit der Daten hängt die Aktionsfähigkeit eines Unternehmens ab. Die Datensicherheit ist daher ein wichtiger und gesetzlich vorgeschriebener Bestandteil der IT eines Unternehmens oder einer Behörde.
Beispiele
Die vollständige Automatisierung von Lagerbeständen macht eine manuelle Verwaltung heute unmöglich. Der Verlust einer Lagerdatenbank kann somit das Unternehmen in sehr kurzer Zeit finanziell ruinieren, da georderte Produkte nicht ausgeliefert werden können und es Monate dauern würde, die Bestände erneut zu inventarisieren. Lagerdatenbanksysteme werden zum Tagesgeschäft (OLTP) und periodisch für Analysen (OLAP) verwendet.
Alle Banken und Versicherungen arbeiten mit Datenbanksystemen, in der Regel mit den relationalen DBMS Oracle oder IBM DB2/UDB. Im Datenbanksystem sind alle Konteninformationen und Buchungen strukturiert abgelegt. In diesem Einsatzumfeld haben Datenschutz und Datensicherheit höchste Priorität. Ausrichtung: OLTP und OLAP.
Faktisch alle mittelständischen Unternehmen und Großkonzerne arbeiten mit ERP-Systemen, deren Datenteil in Form von Datenbanksystemen vorliegt (OLTP).
Dieser Artikel wird neben allen anderen Wikipedia-Artikeln durch ein Datenbanksystem verwaltet (Wikipedia-Technik). Ausrichtung: OLTP.
Marktforschungsinstitute tragen eigene und Fremddaten in Data Warehouses zusammen, Ausrichtung hier: OLAP.
Siehe auch
- DBLP: Bibliographisches Verzeichnis mit dem Schwerpunkt Datenbanksysteme und Logik Programmierung.
- Datenbank (Liste)
Literatur
- T. William Olle: The Codasyl Approach to Data Base Management. Wiley, 1978, ISBN 0471995797
- E. F. Codd: A relational model of data for large shared data banks. In: Communications of the ACM. 6/13/1970. Association for Computing Machinery, S. 377–387
- Alfons Kemper, André Eickler: Datenbanksysteme. Oldenbourg Verlag, ISBN 3-486-25706-4
- Helmut Dreßler: Datenstrukturentwurf (Vom Faktenchaos zur Anwenderdatenbank). R. Oldenbourg, München Wien 1995, ISBN 3-486-21808-5