# 1 Datalog: Logic Instead of Algebra. 2 Datalog: Logic instead of Algebra Each relational-algebra operator can be mimicked by one or several Database Logic.

## Presentation on theme: "1 Datalog: Logic Instead of Algebra. 2 Datalog: Logic instead of Algebra Each relational-algebra operator can be mimicked by one or several Database Logic."— Presentation transcript:

1 Datalog: Logic Instead of Algebra

2 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

3 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 3 rd 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 (σ length100 (Movies))

4 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)

5 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)

6 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)

7 END

Similar presentations