Prévia do material em texto
Prova G2 14/12/2015 Tendo como base os conceitos de recuperação de falhas e o diagrama abaixo relacionado que apresenta a execução de 5 transações (T1 à T5) além de dois checkpoints (tc1 e tc2) e uma falha executada (tf), resolva as questões de 1 à 4. 1 – Marque apenas a alternativa correta relacionada com a execução do checkpoint tc1 a. ( ) Após a execução do checkpoint tc1 apenas são armazenadas no banco de dados as informações da transação T1 e as instruções que receberam commit da transação T5. b. ( ) Após a execução do checkpoint tc1 apenas são armazenados no banco de dados as informações da transação T1. C. ( ) Após a execução do checkpoint tc1 a transação T1 e T5 receberão commit e as transações T2, T3 e T4 não tiveram commit e receberão rollback d. ( ) Após a execução do checkpoint tc1 apenas são armazenados no banco de dados as informações das instruções que receberam commit na transação T1. A transação T5 receberá rollback e. (X) Todas as alternativas estão erradas 2 – Marque apenas a alternativa correta relacionada com a execução do checkpoint tc2 a. ( ) Após a execução do checkpoint tc2 apenas são armazenados no banco de dados as informações da transação T1 e as instruções que receberam commit da transação T5 b. (X) Após a execução do checkpoint tc2 apenas são armazenados no banco de dados as informações da transação T1 c. ( ) Após a execução do checkpoint tc2 a transação T1 e T5 receberam commit e as transações T2, T3 e T4 não tiveram commit e receberão rollback d. ( ) Após a execução do checkpoint tc2 apenas são armazenados no banco de dados as informações das instruções que receberam commit na transação T1. A transação T5 receberá rollback e. ( ) Todas as alternativas estão erradas. 3- Quando ocorrer a falha no sistema no ponto tf, quantas transações deverão ser refeitas a. ( ) 1 transação b. (X) 2 transação c. ( ) 3 transação d. ( ) 4 transação e. ( ) 5 transação 4 – Quando ocorrer a falha no sistema no pinto tf, quantas transações receberão rollback (serão desfeitas) a. ( ) 1 transação b. (X) 2 transação c. ( ) 3 transação d. ( ) 4 transação e. ( ) 5 transação 5 – Tendo como base o conceito de recuperação de falha, os trechos que seguem marque a alternativa que corrente o critério correto. 1. O registro de checkpoint fornece uma lista de todas as transações que estavam em andamento no momento em que o checkpoint foi marcado. 2. Quando o sistema é reinicializado por uma falha de sistema, as transações que não receberam commit devem ser desfeitas e as transações que tiverem commit depois do ultimo checkpoint dever ser refeitas. 3. Quando ocorrer uma falha do sistema o conteúdo da memória principal é perdido (e particular, os buffers do banco de dados se perdem) e o banco fica inconsistente a. ( ) Apenas a afirmação 2 está incorreta b. ( ) Apenas as informações 1, 2 estão corretas c. ( ) Apenas as afirmações 2 e 3 estão incorretas d. ( ) Apenas as afirmações 1 e 3 estão corretas e. (X) Todas as alternativas estão corretas 6 – Tendo como base a sequência de ações abaixo relacionada, que ocorrem sobre um registro que é acessado por duas transações em tempos distintos, identificamos o problema de: Transação A Tempo Transação B - | - Busca reg t T1 - - | - - T2 Busca reg t - | - Altera reg t T3 - - | - - T4 Altera reg t - | - a. ( ) Dependência sem commit b. ( ) Análise inconsistente c. ( ) Deadlock d. (X) Atualização perdida e. ( ) Todas as alternativas estão incorretas 7 – Tendo como base a sequência de ações abaixo relacionada, que ocorrem sobre um registro que é acessado por duas transações em tempos distintos, identificamos o problema de: Transação A Tempo Transação B - | - LOCK r1 EXCLUSIVE T1 - - | - - T2 LOCK r2 EXCLUSIVE - | - LOCK r2 EXCLUSIVE T3 - Espera | - Espera T4 LOCK r1 ESCLUSIVE Espera | Espera Espera | Espera a. ( ) Dependência sem commit b. ( ) Análise inconsistente c. (X) Deadlock d. ( ) Atualização perdida e. ( ) Todas as alternativas estão incorretas 8 – Tendo como base o conceito de concorrência em banco de dados responda a alternativa correta 1. Se uma transação A mantiver um bloqueio exclusivo (X) sobre a tupla t, então uma requisição feita por uma transação distinta B de um bloqueio de qualquer tipo sobre t será negada 2. Se a transação A mantiver bloqueio compartilhado (C) sobre a tupla t então uma requisição de uma transação distinta B de um bloqueio X será negada 3. Quando ocorrer um bloqueio exclusivo (X) não será possível executar um novo bloqueio até que seja liberado o registro. a. ( ) Apenas as afirmações 1 e 2 estão corretas b. ( ) Apenas as afirmações 2 e 3 estão corretas c. ( ) Apenas a afirmação 2 está correta d. ( ) Apenas a afirmação 3 está correta e. (X) Todas as alternativas estão corretas 9 – Tendo como base a procedure que segue, responda a alternativa correta. a. ( ) Lista o código do aluno, seu nome e sua maior nota b. ( ) Lista o código do aluno, seu nome e sua maior nota de todos os alunos que iniciam com a letra “a” c. ( ) Lista o código do aluno, seu nome e sua menos nota de todos os alunos que terminam com a letra “a” d. (X) Percorre p resultado do cursor C1, chamando o cursor cursorDinamico e retorna a maior nora do anulo que está no cursor C1. Em seguida, armazena as informações na tabela tbhistorico e. ( ) Percorre o resultado do cursor C1 sempre que inserindo dados na tabela tbhistorico 10 – Tendo como base a trigger que segue, responda a alternativa correta a. (X) Antes de alterar ou deletar um registro da tabela “tbtab1” é inserido um novo registro na tabela “tbtab2” contendo os antigos dados da “tbtab1” como infirmado b. ( ) Depois de alterar ou deletar um registro na tabela “tbtab1” é inserido um novo registro na tabela “tbtab2” contendo os antigos dados da “tbtab1” como informado c. ( ) Antes de incluir ou deletar um registro da tabela “tbtab1” é inserido um novo registro na tabela “tbtab2” contendo os novos dados da “tbtab1” como informado d. ( ) Depois de incluir ou deletar um registro da tabela “tbtab1” é inserido um novo registro na tabela “tbtab2” contendo os novos dados da “tbtab1” como infirmado e. ( ) Todas as alternativas estão incorretas 10 – Com base no diagrama ER abaixo, crie uma trigger que após a inserção de um novo registro na tabela “TbRelFilmeLoc” incremente um elemento no atributo “locações” da tabela “tbcliente”. Nesta mesma trigger se o status informado for 8, altere o campo “acréscimo” para o valor de multa (“valormulta”, relacionado ao filme que está em locação. Create or replace trigger novo_registro After insert on tbRelFilmeLoc For each row Declare Cod_cli tbcliente.pkcodcli%type; Valor_mul tbclassificacao.valormulta%type; Begin Select p.pkcodcli into cod_cli from tbcliente p Inner join tblocacao k on k.fkcodcli = p.pkcodcli Where k.fkcodcli = p.pkcodcli; Update tbcliente set locacoes = locacoes + 1; where pkcodcli = cod_cli; If (:new.status =8) then Select v.valormulta into valor_mul from tbclassificacao v Inner join fkcodfilme = pkcodfilme inner joint tbclassificação on fkcodclass = pkcodclass :new.acrescimo :=valormulta; Enf if; End novo registro;