170 likes | 180 Views
Learn about the historical and conceptual connections between constraint databases, logic programming, and relational databases. Explore binary and k-ary relations, relational algebra operations, relational operators, and more.
E N D
CSPs & Relational DBs Problem Solving with Constraints CSCE421/821, Spring 2018 www.cse.unl.edu/~choueiry/S18-421-821/ All questions Piazza Berthe Y. Choueiry (Shu-we-ri) Avery Hall, Room 360 Tel: +1(402)472-5444 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 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 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 co-domain 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 CSPs and Relational DBs
C1 A V B C3 C2 E G F V D V Representation of relations Binary arrays: 2-dim binary array (i.e., bit matrix): more generally, k-dimensional binary arrays Tables: CSPs and Relational DBs
Comparison of terminology 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) 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 CSPs and Relational DBs
x - y > 10 x + y > 10 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: logicalAND RR' R’’ • RR’ ? RR'’ ? Okay Not defined CSPs and Relational DBs
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 RR' R’’ • RR'? RR''? Not defined Okay CSPs and Relational DBs
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 RR' R’’ R - R'? R - R''? Not defined Okay CSPs and Relational DBs
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, ? 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 X1> X2, ? 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'. 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''? CSPs and Relational DBs
Composition of relationsMontanari'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 CSPs and Relational DBs
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 CSPs and Relational DBs
Comparison of Terminology CSPs and Relational DBs
DB versus CSP • CSPs: • Relations • Many, many relations • Mostly low-arity relations (binary) • Typically, much looser than in DB • Domains • Small-size domains • Finite (frequent), but also continuous (with arbitrary relations). • Seeking (in general) one solution • Cost model: computational cost DB: • Relations • Few relations in a query • Usually, high arity relations • Usually, selective relations • Domains • Large domains, many, 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 and Relational DBs