Prof. Franz Schweiggert Abteilung Angewandte Informationsverarbeitung 25. Januar 2005
Christian Ehrhardt Blatt 11


Uni Logo



Allgemeine Informatik 3 (WS 2004/2005)


Abgabetermin 1.2.2005

Datenbanken (10 Punkte)

In einer Datenbank-Datei werden Daten (z.B. Adressen) gespeichert. Jeder Datensatz in der Datei hat eine feste Länge und besteht aus mehreren Feldern (Name, Vorname, Telephon, Anschrift, etc.). Der Einfachheit halber sind alle Felder Strings. Ist ein solcher String kürzer als das dafür vorgesehen Feld, dann wird er durch ein Nullbyte beendet. Wenn der String genau so lang ist, wie das dafür vorgesehene Feld, dann entfällt das Nullbyte. Der erste Datensatz jeder Datenbank enthält keine echten Daten, sondern in jedem Feld eine Feldbeschreibung.
Beispiel: Jeder Datensatz einer Datenbank wie oben beschrieben enthält drei Felder, den Namen (maximal 20 Zeichen), den Vornamen (maximal 31 Zeichen) und die Telephonnummer (maximal 14 Zeichen). Jeder Datensatz benötigt also genau 65 Bytes, der erste Datensatz beginnt bei Position 0 in der Datei, der zweite bei Position 65, der dritte bei Position 130 usw. Das ist unabhängig davon, wie lange die einzelnen Strings in den Datenfeldern tatsächlich sind. So könnte also der erste Datensatz, der die Feldbeschreibungen enthält, aussehen (``*'' steht für ein Nullbyte, anstelle der Leerzeichen kann beliebiges stehen):

                    111111111122222222223333333333444444444455555555556666
Position  0123456789012345678901234567890123456789012345678901234567890123
Byte      Name*               Vorname*                      Telephonnummer

Aufgabe

Eure Aufgabe ist es, mit solchen Datenbanken zu arbeiten. Der Name der Datei, die Anzahl der Felder in einem Datensatz und die jeweilige Größe sollen dabei auf der Kommandozeile angegeben werden. So könnte also das Anlegen einer neuen Datenbank aussehen, die dem oben verwendeten Beispiel entspricht:

   $ create_database phone 20:31:14 
   Beschreibung 1. Feld (maximal 20 Zeichen): Name
   Beschreibung 2. Feld (maximal 31 Zeichen): Vorname
   Beschreibugn 3. Feld (maximal 14 Zeichen): Telephonnummer
   OK. Datenbank mit dem Namen phone erzeugt.

Anlegen, Hinzufügen, Anzeigen

Schreibt ein oder mehrere Programme, mit denen sich

Einschränkung

Wann immer auf die Datenbankdateien zugegriffen wird, sind Funktionen wie fopen, fdopen oder fscanf verboten. Statt dessen muß open, read und write verwendet werden.



Christian Ehrhardt 2005-01-25