70 likes | 183 Views
Datalog: Logic Instead of Algebra. Datalog: Logic instead of Algebra. Each relational-algebra operator can be mimicked by one or several Database Logic (Datalog) that consists of if-then rules. Datalog is inherently a logic of sets
E N D
Datalog: Logic Instead of Algebra
Datalog: Logic instead of Algebra • Each relational-algebra operator can be mimicked by one or several Database Logic (Datalog) that consists of if-then rules. Datalog is inherently a logic of sets • Datalog queries are more powerful than relational algebra; several rules can express recursions that are not expressable in algebra • Relations are represented in Datalog as predicates; predicate (R) is followed by its arguments is called an atom • Predicate returns a boolean value
Datalog: Logic instead of Algebra • Rule: head body • Head: relational atom • : read “if” • Body: one or more atoms called subgoals which may be relational or arithmetic • Example: LongMovie(t,y) Movies(t,y,l,s,p) AND l ≥ 100 • It says: LongMovie(t,y) is true whenever we can find tuple in Movies with: first 2 components as (t,y) and 3rd component as l that is at least 100, and any values in components 4 and 5 • Equivalent to assignment statement in relational algebra: LongMovie := ∏title,year (σlength≥100(Movies))
Datalog: Logic instead of Algebra • Extensional and Intentional Predicates: • Extensional Predicates (EDB) are predicates whose relations are stored in a database • Intentional Predicates (IDB) are predicates whose relations are computed by applying one or more Datalog rules • As long as there is no negated relational subgoals, evaluating rules when relations are sets apply for bags as well • Relational Algebra and Datalog: assume R(A,B,C), and S(A,B,C): • Boolean: • Union: R υ S is equivalent to these 2 rules: • U(A,B,C) R(A,B,C) • U(A,B,C) S(A,B,C)
Datalog: Logic instead of Algebra • Intersection: R ∩ S is equivalent to the following rule: • I(A,B,C) R(A,B,C) AND S(A,B,C) • Set Difference: R - S is equivalent to the following rule: • D(A,B,C) R(A,B,C) AND NOT S(A,B,C) • Projection • P(A,B) R(A,B,C) • Selection • S(A,B,C) R(A,B,C) AND C ≥ 100 • Product • P(A,B,C,D,E.F) R(A,B,C) AND S(D,E,F) • Joins • J(A,B,C,D) R(A,B) AND (S(B,C,D)
Datalog: Logic instead of Algebra • Simulating Multiple Operations with Datalog • Example: Algebraic Expression • ∏Title,year (σlength ≥ 100(Movies) ∩ σStudioName=‘Fox’(Movies)) • Translates into this set of rules: • W(t,y,l,g,s,p) Movies(t,y,l,g,s,p) AND l ≥ 100 • X(t,y,l,g,s,p) Movies(t,y,l,g,s,p) AND s = ‘Fox’ • Y(t,y,l,g,s,p) W(t,y,l,g,s,p) AND X(t,y,l,g,s,p) • Answer(t,y) Y(t,y,l,g,s,p)