Você está na página 1de 10

CAMPUS UNIVERSITRIO DE PALMAS

CURSO DE CINCIA DA COMPUTAO











Administrao de Banco de dados
Lista de exerccios











Palmas
2014
Trabalho apresentado disciplina
de administrao de banco de dados,
ministrado pela professora Dra. Glenda
Michele Botelho.

Sumrio
1
0
) O que uma transao? ............................................................................................ 4
2
0
) O que pode causar uma falha? ................................................................................... 4
3
0
) Desenhe o diagrama de estados e discuta os estados tpicos pelos quais uma
transao passa durante sua execuo. ...................................................................................... 4
4
0
) Para que usado o log do sistema? .......................................................................... 5
5
0
) O que so pontos de confirmao da transao e por que eles so importantes? ... 5
6
0
) Discuta as propriedades de atomicidade, durabilidade, isolamento e preservao da
consistncia de uma transao de BDs. ....................................................................................... 5
7
0
) Explique o funcionamento de transaes distribudas. .............................................. 5
8 ........................................................................................................................................ 6
9
o
) Descreva os quatros niveis de isolamento seguintes: read uncommitted, read
committed, repeatable read e serializable. ................................................................................... 6
10
0
) Explique os seguintes problemas de concorrncia: leitura suja, leitura no
repetitiva e fantasmas. .................................................................................................................. 6
11
0
) Explique como a tcnica de bloqueio exclusivo/compartilhado usada para
garantir o controle de concorrncia. .............................................................................................. 6
12
0
) O que um deadlock? Como pode ser feita a preveno de deadlock? E a
deteco de deadlock? ................................................................................................................. 7
13
o
) Como feito o controle de concorrncia usando timestamps? ................................ 7
14
0
) Como as tcnicas de controle de concorrncia otimistas diferem das outras
tcnicas de controle de concorrncia? Por que elas tambm so chamadas de tcnicas de
validao ou certificao? Discuta as fases tpicas de um mtodo de controle de concorrncia
otimista. ......................................................................................................................................... 8
15
0
) Como o caching usado pelo sistema de recuperao de BD? .............................. 8
16) O que significa os termos steal/no-steal e force/no-force com relao ao
gerenciamento de buffer para o processamento de transao? .................................................. 8
17
0
) O que so entradas de log do tipo UNDO e REDO? ............................................... 8
18
0
) O que so checkpoints? ........................................................................................... 8
19
0
) O que siginifica reverso (ou rollback) de transao?.............................................. 8
20
0
) Em que consiste o registro adiantado em log? ......................................................... 8
21
0
) Explique como funciona a recuperao usando atualizao postergada. ............... 9
3

22
0
) Discuta a tcnica de recuperao com atualizao imediata. .................................. 9
23
0
) Qual a diferena entre os algoritmos UNDO/REDO e UNDO/NO-REDO para a
recuperao com atualizao imediata? ....................................................................................... 9
24
0
) Descreva o protocolo de confirmao em duas fases (two-phase commit) para
transaes em vrios BDs. ........................................................................................................... 9
25) Defina processamento de consulta. ......................................................................... 9
26
0
) Quais so as etapas do processamento de consultas? Explique-as. ...................... 9
27
0
) O que um plano de execuo de consulta? .......................................................... 9
28
0
)O que uma rvore de consulta? Como ela representa uma expresso de lgebra
relacional? O que significa a execuo de uma rvore de consulta? Discuta as regras para
transformao de rvores de consulta e identifique quando cada regra deve ser aplicada
durante a otimizao. .................................................................................................................. 10
29
0
) O que significa otimizao de consulta baseada em custo? .................................. 10
30
0
) Defina os componentes da funo de custo. Quais componentes so usados com
mais frequncia? ......................................................................................................................... 10
31
0
) Discuta os diferentes tipos de parmetros que so usados nas funes de custo.
Onde essa informao mantida? ............................................................................................. 10

4

1
0
) O que uma transao?
So sequncias de operaes executadas como uma nica unidade lgica de trabalho, ou
seja, um processo que pode envolver inseres, atualizaes ou delees de modo que somente so
efetivadas quando todas ocorreram de maneira correta. Assim, para ser qualificada como uma
transao deve mostrar quatro propriedades, designadas pelas iniciais ACID (atomicidade,
consistncia, isolamento e durabilidade).
2
0
) O que pode causar uma falha?
Perda de pacotes enviados sobre o protocolo TCP/IP, ruptura do cabo por motivos naturais
ou externos, algum procedimento realizado dentro da transao que no pode ser realizado por
algum tipo de integridade referencial imposta por triggers, relacionamentos, etc, queda de energia
sem que haja um nobreak eficiente para manter at o reestabelecimento do mesmo, falhas no
hardware ou no sistema operacional.
3
0
) Desenhe o diagrama de estados e discuta os estados tpicos pelos quais uma transao
passa durante sua execuo.

Quando criado um novo boletim dirio preenchido uma srie de informaes onde cada
uma delas so armazenadas em cada uma de suas entidades especificas. No diagrama de estado
conforme a figura acima, mostra o fluxo de estados em que um boletim dirio pode passar que so:
nascimento da informao (aberto), seno encontrar vetor algum o estado alterado para finalizado,
mais caso haja o vetor responsvel pela qual pode carregar ou no o parasita da doena de chagas,
encontrado no intra ou peri domicilio seu estado muda para enviado para anlise (laboratrio do
municpio), neste momento o laboratorista aguarda o recebimento do vetor para analise. Ao chegar
no laboratrio o estado alterado para realizado analise, se for positivo no intradomicilio enviado
uma notificao para investigao de residentes, neste momento colido todo material (sangue) das
pessoas para laboratrio municipal e realizado os exames, logo tambm enviado para o lacen que
ser responsvel pelo controle de qualidade dessas coletas para controle de qualidade. Aps a
realizao de todos exames pelo municpio enviado para entomologia para realizao do controle
de qualidade, para verificao do servio laboratorial realizado pelo municpio. Enfim, aps todo esse
ciclo finalizado o boletim dirio.
5

4
0
) Para que usado o log do sistema?
um componente crtico do banco de dados e, se houver uma falha do sistema, ser
necessrio que o log de transaes retorne seu banco de dados a um estado consistente. O log de
transaes nunca deve ser excludo ou movido a menos que voc compreenda plenamente as
consequncias disso. Alm disso ele pode trazer diversos benefcios como: recuperaes de
transaes individuais e todas transaes incompletas quando o SGDB iniciado, rolando um BD
restaurado, arquivo, grupo de arquivo ou pagina at ao ponto de falha, suporte replicao
transacional e suporte a solues de alta disponibilidade e recuperao de desastre.
5
0
) O que so pontos de confirmao da transao e por que eles so importantes?
So todas operaes que acessam um BD tiverem sido executadas com sucesso e o efeito
de todas as operaes de transao no banco de dados estiverem registradas no log. Assim, sendo
confirmada ela registrada persistida no banco de dados. Atravs delas que so registrados os logs,
assim permitindo a detectar falhas na implementao, possibilitando a recuperao ou sanar o
problema daquela informao, dentre outros fatores que podem ocorrer nas transaes incompletas.
6
0
) Discuta as propriedades de atomicidade, durabilidade, isolamento e preservao da
consistncia de uma transao de BDs.
Atomicidade: Uma transao deve ser uma unidade atmica de trabalho; ou todas as suas
modificaes de dados so executadas ou nenhuma delas executada.
Consistncia: Quando concluda, uma transao deve deixar todos os dados em um estado
consistente. Em um banco de dados relacional, todas as regras devem ser aplicadas s
modificaes da transao para manter toda a integridade dos dados. Todas as estruturas de
dados internas, tais como ndices em rvore B ou listas duplamente vinculadas, devem estar
corretas ao trmino da transao.
Isolamento: Modificaes feitas por transaes simultneas devem ser isoladas das
modificaes feitas por qualquer outra transao simultnea. Uma transao reconhece os
dados no estado em que estavam antes de outra transao simultnea t-los modificado ou
reconhece os dados depois que a segunda transao tiver sido concluda, mas no reconhece
um estado intermedirio. Isso chamado serializabilidade porque resulta na capacidade de
recarregar os dados iniciais e reexecutar uma srie de transaes de modo que os dados
obtidos estejam no mesmo estado em que estavam depois que as transaes originais foram
executadas.
Durabilidade: Depois que uma transao tiver sido concluda, seus efeitos ficam
permanentemente no sistema. As modificaes persistem at mesmo no caso de uma queda do
sistema.
7
0
) Explique o funcionamento de transaes distribudas.
Transaes distribudas abrangem dois ou mais servidores conhecidos como gerenciadores
de recursos. O gerenciamento da transao deve ser coordenado entre os gerenciadores de recursos
por um componente de servidor chamado de gerenciador de transaes. Geralmente so
coordenadas por gerenciadores de transaes, atravs do servio DTC (Coordenador de transaes
Distribudas) que coordena as transaes que atualizam dois ou mais recursos protegidos por
transao, como banco de dados, filas de mensagens, sistemas de arquivos, etc. Esses recursos
protegidos por transao podem estar em um nico computador ou distribudos em vrios
computadores em rede. Sendo que seu papel iniciar a execuo da transao e dividi-las em sub-
transaes, sendo capaz de distribui-las as sub-transaes pelos servidores apropriados para
execuo de cada uma delas, fazendo assim a finalizao em cada um deles com commit ou
rollback. Assim controlando o acesso concorrente aos dados locais de modo a suportar transaes
distribudas, mantendo um log das operaes de maneira que possa permitir a recuperao das
mesmas.
6

8
0
) Discuta como a serializao usada para impor o controle de concorrncia em um sistema
de BD.Por que a serializao, s vezes, considerada muito restritiva?
Consiste da possibilidade de se estabelecer uma execuo serilializvel que equivalha
execuo serial das transaes encapsuladas por ela. Ela o requisito abstrato para assegurar que
transaes executadas concorrentemente preservem a correo do estado do banco de dados. Em
termos mais simples so transaes executadas sequencialmente, ou seja, uma a uma do incio ao
fim. Tal processo possvel atravs do escalonamento serializvel definido por um grupo de
transaes, onde o escalonador responsvel pelo gerenciamento da concorrncia com funo de
receber e organizar as operaes das transaes utilizando os critrios e fundamento da teoria da
serializabilidade. Esse tipo de transao mais restritivo, pois todas transaes so serializadas num
mesmo recurso em questo. Assim, nenhuma transao pode efetuar qualquer tipo de operao de
modificao sobre dados que estejam lidos por transaes ativas. Com isso, muito importante que
as transaes sejam bem desenhadas, reduzindo a sua durao ao mnimo possvel, reduzindo as
operaes de alterao efetuadas e garantindo que quaisquer leituras necessrias para efetuar as
posteriores atualizaes esto a mais prxima possvel.
9
o
) Descreva os quatros niveis de isolamento seguintes: read uncommitted, read committed,
repeatable read e serializable.
Read Uncommitted: Este o primeiro e menos proibitivo nvel de isolamento. Neste nvel
podem ocorrer os trs fenmenos pois no adquirido qualquer tipo de lock de dados.
Read Commited: Este nvel o usado por defeito no Oracle e no SQL Server. Neste nvel os
Dirty Reads no ocorrem pois so usados locks partilhados que asseguram que nenhuma
informao corrompida ou alterada por outra transaco e que ainda no tenha sido commited
lida, no entanto no assegura que os dados no vo ser alterados antes do fim da transaco,
permite portanto a ocorrncia de non-repeatable reads.
Repetable Read: Neste nvel so adquiridos locks de leitura, prevenindo a ocorrncia de dirty
reads e de non-repetable reads mas permite a ocorrncia de Phantoms, pois no so adquiridos
range-locks.
Serializable: No nvel serializable todas as transaces ocorrem num meio fechado, isto , so
todas executadas de modo sequencial. O SGBD pode executar transaces concorrentemente
apenas se a iluso de seruao for mantida, ou seja, se uma transaco no partilhar qualquer
tipo de dados com a outra. Neste nvel so usados range locks, nao permitindo portanto qualquer
ocorrencia de pahntoms ou de outros fenomenos.
10
0
) Explique os seguintes problemas de concorrncia: leitura suja, leitura no repetitiva e
fantasmas.
Leitura suja: Ocorre quando uma transao atualiza um item do banco de dados e, por algum
motivo, outra transao ler esse item supostamente atualizado;
Leitura no repetitiva: Ocorre quando uma transao l itens em uma determinada condio e
depois outra transao altera e efetiva um novo item que satisfaz a condio da transao
anterior. Caso a primeira transao faa novamente uma leitura com a mesma condio, os
registros podem aparecer de maneira diferente.
Fantasmas: Ocorre quando uma transao l itens em uma determinada condio e depois
outra transao insere e efetiva um novo item que satisfaz a condio da transao anterior.
Caso a primeira transao faa novamente uma leitura com a mesma condio, um registro
fantasma ir aparecer
11
0
) Explique como a tcnica de bloqueio exclusivo/compartilhado usada para garantir o
controle de concorrncia.
Os bloqueios permitem que vrias transaes acessem o mesmo item X se todas elas
acessarem X apenas para fins de leitura. Contudo, se uma transao tiver de gravar um item X, ela
precisa ter acesso exclusivo a X. Para essa finalidade, um tipo diferente de bloqueio, chamado de
7

bloqueio de modo mltiplo, utilizado. Neste esquema so chamados debloqueio:
compartilhados/exclusivos existem trs operaes de bloqueio: READ_LOCK(X), WRITE_LOCK(X) e
UNLOCK(X), onde cada uma dessas operaes possuem suas especificidades:
read_lock(X): bloqueia o item X para leitura, permitindo que outras transaes leiam o item
X (bloqueio compartilhado);
write_lock(X): bloqueia o item X para escrita, mantendo o bloqueio sobre o item X
(bloqueio exclusivo);
unlock(X): desbloqueia o item X.
12
0
) O que um deadlock? Como pode ser feita a preveno de deadlock? E a deteco de
deadlock?
Um conjunto de processos est em deadlock se cada processo do conjunto est esperando
por um evento que somente outro processo no conjunto pode causar.
Preveno
Uma maneira de evitar deadlocks impedir que ao menos uma das condies para sua existncia
ocorra:
Excluso mtua: impossvel de evitar em geral.
Aquisio gradativa de recursos: impossvel de evitar.
Sem preempo: Evitvel.
o Adquirir todos os recursos antes de comear a executar.
o Se algum recurso no estiver disponvel, liberar todos os recursos que j foram
adquiridos.
o Ineficiente.
Espera circular: Evitvel.
o Para forar que o grafo de dependncias seja acclico podemos ordenar todos os
recursos (e.g. numerando-os)
o Todos os recursos so adquiridos em ordem crescente na ordenao.
o Exemplo: jantar dos filsofos:
o Eficiente.
Deteco
Difcil: por isto muitos preferem ignorar o problema.
o Para recursos com uma instncia s: busca em grafos para identificar ciclos. O(n
2
)
o Para recursos com mltiplas instncias: Mais complicado ainda!
Por causa disto deve-se chamar o algoritmo de deteco de dealocks infrequentemente:
o Uma vez por hora ?
o Quando a utilizao da CPU cair pr menos de X% ?
13
o
) Como feito o controle de concorrncia usando timestamps?
Envolve o uso de timestamp, atraves identificador nico criado pelo SGBD para identificar
uma transao, para ordenar a execuo das transaes de forma que o escalonamento formado
seja equivalente ao escalonamento serial.

8

14
0
) Como as tcnicas de controle de concorrncia otimistas diferem das outras tcnicas de
controle de concorrncia? Por que elas tambm so chamadas de tcnicas de validao ou
certificao? Discuta as fases tpicas de um mtodo de controle de concorrncia otimista.
Diferem devido tcnicas otimistas no fazerem verificao enquanto a transao est
executando. So chamadas porque faz a verificao para garantir que a serializao no ser violada
se as atualizaes de transao forem aplicadas ao BD. Um mtodo de controle de concorrncia
otimista possui trs fases: fase de leitura, a fase de validao e a fase de gravao.
15
0
) Como o caching usado pelo sistema de recuperao de BD?
O processo de recuperao de falhas est estritamente ligado a funes do sistema
operacional. Normalmente, uma ou mais paginas de disco, que incluam os itens de dados a serem
atualizados, so ocultadas (cached) nos buffers da memoria principal e l so atualizadas, antes de
serem gravadas de volta no disco. Geralmente uma coleo de buffers em memoria (cachas do
SGBD) mantido sob o controle do SGBD, quando este solicita uma ao em um item, ele primeiro
verifica se o mesmo encontra-se em alguma pagina de disco em cache. Caso no se encontre o item
em cache, o mesmo localizado em disco e as paginas de disco apropriadas so copiadas em
cache.
16) O que significa os termos steal/no-steal e force/no-force com relao ao gerenciamento de
buffer para o processamento de transao?
Steal: uma pagina do cache atualizada pode ser gravada em disco antes do commit da
trasano (evita a necessidade muito grande de buffer para o armazenamento em memoria de
todas as paginas atualizadas);
No-steal: uma pagina do cache atualizada no pode ser gravada em disco antes do commit da
transao( a pagina atualizada por uma transao confirmada poder ainda estar no buffer
quando outra transao necessitar de atualizao, eliminando o custo de I/O para ler novamente
essa pagina no disco);
Force:todas as paginas atualizadas por uma transao so imediatamente gravadas em disco
quando a transao atinge seu ponto de confimao;
No-force: as paginas atualizadas por uma transao no so necessariamente gravadas em
disco quando a transao atinge seu ponto de confirmao.
17
0
) O que so entradas de log do tipo UNDO e REDO?
UNDO: reverte mudanas torna um BD inconsistente -----> BD consistente; REDO: reconstri
(Backup (log) -----> estado consistente mais prximo da falha).
18
0
) O que so checkpoints?
Um registro que escrito periodicamente dentro do Log. O ponto em que o sistema grava no
disco, todos os buffers do SGBD que tiverem sido modificados.
19
0
) O que siginifica reverso (ou rollback) de transao?
o trmino de transao com erro; Faz o banco de dados retornar posio anterior
transao.
20
0
) Em que consiste o registro adiantado em log?
Consiste na gravao do log antes que a atualizao seja efetuada no banco de dados.
9

21
0
) Explique como funciona a recuperao usando atualizao postergada.
Essa tcnica apenas pode ser empregada se a atualizao fsica do BD for no disco, s
ocorrendo quando uma transao confirmada.
22
0
) Discuta a tcnica de recuperao com atualizao imediata.
A atualizao imediata permite a atualizao fsica do BD por operaes de uma transao
antes que a mesma atinja seu ponto de confirmao.
23
0
) Qual a diferena entre os algoritmos UNDO/REDO e UNDO/NO-REDO para a recuperao
com atualizao imediata?
UNDO/REDO a atualizao imediata e UNDO/NO-REDO a atualizao postergada.
24
0
) Descreva o protocolo de confirmao em duas fases (two-phase commit) para transaes
em vrios BDs.
O protocolo de confirmao em duas fases (two-phase commit) envolve as fases:
de preparao (quando todos os bancos de dados sinalizam ao gerenciador global que a
parte da transao distribuda de cada um foi confirmada);
de confirmao (o gerenciador global recebe preparao com sucesso de todos os
gerenciadores locais e envia comandos commit para cada um dos gerenciadores locais).
25) Defina processamento de consulta.
a sequncia de atividades que devem ser executadas por um SGBD, no momento de se
realizar uma consulta no banco de dados.
26
0
) Quais so as etapas do processamento de consultas? Explique-as.
So elas:
Anlises (lxica, sinttica, semntica): identifica tokens da consulta (chamado de varredura);
verificam a sintaxe da consulta(regras de sintaxe; verificam se os nomes das relaes da
consulta so os mesmos nomes presentes no BD (chamado de validao) e substituem
referncias ao nome de uma viso por expresses da lgebra, a fim de computar essa viso.
Forma intermediria de consulta: utiliza estrutura de dados de arvore ou grafo (rvore de
consulta ou grafo de consulta);
Mdulo de otimizao de consulta: a otimizao ocorre em nvel de lgebra relacional; faz-se a
seleo de uma estratgia de execuo ou plano de consulta detalhada para o processamento
da consulta.
Gerador do cdigo de consulta: origina o cdigo para executar a plano de consulta;
Processador de BD de tempo de execuo: executa o cdigo da consulta e produz o resultado
da consulta.
27
0
) O que um plano de execuo de consulta?
a estratgia de razovel eficincia. Em que envolve otimizao de consultas para que a
consulta tenha um melhor desempenho.
10

28
0
)O que uma rvore de consulta? Como ela representa uma expresso de lgebra
relacional? O que significa a execuo de uma rvore de consulta? Discuta as regras para
transformao de rvores de consulta e identifique quando cada regra deve ser aplicada
durante a otimizao.
uma expresso da lgebra relacional, em que os ns folhas representam as relaes de
entrada para a consulta, os ns internos representam as operaes da lgebra relacional. Significa
efetuar uma operao do n interno sempre que os seus operandos estiverem disponveis,
substituindo o n interno pela relao que resulta da execuo desta operao. A ordem de execuo
(ns folhas; final da execuo: n raiz executado e a relao resultado para a consulta
produzida).
29
0
) O que significa otimizao de consulta baseada em custo?
Significa utilizar tcnicas de otimizao tradicionais que percorrem o espao soluo para um
problema; identifica uma soluo que minimiza uma determinada funo custo e depende de
estatsticas armazenadas pelo SGBD sobre as relaes e sobre os ndices.
30
0
) Defina os componentes da funo de custo. Quais componentes so usados com mais
frequncia?
So eles: o custo de acesso memoria secundria ( o custo para buscar, ler e escrever
blocos de dados que residem em disco), o custo de armazenamento ( o custo para armazenar
quaisquer arquivos intermedirios gerados pela estratgia de execuo da consulta), o custo de
computao (custo para a realizao de operaes em memria principal), o custo do uso da
memria (custo relacionado ao nmero de buffers de memria principal necessrios durante a
execuo da consulta) e o custo de comunicao (custo do envio da consulta e os seus resultados do
local do BD at o local ou terminal onde a consulta foi originada).
31
0
) Discuta os diferentes tipos de parmetros que so usados nas funes de custo. Onde
essa informao mantida?
Primeiramente temos que saber o tamanho de cada arquivo, cujos registros so do mesmo
tipo, o numero de registros, tamanho dos registros e numero de blocos de arquivos, ou estimativas
prximas deles so necessrios. Essa informao mantida no catalogo do SGDB.