Escolar Documentos
Profissional Documentos
Cultura Documentos
Notas de Aula
Banco de dados II
Sumrio
1 GERNCIA DE TRANSAES...................................................................................................................3
1.1 PROPRIEDADES DA TRANSAO.................................................................................................................4
1.2 ESTADOS DA TRANSAO...........................................................................................................................4
2 CONTROLE DE CONCORRNCIA...........................................................................................................7
2.1 PROBLEMAS ASSOCIADOS EXECUO CONCORRENTE DE TAS................................................................8
2.2 MECANISMOS PARA CONTROLE DE CONCORRNCIA..................................................................................9
2.2.1 Bloqueio simples.................................................................................................................................9
2.2.2 Bloqueio de Duas Fases (2PL).........................................................................................................10
2.3 DEADLOCK.................................................................................................................................................12
2.3.1 Preveno de Deadlock.....................................................................................................................12
2.3.2 Deteco e Recuperao de Deadlock..............................................................................................13
2.4 GRANULARIDADE MLTIPLA....................................................................................................................13
3 RECUPERAO APS FALHAS..............................................................................................................17
3.1 PROJETO DE UM SUBSISTEMA DE RECOVERY...........................................................................................17
3.2 PROCEDIMENTOS PARA RECUPERAO DE FALHAS BASEADOS EM LOG................................................18
3.2.1 Checkpoints.......................................................................................................................................20
4 SEGURANA EM SGBDS..........................................................................................................................22
4.1 AUTORIZAO DE ACESSO........................................................................................................................23
4.1.1 Criando usurios...............................................................................................................................23
4.1.2 Concedendo/Revogando privilgios de acesso.................................................................................23
4.1.3 Roles..................................................................................................................................................24
4.1.4 Sinnimos..........................................................................................................................................25
5 VISES..........................................................................................................................................................26
5.1 USO DE VISES..........................................................................................................................................27
5.2 PROBLEMAS ASSOCIADOS S VISES........................................................................................................28
6 RESTRIES DE INTEGRIDADE...........................................................................................................29
6.1 CLASSIFICAO DAS RESTRIES DE INTEGRIDADE................................................................................29
6.1.1 Segundo seu alcance.........................................................................................................................29
6.1.2 Segundo o momento do teste.............................................................................................................29
6.1.3 RIs que regulamentam a atualizao de valores...............................................................................29
6.1.4 RIs que devem ser testadas na ocorrncia de eventos externos.......................................................30
6.2 RESTRIES DE INTEGRIDADE NO MODELO RELACIONAL.......................................................................30
6.2.1 Restrio de domnio........................................................................................................................30
6.2.2 Restrio de valor nulo (NULL).......................................................................................................31
6.2.3 Restrio de chave primria.............................................................................................................31
6.2.4 Restrio de integridade referencial.................................................................................................31
6.3 ESPECIFICAO DE RESTRIES DE INTEGRIDADE...................................................................................31
7 ANEXOS.........................................................................................................................................................33
7.1 ARQUITETURA BSICA DE UM SGBD.......................................................................................................33
7.2 ARQUITETURA DO GERENCIADOR DE BANCO DE DADOS.........................................................................34
Banco de dados II
1 Gerncia de Transaes
Um conceito bastante importante no contexto de sistemas gerenciadores de banco de
dados (SGBDs) o conceito da transao:
A transao uma unidade de trabalho do usurio (da aplicao) que atmica
do ponto de vista da aplicao [DAT 81]
A transao uma unidade de execuo de programa que acessa e,
possivelmente, atualiza vrios itens de dados. Geralmente, o resultado da execuo de
um programa escrito em uma linguagem de manipulao de dados de alto nvel ou em
uma linguagem de programao (por exemplo, SQL, COBOL, C ou Pascal) [SIL 99]
A partir dos dois conceitos acima importante definir que:
Banco de Dados II
ativa: o estado inicial, uma transao fica nesse estado enquanto estiver
executando;
em efetivao: aps a execuo da ltima declarao;
em falha: aps a descoberta de que a execuo normal no poder se realizar;
abort: depois que a transao foi desfeita e o banco de dados foi restabelecido ao
estado anterior ao incio da execuo da transao;
commit: aps a concluso com sucesso da transao.
A Figura 1 .3 apresenta o diagrama de estados correspondente a uma transao.
Captulo 1: Gerncia de Transaes
-4
-
Banco de Dados II
Em
efetivao
Commit
Ativa
Em
Falha
Abort
-5
-
Banco de Dados II
Aes da Aplicao
Aes do Gerente
de Transaes
Begin
Transaction
(BOT)
Seqncia de operaes
DML associadas a RIs
End of
Transaction
(EOT)
-6
-
Banco de dados II
2 Controle de Concorrncia
O controle de concorrncia a atividade de coordenar a ao de processos que
operam em paralelo, acessam dados compartilhados e, portanto, interferem uns com os
outros.
Quando duas ou mais transaes executam concorrentemente, suas operaes podem
ser processadas, pelo sistema de computao, de forma intercalada (interleaving). A
Figura 2 -3 apresenta um exemplo da execuo serial das transaes T1, T2 e T3 e da
execuo interleaving das mesmas transaes.
T1
T1
T2
T2
T3
T1
T3
T2
T1
tempo
Banco de dados II
T2
T3
....
Tn
Gerente de
Transaes
Scheduler
Gerente de Dados
Gerente de
Recuperao
Falhas
Gerente de
Buffers
Banco de Dados
/LOG
b) execuo no serial
T1
T2
read(x)
x=x-10
read(x)
x=x+100
write(x)
Commit
write(x)
read(y)
y=y+n
write(y)
commit
T2
read(x)
x=x+100
write(x)
commit
Banco de dados II
TAs no recuperveis:
Uma transao no pode se basear em dados de uma transao que ainda no foi
efetivada (princpio da recuperabilidade).
T3
read(x)
x=x-10
write(x)
T4
read(x)
x=x+100
write(x)
commit
read(y)
rollback
T4 considerou T3
concluda com
sucesso o que
no
verdadeiro!!!
Banco de dados II
C
E
E
X
X
Quando uma transao Ti deseja acessar um dado, ela deve primeiro bloque-lo com
um dos dois tipos de bloqueio, dependendo da operao desejada. Se o dado j est
bloqueado com tipo incompatvel, Ti precisa esperar at que todos os bloqueios
incompatveis sejam liberados.
To logo o dado deixe de ser utilizado o bloqueio deve ser liberado.
T1
lock_E(x)
read(x)
x=x-1
write(x)
unlock(x)
T2
lock_E(x)
espera
...
...
...
lock_E(x)
x=x+100
write(x)
unlock(x)
T4
sum=0
lock_C(x)
read(x)
unlock(x)
sum=sum+x
lock_C(y)
lock_E(x)
x=x-10
write(x)
unlock(x)
commit
read(y)
unlock(y)
sum-sum+y
Banco de dados II
T2
T1
Lock_E(x)
x=x-10
T2
read(x)
x=x+100
write(x)
commit
write(x)
read(y)
y=y+10
write(y)
commit
lock_E(x)
espera
...
...
...
...
...
...
...
...
...
continua ...
write(x)
lock_E(y)
read(y)
y=y+10
write(y)
commit
unlock(x,y)
2PL Estrito
2PL Bsico
BOT
EOT
BOT
2PL Conservativo
EOT
BOT
EOT
Banco de dados II
2.3 Deadlock
Uma situao que pode ocorrer em sistemas concorrentes conhecida por impasse
ou deadlock (abrao mortal). O deadlock est associado a utilizao de recursos
compartilhados que s podem ser utilizados de forma exclusiva, no caso de banco de
dados, os dados utilizados pelas transaes.
Um sistema est em deadlock sempre que uma transao Ti est esperando por um
item de dado que est bloqueado por uma transao Tj e Tj est esperando por um item
de dado que est bloqueado por Ti.
H dois mtodos para resolver um deadlock:
Banco de dados II
T1
T2
Captulo 2: Controle de Concorrncia
- 13 -
Banco de dados II
Nessas situaes mais interessante bloquear todo o arquivo, pois em uma nica
solicitao todo o arquivo estar bloqueado e o tempo necessrio para realizar os bloqueios
(de cada registro) evitado. Em contrapartida, se a transao necessita de apenas um
registro, bloquear todo o arquivo desnecessrio e, tambm, elimina a concorrncia.
importante, ento, que o sistema permita definir mltiplos nveis de
granularidade de bloqueio. A granularidade de bloqueio , ento, a poro de itens de
dados que pode ser bloqueada por uma transao. As granularidades mais usuais so:
registro (tupla);
pgina;
arquivo (tabela).
Isso pode ser implementado atravs de uma rvore de granularidade, onde cada
nodo representa a poro de dados (gro) que est sendo bloqueada e existe uma hierarquia
entre os nodos. Observe a Figura 2 -6:
BD
A2
A1
Arq a
ra1
...
Arq b
ran
rb1
...
Arq c
rbn
rc1
...
rcn
quando uma transao bloqueia um determinado gro (ou nodo), ela bloqueia
tambm todos os nodos filhos deste gro no mesmo modo de bloqueio;
Captulo 2: Controle de Concorrncia
- 14 -
Banco de dados II
quando uma transao bloqueia um gro, todos os seus ancestrais devem ser
bloqueados intencionalmente no mesmo modo de bloqueio.
Modos de bloqueio:
CI
EI
CEI
CI
EI
CEI
Regras:
1) respeitar a matriz de compatibilidade dos modos de bloqueio
2) a raiz da rvore precisa ser bloqueada primeira e pode ser bloqueada em
qualquer modo
3) um nodo n pode ser bloqueado por Ti no modo C ou CI apenas se os pais de n
esto correntemente bloqueados por Ti no modo EI ou CI
4) Um nodo n pode ser bloqueado por Ti no modo E, CEI, ou EI apenas se os pais
de n esto correntemente bloqueados por Ti no modo EI ou CEI
5) Ti pode bloquear um nodo apenas se ele no desbloqueou nenhum nodo antes
(segue a tcnica de bloqueio de duas fases)
Captulo 2: Controle de Concorrncia
- 15 -
Banco de dados II
Banco de dados II
Banco de dados II
A partir dos tipos de falhas acima apresentados possvel identificar quatro aes a
serem implementadas pelo mecanismo de recovery:
Banco de dados II
Banco de dados II
<fim T3>
<incio T5>
<T4, Conta, c9, 500, 600>
<Inicio T6>
<T5, Conta, c5, 100, 260>
<fim T5>
<T2, Conta, c7, 700, 850>
<T6, Conta, c8, 200, 550>
Supondoqueatcnicademodificaoimediatadobancodedadosestejasendo
utilizada:
a)queaesdevemserrealizadaspelosubsistemaderecoveycasoocorra:
1)umafalhadatransaoT4;
2)umafalhadesistema;
b)sehouvesseumregistrodecheckpointimediatamenteapsoregistro<incioT4>,
queaesdeveriamserrealizadasseocorresseumafalhadesistema?
Antes da transao ser efetivada no banco de dados, ela deve estar gravada no LOG
fsico (WAL Write Ahead Log).
Como as modificaes realizadas pela transao esto armazenadas no LOG, podese retardar o momento em que as mesmas sero transferidas para o banco de dados como,
por exemplo, no momento da seleo de uma vtima. Em caso de falha de sistema,
necessrio fazer o partial redo para recuperar as transaes committed no momento da
falha e o global undo para desfazer o efeito das transaes que no haviam sido
concludas.
No segundo caso, as modificaes realizadas por uma transao so efetivadas no
banco de dados no momento em que a transao est sendo executada (imediato). O
procedimento WAL continua valendo, ou seja, primeiro a informao armazenada no
arquivo de log. A implementao da poltica force pode gerar problemas no
processamento de transao, pois o overhead no sistema maior.
3.2.1 Checkpoints
Checkpoints so pontos de verificao que garantem que at aquele ponto os
contedos dos buffers de LOG e do banco de dados foram descarregados nos respectivos
meios fsicos. Os checkpoints so executados periodicamente pelo sistema de recovery e
tem por objetivo reduzir o esforo de recovery.
Os seguintes passos so executados quando da ocorrncia de um checkpoint:
Banco de dados II
Banco de dados II
4 Segurana em SGBDs
O termo segurana, em banco de dados, refere-se proteo do banco de dados
contra acessos intencionais ou no intencionais utilizando controles baseados em
computador ou no [CON 98]
So considerados acessos intencionais aqueles realizados propositadamente, por
exemplo, um usurio do sistema cede sua senha a pessoas no autorizadas. Acessos no
intencionais so aqueles que, ao ocorrer, causam algum tipo de perda (por exemplo, perda
da consistncia do banco de dados ou perda de informao), mas no foram propositados.
Exemplo, queda de energia que corrompe o banco de dados.
Segundo [CON 98], o contexto de segurana pode ser analisado segundo as
seguintes situaes:
roubo e fraude de informao;
perda de confiabilidade;
perda de privacidade;
perda de integridade;
perda de disponibilidade.
Os controles que podem ser implementados podem ser baseados em computador ou
no. Os controles no baseados em computador geralmente esto associados a polticas e
planos de segurana estabelecidos pela organizao. Exemplo: poltica para cesso de
contas de usurios, os usurios devem trocar suas senhas mensalmente e no devem deixlas registradas em locais de fcil acesso.
Os controles baseados em computador so agrupados nas seguintes categorias:
autorizao: refere-se a concesso de um direito ou de um privilgio a um
usurio (ou a um programa) a acessar legitimamente o sistema ou um objeto do
sistema;
vises: um mecanismo que permite estabelecer pores de dados que podem
ser visualizados por um determinado usurio (ou programa);
backup e recuperao de falhas: refere-se ao mecanismos necessrios para
garantir a disponibilidade do sistema em caso de falhas;
integridade: refere-se aos controles que contribuem para manter a segurana do
sistema evitando que dados invlidos sejam registrados no sistema (ver
Captulo 2);
criptografia: refere-se codificao dos dados a partir de um algoritmo
especial que torna os dados impossibilitados de serem lidos sem que se tenha a
chave de criptografia. Esse tpico no faz parte do escopo da disciplina;
auditorias: tem por objetivo verificar os acessos que so realizados sobre o
sistema e observar se os acessos realizados seguem as polticas de segurana
propostas. Esse tpico no faz parte do escopo da disciplina.
Banco de dados II
Banco de dados II
GRANT SELECT, UPDATE ON FUNCIONARIO TO PEDRO;
4.1.3 Roles
Como voc pode observar, para cada objeto do esquema deve ser definido quais
usurios tero direito sobre ele e que tipo de direito tero. Alguns SGBDs oferecem alguns
recursos para facilitar a administrao do sistema, as roles. Uma role (papel) consiste de um
conjunto de privilgios que so definidos sobre uma tabela e que podem ser atribudas a um
usurio, facilitando a tarefa de concesso de privilgios.
Usurio 1
Usurio 2
Tabela A
Usurio 3
Tabela B
Banco de dados II
Usurio 1
Usurio 2
Usurio 3
Role
Tabela A
Tabela B
4.1.4 Sinnimos
Um outro recurso oferecido pelo SGBD ORACLE o de sinnimo. Um sinnimo
tem por objetivo oferecer transparncia no acesso aos objetos. Quando um objeto
acessado por um usurio que no o proprietrio ele deve ser referenciado pelo
[nome_do_proprietrio.nome_do_objeto].
O sinnimo cria um apelido para um objeto:
CREATE PUBLIC SYNONYM FUNCIONARIO FOR RH.FUNCIONARIO;
Foi criado um sinnimo pblico para a tabela Funcionrio, que pertence ao esquema
RH, chamado Funcionrio. A partir da criao do sinnimo todos os usurios que tiverem
privilgio sobre a tabela Funcionrio podero referenci-la como Funcionrio, apenas.
Esse captulo apresentou alguns recursos que so oferecidos pelo SGBD Oracle,
mas que podem estar presentes em outros SGBDs, tambm. Embora alguns desses recursos
no estejam previstos na linguagem SQL, estes ainda assim foram apresentados para que
voc faa uma melhor utilizao do SGBD nos exerccios prticos.
Banco de dados II
5 Vises
As tabelas criadas em um banco de dados relacional tm existncia fsica dentro do
sistema de computao. Algumas vezes, porm, necessrio criar tabelas que no
ocupem espao fsico, mas que possam ser utilizadas como as tabelas normais. Essas
tabelas so chamadas de vises ou tabelas virtuais, pois no existem por si, mas parecem
ao usurio como se fossem. Vises so, ento, relaes virtuais derivadas das relaes do
banco de dados.
Uma viso definida utilizando a instruo create view. Para definir uma viso
necessrio definir um nome e estabelecer uma consulta. Em SQL a sintaxe :
create view <nome da viso> as <expresso da consulta>
Onde:
Uma vez definida a viso, o nome pode ser usado para referenciar a relao virtual
que a viso gera. Nomes de vises podem aparecer em qualquer lugar em que um nome
de relao possa aparecer.
Banco de dados II
Exemplos:
Banco de dados II
Banco de dados II
6 Restries de Integridade
As restries de integridade so regras que determinam as operaes vlidas sobre o
banco de dados, mantendo a consistncia dos dados armazenados. Por operaes vlidas
entende-se aquelas operaes que mantm a relao entre o mundo real (do usurio ou da
aplicao) e a sua representao no banco de dados. Pode-se dizer que existe um
mapeamento das regras existentes no mundo real para o banco de dados
A partir da definio, por parte do usurio, dos estados corretos e das transies de
estado corretas, o SGBD deve garantir que o banco de dados reflita somente estes estados e
que as operaes sobre o banco de dados reflitam somente estas transies.
Alguns exemplos de restries de integridade:
a) em campos do tipo numrico caracteres no so permitidos (com exceo do
ponto decimal);
b) um aluno no pode estar matriculado na mesma disciplina, mais de uma vez, no
mesmo semestre;
c) pela CLT, um funcionrio no pode ter o seu salrio rebaixado.
No primeiro exemplo, a restrio de integridade definida em mais baixo nvel,
sendo vlida para qualquer aplicao. No segundo e terceiro exemplo, as restries de
integridade so definidas em mais alto nvel e dependem da aplicao.
Banco de dados II
VIVO
SOLTEIRO
CASADO
SEPARADO
DIVORCIADO
restrio de domnio;
restrio de valor nulo (NULL);
restrio de chave primria;
restrio de integridade referencial..
Anexos
- 30 -
Banco de dados II
nulo ou
igual a algum valor na relao onde ela chave primria.
Anexos
- 31 -
Banco de dados II
clusula ASSERT;
TRIGGERS.
Anexos
- 32 -
Banco de dados II
7 ANEXOS
7.1 Arquitetura Bsica de um SGBD
Programadores
Usurios
DBA
Programas de
Aplicao
Consultas
Esquema do
Banco de Dados
Pr-processador
de DML
Processador
de consulta
Compilador
de DDL
Gerenciador de
Banco de Dados
Gerenciador
Dicion.Dados
Cdigo objeto
de programas
SGBD
Gerenciador
de Arquivos
Anexos
- 33 -
Banco de dados II
Processador
de consulta
Gerenciador
Dicion.Dados
Autorizao
de Acesso
Verificao
de Integridade
Gerente de Dados
Processador de
Comandos
Otimizador de
Consultas
Gerente de
Transaes
Scheduler
Gerente de
Buffers
Gerente de
Recuperao
Falhas
Gerenciador
de Arquivos
Banco de Dados e
Dicionrio de Dados
Anexos
- 34 -