EmpordaJove.org

Dimarts, 22 de Maig de 2012


Transaccions i Concurrència

Supòsit:

Tenim la base de dades d'un videoclub. En ell hi ha dues màquines, des d'on es pot seleccionar una pel·lícula. Després es va amb la tarja a una
tercera màquina, que dispensa els DVD físicament.
Observar què passa quan dos usuaris seleccionen la mateixa pel·lícula per a endur-se.

1- Creem la taula:


2- Hi entrem dades:





3- Provem de llogar la pel·lícula Star Wars (clau 3) des d'una de les maquines (li canviem l'estat de llogada) i des de l'altra fem una consulta
per saber com esta.

Primera màquina (entorn de consola, sense fer el commit):



Alhora, des de la segona màquina (entorn gràfic):

Login:



Select



Com que no hem fet el commit de la primera transacció, ORACLE ens retorna el valor antic. Un cop fem el commit:





4- Fem la prova de concurrència a Microsoft SQL Server 2000:

Dades:


Si no se li diu el contrari, M$ SQl Server fa els commit automàticament, així que hem posat "begin transaction", i no aplicarà els canvis fins que li diem "commit".



L'entorn gràfic s'ha quedat esperant a que fessim la comanda commit des de l'entorn de consola: no és possible canviar dades que estan enimg d'una altra transacció.





Escrit el Dilluns, 7 de Maig de 2007 a Oracle Cendrasi
Pots veure altres publicacions d'aquest mes o compartir aquesta fulla amb els teus amics: [Twitter] [Facebook] [Tuenti]


Deixar un comentari:
Només els usuaris identificats poden afegir comentaris al weblog de orasi!
Si et registres a l'EmpordaJove podràs afegir comentaris i tenir el teu propi weblog en pocs minuts!


Avís: Els textos, imatges, sons, animacions, pel·lícules, ... publicades en les fulles del Bloc d'aquest lloc web són responsabilitat de l'usuari que les emet, i com a tals, no han de representar forçosament l'opinió de cap entitat col·laboradora. Aquesta pàgina web es limita a proporcionar un mitjà on reproduir-les i com a tal en declina qualsevol responsabilitat.