Title: CSPs and Relational DBs
1- 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_at_cse.unl.edu
- Tel 1(402)472-5444
2Background
- 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
3Relations
- Binary relation Given two sets Da and Db, a set
of any 2-tuples - lt x, ygt 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 lt x, ? gt ? 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 - lt x1, x2, ..., xk gt with x1 ? D1, x2 ? D2, ,
xk ? Dk defines a - k-ary relation R1, 2, ..., k (x1, x2, ...,
xk) ? D1 x D2 x x Dk
4Representation of relations
- Binary arrays
- ? 2-dim binary array (i.e., binary matrix)
-
- ? more generally, k-dimensional binary arrays
- Tables
-
5Comparison 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
6Relational Algebra operations on relations
- Database
- Intersection
- Union
- Difference
- Selection
- Projection
- Join (Cartesian product), etc.
- CSP
- The above and composition ( combination of join
and projection)
7Operators 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
8Intersection
- 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 logical AND
- R R' R
- R ? R ? R ? R' ?
Okay
Not defined
9Union
- 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
- R R' R
- R ? R'? R ? R''?
Not defined
Okay
10Difference
- 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
- R R' R
- R - R'? R - R''?
Not defined
Okay
11Selection
- 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 x1gt x2, ?x1gt x2(R)?
12 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)?
13Join (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.
- R R"
- Join R and R'', R R''?
14Composition 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
15Questions
- Given
- two variables V1 and V2 and
- two constraints C1 and C2 between them
- How do the two expressions C1 ? C2 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 CV1, V3 in
relational algebra
16Comparison 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 r1 r2 ri Finding all solutions to the conjunction of the constraints rk