up right

1. Datenbanken:

Im Folgenden sollen die für weiteren ontologisch-philosophischen Betrachtungen relevanten Aspekte von Datenbanken erörtert werden. Es geht also bewusst nicht um technische Details oder konkrete Datenbankrealisierungen, sondern um theoretische Grundlagen und Konzepte, welche helfen sollen einen Eindruck der den Datenbanken zugrunde liegenden ontologischen Modelle zu erhalten.

Was ist eigentlich eine Datenbank? Eine Datenbank dient dazu Daten in elektronischer Form abzuspeichern, um zu einem späteren Zeitpunkt auf diese Daten wieder zugreifen zu können. Es handelt sich also - vereinfacht betrachtet - um eine Karteikartensammlung im Computer. Daten sind in diesem Zusammenhang abstrakte und strukturierte Teile einer Beschreibung der Welt (oder zumindest einer möglichen Welt), wobei sich die Welt aus sogenannten Sachverhalten zusammensetzt. Diese Sachverhalte werden mit Sätzen beschrieben. Normalerweise sind nur Sätze von Interesse die wahr sind - sogenannte Tatsachen -, also bestehende Sachverhalte beschreiben. Es steht allerdings jedermann frei auch nicht bestehende Sachverhalte in eine Datenbank abzubilden.
Die Form der Beschreibung, der Grad der Abstraktion bzw. die Struktur hängt von folgenden Aspekten ab:
 
 

  1. dem Datenbankprogramm
  2. dem Datenbankprogrammierer
  3. denjenigen die Daten in die Datenbank eingeben
  4. denjenigen die Daten aus der Datenbank abfragen

1.1. Komponenten einer Datenbank:

Der Begriff Datenbank als Überbegriff setzt sich aus mehreren Einzelteilen zusammen (siehe dazu Abbildung 1.1) :

Abb.1.1: Überblick über die einzelnen Komponenten einer Datenbank.
 

1.1.1. Benutzer:

Dieser hat normalerweise ein Problem mit der Komplexität oder dem Umfang gewisser Aufgaben. D.h. er/sie arbeitet mit Informationen - die Sachverhalte beschreiben - die einerseits nicht ohne weiteren Aufwand einfach gemerkt werden können, oder andererseits mit anderen Mitmenschen des öfteren geteilt werden müssen. Eine Möglichkeit wäre nun mit analogen Methoden (wie Karteikarten) die Informationen zu erfassen. Dies bringt aber meist Probleme wenn Daten, auch über weite Distanzen, von mehreren Personen benutzt werden sollen. Auch die oben angesprochene Komplexität bzw. der Umfang der zu behandelnden Daten und Datenabfragen setzt einer solchen Methode Grenzen, besonders was das Suchen in den Daten betrifft. Somit wird vom Benutzer die Forderung nach leistungsfähigeren Hilfsmittel kommen.
Ist die Datenbank erst einmal im Einsatz ist es Aufgabe des Benutzers bei der Eingabe von den Sachverhalten zu den Daten zu abstrahieren und nach der Abfrage die erhaltenen Daten so zu interpretieren, dass wieder Beschreibungen von Sachverhalten entstehen.
 

1.1.2. Datenbank-Analytiker/Programmierer:

Der Datenbank-Analytiker/Programmierer ist im Normalfall nicht der, der das "Database Management System", kurz DBMS,  programmiert, sondern folgende Aufgaben übernimmt: Zuerst analysiert der  Datenbank-Analytiker/Programmierer die Benutzerwünsche und versucht herauszufinden welche Informationsteile der Sachverhaltsbeschreibung der Benutzer wirklich verwenden möchte und auf welche Art und Weise dieser auf diese Informationen zugreifen möchte. Sowohl die Art der Information als auch die Art der Abfragen bestimmt nun das Datenmodell welches als Abstraktion des Sachverhalts entworfen wird. Wenn noch nicht entschieden wurde welches Datenbankmodell verwendet wird, kann aufgrund der Analyse auch ein entsprechendes Datenbankmodell ausgewählt werden. In jedem Fall hat aber das Datenbankmodell ebenfalls Einfluss auf das Datenmodell, also die Art und Weise wie die Sachverhalte mit Daten modelliert werden. Der Datenbank-Programmierer bettet danach die Daten in eine zu definierende Struktur. Diese Struktur wird wiederum vom Datenbankmodell und der Art zukünftiger Abfragen bestimmt. Als nächstes werden Programmmodule erstellt welche die Eingabe und Abfrage von Daten, möglichst den Kundenbedürfnissen entsprechend, ermöglichen.
 

1.1.3. Datenbank Administrator:

Der Datenbank-Administrator ist für die Integrität der gespeicherten Daten zuständig. Er betreut und wartet sowohl die gespeicherten Daten als auch das "Datenbank Management System" sowie die Eingabe- und Abfragemodule, ohne aber notwendiger Weise zu wissen welche Sachverhalte durch die gespeicherten Daten beschrieben werden bzw. wie die Daten zu interpretieren sind.
 

1.1.4. Eingabe- und Abfrage-Programmmodule:

Diese Programmmodule dienen der vereinfachten und benutzerfreundlichen Eingabe bzw. Abfrage von Daten. Das "Datenbank Management System" besitzt zwar normaler Weise eine Schnittstelle um Daten sowohl eingeben als auch abrufen zu können. Dazu ist es aber nötig die genaue Syntax (und Semantik) einer speziellen Datenbanksprache (z.B. SQL: Structured Query Language) zu kennen. Meist wird sowohl für die Eingabe als auch für die Abfrage sowie für die Darstellung der Ergebnisdaten einer Abfrage ein Formular am Bildschirm verwendet, in welches die bereits abstrahierten Daten einzugeben sind bzw. angezeigt werden. Es gibt aber auch Tendenzen, wo natürlichsprachliche Sachverhaltsbeschreibungen für Eingabe, Abfrage wie Ausgabe verwendet werden können. Diese Systeme sind derzeit aber noch im Entwicklungsstadium. Geschrieben werden können solche Programmmodule mit nahezu jeder beliebigen Programmiersprache, solange das verwendete Datenbanksystem ein Interface für diese Sprache anbietet. Ein solches Interface transformiert dann die Datenformate der Datenbank in die Datenformate der verwendeten Programmiersprache und umgekehrt.
 

1.1.5. Datenbank Management System (DBMS):

Das "Datenbank Management System" (in weiteren kurz DBMS) ist jener Programmteil der für die Kommunikation zwischen Benutzer (im allgemeinen Sinn; also auch Datenbankprogrammierer, Datenbank-Administrator,...) und dem Computersystem mit den gespeicherten Daten zuständig ist. Das DBMS hat somit einen wesentlichen Einfluss darauf wie Daten tatsächlich im Computer gespeichert werden. Ebenso hängt vom DBMS ab wie Elementarsätze strukturiert, zerlegt und zu Daten abstrahiert werden. Das DBMS bestimmt die Grundkonzepte des ontologischen Modells, welche verwendet werden um eine abstrakte Beschreibung der Welt im Computer abzubilden. Dazu gibt es mindestens eine - meist aber mehrere - Datenbanksprache mit welcher  mit dem DBMS kommuniziert werden kann und somit die Datenbank entsprechend den individuellen Beschreibungen konfiguriert werden kann. Auch für die Abfrage von Daten ist das DBMS zuständig. Die Datenbanksprache bestimmt somit nicht nur die Struktur und Art der Eingabedaten sondern auch die Möglichkeit zu einem späteren Zeitpunkt wieder auf diese Daten zugreifen zu können.
Moderne DBMS lassen sich vom Benutzer seinen Bedürfnissen entsprechend erweitern, was sich dann ebenso in einer Erweiterung der Semantik der Datenbanksprache niederschlägt.
 

1.1.6. Gespeicherte Daten:

Bei den gespeicherten Daten handelt es sich um die physikalisch auf der Festplatte (oder anderen Speichermedien) abgespeicherten Rohdaten. Diese sind meist in ein binäres Schema, welches vom Datenbanksystem vorgegeben wird, eingebettet, sodass die ursprünglich eingegebenen Daten nicht mehr direkt (mittels der Systemsoftware), also ohne Umweg über das DBMS gelesen oder manipuliert werden können.
 

1.1.7. Der Computer:

Die Hardware und die Systemsoftware, auf denen das DBMS läuft, wird von diesem verwendet um Daten physikalisch auf dem Speichermedium abzuspeichern und von dort wieder einzulesen. Dabei handelt es sich meist um sehr einfache Input-/Output-Operationen wo ganze Dateien vom Computersystem an das DBMS übergeben werden, bzw. vom DBMS an das Computersystem zurückgegeben werden um diese wieder abzuspeichern. Aus Leistungsgründen umgehen manche DBMS Teile der Systemsoftware und greifen direkt auf die Hardware zu. Natürlich hat sowohl Hardware als auch Systemsoftware einen mehr oder weniger grossen Einfluss auf die Konzeption des DBMS und somit auf die Art und den Grad der Abstraktion der Daten. Da aber moderne Computersysteme eine sehr ähnliche System-Architektur besitzen funktionieren die meisten Datenbanken auf verschiedenen Systemen mit für den Benutzer nahezu gleichem Verhalten.
Wesentliche Änderungen bei den Computersystemen (z.B. Multiprozessorsysteme, holographische Speichermedien, Quantencomputing) haben aber normalerweise einen mehr oder weniger grossen Einfluss auf die Konzeption neuer Datenbanken und somit auch auf das ontologische Modell das diesen Konzepten zugrunde liegt.
Moderne Betriebssysteme inkludieren bereits gewisse Datenbankfunktionalitäten in ihren Basis-Funktionsumfang (Indexerstellung, Recordmanagement, ...) was den Gedanken nahe legt, dass es sich bei (solchen) Computersystemen eigentlich nur um Datenbankmaschinen handelt.
 

1.2. Der Abstraktionsprozess:

Bei den Sachverhalten kann es sich um Teile der wirklichen Welt oder um Teile einer virtuellen (möglichen) Welt (es könnte z.B. ein Schriftsteller Beschreibungen seiner Romanfiguren in einer Datenbank ablegen) handeln. Normalerweise sind im Zusammenhang mit Datenbanken nur Sachverhalte von Interesse die auch bestehen - es ist meist nur relevant was ist und nicht was nicht ist (manche Datenbanken verwenden sogar das Konzept, dass alles was nicht in der Datenbank abgebildet wurde automatisch als falsch oder nicht bestehender Sachverhalt interpretiert wird; siehe dazu weiter unten bei deduktiven datenbanken). Sachverhalte werden mittels Sätzen beschrieben. Bestehende Sachverhalte werden nur durch wahre Sätze beschrieben (das ist gewissermaßen die Definition wahrer Sätze). Man hat aber natürlich die Freiheit auch jede andere Art von Sätzen hier zu verwenden (falsche, unsinnige,...), jedoch würde das die Verwendbarkeit der in der Datenbank abgelegten Daten für andere Personen wesentlich erschweren.


Die Sätze werden zuerst aufgespaltet und umgeformt sodass eine möglichst einfache und einheitliche Form der Beschreibung entsteht. Diese Form hängt stark von der Art und der Struktur der verwendeten Datenbank ab. Die so gewonnenen Sätze (Elementar-Sätze) werden nun in Satzbausteine zerlegt, also ihrer Syntax entkleidet.
Dieser Prozess wird auch als semantische Modellierung bezeichnet. Einer der weitest verbreiteten Modelle stellt das "Entity/Relationship"-Modell dar. Dabei wird eine natürlichsprachige Beschreibung nach folgenden semantischen Konzepten, die sich bei der Beschreibung der Wirklichkeit als nützlich herausgestellt haben, analysiert: es gibt also so etwas wie Dinge oder eben Entitäten, welche nach Typen geordnet werden können. Diese Entitäten besitzen gewisse Eigenschaften, welche für alle Entitäten eines bestimmten Typs gleich sein sollen (somit den Typ definieren). Jede Entität ist etwas einmaliges und kann eindeutig identifiziert werden; man könnte auch von Identität sprechen. Und Entitäten können in bestimmten Zusammenhängen bzw. Verbindungen - den sogenannten "relationaships"- mit anderen Entitäten stehen. Hat man diese semantischen Grundbausteine erst einmal identifiziert kann man davon ein Datenmodell erstellen, auf das sich dieses semantische Modell optimal abbilden läßt (dass als Folge der "Entity/Relationship"-Analyse sogenannte Datenobjekte, Integritätsregeln und Operatoren festgelegt werden soll hier nur der Vollständigkeit halber erwähnt werden).

Man könnte auch sagen, dass die Satzbausteine als Daten interpretiert, d.h. in eine für die Datenbank geeignete Form umgewandelt werden. Diese Daten, also die Abbildung der abstrakten Satzbausteine in der Datenbank, sind die kleinsten Teile einer Datenbank aus Benutzersicht, also sozusagen Elementarbausteine. Intern werden diese Daten vom DBMS noch in Rohdaten umgewandelt und danach dem Computerbetriebssystem übergeben das diese Rohdaten als Binärdaten mittels der Systemsoftware in der Computerhardware ablegt.
Alle zu einem (Elementar-)Satz gehörenden Satzbausteine bilden einen Datenbankeintrag oder Datensatz.
Meist werden dann diese Datenbankeinträge, das sind die abstrahierten Teile von Sätzen mit gleichem Aufbau, also gleichen Satzbausteinen, in einem Teil der Datenbank gesammelt um zu einem späteren Zeitpunkt aus diesen Teil einen oder mehrere Datensätze nach bestimmten Suchkriterien auszuwählen.
Mittels des DBMS kann auf die gesammelten (Binär-)Daten bei einer späteren Abfragen oder Änderungen wieder über die Systemsoftware zugegriffen werden.
Einen Überblick über die verschiedenen Abstraktionsebenen mit einem einfachen Beispiel findet sich in folgender Aufstellung:
 


 

Bei der Abfrage von Daten aus einer Datenbank wird der umgekehrte Prozess in die Wege geleitet, wobei der Schritt von den Binärdaten über die Rohdaten hin zu den Daten vom DBMS (bzw. der Systemsoftware) reversibel erledigt wird. Ob der Konkretisierungsschritt von den Daten hin zu den Satzbausteinen, den Elementarsätzen und zum Satz ebenfalls gelingt, hängt sehr vom Design der Datenbank und dem Abstraktionsgrad der Daten ab. D.h. je stärker bei der Eingabe der Daten vom Satz her abstrahiert wird, desto schwieriger wird es werden die Daten richtig zu interpretieren, sodass sich daraus wieder der entsprechende Sachverhalt identifizieren lässt.



©Mag.Dr. Alfred Hofstadler : "Datenbanken und Wittgenstein: ontologische Vergleiche",Diplomarbeit an der Universität Wien, März 2001.
  up right