Datenbank

Aus Tuxfutter

Wechseln zu: Navigation, Suche

Bei einer Datenbank handelt es sich um eine Sammlung von Daten, welche aus der Sicht eines Endbenutzers zusammengehören.

Inhaltsverzeichnis

[Bearbeiten] Merkmale, Typen

Eine Datenbank hat verschiedene Merkmale:

  • Datenbestand
Die vorhandenen Daten in einer Datenbank enthalten alle Daten des abgebildeten Problembereichs, sind explizit (d.h. entsprechend dem Problembereich strukturiert) und sind nach verschiedenen Kriterien auswertbar.
  • Datenorganisation
Die Daten sind integriert, d.h. logisch verknüpfbare Informationseinheiten sind erkennbar und nicht redundant gespeichert. Die Datenorganisation ist anwendungs-unabhängig.
  • Datenzugriff
Der Zugriff auf die Datenbank kann nur mit Hilfe der vom DBMS (siehe unten) zur Verfügung gestellten Methoden erfolgen.

Es existieren verschiedene Typen von Datenbanken:

  • relational (erfahren derzeit die weiteste Verbreitung)
  • hierarchisch
  • objektorientiert
  • multidimensional

Eine Datenbank besteht aus mehreren Tabellen. Zur Verwaltung von Datenbanken setzt man ein Datenbank-Management-System (DBMS) ein - gemeinsam mit einer oder mehreren Datenbanken bildet diese das Datenbanksystem (DBS).

[Bearbeiten] Begriffe

[Bearbeiten] Tabelle

Die Daten einer Datenbank werden in einer Tabelle gespeichert. Man kann sich diese durchaus folgendermaßen vorstellen:

MA_ID Name Vorname Aufgabenbereich
1 Müller Paul Netzwerk, Routing
2 Meier Axel Systemsoftware
3 Kühn Dietmar Anwendungen
4 Bauer Otto Nutzerservice

Mittels sogenannter Schlüssel kann man Verknüpfungen zu anderen Tabellen herstellen.

[Bearbeiten] Schlüssel

Um Relationen zu anderen Tabellen zu ermöglichen, werden Schlüssel verwendet. Es wird in einer Tabelle eine zusätzliche Spalte eingefügt, die einen Eintrag (meistens eine Zahl) enthält, der auf eine andere Tabelle verweist. Zusätzlich zur obigen Mitarbeiter-Tabelle könnte man nun eine Arbeitsplatz-Tabelle definieren, die Eigenschaften über den Arbeitsplatz enthält:

AP_ID Ort Raum MA
1 Keller 20 3
2 Südbau 127 1
3 Hauptgebäude 316 2
4 Keller 54 4

Über die Spalte MA kann nun eine Verknüpfung zum Mitarbeiter, der im entsprechenden Raum sitzt, hergestellt werden. Man sieht es schon: Eigentlich müsste man auch den Ort in eine extra Tabelle packen, um ihn nicht mehrfach abspeichern zu müssen. Dieses Auslagern von Daten nennt man Normalisieren.

[Bearbeiten] Relation

Die oben gezeigte Verknüpfung zwischen Tabellen nennt man Relation. Es existieren unidirektionale Relationen (wie oben) und bidirektionale Relationen. Für letztere würden wir in der ersten Tabelle (Mitarbeiter) noch eine Spalte AP einfügen, in der die AP_ID des Arbeitsplatzes enthalten ist, an dem der Mitarbeiter sitzt. Dies ist speziell bei großen Datenbanken mit vielen Tabellen und Relationen nützlich.

[Bearbeiten] Index

Ein Index beschleunigt die Suche in Tabellenspalten erheblich. Er besteht (grob gesagt) aus einer Ansammlung von Zeigern, die eine Ordnungsrelation auf die enthaltenen Werte beschreiben.

[Bearbeiten] Einige Eigenschaften

[Bearbeiten] Transaktionen

DBS unterstützen Transaktionen. Das bedeutet, dass lesende und/oder schreibende Aktionen auf die Datenbank immer am Stück durchgeführt werden. Dabei gilt das ACID-Prinzip:

  • Atomicity
Die Aktion wird entweder komplett oder gar nicht ausgeführt.
  • Consistency
Wird durch die Verknüpfung zweier Schlüssel der Wertebereich einer Variablen eingeschränkt, so muss die DBMS bei einer Transaktion sicherstellen, dass diese Variable einen gültigen Wert enthält
  • Isolation
Die DBMS muss sicherstellen, dass bei gleichzeitigem Zugriff mehrerer Benutzer keine inkonsistenten Datenzustände auftreten, d.h. sie muss einen sequentiellen Zugriff dieser Benutzer sicherstellen.
  • Durability
Die Änderungen in der DB müssen unter allen Umständen nach Abschluss der Transaktion dauerhaft sein. Sie dürfen nicht durch Stromausfälle, Systemabstürze o.ä. verloren gehen.

[Bearbeiten] Trigger

Mit Hilfe von Triggern kann bspw. auf eine sehr einfache Art Logging betrieben werden. An bestimmte Befehle von SQL (wie INSERT, UPDATE oder DELETE) kann man Codesequenzen knüpfen, die vor Durchführung der Aktion ausgeführt werden. Dadurch ergeben sich auch Möglichkeiten, Datenkonsistenzen zu prüfen. Derzeit unterstützt MySQL, das derzeit im OpenSource-Bereich am meisten verbreitete Datenbanksystem, keine Trigger und es scheint auch keine Planungen diesbezüglich von Seiten der Entwickler zu geben.

[Bearbeiten] Stored Procedures

Dabei handelt es sich um fertige Funktionen, die auf dem Datenbank-Server (oftmals an zentraler Stelle) abgelegt werden. Bei unvorsichtiger Implementierung können mittels Stored Procedures große Sicherheitslöcher aufgerissen werden. Allerdings kann mit ihnen der Datenverkehr zwischen Anwendung und Datenbank-Server erheblich minimiert werden.

[Bearbeiten] Siehe auch

[Bearbeiten] Netzverweise

'Persönliche Werkzeuge