Você está na página 1de 11

24

Unidade III
R
e
v
i
s

o
:

A
m
a
n
d
a
:

D
i
a
g
r
a
m
a

o
:

L

o

0
2
/
0
6
/
0
9

-

Unidade III
4 ADMINISTRAO DE SGBDs
As pessoas que trabalham com um banco de dados podem
ser categorizadas como usurios de banco de dados ou
administradores de banco de dados.
Entre os usurios, existem quatro tipos diferentes,
distinguidos pela maneira como esperam interagir com o sistema.
Diversos tipos de interfaces com o usurio foram projetados
(SILBERSCHATZ, 1999:16):
usurios leigos: so usurios no avanados que interagem
com o sistema chamando um dos programas de aplicao
previamente escritos. A interface tpica para usurios
leigos composta de formulrios, na qual o usurio pode
preencher campos apropriados no formulrio. Tambm
podem simplesmente ler relatrios gerados pelo banco de
dados;
programadores de aplicao: so prossionais de
computao que escrevem programas de aplicao. Os
programadores de aplicao podem escolher entre muitas
ferramentas para desenvolver interfaces com o usurio.
As ferramentas de RAD (Rapid Aplication Development)
permitem que um programador de aplicao construa
formulrios e relatrios com um mnimo de esforo de
programao;
usurios avanados: interagem com o sistema sem
escrever programas. Em vez disso, eles formam suas
5
10
15
20
25
ADMINISTRAO DE BANCO DE DADOS
R
e
v
i
s

o
:

A
m
a
n
d
a
:

D
i
a
g
r
a
m
a

o
:

L

o

0
2
/
0
6
/
0
9

-

?-?sem-?mod
requisies em uma linguagem de consulta de banco
de dados, Eles submetem cada uma dessas consultas a
um processador de consulta, cuja funo desmembrar
as instrues DML em instrues que o gerenciador
de armazenamento entenda. Esto nesta categoria os
analistas que submetem consultas para explorar dados no
banco de dados;
usurios especializados: so usurios avanados que
escrevem aplicaes de banco de dados especializadas,
que no se encaixam na estrutura de processamento de
dados tradicional. Entre essas aplicaes esto os sistemas
de projeto auxiliados por computador, sistemas de base
de conhecimentos e sistemas especialistas, sistemas que
armazenam dados com tipos de dados complexos (por
exemplo, dados grcos e dados de udio) e sistemas de
modelagem de ambiente.
A pessoa que tem controle central sobre o sistema chamada
de administrador de banco de dados (DBA). As funes de
um DBA incluem:
denio de esquema: o DBA cria o esquema de banco de
dados original executando um conjunto de instrues de
dados na DDL;
estrutura de armazenamento e denio de mtodo de
acesso;
modicao de esquema e de organizao fsica: o DBA
realiza mudanas no esquema e na organizao fsica
para reetir as alteraes das necessidades da empresa,
ou modicar a organizao fsica de modo a melhorar o
desempenho;
concesso de autorizao para acesso a dados: concedendo
diferentes tipos de autorizao, o DBA pode controlar
partes do banco de dados em que os vrios usurios podem
5
10
15
20
25
30
26
Unidade III
R
e
v
i
s

o
:

A
m
a
n
d
a
:

D
i
a
g
r
a
m
a

o
:

L

o

0
2
/
0
6
/
0
9

-

acessar. As informaes de autorizao so mantidas em
uma estrutura de sistema especial, a qual o sistema de
banco de dados consulta toda vez em que algum tenta
acessar os dados no sistema;
manuteno de rotina: exemplos da manuteno de rotina
do DBA so:
- realizar backups peridicos do banco de dados, sejam em
tas ou em servidores remotos, para prevenir perda de
dados no caso de acidentes, como incndio, inundao,
etc.;
- garantir que haja espao livre suciente em disco para
operaes normais e aumentar o espao em disco de
acordo com o necessrio;
- monitorar tarefas sendo executadas no banco de dados
e assegurar que o desempenho no seja comprometido
por tarefas muito onerosas submetidas por alguns
usurios.
4.1 Segurana e administrao - controle de
acesso
Atravs do SGBD, o DBA pode implementar mecanismos
de segurana baseados em garantias ou restries de acesso
com preenchimento de login e senha, permitindo o registro
de acessos e operaes a partir do perodo em que o usurio
acessa o banco de dados at o momento em que ele encerra
suas atividades (Fig. 4.1).
Fig. 4.1 - Conexo com SGBD cliente/servidor
5
10
15
20
27
ADMINISTRAO DE BANCO DE DADOS
R
e
v
i
s

o
:

A
m
a
n
d
a
:

D
i
a
g
r
a
m
a

o
:

L

o

0
2
/
0
6
/
0
9

-

?-?sem-?mod
O DBA pode atribuir a um usurio formas de autorizao
sobre partes do banco de dados. Por exemplo:
autorizao para ler dados;
autorizao para inserir novos dados;
autorizao para atualizar dados;
autorizao para excluir dados.
Cada um desses tipos de autorizao chamado de um
privilgio (DATE, 2003). O DBA pode autorizar um usurio a
todos, a nenhum ou a uma combinao de privilgios sobre
partes especcas de um banco de dados. Assim como tambm
pode restringir o acesso a determinado banco de dados. Uma
vez denido qual banco de dados poder ser acessado, tambm
dene quais tipos de operaes podero ser realizadas pelos
usurios.
Os mecanismos de congurao de privilgios so
conhecidos como REVOKE e GRANT (revogao e garantia dos
nveis), e podem ser implementados em grande parte de sistemas
gerenciadores de banco de dados (Fig. 4.2).
Fig. 4.2 - Denindo privilgios no SQL Server 6.5
5
10
15
28
Unidade III
R
e
v
i
s

o
:

A
m
a
n
d
a
:

D
i
a
g
r
a
m
a

o
:

L

o

0
2
/
0
6
/
0
9

-

4.2 Recuperao (recovery)
O Recovery (recuperao), segundo DATE (2003:381)
em um sistema de banco de dados signica basicamente a
recuperao do prprio banco de dados: ou seja, restaurar o
banco de dados a um estado que se sabe ser correto depois
que alguma falha o leva a um estado incorreto ou, pelo menos,
suspeito. E os princpios fundamentais em que se baseia essa
recuperao so muito simples, e podem ser resumidos em uma
palavra: redundncia. Em outras palavras, o modo de garantir
que o banco de dados de fato recupervel garantir que toda
informao que ele contm possa ser reconstruda a partir de
alguma outra informao armazenada de modo redundante em
outro lugar do sistema.
O sistema deve estar preparado para se recuperar no
apenas de falhas puramente locais, como a ocorrncia de
uma condio de estouro (overow) dentro de uma transao
individual, mas tambm de falhas globais, como uma queda
de energia. Por denio, uma falha local s afeta a transao
em que a falha realmente ocorreu. Ao contrrio, uma falha
global afeta todas as transaes em andamento no instante
da falha e, portanto, tem implicaes signicativas em todo o
sistema. Essas falhas se enquadram em duas grandes categorias
(DATE, 2003):
Falhas do sistema (por exemplo, queda de energia), que
afetam todas as transaes em curso no momento, mas
no danicam sicamente o banco de dados. s vezes,
uma falha do sistema chamada de soft crash;
Falhas da mdia (por exemplo, queda da cabea de gravao
sobre o disco), que causam danos ao banco de dados ou a
uma parte dele, e afetam pelo menos todas as transaes
que, no momento, esto usando essa parte. s vezes, uma
falha da mdia chamada de hard crash.
5
10
15
20
25
30
29
ADMINISTRAO DE BANCO DE DADOS
R
e
v
i
s

o
:

A
m
a
n
d
a
:

D
i
a
g
r
a
m
a

o
:

L

o

0
2
/
0
6
/
0
9

-

?-?sem-?mod
4.2.1 Recuperao de sistema
O ponto crtico com relao a falhas do sistema o fato de
que o contedo da memria principal perdido (em particular,
os buffers do banco de dados se perdem). Ento, o estado
exato de qualquer transao em curso no momento da falha
deixa de ser conhecido; desse modo, tal transao no poder
nunca mais ser concluda com sucesso e dever ser desfeita
isto , retomada quando o sistema for reinicializado. Alm
disso, tambm pode ser necessrio refazer no momento da
reinicializao certas transaes concludas com xito antes
da queda, mas que no conseguiram ter suas atualizaes
transferidas dos buffers do banco de dados para o banco de
dados fsico (DATE, 2003).
Segundo DATE, o sistema mantm um log ou dirio em ta
ou (mais comumente) em disco, no qual so registrados detalhes
de todas as operaes de atualizao em particular, valores do
objeto atualizado antes e depois de cada atualizao, s vezes
chamados de imagens antes e depois (2003:383).
Surge aqui a questo bvia: de que maneira o sistema
saber, no momento da reinicializao, quais transaes devem
ser desfeitas e quais devem ser refeitas? A resposta a seguinte:
em certos intervalos predeterminados em geral, sempre que
algum nmero preestabelecido de entradas gravado no log
o sistema automaticamente marca um checkpoint (ponto de
vericao). Marcar um checkpoint envolve:
a) gravar sicamente o contedo dos buffers do banco de
dados fsico;
b) gravar sicamente um registro de checkpoint especial no
log fsico.
O registro de checkpoint fornece uma lista de todas as
transaes que estavam em andamento no momento em que o
5
10
15
20
25
30
30
Unidade III
R
e
v
i
s

o
:

A
m
a
n
d
a
:

D
i
a
g
r
a
m
a

o
:

L

o

0
2
/
0
6
/
0
9

-

checkpoint foi marcado. O sistema percorre o log do m para o
incio, desfazendo as transaes; em seguida, ele percorre o log
de novo para a frente, refazendo as transaes.
A restaurao do banco de dados a um estado correto
refazendo o trabalho chamada de recuperao direta. De
modo semelhante, a restaurao do banco de dados a um
estado correto desfazendo o trabalho s vezes chamada de
recuperao inversa. Observe que a recuperao direta refaz
as atualizaes na ordem em que foram feitas originalmente,
enquanto a recuperao inversa desfaz as atualizaes na ordem
inversa.
Finalmente, quando toda essa atividade de recuperao for
concluda, ento o sistema estar pronto para aceitar um novo
trabalho.
4.2.2 Recuperao da mdia
A recuperao de uma falha desse tipo envolve basicamente
a recarga ou a restaurao do banco de dados a partir de
uma cpia de backup. Em seguida, usa-se o log em geral,
tanto a parte ativa quanto a parte arquivada para refazer
todas as transaes que se completaram desde que foi feita
a ltima cpia de backup. No h necessidade de desfazer
as transaes que ainda estavam em curso no momento
da falha, pois, por definio, todas as atualizaes dessas
transaes de qualquer modo foram desfeitas perdidas
(DATE, 2003).
A necessidade de ser capaz de efetuar a recuperao da
mdia implica a necessidade de um utilitrio de dump/restore
(ou de descarga/recarga). A parte de dump desse utilitrio
usada para criar cpias de backup do banco de dados por
solicitao. Essas cpias podem ser mantidas em fita ou em
outro meio de armazenamento de arquivos; no necessrio
que estejam na mdia de acesso direto. Depois de uma falha
5
10
15
20
25
30
31
ADMINISTRAO DE BANCO DE DADOS
R
e
v
i
s

o
:

A
m
a
n
d
a
:

D
i
a
g
r
a
m
a

o
:

L

o

0
2
/
0
6
/
0
9

-

?-?sem-?mod
de mdia, a parte de restaurao do utilitrio usada para
recriar o banco de dados a partir de uma cpia de backup
especificada.
4.3 Replicao de dados
Replicao de banco de dados a cpia dos dados de um
banco de dados original para outro banco. Muitos bancos de
dados comerciais hoje permitem replicao, que pode assumir
uma das vrias formas. Com a replicao mestre-escravo
(master-slave), o banco de dados permite atualizaes em um
site primrio e propaga automaticamente as atualizaes para
as rplicas em outros sites. As transaes podem ler as rplicas
em outros sites, mas no tm permisso para atualiz-las (Fig.
4.3 e 4.4) (DATE, 2003).
Um recurso importante de tal replicao que as
transaes no tm bloqueios em sites remotos. Para garantir
que as transaes executadas nos sites de rplica tenham
uma viso consistente (mas talvez desatualizada) do banco
de dados, a rplica dever refletir um snapshot consistente
com a transao dos dados no site primrio; ou seja, a rplica
dever refletir todas as atualizaes das transaes at
alguma transao na ordem de seriao, e no dever refletir
quaisquer atualizaes de outras transaes na ordem de
seriao.
O banco de dados pode ser congurado para propagar
as atualizaes imediatamente aps elas ocorrerem no site
primrio, ou propagar as atualizaes apenas periodicamente.
A replicao mestre-escravo particularmente til para
distribuir informaes, por exemplo, de um escritrio central
para os escritrios das liais de uma organizao. Outro uso
para essa forma de replicao na criao de uma cpia do
banco de dados para executar grandes consultas, de modo que
as consultas no interram com as transaes. As atualizaes
5
10
15
20
25
30
32
Unidade III
R
e
v
i
s

o
:

A
m
a
n
d
a
:

D
i
a
g
r
a
m
a

o
:

L

o

0
2
/
0
6
/
0
9

-

devem ser propagadas periodicamente a cada noite, por
exemplo de modo que a propagao da atualizao no
interra com o processamento da consulta.
Master Master
Fig. 4.3 - Servidores mestre esto ambos sincronizados transmitindo escrita,
atualizaes e transaes em tempo real.
Slave Master
Fig. 4.4 - Servidores mestre-escravo esto ambos sincronizados transmitindo em
tempo real.
O sistema de banco de dados Oracle admite uma instruo
create snapshot, que pode criar uma cpia snapshot de uma
relao consistente com a transao, ou de um conjunto de
relaes em um site remoto. Ele tambm admite o refresh
do snapshot, que pode ser feito recalculando o snapshot
ou atualizando-o de modo incremental. O Oracle admite
refresh automtico, seja de forma contnua ou em intervalos
peridicos.
Com a replicao multimestre (tambm chamada
replicao de atualizao em qualquer lugar) as atualizaes
so permitidas em qualquer rplica de um item de dados e so
propagadas automaticamente a todas as rplicas. Esse o modelo
bsico usado para gerenciar os bancos de dados distribudos. As
transaes atualizam a cpia local e o sistema atualiza outras
rplicas de forma transparente.
Muitos sistemas de banco de dados oferecem uma forma
alternativa de atualizao: eles atualizam em um site, com a
propagao lenta das atualizaes para outros sites, em vez
de aplicar imediatamente as atualizaes a todas as rplicas,
5
10
15
20
33
ADMINISTRAO DE BANCO DE DADOS
R
e
v
i
s

o
:

A
m
a
n
d
a
:

D
i
a
g
r
a
m
a

o
:

L

o

0
2
/
0
6
/
0
9

-

?-?sem-?mod
como parte de uma transao que realiza atualizao. Os
esquemas baseados na propagao lenta permitem que o
processamento da transao (incluindo atualizaes) prossiga
mesmo que um site esteja desconectado da rede, melhorando
assim a disponibilidade, mas, infelizmente, fazem isso a custo
da consistncia. Uma de duas tcnicas normalmente seguida
quando a propagao lenta usada:
as atualizaes nas rplicas so traduzidas para as
atualizaes em um site primrio, que so propagadas
lentamente a todas as rplicas. Esta tcnica garante que
as atualizaes em um item sejam ordenadas em srie,
embora os problemas de seriao possam ocorrer, visto que
as transaes podem ler um valor antigo de algum outro
item de dados e us-lo para realizar uma atualizao;
as atualizaes so realizadas em qualquer rplica e
propagadas a todas as outras rplicas. Essa tcnica pode
causar ainda mais problemas, pois o mesmo item de dados
pode ser atualizado simultaneamente em vrios sites.
Alguns conitos devido falta de controle de concorrncia
podem ser detectados quando atualizaes so propagadas
para outros sites, mas resolver o conito envolve reverter as
transaes conrmadas e a durabilidade das mesmas, portanto,
no nenhuma garantia. Alm do mais, a interveno humana
pode ter de lidar com conitos. Esses esquemas, portanto,
devero ser evitados ou usados com cuidado.
4.4 Formas de melhoria de desempenho
4.4.1 Simulao de desempenho
Para testar o desempenho de um sistema de banco de dados,
mesmo antes que este seja instalado, podemos criar um modelo
de simulao de desempenho. Cada servio como CPU, disco,
buffer e controle de concorrncia, modelado na simulao. Em
5
10
15
20
25
34
Unidade III
R
e
v
i
s

o
:

A
m
a
n
d
a
:

D
i
a
g
r
a
m
a

o
:

L

o

0
2
/
0
6
/
0
9

-

vez de modelar detalhes de um servio, o modelo de simulao
s pode capturar alguns aspectos de cada servio, como o tempo
de servio, ou seja, o tempo gasto para terminar de processar
uma solicitao, uma vez que o processamento tenha se iniciado.
Assim, a simulao pode modelar um acesso ao disco a partir
apenas do tempo mdio de acesso ao mesmo (DATE, 2003).
Como as solicitaes para um servio geralmente precisam
esperar sua vez, cada servio possui uma la associada no
modelo de simulao. Uma transao consiste em uma srie
de solicitaes. As solicitaes so enleiradas medida que
chegam, e so atendidas de acordo com a poltica para esse
servio, na qual o primeiro a chegar, o primeiro a ser atendido.
Os modelos para servios como CPU e discos conceitualmente
operam em paralelo, levemos em conta o fato de que esses
subsistemas operam em paralelo em um sistema real.
Quando o modelo de simulao para processamento de
transao criado, o administrador do sistema pode executar
diversas experincias sobre ele. Ele pode usar experincias
com transaes simuladas chegando em diferentes taxas para
descobrir como o sistema se comportaria sob diversas condies
de carga. O administrador poderia executar outras experincias
que variam os tempos de servio para cada servio, a m de
descobrir a sensibilidade do desempenho de cada um deles.
Os parmetros do sistema podem ser variados, de modo que o
ajuste do desempenho pode ser feito no modelo de simulao.
5
10
15
20
25

Você também pode gostar