Einsatz und Realisierung von Datenbanksystemen - ERDB Übungsleitung Maximilian Bandle, Schüle , Josef Schmeißer

Die Seite wird erstellt Nils Junker
 
WEITER LESEN
Einsatz und Realisierung von Datenbanksystemen

Einsatz und Realisierung von
    Datenbanksystemen

               ERDB Übungsleitung
Maximilian {Bandle, Schüle}, Josef Schmeißer
                 i3erdb@in.tum.de

Folien erstellt von Maximilian Bandle & Alexander Beischl

                                                            1
Einsatz und Realisierung von Datenbanksystemen

Organisatorisches
Disclaimer

Die Folien werden von der Übungsleitung allen Tutoren zur Verfügung gestellt.

Sollte es Unstimmigkeiten zu den Vorlesungsfolien von Prof. Kemper geben, so
sind die Folien aus der Vorlesung ausschlaggebend.

Falls Ihr einen Fehler oder eine Unstimmigkeit findet, schreibt an i3erdb@in.tum.de
mit Angabe der Foliennummer.

ERDB 2020 - Tutorübung 4                                                         2
Einsatz und Realisierung von Datenbanksystemen

                           Deduktive Datenbanken

ERDB 2020 - Tutorübung 3                                                     3
Einsatz und Realisierung von Datenbanksystemen

Deduktive Datenbanken
Einführung
                                                                              EDB
                                                                      Extensionale DatenBasis
• EDB/Faktenbasis ist die Menge der                                      (Basis-Relationen)
  Relationen

• Deduktion durch Datalog                                                   Datalog
• (Data + Prolog -> Datalog)                                           Regeln als Programm

• Die IDB entsteht durch Anwenden der
  Datalog-Regeln auf die EDB                                                   IDB
➡ Erzeugt weitere Menge von Relationen                                Intensionale DatenBasis
                                                                      (hergeleitete Relationen)

ERDB 2020 - Tutorübung 3                                                                          4
Einsatz und Realisierung von Datenbanksystemen

Deduktive Datenbanken
Regeln

Basisrelationen:
vorlesungen(VorlNr, Titel, SWS, PersNr)
professoren(PersNr, Name, Rang, Raum)

Regelerzeugung und Join:
sokLV(T,S) :-vorlesungen(_,T,S,P ), professoren(P, ’Sokrates’,_,_ ), S>2.

ERDB 2020 - Tutorübung 3                                                    5
Einsatz und Realisierung von Datenbanksystemen

Deduktive Datenbanken
Syntax
Zeichenketten: Worte mit kleinem Beginn oder in Anführungszeichen
Variablen: Worte mit großem Buchstaben als Beginn
Relation: daten(feld1,feld2,feld3)

Regeln: name(Param1, …) :- Ausdruck. Punkt immer als Abschluss
Logische Verknüpfung:
    Komma => Und
    Semikolon oder Regel mehrfach definieren => Oder

Prädikate: , ==, \=

Negation: not(Ausdruck)
Steht am Ende und benutzt nur beschränkte Variablen
ERDB 2020 - Tutorübung 3                                                    6
A_2.2_Zertifikat_f_195_188r_nicht_in.tum.de_Adresse
        Ein Schlüsselpaar für OpenPGP können Sie sich jederzeit selbst und für jede E-Mail-
hlüsselpaar
        Ein
        Adressefür zulegen.
              Schl   OpenPGP
                    üsselpaar       können
                                   für
                                 Besch   OpenPGPSieSie
                                         äftigen
                                            Einsatz   sich
                                                    und  sichjederzeit
                                                        kRealisierung
                                                          önnen    Sie
                                                                näher     selbst
                                                                         sich
                                                                        mit
                                                                      von          und fürselbst
                                                                                jederzeit
                                                                              OpenPGP,
                                                                           Datenbanksystemen   jede und
                                                                                              damit   E-Mail-
                                                                                                           für jede
                                                                                                      Sie Ihre        E-Mail-
                                                                                                                 E-Mails  ver-
  zulegen.
        schlBesch
        Adresse
             üsseln äftigen
                       könnenSie
                    zulegen.     Besch
                                  und sich  näherSie
                                         äftigen
                                         schicken    mit   OpenPGP,
                                                     Siesich
                                                           Ihremnäher  mit
                                                                    Tutor   damit  Sie Ihre
                                                                              OpenPGP,
                                                                             eine  verschl     E-Mails
                                                                                             damit
                                                                                            üsselte  Sie ver-
                                                                                                      und Ihre  E-Mails
                                                                                                           signierte      ver-
                                                                                                                       E-Mail.
 ln können
        schl   und schicken
             üsseln
        Ihr Tutor      können
                      erkl        Sie
                                  undIhrem
                           ärt Ihnen           Tutor
                                         schicken
                                         während    dereine
                                                     Sie   Ihrem verschl
                                                                    Tutor
                                                           Übungsstunde, üsselte
                                                                             eine  und
                                                                                anverschl
                                                                                   welchesignierte
                                                                                           üsselte   E-Mail.
                                                                                             AdresseundSie signierte
                                                                                                           Ihre E-Mail E-Mail.
                                                                                                                         schi-
or erklärt
        Ihr
        ckenIhnen
      Aufgabe 1
            Tutor
               sollenw  ährend
                      erkl ärtwo
                         und      der
                                    sieÜbungsstunde,
                                Ihnen    während
                                         den                 an welche
                                                     der Übungsstunde,
                                               entsprechenden              Adresse   Sie Ihre
                                                                                an welche
                                                                     ö↵entlichen    Schl       E-Mail
                                                                                             Adresse
                                                                                          üssel         schi-
                                                                                                       Sie
                                                                                                  erhalten.Ihre
                                                                                                              DafE-Mail  schi-
                                                                                                                  ür erhalten
 len undSiewo
        cken    sie den
               sollen
             einen         entsprechenden
                         und                     ö↵entlichen Schl
                               wo sie den entsprechenden
                      Bonuspunkt.                                       üssel erhalten.
                                                                     ö↵entlichen           Dafür
                                                                                    Schlüssel       erhaltenDafür erhalten
                                                                                                  erhalten.
 n Bonuspunkt.
        Sie einen Bonuspunkt.
  Hausaufgabe 6            Gegeben sei die folgende Segler-Boots-Reservierung Datenbank:
  6     Gegeben 6sei die
 Hausaufgabe                   folgende
                           Gegeben      seiSegler-Boots-Reservierung             Datenbank: Datenbank:
                                             die folgende Segler-Boots-Reservierung
      %segler(SID,SNAME,EINSTUFUNG,ALTER)
r(SID,SNAME,EINSTUFUNG,ALTER)
      %segler(SID,SNAME,EINSTUFUNG,ALTER)
      %boot(BID,BNAME,FARBE)
BID,BNAME,FARBE)
      %boot(BID,BNAME,FARBE)
      %reservierung(SID,BID,DATUM)
vierung(SID,BID,DATUM)
      %reservierung(SID,BID,DATUM)
       Beantworten Sie die folgenden Anfragen in Datalog und testen Sie unter (http://datalog.
orten Sie  die folgenden
       Beantworten
       db.in.tum.de/,    Sie Anfragen
                              die folgenden
                              Examples     in=>
                                              Datalog
                                                Anfragen undintesten   Sie und
                                                                 Datalog   unter
                                                   Segler-Boots-Reservierung):     (http://datalog.
                                                                                testen  Sie unter (http://datalog.
tum.de/,    Examples =>Examples
       db.in.tum.de/,          Segler-Boots-Reservierung):
                                             => Segler-Boots-Reservierung):
          1. Geben Sie die Farben aller Boote, die von ’Lubber’ reserviert wurden aus.
 ben Sie die
          1.   Farben aller     Boote, die      vonBoote,
                                                     ’Lubber’     reserviert  wurden aus. wurden aus.
          2. Geben
              Geben Sie Sie die
                             alleFarben
                                   Segler aller
                                             aus, die   einedie   von ’Lubber’
                                                              Einstufung     von reserviert
                                                                                   mindestens 8 oder das Boot 103
 ben Sie 2.
          alleGeben
                SeglerSie
              reserviert  aus,  dieSegler
                             alle
                            haben.   eine Einstufung
                                             aus, die eine von    mindestens
                                                              Einstufung     von8 mindestens
                                                                                   oder das Boot    103 das Boot 103
                                                                                                8 oder
 erviert haben.
          3. reserviert
              Geben Siehaben.die Namen aller Segler aus, die mindestens zwei Boote reserviert haben.
 ben Sie die
          3.   Namen aller      Segler aus,      dieSegler
                                                     mindestensdie   zwei Boote reserviert     haben.
          4. Geben
              Geben Sie Sie die
                             alle Namen
                                  Segler aus,allerdie nochaus,nie ein mindestens      zwei Boote
                                                                        rotes Boot reserviert      reserviert haben.
                                                                                                 haben.
 ben Sie alle
          4.   SeglerSie aus,alle
                               dieSegler
                                    noch aus,nie ein
                                                  dierotes
                                                       nochBoot      reserviert  haben.
          5. Geben
              Geben Sie     alle Segler     aus, die  mehr    nie20
                                                             als   ein  rotesalt
                                                                      Jahre    Boot
                                                                                 sindreserviert  haben.
                                                                                       und kein rotes  Boot reserviert
 ben Sie alle  Segler Sie
          5. Geben
              haben.    aus,alle
                              dieSegler
                                   mehr alsaus,20die
                                                   Jahre
                                                      mehraltalssind  und kein
                                                                  20 Jahre   alt rotes Bootkein
                                                                                 sind und    reserviert
                                                                                                rotes Boot reserviert
ben.
          6. haben.
              Geben Sie die Ids der Segler aus, deren Einstufung besser als die eines Seglers mit
 ben ERDB
      Sie 6.
          die
           2020Ids   derSieSegler
                - Tutorübung
              Geben
              Namen           3 Ids
                             die
                         ’Horatio’  aus,der
                                      ist. deren
                                              SeglerEinstufung
                                                      aus, derenbesser      als die besser
                                                                      Einstufung     eines Seglers
                                                                                            als die mit
                                                                                                    eines Seglers mit7
Ein Schlüsselpaar für OpenPGP können Sie sich jederzeit selbst und für jede E-Mail-
hlHausaufgabe
  üsselpaar
        Adresse für 6 OpenPGP
                             Gegeben
                      zulegen.        können
                                  Besch   sei  dieSie
                                           äftigen     sich
                                                           sichjederzeit
                                                    folgende
                                              Einsatz Sie
                                                      und                   selbst  und fürdamit
                                                                Segler-Boots-Reservierung
                                                                 nähervonmit
                                                          Realisierung         OpenPGP,
                                                                            Datenbanksystemen   jede  E-Mail-
                                                                                                   Datenbank:
                                                                                                       Sie Ihre E-Mails ver-
  zulegen.
        schlBesch
              üsselnäftigen
                         könnenSie undsich   näher mit
                                           schicken          OpenPGP,
                                                       Sie Ihrem     Tutordamit     Sie Ihre
                                                                              eine verschl      E-Mails
                                                                                             üsselte undver-
                                                                                                            signierte E-Mail.
 ln können    und schicken
        Ihr Tutor                  Sie Ihrem
                        erklärt Ihnen    während
        %segler(SID,SNAME,EINSTUFUNG,ALTER)       Tutor dereine   verschlüsselte
                                                             Übungsstunde,      an und
                                                                                    welchesignierte
                                                                                              AdresseE-Mail.
                                                                                                        Sie Ihre E-Mail schi-
or erklärt
        cken Ihnen
      Aufgabe 1 sollen während
                          und woder
        %boot(BID,BNAME,FARBE)       sieÜbungsstunde,
                                          den entsprechenden   an welche    Adresse Schl
                                                                       ö↵entlichen   Sie Ihre
                                                                                           üsselE-Mail   schi-Dafür erhalten
                                                                                                   erhalten.
 len undSiewo    sie den
              einen          entsprechenden ö↵entlichen Schlüssel erhalten. Dafür erhalten
                       Bonuspunkt.
        %reservierung(SID,BID,DATUM)
 n Bonuspunkt.
  Hausaufgabe 6              Gegeben sei die folgende Segler-Boots-Reservierung Datenbank:
  6     Beantworten
        Gegeben             Siefolgende
                      sei die    die folgenden      Anfragen in Datalog und
                                              Segler-Boots-Reservierung              testen Sie unter (http://datalog.
                                                                                 Datenbank:
        db.in.tum.de/, Examples => Segler-Boots-Reservierung):
        %segler(SID,SNAME,EINSTUFUNG,ALTER)
r(SID,SNAME,EINSTUFUNG,ALTER)
           1. Geben Sie die Farben aller Boote, die von ’Lubber’ reserviert wurden aus.
        %boot(BID,BNAME,FARBE)
BID,BNAME,FARBE)
        %reservierung(SID,BID,DATUM)
           2. Geben Sie alle Segler aus, die eine Einstufung von mindestens 8 oder das Boot 103
vierung(SID,BID,DATUM)
                reserviert haben.
        Beantworten Sie die folgenden Anfragen in Datalog und testen Sie unter (http://datalog.
orten Sie  3.dieGeben
                  folgendenSie die   Namen aller
                                Anfragen                Segler   aus,   die Sie
                                                                            mindestens     zwei Boote reserviert haben.
        db.in.tum.de/,            Examplesin=>    Datalog     und  testen       unter (http://datalog.
                                                       Segler-Boots-Reservierung):
tum.de/,4.Examples
                Geben Sie    => alle Segler aus, die noch nie ein rotes Boot reserviert haben.
                                   Segler-Boots-Reservierung):
           1. Geben Sie die Farben aller Boote, die von ’Lubber’ reserviert wurden aus.
 ben Sie dieGeben
           5.    FarbenSie     alleBoote,
                             aller   Segler dieaus,von
                                                     die ’Lubber’
                                                          mehr als reserviert
                                                                      20 Jahre alt    sind und
                                                                                   wurden     aus.kein rotes Boot reserviert
           2. haben.
                Geben Sie alle Segler aus, die eine Einstufung von mindestens 8 oder das Boot 103
 ben Sie allereserviert
                   Segler aus,     die eine Einstufung von mindestens 8 oder das Boot 103
                               haben.
           6. Geben Sie die Ids der Segler aus, deren Einstufung besser als die eines Seglers mit
 erviert haben.
           3. Namen
                Geben Sie       die Namen
                            ’Horatio’    ist. aller Segler aus, die mindestens zwei Boote reserviert haben.
 ben Sie die Namen aller Segler aus, die mindestens zwei Boote reserviert haben.
           4. Geben
           7.   Geben Sie  Sie alle
                                 die Segler
                                      Ids deraus,      die noch
                                                  Segler           nie einEinstufung
                                                            aus, deren       rotes Boot besser
                                                                                           reserviert
                                                                                                    als haben.
                                                                                                        die aller Segler mit
 ben Sie alleNamenSegler ’Horatio’
                            aus, die noch       nie  ein  rotes   Boot    reserviert  haben.
                                         ist. aus, die mehr als 20 Jahre alt sind und kein rotes Boot reserviert
           5. Geben Sie alle Segler
 ben Sie alle    Segler Sie
                haben.
           8. Geben        aus,den
                                 die Namen
                                      mehr alsund  20 Jahre
                                                        Alter alt
                                                                dessind    und kein
                                                                     ältesten        rotes
                                                                                Seglers  aus.Boot reserviert
 ben.
           6. Geben Sie die Ids der Segler aus, deren Einstufung besser als die eines Seglers mit
 ben ERDB
       Sie die
            2020  Ids   der’Horatio’
                              Segler
                   - Tutorübung
                Namen            3     aus,
                                         ist. deren Einstufung besser als die eines Seglers mit                              8
Einsatz und Realisierung von Datenbanksystemen

Deduktive Datenbanken
Tool zum Üben

                            https://datalog.db.in.tum.de

ERDB 2020 - Tutorübung 3                                                    9
Einsatz und Realisierung von Datenbanksystemen

Deduktive Datenbanken
Rekursion

Datenbasis: direkt(Start, Ziel, Linie)
Ziel: indirekt(Start, Ziel, Stops)

1. Basisfall => Fülle die Relation mit Anfangswerten
indirekt( Start, Ziel, Stops ) :- direkt( Start, Ziel, _), Stops = 0.

2. Rekursion => Nutze die Relation selbst und erweitere sie
indirekt( Start, Ziel, StopsNeu ) :-
     indirekt( Start, Station, Stops ),
     direkt( Station, Ziel, _),
     StopsNeu = Stops + 1.

ERDB 2020 - Tutorübung 3                                                    10
griechischen Götter und Helden:
    Die Datalogaufgaben können auf http://datalog.db.in.tum.de/                            getestet werden. Auf
    der Seite könnt Sie dann unter
                                Einsatzexamples
                                               KindEltern
                                                     einen
                                        und Realisierung  vonentsprechenden
                                                               Datenbanksystemen Datensatz laden. An das
    Ende der EDB könnt ihr dann Vaterneue IDB   Mutter            Kind
                                                     Regeln definieren                diese KindEltern
                                                                                und Vater     dann
                                                                                              Mutter
                                                                                                      in Kind
                                                                                                          dem Que-
                                      Zeus zu dem
    ry Eingabefeld abfragen. Zusätzlich           Leto in der   Apollon
                                                                     Vorlesung vorgestellten
                                                                                      Zeus     Leto    Syntax
                                                                                                        Apollon hier
      Aufgabe 2                       Zeus         Leto
    noch eine kurz Übersicht der Vergleichsoperatoren:          Artemis
                                                                      X < Y, Y Zeus     > X Leto(kleiner,
                                                                                     Kronos Rheia
                                                                                                              größer),
                                                                                                        Artemis
                                                                                                         Hades
    X =< Y, X >= Y (kleiner gleich, Kronosgrößer Rheia gleich),Hades
                                                                    X = Y, X\ Zeus      = Y (gleich,
                                                                                               Maia        ungleich),
                                                                                                        Hermes
    not(pred(X, Y )) (existiert nichtZeus
                                       pred(X,Y)). Maia          Hermes               Koios Phoebe        Leto
                                     Koios Phoebe                  Leto               Atlas   Pleione    Maia
                                                                                     Kronos Rheia Poseidon
Hausaufgabe 1                        Atlas       Pleione           Maia              Kronos Rheia         Zeus
                                    Kronos Rheia ägung
    Gegeben sei die nachfolgende KindEltern-Auspr                Poseidon
                                                                      für den Stammbaum-Ausschnitt der
                                                       Formulieren Sie folgende Anfragen in Datalog und testen Sie unter (http://d
    griechischen Götter und Helden:Kronos Rheia       in.tum.de/):Zeus
                                                                  a) Bestimmen Sie alle Geschwisterpaare.
       Formulieren Sie folgende Anfragen in Datalogb)und   testen
                                                      Ermitteln  Sie Sie
                                                                     Paareunter   (http://datalog.db.
                                                                           von Cousins  und Cousinen beliebigen Grades. D
                                                      finden Sie auf Wikipedia.
       in.tum.de/):                          KindEltern
                                                   c) Geben Sie alle Verwandtschaftspaare an. Überlegen Sie sich eine geeigne
                                     Vater    Mutter
         a) Bestimmen Sie alle Geschwisterpaare.             Kind
                                                      von Verwandtschaft  und setzen Sie diese in Datalog um.
                                         Zeus       Leto        Apollon
                                                        d) Bestimmen    Sie alle Nachfahren von Kronos. Formulieren Sie die Anfrage
         b) Ermitteln Sie Paare von Cousins und Cousinen      dass sie unter PostgreSQLGrades.
                                                                        beliebigen        ausführbar Die    Definition
                                         Zeus       Leto so     Artemis                               ist (online testen unter: http://
            finden Sie auf Wikipedia.                      com  mit  der Datenbank   PostgreSQL    statt MySQL,    das Schema Textfel
                                        Kronos Rheia leer lassen, Hades müssen aber trotzdem auf ’Build Schema’ drücken). Sie könn
         c) Geben Sie alle Verwandtschaftspaare
                                         Zeus        an.
                                                    Maia Überlegen       Sie sich
                                                           als Common Table
                                                                 Hermes                einedefinieren
                                                                                 Expression  geeignete       Definition
                                                                                                       und dann    nutzen:
            von Verwandtschaft und setzenKoiosSie Phoebe
                                                   diese in DatalogLeto um.
         d) Bestimmen Sie alle NachfahrenAtlasvon Kronos.
                                                   Pleione Formulieren
                                                                   Maia           Sie die Anfrage 1      auch in SQL,
            so dass sie unter PostgreSQL    ausführbar
                                        Kronos          ist (online
                                                    Rheia       Poseidon testen unter: http://sqlfiddle.
            com mit der Datenbank PostgreSQL
                                        Kronos Rheia statt MySQL,  Zeusdas Schema Textfeld können sie
            leer lassen, müssen aber trotzdem auf ’Build Schema’ drücken). Sie können die Daten
            als Common
       Formulieren           Table Expression
                      Sie folgende Anfragen indefinieren  und testen
                                                Datalog und      dann nutzen:
                                                                            Sie unter (http://datalog.db.
      ERDB 2020 - Tutorübung 4
       in.tum.de/):                                                                                                          11
Einsatz und Realisierung von Datenbanksystemen

Aufgabe 1

                      WITH RECURSIVE
                      kindEltern ( vater , mutter , kind ) as (
                         VALUES
                          ( ' Zeus ' , ' Leto ' , ' Apollon ') ,
                          ( ' Zeus ' , ' Leto ' , ' Artemis ') ,
                          ( ' Kronos ' , ' Rheia ' , ' Hades ') ,
                          ( ' Zeus ' , ' Maia ' , ' Hermes ') ,
                          ( ' Koios ' , ' Phoebe ' , ' Leto ') ,
                          ( ' Atlas ' , ' Pleione ' , ' Maia ') ,
                          ( ' Kronos ' , ' Rheia ' , ' Poseidon ') ,
                          ( ' Kronos ' , ' Rheia ' , ' Zeus ')
                      ),
                      parent ( eltern , kind ) as (
                         select vater , kind from kindEltern UNION
                         select mutter , kind from kindEltern
                      )
                      select * from parent where eltern = ' Zeus '

          Hausaufgabe 2
                Bleiben wir bei dem bekannten Universitätsschema:
ERDB 2020 - Tutorübung 4                                                      12
),
                    parent ( eltern , kind ) as (
                       select vater   , kind
                                 Einsatz       from kindEltern
                                         und Realisierung            UNION
                                                          von Datenbanksystemen
                       select mutter , kind from kindEltern
                    )
                    select * from parent where eltern = ' Zeus '
Aufgabe      3
    Hausaufgabe 2
               Bleiben wir bei dem bekannten Universitätsschema:

                  Assistenten ( PersNr , Name , Fachgebiet , Boss )
                  hoeren ( MatrNr , VorlNr )
                  pruefen ( MatrNr , VorlNr , PersNr , Note )
                  Vorlesungen ( VorlNr , Titel , SWS , gelesenVon )
                  Professoren ( PersNr , Name , Rang , Raum )
                  voraussetzen ( Vorg , Nachf )
                  Studenten ( MatrNr , Name , Semester )

               Formulieren Sie folgende Anfragen in Datalog und testen Sie sie:
                 a) Geben Sie alle Professoren an, die mindestens eine Prüfung abgehalten haben.
                 b) Übersetzen Sie folgenden Ausdruck des Domänenkalküls in Datalog. Machen Sie sich
                    der Bedeutung des Ausdrucks bewusst.

                              {[t] |9 v,s,g([v,t,s,g] 2 Vorlesungen ^ 9 v2([v,v2] 2 voraussetzen ^
                                  9 s2,g2([v2,‘Wissenschaftstheorie’,s2,g2] 2 Vorlesungen)))}

                 c) Joinen Sie nachfolgende Datalog-Anfrage so, dass Titel ausgegeben werden. Was be-
                    deutet diese Anfrage?
                    geschwisterVL ( N1 , N2 ): - voraussetzen (V , N1 ) , voraussetzen (V , N2 ) , N1 < N2 .
                    nahverwandtVL ( N1 , N2 ): - geschwisterVL ( N1 , N2 ).
                    nahverwandtVL ( N1 , N2 ): - geschwisterVL ( M1 , M2 ) , voraussetzen ( M1 , N1 ) ,
                                                           voraussetzen ( M2 , N2 ).
ERDB 2020 - Tutorübung 4                                                                                       13
der Bedeutung des Ausdrucks bewusst.
                                     Einsatz und Realisierung von Datenbanksystemen
                      {[t] |9 v,s,g([v,t,s,g] 2 Vorlesungen ^ 9 v2([v,v2] 2 voraussetzen ^
                              9 s2,g2([v2,‘Wissenschaftstheorie’,s2,g2] 2 Vorlesungen)))}
    Aufgabe 4
      c) Joinen Sie nachfolgende Datalog-Anfrage so, dass Titel ausgegeben werden. Was be-
         deutet diese Anfrage?
          geschwisterVL ( N1 , N2 ): - voraussetzen (V , N1 ) , voraussetzen (V , N2 ) , N1 < N2 .
          nahverwandtVL ( N1 , N2 ): - geschwisterVL ( N1 , N2 ).
          nahverwandtVL ( N1 , N2 ): - geschwisterVL ( M1 , M2 ) , voraussetzen ( M1 , N1 ) ,
                                                 voraussetzen ( M2 , N2 ).

Hausaufgabe 3
    Geben Sie Datalog Regeln an, die Studenten (Namen angeben) finden, die von einem Prüfer
    geprüft worden, der selbst nicht die geprüfte Vorlesung gehalten hat. Das korrekte Ergebnis
    für diese Anfrage ist Russels Prüfling, Carnap. Führen Sie die Anfrage im Datalog Tool
    aus!

                                                       2

   ERDB 2020 - Tutorübung 4                                                                    14
Einsatz und Realisierung von Datenbanksystemen

    Aufgabe 5

Hausaufgabe 4
    U-Bahnen sind toll! Nehmen wir als Faktenbasis die U-Bahnstationen der Linie U2 Rich-
    tung Messestadt West und der Linie U6 Richtung Klinikum Großhadern.

       direkt ( Von , Ziel , Linie ).

    Formulieren Sie ein Datalog-Prädikat, das Ihnen von Garching-Forschungszentrum aus
    kommend die erreichbaren Stationen inklusiver der Anzahl der Stationen angibt. Testen
    Sie es!

Hausaufgabe 5
    Definieren Sie das Prädikat sg(X,Y) das für “same generation” steht. Zwei Personen ge-
    hören zur selben Generation, wenn Sie mindestens je ein Elternteil haben, das derselben
    Generation angehört.
    ERDB 2020 - Tutorübung 4                                                              15
Einsatz und Realisierung von Datenbanksystemen

                                        Fragen?

ERDB 2020 - Tutorübung 4                                                    16
Sie können auch lesen