160 likes | 172 Vues
CSPs and Relational DBs Foundations of Constraint Processing CSCE421/821, Fall 2003: www.cse.unl.edu/~choueiry/F03-421-821/ Berthe Y. Choueiry (Shu-we-ri) Ferguson Hall, Room 104 choueiry@cse.unl.edu Tel: +1(402)472-5444. Background.
E N D
CSPs and Relational DBs Foundations of Constraint Processing CSCE421/821, Fall 2003: www.cse.unl.edu/~choueiry/F03-421-821/ Berthe Y. Choueiry (Shu-we-ri) Ferguson Hall, Room 104 choueiry@cse.unl.edu Tel: +1(402)472-5444 Lecture slides 3
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 Lecture slides 3
Relations Binary relation: Given two sets Da and Db, a set of any 2-tuples < x, y> with Da and y Db defines a relationRab 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 the function Db is called the range of the function k-ary relation: Given k sets D1, D2, …, Dk, any set of k-tuples < x1, x2, ..., xk > with x1 D1, x2 D2, …, xk Dk defines a k-ary relation: R1, 2, ..., k = {(x1, x2, ..., xk)} D1 x D2 x … x Dk Lecture slides 3
Representation of relations C1 A V B C3 C2 E G F V D V Binary arrays: 2-dim binary array (i.e., binary matrix): more generally, k-dimensional binary arrays Tables: Lecture slides 3
Comparison of terminology Lecture slides 3
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) Lecture slides 3
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 Lecture slides 3
Intersection x - y > 10 x + y > 10 • 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) • Matrix operation: logicalAND RR' R’’ • RR’ ? RR'’ ? Okay Not defined Lecture slides 3
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 • Matrix operation: logical OR RR' R’’ • RR'? RR''? Not defined Okay Lecture slides 3
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' • Matrix operation: Boolean difference RR' R’’ R - R'? R - R''? Not defined Okay Lecture slides 3
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 x1> x2, x1> x2(R)? Lecture slides 3
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 x1, x2, x1, x2(R)? Lecture slides 3
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'. 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. RR" Join R and R'', RR''? Lecture slides 3
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). Matrix operation: binary matrix multiplication Note: - generalization as constraint synthesis [Freuder, 1978] - Direct (explicit) vs. induced (implicit) relations Lecture slides 3
Questions • Given • two variables V1 and V2 and • two constraints C1and C2 between them How do the two expressions C1C2 and C1 C2 relate? • Given • three variables V1, V2, V3 and • the binary constraints CV1, V2 and CV2, V3 write the induced CV1, V3, in relational algebra • Given • three variables V1, V2, V3 and • the binary constraints CV1, V2, CV1, V3, and CV2, V3, write the new induced C’V1, V3 in relational algebra Lecture slides 3
Comparison of Terminology Lecture slides 3