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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

10.5. EXTRACÇÃO AUTOMÁTICA DE RELAÇÕES 161<br />

10.5.1 Extracção <strong>de</strong> informação<br />

A extracção <strong>de</strong> informação associada a uma transacção <strong>móvel</strong> é executada a partir do seu programa,<br />

analisando estaticamente os vários caminhos <strong>de</strong> execução possíveis. Para cada caminho <strong>de</strong> execução que<br />

termina numa instrução commit, extrai-se a seguinte informação:<br />

Conjunto <strong>de</strong> escrita s<strong>em</strong>ântico Constituído pela <strong>de</strong>scrição s<strong>em</strong>ântica <strong>de</strong> todas as modificações produ-<br />

zidas pela transacção.<br />

Conjunto <strong>de</strong> leitura s<strong>em</strong>ântico Constituído pela <strong>de</strong>scrição s<strong>em</strong>ântica <strong>de</strong> todos os el<strong>em</strong>entos <strong>de</strong> <strong>dados</strong><br />

lidos e usados pela transacção (os el<strong>em</strong>entos <strong>de</strong> <strong>dados</strong> lidos e não usados são ignorados).<br />

Conjunto <strong>de</strong> pré-condições Constituído por todas as condições usadas para <strong>de</strong>terminar o caminho <strong>de</strong><br />

execução.<br />

Durante o processo <strong>de</strong> análise estática, as seguintes instruções são processadas <strong>de</strong> forma especial:<br />

Instrução select C into X from T where Cond Atribui ao valor da variável X o valor especial<br />

read(T,Cond,C) que <strong>de</strong>screve s<strong>em</strong>anticamente os <strong>dados</strong> lidos. Este valor não po<strong>de</strong> ser obtido <strong>de</strong><br />

forma estática porque <strong>de</strong>pen<strong>de</strong> do estado da base <strong>de</strong> <strong>dados</strong> no momento <strong>em</strong> que a transacção <strong>móvel</strong><br />

é executada.<br />

Instrução update T set C = Val where Cond Adiciona ao conjunto <strong>de</strong> escrita a seguinte <strong>de</strong>scrição se-<br />

mântica associada à instrução <strong>de</strong> actualização: update(T,Cond,C,Val).<br />

Instrução insert into T[Cols] values Vals Adiciona ao conjunto <strong>de</strong> escrita a seguinte <strong>de</strong>scrição s<strong>em</strong>ân-<br />

tica associada à instrução <strong>de</strong> inserção: insert(T,Cols,Vals).<br />

Instrução <strong>de</strong>lete from T where Cond Adiciona ao conjunto <strong>de</strong> escrita a seguinte <strong>de</strong>scrição s<strong>em</strong>ântica<br />

associada à instrução <strong>de</strong> r<strong>em</strong>oção: <strong>de</strong>lete(T,Cond).<br />

Instrução if(Cond) then ... else ... No caso <strong>de</strong> o valor <strong>de</strong> Cond ser conhecido nenhuma acção especial<br />

é executada. No caso <strong>de</strong> o valor <strong>de</strong> Cond ser <strong>de</strong>sconhecido serão analisados os dois possíveis<br />

caminhos <strong>de</strong> execução, assumindo num caso que a condição é verda<strong>de</strong>ira e adicionando o valor<br />

precond(Cond) ao conjunto <strong>de</strong> pré-condições e no outro que a condição é falsa e adicionando<br />

precond(not Cond) ao conjunto <strong>de</strong> pré-condições.<br />

Durante a análise estática, qualquer expressão, e, cujo valor <strong>de</strong>penda <strong>de</strong> uma variável com um valor<br />

obtido numa instrução <strong>de</strong> leitura, t<strong>em</strong> igualmente um valor especial, expr(e). Este valor po<strong>de</strong> ser atribuído<br />

a uma variável (numa instrução <strong>de</strong> atribuição) ou usado <strong>em</strong> qualquer das instruções <strong>de</strong> acesso à base <strong>de</strong><br />

<strong>dados</strong> (apresentadas anteriormente).

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

Saved successfully!

Ooh no, something went wrong!