Documente Academic
Documente Profesional
Documente Cultură
"
# ! $
% &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
"
"
! , , " ,,
$%
8 9
F " C 9 DE , I ".
F , ," C " DE " ". I ,
F " " E, ".
F ' ' E , ,
F " E , I " ,
8 9
F ( ' " E
!" !" C5 $5 D
C%$)# 8% J D
F ' " E
"
F ' " E
" 9
9 K "
!
Livre(Cote: Chaîne, Titre: Chaîne)
Auteur(Nom: Chaîne, Cote: Chaîne)
Livre
Cote Titre
BD/46 Les BD en BD
Personne
Auteur
Nom Cote
Dupont BD/46
Durand BD/46
classe Livre
classe Personne
{année_courante - self->Année_naissance}
livres: ensemble(Livre)
personnes: ensemble(Personne)
livres = {L1}
! , $% , > , 4 ! 4
4 "" ." " , " , !
F " I
F !G C, " DI
F " 4
#$%
$% $% $%
#$% #$%
C, " " D C, " " D
#$%
C, " . D
$% $% $%
M '' " , 0
" "" , , "7" ! !
F 5 ", " E
34 "
$%
début transaction
solde(A) = solde(A) - S
solde(B) = solde(B) + S
fin transaction
O $% ". , "
" " B #$% " " " '"
,
+
3 ' , " "" , ' > $% " "
, . 4 > , B #$% " .
7" " , $% " !
+
B #$% " , " " ? " , " "
, " , " $%
F "7" ! , C, 4 , 9 . :, "
" " D "7" , ' ,, " "
8 , " "
F E
7" " ! 4 " , ' " "
4, " $% . ,, " " , " "
"" , '' #$%I .
, . '' , ' " "
F E
? $% . " " , , '
,, " " , , . " . '' >
% ! ," $% . ,, E B5 I , 4 ,
! , ! ". I" ,
#$% , " " E " 9 I, 4 ,
F %$ $5 I
F 8 I
F 7 "4I
F : I
F . 5" 7I
N
" P? E
F , "" E $% . I
F " E ' " '" , "
F " I
F " I
F " " '"
F " E
!G I
" I
I
I
F " E
9 I ? " . 4 , E
, , " ' , ,
⊆ %( × N × %
!
4, " 7 E
C (E %(I NI E%D
;9
9 :, C (E %(I NI E%D
, E
R ( S .(I N I S. T
.( ∈ %(I NI . ∈ %
4 , E
4 " " :, E
C (E %(I NI E%D
C (I NI D
4 " E
Personne
Dupont 36 Vrai
Durand 22 Faux
4 , I " E
. "
4 , E
8 ,, " I . ." I
" " 4 , {Nom, Age} " "
Personne
" , 4 , I " E
" , 4 , " E
'"
F ,, . " ? " I
F 7" " " I
F " " " I
F " I
F "" " 4 , " " ?9
8 . , 7 " ". E
Première(Nom_Sommet: Nom_de_sommet,
Face: Orientation,
Année: Année_d_ascension)
Conquête(Grimpeur: Chaîne,
Nom_Sommet: Nom_de_sommet,
Face: Orientation)
" Nom_Sommet
Sommet Localisation
Hidden-Peak Chine
Hidden-Peak Pakistan
Première
Everest S 1953
Manaslu S 1972
Hidden-Peak NO 1975
Everest SO 1975
Manaslu O 1981
Conquête
Hillary Everest S
Tensing Everest S
Messner Manaslu S
Messner Everest SO
Habeler Everest SO
Béghin Manaslu O
I I 4, " : , . " I
I $I " I
UI JI X " I
. " , I
" CUD " " UI
(I NI E 7 " 4, " (I NI :,
S. 7 " 4, " . .
UE % , (E %(I NI E%
U, R ( S (I NI S T
>
" E
I E CUE %D
E
C I DE CUE %D
C I D SR Y ∈ ∈ T
C I DE CUE %D
C I D SR Y ∈ ∈ T
C I DE CUE %D
C I D SR Y ∈ ∉ T
4 , E
Sommet Altitude
Sommet Altitude
Hidden Peak 8086
minus( , Everest 8848 ) =
Everest 8848
Manaslu 8163
Manaslu 8163
Sommet Altitude
Hidden Peak 8086
" E
E CUE %UD
E CJE %JD
" CUD ∩ " CJD S ∅
4 , E
Sommet2 Pays
Sommet1 Altitude
pc( , Everest Népal ) =
Everest 8848
Everest Chine
" E
E CUE %D
7 E RUE %T −> $
C I 7D E CUE %D
C I 7D S R Y ∈ 7C D S 6 "T
% 7 H 7 " 7 , . "
, " " , "7" ". E
C I θ .D ≡ C I7 θ .D
4 , E
Sommet Altitude
Everest 8848
sel( , Altitude > 8500) =
Manaslu 8163
Hidden Peak 8086
Sommet Altitude
Everest 8848
" E
?C I UD E CUE %UD
?C I UD S R U Y ∈ T
4 , E
Grimpeur Sommet Face
Hillary Everest S
Tensing Everest S
proj( Messner Manaslu S , {Sommet, Face}) =
Habeler Hidden Peak NO
Messner Hidden Peak NO
Beghin Manaslu O
Sommet Face
Hidden Peak NO
Manaslu S
Everest S
Manaslu O
" E
E CUE %UD
E CJE %JD
" CUD ∩ " CJD S ∅
7 E RUE %UI JE %JT −> $
8 E
@? C I I U S JD ≡ ? C I I 7 C9D 9 U S 9 JD
4 , E
Sommet1 Face
Everest N Sommet2 Altitude
equi_join( Manaslu S , Everest 8848 ,
Hidden Peak NO Manaslu 8163
Manaslu O
" E
E CUE %UD
E CJE %JD
" CUD ∩ " CJD S ∅
U S RU(I NI U T
J S RJ(I NI J T
HE
AS ? C I I 7D
4 S C C I , 9CAI UDDI RRJ( S NulleI NI J S NulleTTD
4 S CRRU( S NulleI NI U S NulleTTI C I ?CAI JDDD
4 , E
Sommet1 Altitude Sommet2 Face
ext_equi_join( Manaslu 8163 , Everest S ,
Everest 8848 Annapurna N
" E
E CUE %UD
E CJE %JD
" CUD ∩ " CJD S ∅
7 E RUE %UI JE %JT −> $
@? C I I 7D E CUE %UD
@? C I I 7D S R, Y , ∈ ∃ ∈ I 7C, ∪ D S 6 "T
4 , E
Sommet1 Face
Everest N
Manaslu S Sommet2
equi_semi_join( Hidden Peak NO , Annapurna ,
Manaslu O Manaslu
K2 NE
Annapurna N
Sommet1 Face
Annapurna N
Sommet1 = Sommet2) =
Manaslu S
Manaslu O
" E
4 , E
Sommet Face1
Everest S Face2
Manaslu S N
Sommet
equi_div( Everest N , E , Face1 = Face2) =
Everest
Everest O S
Manaslu O O
Everest E
" E
E CNI E %I ND
E
C I I $D E CNI $E %I ND
C I I $D S
" > :, > 4 " I
4 , ' " , $
4 , E
Nom Altitude
Everest 8848
rename( , Nom , Nom_Sommet) =
Manaslu 8163
Hidden Peak 8086
Nom_Sommet Altitude
Everest 8848
Manaslu 8163
Hidden Peak 8086
V := equi_semi_join(Conquête,
L,
Nom_Sommet_Conquis = Nom_Sommet);
S = proj(Sommet, Nom_Sommet)
Réponse = equi_div(C, S, Nom_Sommet_Conquis = Nom_Sommet)
!"##
$
minus(proj(L1, Nom_Sommet),
proj(L2, Nom_Sommet)))
C I 7D 7
?C I UD U
? C I I 7D
7
B 4, " " , 7 E
RR$( S 4( (I NI $ S 4 T Y 7T
H7 7 " , I $(I NI $
" 4(I NI 4 . " " 7
3 " E^ , R$( S ( (I NI $ S T 7
. ", 4( S (I NI 4 S
!%##
RR ( S 4(I NI S 4 T Y 7T
H7 7 " " I (I NI
" .(I NI . . " " 7
3 " E^ , R ( S .(I NI S. T 7
. " , 4( S .(I NI 4 S . _
!%##
{{S = s, F = f, A = a} |
Conquête(Grimpeur = "Messner", Nom_Sommet = s, Face = f)
et Sommet(Nom_Sommet = s, Altitude = a)}
{{G = g} | ∀s (Sommet(Nom_Sommet = s)
' ". E
F . Nulle . :
, " Nulle , . Indéfini
Vrai Faux
Faux Vrai
Indéfini Indéfini
. , 7" " 4
,, I, 4 , I . " . , "
, 8 , 7" " . ". E
" ? , " ? ! $%
, " "
: " U " J
" ", 4 " I? ! . U" ,
9 > . J 8 " U J
E
U −> J
"."
3 , ; " "
" I ;< C ;D ,
7 " '" " ," , ;, > ?, " " '
". C 4" 'D E
C 9# D " J ⊆ U ⊆ U \J
C # D "U \J J \X U \X
C D "U \J U \X U \J∪X
C D "U \J∪X U \J U \X
F U \R (I NI TI
8 ,, 7 " ""
F Année " ,
, . "
Nom_Sommet Pays
K2 Chine, Pakistan
Nom_Sommet Pays
Everest Chine
Everest Népal
K2 Chine
K2 Pakistan
4 , I " ". E
, 7 ,
Nom_Sommet \ Altitude " Altitude , "
Nom_Sommet ," "
3 , > , 4 " E
Everest SO 1975
" 7 , . , 7 "
3 , > , 4 " E
Buhl Innsbruck
" 7 , . , 7 "
7 $ : " ," 7
4 , I "
3 , $ ; ,
{Rue, Code_postal} \ VilleI Code_postal , ,
3 , > , 4 " E
RC(Rue, Code_postal)
CV(Code_postal, Ville)
" 7 $ : ,
, "" , . , , 7 "
{Rue, Ville} \ {Code_postal}.
U \\ J
" Conquête E
C D " U \\ J U \\ U J
C # D " U \\ J 6⊆ ` ⊆6
6 ∪ U \\ ` ∪ J
C # # D " U \\ J J \\ X U \\ X J
C D "U \J U \\ J
C # D " U \\ J U \\ X U \\ J ∪ X
C D " U \\ J U \\ X U \\ J ∩ X
C D " U \\ J U \\ X U \\ J − X U \\ X J
4 , I " ".
3 , > , 4 " E
" + 7 ,
{Nom_Sommet, Face} ->> Grimpeur " " , "
" , Nom_Sommet \\ Pays " "
4" "
F % # " , 7 "
" ," , , 7 " (I NI
"
" "
_____
S = {R1(Nom_Sommet, Altitude),
_____
S = {R1(Nom_Sommet, Altitude),
R3(Nom_Sommet, Pays),
R4(Nom_Sommet, Face, Année, Grimpeur)}
_____
S = {R1(Nom_Sommet, Altitude),
R3(Nom_Sommet, Pays),
! + 7 C 7 D
, , .
# #
_____
! $ ;C 7 D ,
7 " , .
! $ ;C 7 D " ,
7 " {CVoit, COpt} \ PCat ,
@A 5 " $ " 0
'' . " " " ' ' 3 B3 , :,
: . ,, ? $5 A ?, " (&0-
Y "9 "
ab ," "
" & ≡ & aI NI &b
@A 5 " $ " 0+
+
CREATE DOMAIN ' ' Z
EES
CHAR a( )b
Y VARCHAR a( )b
Y INTEGER
Y FLOAT
Y DATE
N
Y USER
Y NULL
Y CURRENT_DATE
B
@A 5 " $ " 0-
;9
CHECK (VALUE IN ('N', 'S', 'O', 'E', 'NO', 'SO', 'NE', 'SE'))
NOT DEFERRABLE;
NOT DEFERRABLE;
@A 5 " $ " 0/
+
CREATE TABLE
C ' ' Y D
a" ' ' b
aDEFAULT ( ' ' b
@A 5 " $ " 00
' ' EES
aCONSTRAINT b
' ' ' '
' '
EES
PRIMARY KEY ( " ' ' )
Y NOT NULL ( " ' ' )
Y UNIQUE ( " ' ' )
Y CHECK ( ' ' )
@A 5 " $ " 02
;9
FACE ORIENTATION,
;9
) * $ *+ , - .- -
/ 01 23-&-
@A 5 " $ " 21
: 4 C " , "7" D > 7" " , ' ".
". E
EES
SELECT aDISTINCTb
FROM " C ' ' aaASb bD Y C D
WHERE
EES ( )
@A 5 " $ " 2(
EES
*
Y ' ' .*
+ EES
(
Y ' '
Y + ' $
N
EES
COUNT(*)
'* (aDISTINCTb + )
'* EES
CCOUNT Y SUM Y AVG Y MAX Y MIND
@A 5 " $ " 2
EES
'
Y NOT
Y CAND Y ORD
Y( )
' EES
' '
Y ' '( '
Y
Y ',' ' (
Y ',' '
Y '* '(
EES
' ' C= Y <> Y > Y < Y <= Y >=D ' '
Y + C= Y <> Y > Y < Y <= Y >=D CALL Y SOMED ' '
' '( ES
(" ( ) Y ' '
@A 5 " $ " 2
C
, ? >
)/ " 7 L ". E
@A 5 " $ " 2+
;9
SELECT NOM_SOMMET
FROM SOMMET;
%5"6
SELECT *
FROM PREMIERE
WHERE ANNEE = 1953
"
SELECT *
FROM PREMIERE
7 8
* !%## !"##
FROM SOMMET
@A 5 " $ " 2-
9 $ !%## *
(
FROM CONQUETE;
@A 5 " $ " 2/
! ! " # $%&'$( $( %)$* +
SELECT COUNT(*)
FROM SOMMET;
FROM LOCALISATION;
) +
FROM SOMMET;
SELECT SUM(S.ALTITUDE)
FROM SOMMET S, CONQUETE C
@A 5 " $ " 20
, "-+ .
/1 *-(
SELECT *
FROM PREMIERE
WHERE ANNEE = (SELECT ANNEE
FROM PREMIERE
WHERE NOM_SOMMET = 'Everest'
* ,
SELECT NOM_SOMMET
FROM SOMMET
@A 5 " $ " 22
, "/+
$ - 1
FROM LOCALISATION
WHERE PAYS = 'Chine')
( 0$
SELECT NOM_SOMMET
FROM SOMMET
FROM LOCALISATION
WHERE PAYS = 'Népal')
FROM LOCALISATION
* ,
SELECT NOM_SOMMET
FROM SOMMET
FROM LOCALISATION
WHERE PAYS = 'Pakistan'));
FROM CONQUETE C2
WHERE C2.GRIMPEUR = 'Messner'
SELECT C1.GRIMPEUR
FROM CONQUETE C1
FROM CONQUETE C2
WHERE C2.GRIMPEUR = C1.GRIMPEUR)
(SELECT NOM_SOMMET
FROM SOMMET);
9 < $ =
GROUP BY L.PAYS;
9 < $ =
* %5>" (
GROUP BY NOM_SOMMET
) $
GROUP BY L.PAYS
ORDER BY 1;
"
GROUP BY L.PAYS
ORDER BY ALTITUDE_MOYENNE;
(SELECT NOM_SOMMET
FROM SOMMET
WHERE ALTITUDE > 8500)
INTERSECT
(SELECT NOM_SOMMET
FROM LOCALISATION
WHERE PAYS = 'Népal')
EXCEPT
(SELECT NOM_SOMMET
FROM LOCALISATION
WHERE PAYS = 'Chine');
( EES
+
Y NULL
Y USER
Y CURRENT_DATE
N
) , 1 %5>!A
) ( A
(NOM_SOMMET NOM_DE_SOMMET,
FACE ORIENTATION);
FROM CONQUETE
0 ( * $ A
UPDATE SOMMET
FROM LOCALISATION
/ BCA
DELETE
FROM PREMIERE
+ 9
CREATE aUNIQUEb INDEX ' *' +ON
' ' (" ' ' );
9
DROP INDEX ' *' +;
;9
/ * +0/EA
+ #
CREATE VIEW a( " ' ' )b AS ;
#
DROP VIEW ' '( ;
0 ( - .- -')3' - )G
A
!"## (
%5"6
SELECT NOM_SOMMET
FROM PREMIERE_AU_NEPAL
WHERE ANNEE = 1953
/ ( - .- -')3' - )GA
B " ," , ,
, ! " " , ,, ,
, '
, 7"4 , E
. . " :, , " . . " "
77
@A 5 " $ " (1
. 42
@A 5 " $ " (1
9
EXEC SQL
UPDATE …
SET …
WHERE CURRENT OF ' ' ;
EXEC SQL
DELETE
FROM …
WHERE CURRENT OF ' ' ;
EXEC CLOSE
EXEC SQL
SELECT …
INTO (
FROM …
WHERE …
GROUP_BY …
HAVING …;
) , ( une_annee *
une_face *-(
char une_face[2];
int une_annee;
EXEC SQL END DECLARE SECTION
…
EXEC SQL
SELECT ANNEE
INTO :une_annee
FROM PREMIERE
FROM SOMMET
WHERE NOM_SOMMET IN
(SELECT NOM_SOMMET
FROM LOCALISATION
while(SQLCODE = 0) {
Calcul de incr …
EXEC SQL
UPDATE SOMMET
V. "" " W
(SELECT *
FROM EMPLOYE
WHERE SALAIRE <= 10000
AND NUM_DEPT =
(SELECT NUM_DEPT
FROM DEPARTEMENT
( EES
CINSERT DELETE UPDATE aOF " ' ' bD
ON ' '
EES
REFERENCING COLD AS NEW AS D
EES
WHEN + '
EES
(" )
0 * $ ,
$ A
0 * $ , *
* , * * ( A
(UPDATE DEPARTEMENT
8 , , "7" ? 77 " , : ,
7" " . ". E
: 4 4 ". E
EES
CINSERT DELETE UPDATE a " ' ' bD
F ) ? "" A % , " , :
"7" " , :I , ". E
C A % , , " , : D
9 E ,, " 7 ? "
" , > 7 " E
, ," " I
, ' , " "' E , ." , ,"
"
,!: " , , C I 7I I D HE
( e , E , : " ,
, C I "D
O " (
, ' O O ,
C"D
C D
( ! , 77" E
F " , ,
3 , . > , E
F 7 4 I
F 7 "" , , ' ,, " "
7 < D =
47 , " ". E
F 7 7"4 E
F 7 . " E
. " , ' I
. " , "
7 < D =
!
(
F , ' , , ' ! ! I
F , , ' '
, " , ". E
( " , ' , , I /
- ) 7 , ' , "
F I
F ,, " ? " . .
Dictionnaire
Mot Définition
navires de guerre…
ou d’une figure…
" " 4 I
$
, ! !'
" I
: "
F " " E
O I
, ! !' E
! !' , ""
C ( (D NC D
C 4 < (D K g g 4I
F 7 " !G , "
Ca (b ,(D N C , D
" , " E
, " (? (I ," , " . "
7 " " '" ' , " ? "
C 4 < (D K g g 4
Ca (b ,(D N C ,D
( - ". "
(g [ -
+ ". "<(
(g [ +g [ -
C ( (D N C + +D N
'" "
" "
M " $<
! M M "
C,(D C I , DN C I , D
[
M ,( " ." M
! ! '"
" 4"
"'
3 '" ,
" " "
;" " M
&
? D " " " " &
&
C '" , " 4 M . M ,D
. M ,
% , 4 ( ' ' E , " I
' 4 <( " , "
" ( , "
3 '" ( ,
3 '" , , . " ,, " , " I ", M
"
, 7 "
, ? " , !G 7 "
, "
. M C,D C ( ,D
" " " C ! " 4 ' (D
! ! '"
" 4" ,
"'
; " M
&
? D ,, " " " &
&
C '" 7 " . M .
7 ' ! " 7 " D
3 '" ,(
,, " ,
,( 7" "
,, " , ,(
,, " " C ! " 4 " " (D
% , 4 (
"
"
"
e
"
"
e
"
"
e
O :O
"
"
e
O :O e
"
"
" O :O e
e
"
"
" O :O e
e
"
"
O :O e e
"
"
"
" "
e e
"
"
" e e
F 4" M ! ! C ? " !
D ' KC D ! ! '"
" , " ' KC D M " I, "
! M , ' O "
F " ,, E
F . , " I
F , "
/
B " 4? , ! !' " . , " , C I =I I D
HE
I
" 7 " "
1
(
( ] =C (D ]=C D
" "
C '" ! ! '" D
! ! '"
" 4"
"'
! ! '"
" 4" ,
"'
F S- E , " - I
F , ' '" 4" I
F =C D S C D -
"<=
" (
(
e
(
O :O +
e +
" (
1
(
1 " "
(
O :O
e
" "
(
O :O
+ e
;# , 4 " , " , ,!
F C, " DI
F " E
F 3 "9 " E
I
"7 " I
! !'
4 " 9 " E
8 ?
F I
F ", " I " ". > " "
, , '
3 , " , '
, ' C D , '
C D " " "
.C I UD ' : " U
"
C D S .C I R (I NI TD ' : ,
" C (I NI D
,C D S " C , K C DD : , , , '
, " C ,, , '
" , >
" D
,C D S " C C D K ,C DD , ' , , "
. C I UD . "77
" U "
!"C I UD ! " 4 $<
" U "
S C I 7D
" + K
C D× G + C/D× -
7 S λ, C, U S .D
C D
" 4 $< C$ CHI D+ D× G + C/D× -
( CHI D
U
AS ? C (I I 7D
" + K
C (D×((+ C D)× + CID× G
7 S λ9 C9 U S 9 JD
C D
C "9 " . " 4 $< C C (D+ C (D×C$ C IJD+ DD× G + CID× -
( C IJD
JD
8 ?
S ?C I UD
" + K
C D× (C I HD
C D× G + ×-
4 , I > E
$S
S hh
SELECT Q.D
FROM P, Q
7( 7
7(
!2 H8 ? 7
U " U ⊄ U(
7CU(D
7CU(D
U( ∪ U
'CU D
7CU(D
7CU(D 'CU D
!A H8 ? 7?
" J( ⊄ U(
J( ∪ J
J ⊄U
J( ∪ J
U( U
U( U
U( ∪ J( U ∪J
( (
!3 H5 # ?
4 , I , 9 " " E
C × C − (DDi
C − (Di
> ". E
SELECT E.NOM
F ) " " E
5 #
EMPRUNTE NOM 1 +- ++ (1111
COTE (-
DATE (1
POSSEDE COTE (- / 11111
NOBIB
ISBN (-
LIVRE ISBN (- 0& - -1111
TITRE -1
ANNEE +
MATIERE (1
BIBLIOTHEQUE NOBIB 0 -+ 1
NOM 1
VILLE (-
F "." E
CEMPRUNTE.DATE = '15/10/1996'D S +j
CLIVRE.ANNEE > 1985D S 1j
CBIBLIOTHEQUE.NOM = 'Marseille'D S (1j
. " , ", E
P S ( 2+- /+ ? , '
C2I 1I (D
E.NOM
K I2
C2I (& I (D
P.NOBIB = B.NOBIB
K I 2*2*
C 1I 0I (D
P.ISBN = L.ISBN
K I ,3'*A.
C(1111I 00I 2-D C-1111I 0&I (&0-D
E.COTE = P.COTE
K I '.L.3'.
C(1111I +-I -D C 11111I I +211D
E P L B
P S 0 0& ? , '
C2I 1I (D
E.NOM
K I2
C2I +I (D
P.NOBIB = B.NOBIB
K I)
C21I I (D C I I (D
{E.NOM, P.NOBIB}
K I*
C21I 2 I +D
P.ISBN = L.ISBN
K I '.3L
C+11I /0I (+D C(1111I (-I 0-D
E.COTE = P.COTE
K I ))32'
C+11I -I 0D C 11111I I +211D
E P L B
B 7 ' $% E . " I , I I
" :, . ". E
#
start ' "
read D %
write D " %
rollback " "
commit 7" " "
!
start
read A
A = A - S
) , write A
read B
B = B + S
write B
commit
+ ! B " 7 " , $% ! ?
! B ! "
" '" . "7"
F , " ?9 I
F " , , E
" ! I
7" I
F , "
!' !2 1
S (1
read A
read A
A = A + 10
write A S 1
A = A + 50
write A S /1
!' !2 1
< $ S 11
S( 1
$ S 21
read A
A = A - 50
write A S 01
read A
read B
display A + B
C(-1 77" ! D
read B
B = B + 50
write B $ S( 1
!' !2 1
S -1
A = 70
write A S 01
read A
rollback S -1
C . " "" D
write A S 1
read A
C 1 D
3 77 I " 4 , I" : ,
, 5 ! I " " ,, "
P ,
" > . I
, " > 7" $%
!' !2 !' !2
read A read A
write A write A
read A read B
read B write B
write A read A
write B write A
read B read B
write B write B
C(D C D
%
8 , . " E
F . " I
F , . I
F , ' 7" !" , I
F "' I
F $%
F C DE . " I
F 9 CMD E . "7"
+ U
"
U
/
lock m D .
%
unlock D . " ' %
4 " " ? 4 ,!
" " I ? ". ? 4 " " " " "
" " "" " .
8 ?
!' !2 1
S (1
lock X A
read A
lock X A
A = A + 10
write A S 1
unlock A
read A
A = A + 50
write A
unlock A S 01
!' !2 1
< $ S 11
S( 1
$ S 21
lock X A
read A
A = A - 50
write A S 01
lock S A
lock X B
read B
B = B + 50
write B $ S( 1
unlock A
read A
unlock B
lock S B
read B
display A + B
C 11 77" ! D
!' !2 1
S -1
lock X A
A = 70
write A S 01
lock S A
rollback S -1
C . " ""
. " D
read A
C-1 D
read A
C(1 D
lock X A
read A
C(1 D
unlock A
A = 20
write A S 1
/
upgrade D U . %
downgrade D . %
4 , E
!
lock S A
read A
A = A + 10
upgrade A
write A
downgrade A
!' !2
lock X A
lock X B
lock S B
lock S A
)
$C D
C D
)(
F # E , , " ." . I, 4 ,
? " . " .
'I " 7"4 " , 4
" , .
" . ". E
;#
(T start) " )
(T D a n) % , E
, . ? .
(T commit) " ) 7"
(check point) , " ,"
!' !2
start (T1 start)
lock X A
read A
C S (-D
A = A - 1
lock S B
unlock A
lock X A
read A
read B
A = A * 2
B = B / A
F " " I
F " , " " , " ,"
. " 7 "
+ " (checkpoint) 9 I
!' !2
C(D start
C D lock X A
C D read A
C+D A = A - 1
C-D write A
C/D lock S B
C0D unlock A
C2D start
C&D lock X A
C(1D read A
C((D read B
C( D A = A * 2
C( D write A
C(+D commit
C(-D B = B / A
C(/D " ," i
,, " $% 7 " . , B .
" , , " write D , " , > "
" " ,
F D? . . O
9 " $% 77 , commit B
" 7" " " $%
( # " ?
9 '" " I, 7" " " , " ,"
# . . , . "
, . " " " 7 7 " " ?9
" ". . . " . . "
" 9
F ! . commit " )E
3 " " . % $%
3 " . . % $%
F ! . commit " )E
3 " (commit T) 9
3 " " 9 " E "
7"
3 " $% "7" , " )
$ A I : " E , I , " I
= I (&&0
" ! e Il != ; I ! I% : , I5 # m
=" I (&&0
B A% I % l m ' $ Cm . DI , "
I C(&22I (&2&D