Bando de Dados II - Desconhecido
Bando de Dados II - Desconhecido
Bando de Dados II - Desconhecido
IESDE BRASIL
2021
© 2021 – IESDE BRASIL S/A.
É proibida a reprodução, mesmo parcial, por qualquer processo, sem autorização por escrito do autor e do
detentor dos direitos autorais.
Projeto de capa: IESDE BRASIL S/A. Imagem da capa: DrHitch/Shutterstock
3 Gerenciamento de transações 54
3.1 Conceitos de transações 55
3.2 Propriedades de uma transação 59
3.3 Suporte a transações no SQL 66
3.4 Técnicas de controle de concorrência 69
Gabarito 110
Vídeo
APRESENTAÇÃO
A utilização de estruturas de banco de dados para dar suporte
aos sistemas de informação já é comum entre projetistas de grande
parte dos sistemas corporativos, departamentais e até pessoais.
Apesar de os sistemas gerenciadores de bancos de dados
(SGBD) simplificarem excessivamente as tarefas de manipulação
dos dados, ainda podemos considerar como essencial
conhecer quais são esses tratamentos e processos executados
automaticamente pelos SGBD.
Com o intuito de melhor organizar o conhecimento das técnicas
utilizadas por um SGBD e compreender a importância de se tomar
alguns cuidados durante o projeto e a construção dos nossos
bancos de dados, organizamos este livro em cinco capítulos.
No Capítulo 1 veremos quais são as estruturas físicas
utilizadas por um sistema gerenciador de banco de dados para
armazenar e recuperar os dados. Reconheceremos as estruturas
de organização de arquivos utilizadas na criação de um banco
para recuperação de dados por meio de índices, mediante a
utilização de técnicas de hashing e indexação.
Já no Capítulo 2, tendo compreendido como os dados são
organizados e mantidos, trataremos das técnicas de otimização
de consultas utilizadas pelos sistemas gerenciadores de bancos
de dados, de modo a permitir que os comandos SQL possam
ter sua estrutura declarativa transformada em uma estrutura
procedimental otimizada.
No Capítulo 3 apresentaremos as técnicas de gerenciamento
de transações concorrentes, permitindo que vários processos
possam consultar e atualizar simultaneamente o mesmo conjunto
de dados. Conheceremos quais são as características de uma
transação e como elas asseguram a manutenção da integridade de
um banco de dados. Também entenderemos como o SQL permite
que o controle de concorrência seja executado com sucesso.
Chegando ao Capítulo 4, abordaremos os tipos de falha
que podem ocorrer e os recursos de recuperação de falhas
que um SGBD pode prover, bem como as estruturas de dados
complementares que o sistema cria para permitir que as integridades lógica e
física de um banco de dados sejam asseguradas.
Já no Capítulo 5, após conhecermos todas as técnicas e as estruturas
utilizadas pelos SGBD para assegurar a integridade de um banco de dados
transacional, estudaremos as estruturas de dados, o processo de modelagem
e a criação de data warehouses e data smarts focados em sistemas de apoio
à decisão. Veremos também as diferenças de abordagem entre os sistemas
transacionais (OLTP) e de apoio à decisão (OLAP).
Com todo esse conteúdo, participaremos de uma jornada que apresentará
desde os primeiros conceitos, passando por métodos e técnicas para
gerenciamento seguro de dados, chegando até estruturas não convencionais
orientadas a sistemas de apoio à decisão. Esperamos que você tenha uma
gratificante experiência.
Bons estudos!
8 Banco de Dados II
1
Armazenamento e
estruturas de dados
Todos os aspectos envolvidos na modelagem conceitual,
lógica e física de um banco de dados requerem que estruturas
físicas de armazenamento sejam utilizadas para materializar e
tornar fisicamente acessíveis os dados do banco projetado e
criado.
As melhores práticas utilizadas para o projeto irão requerer
também tecnologias equivalentes para produzir os resultados
de desempenho, segurança, acessibilidade e compartilhamen-
tos desejados. De pouco adiantaria ter planejado um banco de
dados com altos requisitos de compartilhamento e desempe-
nho, se pelo lado da oferta tecnológica não houver meios para
liberar esses resultados aos usuários.
A oferta de diferenciais tecnológicos por diferentes fabri-
cantes, tanto de software como de hardware, acaba, por fim,
por determinar o alcance ou não dos resultados esperados
pelas áreas de negócio das corporações que dependem dos
bancos de dados para o sucesso de suas operações.
Neste capítulo veremos os conceitos e estruturas físicas
utilizadas para o armazenamento e acesso aos dados físicos
nos bancos de dados. Por meio desta abordagem poderemos
reconhecer as estruturas físicas de armazenamento de dados
em disco, os modelos de organização de arquivos, as alternati-
vas para construção de índices de acesso, bem como ver como
estas impactam as estruturas de bancos de dados em sua cria-
ção e manipulação.
10 Banco de Dados II
ciados ao próprio processador. Essa é a forma mais rápida de memória Vídeo
para acesso de dados, porém é também a mais cara. Ela é normalmen- No vídeo Como funciona
a memória cache?,
te limitada e pequena (um processador Intel 7, por exemplo, pode ter publicado pelo canal
até o máximo de 12 megabytes de cache) e não é um tema de preocu- The Hardware Show,
você verá a arquitetura
pação quanto se fala de um banco de dados. Não é, portanto, usada básica de um processa-
por um software gerenciador de banco de dados para a manipulação dor e como a memória
cache se insere neste
dos dados. contexto. Uma aborda-
gem bastante didática
•• Memória principal (ou memória RAM, Random Access Memory) e esclarecedora poderá
lhe trazer informações,
A memória RAM é uma que já pode ter maior capacidade de arma- como os benefícios e
zenamento – da ordem dos gigabytes, podendo chegar a terabytes –, restrições que a memória
cache apresenta para a
mas ainda não é usada como fonte de armazenamento perene de da- otimização de tempo de
dos, devido ao fato de depender de energização para retenção de seus processamento das ins-
truções e para o tempo
dados. Caso ocorra a interrupção do fornecimento de energia, essa de acesso a dados.
memória deixará de reter os dados nela carregados. Ela tem um papel Disponível em: https://
importante no cenário dos gerenciadores de banco de dados, pois será www.youtube.com/
watch?v=uS3XnXgr1DE. Acesso
utilizada como meio de aceleração para acesso aos dados usados mais em: 24 nov. 2020.
frequentemente. Ou seja, aquela porção do banco de dados acessada
com maior frequência será carregada na memória RAM, pois o acesso
dela é muito mais rápido.
•• Memória flash
Estes têm sido ao longo de décadas o meio mais efetivo para o ar-
mazenamento de grandes volumes de dados. Há décadas os discos
magnéticos de uso corporativo não chegavam a armazenar sequer 512
megabytes. Hoje, facilmente você irá encontrar um notebook para uso
pessoal com um disco magnético de mais de 1 terabyte. Os sistemas
gerenciadores de banco de dados se baseiam predominantemente
nesse tipo de armazenamento.
12 Banco de Dados II
meio de um cartucho até chegar ao bloco requisitado. Por essa razão
o acesso à fita pode ser lento e as fitas podem não ser utilizadas para
armazenar dados on-line, exceto para aplicações específicas. Entretan-
to, elas atendem a uma função muito importante: o backup do banco
de dados.
•• Estrutura de disco
Trilha/Cilindro
setor 20
trilha 1
trilha 10
setor 1
Cabeçotes
8 Cabeçotes
Pratos
14 Banco de Dados II
exigem interação com dispositivos de entrada e saída de dados. Ve-
remos as seguir como este processo acontece, segundo descrito por
Elmasri e Navathe (2006).
Memória RAM
X Disco Magnético
X Y Z A B
X Y Z A B
ECC: =
Data
100 Bytes
16 Banco de Dados II
1.2 Organização de arquivos
Vídeo Os dados que iremos armazenar nos mais diversos tipos de dispositi-
vos de armazenamento, predominantemente em discos magnéticos, são
organizados de modo a formar registros. Cada registro é, portanto, uma
sequência de campos de dados elementares que agrupados formam uma
unidade de leitura ou de gravação. Esses registros ocupam por sua vez
espaços físicos em blocos de dados, conforme já vimos. Isto é, um bloco
físico em um disco será utilizado para armazenar um certo número de re-
gistros. A quantidade de registros possível de ser armazenada num bloco
dependerá do tamanho total do bloco e do tamanho individual de cada
registro. Imagine então que temos um bloco de 4Kbytes e um registro que
ocupe 512bytes. Teríamos a possibilidade de armazenar 8 registros por
bloco. Precisamos lembrar que, tanto na estrutura do bloco como na es-
trutura do registro, podemos ter áreas de dados reservadas para contro-
les internos do sistema operacional, por exemplo, o número do bloco, o
status do bloco etc.
Para que isso seja possível, são criados nos blocos estruturas de
controle (chamadas de header) em que o controle de espaço disponível
no bloco, os espaços liberados e outros controles são todos guardados
como dados de controle do bloco. Esse é mais um elemento que ocu-
pará espaço em seu futuro banco de dados. Se tivermos 1.000 registros
de 1.000 bytes cada, não terá um espaço físico de somente 1.000.000
bytes. Teremos que considerar também que o sistema irá criar áreas
de dados de controle em cada bloco (ou página) gerenciada pelo SGBD.
18 Banco de Dados II
Esses métodos de acesso estarão vinculados ao tipo de organização
de um arquivo que pode ser: heap (pilha), sequencial ou hash (indexa-
da), cada um deles tendo vantagens e desvantagens.
20 Banco de Dados II
para armazenamento tanto dos códigos dos programas quanto dos da-
dos de entrada para tais programas. Um conjunto de cartões era então
lido sequencialmente, um cartão após o outro. Com a evolução dos
dispositivos de armazenamento magnético, os cartões deixaram de ser
usados, mas foram então substituídos por outro dispositivo de leitura
e gravação (uma novidade) sequencial: as fitas.
Figura 5
Cartões perfurados e fitas magnéticas
Nomad_Soul/Shutterstock
22 Banco de Dados II
O processo de hashing é baseado em uma função matemática que
permite que, para o conteúdo de um campo de registro, possamos ge-
rar um número de bucket entre uma lista de buckets disponíveis para
onde ele deveria ser destinado. Vamos imaginar que temos uma lista
de buckets definida por B e uma lista de valores de entrada para um
campo definida por V. A função hash é uma função do tipo:
B = hash (V)
24 Banco de Dados II
Seja para um arquivo indexado tradicional (ainda disponível em sis-
temas de mainframe tradicionais existentes em grandes instituições
financeiras) ou para uma tabela de um moderno banco de dados rela-
cional criado com um dos mais recentes SGBDs existentes no mercado,
teremos o mesmo princípio e tecnologias similares sendo utilizadas.
Arquivo de dados
Índice
Localizar nome = “Cesar”
Ana Maria 02/10/1980
Ana Bloco 9
Beatriz 22/05/1981
Cesar Bloco 5
João 09/11/1992
... ...
Cesar 11/11/1997
Carlos 25/03/1962
Além disso, quando um índice se torna muito grande por ter que
endereçar um número muito grande de registros (por exemplo, 1 mi-
lhão de registros), passa a ser necessário o uso de uma estrutura de
índices multinível.
Imagine que tenhamos 200 mil blocos, cada um com seus 5 regis-
tros indexados (exemplo de 1 milhão de registros). Teríamos então na
estrutura de índice interno uma quantidade de 1 mil blocos de índices
cada um apontando para até 200 blocos de dados (totalizando 200 mil
apontadores para blocos de dados). Já no índice externo poderíamos
ter somente 10 mil chaves de referência apontando para os 10 mil blo-
cos do índice interno. Perceba que ao invés de ter um único índice com
1 milhão de entradas, teremos um índice externo com somente 10 mil
chaves, capazes de chegar a 1 milhão de registros através de índices
internos.
26 Banco de Dados II
Figura 9
Estrutura de índice multinível
bloco de bloco de
índice 0 dados 0
bloco de bloco de
índice 1 dados 1
Índice externo
Índice interno
C F K M
28 Banco de Dados II
CONSIDERAÇÕES FINAIS
As estruturas físicas de armazenamento dos dados de um banco de
dados não se distanciam muito das estruturas de armazenamento que
há décadas vem sendo utilizadas para arquivos sequenciais e arquivos
indexados. Com certeza, melhorias nos processos de armazenamento,
nas tecnologias e nos materiais usados para o armazenamento, e o
poder computacional otimizado gerado por sistemas operacionais e
sistemas gerenciadores de bancos de dados, geraram novas possibi-
lidades de exploração dos dados armazenados nos bancos de dados.
Porém, conhecer os conceitos e princípios que regem a manipula-
ção física desses dados vai nos dar condições de nos próximos capí-
tulos compreender a necessidade de implementar novos controles e
recursos nos sistemas gerenciadores de dados. Muitas vezes uma sim-
ples limitação física imposta pelo tempo de acesso a disco, que exige
um movimento mecânico do braço do leitor de disco, poderá ser usada
como justificativa para que se crie um mecanismo com os buffers de
acesso a dados no SGBD.
O que pode parecer neste momento um conteúdo muito distante
do real papel do sistema gerenciador de banco de dados, criado para
dar uma grande facilidade para manuseio do banco de dados, é, na
verdade, um conteúdo muito importante para compreender o próprio
funcionamento do sistema gerenciador do banco de dados.
ATIVIDADES
1. Justifique por que nas primeiras estruturas de arquivos criadas os
pesquisadores optaram por estruturas sequenciais, sendo que já
sabiam que elas não eram as que apresentariam melhor desempenho.
2. Por que um disco magnético sempre será mais lento para nos devolver
um dado solicitado, se comparado a uma memória RAM?
30 Banco de Dados II
2
Processamento e
otimização de consultas
Tendo modelado e construído nosso banco de dados e po-
pulado os dados em suas tabelas, passamos a contar com uma
estrutura que poderá ser acessada por meio da linguagem estru-
turada de consultas (SQL). Os sistemas gerenciadores de bancos
de dados proverão, então, algoritmos complexos e muito bem
elaborados, a fim de nos munir de meios ágeis para acessar os
dados mediante as SQL que iremos construir. Vamos conhecer
aqui alguns aspectos ligados às estratégias de acesso utilizadas
por essas ferramentas.
O conhecimento desses aspectos nos permitirá identificar as
eventuais causas de um comando não ter o melhor desempenho,
conforme o esperado. Identificaremos também por que, algumas
vezes, o próprio SGBD está construindo caminhos de acesso aos
dados diferentes daqueles que imaginamos serem os ideais.
Neste capítulo, observaremos, ainda, como são avaliados
os custos de execução de uma consulta, de modo que possam
ser aplicados algoritmos de otimização e de processamento de
consultas.
32 Banco de Dados II
A álgebra relacional, segundo Date (2004, p. 193), é “um conjunto de
operações e relações. Cada operação usa uma ou mais relações como
seus operandos, e produz outra relação como seu resultado”. Com isso,
podemos, por exemplo, demonstrar que combinar dois conjuntos de
vogais e números para depois remover somente os pares que têm a
vogal a tem o mesmo efeito que primeiro selecionar a vogal a e, em
seguida, combinar somente ela com os números.
Quadro 1
Exemplo de uma regra heurística
Combinar e selecionar
· Vogais = a, e, i, o, u
· Números = 1, 2, 3
· Combinação = a1, a2, a3, e1, e2, e3, i1, i2, i3, o1, o2, o3, u1, u2, u3
· Seleção onde vogal = “a” => a1, a2, a3
Selecionar e combinar
· Vogais = a, e, i, o, u
· Números = 1, 2, 3
· Seleção onde vogal = “a” => a
· Combinação = a1, a2, a3
Outra estratégia que pode ser utilizada, ou até combinada com a es-
tratégia das regras heurísticas, é o armazenamento de dados sobre as
34 Banco de Dados II
•• Custo de acessos a disco
Outro fator que pode ser avaliado é o tempo total de CPU consu-
mido para concluir uma consulta. Essa informação também é provida
pelas ferramentas de análise de performance de comandos SQL ofere-
cidas pelo SGBD.
36 Banco de Dados II
com maior latência (um servidor de banco de dados hospedado em
outro continente pode agregar até quatro segundos de tempo de latên-
cia entre receber um pedido e devolver um dado) podem representar
um custo importante a ser considerado na execução de uma consulta.
Uma consulta que retorne maiores volumes de dados em contraste
com uma que retorne um menor volume pode acabar sendo um fator
importante a ser considerado.
•• Tempo de avaliação
38 Banco de Dados II
que parte significativa desses dados poderão estar em buffer, quase
todo o tempo, reduzindo a latência geral.
Data de Estado de
Nome
nascimento nascimento
José 25/03/1962 PR
Maria 11/07/1964 SC
Pedro 11/11/1997 PR
Data de Estado de
Nome
nascimento nascimento
Maria 11/07/1964 SC
Data de Estado de
Nome
nascimento nascimento
José 25/03/1962 PR
Maria 11/07/1964 SC
Pedro 11/11/1997 PR
40 Banco de Dados II
R2:
Data de Estado de
Nome
nascimento nascimento
José 25/03/1962 PR
Maria 11/07/1964 SC
Pedro 11/11/1997 PR
Relação R2:
Produto Valor
001 R$ 10,00
005 R$ 12,00
Data de Estado
Nome Produto Valor
nascimento nascimento
José 25/03/1962 PR 001 R$ 10,00
Maria 11/07/1964 SC 001 R$ 10,00
Pedro 11/11/1997 PR 001 R$ 10,00
José 25/03/1962 PR 005 R$ 12,00
Maria 11/07/1964 SC 005 R$ 12,00
Pedro 11/11/1997 PR 005 R$ 12,00
Data de Estado de
Nome
nascimento nascimento
Eliana 25/03/1962 PR
Maria 11/07/1964 SC
Karla 11/11/1997 PR
Relação R2:
Data de Estado de
Nome
nascimento nascimento
Eliana 25/03/1962 PR
Ricardo 14/08/1984 SP
Humberto 10/02/2009 RJ
João 08/08/2010 SP
Data de Estado de
Nome
nascimento nascimento
Eliana 25/03/1962 PR
Maria 11/07/1964 SC
Karla 11/11/1997 PR
Ricardo 14/08/1984 SP
Humberto 10/02/2009 RJ
João 08/08/2010 SP
42 Banco de Dados II
Relação R1:
Data de Estado de
Nome
nascimento nascimento
Eliana 25/03/1962 PR
Maria 11/07/1964 SC
Karla 11/11/1997 PR
Relação R2:
Data de Estado de
Nome
nascimento nascimento
Eliana 25/03/1962 PR
Ricardo 14/08/1984 SP
Karla 11/11/1997 PR
João 08/08/2010 SP
Data de Estado de
Nome
nascimento nascimento
Eliana 25/03/1962 PR
Karla 11/11/1997 PR
Produto Valor
001 R$ 10,00
005 R$ 12,00
44 Banco de Dados II
Figura 1
Representação gráfica da expressão da álgebra relacional
π
nome_cliente
σ cidade_agência = Brooklyn
|Χ|
agência |Χ|
conta depositante
46 Banco de Dados II
Nesse contexto, o operador NOT é avaliado por primeiro, em
seguida o operador AND e por fim o operador OR. Caso existam
operadores aritméticos e bit a bit, eles serão tratados antes dos ope-
radores lógicos. Essa ordem pode, entretanto, ser alterada com o
uso de parênteses.
otimizador
saída da mecanismo
consulta de avaliação plano de execução
dados estatísticas
sobre dados
48 Banco de Dados II
Para a etapa de otimização das consultas serão aplicadas algumas
regras heurísticas básicas. Uma delas é aplicar primeiro as operações
que reduzem o tamanho dos resultados intermediários, como a sele-
ção e a projeção. A seleção, por exemplo, reduz o total de tuplas de
uma relação; já a projeção diminui a quantidade de atributos das tu-
plas. Caso tenhamos possibilidade de executar essas operações o mais
cedo possível, as próximas operações que venham a produzir relações
temporárias terão muito menor consumo de acesso a disco para ler e
gravar dados temporários.
50 Banco de Dados II
3. Selecionar somente os clientes que têm saldos maiores de
R$ 50.000,00.
Otimizações possíveis:
•• realizar inicialmente uma seleção sobre as contas-correntes
que tivessem saldo superior a R$ 50.000,00 para que todas as
próximas relações temporárias já tivessem somente 2.000 tu-
plas, mesmo sem realizar a junção desses dados com os dos
clientes;
•• ainda antes de realizar a junção dos dados dos clientes com os
dados das contas-correntes, realizar as projeções dos atribu-
tos nome do cliente e saldo da conta para, então, reduzir o nú-
mero de atributos manipulados nas próximas fases (reduzindo
o espaço em disco).
52 Banco de Dados II
CONSIDERAÇÕES FINAIS
O processamento e a otimização de consultas, como pudemos ver,
são uma tarefa bastante complexa, realizada pelo sistema gerenciador
de banco de dados. Ela se utiliza de diversas regras, estratégias, planos,
dados históricos, informações do dicionário de dados e, inclusive, dife-
renciais que cada fabricante agregará de modo a tornar seus algoritmos
melhores que os dos seus concorrentes.
Quase todos os sistemas gerenciadores de bancos de dados aca-
bam por oferecer basicamente o mesmo repertório de comandos e
recursos, portanto o que os diferenciará de seus concorrentes será o
fato de apresentarem um melhor desempenho no processamento de
suas consultas – lembre-se sempre que o termo consulta representa
qualquer comando SQL.
O módulo de otimização e processamento de consultas acabará por
representar indiretamente a capacidade de um sistema gerenciador de
banco de dados para atender melhor às demandas dos sistemas de infor-
mação, que, em última análise, desejam sempre, e cada vez mais, tempos
menores para acesso e processamento de dados.
ATIVIDADES
1. Por que um comando SQL não pode ser executado exatamente do
modo como foi escrito?
REFERÊNCIAS
DATE, C. J. Introdução a sistemas de banco de dados. Rio de Janeiro: Elsevier, 2004.
ELMASRI, R., NAVATHE, S. Sistemas de banco de dados. 4. ed. São Paulo: Pearson Addison
Wesley, 2006.
SILBERSCHATZ, A., KORTH; H. F., SUDARSHAN, S. Sistema de banco de dados. 6. ed. Rio de
Janeiro: Elsevier, 2012.
54 Banco de Dados II
3.1 Conceitos de transações
Vídeo Para se implementar um correto gerenciamento de transações, o
primeiro ponto a ser definido é o conceito da própria transação. O que
envolve uma transação? Qual é a sua duração? Quantas tabelas ou co-
lunas ela envolve? E assim por diante.
Gerenciamento de transações 55
Como, então, podemos informar ao sistema gerenciador de
banco de dados onde começa nossa transação (a primeira opera-
ção que dará início ao nosso conjunto de oito operações) e onde
essa transação termina (a última operação do nosso conjunto de
oito operações)? Segundo Silberschatz, Korth e Sudarshan (2012),
uma transação deve ser delimitada pelas instruções de begin
transaction e end transaction. Esses dois comandos são providos
permitindo ao sistema gerenciador de banco de dados sinalizar que
todos os demais comandos SQL que seguem o begin transaction es-
tarão agregados em uma única transação, até que se encontre então
um end transaction.
56 Banco de Dados II
pois teríamos transferido R$ 150,00 da conta de origem para liquidar Vídeo
as transações de débito. O Guia de Controle de
Versão de Linha e Bloqueio
Isso demonstra que não só uma transação deve ter sua unidade de Transações mostra
como o SQL-Server
mantida, mas que a sincronização dentre diversas transações precisa implementa os controles
ser gerenciada para que uma transação não se inicie antes que a outra, de concorrência no nível
de linha, propiciando
que já trabalha sobre os mesmos dados, seja concluída. Esse controle é meios para um comparti-
definido como controle de concorrência. lhamento de dados com
menor risco de conflitos
Enquanto as diversas transações que fazem somente leitura de de concorrência. Traz,
ainda, uma visão prática
porções do banco de dados estiverem sendo executadas, não teremos de como a teoria estuda-
potencialmente nenhum risco de perda de integridade nas informa- da é implementada em
um produto de ampla
ções recuperadas; porém, assim que uma das transações concorrentes utilização no mercado.
executar pelo menos uma atualização no banco de dados, o restante
Disponível em: https://
das transações que depende desse conteúdo pode ter seus resultados docs.microsoft.com/pt-br/
sql/relational-databases/
comprometidos.
sql-server-transaction-locking-
and-row-versioning-
As operações sobre um banco de dados são caracterizadas basica-
guide?view=sql-server-ver15.
mente em dois tipos (Quadro 1). Acesso em: 27 nov. 2020.
Quadro 1
Operações sobre um banco de dados
Gerenciamento de transações 57
Exemplo: uma transação precisa atualizar a cidade e o estado em que reside uma
pessoa para Curitiba e Paraná, respectivamente. Após ter atualizado o nome da cida-
de e estar se preparando para fazer o mesmo com o nome do estado, outra transação
concorrente é iniciada para atualizar o nome do estado para São Paulo e é finalizada.
Porém, logo em seguida, a primeira transação prossegue e atualiza o conteúdo do
nome do estado para Paraná. Veremos, então, que a primeira atualização feita para
São Paulo foi perdida.
58 Banco de Dados II
•• Leitura não repetitiva: momento em que duas execuções con-
secutivas de leitura de um mesmo conjunto de dados apresentam
valores diferentes, visto que, entre uma e outra leitura, algum ou-
tro processo realizou a atualização dos dados a ser utilizados.
Gerenciamento de transações 59
Quadro 2
Propriedades de uma transação
A Atomicidade
C Consistência
I Isolamento
D Durabilidade
60 Banco de Dados II
Figura 1
Componentes do sistema gerenciador de banco de dados
Programadores
de aplicação
PROGRAMAS DE Usuários
Equipe DBA Usuários casuais parametrizáveis
APLICAÇÃO
BANCO DE DADOS
ARMAZENADO
Gerenciamento de transações 61
saldo de R$ 150,00. Nenhum dinheiro pode ser criado ou destruído
dentro do processo sem que uma operação de crédito ou de débito
tenha sido realmente executada. Se somente R$ 50,00 foram somados
à conta, então não haveria como ela apresentar outro saldo que não
fosse o de R$ 150,00. Esse seria o resultado consistente esperado ao
final da transação, pois ela não permitiu que nenhuma outra interfe-
rência externa ocorresse.
62 Banco de Dados II
transação se iniciou com uma conta-corrente tendo um saldo de
R$ 100,00 e foi realizado um crédito de R$ 50,00, então, ao terminar, o
saldo deverá ser mantido com o valor de R$ 150,00, inclusive se alguma
falha vier a acontecer com o banco de dados após a conclusão.
Gerenciamento de transações 63
Figura 2
Diagrama dos estados de uma transação
parcialmente confirmada
confirmada
ativa
falha abortada
64 Banco de Dados II
de atualização para que eventualmente ela possa ser reprocessa-
da, entre outros exemplos. Essas são tarefas que não pertencem
propriamente à transação criada pelo programador, mas que são
agregadas pelo sistema gerenciador do banco de dados.
Gerenciamento de transações 65
Quadro 3
Tipos de falhas
66 Banco de Dados II
que deseje criar um ponto de recuperação (savepoint) ou confir-
mar definitivamente todas as atualizações que realizou no banco
de dados (commit).
Gerenciamento de transações 67
O bloqueio pessimístico traz naturalmente uma sensação de se-
rialização de transações, visto que, a partir do momento em que um
dado é utilizado em uma transação, mesmo que para leitura, todas as
demais transações devem aguardar que essa transação libere aquele
recurso. Essa é a forma de acesso que traz maior impacto negativo
para a performance de execução de transações simultâneas no banco
de dados.
Transação B
Transação A
Solicita slock Solicita xlock
Não realizou nenhum lock
Slock concedido. Xlock concedido.
até o momento.
Xlock negado.
Slock já concedido. Slock concedido.
Aguardará liberação.
Slock negado. Slock negado.
Xlock já concedido.
Aguardará liberação. Aguardará liberação.
68 Banco de Dados II
3.4 Técnicas de controle de concorrência
Vídeo Segundo Elmasri e Navathe (2006), as diversas técnicas de controle
de concorrência de transações são necessárias para garantir o isola-
mento das transações executadas em modo concorrente, e quase todas
elas implicam em serialização das transações envolvidas. Grande parte
dos sistemas gerenciadores de bancos de dados comerciais se utiliza
de protocolos (ou regras) que implementam bloqueios para garantir
essa serialização. Outros usam protocolos baseados em timestamps
(marcas de tempo) para ordenar e sequenciar as transações, criando
também como resultado uma serialização das mesmas.
Gerenciamento de transações 69
um dado: liberado, bloqueado em modo compartilhado e bloqueado
em modo exclusivo. Esses três estados são conhecidos também como:
unlocked, read_locked e write_locked, respectivamente. Esse mecanismo
de três estados tem como principal vantagem o fato de não bloquear o
acesso simultâneo de várias transações que desejem somente realizar a
leitura de um item de dado. Se, por exemplo, uma transação já iniciou
um bloqueio do tipo read_locked e outra transação também solicitar esse
bloqueio, ela terá assegurado o acesso ao mesmo dado. No processo de
bloqueio binário, essa opção não existe, fazendo automaticamente com
que a segunda transação entre em uma fila de espera.
70 Banco de Dados II
veremos que a técnica de bloqueio em duas fases pode ser especiali-
zada em quatro tipos, cada um com suas vantagens e desvantagens:
básico, conservador, estrito e rigoroso.
Outro problema típico que pode ocorrer por meio dos controles de
concorrência baseados em bloqueio é conhecido como starvation (ina-
nição). Caso o algoritmo que define as filas de espera por um recur-
Vídeo
so não seja apropriadamente definido, podemos ter uma situação em
No vídeo Processamento
que uma transação com baixa prioridade acabe por ficar aguardando
de Transações, publicado
indefinidamente em uma fila, enquanto todas as demais transações por André Santanchè,
você confere a parte 1 da
prosseguem normalmente. Para atuar sobre esse tipo de problema,
aula ministrada por ele.
podemos, por exemplo, definir que a ordem de espera na fila de recur- Nela são apresentados
todos os conceitos de
sos siga o protocolo FIFO (First-in, First-out).
gerenciamento de tran-
sações, com exemplos
Além da técnica de controle de concorrência baseada em bloqueio
práticos de processos em
em duas fases, temos a técnica baseada em ordenação, chamada de que a serialização pode
resolver problemas de
timestamp. Um timestamp pode ser produzido pelo sistema gerenciador
produção de resultados
de banco de dados e associado a cada transação em execução. Ele pode divergentes, conforme
a ordem de execução
ser um número sequencial (que, por ser finito, teria que ser reinicializado
de duas diferentes
em algum momento) ou uma indicação de data, hora, minuto, segundo transações concorrentes.
e centésimo de segundo. Esse timestamp será utilizado para serialização Disponível em: https://youtu.
dos pedidos de read_lock e write_lock, de acordo com algoritmos espe- be/8Wur04WPZRc. Acesso em: 27
nov. 2020.
cíficos. Quando uma transação solicitar um item de dado de modo con-
Gerenciamento de transações 71
Leitura flitante com outra, fora da sua ordenação natural de serialização, essa
Neste resumo elaborado transação será cancelada e reiniciada ganhando um outro timestamp.
pelo Centro de Infor-
mática da Universidade Uma terceira técnica de controle de concorrência é denominada
Federal de Pernambuco
(UFPE), você encontrará
multiversão. Nessa técnica, quando um dado é alterado por uma tran-
slides que sintetizam os sação, cria-se uma cópia desse dado com o novo valor, mantendo em
principais conceitos sobre
o gerenciamento de tran-
memória tanto o item alterado como o não alterado. Caso uma outra
sações e controle de con- transação solicite uma nova alteração do mesmo dado, uma diferente
corrência. São apresenta-
dos alguns exemplos de
versão do dado também será feita. Isso criará uma complexidade de
processos de serialização, gerenciamento adicional, pois cada transação executando em paralelo
demonstrando quando
ela é viável e quando não
poderá ter como referência um valor diferente do mesmo dado e, em
pode ser aplicada. algum momento, todas as versões precisarão ser sincronizadas.
Disponível em: https://www.cin.
A quarta técnica disponível é a técnica intitulada controle de con-
ufpe.br/~in940/transacoes.pdf.
Acesso em: 27 nov. 2020. corrência de validação ou controle de concorrência otimista. Nas demais
técnicas que vimos anteriormente, sempre ao se iniciar uma transação
ou ao solicitar acesso a um dado, há uma validação prévia do estado
em que ele se encontra em termos de bloqueios já assegurados. Isso
gera uma perda de desempenho, uma vez que cada operação de leitu-
ra ou gravação deve ser, em todo caso, precedida de uma avaliação de
bloqueio. O que a técnica otimista utiliza como base para seu algoritmo
é o fato de que, provavelmente, o dado que uma transação está solici-
tando terá pouca chance de estar bloqueado por uma outra.
72 Banco de Dados II
ca. Se conseguirmos atuar nesse nível de bloqueio, poderemos ter me-
nor nível de conflitos de concorrência e, também, ter bloqueios no nível
de registros ou linhas de uma tabela. Nesse caso, mesmo que tenha-
mos solicitado o acesso a somente uma coluna de uma linha, tomando
como exemplo o código de matrícula de um aluno, teremos bloqueado
todos os dados daquele estudante para qualquer outra transação. Isso
pode ser ainda pior se o bloqueio acontecer no nível de um bloco de
disco, que pode ter até 4 Kbytes de dados, de um arquivo, de uma ta-
bela inteira ou até do banco de dados inteiro.
CONSIDERAÇÕES FINAIS
A habilidade de processar múltiplas transações concorrentemente,
tendo todas elas compartilhando um mesmo conjunto de dados, é uma
das principais características buscadas quando optamos por utilizar um
sistema gerenciador de banco de dados ou até mesmo quando modela-
mos e projetamos um banco de dados.
Sem essa habilidade, pouco adiantaria termos um repositório de da-
dos a compartilhar, uma vez que perderíamos a capacidade de realmente
fazer esse compartilhamento de dados entre aplicações e usuários. Com
isso em mente, os fornecedores de sistemas gerenciadores de bancos de
dados têm investido constantemente em aprimorar seus algoritmos de
gerenciamento de concorrência. Dessa maneira, eles buscam o menor
grau de granularidade para bloqueio, os melhores processos de serializa-
ção e as mais avançadas técnicas de recuperação de conflitos.
A competitividade entre diferentes fornecedores de sistemas ge-
renciadores de bancos de dados tem feito com que o maior beneficia-
do, no final, seja o próprio desenvolvedor de sistemas, que cada vez
mais conta com recursos para fazer com que seus programas possam
ter acesso concorrente a um banco de dados compartilhado, com o
menor grau de impacto. Assim, todo o trabalho que seria gerenciado
pelo programador passa a ser provido pelos sistemas gerenciadores
de bancos de dados, os quais, pela evolução contínua, oferecem mais
e melhores recursos.
Gerenciamento de transações 73
ATIVIDADES
1. Justifique por que o controle de transações é essencial para o
compartilhamento de dados por um banco de dados.
REFERÊNCIAS
DATE, C. J. Introdução a sistemas de banco de dados. Rio de Janeiro: Elsevier, 2004.
ELMASRI, R.; NAVATHE, S. Sistemas de banco de dados. 4. ed. São Paulo: Pearson Addison
Wesley, 2006.
SILBERSCHATZ, A.; KORTH; H. F.; SUDARSHAN, S. Sistema de banco de dados. 6. ed. Rio de
Janeiro: Elsevier, 2012.
74 Banco de Dados II
4
Técnicas de recuperação
em banco de dados
A utilização de uma estrutura de bancos de dados como o ele-
mento central de compartilhamento de dados para um ou mais
sistemas de informação tem sido, cada vez mais, a estratégia utili-
zada por quem define as arquiteturas de sistemas modernos, se-
jam eles de pequeno, médio ou grande porte. Tanto as aplicações
pessoais para utilização em dispositivos móveis quanto os grandes
sistemas corporativos têm hoje forte dependência de dados obti-
dos de bancos de dados.
Se por um lado essa estratégia agrega inúmeros benefícios pelo
compartilhamento dos dados, por outro, ela expõe todos esses sis-
temas de informação a um mesmo risco: à perda momentânea ou
definitiva de uma ou mais porções desse mesmo banco de dados.
A mesma indisponibilidade que antes poderia afetar somente
um sistema de informação, agora afeta inúmeros sistemas simul-
taneamente. A recuperação de um banco de dados que, anterior-
mente, poderia depender somente de uma iniciativa isolada de um
sistema – o qual, então, reprocessaria os dados atualizados desde
a última cópia de segurança feita – agora não mais é possível, pois
as transações de diversas aplicações passaram a alterar, incluir e
excluir dados concorrentemente no mesmo banco de dados.
Esse cenário cria, assim, um novo e complexo desafio: o de
assegurar a alta disponibilidade dos dados do banco de dados,
evitando que sejam corrompidos ou perdidos e recuperando, no
menor prazo possível, esse mesmo banco de dados, de modo que
o traz à situação de normalidade após a ocorrência de um evento
de falha que comprometa esses dados.
Veremos, neste capítulo, quais são os elementos e recursos
que podem nos conduzir à superação desse desafio.
76 Banco de Dados II
•• falhas não catastróficas;
•• falhas catastróficas.
78 Banco de Dados II
Sem esse recurso, seria praticamente impossível recuperar o ban-
co de dados ao seu estado de logo antes do crash de disco, pois te-
ríamos que solicitar a cada usuário que realizasse de novo todas as
atualizações manualmente e, ainda pior, na mesma ordem que foram
executadas anteriormente. Os arquivos de log têm, então, os dados
para recriar esse cenário de atualizações na exata ordem em que fo-
ram executadas, podendo refazê-las.
input (A)
A
output (B)
B
B
80 Banco de Dados II
Essas páginas (ou blocos) são, por sua vez, mantidas temporaria-
mente em uma estrutura de memória principal (buffers), onde são
atualizadas antes de serem devolvidas para que sejam gravadas fisica-
mente em disco. Esse processo assegura que o acesso a uma mesma
página, quando solicitado por mais de um processo concorrente, possa
ser otimizado. Uma coleção de buffers que mantém páginas de dados
de um banco de dados é também referenciada como cache do banco de
dados. Essa área é gerenciada pelo sistema gerenciador de banco de
dados (SGBD) para otimizar sua operação.
OksiOksi/Shutterstock
sobre esse banco de
dados, verificando qual Para refazer automaticamente uma atualização (REDO).
é o impacto dessas
operações sobre os
arquivos de log. Poderá
ver também as estruturas
de log criadas e como Caso tenhamos a necessidade de usar o arquivo de logs para refa-
elas se expandem após a zer atualizações perdidas, devemos ter uma cópia de cada página de
execução das transações.
dados atualizada, com sua imagem após a atualização.
Disponível em: https://
www.youtube.com/
OksiOksi/Shutterstock
watch?v=tA20qqsykKc. Acesso em:
10 dez. 2020.
Para desfazer automaticamente uma atualização (UNDO).
OksiOksi/Shutterstock
Para algum algoritmo de UNDO/REDO.
82 Banco de Dados II
Podemos ver que os sistemas gerenciadores de bancos de dados
têm um importante papel no processo de recuperação de falhas que
venham a ocorrer e possam comprometer o conteúdo de um banco de
dados, bem como que diversas estruturas de recuperação podem ser
requeridas. Felizmente, toda essa complexidade é transferida para o
SGBD e libera os programadores de seu controle e execução.
arquivo de log
transação-1
transação-2
transação-N
checkpoint-A1
transação N+1
transação N+2
checkpoint-2
84 Banco de Dados II
•• Retomada das transações suspensas
Até esse ponto, vimos estruturas gerais que são utilizadas por
diversas técnicas de recuperação de dados em um banco de dados.
A seguir, veremos algumas das técnicas utilizadas, suas características
e os modos de operação.
Essa técnica tem como vantagem principal o fato de que, como ne-
nhum dado atualizado por uma transação será efetivamente gravado
em disco, caso tenhamos alguma ocorrência de falha, poderemos sim-
plesmente retomar a execução da mesma transação sem que qualquer
intervenção sobre o banco de dados seja necessária.
Sob o ponto de vista prático, podemos dizer que essa técnica não
exige recuperação do banco de dados, uma vez que não teve qual-
quer risco de ter comprometido a estabilidade do mesmo, visto que
não atingiu seu ponto de confirmação (commit). Por outro lado, caso
tenha sido realizado o commit, o banco de dados já estaria com sua
estabilidade assegurada.
86 Banco de Dados II
•• UNDO / NO REDO Leitura
No texto Visão geral da
Caso a técnica de recuperação garanta que todas as atualizações restauração e recuperação
sejam realizadas e gravadas em disco, antes da transação se efetivar, e (SQL Server), você poderá
conhecer os recursos de
encontrarmos então transações já efetivadas na lista de recuperação, restauração e recupe-
essas não precisarão de nenhum procedimento de REDO, pois significa ração que o Microsoft
SQL-Server disponibiliza,
que os dados estão todos preservados. tendo assim uma visão
prática de como um pro-
•• UNDO / REDO duto comercial aborda as
questões conceituais aqui
Se a técnica de recuperação permitir que uma transação seja efeti- apresentadas.
vada, mas que exista um atraso na gravação em disco dos seus dados, Disponível em: https://docs.
poderemos encontrar transações a serem recuperadas (visto que al- microsoft.com/pt-br/sql/relational-
databases/backup-restore/
guns dados ainda não estavam gravados) mediante um processo de restore-and-recovery-overview-
UNDO e REDO. Ou seja, a transação terá que ser refeita, porém antes sql-server?view=sql-server-ver15.
Acesso em: 10 dez. 2020.
aquelas atualizações já gravadas em disco precisarão ser desfeitas. Ao
desfazer as gravações parcialmente completadas, a transação estará
pronta para ser refeita em toda a sua extensão com reatualização de
todos os seus dados.
Transação global
BD 1 BD 2 BD 3
88 Banco de Dados II
•• o mecanismo de coordenação de transações global aguarda
que todos os mecanismos locais estejam prontos para a con-
firmação global – enquanto pelo menos um dos nós locais
não tenha finalizado suas tarefas locais, todos os demais per-
manecem aguardando;
•• após ter a certeza de que todos os nós locais estão prontos
para a confirmação, o mecanismo de coordenação global en-
via uma ordem para que os mecanismos locais executem os
procedimentos de preparação da confirmação local (que sig-
nifica, nesse caso, produzir logs, atualizar logs em disco, fazer
checkpoints etc.);
•• o mecanismo de coordenação global aguarda, então, que
cada nó local termine de produzir os mecanismos de recu-
peração local; porém, caso o mecanismo global não receba
a confirmação de um dos nós informando que finalizou suas
tarefas de preparação (timeout), ou receba a informação de
que houve alguma falha na execução dessas tarefas, toda a
transação será invalidada;
•• recebendo a confirmação positiva de finalização de prepara-
ção de todos os nós locais, o coordenador global envia um pe-
dido para cada nó local para que eles finalizem o processo de
confirmação. Nesse ponto, o coordenador global sabe que to-
dos os nós locais estão prontos para finalizar suas transações
e que só resta a confirmação da transação local em cada nó. Leitura
Este material apresenta
Esse mecanismo de confirmação em duas fases assegura que detalhes sobre a arqui-
ou todos os nós locais confirmem sua porção da transação global tetura de um banco de
dados distribuído e de
ou, se houver alguma falha em um nó local, todas as demais tran- como os protocolos de
sações locais sejam também desfeitas, voltando à lista de reexecu- controle de transação são
implementados nesse
ção, já discutida anteriormente. Isso poderá garantir que o objetivo ambiente para permitir o
principal de um sistema distribuído seja o de ele parecer ao usuá- controle descentralizado
de transações.
rio um sistema centralizado.
Disponível em: https://imasters.
Concluindo, podemos destacar o importante papel deste com- com.br/banco-de-dados/o-que-
e-banco-de-dados-distribuido.
ponente fundamental de um sistema gerenciador de banco de da-
Acesso em: 10 dez. 2020.
dos: o subsistema de recuperação.
Programadores
de aplicação
PROGRAMAS DE Usuários
Equipe DBA Usuários casuais parametrizáveis
APLICAÇÃO
BANCO DE DADOS
ARMAZENADO
90 Banco de Dados II
Isso, mais uma vez, reforça a importância da escolha de um siste-
ma gerenciador de banco de dados que possa atender às demandas
de recursos exigidos pelos sistemas de informação, seja pela capaci-
dade de operar em modo distribuído, seja por oferecer recursos para
alta disponibilidade de dados ou qualquer outra funcionalidade es-
sencial à entrega de resultados aos usuários finais.
CONSIDERAÇÕES FINAIS
As diversas técnicas de recuperação de dados implementadas e
executadas, de modo automático, pelos sistemas gerenciadores de
bancos de dados podem, efetivamente, significar um importante ele-
mento de garantia da integridade física e lógica de um banco de dados.
Imaginar que todo esse complexo mecanismo precisaria ser man-
tido e gerenciado por cada um dos programadores ao criarem seus
próprios programas seria impraticável. As chances de que uma falha
viesse a ocorrer e não tivesse o devido tratamento seria grande, com-
prometendo a integridade de todo um banco de dados. Felizmente,
podemos hoje contar com mecanismos do próprio SGBD para execu-
tar essa importante tarefa.
ATIVIDADES
1. Justifique por que o conhecimento dos recursos de recuperação de
falhas em um banco de dados é essencial para um administrador
de banco de dados.
92 Banco de Dados II
5
Data warehousing
e data mining
Muitos dos temas relacionados ao projeto e à construção de
bancos de dados estão focados, frequentemente, em uma aborda-
gem orientada para os sistemas de informações, cuja finalidade é
automatizar os processos operacionais dentro das organizações.
Quando falamos sobre modelagem, normalização e comparti-
lhamento de dados, a primeira ideia que nos vem à mente é aquela
associada aos processos do dia a dia de uma organização, em que
algum dado é capturado, transformado, armazenado e comparti-
lhado com outros processos. Porém, no cotidiano das organizações,
outra necessidade acabou por surgir, tendo que ser endereçada e
tratada por meio das tecnologias da informação – essa necessidade
é a produção de informações gerenciais para a tomada de decisão.
Se antes a automação dos processos operacionais era o bas-
tante para que uma empresa aperfeiçoasse seus resultados inter-
nos e externos, agora essa realidade mudou e isso já não é mais
suficiente. Atualmente, para se destacar no mercado, uma orga-
nização precisa tomar as melhores decisões para que seus pro-
cessos sejam executados com as estratégias sugeridas pelas áreas
gerenciais. Mais importante do que fazer rápido, ou em maior
quantidade, é fazer bem-feito.
Por isso, surge uma nova área de conhecimento associada à
construção e disponibilização de estruturas de bancos de da-
dos. Essa área se dedica a transformar os dados operacionais
em dados para apoio à decisão. Neste capítulo, vamos explorar
os conceitos, as arquiteturas e a aplicabilidade desses novos co-
nhecimentos disponíveis.
94 Banco de Dados II
Se em nosso banco de dados tínhamos todos os dados relativos às
vendas de produtos de nossa empresa no último ano, teríamos agora que
ter a capacidade de saber quanto cada linha de produto vendeu a cada
mês, tanto em quantidade de vendas quanto em valor total vendido.
O fato de termos, por exemplo, que ler diariamente (ou até de hora
em hora) uma base de dados com mais de um milhão de notas fiscais
emitidas para extrair dados sumarizados tinha dois impactos negati-
vos. Primeiro, o tempo gasto na leitura de todos esses dados; segun-
do, o impacto sobre o desempenho do banco de dados operacional
enquanto essa leitura era executada. Novas notas ficais poderiam ter
maior tempo para serem geradas se, quando estivessem sendo produ-
96 Banco de Dados II
geração on-line de informações analíticas por meio de estruturas de Vídeo
bancos de dados especialmente construídas para esse fim. No vídeo Quais perguntas
o BI responde?, publicado
Figura 1 por Rafael Piton, será
Sistemas OLTP x OLAP possível compreender o
papel dos sistemas de
business intelligence nas
dados dados organizações. Quais são
indicadores as respostas que eles
operacionais OLTP sumarizados OLAP
procuram responder?
Que finalidade têm? Você
poderá ver exemplos e
entender se realmente
Fonte: Elaborada pelo autor. vale a pena explorar essa
Essa abordagem de utilização de dados sumarizados para apoio à nova abordagem.
decisão deu origem a vários novos termos e denominações de tecnolo- Disponível em: https://www.
youtube.com/watch?v=LSRlpl2iolY.
gias no mercado de banco de dados e de sistemas de informação. Um Acesso em: 5 jan. 2021.
dos termos frequentemente associados a esse tipo de sistema é o BI,
ou business intelligence.
98 Banco de Dados II
aquelas que diversificam mais seus investimentos. Talvez esse não
seja originalmente um objetivo da nossa busca, porém ele pode ser
derivado dos dados analisados.
utilizado é a “desnormalização” dos dados obtidos em um banco de Neste texto, você poderá
conhecer detalhes sobre
dados. Códigos, siglas e outras representações codificadas de alguns as características de
dos dados obtidos em um banco de dados podem ser modificados um data warehouse, o
modo como é concebido
para apresentar dados textuais, como descritivos, nomes etc. Essa e implementado e suas
conversão facilitará aos sistemas OLAP o processamento e a apresen- principais diferenças em
relação aos ambientes
tação dos dados em suas plataformas. de bancos de dados
convencionais, bem como
A terceira etapa, que é a carga, será executada de modo síncrono ver conceitos sobre data
com a estratégia de extração dos dados. Sendo assim, se a extração marts e data lakes.
for feita de modo diferencial, a carga também utilizará um processo Disponível em: https://www.
oracle.com/br/database/
diferencial; já se a extração for integral, então a carga deverá utilizar what-is-a-data-warehouse/.
um processo igualmente integral. Acesso em: 5 jan. 2021.
5.2 Arquitetura
Vídeo Dentre as estruturas de dados que poderemos encontrar associa-
das à área de business intelligence, podemos ter: bancos de dados rela-
cionais convencionais, estruturas híbridas relacionais, vetores e cubos
multidimensionais, entre outras. Cada uma delas pode ser orientada
a diferentes finalidades e produzir com maior ou menor facilidade as
informações de apoio à decisão necessárias.
origem de dados 1
carregadores
de dados
origem de dados 2
SGBD ferramentas de
consulta e análise
depósito de dados
origem de dados n
info_item loja
id_item id_loja
vendas
nomeitem cidade
id_item
cor estado
id_loja
tamanho país
id_cliente
categoria cliente
data
info_data número id_cliente
preço nome
data
rua
mês
cidade
trimestre
estado
ano
cod_postal
país
Fonte: Silberschatz, 2012, p. 496.
2 5 3 1 11
4 7 6 12 29
2 8 5 7 22
16
8 20 14 20 62 4
escura
34 18
9
pastel 35 10 7 2 54
21 45
cor
branca 10 8 28 5 48 42 pequeno
77 médio
grande
tudo 53 35 40 27 164
ho
an
tudo
m
ta
5.3 Aplicabilidade
Vídeo Para que possamos efetivamente utilizar as tecnologias de business
intelligence a nosso favor, deveremos estabelecer um processo de mo-
delagem e projeto de nosso data warehouse. Ele pode, em algumas
etapas, ser dependente das ferramentas escolhidas para esse fim,
mas, de modo geral, deve seguir uma metodologia que se assemelhe
à construção de um sistema de informações. Dentre as etapas que en-
contramos nesse processo de construção de um sistema OLAP, temos:
1 levantamento de requisitos;
ATIVIDADES
1. Explique por que os sistemas OLAP não poderiam existir sem que os
sistemas OLTP tivessem sido criados.
REFERÊNCIAS
DATE, C. J. Introdução a sistemas de banco de dados. São Paulo: Elsevier, 2004.
ELMASRI, R., NAVATHE, S. Sistemas de banco de dados. 4. ed. São Paulo: Pearson Addison
Wesley, 2006.
SILBERSCHATZ, A., KORTH; H. F., SUDARSHAN, S. Sistema de banco de dados. 6. ed. Rio de
Janeiro: Elsevier, 2012.
3 Gerenciamento de transações
1. Porque, se um conjunto de dados compartilhado entre diversos
processos sofrer qualquer atualização enquanto esteja sendo
acessado por múltiplas transações, podemos acabar por entregar
dados não consistentes para todos os processos que os acessam.
Assim, podem ocorrer leituras sujas, leituras não repetitivas e outros
problemas similares.
Gabarito 111
recurso Y que está sendo usado pela transação A. Assim, a transação
A ficará indefinidamente esperando pela liberação do recurso X
enquanto a transação B ficará indefinidamente aguardando pelo
recurso Y. Para finalizar esse impasse, o sistema gerenciador de banco
de dados irá cancelar a transação A, a qual gerou o pedido final que
originou o deadlock, permitindo que a transação B prossiga até seu
final e, então, reiniciando a transação A.
Gabarito 113
BANCO DE DADOS II
Paulo Sérgio Cougo