1
Introduction to Data Management CSE 344
Section 5: RC/RA TA: Siena Dumas Ang
CSE 344 - Winter 2015
Introduction to Data Management CSE 344 Section 5: RC/RA TA: Siena - - PowerPoint PPT Presentation
Introduction to Data Management CSE 344 Section 5: RC/RA TA: Siena Dumas Ang CSE 344 - Winter 2015 1 Announcements Homework 4 due Friday, 11pm Midterm Monday! Review Session: Sunday 3-5pm CSE 344 - Winter 2015 2 Likes(drinker,
1
CSE 344 - Winter 2015
CSE 344 - Winter 2015 2
CSE 344 - Winter 2015 3
A(x) = not Likes("Fred", x) A(x,y) = Likes("Fred", x) OR Serves("Bar", y) A(x) = ∀y. Serves(x,y)
Likes(drinker, beer) Frequents(drinker, bar) Serves(bar, beer)
CSE 344 - Winter 2015 4
Q(x) = ∃y. Likes(x, y)∧∀z.(Serves(z,y) ⇒ Frequents(x,z))
CSE 344 - Winter 2015 5
Likes(drinker, beer) Frequents(drinker, bar) Serves(bar, beer)
Q(x) = ∃y. Likes(x, y)∧∀z.(Serves(z,y) ⇒ Frequents(x,z))
Q(x) = ∃y. Likes(x, y)∧ ¬∃z.(Serves(z,y) ∧ ¬Frequents(x,z))
CSE 344 - Winter 2015 6
Likes(drinker, beer) Frequents(drinker, bar) Serves(bar, beer)
∀x P(x) same as ¬∃x ¬P(x) ¬(¬P∨Q) same as P∧ ¬ Q P ⇒ Q same as ¬P ∨ Q
Q(x) = ∃y. Likes(x, y)∧∀z.(Serves(z,y) ⇒ Frequents(x,z))
Q(x) = ∃y. Likes(x, y)∧ ¬∃z.(Serves(z,y) ∧ ¬Frequents(x,z))
CSE 344 - Winter 2015 7
Likes(drinker, beer) Frequents(drinker, bar) Serves(bar, beer)
∀x P(x) same as ¬∃x ¬P(x) ¬(¬P∨Q) same as P∧ ¬ Q P ⇒ Q same as ¬P ∨ Q
Q(x) = ∃y. Likes(x, y) ∧ ¬∃z.(Likes(x,y)∧Serves(z,y)∧¬Frequents(x,z))
Q(x) = ∃y. Likes(x, y) ∧¬ ∃z.(Likes(x,y)∧Serves(z,y)∧¬Frequents(x,z)) H(x,y) :- Likes(x,y),Serves(z,y), not Frequents(x,z) Q(x) :- Likes(x,y), not H(x,y)
CSE 344 - Winter 2015 8
Likes(drinker, beer) Frequents(drinker, bar) Serves(bar, beer)
SELECT DISTINCT L.drinker FROM Likes L WHERE …… H(x,y) :- Likes(x,y),Serves(z,y), not Frequents(x,z) Q(x) :- Likes(x,y), not H(x,y)
9
Likes(drinker, beer) Frequents(drinker, bar) Serves(bar, beer)
SELECT DISTINCT L.drinker FROM Likes L WHERE not exists (SELECT * FROM Likes L2, Serves S WHERE … …) H(x,y) :- Likes(x,y),Serves(z,y), not Frequents(x,z) Q(x) :- Likes(x,y), not H(x,y)
10
Likes(drinker, beer) Frequents(drinker, bar) Serves(bar, beer)
SELECT DISTINCT L.drinker FROM Likes L WHERE not exists (SELECT * FROM Likes L2, Serves S WHERE L2.drinker=L.drinker and L2.beer=L.beer and L2.beer=S.beer and not exists (SELECT * FROM Frequents F WHERE F.drinker=L2.drinker and F.bar=S.bar)) H(x,y) :- Likes(x,y),Serves(z,y), not Frequents(x,z) Q(x) :- Likes(x,y), not H(x,y)
11
Likes(drinker, beer) Frequents(drinker, bar) Serves(bar, beer)
SELECT DISTINCT L.drinker FROM Likes L WHERE not exists (SELECT * FROM Serves S WHERE L.beer=S.beer and not exists (SELECT * FROM Frequents F WHERE F.drinker=L.drinker and F.bar=S.bar)) H(x,y) :- Likes(x,y),Serves(z,y), not Frequents(x,z) Q(x) :- Likes(x,y), not H(x,y)
12
Likes(drinker, beer) Frequents(drinker, bar) Serves(bar, beer)
– RA à datalog¬ – RC à datalog¬
– Nonrecursive datalog¬ à RA – RA à RC
– RA, RC, and non-recursive datalog¬ can express the same class of queries, called Relational Queries
CSE 344 - Winter 2015 13