Database Reference
In-Depth Information
as explained in Sect.
1.4.1
in the Introduction, we cannot use the schema mapping
x
2
StudentRome
(x
1
,x
2
)
∀
x
1
∀
∨
StudentMilan
(x
1
,x
2
)
∨
StudentFlorence
(x
1
,x
2
)
⇒
Student
(x
1
,x
2
)
because the left-hand sides of implications in tgds (and SOtgds) are only conjunctive
formulae.
Consequently, we have to make a decomposition of such a disjunction into the
three conjunctive components. Hence, the SOtgd for this schema mapping is a for-
mula
Φ
equal to:
x
2
StudentRome
(x
1
,x
2
)
⇒
Student
(x
1
,x
2
)
∀
x
1
∀
x
2
StudentMilan
(x
1
,x
2
)
⇒
Student
(x
1
,x
2
)
∧∀
x
1
∀
x
2
StudentFlorence
(x
1
,x
2
)
⇒
Student
(x
1
,x
2
)
,
∧∀
x
1
∀
and, consequently, we define the mapping
M
AB
={
Φ
}:
A
→
B
.
Thus, we obtain the sketch's mapping
M
AB
=
MakeOperads(
M
AB
)
={
q
1
,q
2
,q
3
,
1
r
∅
}:
A
→
B
with
q
1
∈
O(
StudentRome
,
Student
),q
2
∈
O(
StudentMilan
,
Student
)
,
q
3
∈
O(
StudentFlorence
,
Student
)
.
Consequently, we obtain the isomorphic arrow
f
α
∗
(
=
{
q
1
,q
2
,q
3
,
1
r
∅
}
)
:
A
→
B
where
f
={
α(q
1
),α(q
2
),α(q
3
),q
⊥
}
is the set of injective functions:
in
1
=
α(q
1
)
:
α(
StudentRome
)
→
α(
Student
),
in
2
=
α(q
2
)
:
α(
StudentMilan
)
→
α(
Student
),
in
3
=
α(q
3
)
:
α(
StudentFlorence
)
→
α(
Student
),
with the information flux (here
x
denotes the tuple
(x
1
,x
2
)
) equal to:
f
=
B
T
(f )
T
π
x
StudentRome
A
,π
x
StudentMilan
A
,
π
x
StudentFlorence
A
=
T
α(
StudentRome
),α(
StudentMilan
),α(
StudentFlorence
)
=
TA,
=
i.e., it is monic and, from the fact that
TA
=
TB
and hence
f
=
TB
, it is also epic.
Consequently, from Proposition
8
,
f
:
A
→
B
is an isomorphism.
with a new relation
Takes1
(x
1
,x
3
)
that associates
student names with courses (as in Example
2
) such that
α(
Takes1
)
is not the empty
relation then
f
=
TA
⊂
TB
, and hence in this case the morphism above
f
:
A
→
B
is a monic arrow only.
If we enlarge the schema
B