11.04.2013 Views

gestão de dados partilhados em ambientes de computação móvel

gestão de dados partilhados em ambientes de computação móvel

gestão de dados partilhados em ambientes de computação móvel

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

8.3. PROCESSAMENTO DAS TRANSACÇÕES MÓVEIS NO CLIENTE 123<br />

O valor <strong>de</strong> uma variável é garantido se foi atribuído numa instrução SQL <strong>de</strong> leitura garantida ou<br />

numa instrução <strong>de</strong> atribuição que não incluía nenhuma variável não garantida.<br />

Uma instrução SQL po<strong>de</strong> ser garantida se: (1) todas as variáveis usadas na instrução SQL (como<br />

valores <strong>de</strong> entrada) são garantidas; (2) existe uma reserva que inclua os el<strong>em</strong>entos <strong>de</strong> <strong>dados</strong> lidos ou<br />

escritos, i.e., que tenha uma condição compatível com a condição expressa na instrução SQL e inclua<br />

a coluna indicada. Para verificar a segunda condição, é necessário comparar a <strong>de</strong>scrição s<strong>em</strong>ântica da<br />

reserva e a condição expressa na instrução SQL 3 .<br />

As seguintes restrições adicionais são aplicadas. Uma reserva value-use ou value-lock não po<strong>de</strong><br />

garantir uma instrução <strong>de</strong> escrita (update, insert, r<strong>em</strong>ove). Uma reserva partilhada (shared value-change<br />

e shared slot) não po<strong>de</strong> garantir uma instrução <strong>de</strong> leitura (select).<br />

Nas instruções <strong>de</strong> leitura é, por vezes, apenas possível obter uma garantia parcial do valor lido, i.e.,<br />

a garantia que quando a transacção é executada no servidor o valor lido se encontra num dado intervalo.<br />

Por ex<strong>em</strong>plo, se uma transacção <strong>móvel</strong> executa uma instrução <strong>de</strong> leitura que conte o número <strong>de</strong> registos<br />

que satisfaz<strong>em</strong> uma dada condição e o cliente <strong>de</strong>tém apenas uma reserva value-change que satisfaça<br />

a condição indicada, é possível garantir que, quando a instrução <strong>de</strong> leitura é executada no servidor, o<br />

resultado obtido é maior ou igual a um. Esta garantia, s<strong>em</strong>elhante à obtida nas reservas escrow, po<strong>de</strong><br />

ser suficiente para garantir o resultado da transacção <strong>móvel</strong>. Durante o processamento da transacção<br />

<strong>móvel</strong> no cliente, a utilização <strong>de</strong> uma variável com este tipo <strong>de</strong> garantia está sujeita às mesmas restrições<br />

impostas às variáveis garantidas por reservas escrow (explicadas anteriormente).<br />

Quando se executa uma instrução <strong>de</strong> escrita SQL, ambas as versões da base <strong>de</strong> <strong>dados</strong> são actualizadas.<br />

Uma instrução <strong>de</strong> leitura SQL garantida <strong>de</strong>volve o valor reservado. Uma instrução <strong>de</strong> leitura SQL não<br />

garantida <strong>de</strong>volve o valor da versão provisória da base <strong>de</strong> <strong>dados</strong>.<br />

Uma instrução if é garantida se todas as variáveis envolvidas na condição expressa são garantidas<br />

e permit<strong>em</strong> garantir o resultado da condição. Como se explicou na secção 8.1, as variáveis garantidas<br />

por reservas escrow não po<strong>de</strong>m ser usadas para garantir o valor exacto <strong>de</strong> uma variável, mas apenas que<br />

este valor se encontra num dado intervalo. Assim, apenas po<strong>de</strong>m ser usadas para garantir o valor <strong>de</strong><br />

condições que exprimam relações <strong>de</strong> or<strong>de</strong>m (, ≥).<br />

Se a condição não po<strong>de</strong> ser garantida, assume-se que o seu valor é falso, por omissão. Assim, é pos-<br />

sível garantir uma modificação alternativa (numa sequência <strong>de</strong> modificações alternativas guardadas por<br />

instruções if ) quando não é possível garantir a opção preferida. Por ex<strong>em</strong>plo, na transacção da figura 7.1,<br />

o cliente po<strong>de</strong> apenas <strong>de</strong>ter reservas sobre o produto “RED THING”. Neste caso, é possível garantir a<br />

encomenda <strong>de</strong>ste produto, mas é impossível garantir a opção preferida pelo utilizador (relativa ao pro-<br />

duto “BLUE THING”). Quando a transacção <strong>móvel</strong> é executada no servidor, por omissão, executa-se o<br />

3 Aproximações s<strong>em</strong>elhantes são usadas na replicação secundária s<strong>em</strong>ântica [35] e na optimização das interrogações [4]).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!