CSPs and Relational DBs Foundations of Constraint Processing

CSPs and Relational DBs Foundations of Constraint Processing CSCE 421/821, Fall 2004: www. cse. unl. edu/~choueiry/F 04 -421 -821/ Berthe Y. Choueiry (Shu-we-ri) Avery Hall, Room 123 B choueiry@cse. unl. edu Tel: +1(402)472 -5444 Foundations of Constraint Processing, Fall 2004 October 3, 2004 CSPs and Relational DBs

Background Strong historical & conceptual connections exist between: • Constraint Databases & Constraint Logic Programming • Query processing in Relational DBs & Solving CSPs Indeed: • Constraint databases (deductive BD, Datalog) and constraint logic programming (CLP) share the representation language (restricted forms of FOL) • Relational databases and Constraint Satisfaction share computation mechanisms Foundations of Constraint Processing, Fall 2004 October 3, 2004 CSPs and Relational DBs

Relations Binary relation: Given two sets Da and Db, a set of any 2 -tuples < x, y> with Da and y Db defines a relation Rab Ra, b = {(x, y)} Da x Db Function: (special binary relation) For any element x in Da there is at most one tuple < x, ? > Rab Da is called the domain of the function Db is called the range of the function k-ary relation: Given k sets D 1, D 2, …, Dk, any set of k-tuples < x 1, x 2, . . . , xk > with x 1 D 1, x 2 D 2, …, xk Dk defines a k-ary relation: R 1, 2, . . . , k = {(x 1, x 2, . . . , xk)} D 1 x D 2 x … x Dk Foundations of Constraint Processing, Fall 2004 October 3, 2004 CSPs and Relational DBs

Representation of relations Binary arrays: 2 -dim binary array (i. e. , bit matrix): more generally, k-dimensional binary arrays Tables: A C 1 B V D C 2 V E F C 3 G V Foundations of Constraint Processing, Fall 2004 October 3, 2004 CSPs and Relational DBs

Comparison of terminology DB terminology CSP terminology Table, relation Constraint Relation arity Constraint arity Attribute CSP variable Value of an attribute Value of a variable Domain of an attribute Domain of a variable Tuple in a table Tuple in a constraint Tuple allowed by an constraint Tuple consistent with a constraint Constraint relation (in constraint databases) Constraint of linear (in)equality Foundations of Constraint Processing, Fall 2004 October 3, 2004 CSPs and Relational DBs

Relational Algebra: operations on relations Database: • Intersection • Union • Difference • Selection • Projection • Join (Cartesian product), etc. CSP: • The above and composition (= combination of join and projection) Foundations of Constraint Processing, Fall 2004 October 3, 2004 CSPs and Relational DBs

Operators in Relational Algebra • Selection, projection: – unary operators, defined on one relation • Intersection, union, difference: – binary operators – relations must have same scope • Join: – binary operator – relations have different scopes Foundations of Constraint Processing, Fall 2004 October 3, 2004 CSPs and Relational DBs

Intersection • Input: two relations of the same scope • Output: a new more restrictive relation with the same scope, made • of tuples that are in all the input relations (simultaneously) Bit-matrix operation: logical AND x - y > 10 x + y > 10 R' R • R R’ ? Okay R R'’ ? Not defined Foundations of Constraint Processing, Fall 2004 October 3, 2004 CSPs and Relational DBs R’’

Union • Input: two relations of the same scope • Output: a new less restrictive relation with the same scope made of tuples that are in any of the input relations • Bit-matrix operation: logical OR R R' • R R'? Okay R R''? Not defined Foundations of Constraint Processing, Fall 2004 October 3, 2004 CSPs and Relational DBs R’’

Difference • Input: two relations R and R' of the same scope • Output: a new more restrictive relation than R made of tuples that are in R but not in R' • Bit-matrix operation: Boolean difference R R' R - R'? Okay R - R''? Not defined Foundations of Constraint Processing, Fall 2004 October 3, 2004 CSPs and Relational DBs R’’

Selection • Input: A relation R and some test/predicate on attributes of R • Output: A relation R', same scope as R but containing only a subset of the tuples in R (those that satisfy the predicate) • Relation operation: row selection R Select such that x 1> x 2, x 1> x 2(R)? Foundations of Constraint Processing, Fall 2004 October 3, 2004 CSPs and Relational DBs

Projection • Input: A relation R and a subset s of the scope (attributes) • Output: A relation R' of scope s with the tuples rewritten such that positions not in s are removed • Relation operation: column elimination R Project R on x 1, x 2, x 1, x 2(R)? Foundations of Constraint Processing, Fall 2004 October 3, 2004 CSPs and Relational DBs

Join (natural join) Input: Two relations R and R' Output: A relation R'', whose scope is union of scopes of R and R' and tuples satisfy both R and R' have no attribute common: Cartesian product R and R' have an attribute in common, compute all possibilities Operation: Compute all solutions to a CSP. R R" Join R and R'', R R''? Foundations of Constraint Processing, Fall 2004 October 3, 2004 CSPs and Relational DBs

Composition of relations Montanari'74 Input: two binary relations Rab and Rbc with 1 variable in common. Output: a new induced relation Rac (to be combined by intersection to a pre-existing relation between them, if any). Bit-matrix operation: matrix multiplication Note: - generalization as constraint synthesis [Freuder, 1978] - Direct (explicit) vs. induced (implicit) relations Foundations of Constraint Processing, Fall 2004 October 3, 2004 CSPs and Relational DBs

Questions 1. Given • • two variables V 1 and V 2 and two constraints C 1 and C 2 between them How do the two expressions C 1 C 2 and C 1 C 2 relate? 2. Given • • three variables V 1, V 2, V 3 and the binary constraints CV 1, V 2 and CV 2, V 3 write the induced CV 1, V 3, in relational algebra 3. Given • • three variables V 1, V 2, V 3 and the binary constraints CV 1, V 2, CV 1, V 3, and CV 2, V 3, write the new induced C’V 1, V 3 in relational algebra Foundations of Constraint Processing, Fall 2004 October 3, 2004 CSPs and Relational DBs

Comparison of Terminology Databases CSPs (Natural, inner) join Synthesized constraint Left/right outer join Synthesized constraint including (some) inconsistent tuples Projection of a join Induced constraint (Composition of two constraints) Computing r 1 r 2 … ri Finding all solutions to the conjunction of the constraints rk Foundations of Constraint Processing, Fall 2004 October 3, 2004 CSPs and Relational DBs

DB vs. CSP DB: • Relations – Few relations in a query – Usually, high arity relations • Domains – Large domains, many tuples – Mostly finite (CDB introduce continuous domains, restricted to linear constraints) • Seeking (almost) all tuples • Cost model: I/O disk access, memory size CSPs: • Relations – Many, many relations – Mostly low-arity relations (binary) • Domains – Small-size domains – Finite (frequent), but also continuous (with arbitrary relations). • • Seeking (in general) one solution Cost model: computational cost Foundations of Constraint Processing, Fall 2004 October 3, 2004 CSPs and Relational DBs
- Slides: 17