Informatikmaterialien 
von Tino Hempel

Startseite | Informatik | Physik | Mathematik | Sonstiges |

| Inhalt | Vorherige Seite | Nächste Seite


Richard-Wossidlo-Gymnasium Ribnitz-Damgarten
Fachbereich Informatik


Datenbanken in PROLOG


Datenbanken bestehen aus einer Datenbasis und einen Datenbankmanagementsystem. Beides kann PROLOG sein. Fakten werden als Datenbasis interpretiert, Abfragen dienen der Verknüpfung von Daten. Im Vordergrund der Anwendung von Datenbanken in PROLOG sollen sie Abfragen stehen.

Wiederholung der Operationen der Relationsalgebra

Aus dem Datenbankkurs sind folgende drei Operationen näher besprochen wurden:

Operator

Schreibweise

Bedeutung
Selektion SFormel(A)
Formel(A)
Auswahl von Zeilen gemäß der Formel
Projektion PFormel(A)
Formel(A)
Auswahl von Spalten gemäß der Formel
Join
(Verbund)
JAttribute(A,B) Verknüpfung zweier Relationen zu einer neuen Relation mit den Attributen beider Tabellen über gemeinsame Attribute

Im folgenden werden in Analogie zur entsprechenden Datenbankseite die Operationen besprochen.

Datenbasis

Als Datenbasis sollen die zwei Tabellen Schüler und Kurs dienen.

Schüler Kurs
SNr Vorname Name
4711 Paul Müller
0815 Erich Schmidt
7472 Sven Lehmann
1234 Olaf Müller
2313 Jürgen Paulsen

 

 

SNr KNr Fehlstunden Punkte
0815 03 0 12
4711 03 12 03
1234 23 3 14

Diese werden zunächst in PROLOG-Fakten übersetzt.

schueler(4711,'Paul','Mueller').
schueler(0815,'Erich','Schmidt').
schueler(7472,'Sven','Lehmann').
schueler(1234,'Olaf','Mueller').
schueler(2313,'Juergen','Paulsen').

kurs(0815,03,0,12).
kurs
(4711,03,12,03).
kurs
(1234,23,3,14).

Selektion

Bei der Selektion werden Zeilen aus einer Tabelle ausgewählt, die bestimmten Eigenschaften genügen.

Aus der Tabelle Schüler sollen alle Zeilen selektiert werden, in denen der Name "Müller" steht. 
Die Selektion hat also die Form: SName = 'Müller'(Schüler)

Schüler SName = 'Müller'(Schüler)
SNr Vorname Name
4711 Paul Müller
0815 Erich Schmidt
7472 Sven Lehmann
1234 Olaf Müller
2313 Jürgen Paulsen

 

SNr Vorname Name
12 Paul Müller
308 Olaf Müller
 

Umsetzung in PROLOG:

-? schueler(SNummer,Vorname,'Mueller').

Projektion

Bei der Projektion werden Spalten aus einer Tabelle ausgewählt, die bestimmten Eigenschaften genügen.

Aus der Tabelle Schüler sollen alle Spalten mit dem Attribut "Name" projiziert werden. 
Die Projektion hat also die Form: PName(Schüler)

Schüler PName(Schüler)
SNr Vorname Name
4711 Paul Müller
0815 Erich Schmidt
7472 Sven Lehmann
1234 Olaf Müller
2313 Jürgen Paulsen

 

Name
Müller
Schmidt
Lehmann
Müller
Paulsen

Umsetzung in PROLOG unter Nutzung des Symbol "_" (anonyme Variable).

-? schueler(_,_,Name).

Hintereinanderausführung von Projektion und Selektion

Aus der Tabelle Schüler sollen die Vornamen aller Schüler angezeigt werden, deren Nachname Müller ist. 
Die Abfrage hat also die Form: PVorname(SName = 'Müller'(Schüler))

Schüler PVorname(SName = 'Müller'(Schüler))
SNr Vorname Name
4711 Paul Müller
0815 Erich Schmidt
7472 Sven Lehmann
1234 Olaf Müller
2313 Jürgen Paulsen

 

Vorname
Paul
Olaf
 

Umsetzung in PROLOG:

-? schueler(_,Vorname,'Mueller').

Join (natürlicher)

Ein Join ist das Verbinden von zwei Relationen zu einer neuen Tabelle. 

Aus den Tabellen Schüler und Kurse soll eine Tabelle gebildet werden. Das gemeinsame Attribut lautet SNr.  

Schüler Kurse JSNr(Schüler, Kurs)
SNr Vorname Name
4711 Paul Müller
0815 Erich Schmidt
7472 Sven Lehmann
1234 Olaf Müller
2313 Jürgen Paulsen
SNr KNr Fehlstunden Punkte
0815 03 0 12
4711 03 12 03
1234 23 3 14

 

 

SNr Vorname Name KNr Fehlstunden Punkte
0815 Erich Schmidt 03 0 12
4711 Paul Müller 03 12 03
1234 Olaf Müller 23 3 14
 

Umsetzung in PROLOG:

-? schueler(SNr,Vorname,Name),kurs(SNr,KNr,Fehlstunden,Punkte).



zur Startseite
© Tino Hempel 1997 - 2002
Letztes Update 12.2002
Im Web vertreten seit 1994.
Eine Internet-Seite aus dem Angebot von Tino Hempel.

Für alle Seiten gilt der 
Haftungsausschluss/Disclaimer.