Your SlideShare is downloading. ×
0
gebruik van quantoren in
relationele calculus

dr. Katrien Verbert
Katrien.Verbert@cs.kuleuven.be
tupel relationele calculus
•  Basisvorm: {t | formule(t)}
   –  t is een tupelvariabele en formule(t) een formule waarin
 ...
voorbeeld

•  { t | EMPLOYEE(t) and t.SALARY > 50000 }




                                              3
formule

•  wordt uitgedrukt in predicatenlogica
•  maakt gebruik van
   –  variabelen
   –  constanten
   –  vergelijking...
voorbeeld                  connector          constante


•  { t | EMPLOYEE(t) and t.SALARY > 50000 }



                 ...
quantoren

•  Existentiële quantor: ∃       (er bestaat)
•  Universele quantor: ∀         (voor alle)

•  (∃t)(formule(t))...
•  Q_1
   –  Geef naam en adres van alle werknemers die voor het
      'Research' departement werken


    { t.Fname, t.Ln...
gebruik van universele quantoren

•  (∀x) (P(x))
   –  waar als P(x) waar is voor elke x van het universum
   –  bv. (∀x) ...
gebruik van universele quantoren

•  ⇒ is een logische implicatie
   –  a ⇒ b betekent dat als a waar is, ook b waar moet ...
gebruik van universele quantoren


•  (∀x) (Boot(x) ⇒ (x.color = ‘Rood’))

•  ⇒ is een logische implicatie
   –  als x een...
–  Q_3: Geef de namen van de werknemers die aan alle projecten
   werken


              { e.Lname, e.Fname |  
          ...
{ e.Lname, e.Fname |  
              EMPLOYEE(e)  
              AND  
              ( (∀x) ( NOT (PROJECT(x))  
         ...
•  Q_6
  –  Geef de namen van alle werknemers zonder personen ten
     laste:



     {e.Fname, e.Lname  |  
       EMPLOY...
Upcoming SlideShare
Loading in...5
×

gebruik van quantoren in relationele calculus

797

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
797
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
62
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "gebruik van quantoren in relationele calculus"

  1. 1. gebruik van quantoren in relationele calculus dr. Katrien Verbert Katrien.Verbert@cs.kuleuven.be
  2. 2. tupel relationele calculus •  Basisvorm: {t | formule(t)} –  t is een tupelvariabele en formule(t) een formule waarin tupelvariable t voorkomt. •  Resultaat: –  Verzameling van alle tupels t waarvoor formule(t) waar is. •  Formule bestaat uit: –  atomen + logische connectoren + quantificatoren 2
  3. 3. voorbeeld •  { t | EMPLOYEE(t) and t.SALARY > 50000 } 3
  4. 4. formule •  wordt uitgedrukt in predicatenlogica •  maakt gebruik van –  variabelen –  constanten –  vergelijkingsoperatoren =≠<>≥≤ –  logische connectoren ¬∧∨⇔⇒ –  quantificatie van variabelen: ∃ (er bestaat), ∀ (voor alle) 4
  5. 5. voorbeeld connector constante •  { t | EMPLOYEE(t) and t.SALARY > 50000 } vergelijkingsoperator variabele 5
  6. 6. quantoren •  Existentiële quantor: ∃ (er bestaat) •  Universele quantor: ∀ (voor alle) •  (∃t)(formule(t)) –  er bestaat een tupel t die aan de conditie voldoet –  bv. (∃t)(EMPLOYEE(t) and t.fname=‘John’) •  (∀t)(formule(t)) –  alle tuples in het universum voldoen aan de conditie 6
  7. 7. •  Q_1 –  Geef naam en adres van alle werknemers die voor het 'Research' departement werken { t.Fname, t.Lname, t.Address | EMPLOYEE(t)                       AND (∃d) (DEPARTMENT(d)                                     AND d.Dname = 'Research’                                    AND d.Number = t.Dno) }  existentiële quantor: moet waar zijn voor tenminste één tuple we vragen werknemers op waarvoor er een gerelateerd tupel in de departement tabel bestaat met als naam ‘Research’
  8. 8. gebruik van universele quantoren •  (∀x) (P(x)) –  waar als P(x) waar is voor elke x van het universum –  bv. (∀x) (x.color = “Rood”) –  betekent dat alles wat bestaat rood is •  logische implicatie –  (∀x) (Boot(x) ⇒ (x.color = “Rood”)) –  (∀x) IF Boot(x) THEN (x.color = “Rood”) –  Als x een boot is, dan moet de kleur rood zijn 8
  9. 9. gebruik van universele quantoren •  ⇒ is een logische implicatie –  a ⇒ b betekent dat als a waar is, ook b waar moet zijn –  a ⇒ b is hetzelfde als ¬a ∨ b •  (∀x) (x.dnum=5 ⇒ F2) •  (∀x) IF x.dnum=5 THEN F2 •  (∀x) (not (x.dnum=5) or F2) –  x.dnum=5: F2 moet waar zijn 9
  10. 10. gebruik van universele quantoren •  (∀x) (Boot(x) ⇒ (x.color = ‘Rood’)) •  ⇒ is een logische implicatie –  als x een boot is, dan moet de kleur rood zijn •  (∀x) (¬Boot(x) ∨ x.color = ‘Rood’) –  X is geen boot: conditie is waar –  X is een boot: x.color=‘Rood’ moet waar zijn 10
  11. 11. –  Q_3: Geef de namen van de werknemers die aan alle projecten werken { e.Lname, e.Fname |    EMPLOYEE(e)    AND    ( (∀x) ( NOT (PROJECT(x))    OR              ( (∃w) ( WORKS_ON(w)                       AND w.Essn = e.Ssn                       AND x.Pnumber = w.Pno ) ) ) ) }   In woorden: als x een project is, dan moet er een   overeenkomsUg tupel in de works_on tabel bestaan.  11
  12. 12. { e.Lname, e.Fname |    EMPLOYEE(e)    AND    ( (∀x) ( NOT (PROJECT(x))    OR              ( (∃w) ( WORKS_ON(w)                       AND w.Essn = e.Ssn                       AND x.Pnumber = w.Pno ) ) ) ) }  –  ( ∀ x ) ( F ) : •  moet voldaan zijn voor alle tuples in het universum die aan x kunnen worden toegekend –  daarom: •  ( ∀ x ) ( not PROJECT ( x ) ) •  alle tupels die niet tot PROJECT behoren uitsluiten van verdere selectievoorwaarde –  verder moet dus gelden voor een employee e dat hij werkt op elk project dat niet uitgesloten werd 12
  13. 13. •  Q_6 –  Geef de namen van alle werknemers zonder personen ten laste: {e.Fname, e.Lname  |     EMPLOYEE(e) AND   ( (∀ d) ( NOT (DEPENDENT(d)) OR NOT (e.Ssn = d.Essn) ) ) } 13
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×