Ein Datenbanksystem (DBS) ist ein System zur

Werbung
Ein Datenbanksystem (DBS) ist ein System zur elektronischen Datenverwaltung. Die
wesentliche Aufgabe eines DBS ist es, große Datenmengen effizient, widerspruchsfrei und
dauerhaft zu speichern und benötigte Teilmengen in unterschiedlichen, bedarfsgerechten
Darstellungsformen für Benutzer und Anwendungsprogramme bereitzustellen.
Ein DBS besteht aus zwei Teilen: der Verwaltungssoftware, genannt
Datenbankmanagementsystem (DBMS) und der Menge der zu verwaltenden Daten, der
eigentlichen Datenbank (DB). Die Verwaltungssoftware organisiert intern die strukturierte
Speicherung der Daten und kontrolliert alle lesenden und schreibenden Zugriffe auf die
Datenbank. Zur Abfrage und Verwaltung der Daten bietet ein Datenbanksystem eine
Datenbanksprache an.
Datenbanksysteme gibt es in verschiedenen Formen. Die Art und Weise, wie ein solches System
Daten speichert und verwaltet wird durch das Datenbankmodell festgelegt. Die bekannteste Form
eines Datenbanksystems ist das Relationale Datenbanksystem.
Inhaltsverzeichnis
•
•
•
•
•
•
1 Geschichte
2 Bedeutung
3 Komponenten eines Datenbanksystems
• 3.1 Datenbankmanagementsystem
• 3.2 Datenbank
• 3.3 Datenbankrecht
4 Beispiele
5 Eigenschaften eines DBMS
• 5.1 Datensicherheit
• 5.2 Transaktionen
• 5.3 Datenintegrität
• 5.4 Anfrageoptimierung
• 5.5 Anwendungsunterstützung
• 5.6 Sprachen
• 5.7 Mehrbenutzerfähigkeit
6 Verschiedene Formen von Datenbanksystemen
• 6.1 Datenbankmodell
• 6.2 Ausrichtung
Geschichte
Ausgehend von Problemen bei der Verarbeitung von Daten in einfachen Dateien, wurde in den
1960er Jahren das Konzept eingeführt, Daten durch eine separate Softwareschicht 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). Die damit
verwalteten Datenbanken waren hierarchisch strukturiert. Parallel dazu definierte CODASYL ein
Modell für netzwerkartig strukturierte 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 [1] . 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ührenfreie Versionen ihrer Datenbank-Software an.
Bedeutung
Datenbanksysteme sind heute ein zentraler Bestandteil fast jedes Software-Systems. Damit
stellen sie einen kritischen Teil vieler Unternehmen und Behörden 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.
Komponenten eines Datenbanksystems
Das Datenbanksystem ist das ausgeführte DBMS zusammen mit den zu verwaltenden Daten, der
Datenbank. Ein DBS gewährleistet die persistente Speicherung sowie die Konsistenz der
Nutzdaten einer Institution und bietet mit dem 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 maßgeblich
ü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.
Gängig ist die Abkürzung RDBMS für ein relationales Datenbankmanagementsystem.
Datenbank
In der Theorie versteht man unter Datenbank (engl. database) einen logisch zusammengehörigen
Datenbestand. Dieser Datenbestand wird von einem laufenden DBMS verwaltet und für
Anwendungssysteme und Benutzer unsichtbar auf nichtflüchtigen Speichermedien abgelegt. Um
einen effizienten Zugriff auf die Datenbank zu gewährleisten, verwaltet das DBMS in der Regel
eine Speicherhierarchie, die insbesondere auch einen schnellen Zwischenspeicher (Pufferpool)
umfasst. Zur Wahrung der Konsistenz des Datenbestandes müssen sich alle Anwendungssysteme
an das DBMS wenden, um die Datenbank nutzen zu können. Allein administrativen Tätigkeiten,
wie zum Beispiel der Datensicherung, ist der direkte Zugriff auf den Speicher 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 die jeweils inhaltlich
zusammengehörigen Daten. Bei verteilten Datenbanken gibt es auch im Modell mehrere
Datenbanken auf unterschiedlichen Systemen, die miteinander verbunden sind.
Datenbankrecht
Neben der ursprünglichen Bedeutung in der elektronischen Datenverarbeitung, die in diesem
Artikel behandelt wird, wird der Begriff Datenbank heute auch für Sammlungen von Daten
verwendet, die nicht elektronisch vorliegen. Mit rechtlichen Aspekten solcher Datenbanken im
allgemeinen Sinn beschäftigt sich das Datenbankrecht. Ob durch die bloße Ansammlung von
Daten eigenständige Schutzrechte entstehen können, ist umstritten und in verschiedenen Ländern
unterschiedlich geregelt.
Beispiele
•
•
•
•
•
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. Datenbanksysteme von Banken
und Versicherungen werden zum Tagesgeschäft (OLTP) und periodisch für
Massendrucksachen, Analysen und ähnliches verwendet (OLAP).
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.
Faktisch alle mittelständischen Unternehmen und Großkonzerne arbeiten zur
Ressourcenplanung mit ERP-Systemen, deren Datenteil in Form von Datenbanksystemen
vorliegt.
Dieser Artikel in seiner in der Wikipedia vorliegenden Fassung wird neben allen anderen
dort enthaltenen Artikeln durch ein Datenbanksystem verwaltet (Wikipedia-Technik).
Marktforschungsinstitute tragen eigene und Fremddaten in Data Warehouses
(Datenlagern) zusammen.
Eigenschaften eines DBMS
Die wesentlichen Eigenschaften eines Datenbankmanagementsystems lassen sich wie folgt
beschreiben:
• Speichern der Daten
• Verwaltung der Metadaten
• Datensicherheit
• Mehrbenutzerbetrieb durch Transaktionen
• Sicherstellen der Datenintegrität
• Anfrageoptimierung
• Bereitstellen von Indizes
• Bereitstellung von Triggern
• Stored Procedures
Datensicherheit
Das RDBMS speichert die relationalen Daten auf einem Speichermedium. Neben den
eigentlichen Daten werden ebenfalls Informationen über die Datenschemata und Zugriffsrechte
von Benutzern gespeichert. Letztere sind wichtig, um die Datensicherheit zu garantieren. Dazu
gehört sowohl Schutz gegen Datenverlust sowie Schutz gegen unerlaubten Zugriff. Die
Metadaten eines DBMS werden auch als das Data Dictionary oder Katalog des Systems
bezeichnet.
Ein weiterer wichtiger Aspekt von Datenbanken ist das Sichern des Datenbestandes durch
Backups. In der Praxis ist dies oft ein nicht zu vernachlässigendes Performance-Problem, da
während eines Backups Daten nur sehr eingeschränkt modifiziert werden dürfen.
Transaktionen
Ein weiterer wichtiger Teil der Datensicherheit ist das Transaktionskonzept, das Daten gegen
Race Conditions durch den parallelen Zugriff mehrerer Benutzer schützt. Andernfalls könnten
Daten von verschiedenen Benutzern gleichzeitig geändert werden. Das Ergebnis der Änderungen
würde dann vom Zufall abhängen. Vereinfacht dargestellt, sperren Transaktionen Daten
vorübergehend für den Zugriff durch andere Benutzer, bis eine Transaktion durch einen Commit
beendet wird. Danach werden die geänderten Daten wieder freigegeben.
Datenintegrität
Die Integrität der Daten kann durch Constraints sichergestellt werden. Dies sind Regeln im
Managementsystem, die beschreiben, wie Daten verändert werden dürfen. Der wichtigste
Vertreter bei relationalen Datenbanksystemen ist der Foreign Key Constraint. Dieser verhindert,
dass Daten gelöscht werden können, die noch von einer anderen Tabelle benötigt werden. Das
sind Daten, die über einen Foreign Key referenziert werden.
Anfrageoptimierung
Ausführungsplan in Form eines Operatorbaums
Damit Daten abgefragt und manipuliert werden können, stellt das DBMS eine Datenbanksprache
zur Verfügung. Eine Anfrage an das Datenbanksystem wird dabei zunächst in die logischen
Operationen der relationalen Algebra übersetzt. Danach werden sogenannte Datenbankoperatoren
ausgewählt, die die logische Operation tatsächlich auf den Daten ausführt. Die Wahl der
Operatoren und die Reihenfolge ihrer Ausführung nennt man das Erstellen eines
Ausführungsplans durch den Anfrageoptimierer. Der Optimierer ist ein besonders komplexer Teil
der Datenbanksoftware und hat wesentlichen Einfluss auf die Effizienz des Gesamtsystems.
Bei der Anfrageoptimierung spielen Indizes eine wichtige Rolle. Sie dienen dazu, schnell einen
bestimmten Datensatz zu finden. Welche Daten einen Index erhalten, wird mit dem
Datenbankschema festgelegt, kann aber später von einem Datenbankadministrator angepasst
werden.
Anwendungsunterstützung
Zur Unterstützung von Datenbankapplikationen bieten Datenbanksysteme Trigger und Stored
Procedures an. Ein Trigger löst eine Aktion in der Datenbank aus, wenn ein bestimmtes Ereignis
eingetreten ist, häufig bei Einfüge- oder Änderungsoperationen. Stored Procedures dienen dem
Ausführen von Scripten in der Datenbank. Da Stored Procedures innerhalb des
Datenbanksystems ausgeführt werden, sind sie oft der effizienteste Weg, Daten zu manipulieren.
Sprachen
•
Das DBS stellt als Schnittstelle eine Datenbanksprache für die folgenden Zwecke zur
Verfügung:
• Datenabfrage und -manipulation (DML)
• Verwaltung der Datenbank und Definition der Datenstrukturen (DDL)
• Berechtigungssteuerung (DCL)
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 bzw. log files) verwaltet.
• Das DBS arbeitet transaktionsorientiert.
Diese Gruppe von Anforderungen zeichnet Datenbanksysteme im engeren Sinne gegenüber
funktional erweiterten Dateisystemen aus. In Microsoft Access mit Verwendung der in Windows
enthaltenen Microsoft Jet Engine kann beispielsweise jeder Anwender durch einfaches
Überschreiben der .mdb-Dateien das System unbrauchbar machen.
Verschiedene Formen von Datenbanksystemen
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 Datenbankschema an bestimmte Strukturierungsmöglichkeiten angepasst werden:
• hierarchisch: Die Datenobjekte können ausschließlich in einer Eltern-Kind-Beziehungen
zueinander stehen.
• netzwerkartig: Die Datenobjekte werden miteinander in Netzen verbunden.
• relational: Die Daten werden zeilenweise in Tabellen verwaltet. Es kann beliebige
Beziehungen zwischen Daten geben. Sie werden durch Werte bestimmter Tabellenspalten
festgelegt.
• objektorientiert: Die Beziehungen zwischen Datenobjekten werden vom
Datenbanksystem selbst verwaltet. Objekte können Eigenschaften und Daten von anderen
Objekten erben.
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
dasselbe 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.).
Herunterladen