Netzwerkdatenbank

CODASYL

(Common Database System Language)

 

Bei einer Netzwerkdatenbank handelt es sich um eine Datenstruktur, die untereinander vernetzt wird und somit kein oben und kein unten besitzt (Satzweise Verarbeitung).

Es sind mehrere Owner und mehrere Member möglich. D.h, zu einem Konto kann es mehrere Personen geben und eine Person kann mehrere Konten haben. Die Vernetzung wird über sogenannte „Pointer“ realisiert. Jeder Datenblock hat eine physische Adresse, die den Ort kennzeichnet, wo sich dieser Block befindet. Wird nun eine Vernetzung zweier Datenblöcke vorgenommen, so weiß der eine wo der andere zu finden ist. Diese Verpointerung nennt man auch SET`s. Nur über diese SET`s können auf Daten zugegriffen werden!

 

Beispiel: Kontoführung

 

„betreut“

SET

 

 

 

SET = Menge von Objekten, jedes SET hat einen Namen

SET „besitzt“ = die Menge der Konten, die eine Person besitzt (kann auch 0 sein)

SET „betreut“ = die Menge der Konten, die eine Person betreut

 

Im Gegensatz zu einer hierarischen Datenbank ist hier eine m : n Beziehung möglich. Dies wird wie bei einer relationalen Datenbank mit einem Junction Record dargestellt.

 

m: n Beziehung

 

 

 

Annahme: 2 Personen + 3 Konten – wie viele Kombinationen gibt es?

 

Person A            Konto1                        Person B          Konto2

Person B             Konto1                        Person A         Konto3

Person A            Konto2                        Person B          Konto3            ---       6 Kombinationen

 

Weiteres Beispiel (Klausur FH-Trier)

 

Gegeben sei folgender Ausschnitt aus einem CODASYL- Schema für die Verwaltung eines Maschinenparks einer Fluggesellschaft

 

 

1.      Geben Sie ein Beispiel auf der Exemplarebene an mit jeweils mindestens zwei Exemplare je Recordtyp. Dabei soll es einen Piloten A geben, der zwei verschiedene Flugzeugtypen fliegen kann und einen Techniker B, der alle vorhandenen Flugzeugtypen warten kann.

2.      Geben Sie eine CODASYL ähnliche Sequenz an, die zum Piloten A alle Techniker auflistet, die die Flugzeugtypen warten können, die Piloten A fliegen kann. Sie können davon ausgehen, das Sie vor dem Start ihrer Sequenz auf dem Record von Pilot A positioniert haben. Sie können weiterhin davon ausgehen, dass von jedem Member eines SET`s C mit „Fetch Owner Within C“ auf den Owner des SET`s zugegriffen werden kann.

3.      Geben Sie die currency- Tabelle (nur bezogen auf die SET`s) an, für Ihre CODASYL-Sequenz aus 2.

 

Lösung:

 

ZU 1.

 

 

ZU 2.

 

Regel 1:            Sucht man von einem Owner den Member, so benutzen wir “NEXT”

Regel 2:            Suchen wir von einem Member den Owner, so benutzen wir OWNER“

 

 

1                                      FETCH PILOT using P-KEY

2                                      FETCH NEXT WITHIN P-F

3                                      FETCH OWNER WITHIN F-P

4                                      FETCH NEXT WITHIN F-T

5                                      FETCH OWNER WITHIN T-F

6                                      FETCH NEXT WITHIN F-T

7                                      FETCH OWNER WITHIN T-F

8                                      FETCH NEXT WITHIN P-F

9                                      FETCH OWNER WITHIN F-P

10                                  FETCH NEXT WITHIN F-T

11                                  FETCH OWNER WITHIN T-F

12                                  FETCH NEXT WITHIN F-T

13                                  FETCH OWNER WITHIN T-F

 

 

ZU 3.

 

 

Regel 1:            Springt man z.B. von einem Record zu einem Junction Record, so benutzt man ein SET, das auf den Wert des

angesteuerten Junction Record gesetzt wird. Das dazu folgende SET wird immer automatisch auf diesen Wert gesetzt!

Regel 2:            Ist ein SET einmal gesetzt, so behält es den Wert solange, bis es erneut benutzt wird! (Duftmarke)

 

Nummer

P-F

F-P

F-T

T-F

2

A1

A1

-

-

3

A1

F1

F1

-

4

A1

F1

C1

C1

5

A1

F1

C1

Techniker C

6

A1

F1

D1

D1

7

A1

F1

D1

Techniker D

8

A2

A2

D1

Techniker D

9

A2

F2

F2

Techniker D

10

A2

F2

C2

C2

11

A2

F2

C2

Techniker C

12

A2

F2

D2

D2

13

A2

F2

D2

Techniker D

 

 

 

Zusätzliches Beispiel: