Escolar Documentos
Profissional Documentos
Cultura Documentos
E BI
Administração de Banco de Dados
SISTEMA DE ENSINO
Livro Eletrônico
BANCO DE DADOS E BI
Administração de Banco de Dados
Sumário
Luis Octavio Lima
Apresentação. . .................................................................................................................................. 3
Administração de Banco de Dados.. ............................................................................................. 4
1. Conceitos sobre Administração de Banco de Dados............................................................ 4
2. Desempenho em Banco de Dados............................................................................................ 6
2.1. Tuning: Conceitos...................................................................................................................... 8
2.2. Ajustes de Performance – Método Proativo.. .................................................................... 11
2.3. Ajustes em Comandos SQL................................................................................................... 14
2.4. Uso de Índices para Melhorar Performance.. ....................................................................21
3. Segurança em Banco de Dados.. ............................................................................................. 25
3.1. Mecanismos de Segurança em Banco de Dados.............................................................. 25
3.2. Formas de Ataque em Banco de Dados..............................................................................31
4. Políticas de Backup e Recuperação de Dados. . ................................................................... 34
Resumo............................................................................................................................................. 41
Mapa Mental................................................................................................................................... 50
Questões Comentadas em Aula...................................................................................................51
Questões de Concurso.................................................................................................................. 53
Gabarito............................................................................................................................................ 70
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 2 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Apresentação
Olá, tudo joinha com você?!
Nesta aula vamos conhecer diversas atividades em torno do universo da Administração de
Banco de Dados, passando pela otimização de performance, políticas de backup e recupera-
ção dados e segurança de dados.
Então, vem comigo!
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 3 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Em qualquer organização onde muitas pessoas utilizam os mesmos recursos, há uma necessidade
de um administrador principal para supervisionar e gerenciar tais recursos. Em um ambiente de
banco de dados, o recurso principal é o próprio banco de dados, e o recurso secundário é o SGBD
e os softwares relacionados. A administração desses recursos é de responsabilidade de um admi-
nistrador de banco de dados (DBA – database administrator). O DBA é responsável por autorizar o
acesso ao banco de dados, coordenar e monitorar seu uso e adquirir recursos de software e har-
dware conforme a necessidade. Também é responsável por problemas como falhas na segurança e
demora no tempo de resposta do sistema. Em grandes organizações, ele é auxiliado por uma equipe
que executa essas funções
www.grancursosonline.com.br 4 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Para o exercício das suas atividades, o Administrador de Banco de Dados precisa ter co-
nhecimento sobre outros aspectos tecnológicos que não são parte do SGDB em si, mas onde
este SGBD está inserido, ou seja, em qual sistema operacional, rede, entre outros aspectos.
Vejamos abaixo as principais áreas de conhecimento que precisam estar claras para um DBA:
• Arquitetura de computadores: Ter conhecimento sobre em qual ambiente de hardware
e software, o SGBD está inserido para obtenção de melhor desempenho e maior segu-
rança;
• Sistemas operacionais: Qual o sistema operacional utilizado pela organização? E pela
TI desta organização? Ter estas respostas é de suma importância, principalmente em
relação ao sistema operacional utilizado pelo SGBD, bem como os conceitos sobre pro-
cessos, gerência de memória e sistema de arquivos, indispensáveis para a resolução de
problemas e definição de procedimentos de recuperação;
• Redes: Ter conhecimento sobre a camadas de rede e aplicação, principalmente a de
rede, pois esse nível é de grande importância para monitoração do desempenho;
• Projeto conceitual e lógico de bancos de dados: As atividades do DBA, apesar de não
estarem tão envolvidas diretamente com o negócio, é importante que haja capacidade
de interpretação dos modelos de dados que serão criados e armazenados na base de
dados, bem como conhecer as implicações que estes modelos podem causar no de-
sempenho de um SGBD.
• Arquiteturas de SGBDs: Conhecer a “entranhas” do SGBD é outra grande fonte de conhe-
cimento necessária para melhor desenvoltura do DBA, pois cada SBGD apresenta uma
arquitetura com certas particularidades do fabricante e conhecer estas particularidades
são de suma importância, principalmente nos casos de suporte, melhorias de perfor-
mance e aspectos de segurança.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 5 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
De forma resumida, temos de um lado um DBA cujo foco é na infraestrutura de SGBD e tudo
que estiver em seu derredor (sistemas operacionais, redes, arquiteturas), já o AD tem foco nos
dados, onde estes dados estão aderentes às expectativas do negócio.
Nos próximos tópicos, nosso objetivo será tratar de atividades e técnicas relativas ao
DBA, vamos começar pelos aspectos de Tuning, que tratam do desempenho e otimizações de
consultas.
www.grancursosonline.com.br 6 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
problema não poderá ser corrigido sem alterar a arquitetura da aplicação. Por exemplo, uma
aplicação pode ser projetada para reutilizar pesadamente as funções para todos os acessos
aos dados – para que funções chamem outras funções, as quais chamam funções adicionais,
mesmo para executar as ações mais simples de banco de dados. Como resultado, uma única
chamada de banco de dados pode resultar em dezenas de milhares de chamadas de funções
e acessos ao banco de dados. Uma aplicação desse tipo em geral não irá escalar de forma
adequada; quanto mais usuários forem adicionados ao sistema, a sobrecarga da CPU pelo nú-
mero de execuções por usuário diminuirá o desempenho para os usuários individuais. O ajuste
das instruções SQL individuais executadas como parte dessa aplicação pode produzir um
benefício pequeno no desempenho; as próprias instruções talvez já estejam bem ajustadas.
Certamente, é o grande número de execuções que leva ao problema de desempenho.
As melhores práticas a seguir podem parecer extremamente simples, mas elas são viola-
das repetidamente em aplicações de banco de dados, e essas violações resultam diretamente
em problemas de desempenho. Sempre existem exceções às regras – a próxima alteração
feita ao seu software ou ambiente talvez permita que você viole as regras sem afetar o desem-
penho. No entanto, geralmente, o cumprimento dessas regras permitirá que você atenda aos
requisitos de desempenho à medida que o uso da aplicação aumenta.
O ajuste de desempenho é uma parte do ciclo de vida de cada aplicação de banco de da-
dos, e quanto mais cedo o tema desempenho for tratado (preferencialmente antes de entrar
em produção), é mais provável que resolvido com êxito. A maioria dos problemas de desempe-
nho não são sintomas isolados, mas é o resultado do projeto do sistema. Um processo de tu-
ning deve, portanto, focar na identificação e na correção de falhas subjacentes que resultam
em um desempenho inaceitável.
O ajuste é a etapa final de um processo de quatro etapas: planejamento, implementação e
monitoramento devem precedê-lo.
Em suma, é possível verificar que o DBA participará deste processo e tendo que conhecer,
não somente a real fonte de degradação de performance, ou seja, terá que conhecer sobre
a infraestrutura de TI da organização, porém necessitará da participação de outros colegas
técnicos das outras áreas da infraestrutura, como os especialistas em redes, sistema opera-
cional, dentre outros, com a finalidade de junto com o DBA realizar uma análise mais apurada
do problema de desempenho do banco de dados, tentando identificar os “gargalos existentes”.
Veja abaixo na figura um exemplo de infraestrutura de TI para uma aplicação na web, per-
ceba a quantidade de recursos existentes (possível gargalo) entre o computador que acessa o
sistema web (via browser, por exemplo) e a base de dados.
router router
hub
computer hub load balancer database
application server
router router webserver farm server
firewall
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 7 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Para responder a esta pergunta vamos fazer uma analogia em termos de oferta e deman-
da. Os usuários demandam informações do banco de dados. O SGBD fornece informação para
aqueles que o pedem. A taxa entre os pedidos que o SGBD atende e a demanda para infor-
mação pode ser denominado performance de banco de dados. Cinco fatores influenciam a
performance do banco de dados: workload, throughput, recursos, otimização e contenção.
• Workload (Cargas de Trabalho): são os pedidos do SGBD que definem a demanda. Ele é
o conjunto de transações online, jobs batch, pesquisas ad hoc, dentre outros, tem como
derivar um modelo capaz de mostrar, capturar e reproduzir um comportamento da carga
de trabalho e suas funcionalidades mais importantes.
− Formas de Workload:
Workload
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 8 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
tecnologia que irá afetar a arquitetura precisam ser consideradas. O workload deve
ser projetado tendo em mente que estes fatores são parte do cenário do mundo
real;
◦ Growth Based (Baseado no Crescimento): À medida que o negócio cresce, o sis-
tema exige mudanças na sua funcionalidade, desempenho e confiabilidade. Se o
sistema não é desenvolvido tendo em vista manter o crescimento, modificações
tornam-se mais caras e demoradas. Tendo então o conhecimento das perspecti-
vas de crescimento, um workload detalhado será projetado para verificar a perfor-
mance do sistema.
− Throughput: define a capacidade do computador de processar os dados. Ele é uma
composição de velocidade de I/O (entrada e saída), velocidade da CPU, capacidades
de paralelismo da máquina e a eficiência do sistema operacional e o software básico
envolvido.
O PULO DO GATO
Quanto maior a contenção, menor o throughput.
Performance de banco de dados então pode ser definida como otimização de recursos usados
para aumentar throughput e minimizar contenção, permitindo que o maior workload (carga de
trabalho) possível possa ser processado.
Não importa o quanto um SGBD é complexo e cheio de características, a coisa mais proble-
mática para os que o utilizam é a sua performance. Se houver problema de performance, o uso
da aplicação declinará e as supostas vantagens competitivas disponibilizadas pela aplicação
não ocorrerão. O planejamento para o gerenciamento da performance do banco de dados é um
componente crucial de qualquer implementação de aplicação. Sem um plano para monitorar
performance e ajustar o banco de dados, a degradação da performance fatalmente ocorrerá.
Um plano completo de gerenciamento de performance incluirá ferramentas para ajudar a mo-
nitorar a performance da aplicação e o ajuste do SGBD.
Por tuning da base de dados, poderíamos entender como uma customização do sistema sob
medida para que a performance atenda melhor as suas necessidades.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 9 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Segundo Date:
A linha divisória entre o projeto físico de um banco de dados e sua sintonia é muito pequena. As
mesmas decisões de projeto são revisadas na fase de sintonia (ou tuning), que é um ajuste conti-
nuado do projeto. As informações de entrada para o processo de sintonização incluem estatísticas
relacionadas a diversos fatores. Em particular um SGBD pode coletar internamente as seguintes
estatísticas:
tamanho de tabelas individuais,
número de valores distintos em uma coluna,
número de vezes que uma consulta ou transação em particular é submetida/executada em um in-
tervalo de tempo. Os tempos necessários para as diferentes fases de processamento de consultas.
Sobre esta questão, não tem muito o que falar pois ela apresenta os 5 fatores que influenciam
a performance de um banco de dados e que podem, a depender do seu desequilíbrio, necessi-
tar de otimização de desempenho via recursos de tuning. A questão está certa.
Certo.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 10 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 11 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Para obter a performance ideal, você pode ter que adaptar regras de negócio. Isto se refere
a uma análise do sistema inteiro em mais alto nível. Deste modo, os planejadores garantem
que os requisitos de performance do sistema correspondam diretamente às necessidades
concretas do negócio. Problemas de performance encontrados pelo DBA podem ser causados
por problemas no projeto e implementação ou regras de negócio inapropriadas.
Na fase de projeto de base de dados, você deve determinar quais dados são necessários
pelas suas aplicações. Você precisa considerar quais relações são importantes e quais são
seus atributos. Finalmente, você precisa estruturar a informação para melhor atingir suas me-
tas de performance. O processo de projeto da base de dados geralmente desce ao estágio de
normalização quando os dados são analisados para eliminar a redundância de dados. Com a
exceção das chaves primárias, qualquer outro dado deveria ser armazenado somente uma
vez na sua base.
Depois de normalizar os dados, entretanto, você pode precisar desnormalizar por razões
de performance. Deve-se evitar chegar até terceira forma normal, pois a aderência muito rígida
para projetos de tabelas relacionais trarão performance ruim. O problema é que estes projetos
refletem os modos em que os dados de uma aplicação estão relacionados com outros dados.
Eles não refletem os caminhos de acessos normais que os usuários empregarão para acessar
estes dados. Uma vez que as necessidades de acesso dos usuários evoluem, o projeto de
tabelas relacionais se tornará difícil de trabalhar para pesquisas muito grandes. Um problema
ocorrerá com pesquisas que retornam um número muito grande de colunas. Estas colunas
são normalmente espalhadas entre várias tabelas, forçando a junção de tabelas durante a
pesquisa. Se uma das tabelas da junção for grande, então a performance de toda a pesquisa
poderá sofrer. Há várias formas de desnormalização de dados, por exemplo, criando pequenas
tabelas sumarizadas para tabelas grandes e estáticas. Se os usuários utilizam, com frequên-
cia, um dado derivado que não sofre muitas modificações, então faz sentido armazenar perio-
dicamente o dado no formato em que os usuários utilizarão.
www.grancursosonline.com.br 12 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Depois da aplicação ter sido projetada, você pode planejar a estrutura lógica da base de
dados. Um ajuste fino do projeto de índices, para garantir que não ocorra falta ou exagero de
índices. Nesta fase você pode criar índices adicionais além da chave primária e estrangeira.
Lembrando que excessos de índice causam queda de performance nas operações de inclusão,
atualização e exclusão.
Antes de ajustar o SGBD, esteja certo de que sua aplicação utiliza todas as vantagens do
SQL e das características do gerenciador para o processamento da aplicação. Utilize o otimi-
zador do SGBD e o controle de “locks”. Entender o mecanismo de processamento da pesquisa
no SGBD é importante para escrever comandos SQL efetivos.
Em bases de dados relacionais, a localização física dos dados não é tão importante como
seu lugar lógico dentro do projeto da aplicação. Entretanto, a base de dados tem que encontrar
os dados em ordem para retorná-lo para o usuário realizar a pesquisa. A chave para afinar o
SQL é minimizar o caminho de pesquisa que a base de dados utiliza para achar o dado. Garanta
que exista acesso aos dados de modo eficiente. Considere o uso de “clusters”, hash “clusters”,
índices B-tree, índices bitmap. Isto pode significar que você precise analisar novamente seu
projeto depois de já ter sido construído.
Alocação apropriada de recursos de memória para as estruturas do SGBD pode trazer efei-
tos positivos na performance. Alocação apropriada de recursos de memória melhoram a per-
formance do cache, reduz o “parsing” de comandos SQL e reduz a paginação.
www.grancursosonline.com.br 13 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 14 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
O que a banca deseja realmente saber é se você tem noção da nocividade do uso de índices
em demasia em tabelas que sofrem muitos acessos, podendo estes acessos serem de atuali-
zação da tabela e não de consulta. Quando ocorrem muitas atualizações, o excesso de índices
pode acarretar queda de performance.
O erro da questão está em afirmar que a criação de índices tornará mais eficiente a realização
de operações na tabela, sem especificar quais são estas operações.
Errado.
Depende!
Se faz necessário conhecer quais são os índices que estão causando o baixo desempenho,
pois simplesmente criar ou redefinir todos os índices não dará garantias de melhor acesso
as tabelas.
Errado.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 15 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Vamos dar continuidade em nossa aula, ainda falando sobre o que pode ser feito no univer-
so do SQL para melhorar a performance nos bancos de dados.
A maioria dos problemas de rendimentos não estão unicamente relacionados à arquitetura
física do servidor. Na maioria das vezes eles estão na forma como as consultas são desenvol-
vidas em linguagem SQL. Assim, sua análise para posterior ajuste é essencial.
Apenas para ajudar você a se situar em relação a que ponto estamos em um SGBD, trago
abaixo uma figura onde o foco agora é na área circulada na figura, ou seja, no Processamento
da Consulta.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 16 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
É importante conhecer as etapas que seguem desde o código escrito em SQL na aplicação
ou chamada SQL, até ele ser de fato executado. Em uma visão de mais alto nível, o processa-
mento do comando em SQL segue as seguintes etapas:
Estas etapas básicas se aplicam tanto para uma instrução select, como também em ou-
tros comandos SQL como insert, update e delete.O processo de identificação dessas linhas
é semelhante ao procedimento utilizado para identificar as linhas de origem que colaboram
para o conjunto de resultados de uma instrução select. As instruções update e insert podem
conter instruções select, incorporadas, que fornecem os valores de dados a serem atualizados
ou inseridos.
Vejamos abaixo uma imagem com a representação do fluxo de realização de uma consulta
em SQL, até a obtenção do seu resultado.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 17 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Um ponto importante que quero comentar e que pode causar alguma dúvida da sua parte,
é quanto ao uso da Álgebra Relacional, neste contexto da consulta. O que ocorre nesta forma
intermediária de consulta é a transformação da expressão da consulta solicitada em uma ex-
pressão mais eficiente para ser executada, aplicando regras de heurística.
As etapas acima representam um caminho trival para execução de comando SQL. Duas
figuras ilustres que fazem parte destas etapas são o Otimizador SQL e o Plano de Execução.
O Otimizador SQL avalia uma instrução SQL e indica qual o melhor método para executar
a instrução com base no código SQL escrito e observando a existência de índices no banco de
dados, ou seja, com base nos atributos, tabelas e condições descritas no comando SQL, será
escolhido o melhor índice disponível. Porém, vale salientar, este otimizador pode variar na sua
forma de avaliar e determinhar o método de acordo com o fabricante do SGBD.
Diversos autores abordam duas técnicas para otimização de consultas, vejamos:
• Otimização com base em regras de Heurística: envolvem a reordenação das operações
da álgebra relacional em uma árvore de consulta algébrica. Um exemplo de regra heu-
rística é aplicar as operações de seleção (redução de tuplas) e projeção (redução de co-
lunas) antes de aplicar operações binárias, como as de junção. Resumindo o exemplo:
Selecionar primeiro as linhas, depois as colunas e então aplicar o relacionamento entre
as tabelas envolvidas na consulta.
• Otimização baseada em custos: estimam sistematicamente o custo de estratégias de
execução diferentes e escolhem o plano de execução com o menor custo estimado.
Neste contexto, o custo está relacionado com:
− Custo de acesso ao dispositivo de armazenamento secundário, como leitura e escrita;
− Custo de armazenamento de arquivos temporários;
− Custo de processamento das operações algébricas da consulta;
− Custo de uso de memória referente ao número de buffers de memória necessários
para a execução da consulta;
− Custo de comunicação referente ao transporte da consulta e dos resultados pelos
componentes do SGBD.
Já o Plano de Execução (ou plano da consulta) tem relação com o melhor caminho a ser
escolhido para se chegar aos dados, sendo este caminho independente da tecnologia utiilzada
pelo fabricante do SGBD.
Para exemplificar, trago abaixo uma figura que representa, de forma geral, o fluxo de otimi-
zação de consultas SQL em um SGBD da fabricante Oracle:
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 18 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Usuário
Resultado
Analisador (Parser)
Plano de Consulta
Gerador
de Registros Executor de SQLs
Quando uma consulta é enviada por um usuário do banco de dados, o primeiro compo-
nente utilizado é o analisador gramatical, verificando a sintaxe e semântica do comando, afim
validar e detectar algum erro existente, o que irá interromper o processo, retornando para o
usuário uma mensagem de erro. Ao concluir seu trabalho, o analisador gramatical encaminha
o resultado para o otimizador. A escolha do otimizador depende da configuração realizada
pelo administrador de banco de dados.
O otimizador modifica a consulta de forma a melhorar seu desempenho e encaminha o
plano otimizado para o gerador de registros. Este componente será o responsável por gerar
o plano de execução do comando e encaminhá-lo para o executor de SQL gerar o resultado.
Vamos conhecer cada um destes componentes:
• Analisador gramatical: Analisa se a sintaxe e a semântica de um comando estão corre-
tas. Durante a análise sintáxica, o analisador gramatical verifica se os comandos foram
descritos da maneira correta, enquanto na análise semântica o analisador gramatical
confere se os objetos referenciados realmente existem no banco de dados. Este com-
ponente também identifica as visões (views) utilizadas nos comandos e as coloca em
blocos separados, que serão otimizados separadamente pelo transformador de consul-
tas;
• Otimizador: É o principal componente para a execução de um comando, sendo respon-
sável pela identificação da melhor forma de resolvê-lo. No caso da fabricante Oracle,
existem duas formas de aperfeiçoar os comandos: baseado nas regras de negócio
(RBO) e baseado no custo (CBO):
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 19 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
− RBO (Rule Based Optimizer): Esta forma de otimização considera as regras de ne-
gócio para escolher a forma de recuperar as informações do banco de dados. Para
melhorar o desempenho de uma consulta, o RBO verifica apenas uma maneira de
otimização. Ao encontrar a primeira forma aplicável, ele abandona o processo sem
verificar se outros mecanismos podem ser aplicados;
− CBO (Cost-Based Optimizer): Executa o comando de forma que consuma o mínimo
de recursos de processamento. Para isto, o servidor de banco de dados busca ma-
neiras alternativas para escrever o mesmo comando de forma que sua execução seja
um processo mais simples. Para tentar verificar a melhor forma de escrever um co-
mando, o otimizador utiliza as estatísticas e histogramas existentes para os objetos e
operadores utilizados no comando. Caso as estatísticas ou histogramas não estejam
disponíveis, o otimizador recorre a parâmetros previamente definidos para tentar che-
gar a uma solução melhor do que a apresentada;
• Gerador de registros: Recebe o plano otimizado do otimizador e gera o plano de execu-
ção, que é um conjunto de fontes de dados estruturados como uma árvore, onde cada
fonte de dados retorna um conjunto de registros;
• Executor de SQL: Componente que executa o plano de execução e produz o resultado
final. Cada registro gerado pelo gerador de registros é executado por este componente.
De forma resumida, existem 3 passos que podem ser adotados para o ajuste do
comando SQL:
• 1 – Descobrir qual o plano de execução está sendo gerado;
• 2 – Alterar o banco de dados ou até mesmo o SQL para gerar outro plano de execução;
• 3 – Analisar os planos de execução e escolher o melhor.
É possível que ajustes tenham que ser feitos pelo DBA no tocante às configurações, parame-
trizações, redefinições de índices no SGBD, com a finalidade de ganho de performance, porém
afirmar que esta é a maioria, é uma falácia, pois isso depende muito do contexto. As aplicações
quando desenvolvidas podem ter sido codificadas com operações em SQL, não abordando as
boas práticas, criando gargalos nas consultas por exemplo, o que vai exigir possíveis refatora-
ções destes códigos. A questão está errada.
Errado.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 20 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Entendi, Luis, mas, e se não existir índices definidos que ajudem em uma consulta espe-
cífica, o que ocorre?
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 21 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Para concluir este tópico, trago abaixo uma tabela com mais algumas considerações sobre
a melhor forma de elaborar comandos SQL, de tal forma que obtenha melhor performance.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 22 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 23 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
A questão na verdade deseja saber se você tem noção sobre o fato de que o uso de toda as
regras de normalização possam afetar a performance de determinadas operações no SGBD. É
fato comprovado de que apesar de garantir restrições de integridade referencial, a normalização
excessiva das tabelas, que geram novas tabelas relacionadas, podem degradar performance.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 24 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Diante deste contexto, a questão está certa, pois em inserções de dados de forma concorrente,
ao lidar com tabelas normalizadas, muitas tabelas precisarão ser persistidas e muitos índices
atualizados, podendo gerar lentidão nas operações.
Certo.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 25 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
grande banco de dados integrado precisa se uado por diversos usuários diferentes dentro da
mesma organização, como por exemplo, informações confidenciais e sensíveis para organiza-
ção e seus usuários. A maioria dos fabricantes de SGB incluem um subsistema de segurança
e autorização de banco de dados, com a finalidade de garantir a segurança de partes de um
banco de dados contra acesso não autorizado.
Neste contexto, os autores abordam em sua literatura dois tipos de mecanismos de se-
gurança em banco de dados: Mecanismos de Segurança Obrigatórios e os Mecanismos de
Segurança Discricionários. Vem comigo!
• Mecanismos de Segurança Obrigatórios: São usados para impor a segurança multinível
pela classificação de dados e usuários em várias classes (ou níveis) de segurança e
depois pela implementação da política de segurança apropriada da organização, não se
limitando apenas em conceder privilégios, mas em levar em consideração uma política
adicional de segurança através dos controles de acesso baseado em papéis e em nível
de linha. Vejamos abaixo.
− Controle de acesso baseado em papéis: Os privilégios e outras permissões são asso-
ciados a papéis organizacionais, em vez de usuários individuais. Tais usuários rece-
bem papéis apropriados;
− Controle de acesso em nível de linha: São regras sofisticadas, capazes de controlar o
acesso por linha de dados. Neste tipo de controle, cada linha recebe um rótulo, que é
usado para armazenar informações sobre a sensibilidade dos dados. Os rótulos são
usados para impedir que usuários não autorizados vejam ou alterem certos dados.
Um usuário com baixo nível de autorização tem acesso negado aos dados com nú-
mero de nível alto. Este tipo de controle também é chamado de controle multinível,
sendo o modelo mais conhecido chamado de modelo de Bell-LaPadula.
O modelo Bell-LaPadula classifica cada sujeito (usuário, conta, programa) e objeto (relação, tupla,
coluna, visão, operação) em uma das classificações de segurança TS(top secret), S(secret), C(con-
fidencial) e U(unclassified), onde TS >= S >= C >= U...
Vamos nos referir à autorização (classificação) de um sujeito S como classe (S) e à classificação
de um objeto O como classe (O). Duas restrições são impostas no acesso aos dados com base nas
classificações de sujeito/objeto:
1. Um sujeito S não tem permissão de acesso de leitura a um objeto O a menos que a classe(S) >=
classe(O). Isso é conhecido por propriedade de segurança simples.
2. Um sujeito S não tem permissão de escrita sobre um objeto O a menos que a classe(S) <= clas-
se(O). Isso é conhecido como propriedade estrela.
A primeira restrição é intuitiva e impõe a regra óbvia de que nenhum sujeito pode ler um objeto
cuja classificação de segurança é maior do que a autorização de segurança do sujeito. A segunda
restrição é menos intuitiva. Ela proíbe um sujeito de gravar um objeto em uma classificação de se-
gurança inferior do que a autorização de segurança do sujeito. A violação dessa regra permitiria que
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 26 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
a informação fluísse de classificações mais altas para mais baixas, o que viola um princípio básico
da segurança multinível...
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 27 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Vale salientar que os privilégios listados acima são em nível de conta. Estes privilégios são
implementados nos SGBDs.
Já os privilégios de segundo nível, se aplicam no nível de tabela(relações), sendo estas
tabelas constates na base de dados ou visões que utilizam estas tabelas. Neste tipo de con-
trole, quando uma tabela é criada, ela recebe uma conta de proprietário(owner), e o proprietário
desta tabela recebe todos os privilégios, por padrão, para atuar nesta tabela.
Neste contexto, o DBA, irá conceder privilégios para conta do usuário proprietário, para
cada tabela. Abaixo eu listo os três principais tipos de privilégio que podem ser concedidos
para uma tabela T, por exemplo:
Um detalhe que precisar ser levado em consideração e pode ser usado como “peguinha”
em questões de prova, é o fato de que para criar uma VIEW (visão) a conta precisa ter privilé-
gios de SELECT nas tabelas envolvidas na criação da VIEW, caso contrário, não será possível
criar a VIEW.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 28 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Antes partir para alguns exemplos de comandos para conceder (GRANT) e revogar (RE-
VOKE) privilégios, gostaria de falar sobre um ponto importante: A propagação de privilégios
usando o GRANT OPTION.
Imagine na possibilidade de um proprietário(owner) P1 de uma tabela T1 conceder um
privilégio para uma conta C2. Este privilégio pode ser dado para C2, usando ou não o GRANT
OPTION, porém se usar o GRANT OPTION para C2, quem possuir esta conta poderá conceder
privilégios de T1 para outra conta Cn e assim propagar os privilégios. Apesar de ser um recur-
so que possibilita o ganho de tempo para passagem de privilégios, deve ser feito de forma
controlada.
Agora, vejamos uma série de exemplos na concessão(GRANT) e revogação(REVOKE) de
privilégios.
Exemplo: imagine que um DBA, para melhor administração de um SGBD, crie 4 contas: LUIS,
MARIA, MARCIA e ANDRE. Sendo que apenas LUIS pode criar tabelas(relações), parai isso
será então utilizado o seguinte comando:
CREATE SCHEMA ESQUEMABD AUTHORIZATION LUIS.
Este comando cria um esquema com nome ESQUEMABD, dando autorização ao para o usuário
LUIS de criar tabelas neste esquema.
Imagine que o usuário LUIS criou duas tabelas: FUNCIONARIO e DEPARTAMENTO.
Como a conta LUIS tem privilégios de proprietário(owner), o usuário desta conta pode conce-
der privilégios para outras contas, nas tabelas criadas.
O usuário LUIS, agora, concederá privilégios para inserir e excluir dados nestas tabelas, para a
conta MARIA.
GRANT INSERT, DELETE ON FUNCIONARIO, DEPARTAMENTO TO MARIA.
Neste caso foi concedido os privilégios, porém sem direito de propagação, porque MARIA não
possui permissão para GRANT OPTION, já LUIS por padrão tem.
Agora, imagine que LUIS conceda para MARCIA o privilégio de SELECT e ainda a possiblidade
de propagar este comando.
GRANT SELECT ON FUNCIONARIO, DEPARTAMENTO TO MARCIA WITH GRANT OPTION.
Agora, MARCIA pode conceder privilégios de SELECT para outros usuários. Imagine que irá
conceder para o usuário ANDRE a permissão de SELECT apenas para tabela FUNCIONARIO.
GRANT SELECT ON FUNCIONARIO TO ANDRE.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 29 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Perceba que ANDRE não recebeu GRANT OPTION, ou seja, não pode propagar o seu privilégio.
Imagine que LUIS decida revogar o privilégio de SELECT do usuário MARCIA na tabela FUNCIO-
NARIO.
REVOKE SELECT ON FUNCIONARIO TO MARCIA.
Neste momento haverá uma revogação em cascata, ou seja, como MARCIA concedeu para
ANDRE o privilégio de SELECT, ANDRE também terá seu privilégio revogado.
Por alguma razão, imagine agora que LUIS deseje conceder para MARCIA a capacidade de
SELECT em FUNCIONARIO, porém de forma limitada, com capacidade de propagação. Neste
caso, a limitação será de SELECT apenas nos atributos Nome, Data_nasc e Endereco, sendo
apenas dos registros que sejam do departamento de número 2 (Dnr=2). Neste caso, serão dois
passos: primeiro será criada uma visão (VIEW) com as limitações e depois concedido o privi-
légio de SELECT desta visão para MARCIA. Vejamos abaixo como ficou:
CREATE VIEW V_FUNCIONARIO AS
SELECT Nome, Data_nasc, Endereco
FROM FUNCIONARIO
WHERE Dnr=2;
GRANT SELECT ON V_FUNCIONARIO TO MARCIA WITH GRANT OPTION;
Agora, imagine que LUIS queria permitir que ANDRE possa atualizar apenas o atributo Salario
da tabela FUNCIONARIO.
GRANT UPDATE ON FUNCIONRIO(Salario) TO ANDRE;
Sei que o exemplo acima foi extenso, mas minha intenção era lhe mostrar na prática um
pequeno exemplo da possibilidade de conceder ou revogar permissões em tabelas e atributos,
como forma de restringir possíveis ações danosas ao banco de dados.
Outra forma de gerenciar este trabalho operacional de conceder ou revogar privilégios, é
criar papéis (roles) e atribuir estes papéis aos usuários. Nos papéis estarão definidas as regras
que se deseja para conceder privilégios e quem receber estes papéis, automaticamente tam-
bém recebem estes privilégios, isso facilita bastante a vida do DBA, vejamos alguns exemplos.
Imagine que LUIS crie um papel chamado ROLE_FUNCIONARIO e depois atribua a este papel a
possibilidade de SELECT e UPDATE na tabela FUNCIONARIO. Por fim este papel será atribuído
para o usuário MARCIA.
Vejamos como ficou:
CREATE ROLE ROLE_FUNCIONARIO;
GRANT SELECT, UPDATE ON FUNCIONARIO TO ROLE_FUNCIONARIO;
GRANT ROLE_FUNCIONARIO TO MARCIA;
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 30 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Ainda seguindo este exemplo acima, é possível também incrementar papéis(roles) com
outros papéis existentes, ou seja, atribuir um papel a outro papel, acumulando regras vejamos
abaixo um exemplo.
Imagine que LUIS queira criar um papel que permita SELECT e INSERT na tabela DEPENDEN-
TES e depois acumular este papel com o papel ROLE_FUNCIONARIO.
CREATE ROLE ROLE_DEPENDENTES;
GRANT SELECT, INSERT ON DEPENDENTES TO ROLE_DEPENDENTES;
GRANT ROLE_DEPENDENTES TO ROLE_FUNCIONARIO;
Neste exemplo, quem receber o papel ROLE_FUCIONARIO, terá privilégios acumulados.
O SQL Injection é uma técnica de ataque baseada na manipulação do código SQL, que é a
linguagem utilizada para troca de informações entre aplicativos e bancos de dados relacionais.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 31 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Nesta forma de ataque, o atacante injeta uma entrada de cadeia de caracteres pela aplica-
ção, que tenta mudar ou manipular a instrução SQL para o proveito do atacante, podendo pre-
judicar o banco de dados de várias maneiras, como na manipulação não autorizada do banco
de dados ou recuperação de dados confidenciais. Pode ainda causar negações de serviço.
Vejamos abaixo uma lista de tipos de ataques possíveis por via de injeção de SQL, segun-
do Navathe.
A proteção contra estes ataques de injeção de SQL pode ser obtida ao se utilizar certas
regras de programação a todos os procedimentos e funções acessíveis pela Web. O foco é ve-
rificar e validar o que está sendo solicitado em meio as consultas e chamadas, vejamos abaixo
algumas destas técnicas de proteção contra a injeção de SQL.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 32 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 33 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
d) Uma técnica eficiente para impedir um ataque de injeção de SQL é a utilização, ao máximo,
das funções de banco de dados, em virtude desses objetos não serem alvos de ataques devido
à dificuldade de se referenciá-los.
e) Manter um registro das operações realizadas no banco de dados é uma ação suficiente para
que os dados sejam protegidos contra acesso não autorizado.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 34 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
dados. Essa perfeita recuperação significa rápida recuperação de sistemas com perda mínima
ou nula dos dados. Embora proteger os dados das várias falhas de dados seja também outra
atribuição do DBA.
Ao desenvolver o plano para backup e restauração é necessário considerar o planejamen-
to de recuperação de desastre condizentes com requisitos específicos dos negócios e do
ambiente. Por exemplo, como aplicar uma recuperação em caso de várias falhas de dados em
três locais principais no ambiente? Quanto tempo será necessário para recuperar os dados
e por quanto tempo haverá indisponibilidade dos sistemas? Qual a quantidade tolerável para
perda de dados em sua organização?
Outra consideração importante no qual os administradores de banco de dados precisam
estar atentos está na natureza do armazenamento de dados. Afetando diretamente a utilidade,
bem como a eficiência do processo de backup e restauração.
Segundo Navathe:
Um utilitário de backup cria uma cópia de segurança do banco de dados, normalmente copiando o
banco de dados inteiro para fita ou outro meio de armazenamento em massa. A cópia backup pode
ser usada para restaurar o banco de dados no caso de uma falha catastrófica no disco. Os backups
incrementais também costumam ser utilizados, e registram apenas as mudanças ocorridas após o
backup anterior. O backup incremental é mais complexo, mas economiza espaço de armazenamen-
to.
• Backup Diferencial: Copia arquivos criados ou alterados desde o último backup normal
ou incremental. Não marca os arquivos que passaram por backup . Caso esteja usan-
do uma combinação de backup normal e diferencial, a restauração dos arquivos e pas-
tas exigirá o último backup normal e o último backup diferencial. Neste caso o tempo de
backup é mais longo, principalmente se os dados forem alterados com mais frequência,
porém facilita a restauração, porque o conjunto de backup está armazenado em apenas
algumas fitas ou discos;
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 35 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
• Backup Incremental: copia arquivos criados ou alterados desde o último backup nor-
mal ou incremental. Não marca os arquivos como arquivos que passaram por backup e
copia apenas os arquivos com atributo marcado, e desmarca tal atributo após o backup.
Caso esteja usando a combinação de backup normal e incremental, precisará do últi-
mo backup normal e de todos incrementais para então restaurar os dados. Neste caso
exige menos espaço de armazenamento, sendo o método mais rápido, porém a recupe-
ração dos arquivos podes ser mais lenta e difícil, pois a quantidade de mídias ou fitas,
onde os dados estão armazenados, pode ser muita;
• Backup Diário: copia todos os arquivos selecionados que forem alterados no dia de exe-
cução do backup diário. Os arquivos que sofreram backup não são marcados como tal
(ou seja, o atributo de arquivamento não é desmarcado);
• Cópia: cópia auxiliar (ou secundária) é uma cópia dos dados de backup. Os dados copia-
dos são uma imagem fiel da cópia de backup primária e podem ser usados como modo
de espera se os servidores, os dispositivos e a mídia de backup primário forem perdidos
ou destruídos.
www.grancursosonline.com.br 36 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Ainda falando de backup, gostaria de abordar dois conceitos importantes neste assunto e
que não podem passar batido, estou falando dos arquivos de log e Dump.
Os arquivos(ou registros) de log são arquivos que fazem os registros de todas as transa-
ções ocorridas, ou seja, a cada INSERT, UPDATE ou DELETE, que são concluídos, são armaze-
nados no registro de log, ou seja, toda trajetória do uso do SGBD nas transações.
Em casos em que se queira refazer qualquer efeito adverso em transações, é possível
ser feito através do refazimento das ações feitas no banco de dados, utilizando o log como
referência.
Se os logs registram todas as operações ocorridas nas na manutenção de dados nas ta-
belas do SGBD, é fácil de perceber que estes arquivos tendem a crescer de tamanho com o
passar do tempo. Quando log se referem aos registros que estão em utilização, este log é cha-
mado de log ativo. Quando este log ativo chega ao seu limite de tamanho, os SGBDs acionam
automaticamente o processo de arquivamento do log, chamado de log off-loading. Quando
isso é concluído, toda informação do log ativo é transferida para log off-line e log ativo é então
limpo para que possa receber novas entradas de informações.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 37 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Ok Luis, mas e se este arquivo chegar ao seu tamanho máximo e uma transação esteja
em andamento, o que ocorre?
Neste caso, onde a informação não pode ser gravada, ainda, o SGBD irá interromper as
modificações decorrentes da transação, irá fazer o arquivamento do log, depois limpar o log
ativo e então reestabelecer.
Geralmente esse processo de arquivamento é configurável no SGBD e o DBA costuma rea-
lizar esta atividade, podendo este processo ser feito manualmente em alguns casos.
Vale salientar, que este é um conceito geral, no entanto cada fabricante de SGBD tem seu
processo de arquivamento definido de modo diferente.
O Dump não deve ser confundido com backup, apesar de ser parecido. O Dump é uma
extração feita do banco de dados que pode incluir tanto os dados, quanto o seu esquema, po-
dendo ser feita de forma simples em arquivos texto.
Dando continuidade ao nosso tópico, vamos conhecer um pouco sobre alguns conceitos
cobrados pela banca sobre Técnicas de Recuperação de Banco de Dados:
Vamos ver o que o Navathe nos fala sobre isso:
A recuperação de falhas de transação em geral significa que o banco dados é restaurado ao estado
consistente mais recente antes do momento da falha. Para fazer isso, o sistema precisa manter in-
formações sobre as mudanças que foram aplicadas aos itens de dados pelas diversas transações.
Essa informação costuma ser mantida no log do sistema.
www.grancursosonline.com.br 38 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
desfeito, revertendo à transação realizada. No caso geral de atualização imediata, tanto UNDO
quanto REDO podem ser exigidos durante a recuperação. Isto é possível através do uso do
algoritmo UNDO/REDO, neste caso quando há necessidade, durante a recuperação, de se usar
as duas operações. Porém, quando existe a necessidade de atualizar todas as transações no
banco de dados em disco antes que a transação confirme, requer apenas UNDO, sendo este
algoritmo conhecido como UNDO/NO-REDO.
Percebemos que no uso das técnicas acima descritas, existe uma forte interação entre a
transação e os recursos de máquina, principalmente sobre o uso de logs de buffers, sobre este
ponto precisamos conhecer alguns recursos que vão demandar muito do Sistema Operacional
usado no equipamento onde o SGBD está instalado. Vamos conhecê-los:
• Caching (buffering) de blocos de disco: O processo de recuperação, em geral, está bas-
tante interligado às funções do SO, em particular o buffering de páginas de disco do
banco de dados no cache de memória principal do SGBD. Normalmente, várias páginas
do disco que incluem os itens de dados a serem atualizados são mantidas em cache
nos buffers da memória principal e depois atualizados na memória antes de serem gra-
vados de volta no disco. O Caching, que também é uma função do SO, é tratado neste
caso com mais eficiência pelo SGBD, devido a sua importância no processo de recupe-
ração de dados, onde o SGBD chama rotinas de baixo nível do SO;
• Check point no log do sistema e check point fuzzy: Como já vimos antes, muitas ações
no SGBD geram registros no log do sistema e dentre estas formas de registro existe
uma chamada de Check Point, onde sua função principal é registrar transações ativas. O
gerenciador de recuperação do SGBD precisa decidir em que intervalos realizar o check
point. Realizar um check point consiste basicamente nas seguintes ações:
− Suspender a execução de transações temporariamente;
− Forçar a gravação em disco de todos os buffers da memória principal que foram mo-
dificados;
− Gravar um registro (checkpoint) no log e forçar a gravação do log em disco;
− Retornar a execução das transações.
Segue abaixo uma figura ilustrando a utilização da técnica UNDO/REDO com uso de
Check Point.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 39 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 40 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
RESUMO
Principais áreas de conhecimento que precisam estar claras para um DBA:
• Arquitetura de computadores;
• Sistemas operacionais;
• Redes;
• Projeto conceitual e lógico de bancos de dados;
• Arquiteturas de SGBDs.
Tuning: Conceitos
router router
hub
computer hub load balancer database
application server
router router webserver farm server
firewall
A taxa entre os pedidos que o SGBD atende e a demanda para informação pode ser deno-
minado performance de banco de dados. Cinco fatores influenciam a performance do banco
de dados: workload, throughput, recursos, otimização e contenção.
Workload (Cargas de Trabalho): são os pedidos do SGBD que definem a demanda. Ele é o
conjunto de transações online, jobs batch, pesquisas ad hoc, dentre outros, tem como derivar
um modelo capaz de mostrar, capturar e reproduzir um comportamento da carga de trabalho e
suas funcionalidades mais importantes.
Throughput: define a capacidade do computador de processar os dados. Ele é uma compo-
sição de velocidade de I/O (entrada e saída), velocidade da CPU, capacidades de paralelismo
da máquina e a eficiência do sistema operacional e o software básico envolvido.
Contenção: é a condição em que dois ou mais componentes do workload estão tentando
usar o mesmo recurso em modos conflitantes (por exemplo, duas atualizações no mesmo dado).
Quanto maior a contenção, menor o throughput.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 41 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Performance de banco de dados então pode ser definida como otimização de recursos
usados para aumentar throughput e minimizar contenção, permitindo que o maior workload
(carga de trabalho) possível possa ser processado.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 42 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
De forma resumida, existem 3 passos que podem ser adotados para o ajuste do
comando SQL:
• descobrir qual o plano de execução está sendo gerado;
• alterar o banco de dados ou até mesmo o SQL para gerar outro plano de execução;
• analisar os planos de execução e escolher o melhor.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 43 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 44 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Abaixo eu listo os três principais tipos de privilégio que podem ser concedidos para uma
tabela T, por exemplo:
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 45 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Injeção de SQL
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 46 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 47 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Backup Normal: copia todos os arquivos selecionados e os marca como arquivos que pas-
saram por backup (o atributo de arquivo é desmarcado). Com backups normais, você só pre-
cisa da cópia mais recente do arquivo ou da fita de backup para restaurar todos os arquivos.
Geralmente, o backup normal é executado quando você cria um conjunto de backup pela pri-
meira vez, porém se executado mais uma vez, leva todos os dados novamente.
Backup Diferencial: copia arquivos criados ou alterados desde o último backup normal ou
incremental. Não marca os arquivos que passaram por backup . Caso esteja usando uma
combinação de backup normal e diferencial, a restauração dos arquivos e pastas exigirá o últi-
mo backup normal e o último backup diferencial. Neste caso o tempo de backup é mais longo,
principalmente se os dados forem alterados com mais frequência, porém facilita a restaura-
ção, porque o conjunto de backup está armazenado em apenas algumas fitas ou discos.
Backup Incremental: Copia arquivos criados ou alterados desde o último backup normal
ou incremental. Não marca os arquivos como arquivos que passaram por backup e copia ape-
nas os arquivos com atributo marcado, e desmarca tal atributo após o backup. Caso esteja
usando a combinação de backup normal e incremental, precisará do último backup normal
e de todos incrementais para então restaurar os dados. Neste caso exige menos espaço de
armazenamento, sendo o método mais rápido, porém a recuperação dos arquivos podes ser
mais lenta e difícil, pois a quantidade de mídias ou fitas, onde os dados estão armazenados,
pode ser muita.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 48 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Backup Diário: copia todos os arquivos selecionados que forem alterados no dia de execu-
ção do backup diário. Os arquivos que sofreram backup não são marcados como tal (ou seja,
o atributo de arquivamento não é desmarcado).
Cópia: cópia auxiliar (ou secundária) é uma cópia dos dados de backup. Os dados copiados
são uma imagem fiel da cópia de backup primária e podem ser usados como modo de espera
se os servidores, os dispositivos e a mídia de backup primário forem perdidos ou destruídos.
Existem, conceitualmente, duas técnicas para recuperação de dados oriundas de falhas de
transação: A técnica de Atualização Adiada e a técnica de Atualização Imediata.
Técnica de Atualização Adiada: esta técnica consiste em não atualizar fisicamente o ban-
co de dados no disco até que uma transação atinge seu ponto de confirmação, então as atu-
alizações são registradas no banco de dados. Antes de atingir a confirmação, todas as atuali-
zações de transação são registradas no espaço do trabalho de transação local ou nos buffers
da memória principal que o SGBD mantém (seu cache). Antes da confirmação, as atualizações
são gravadas persistentemente no log e, após confirmação, elas são gravadas no banco de da-
dos no disco. Se uma transação falhar antes de atingir seu ponto de confirmação, ela não terá
alterado seu banco de dados. Uma forma de implementar tal técnica, é através do algoritmo
NO-UNDO/REDO.
Técnica de Atualização Imediata: nesta técnica, o banco de dados pode ser atualizado por
algumas operações de uma transação antes que a transação alcance seu ponto de confirma-
ção. Porém, estas transações precisam ser registradas no log do disco ao forçar a gravação
antes que elas sejam aplicadas no banco de dados do disco, tornando a recuperação ainda
possível. Se uma transação falhar depois de gravar algumas mudanças no disco, mas antes de
atingir seu ponto de confirmação, o efeito de suas operações no banco de dados precisa ser
desfeito, revertendo à transação realizada. No caso geral de atualização imediata, tanto UNDO
quanto REDO podem ser exigidos durante a recuperação. Isto é possível através do uso do
algoritmo UNDO/REDO, neste caso quando há necessidade, durante a recuperação, de se usar
as duas operações. Porém, quando existe a necessidade de atualizar todas as transações no
banco de dados em disco antes que a transação confirme, requer apenas UNDO, sendo este
algoritmo conhecido como UNDO/NO-REDO.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 49 de 71
MAPA MENTAL
Backup Normal
Backup Diferencial Manter esquema de dados
Backup Incremental Checar segurança e integridade
Backup Diário DBA
NO-UNDO/REDO Atualização Adiada Projeto físico de base de dados
Técnicas de Recuperação
UNDO/REDO DBA vs AD Monitorar desempenho
Atualização Imediata Definição e padronização de dados
UNDO/NO-REDO
Políticas de Backup AD Propor, elaborar e manter modelos de dados
Ter conhecimento pleno do negócio
Administração
de Banco de Dados
Segurança de Dados
www.grancursosonline.com.br 50 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 51 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 52 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
QUESTÕES DE CONCURSO
011. (CEBRASPE/CESPE/TJPA/ANALISTA JUDICIÁRIO/ANÁLISE DE SISTEMAS/2020) O
administrador de dados e o administrador do banco de dados exercem funções-chave na ad-
ministração de banco de dados. Ao responsável pelas decisões estratégicas e de normas com
relação aos dados da empresa cabe também
a) definir o esquema interno.
b) definir o esquema conceitual.
c) manter contato com os usuários.
d) definir normas de descarga e recarga.
e) responder a requisitos de mudanças.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 53 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Perfeita questão, o DBA pode conceder (GRANT) ou rogar (REVOKE), privilégios a qualquer
momento, podendo fazer diretamente para cada usuário em relação ao uso das tabelas, como
também utilizar recursos de atribuição de papéis ou regras (Roles).
Uma vez que foi definido, cabe ao SGBD fazer as verificações e validações definidas para con-
ceder acesso ou não aos recursos.
Certo.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 54 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Os sistemas gerenciadores de banco de dados, cujo controle de acesso é feito por usuário, não
suportam o formato discricionário, pois tal formato concede privilégios associados ao usuário
e aos privilégios, como a concessão de privilégio de somente leitura a determinado usuário.
Podemos com certeza afirmar que a questão está ERRADA, pois em durante a aula vimos que
no controle discricionário o privilégio é concedido ao usuário, podendo ser por Conta ou por
Relação (tabela).
Errado.
O termo tuning quando aplicado na área de TI tema relação com o aumento no desempenho na
recuperação ou atualização de dados.
Aprendemos em outras aulas o quão importante é usar as formas normais a fim de obter um
modelo relacional com garantia de integridade entre seus relacionamentos. Porém, isso não
é algo que deva ser levado a “ferro e fogo” sempre, pois existem casos em que para melhorar
o desempenho(tuning) de consultas ou operações de atualização de dados, se fez necessário
“desnormalizar” as tabelas no banco de dados.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 55 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Quanto mais tabelas ligadas por uma ou mais relações, mais custosa é a consulta ou atua-
lização de dados, pois os caminhos nas relações são percorridos a cada evento de consulta
ou atualização. Quando se desnormaliza algumas tabelas, seus dados são juntados e assim
ocorre naturalmente uma melhoria no tempo de resposta.
Resumindo, o termo tuning está mais relacionado com a desnormalização do que a normali-
zação de tabelas e assim concluímos que a questão está ERRADA, pois ela afirma o contrário.
Errado.
A questão define bem os insumos para que um DBA possa realizar as atividades de otimização
do desempenho de um banco de dados. Como o SGBD armazena dados estatístico durante
sua operação, tais valores são importantíssimos na análise inicial antes da execução das téc-
nicas de tuning.
Além disso, o examinador trouxe na questão um conceito defendido no livro do Date:
a linha divisória entre o projeto físico de um banco de dados e sua sintonia é muito pequena. As
mesmas decisões de projeto são revisadas na fase de sintonia (ou tuning), que é um ajuste conti-
nuado do projeto. As informações de entrada para o processo de sintonização incluem estatísticas
relacionadas a diversos fatores. Em particular um SGBD pode coletar internamente as seguintes
estatísticas:
tamanho de tabelas individuais,
número de valores distintos em uma coluna,
número de vezes que uma consulta ou transação em particular é submetida/executada em um in-
tervalo de tempo. Os tempos necessários para as diferentes fases de processamento de consultas.
Certo.
Exatamente, as técnicas de tuning não se limitam a verificar se existem melhorias a serem fei-
tas nas consultas SQL. Podem existir outros “gargalos”, como por exemplo no sistema operacional
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 56 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
utilizado na máquina onde o SGBD está instalado, bem como recursos de processamento e
memória, como na rede também. Geralmente o DBA se reúne com demais integrantes do time
da infraestrutura da organização para fins de detectar onde está o problema que ocasiona a
queda de performance.
Certo.
Esta questão trouxe muitas dúvidas para os candidatos quanto a sua interpretação. Eu digo
que fazer questões do CESPE com alto grau de exigência, pode ser uma grande armadilha.
A grande dúvida foi no trecho “...mudança gradual dos dados...”. Na verdade, o examinador não
foi muito feliz na forma de escrever, pois o que quis dizer é que um DBA precisa promover algu-
mas mudanças nas formas de consulta aos dados, no uso adequado dos índices dos dados,
na melhor análise estatística dos dados e tudo isso foi resumido no trecho acima citado (de
forma “tosca” eu sei), porém está CERTO.
Vejam o que Navathe fala sobre o assunto:
Olha, essa questão deu o que falar, pois ela em sua totalidade não foi encontrada dentro das
obras mais conhecidas, porém tem forte valor empírico, uma vez que se formos avaliar todo o
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 57 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Mais uma questão que faz troca de conceitos e como já falei antes, o CESPE adora fazer isso.
Existem duas técnicas muito difundidas pelos principais autores na área de banco de dados,
são elas: Regras Heurísticas e Estimativas de Custos.
As regras heurísticas são baseadas em na reordenação das operações de consulta e uma ár-
vore de consulta.
Já as regras com base em estimativa de custos, procuram estimar o custo de diferentes estra-
tégias de execução e escolher o plano de execução com estimativa de custo mais baixa.
Percebam que questão atribuiu o conceito da estimativa de custos à regra de heurística, ou
seja, “misturou as bolas”.
Errado.
Como de costume, a maioria das questões sobre banco de dados na CESPE/CEBRASPE são
extraída do livro do Navathe e essa não foi diferente, vejamos o que diz o autor: “A principal
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 58 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Manipulação de SQL: Um ataque de manipulação, que é do tipo mais comum de ataque de injeção,
muda um comando SQL na aplicação – por exemplo, ao acrescentar condições a cláusula WHERE
de uma consulta, ou ao expandir uma consulta com componentes de consulta adicionais, usando
operações de união como UNION, INTERSECT ou MINUS
Certo.
O recurso da VIEW pode ser um meio seguro de concessão de leitura a dados sem que haja
prejuízo em seu conteúdo. Pode ser feito por meio concessão de privilégios usando o GRANT,
podendo atribuir estes privilégios a um determinado usuário por meio do privilégio de SELECT
em uma determinada VIEW previamente criada.
Certo.
www.grancursosonline.com.br 59 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Além disso, as restrições de domínio contribuem em casos onde usuários, por acidente, ten-
tem registrar dados que estejam fora do rol do domínio aguardado.
A questão erra ao afirmar que “não contribuem para a avaliação da integridade dos dados
inseridos”. Sobre segurança no SGBD, este conceito não garante que ocorra intervenções ma-
liciosas, apenas a segurança da integridade no padrão dos dados.
Errado.
Vamos lá, a banca gosta do Navathe, então vamos traduzir algumas coisas.
Quando a questão tratar de “conta” traduza para “usuário”.
Os privilégios podem ser concedidos especificamente para um usuário ou é possível definir
regras(Roles) e assim atribuir estas regras aos usuários que se queira. No tocante ao acesso
seletivo, se trata da permissão atribuída para o usuário(conta) específico em determinadas
tabelas, podendo até restringir por atributos e em caso de views em tuplas.
Certo.
www.grancursosonline.com.br 60 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Existem dois níveis de privilégio no SGBD: de conta e de relação (tabela). O primeiro independe
das relações no banco de dados e o de relação refere-se ao privilégio de acesso de cada rela-
ção individual ou visão (view) no banco.
Questão top para revisão, onde são comparadas duas formas de backup. Vamos lá.
O Backup Diferencial copia arquivos criados ou alterados desde o último backup normal ou
incremental. Não marca os arquivos que passaram por backup . Caso esteja usando uma
combinação de backup normal e diferencial, a restauração dos arquivos e pastas exigirá o últi-
mo backup normal e o último backup diferencial. Neste caso o tempo de backup é mais longo,
principalmente se os dados forem alterados com mais frequência, porém facilita a restaura-
ção, porque o conjunto de backup está armazenado em apenas algumas fitas ou discos. Já o
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 61 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Backup Incremental, copia os arquivos criados ou alterados desde o último backup normal ou
incremental. Não marca os arquivos como arquivos que passaram por backup e copia apenas
os arquivos com atributo marcado, e desmarca tal atributo após o backup. Caso esteja usando
a combinação de backup normal e incremental, precisará do último backup normal e de todos
incrementais para então restaurar os dados. Neste caso exige menos espaço de armazena-
mento, sendo o método mais rápido, porém a recuperação dos arquivos podes ser mais lenta e
difícil, pois a quantidade de mídias ou fitas, onde os dados estão armazenados, pode ser muita.
Questão certíssima.
Certo.
O texto da assertiva não deixa claro o incidente ocorrido que justifique a restauração do ba-
ckup, ou seja, partimos do pressuposto que seja uma restauração completa do banco de
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 62 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
dados. Neste caso, primeiro deve ser feito a recuperação do backup completo, para em segui-
da aplicar a recuperação do diferencial, ou seja, a questão está errada.
Errado.
Não existe muito que falar sobre esta questão, apena o fato de ser uma declaração sobre uma
forma de backup e que é verdadeira, nada que de desabone a questão.
Certo.
Vamos lá!
A alternativa 1 está correta, pois os backups totais e incrementais, quando juntos, e levando
em consideração o backup dos logs, podem reaver a situação do banco de dados até antes de
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 63 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
uma falha, porém em desastres, vai depender muito da localização destes backups, pois eles
mesmos podem ser danificados, ou seja, vai depender muito da infraestrutura construída para
recuperação em caso de desastres, ou seja, a questão está correta neste ponto.
A alternativa 2 está errada, pois é fato que o backup total coleta todos os dados do banco
e permite sua restauração, porém é equivocado dizer que sua recuperação pode ser feita “a
qualquer ponto temporal específico”, ou seja, se uma falha ocorrer em momento posterior a um
backup completo e se nesse espaço de tempo não foi feito outro tipo de backup, os registros
deste intervalo irão se perder.
Certo. Errado.
A questão fala de um cenário real de plano de backup, onde ocorre um backup completo toda
segunda-feira e para garantir os demais dias é feito um backup incremental que vai de terça-
-feira a sexta-feira, quando chega na próxima segunda-feira, outro backup completo ocorre
e assim segue. No tocante aos dados da quinta-feira, por ser um backup incremental, ele só
armazena os dados do dia.
Perfeita a questão.
Certo.
O examinador, como sempre, invalida a questão bem no final, ou seja, este conceito não se
aplica em processos de exclusão, mas de consultas, ou seja, para quem está avaliando a pos-
sibilidade de melhorar (tuning) a performance das operações, a observação é feita no volume
de dados a serem retornados, o tamanho da relação(tabela), levando em consideração a quan-
tidade de atributos, dentre outros fatores.
Errado.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 64 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
A normalização serve para garantir aplicabilidade das regras de restrição de integridade, po-
rém geram muitas tabelas e assim diversas junções, isso faz com que em operações de con-
sulta ocorram queda de performance a depender do volume de dados e número de tabelas
envolvidas. Neste ponto a questão está correta.
Certo.
Durante aula comentei que a ordem com que as junções são feitas, interfere sim no resultado
da performance das operações. No caso dos Joins, o ideal é que a tabela base seja acompa-
nhado primeiro das tabelas menores e em seguida as tabelas maiores.
Certo.
O uso de triggers contribui para operações específicas no banco de dados, onde por exemplo, a
partir de um evento de INSERT, é possível capturar algumas informações e fazer alguma opera-
ção direto no lado do banco. O problema é que os gatilhos podem, a depender de como foram
e implementados, gerar queda de performance pois ele passar a ser uma etapa de execução
obrigatória quando determinada tabela é utilizada todas as vezes.
Errado.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 65 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Essa questão complementa muito bem a questão anterior no tocante ao a atuação do DBA em
busca da melhora a performance do banco de dados. Certa a questão.
Certo.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 66 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
Questão correta e coerente com uso adequado dos índices, não atribuindo índices para qual-
quer atributo de tabela, podendo neste último caso gerar queda de performance.
Certo.
A questão está quase certa, faltou indicar o SGBD, ou seja, as consultas e operações feitas em
SQL precisam ser analisadas, bem como o uso adequado dos índices, enfim, a questão erra
pela falta de completude.
Errado.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 67 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
O sequenciamento está errado, primeiro a consulta, que está em linguagem SQL é submetida
a uma análise léxica, depois passa por uma fase intermediária, onde justamente é aplicado
os conceitos de álgebra relacional, utilizando heurística, depois é submetida ao otimizador
de consulta.
Errado.
A questão mistura os conceitos. A descrição acima faz parte do conceito de Técnica de Otimi-
zação Baseada em Custos e não em regras heurísticas.
Errado.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 68 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
enfim, são aspectos inerentes ao SGBD. O erro da questão foi trazer ativos de infraestrutura,
equipamentos e sistema operacional como parte destas estatísticas, desvirtuando o seu uso.
Errado.
Questão errada do início ao fim. O DBA é o principal ator no tocante ao gerenciamento dos
recursos utilizados no SGBD, buscando otimizar a performance através de técnicas de tuning.
Isso não impede que ele possa se reunir com o time de desenvolvimento e sugerir melhores
práticas no uso do SQL, por exemplo.
Errado.
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 69 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima
GABARITO
1. C 18. C 35. C
2. E 19. C 36. 36. C, E
3. E 20. C 37. C
4. E 21. C 38. E
5. E 22. E 39. C
6. C 23. C 40. C
7. b 24. C 41. E
8. E 25. C 42. C
9. E 26. E 43. C
10. E 27. C 44. E
11. b 28. C 45. C
12. e 29. C 46. C
13. C 30. E 47. E
14. C 31. C 48. E
15. E 32. C, C 49. E
16. E 33. E 50. E
17. E 34. C 51. E
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
www.grancursosonline.com.br 70 de 71
O conteúdo deste livro eletrônico é licenciado para Concurseiro Stark - 06402044490, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.