Datenbanksysteme - Aufbau und Funktionsweise

Der eine oder andere PC-Besitzer wird sich sicher wundern, daß in einer Zeitschrift, die sich mit einem derartig neuen Rechner wie dem ATARI ST beschäftigt, über ein schon relativ altes Softwarepaket wie dBase II (III) berichtet wird. Der Artikel soll auch nur jene ansprechen, die mit dem ATARI ST zum erstenmal einen PC erworben haben bzw. von einem Homecomputer aufgestiegen sind.
Nun aber zu dBase. Bei dBase II (III) handelt es sich um ein "relationales Datenbanksystem". Was ist das? Zur Beantwortung dieser Frage soll zunächst ein Uberblick über die drei wichtigsten Datenbankmodelle gegeben werden.

1) Die hierarchische Datenbank
Eine hierarchische Datenbank besteht aus Tabellen, die in einer vorgegebenen Reihenfolge durchgesehen werden müssen, um eine gewünschte Information zu finden. Abbildung 1 zeigt eine hierarchische Datenbank und die Schritte, die zur Erlangung einer Information vorgenommen werden müssen.

2) Die netzwerkartige Datenbank
Bei dieser Datenbank handelt es sich vom prinzipiellen Aufbau her um ein ähnliches Modell wie die hierarchische Datenbank, nur daß hier auch noch einzelne Verbindungen zwischen den Datensätzen bestehen können, dies macht die Datenbank etwas flexibler, da zur Erlangung einer Information nicht mehr die ganze Hierarchie durchlaufen werden muß.

3) Die relationale Datenbank
Dieses Modell unterscheidet sich von den ersten beiden grundlegend. Die Hierarchie der Felder ist nämlich aufgehoben. So lassen sich alle Felder als Schlüssel zum Auffinden von Informationen benutzen. Ein Datensatz wird nicht mehr als eine Menge diskreter Elemente angesehen, von denen eines als Hauptfeld herausgehoben ist, sondern als eine Reihe in einer zweidimensionalen Tabelle, wobei dann jedes Feld zu einer Spalte der Tabelle wird.

Wie das Beispiel zeigt, sind relationale Datenbanken sehr viel flexibler als hierarchische oder netzwerkartige Datenbanken, allerdings kann hier das Problem auftreten, daß es bei sehr großen Datenmengen relativ lange dauern kann, bis die gewünschten Datensätze gefunden sind.

Nach diesem Exkurs in die Theorie der Datenbanken nun endlich zurück zu dBase II.
Zunächst etwas über die Einsatzmöglichkeiten. Es ist unangebracht, ein begrenztes Gebiet hervorzuheben, etwa den Finanz- oder Personalbereich. Mit der gleichen Berechtigung könnte man das Materialwesen, den Sport oder die Bibliotheksverwaltung nennen. Die Anwendungsbereiche von dBase sind sehr weit gesteckt. Sie decken praktisch alle Gebiete der Datenverwaltung auf dem Personal-Computer.

Es sollte der Phantasie des jeweiligen Anwenders überlassen bleiben, weitere Einsatzmöglichkeiten einer Datenbank zu erkennen und die entsprechenden Daten sinnvoll aufzubereiten. Um die Einsatzmöglichkeiten besser beurteilen zu können, müssen natürlich die technischen Daten von dBase bekannt sein. (siehe Abb. 3)
Die Grenzen sollen allerdings nicht allzu euphorisch augenommen werden, denn wie eingangs erwähnt, kann es bei "großen" Dateien zu erheblichen Zeitproblemen bei der Bearbeitung einer Datei kommen. So benötigt z. B. dBase II zum Sortieren einer Datei mit 500 Datensätzen ca. 270 sec und zum Finden eines Datensatzes ca. 11 sec, bei dBase 111 sind diese Zeiten auf ca. 44 sec bzw. ca. 1 sec reduziert. Diese Zeiten können ebenfalls durch das Anlegen von Indexschlüsseln reduziert werden. Es ist deshalb empfehlenswert, nicht zu große Dateien zu verwenden oder gegebenenfalls eine Datei zu teilen. So könnten, z. B. bei der Kundenverwaltung, Adressen und Kontostände in getrennten Dateien abgelegt werden. Eine Verbindung beider Dateien ist in der Regel problemlos (dBase bietet z. B. den Befehl "Join", näheres ist im Handbuch oder der recht ansehnlichen Literatur zu finden).

ABBILDUNG 3
KENNDATEN UND GRENZEN dBase II


    Anzahl Felder/Datensatz 32 max
    Anzahl Zeichen/Datensatz 1000 max
    Anzahl Datensätze/Datei 65535 max
    Anzahl Zeichen/Zeichenkette 259 max
    Rechengenauigkeit 10 Stellen
    größter Wert 1.8 x 10 * * 63 ca
    kleinster Wert 1.0 x 10 * * -63 ca
Länge einer Programmdatei unbegrenzt (der integrierte Programmeditor kann .,nur" 5 000 Programmzeilen gleichzeitig bearbeitet,)

Ein weiteres Problem stellt auch die Kapazität der vorhandenen Massenspeicher dar, man stelle sich eine Datei mit 65 535 Datensätzen und 1000 Zeichen Datensatz vor. Man brauchte für eine derartige Datei einen Speicher von ca. 66 MByte Kapazität, hiermit wäre wohl jeder PC weit überfordert. Für das Arbeiten mit Floppy-Disc ist es sicher nicht sinnvoll, Dateien die größer als 100 KByte sind, zu benutzen (Zugriffszeit). Beim Arbeiten mit Winchesterplatte lassen sich auch größere Dateien verwenden. Wobei allerdings bedacht werden sollte, daß jede
Datei "gepflegt" werden muß, hier kann es bei großen Dateien schon zu Problemen kommen.

Nachdem nun ständig das Wort "Datei" gebraucht wurde, soll endlich erklärt werden, wodurch eine Datei bzw. deren Struktur bestimmt wird. Sie wird nur vom Anwender bestimmt.

Abb. 4 zeigt zwei Beispiele, wie die Struktur einer Datei aussehen könnte.

Die Abbildung zeigt außerdem zwei Beispiele für den Einsatz von dBase sowie die Trennung von zu großen Dateien. Ohne auf die vielfältigen Befehle von dBase einzugehen (näheres auch hier im Handbuch), soll noch die für die rationelle Arbeit mit dBase vorhandene Programmiersprache erwähnt werden.

Diejenigen Benutzer von dBase, für die Basic und Programmiersprache identisch ist, werden sicher ihre Anfangsprobleme haben, denn die Programmiersprache zwingt zu absolut strukturiertem Programmieren.

Es existiert z. B. nicht der GOTO-Befehl, alle "Sprünge" Verzweigungen werden über DO-WHILE-Schleifen, BlocklF-Anweisungen bzw. DO-CASE-Schalter realisiert werden. Wer schon mit Pascal oder Fortran 77 gearbeitet hat, wird mit diesen Anweisungen keine Probleme haben. Mit den speziell zur Dateimanipulation vorhandenen Befehle ist man normalerweise vertraut, nachdem man das Handbuch durchgearbeitet hat. Im allgemeinen wurden die Befehle dann alle schon in direktem Dialog getestet. Die bereits manuell eingegebenen Befehle können unverändert in Programmen verwendet werden.

Natürlich gibt es auch in der d-Base-Programmiersprache Befehle, die noch unbekannt sind, allerdings sollte deren Erlernen keine Probleme bereiten. Bemerkenswert ist auch, daß "jedes" dBase Programm als Unterprogramm eines anderen dienen kann, da es keine speziellen Unterprogramme gibt. Wer nach dem Grund fragt, warum ein speziell zur Datenverwaltung erstelltes Programm noch eine Programmiersprache benötigt - der Grund ist schnell genannt. Zwar können alle Befehle direkt im Dialog verwendet werden, aber bei komplizierten Manipulationen, die öfters gebraucht werden, ist dies mit erheblichem Zeitaufwand verbunden. Somit bietet das Schreiben von Programmroutinen eine einfache Möglichkeit zur Zeitersparnis, und außerdem: wer möchte schon mehrmals dieselbe Routine neu schreiben?

ABBILDUNG 4
KENNDATEN UND GRENZEN dBase II

  . LIST STRUCTURE
  STRUCTURE FOR FILE: ADRESSEN.DBF
  NUMBER OF RECORDS: 00011
  DATE OF LAST UPDATE: 00100/00
  PRIMARY USE DATABASE
  FLD NAME    TYPE WIDTH DEC
  001 NAME     C   010
  002 VORNAME  C   010
  003 STRASSE  C   015
  004 ORT      C   016
  005 TELEFON  C   011
  ** TOTAL. **     00063
Die Abbildung zeigt - nach dem Befehl LIST STRUCTURE - auf dem Bildschirm erscheinende Strukturen oder die Maske einer Datei. Von besonderem Interesse sind die vorletzten sechs Zeilen;
FLD = Feldnummer,
NAME = Name eines Feldes (beliebig wählbar),
TYPE = Type eines Feldes,
c Inhalt alphanum. Zeichen
n Inhalt des Feldes nur numerische Zeichenn,
L. Inhalt nur logische Variable T (true), F(alse),
WIDTH = Länge des Feldes.
DEL = Anzahl der Dezimalstellen (nur bei num. Feldern)

           NAME     TYP LEN DEC
  FIELD 01 KUNUMMER  C  003 000
  FIELD 02 :ORT      C  004 000
  FIELD 03 :lrech    c  005 000
  FIELD 03 :datum    c  008 000
  FIELD 04 :umsatz   n  010 002
  FIELD 05 :bezahlt  n  010 002
  FIELD 06 :offen    n  010 002
  FIELD 07 :
Dieses Bild zeigt, die Struktur einer Datei, deren Struktur verändert wurde. LEN entspricht WIDTH.


Aus: ST-Computer 04 / 1986, Seite 30

Links

Copyright-Bestimmungen: siehe Über diese Seite