Database Reference
In-Depth Information
Thus, differently from
M
R
,in
M
RC
, the current instance-database in
Out
DB
(st
(k))
is always a previously committed (thus,
consistent
) database.
Based on this more complex management of the concurrent transactions, the se-
mantics for some operations of
M
RC
are modified w.r.t. their semantics for
M
R
,as
follows:
Definition 44
A concurrent-categorial RDB machine
M
RC
is a categorial RDB
machine
M
R
with the following specific features:
1. -
x
5
is the memory register used to save the number of the current transaction
ID
T
, whose continuation of execution is requested to
M
RC
by a CALL
n
.
2. VCON is the function which assigns 0 to
x
2
if the database in current state
st
(k)
,
obtained from
Out
DB
(st
(k))
by replacing its relations with locally updated rela-
tions in the partition with the transaction number in
x
5
, is consistent; 1 otherwise.
3. COM is the function which assigns 1 to
x
3
and eliminates all local relation from
the partition determined by transaction number in
x
5
. Hence, each
RA
arrow
in the local list of this partition is executed in a given ordering by using the
relations in the current database in
Out
DB
(st
(k))
and by modifying it with the
obtained resulting relations. At the end of this process, we obtain a new state
st
(m)
such that
Out
DB
(st
(k))
is the new consistent database instance resulting
from this transaction, and it is written by the Buffer Manager in the physical
storage memory as well. At the end, all locks are released and the partition with
transaction number in
x
5
is eliminated.
4. RBACK assigns 1 to
x
3
, all locks are released and the partition with transaction
number in
x
5
is eliminated.
5. The extended input function
In
∗
ER
satisfies the following properties:
f
:
S
R
→
S
R
if
z
is
(n,m, ID
T
,L)
or a database
;
λIn
∗
ER
(z)
=
id
:
S
R
→
S
R
(
identity function
)
otherwise
,
with function
f
such that for a state
st
(k)
S
R
,
st
(k
f(st
(k))
∈
+
1
)
=
∈
S
R
is
obtained from
st
(k)
by the following setting:
x
1
=
x
4
=
n,x
2
=
m,x
5
=
ID
T
,
and the list of values in
L
is loaded into the subset of registers of
S
R
used for the
I/O memory if
z
(n,m, ID
T
,L)
. Otherwise, if
z
is a database then it is loaded
into the dynamic data-memory.
6. The output function
Out
R
satisfies the following properties:
=
Out
R
st
(k)
=
if
t
1
(st
(k))
=
∅
(
empty set
)
0
;
(
0
,n,ID
T
,R)
otherwise
,
where
ID
T
is the value of
x
5
,
R
is a relation in
I/O
memory of
M
RC
(obtained by
the last execution of a program
P
k
in the Application Plane) and
n
is the value of
its register
x
2
, with
R
if
n>
0or
P
k
is not obtained from an SQL statement
'SELECT...' in the source program
P
. If the output is a tuple
(
0
,n,ID
T
,R)
then it is transmitted to
M
UC
.
=⊥