Database Reference
In-Depth Information
(t
RA
WHERE 1
.
t
RA
. Analogously, it holds
=
1
)
≈
t
RA
≈
(from the isomorphism)
≈
for
is
−
1
as well.
The set of all arrows
Mor
RA
is obtained by the composition of its atomic arrows.
Thus, each arrow in
RA
is just a composition of a number of unary operations
in
Σ
RA
\
Σ
RA
. From this proposition we can see that
Ob
RA
⊂
T
RA
X
, so that we
have to show that this algebra is rich enough to represent
all
terms in
T
RA
X
and,
consequently, form Proposition
20
, all terms of the original relational algebra
Σ
RE
in Definition
31
.
5.2.1 Normalization of Terms: Completeness of RA
In this section, we will show that the
RA
category is complete w.r.t. the set of terms
in
T
RA
X
, in the way that each term
t
RA
∈
T
RA
X
is represented by a (composed)
arrow
f
f(t
RA
)
such that
t
RA
∈
T
RA
X
is a term represented as a particular
Cartesian product of (eventually updated) relational tables that are the leafs in
t
RA
and
t
RA
→
:
f(t
RA
)
#
=
t
RA
#
. Intuitively, it means that each term-tree (as that in Exam-
ple
32
) with a number of leafs can be reduced to a single path-term with a unique
leaf obtained as a Cartesian product of (eventually updated) relational tables.
Consequently, we have to show that each Cartesian product in a given term can
be unfolded down to the unique leaf (represented by Cartesian product of the rela-
tional tables), and that update unary operations “EXTEND...”, i.e., _
(that are not atomic arrows in
RA
), can also be unfolded down to the unique leaf
(represented by Cartesian product of the relational tables).
The first step to do it is to define the “Cartesian product” for the arrows in
RA
,
as follows:
a,name,e
Proposition 22
Given any two arrows in
RA
,
f
1
:
t
RA,
1
→
f
1
(t
RA,
1
) and f
2
:
f
2
(t
RA,
2
)
,
with t
RA,
1
,t
RA,
2
∈
T
RA
X and the relations R
1
=
t
RA,
2
→
f
1
(t
RA,
1
)
#
and R
2
=
t
RA,
2
#
,
with the arrows
,
t
ρ
t
ρ
1.
f
1
:
t
RA,
1
⊗
RA,
2
→
f
1
(t
RA,
1
)
⊗
RA,
2
,
obtained from f
1
,
where each operation
S
&
nr(R
2
)
_
[
S
]
is substituted by the operation _
[
]
,
and
t
ρ
f
2
(t
ρ
2.
f
2
:
f
1
(t
RA,
1
)
⊗
RA,
2
→
f
1
(t
RA,
1
)
⊗
RA,
2
)
,
obtained from f
2
,
where each
operation _
[
S
]
is substituted by the operation _
[
nr(R
1
)
&
S
]
.
1
Then we define the operation of “Cartesian product”
⊗
for the arrows by
:
1
f
2
f
2
◦
f
1
:
f
2
t
RA,
2
.
t
RA,
2
→
f
1
⊗
t
RA,
1
⊗
f
1
(t
RA,
1
)
⊗
The Cartesian product for terms
(
objects
)
and for arrows defines the Cartesian
tensor bifunctor (
1
)
⊗
,
⊗
:
RA
×
RA
→
RA
,
both with the isomorphisms
,
for any
A,B,C
∈
Ob
RA
:
α
A,B,C
:
(A
⊗
B)
⊗
C
A
⊗
(B
⊗
C)
,
β
A
:
r
∅
⊗
A
A
,
and
γ
A
:
A
,
which are the identities
.
Hence
,
RA
is a strict monoidal category
with tensorial product
A
⊗
r
∅
⊗
and the unit r
∅
∈R
with the empty relation
r
∅
#
=⊥
.