TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Banco de Dados Distribuídos

Por:   •  18/6/2021  •  Trabalho acadêmico  •  1.029 Palavras (5 Páginas)  •  93 Visualizações

Página 1 de 5

[pic 1][pic 2][pic 3]

1) Quando duas operações no SGBD podem entrar em conflito?

Quando duas operações que pertencem a diferentes transações concorrentes acessarem o mesmo item de dado e pelo menos uma delas for uma gravação.

2) Qual o problema que ocorre durante a execução das transações abaixo?

T1                                                                         T2                        

Read_item(X);

X:= X+1;

Write_item(X);

                                 read_item(X);

                                  X:= X+2;

Read_item(Y)                         ....

Erro na transação (executar roolback)

Problema de inconsistência causado por uma atualização temporária, por não estar de acordo com o princípio de isolamento (T2 está tendo acesso a valores temporários de T1). Como T1 é abortada, T2 fica com um valor de X inconsistente.

 

3) Baseado no seguinte esquema de execução de transações, responda os itens subsequentes:  

a) O que você entende por escalonamento serializável?

Quando as transações escalonadas podem ser executadas concorrentemente, apresentando resultados idênticos aos obtidos por suas execuções seriais.

b) Construa um grafo de precedência para o escalonamento descrito acima.

[pic 4]

[pic 5]

c) Este esquema representa um escalonamento serializável? Justifique.

Não, pois existe um ciclo entre as transações T1 e T2.

4) Considere os seguintes logs:

a) R1(A); R2(A); R3(B); W1(A); R2(C); R2(B); W2(B); W1(C);

b) R1(A); W1(A); R2(A); W2(C); R3(C); W3(A);

c) W3(A); R1(A); W1(B); R2(B); W2(C); R3(C);

Para cada um deles:

A. Construa o grafo da relação de precedência.

a)

[pic 6]

T1

T2

T3

Read(A)

Read(A)

[pic 7]

Read (B)

Write(A)

Read(C)

Read(B)

      Write(B)

Write(C)

b) [pic 8]

T1

T2

T3[pic 9]

Read(A)

Write(A)

Read(A)

Write(C)

Read(C)[pic 10]

Write(A)

c)

T1

T2

T3

Write(A)[pic 11][pic 12][pic 13]

Read(A)

Write(B)

Read(B)

Write(C)

Read(C)

B. Quais logs são serializáveis. Caso afirmativo, qual o log serial equivalente?

        A, B (inclusive B é serial) são serializáveis, pois não possuem ciclos.

Logs seriais equivalentes:

  1. R1(A); W1(A); W1(C), R2(A); R2(C); R2(B); W2(B); R3(B)

<T1, start>

<T1, Read, A>

<T1, Write, A>

<T1, Write, C>

<T1, commit>

<T2, start>

<T2, Read, A>

<T2, Read, C>

<T2, Read, B>

<T2, Write, B>

<T2, commit>

<T3, start>

<T3, Read, B>

<T3, commit>

b) O escalonamento B já é serial.

R1(A); W1(A); R2(A); W2(C); R3(C); W3(A)

<T1, start>

<T1, Read, A>

<T1, Write, A>

<T1, commit>

<T2, start>

<T2, Read, A>

<T2, Write, C>

<T2, commit>

<T3, start>

<T3, Read, C>

<T3, Write, A>

<T3, commit>

5) Protocolos de Controle de Concorrência

        O escalonador é responsável por estabelecer a ordem em que as operações de transações concorrentes são executadas. Essa ordem é fundamental e garante a integridade do bd em sistemas de multiusuários. O bloqueio, o timestamp e os métodos otimistas são alguns dos protocolos utilizados pelo escalonador para garantir a serialização de transações.

...

Baixar como (para membros premium)  txt (6.5 Kb)   pdf (169.2 Kb)   docx (73.9 Kb)  
Continuar por mais 4 páginas »
Disponível apenas no TrabalhosGratuitos.com