Recuperação de Falhas - Concorrência - Visões
Transcrição
Recuperação de Falhas - Concorrência - Visões
UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Ciência da Computação Disciplina : Gerência de Banco de Dados - 20 Semestre 2011 Professora : Sandra Aparecida de Amo Lista de Exercı́cios no 5 - Recuperação de Falhas - Controle de Concorrência - Visões 1. Suponha o seguinte cenário onde as transações T1 , T2 , ..., T7 estão sendo executadas. Descreva: (a) como estava o log antes da falha (a partir do instante t0 ) ? (b) quais os pontos do log onde foram gravados o log e o conteúdo do buffer ? (c) como está o log recuperado depois da falha ? (d) que informações que estavam no log antes da falha não foram recuperadas após a falha ? (e) o que estava no buffer pool antes da falha e depois da falha ? (f) que informações foram perdidas no buffer pool (não puderam ser recuperadas após a falha) ? (g) Que transações são desfeitas ? Descreva todo o processo. Onde e como são realizadas as operações que desfazem as transações ? (h) Que transações são refeitas ? Descreva todo o processo. Onde e como são realizadas as operações que refazem todas as transações ? checkpoint 1 t0 checkpoint 2 t1 falha tf t2 t1 t2 t3 t4 t5 t6 t7 Os momentos onde ocorreu o comando COMMIT 2. Considere as transações T1 , T2 , T3 operando sobre as tabelas R(A,B,C) e S(A,C). Suponha que estas transações obedecem ao protocolo de locking a duas fases que só libera os lockings no final da transação e que sua estrutura interna é a seguinte : T1 T2 T3 R1 : lê tupla u = (u1 , u2 , u3 ) em R t1 := u1 ; t1 := t1 + 1 R’1 : lê tupla v = (v1 , v2 ) em S t2 := v1 ; t2 := t2 ∗ 2 R”1 : lê tupla u = (u1 , u2 , u3 ) em R t3 := u2 ; t3 := t3 − 1 U1 : update tupla u em R com o valor de t1 em u1 U’1 : update tupla v em S com o valor de t2 em v1 U”1 : update tupla u em R com o valor de t3 em u2 R2 : lê tupla v em S t4 := v1 ; t1 := t1 − 1 R’2 : lê tupla u0 em R t5 := u01 ; t5 := t5 ∗ 3 R”2 : lê tupla u0 em R t6 := u02 ; t6 := t6 + 1 U2 : update tupla v em S com o valor de t4 em v1 U’2 : update tupla u0 em R com o valor de t5 em u01 U”2 : update tupla u0 em R com o valor de t6 em u02 Descreva a execução dos seguintes schedules sobre T1 , T2 , T3 , supondo que que o protocolo de locking a duas fases (que só libera os lockings quando a transação termina ou aborta) está sendo utilizado. Os lockings atuam sobre as tuplas inteiras, a cada operação de leitura ou escrita de uma tupla. (a) R1 ;R’1 ;U1 ;R2 ;U’1 ;R’2 ;U’2 ;R”1 ;U”1 ;R”2 ;U2 ;U”2 (b) R1 ;U1 ;R”1 ;U”1 ;R’1 ;U’1 ;R2 ;R’2 ;U2 ;R”2 ;U’2 ;U”2 3. Considere o seguinte esquema de BD : MovieStar(NOME,END,SEXO,ANIVERSARIO,SAL) FILME(TITULO,GENERO,DIRETOR,ATOR,ANO,STUD) STUDIO(NOME,END,PRESIDENTE) ATOR : chave estrangeira em FILME referenciando MovieStar como NOME DIRETOR : chave estrangeira em FILME referenciando MovieStar como NOME STUD : chave estrangeira em FILME referenciando STUDIO como NOME PRESIDENTE : chave estrangeira em STUDIO referenciando MovieStar como NOME Construa as seguintes visões : (a) Uma visão Paramount dando todos os nomes e endereços de atores que trabalharam em filmes do estúdio Paramount. (b) Uma visão FILME-RECENTE dando tı́tulo, gênero e ano de filmes cujo ano de produção é superior a 1990. 4. Quais das visões acima são modificáveis ? Justifique sua resposta em cada um dos casos. 5. Traduza os seguintes comandos de modificações nas visões nos respectivos comandos de modificações nas tabelas e diga qual a reação do sistema a cada um dos comandos : (a) INSERT INTO FILME-RECENTE(TITULO,GENERO,ANO) VALUES (’Psicose’,’Hitchcok,1980). (b) INSERT INTO FILME-RECENTE(TITULO,GENERO,ANO) VALUES (’Psicose’,’Hitchcok,1993). (c) DELETE FROM FILME-RECENTE WHERE ANO = 1994. (d) INSERT Paramount(NOME,END) VALUES (Kevin Kostner, Los Angeles)