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

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

gebruik van quantoren in relationele calculus

791

Published on

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

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  1. gebruik van quantoren in relationele calculus dr. Katrien Verbert Katrien.Verbert@cs.kuleuven.be
  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. voorbeeld •  { t | EMPLOYEE(t) and t.SALARY > 50000 } 3
  4. formule •  wordt uitgedrukt in predicatenlogica •  maakt gebruik van –  variabelen –  constanten –  vergelijkingsoperatoren =≠<>≥≤ –  logische connectoren ¬∧∨⇔⇒ –  quantificatie van variabelen: ∃ (er bestaat), ∀ (voor alle) 4
  5. voorbeeld connector constante •  { t | EMPLOYEE(t) and t.SALARY > 50000 } vergelijkingsoperator variabele 5
  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. •  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. 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. 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. 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. –  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. { 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. •  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

×