Você está na página 1de 71

BANCO DE DADOS

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!

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 3 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima

ADMINISTRAÇÃO DE BANCO DE DADOS


1. Conceitos sobre Administração de Banco de Dados
As atividades exercidas na Administração de Banco de Dados (DBA) e a na Administra-
ção de Dados (DA), são as vezes confundidas, e neste início vamos diferenciar suas princi-
pais funções.
A função de realizar a administração de um banco de dados apresenta em seu rol de ativi-
dades mínimas: instalar, configurar, monitorar e solucionar problemas de um SGBD (Sistema
Gerenciador de Banco de Dados).
Vejamos o que o Navathe fala sobre isso:

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

Complementando, são objetivos da Administração de Banco de dados:


• Implementar ações e dar suporte ao ambiente através:
− Bases de dados estáveis;
− Bases de dados aderentes à organização;
− Documentação dos dados da organização;
• Permitir a utilização adequada da tecnologia de Banco de Dados:
− Proporcionar o uso da informação como ativo dentro da organização, através da sua
disponibilidade e compartilhamento;
− Dimensionar e avaliar o hardware de servidores;
− Instalar e manter atualizado o software de SGBD
− Projeto físico do Banco de dados;
− Monitorar e ajustar o desempenho
− Auxiliar os desenvolvedores nos projetos de aplicações e ajustes de SQL;
− Fazer backup, restaurar e recuperar o Banco de Dados;
− Gerenciar usuários e segurança.

Ao exercer o papel de Administrador de Banco de Dados, algumas responsabilidades são


inerentes a esta atividade, como 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 4 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima

• Projeto lógico do banco de dados: criação do esquema lógico usando a DDL;


• Definição de checagem de segurança e integridade;
• Decisão de como os dados são representados na base de dados armazenada;
• Projeto físico da base de dados;
• Definição de procedimentos de recuperação;
• Monitoração do desempenho;
• Contato com usuários para averiguação de disponibilidade dos dados por eles requisita-
dos e ajuda na determinação e resolução de problemas;
• Ajustes apropriados à medida que ocorram mudanças de requisitos.

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.

No tocante ao Administrador de Dados(AD), seu principal objetivo é planejar, documen-


tar, gerenciar e integrar os recursos de informação corporativos. Trata-se de um profissional
que deve compreender o negócio da organização e sua função diferencia-se basicamente da
função de um DBA pelo fato dele gerenciar os dados e não os meios físicos onde eles

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

são armazenados, acessados e distribuídos. O trabalho do AD é mais voltado para o negócio,


enquanto, o trabalho de um DBA, é muito mais técnico.
Principais atividades que devem ser executadas pelo AD:
• Definir os dados necessários à obtenção das informações solicitadas: Analisar o negó-
cio em conjunto com os Analistas de Negócios (ou alguém que faça o seu papel, como
por exemplo, um Analista de Sistemas) das aplicações para definir as informações rele-
vantes que devem compor o modelo de dados, definindo o que deve ser mantido e o que
deve ser descartado;
• Elaborar, propor e manter os modelos de dados: Atualizar e manter o modelo de dados
e atuar na modelagem lógica, viabilizando os seguintes itens: consistência e normali-
zação dos dados, compartilhamento e integração dos dados e eliminação (ou minimiza-
ção) de dados redundantes;
• Definir os níveis de integridade e segurança dos dados nos diversos níveis em que a
informação solicitada;
• Progredir: Definir os níveis de acesso aos dados para garantir que as informações este-
jam disponíveis somente a quem precisar delas;
• Ter perfeito conhecimento dos processos empresariais como um todo: Compreender
os processos, metas e objetivos da organização para ajudar na elaboração de um bom
modelo de dados, que seja útil e necessário para a empresa;
• Elaborar e promover padrões de dados como dicionários, nomes, tipos, dentre outros:
Elaborar e promover padrões de nomenclatura/especificação de objetos e de modela-
gem, em geral, para organizar e facilitar o entendimento dos modelos de dados.

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.

2. Desempenho em Banco de Dados


Durante o projeto da aplicação e das estruturas de banco de dados relacionadas, os arqui-
tetos da aplicação podem não conhecer todas as maneiras como a empresa usará os dados
da aplicação ao longo do tempo. O resultado é que pode haver componentes cujo desempenho
será fraco durante a versão inicial, enquanto outros problemas aparecerão mais tarde, à medi-
da que o uso corporativo da aplicação mudar e aumentar.
Em alguns casos, a correção será extremamente simples – alterando um parâmetro de
inicialização, adicionando um índice ou reagendando operações grandes. Em outros casos, 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 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

2.1. Tuning: Conceitos


A tradução literal de “tuning” seria sintonia ou ajuste de alguma coisa para que funcione
melhor. Um SGBD é um produto de software sofisticado permitindo vários ajustes. Sua flexi-
bilidade permite você fazer pequenos ajustes que afetam a performance do banco de dados.

Beleza, Luis, mas o que afinal seria a performance de banco de dados?

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

Goal oriented Transaction Architecture Growth based


based based

◦ Goal Oriented (Orientado a Meta/Objetivo): Um sistema quando desenvolvido por


metas definidas, onde os requisitos de performance são direcionados por estas
metas. Estas metas são usadas para fazer o projeto de workload para fins de teste
de performance;
◦ Transaction Based (Baseado em Transação): O objetivo é analisar o desempenho
do sistema para todas as transações de negócios que são relevantes ao cotidiano
da organização. Todas as transações identificadas devem ser usadas enquanto se
projeta o workload. O desempenho das metas para estas operações deve ser o de
verificar a eficiência dos recursos para uma resposta aceitável;
◦ Architecture Based (Baseado na Arquitetura): A arquitetura de sistema precisa de
ser cuidadosamente ponderada na concepção do trabalho. As tendências de negócio 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 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 hardware e ferramentas de software disponíveis do sistema são conhecidos como recur-


sos do sistema.
Quando a demanda (workload) para um recurso particular é alta, pode acontecer a
contenção.
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). Se a contenção cresce, o throughput diminui.

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.

001. (CEBRASPE/CESPE/TJ-AC/ANALISTA JUDICIÁRIO/ANALISTA DE SISTEMAS/2012)


No que se refere à otimização do desempenho (tuning) de bancos de dados, julgue os pró-
ximos itens.
Entre os fatores que podem influenciar o tuning de um banco de dados incluem-se workload,
throughput, recursos, otimização e contenção.

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.

002. (CEBRASPE/CESPE/MPU/ANALISTA DE INFORMÁTICA/2010) Julgue os itens a se-


guir acerca de técnicas de análise de desempenho e otimização de consultas SQL em ban-
co de dados.
O processo de otimização de consultas SQL aumenta o throughput do sistema e permite dimi-
nuir a contenção, fazendo que, no mesmo intervalo de tempo, necessariamente, seja requerida
a execução de maior workload que na situação sem otimização.

A banca traz propositadamente um “peguinha na questão”, cuidado!


É verdade que quando ocorrem a otimizações (tuning) em consultas SQL, ocorre um aumento
no throughput, ocasionando uma redução nas contenções e com isso pode aumentar as car-
gas de trabalho (workload). O peguinha da questão estão em dizer que “necessariamente” o
workload tem que aumentar e “no mesmo intervalo de tempo”, pois não temos garantias (ape-
sar que se espere por isso) que haja aumento do workload e pior ainda que este seja feito no
mesmo intervalo de tempo em que ocorra a contenção.
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 10 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima

2.2. Ajustes de Performance – Método Proativo


Como toda execução de projeto, planejar é uma etapa crucial para mitigar riscos e isso
também é possível de ser feito para garantir boa performance na utilização de banco de dados,
inclusive o custo é mais baixo do que realizar ajuste posteriores, quando o “gargalo” passou
a existir.
Sendo assim, agir de forma antecipada, ou seja, ainda na fase de projeto é a melhor opção.
Quando o tempo de resposta em aplicações começa a aumentar, a luz amarela precisa ser li-
gada, ou a depender do caso, talvez seja tarde para adotar as melhores práticas de tuning para
garantir boa performance. Sendo tarde, será necessário mapear todos os recursos envolvidos
na infraestrutura e talvez até investir em aumento de recursos em alguns casos.
Mas, prever a boa performance com o tuning não significa que há garantias que nunca
haverá queda de performance futuramente, tanto que aplicar técnicas de tuning é algo comum
nas manutenções de sistemas.
Vejamos abaixo uma metodologia abordada por Ikematu:

Ajuste das regras de negócio

Ajuste do projeto de base de dados

Ajuste do projeto da aplicação

Ajuste da estrutura lógica da BD

Ajuste das operações de base de dados

Ajuste dos caminhos de acesso

Ajuste da alocação de memória

Ajuste de I/O e estrutura física

Ajuste da contenção de recursos

Ajuste das plataformas básicas

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

Ajuste das Regras de Negócio

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.

Ajuste do Projeto de Base de Dados

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.

Ajuste do Projeto da Aplicação

Analistas de negócio e projetistas deveriam transformar metas de negócio em um projeto


de sistema efetivo. Processos de negócio referem-se a uma aplicação particular dentro do sis-
tema ou uma parte da aplicação. Um exemplo de projeto de processo é deixar alguns dados em
cache. Deste modo você evita a recuperação da mesma informação várias vezes durante o dia.
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 12 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima

Ajuste da Estrutura Lógica da Base de Dados

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.

Ajuste das Operações de Base de Dados

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.

Ajuste dos Caminhos de Acesso

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.

Ajuste da Alocação de Memória

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.

Ajuste de I/O (Entrada e Saída de Dados) e Estrutura Física

I/O de disco tende a reduzir a performance de várias aplicações de software. O ajuste de


I/O e estrutura física envolve:
• Distribuir dados em discos diferentes para distribuir I/O e evitar contenção de disco;
• Criar “extents” grandes o suficiente para seus dados e evitar extensões dinâmicas das
tabelas. Isto afeta a performance de alto volume de aplicações OLTP.

Ajuste da Contenção de Recursos

O processamento concorrente de vários usuários pode criar a contenção de recursos. A


contenção faz com que os processos esperem até que os recursos sejam disponibilizados.
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 13 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima

Ajuste das Plataformas Básicas

Conforme a versão do gerenciador para um determinado sistema operacional pode haver


parâmetros diferentes de ajuste.

2.3. Ajustes em Comandos SQL


Todo acesso a dados relacionais pelos programas de aplicação é feito usando SQL. Revi-
sões de comandos SQL deveriam ser um componente necessário para análise de performance
de aplicações em banco de dados antes e depois da implementação.
O SQL é projetado para que o programador descreva quais dados são necessários e não
como recuperá-los. O otimizador do SGBD se encarrega dessa parte. Otimizadores do SGBD
geralmente fazem uma boa escolha do caminho de acesso mais eficiente, mas não sempre.
É necessário um método para monitorar e ajustar as operações na base de dados. Se forem
mal codificados e concebidos, a performance da aplicação sofrerá e os processos do negócio
sofrerão impactos negativamente.
Vejamos abaixo algumas abordagens para ajustar os comandos SQL.
Reestruturação de Índices: A Reestruturação de índices tem mais impacto na aplicação do
que a reestruturação do comando ou dos dados. É importante analisar a eficiência dos índices,
observando quais índices são usados para pesquisas comuns e excluir qualquer um que não
esteja sendo usado. Muitos índices em uma tabela podem causar uma sobrecarga, pois todos
os índices precisam ser atualizados na atualização da tabela (inclusão, alteração e exclusão).
Reestruturação do comando SQL: Depois de reestruturar os índices, é possível tentar rees-
truturar os comandos SQL. Escrever novamente um comando SQL ineficiente é mais fácil do
que repará-lo. Uma vez que se entenda a finalidade do comando, mais rápido é escrever um
novo comando que atenda aos requisitos. A performance, entretanto, pode variar grandemente
dependendo do volume dos dados nas tabelas e dos índices disponíveis para a tabela. A ordem
de um Join pode ter um efeito significativo de performance. O uso demasiado de IN com uma
lista de valores pode indicar a falta de uma entidade, ou seja, melhor será criar a tabela corres-
pondente a entidade em alguns casos.

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

• Modificar ou desabilitar gatilhos (triggers): A utilização de triggers contribui para auto-


mação de comandos executado direto no banco de dados sem passar pela aplicação,
porém em excesso ou de forma não planejada ou desnecessária, pode afetar a perfor-
mance do banco de dados.
• Armazenar dados derivados: Evitar o uso excessivo de Group By também ajuda a au-
mentar a performance do banco, em seu lugar é possível criar atributos derivados nas
tabelas.

003. (CEBRASPE/CESPE/BANCO DA AMAZÔNIA/TÉCNICO CIENTÍFICO/ADMINISTRA-


ÇÃO DE DADOS/2012) Julgue os itens a seguir acerca de técnicas de análise de desempenho
e otimização de consultas SQL em banco de dados.
No tuning de banco de dados, a reestruturação de índices mediante a criação de novos índices
em tabelas em que o número de acessos é elevado consiste em uma ação que torna mais efi-
ciente a realização de operações nessa tabela.

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.

004. (CEBRASPE/CESPE/MPU/ANALISTA/SUPORTE E INFRAESTRUTURA/2013) Julgue


os itens subsequentes, acerca de administração de bancos de dados.
Se a monitoração de uma consulta identificar a existência de baixo desempenho no acesso
relacionado a uma tabela específica, a redefinição de índices otimizará todos os acessos a
essa tabela.

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.

É importante se preocupar em otimizar o servidor de banco de dados, porém melhorar o


desempenho de consultas individuais pode ser ainda mais satisfatório. Existem várias formas
de otimizar o banco e as consultas. Muitas vezes os bancos não são bem projetados e/ou não
estão normalizados. Problemas de informações redundantes ou relacionamentos mal defini-
dos provenientes de bases não normalizadas podem afetar de forma significante o desempe-
nho das consultas existentes.

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:

Análise do código fonte em busca


de erros (validação).

Uso de otimizador SQL para obter


um plano de execução.

O script é executado com base no


plano elaborado.

Busca os dados e retorna o


resultado.

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

Consulta SQL Dicionário de Dados

Analisador (Parser)

RBO CBO Estatísticas


Otimizador
baseado em regras Otimizador
Otimizador Baseado
em Custos

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.

005. (CEBRASPE/CESPE/MEC/ADMINISTRADOR DE BANCO DE DADOS/2015) Com rela-


ção à análise de desempenho e tunning de banco de dados, julgue o item subsequente.
A maior parte dos problemas de desempenho em banco de dados não está relacionada à
aplicação, mas sim às configurações incorretas dos arquivos de parâmetros realizadas pelos
administradores de banco de dados.

É 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

2.4. Uso de Índices para Melhorar Performance


Se consultas elaboradas com SQL realizam buscas em tabelas grandes, uma boa reco-
mendação é o uso de índices. Um índice é uma estrutura em disco associada a uma tabela ou
exibição que agiliza a recuperação de linhas. Usá-los é uma tomada de decisão adequada para
resolver a maior parte dos problemas de consultas com tempo demorado. Todas as chaves
primárias precisam de índices para realizar as junções com outras tabelas de forma mais efi-
caz. Isso faz com que todas as tabelas precisem de uma chave primária.
Índices são normalmente criados em colunas que são acessadas ​​com maior frequência
de modo que a informação possa ser recuperada mais rapidamente. Os índices podem ser
criados em uma única coluna ou em um grupo delas. Quando um índice é criado, ele primeiro
classifica os dados e, em seguida, atribui um Rowid (chave única e sequencial) para cada linha.
Com relação às práticas de tuning é comum falar em Índices Clusterizados e Não Clusteri-
zados. A diferença básica deles é que os registros de um índice de cluster são classificados e
armazenados sequencialmente com base em sua chave. O banco cria automaticamente índi-
ces quando uma restrição primary key ou unique em uma tabela é criada. Vejamos abaixo as
características de cada um deles:
• Índice clusterizado: um índice clusterizado determina a sequência de armazenamento
dos registros em uma tabela. Eles são usados ​​para campos em que são realizadas bus-
cas frequentes ou que são acessados ​​de forma ordenada. Uma tabela pode ter somente
um índice clusterizado (pela necessidade de ordenação do campo indexado);
• Índice não clusterizado: os dados são armazenados em local diferente do índice e os
ponteiros indicam o armazenamento de objetos indexados na tabela. Este tipo de índice
é utilizado quando se realizam buscas em campos onde os dados sejam únicos. De
uma forma geral, os índices do tipo não clusterizados devem ser utilizados quando os
campos são: frequentemente usados nos critérios de pesquisa, usados para se juntar
a outras tabelas, usados como campos de chave estrangeira ou na cláusula order by.

Entendi, Luis, mas, e se não existir índices definidos que ajudem em uma consulta espe-
cífica, o que ocorre?

É uma ótima pergunta! Vou explicar.


Neste caso, o que vai ocorrer é uma varredura completa na tabela que não possui índice
associado. Agora, imagine uma tabela com milhares de linhas, o tempo que isso vai levar, é o
que chamamos de Full Tables Scan.
O otimizador de consultas do SGBD irá analisar a consulta e decidir se irá utilizar índice
existente ou fazer varredura total na tabela. Para o uso de índices, algumas condições são im-
postas para o seu uso, como 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 21 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima

• Atributos utilizados como chave primária;


• Atributos como sendo chave estrangeira;
• Atributos usados frequentemente para fazer joins entre tabelas;
• Atributos que são usados como condições de consulta.

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.

Evitar de usar o “%” como coringa nas


consultas ajuda a ganhar performance, ou
seja, quanto específica for a busca, mas rápido
será.
Exemplo:
SELECT NOME, DT_NASCIMENTO
Uso do Like FROM FUNCIONARIO
WHERE NOME LIKE ‘OCTAVIO’
A consulta acima é mais rápida do que se fosse
assim:
SELECT NOME, DT_NASCIMENTO
FROM FUNCIONARIO
WHERE NOME LIKE ‘%OCTAVIO’

No lugar do OR, é mais eficiente usar o IN nas


cláusulas WHERE. O OR terá que fazer diversas
comparações e combinações, o que degrada
performance. Vejamos um exemplo:
SELECT NOME, CURSO, DISCIPLINA
FROM TURMA
WHERE DISCIPLINA=’BANCO DE DADOS’ OR
Evitar operador OR DISCIPLINA=’PROGRAMAÇÃO’ OR
DISCIPLINA=’GOVERNANÇA’
A consulta acima é mais lenta do que usando o IN:
SELECT NOME, CURSO, DISCIPLINA
FROM TURMA
WHERE DISCIPLINA IN (’BANCO DE DADOS’,
’PROGRAMAÇÃO’, ’GOVERNANÇA’)

É utilizado para restringir os resultados utilizados


na cláusula GROUP BY, porém o otimizador atuará
Evitar cláusula de forma mais custosa, ou seja, com sobrecarga
HAVING devido a complexidade de analisar resultados de um
agrupamento via consulta SQL.
Quando for possível, evitar o seu uso.

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

Evitar de usar o “%” como coringa nas


consultas ajuda a ganhar performance, ou
seja, quanto específica for a busca, mas rápido
será.
Exemplo:
SELECT NOME, DT_NASCIMENTO
Uso do Like FROM FUNCIONARIO
WHERE NOME LIKE ‘OCTAVIO’
A consulta acima é mais rápida do que se fosse
assim:
SELECT NOME, DT_NASCIMENTO
FROM FUNCIONARIO
WHERE NOME LIKE ‘%OCTAVIO’

Quando se utiliza operadores como ORDER BY,


GROUP BY e/ou HAVING, ocorrem o surgimento
Evitar Classificações e de subgrupos de dados e estes subgrupos são
Ordenações armazenados em memória em disco, podendo afetar
a performance na obtenção dos resultados.
Resumindo, em grandes operações, se possível, evitar.

O uso de procedimentos em SQL armazenados


apresenta boa performance, pois a instrução não
Store Procedures passará pelas etapas anteriores que envolvem a
interpretação do comando e a verificação de sintaxe,
ou seja, ele já estará em formato de uso.

O uso de índices em banco de dados é um recurso


que proporcionada ganho de performance em
operações de consulta nas tabelas, porém em
operações que envolvam carga de dados por lote, ou
Uso estratégico dos seja, que representem grandes volumes de dados a
índices performance pode se degradar devido a necessidade
de atualização dos índices durante a carga de dados.
Nestes casos é recomendável desabilitar os índices e
após a carga atualizar os respectivos índices.

A forma como as tabelas estão ordenadas na cláusula


FROM contribui para uma melhor performance,
Ordem das tabelas na dependendo de como o otimizador lê a instrução
cláusula FROM SQL. Uma estratégia é listar primeiro as tabelas
menores e depois as maiores.

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

Evitar de usar o “%” como coringa nas


consultas ajuda a ganhar performance, ou
seja, quanto específica for a busca, mas rápido
será.
Exemplo:
SELECT NOME, DT_NASCIMENTO
Uso do Like FROM FUNCIONARIO
WHERE NOME LIKE ‘OCTAVIO’
A consulta acima é mais rápida do que se fosse
assim:
SELECT NOME, DT_NASCIMENTO
FROM FUNCIONARIO
WHERE NOME LIKE ‘%OCTAVIO’

No uso de Joins, ocorre o uso de uma tabela


considerada base e a partir dela são feitas ligações
com outras tabelas, formando os relacionamentos.
O atributo da tabela de base é normalmente colocada
Condições de junção no lado direito de uma operação de junção na
(JOIN) cláusula WHERE.
As tabelas que estão sendo vinculadas à tabela de
base são normalmente trazidas da menor para maior,
seguindo a mesma lógica no caso da cláusula FROM.

O foco deve ser nas condições mais restritivas, pois


ela vai determinar o nível de performance da consulta
SQL. Considera-se mais restritiva, a condição que
Ordenações na vai retornar o menor número de linhas. Então a
cláusula WHERE ordem ideal é primeiro as condições mais restritivas
e em seguida das menos restritivas, ou seja, as que
retornam mais linhas.

006. (CEBRASPE/CESPE/MEC/ADMINISTRADOR DE BANCO DE DADOS/2015) Com rela-


ção à análise de desempenho e tunning de banco de dados, julgue o item subsequente.
Nas situações em que muitos usuários realizam inserções de forma concorrente, uma boa
prática com relação ao planejamento do desempenho consiste em organizar as inserções de
modo que elas envolvam a menor quantidade de tabelas possível.

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.

3. Segurança em Banco de Dados


Com o crescimento do uso de recursos de TI no mundo, principalmente em relação ao
uso de aplicativos e sistemas, falar em segurança de dados passou praticamente a ser regra
atualmente.
No tocante a segurança aplicada em banco de dados, o foco é controlar acessos que se-
jam maliciosos, sendo eles intencionais ou não, ou até os não maliciosos, que podem ocorrer
por erro operacional ou técnico e que podem prejudicar o conteúdo armazenado, como por
exemplo, ocasionar a perda de dados ou prejudicar a sua consistência.
Neste cenário, para fins de tentar coibir estes tipos de ações, a segurança em SGBDs é feita
através de controles de forma de acesso, onde os perfis dos usuários precisam ser definidos,
afim de delimitar suas permissões. Mitigar possíveis ataques também é outra medida, ava-
liando e planejando quais serão as formas de contenção e prevenção destes ataques, como
por exemplo, se valendo do uso de certificados digitais e/ou criptografia. A privacidade da
informação é outro aspecto que precisa também ser levado em consideração no rol de ações
em prol da segurança em banco de dados.
As ameaças aos bancos de dados podem resultar na perda ou degradação de alguns ou de
todos os objetivos de segurança comumente aceitos. A segurança em banco de dados precisa
atuar de forma a proteger os pilares da segurança da informação, o CID – Confidencialidade,
Integridade e Disponibilidade. Vou comentar sobre cada um deles:
• Confidencialidade: este pilar garante que as informações sejam acessadas apenas por
pessoas autorizadas;
• Integridade: esse princípio garante que as informações, tanto em sistemas subjacentes
quanto em bancos de dados, estejam em um formato verdadeiro e correto para seus
propósitos originais. Logo, o receptor da informação detém as mesmas informações
que o seu criador;
• Disponibilidade: o foco deste pilar é garantir que as informações e os recursos estejam
disponíveis para aqueles que precisam deles, 24 horas por dia, sete dias por semana.

3.1. Mecanismos de Segurança em Banco de Dados


Em um sistema de anco de dados multiusuário, o SGBD precisa oferecer técnicas para per-
mitir que alguns usuários ou grupos de usuários acessem partes selecionadas de um banco de
dado, sem que obtenha acesso ao restante dele. Isso é particularmente importante quando um

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.

Vamos ver o que o Navathe fala sobre este modelo:

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...

• Mecanismos de Segurança Discricionários: Estes são usados para conceder privilégios


aos usuários, incluindo a capacidade de acessar arquivos de dados, registros ou cam-
pos específicos em um modo personalizado, como por exemplo, para leitura, inserção,
exclusão ou atualização. Com relação a estes mecanismos, trarei abaixo maiores deta-
lhes, pois estes costumam ser mais cobrados nas provas de concursos. Vem comigo!

Comparando os dois modelos, verificamos que o as políticas de controle de acesso discri-


cionário são mais flexíveis, sendo então adequadas para uma grande variedade de domínios
de aplicação. Sua principal desvantagem é a vulnerabilidade para ataques maliciosos, como
Cavalos de Tróia embutidos em aplicações. Outra desvantagem é que não existe o controle
de como a informação está sendo propagada e utilizada após ter sido acessada. Já o controle
de acesso obrigatório garante alto grau de proteção, impedindo fluxos ilegais. São mais ade-
quados para aplicações que exigem maior nível de proteção. A sua desvantagem é ser muito
rígido, pois exigem uma classificação estrita de sujeitos e objetos nos níveis de segurança,
sendo então aplicado em poucos ambientes.

3.1.1. Controle Baseado na Concessão e Revogação de Privilégios

O método típico para impor o controle de acesso discricionário em um sistema de banco


de dados é baseado na concessão e revogação de privilégios, em um contexto de SGBD rela-
cionais. Se você já estou o assunto sobre Linguagem SQL, deve ter visto os comandos GRANT
e REVOKE, e é sobre eles que irei detalhar melhor, mas ante disso, vamos conhecer os dois
tipos comuns de privilégios discricionários.
Privilégio em Nível de Conta: Este nível de privilégio atua em um contexto mais alto, ou
seja, na conta mantida para determinados usuários, sem entrar nos detalhes de qual serão os
privilégios de atuação as tabelas (relações) do banco de dados. Podemos chamar de privilé-
gios de primeiro nível.
Privilégio em Nível de Tabela(relação): Neste nível, o controle de privilégios é exercido nos
acessos às tabelas ou visões individuais no banco de dados.
No privilégio de nível de conta podem ser incluídos os seguintes privilégios:

CREATE SCHEMA Criação de esquemas na base de dados

CREATE TABLE Criação de tabelas

CREATE VIEW Criação de visõ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 27 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima

CREATE SCHEMA Criação de esquemas na base de dados

Para aplicar mudanças de esquema, como por


ALTER exemplo, a inclusão ou remoção de atributos nas
relações (tabelas)

DROP Para exclusão de relações(tabelas) ou visões(views)

MODIFY Para inserir, excluir ou atualizar tuplas(linhas)

SELECT Para recuperar informações no banco de dados

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:

Também chamado de privilégio SELECT,


concede para uma tabela T o privilégio de usar
Privilégio Leitura
uma instrução SELECT para recuperação de
informações no banco de dados.

Concede a conta do usuário a possibilidade de


modificar tuplas (linhas) de uma tabela (relação)
Privilégios de T. Incluindo os privilégios para INSERT, UPDATE e
Modificações DELETE. No caso do INSERT e UPDATE é possível
especificar quais atributos da tabela T poderão ser
modificados.

Permitirá a conta ter capacidade de especificar


Privilégios de restrições de integridade, ou seja, de criar
Referência relacionamentos entre a tabela T e outras tabelas,
podendo restringir quais atributos serão usados.

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;

Um mesmo usuário pode receber vários papéis se for necessário.

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.

3.2. Formas de Ataque em Banco de Dados


Na nossa aula irei focar com você uma das principais forma de ataque em banco de dados,
que é por Injeção de SQL, porém existem outras formas de ataque existentes e que não posso
deixar de comentar. Vejamos abaixo:

Conhecido como DOS – Denial Of Service,


tem por objetivo tornar alguns recursos
indisponíveis, principalmente por estresse,
Negação de serviços ocasionado por tentativas sucessivas
de acesso, fazendo com os buffers sejam
“estourados”, travando equipamentos e
derrubando o serviço que estaria on-line.

Escalada de O usuário malicioso tenta elevar seu privilégio, através


privilégios não de ataques em pontos que estejam vulneráveis nos
autorizada SGBDs.

Diferente do ataque por escalda de privilégios não


Abuso de privilégios autorizada, este ataque é feito por pessoas que
possuem privilégios, atacando recursos do SGBD.

Um usuário malicioso consegue personificar a


identidade de um usuário legítimo. Geralmente
Autenticação fraca ocorrem em casos onde o esquema de autenticação
de usuário é muito fraco, facilitando a tentativa de
personificação.

3.2.1. Injeção de SQL

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.

O comando SQL é modificado na aplicação. Por


exemplo, na cláusula WHERE são acrescentada
Manipulação de SQL condições, ou acrescentando componentes
adicionais na consulta, como operadores de
UNION, INTERSECT ou MINUS.

Tenta acrescentar instruções SQL ou comandos


adicionais nas instruções SQL já existentes,
explorando algum bug na aplicação por tentativa de
Injeção de Código processamento de dados inválidos. A tentativa é mudar
o curso da execução de um programa para invasão e
obtenção de dados.

Nesse tipo de ataque, uma função do banco de


dados ou chamada de função do sistema operacional
Injeção de Chamada é inserida em uma instrução SQL vulnerável, para
de Função manipular os dados ou fazer uma chamada do sistema
privilegiada. Um exemplo, seria explorar uma função
relacionada com comunicação de rede.

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

Nesta técnica são utilizados comandos


parametrizados (PreparedStatement). Em vez
de embutir a entrada do usuário na instrução
SQL, ela deverá ser vinculada a um parâmetro.
Vejamos um exemplo abaixo:
PreparedStatement stmt = conn.
prepareStatement(“SELECT * FROM FUNCIONARIO
WHERE FUNCIONARO_ID=? AND SENHA=?”);
Variáveis de
stmt.setString(1, funcionario_id);
Ligação
stmt.setString(2, senha);
Perceba que em vez de embutir a entrada do
usuário na instrução, ela deverá ser vinculada
a um parâmetro. Neste exemplo, a entrada ‘1’
é atribuída(vinculada) à variável de ligação
“funcionário_id” e a entrada “2” à variável de
ligação “senha”, em vez de passar os parâmetros
de cadeia de caracteres diretamente.

Nesta técnica, será feita validação da entrada,


removendo caracteres de escape das cadeias de
caracteres de entrada ao utilizar a função Replace do
Filtragem da SQL. Um exemplo clássico, é substituir o uso de aspas
Entrada simples (‘’) por aspas duplas (“”). Alguns ataques podem
ser impedidos desta forma, pois os caracteres de escape
podem ser uados para injetar ataques de manipulação.

As funções de banco de dados, tanto padrão quanto


Segurança da personalizadas, devem ser restringidas, pois podem ser
Função exploradas nos ataques de injeção de função SQL.

007. (CEBRASPE/CESPE/TJ-CE/ANALISTA JUDICIÁRIO/CIÊNCIA DA COMPUTA-


ÇÃO/2014) A segurança é uma área importante a ser considerada pelos administradores de
bancos de dados das organizações, haja vista que a segurança visa proteger os bancos de
dados contra uma série de ameaças, sejam elas advindas de usuários internos ou externos. No
que se refere a esse assunto, assinale a opção correta.
a) Uma VIEW é um mecanismo válido para que se restrinja o acesso a certos atributos de uma
tabela, embora não seja possível criar restrições para um conjunto de tuplas
b) No controle de acesso, um usuário de banco de dados pode receber um privilégio específico
sem que esteja relacionado às tabelas do banco de dados.
c) Um usuário, uma vez que possua o privilégio de INSERT acerca de determinada tabela, não
pode receber novamente o referido privilégio para a mesma tabela.

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.

Questão maravilhosa para revisão, vamos por partes!


a) Errada. Que a view é uma possibilidade de exibição de dados customizada, ou seja, inibindo
alguns atributos de uma ou mais tabelas, tudo certo, mas, existe sim forma de restringir a visi-
bilidade de linhas(tuplas), basta criar uma view com base em uma consulta que tenha cláusula
WHERE com condições que tragam apenas um subconjunto de linhas de uma ou mais tabelas
e em seguida atribuir um privilégio de SELECT para algum usuário em relação a esta view, ou
seja, ele verá apenas dados que são filtrados ou seja, de algumas tuplas.
b) Certa. Trata-se de privilégios obrigatórios, baseado em papéis.
c) Errada. Poder receber ele pode, mas não vai fazer diferença alguma de forma direta. Ele
pode também estar associado a mais de uma ROLE (regra), onde em ambas, possam haver por
coincidência a mesma tabela envolvida.
d) Errada. As funções são alvo preferido dos ataques de Injeção de SQL, pois as funções podem
ter parâmetros de interesse para invasão, portanto seu uso em banco deve ser mais restrito.
e) Errada. Isso não garante estes acessos não autorizados, pode no máximo servir de auditoria
futura.
Letra b.

4. Políticas de Backup e Recuperação de Dados


Uma das atribuições mais importantes de um administrador de banco de dados (DBA) é
proteger constantemente a integridade dos bancos de dados e manter uma capacidade de
recuperação rápida em caso de falhas. Razões pela extrema importância na definição de uma
estratégia de backup e recuperação disponível em caso de emergência.
Uma das principais responsabilidades do administrador de banco de dados é garantir a
disponibilidade de um banco de dados sempre que necessário e estar preparado para vários
cenários onde a disponibilidade ou o desempenho podem ser afetados. Portanto, quando o
banco de dados é corrompido, por qualquer circunstância ou seja intencional ou acidentalmen-
te senão entrar em um estado inutilizável, o DBA é o principal responsável na restauração para
um estado de funcionamento com pouca ou nenhuma perda conforme.
Os DBAs precisam estar preparados para interagir com cenários de recuperação de desas-
tres. Uma forma de estar preparado consiste em testar as estratégias de backup e restauração
do banco de dados em intervalos regulares. Visando garantir uma recuperação perfeita dos

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.

Vamos conhecer um pouco sobre cada tipo de backup:


• Backup Normal: Copia todos os arquivos selecionados e os marca como arquivos que
passaram por backup (o atributo de arquivo é desmarcado). Com backups normais, você
só precisa 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 primeira 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 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.

008. (CEBRASPE/CESPE/CPRM/TÉCNICO JUDICIÁRIO/PROGRAMAÇÃO DE SISTE-


MAS/2013) A respeito da elaboração de becape e da manutenção de banco de dados, julgue
o item subsecutivo.
No processo de cópia de segurança de SGBD, é necessário fazer as cópias das tabelas de
dados, dispensando-se cópias das tabelas de índices, já que esses podem ser recriados poste-
riormente, sem que seja preciso ocupar espaço nas unidades de armazenamento das cópias.
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 36 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima

Isso não é bem verdade!


Existem diferentes estratégias de backup que podem ser adotadas pelo DBA, porém não exis-
te a “necessidade” de dispensar às tabelas de índices do processo de backup. Este é o ERRO
da questão.
Errado.

009. (CEBRASPE/CESPE/SERPRO/ANALISTA/SUPORTE TÉCNICO/2013) O becape de da-


dos que consiste na utilização de uma combinação dos tipos normal e diferencial exige menos
espaço de armazenamento, sendo o método de cópia mais rápido. No entanto, a recuperação
de arquivos copiados segundo esse método pode ser difícil e lenta, visto que o conjunto de
becape pode estar armazenado em vários discos ou fitas.

A questão misturou alguns conceitos.


Antes de qualquer coisa, ignore a forma de escrita “becape”, este não é o erro da questão, ape-
sar de alguns candidatos iniciantes levarem isso em consideração. As bancas, vez em quando
cometem estes deslizes, porém isso deve ser ignorado.
Como já vimos no resumo, à descrição da questão aponta para uma combinação de backup
normal com incremental e não normal com diferencial, este é o ERRO da questão.
Errado.

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.

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
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 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 tempo necessário para forçar a gravação de todos os buffers de memória modificados


pode atrasar o processamento da transação por causa da ação de “Forçar a gravação em disco
de todos os buffers da memória principal que foram modificados”. Para reduzir este atraso, é
comum usar uma técnica chamada de check point fuzzy. Nesta técnica, o sistema pode re-
tomar o processo da transação após um registro ser gravado em log sem esperar que a ação
“Gravar um registro (checkpoint) no log e forçar a gravação do log em disco” termine.

010. (CEBRASPE/CESPE/TRT-10ª/ANALISTA JUDICIÁRIO/TI/2013) Com relação a siste-


mas de gerenciamento de banco de dados, julgue os itens seguintes.
Os algoritmos undo-redo, buferização e fuzzy de checkpoint consistem em técnicas de realiza-
ção de becape de bancos de dados.

Mais uma questão que mistura conceitos.


Como já vimos antes no texto da aula, estas são técnicas de RECUPERAÇÃO e não de BACKUP.
Errado.

Bom vou ficando por aqui!


Um abração e bons estudos!!

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.

Principais atividades que devem ser executadas pelo AD:


• Definir os dados necessários à obtenção das informações solicitadas;
• Elaborar, propor e manter os modelos de dados;
• Definir os níveis de integridade e segurança dos dados nos diversos níveis em que a
informação solicitada;
• Progredir;
• Ter perfeito conhecimento dos processos empresariais como um todo;
• Elaborar e promover padrões de dados como dicionários, nomes, tipos, dentre outros

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.

Ajustes de Performance – Método Proativo

Ajuste das regras de negócio

Ajuste do projeto de base de dados

Ajuste do projeto da aplicação

Ajuste da estrutura lógica da BD

Ajuste das operações de base de dados

Ajuste dos caminhos de acesso

Ajuste da alocação de memória

Ajuste de I/O e estrutura física

Ajuste da contenção de recursos

Ajuste das plataformas básicas

Ajustes em comandos SQL:


• Reestruturação de Índices;
• Reestruturação do comando SQL;
• Modificar ou desabilitar gatilhos (triggers);
• Armazenar dados derivados;
• É importante conhecer as etapas que seguem desde o código escrito em SQL na apli-
cação ou chamada SQL, até ele ser de fato executado. Em uma visão de mais alto nível,
o processamento do comando em SQL segue as seguintes etapas:

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

Análise do código fonte em busca


de erros (validação).

Uso de otimizador SQL para obter


um plano de execução.

O script é executado com base no


plano elaborado.

Busca os dados e retorna o


resultado.

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.

Uso de Índices para melhorar performance:


• Índice clusterizado: um índice clusterizado determina a sequência de armazenamento
dos registros em uma tabela. Eles são usados ​​para campos em que são realizadas bus-
cas frequentes ou que são acessados ​​de forma ordenada. Uma tabela pode ter somente
um índice clusterizado (pela necessidade de ordenação do campo indexado);

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

• Índice não clusterizado: os dados são armazenados em local diferente do índice e os


ponteiros indicam o armazenamento de objetos indexados na tabela. Este tipo de índice
é utilizado quando se realizam buscas em campos onde os dados sejam únicos. De
uma forma geral, os índices do tipo não clusterizados devem ser utilizados quando os
campos são: frequentemente usados nos critérios de pesquisa, usados para se juntar
a outras tabelas, usados como campos de chave estrangeira ou na cláusula order by.

Seguranç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 ape-
nas 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 recebem
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 mo-
delo mais conhecido chamado de modelo de Bell-LaPadula.

Controle baseado na concessão e revogação de privilégios.


O método típico para impor o controle de acesso discricionário em um sistema de banco
de dados é baseado na concessão e revogação de privilégios, em um contexto de SGBD rela-
cionais. Se você já estou o assunto sobre Linguagem SQL, deve ter visto os comandos GRANT
e REVOKE, e é sobre eles que irei detalhar melhor, mas ante disso, vamos conhecer os dois
tipos comuns de privilégios discricionários.
Privilégio em Nível de Conta: este nível de privilégio atua em um contexto mais alto, ou
seja, na conta mantida para determinados usuários, sem entrar nos detalhes de qual serão os
privilégios de atuação as tabelas (relações) do banco de dados. Podemos chamar de privilé-
gios de primeiro nível.
Privilégio em Nível de Tabela(relação): neste nível, o controle de privilégios é exercido nos
acessos às tabelas ou visões individuais 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 44 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima

No privilégio de nível de conta podem ser incluídos os seguintes privilégios:

CREATE SCHEMA Criação de esquemas na base de dados

CREATE TABLE Criação de tabelas

CREATE VIEW Criação de visões

Para aplicar mudanças de esquema, como por


ALTER exemplo, a inclusão ou remoção de atributos nas
relações (tabelas)

DROP Para exclusão de relações(tabelas) ou visões(views)

MODIFY Para inserir, excluir ou atualizar tuplas(linhas)

SELECT Para recuperar informações no banco de dados

Abaixo eu listo os três principais tipos de privilégio que podem ser concedidos para uma
tabela T, por exemplo:

Também chamado de privilégio SELECT,


concede para uma tabela T o privilégio de usar
Privilégio Leitura
uma instrução SELECT para recuperação de
informações no banco de dados.

Concede a conta do usuário a possibilidade de


modificar tuplas (linhas) de uma tabela (relação)
Privilégios de T. Incluindo os privilégios para INSERT, UPDATE e
Modificações DELETE. No caso do INSERT e UPDATE é possível
especificar quais atributos da tabela T poderão ser
modificados.

Permitirá a conta ter capacidade de especificar


Privilégios de restrições de integridade, ou seja, de criar
Referência relacionamentos entre a tabela T e outras tabelas,
podendo restringir quais atributos serão usados.

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

Formas de ataque em banco de dados:

Conhecido como DOS – Denial Of Service,


tem por objetivo tornar alguns recursos
indisponíveis, principalmente por estresse,
Negação de serviços ocasionado por tentativas sucessivas
de acesso, fazendo com os buffers sejam
“estourados”, travando equipamentos e
derrubando o serviço que estaria on-line.

Escalada de O usuário malicioso tenta elevar seu privilégio,


privilégios não através de ataques em pontos que estejam
autorizada vulneráveis nos SGBDs.

Diferente do ataque por escalda de privilégios não


Abuso de privilégios autorizada, este ataque é feito por pessoas que
possuem privilégios, atacando recursos do SGBD.

Um usuário malicioso consegue personificar a


identidade de um usuário legítimo. Geralmente
Autenticação fraca ocorrem em casos onde o esquema de
autenticação de usuário é muito fraco, facilitando
a tentativa de personificação.

Injeção de SQL

Tipos de ataques possíveis por via de injeção de SQL, segundo Navathe.

O comando SQL é modificado na aplicação. Por


exemplo, na cláusula WHERE são acrescentada
Manipulação de SQL condições, ou acrescentando componentes
adicionais na consulta, como operadores de
UNION, INTERSECT ou MINUS.

Tenta acrescentar instruções SQL ou comandos


adicionais nas instruções SQL já existentes,
explorando algum bug na aplicação por tentativa de
Injeção de Código processamento de dados inválidos. A tentativa é mudar
o curso da execução de um programa para invasão e
obtenção 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 46 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima

O comando SQL é modificado na aplicação. Por


exemplo, na cláusula WHERE são acrescentada
Manipulação de SQL condições, ou acrescentando componentes
adicionais na consulta, como operadores de
UNION, INTERSECT ou MINUS.

Nesse tipo de ataque, uma função do banco de


dados ou chamada de função do sistema operacional
Injeção de Chamada é inserida em uma instrução SQL vulnerável, para
de Função manipular os dados ou fazer uma chamada do sistema
privilegiada. Um exemplo, seria explorar uma função
relacionada com comunicação de rede.

Técnicas de proteção contra a injeção de SQL:

Nesta técnica são utilizados comandos


parametrizados (PreparedStatement). Em vez
de embutir a entrada do usuário na instrução
SQL, ela deverá ser vinculada a um parâmetro.
Vejamos um exemplo abaixo:
PreparedStatement stmt = conn.
prepareStatement(“SELECT * FROM FUNCIONARIO
WHERE FUNCIONARO_ID=? AND SENHA=?”);
Variáveis de
stmt.setString(1, funcionario_id);
Ligação
stmt.setString(2, senha);
Perceba que em vez de embutir a entrada do
usuário na instrução, ela deverá ser vinculada
a um parâmetro. Neste exemplo, a entrada ‘1’
é atribuída(vinculada) à variável de ligação
“funcionário_id” e a entrada “2” à variável de
ligação “senha”, em vez de passar os parâmetros
de cadeia de caracteres diretamente.

Nesta técnica, será feita validação da entrada,


removendo caracteres de escape das cadeias de
caracteres de entrada ao utilizar a função Replace do
Filtragem da SQL. Um exemplo clássico, é substituir o uso de aspas
Entrada simples (‘’) por aspas duplas (“”). Alguns ataques podem
ser impedidos desta forma, pois os caracteres de escape
podem ser uados para injetar ataques de manipulação.

As funções de banco de dados, tanto padrão quanto


Segurança da personalizadas, devem ser restringidas, pois podem ser
Função exploradas nos ataques de injeção de função 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 47 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima

Políticas de Backup e Recuperação de Dados

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

Papéis Correção em problemas de performance


Método Obrigatório
Linhas Workload
Mais flexíveis Método Discricionário Throughput
Classificação dos dados e dos usuários Fatores que influenciam Recursos
Âmbito governamental Método Mandatório Otimização
Dados sensíveis Tuning Contenção
Negação de serviço Reestruturação de índices
Escalada de privilégios não autorizada Reestruturação de comandos SQL
Formas de Ataque Ajustes SQL
Abuso de privilégios Modificar e desabilitar triggers
Autenticação fraca Evitar uso de group by
Manipulação de SQL
Injeção de Código Injeção de SQL
Injeção de chamadas de função

www.grancursosonline.com.br 50 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima

QUESTÕES COMENTADAS EM AULA


001. (CEBRASPE/CESPE/TJ-AC/ANALISTA JUDICIÁRIO/ANALISTA DE SISTEMAS/2012)
No que se refere à otimização do desempenho (tuning) de bancos de dados, julgue os pró-
ximos itens.
Entre os fatores que podem influenciar o tuning de um banco de dados incluem-se workload,
throughput, recursos, otimização e contenção.

002. (CEBRASPE/CESPE/MPU/ANALISTA DE INFORMÁTICA/2010) Julgue os itens a se-


guir acerca de técnicas de análise de desempenho e otimização de consultas SQL em ban-
co de dados.
O processo de otimização de consultas SQL aumenta o throughput do sistema e permite dimi-
nuir a contenção, fazendo que, no mesmo intervalo de tempo, necessariamente, seja requerida
a execução de maior workload que na situação sem otimização.

003. (CEBRASPE/CESPE/BANCO DA AMAZÔNIA/TÉCNICO CIENTÍFICO/ADMINISTRA-


ÇÃO DE DADOS/2012) Julgue os itens a seguir acerca de técnicas de análise de desempenho
e otimização de consultas SQL em banco de dados.
No tuning de banco de dados, a reestruturação de índices mediante a criação de novos índices
em tabelas em que o número de acessos é elevado consiste em uma ação que torna mais efi-
ciente a realização de operações nessa tabela.

004. (CEBRASPE/CESPE/MPU/ANALISTA/SUPORTE E INFRAESTRUTURA/2013) Julgue


os itens subsequentes, acerca de administração de bancos de dados.
Se a monitoração de uma consulta identificar a existência de baixo desempenho no acesso
relacionado a uma tabela específica, a redefinição de índices otimizará todos os acessos a
essa tabela.

005. (CEBRASPE/CESPE/MEC/ADMINISTRADOR DE BANCO DE DADOS/2015) Com rela-


ção à análise de desempenho e tunning de banco de dados, julgue o item subsequente.
A maior parte dos problemas de desempenho em banco de dados não está relacionada à
aplicação, mas sim às configurações incorretas dos arquivos de parâmetros realizadas pelos
administradores de banco de dados.

006. (CEBRASPE/CESPE/MEC/ADMINISTRADOR DE BANCO DE DADOS/2015) Com rela-


ção à análise de desempenho e tunning de banco de dados, julgue o item subsequente.
Nas situações em que muitos usuários realizam inserções de forma concorrente, uma boa
prática com relação ao planejamento do desempenho consiste em organizar as inserções de
modo que elas envolvam a menor quantidade de tabelas possí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 51 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima

007. (CEBRASPE/CESPE/TJ-CE/ANALISTA JUDICIÁRIO/CIÊNCIA DA COMPUTA-


ÇÃO/2014) A segurança é uma área importante a ser considerada pelos administradores de
bancos de dados das organizações, haja vista que a segurança visa proteger os bancos de
dados contra uma série de ameaças, sejam elas advindas de usuários internos ou externos. No
que se refere a esse assunto, assinale a opção correta.
a) Uma VIEW é um mecanismo válido para que se restrinja o acesso a certos atributos de uma
tabela, embora não seja possível criar restrições para um conjunto de tuplas
b) No controle de acesso, um usuário de banco de dados pode receber um privilégio específico
sem que esteja relacionado às tabelas do banco de dados.
c) Um usuário, uma vez que possua o privilégio de INSERT acerca de determinada tabela, não
pode receber novamente o referido privilégio para a mesma tabela.
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.

008. (CEBRASPE/CESPE/CPRM/TÉCNICO JUDICIÁRIO/PROGRAMAÇÃO DE SISTE-


MAS/2013) A respeito da elaboração de becape e da manutenção de banco de dados, julgue
o item subsecutivo.
No processo de cópia de segurança de SGBD, é necessário fazer as cópias das tabelas de
dados, dispensando-se cópias das tabelas de índices, já que esses podem ser recriados poste-
riormente, sem que seja preciso ocupar espaço nas unidades de armazenamento das cópias.

009. (CEBRASPE/CESPE/SERPRO/ANALISTA/SUPORTE TÉCNICO/2013) O becape de da-


dos que consiste na utilização de uma combinação dos tipos normal e diferencial exige menos
espaço de armazenamento, sendo o método de cópia mais rápido. No entanto, a recuperação
de arquivos copiados segundo esse método pode ser difícil e lenta, visto que o conjunto de
becape pode estar armazenado em vários discos ou fitas.

010. (CEBRASPE/CESPE/TRT-10ª/ANALISTA JUDICIÁRIO/TI/2013) Com relação a siste-


mas de gerenciamento de banco de dados, julgue os itens seguintes.
Os algoritmos undo-redo, buferização e fuzzy de checkpoint consistem em técnicas de realiza-
ção de becape de bancos 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 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.

Vamos lá, vem comigo.


As atividades que fazem parte do universo do DBA estão mais voltados para o SGBD na ques-
tão de infraestrutura do banco, como por exemplo, o esquema interno do banco, administração
dos índices, realização de técnicas e tuning, gerenciamento de permissões, backup e restore
de dados (descarga e recarga), dentre outros.
O AD está mais próximo do negócio, ajudando a definir padrões de dados, nomenclaturas para
melhor descrição dos nomes das tabelas e atributos, ajuda na definição do modelo conceitual,
que é de mais alto nível.
A questão em seu enunciado direciona a saber qual atividade estaria mais relacionada com
atividade do AD, do que a do DBA. Isso fica evidente quando o examinador diz “Ao responsável
pelas decisões estratégicas e de normas com relação aos dados da empresa cabe também”.
Neste contexto, a definição do modelo conceitual é a reposta.
Letra b.

012. (CEBRASPE/CESPE/TCE-MG/ANALISTA DE CONTROLE EXTERNO/CIÊNCIA DA COM-


PUTAÇÃO/2018) Em uma organização, é atribuição da administração de dados
a) definir e criar tabelas, índices e outros objetos.
b) monitorar e ajustar a performance do banco de dados.
c) manter o tempo de resposta do SGBD adequado às expectativas dos usuários.
d) conhecer as características de funcionamento e operação do SGBD adotado.
e) identificar, documentar e modelar os dados que serão armazenados e gerenciados

Mais uma questão para guardar para revisão.


As atividades que fazem parte do rol de competências de um AD-Administrador de Dados, está
em muito mais próximo do apoio ao negócio na organização dos dados, em sua nomenclatura,

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

padronização, documentação e modelagem, para posteriormente as atividades de criação do


modelo físico, com base no modelo lógico, possa ser executado por um DBA. Quanto ao DBA,
cabe, dentre outras atividades, as de definir e criar tabelas e índices, definir privilégios de aces-
so, realizar tuning no SGBD para melhorar performance, conhecer das características do SGBD
definido para uso na organização.
Letra e.

013. (CEBRASPE/CESPE/EBSERH/ANALISTA TI/2018) Com relação a banco de dados, jul-


gue o item seguinte.
Após um banco de dados ser criado, o administrador executa uma série de tarefas para dar
permissão de acesso aos usuários que necessitam ler e gravar informações na base de dados.
A responsabilidade de gerir os acessos ao banco de dados é do sistema gerenciador de banco
de dados (SGBD).

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.

014. (CEBRASPE/CESPE/MPU/ANALISTA DE INFORMÁTICA/BANCO DE DADOS/2010)


Em relação aos aspectos de segurança de SGBDs, julgue os itens a seguir.
O administrador de banco de dados deve especificar os privilégios de acesso a cada usuário ou
grupo de usuários, sendo que o SGBD provê acesso seletivo a cada relação no banco de dados
embasada em contas específicas.

A questão está CERTA, e bem delimitada quanto às atribuições do DBA e funcionalida-


des do SGBD.
A primeira parte da questão traz uma característica dos mecanismos de segurança discricio-
nário, enquanto a segunda parte está mais para mecanismos obrigatórios, pois traz uma forma
de controle mais detalhada e rígida, em nível de relação (tabela).
Certo.

015. (CEBRASPE/CESPE/CORREIOS/ANALISTA DE CORREIOS/PRODUÇÃO/2011) Jul-


gue os itens subsequentes, relativos à segurança e à integridade de banco de dados e à lin-
guagem 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 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.

016. (CEBRASPE/CESPE/BANCO DA AMAZÔNIA/TÉCNICO CIENTÍFICO/ADMINISTRA-


ÇÃO DE DADOS/2010) Entre os objetivos do tunning incluem-se fazer com que as aplicações
sejam executadas mais rapidamente e diminuir o tempo de resposta de consultas e transa-
ções. No entanto, o tunning não permite a melhora do desempenho geral das transações, uma
vez que isso é tarefa exclusiva do desenvolvedor do software.

Muito fácil colocar sempre a culpa no programador né, coitado!


Como já vimos em comentários anteriores, o tuning permite sim a melhoria no desempenho
das transações. O desenvolvedor deve prezar pelo uso de boas práticas, uso de padrões, a fim
de obter melhor resultado nas respostas das suas aplicações, porém isso não é sua “tarefa
exclusiva”, conforme afirma a questão.
A melhoria de resposta no banco de dados, através de técnicas de tuning, podem ser feitas
pelo DBA, como por exemplo gerenciar os índices existentes, conversar com a equipe da infra
estrutura para tentar identificar possíveis gargalos nos ativos de infraestrutura utilizados.
Diante disto, a questão está ERRADA.
Errado.

017. (CEBRASPE/CESPE/STF/ANALISTA JUDICIÁRIO/SUPORTE EM TI/2013) Julgue os


itens subsecutivos, com relação ao tunning de banco de dados.
O tunning de um banco de dados relacional deve garantir a normalização das tabelas im-
plementadas.

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.

018. (CEBRASPE/CESPE/BANCO DA AMAZÔNIA/TÉCNICO CIENTÍFICO/TECNOLOGIA DA


INFORMAÇÃO/ADMINISTRAÇÃO DE DADOS/2010) As entradas para o processo de tunning
incluem estatísticas relacionadas a vários fatores, como tamanho de tabelas individuais, nú-
mero de valores distintos em uma coluna e número de vezes que uma consulta ou transação é
realizada em um intervalo de tempo.

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.

019. (CEBRASPE/CESPE/HEMOBRÁS/ANALISTA DE GESTÃO CORPORATIVA-ADMINIS-


TRADOR DE BANCO DE DADOS/2008) Com base nos conceitos de uso de métricas de de-
sempenho e a gerência de falhas em bancos de dados, analise os itens a seguir.
Os DBAs podem fazer tunning de um banco de dados em três níveis. O nível mais baixo é o de
hardware, em que ações tais como avaliação de sistema de discos e ajustes na memória e no
processador são procedentes.

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.

020. (CEBRASPE/CESPE/BASA/ADMINISTRADOR DE BANCO DE DADOS/2010) Considere


que o administrador de banco de dados (DBA) de uma empresa de software tenha sido encar-
regado de verificar a situação do BD da instituição e que, ao concluir essa tarefa, tenha cons-
tatado que a instituição não dispunha de nenhum projeto lógico e físico dos dados relativos ao
BD. A partir dessa situação, julgue os itens seguintes.
Se após a análise dos dados, o administrador descobrir que eles estão muito desorganizados,
motivando baixo desempenho dos sistemas em operação, deve ser feita uma mudança gradu-
al dos dados para melhorar a situação da empresa nesse setor.

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:

É necessário monitorar e revisar o projeto físico do banco de dados constantemente. Os objetivos


da sintonização (tuning) são os seguintes:
– Fazer com que as aplicações sejam executadas mais rapidamente.
– Diminuir o tempo de resposta de consultas/transações.
– Melhorar o desempenho geral das transações.”
Certo.

021. (CEBRASPE/CESPE/MPU/ANALISTA DE INFORMÁTICA/2010) Julgue os itens a se-


guir acerca de técnicas de análise de desempenho e otimização de consultas SQL em ban-
co de dados.
Na fase de projeto, considera-se o volume esperado de dados em cada relação e quais con-
sultas serão realizadas com mais frequência como indicadores para prever o desempenho do
banco de dados.

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

contexto de desenvolvimento de uma solução, encontramos no início as fases de Levantamen-


to de Requisitos, onde incluímos os Requisitos de Dados.
Nesta etapa de requisitos de dados, o profissional responsável por coletar tais requisitos junto
ao responsável pelo negócio, indaga o mesmo quanto à frequência de solicitação ou trâmite
de informação em determinada área, o quanto isso é significativo para a solução, pergunta
quais seriam as principais formas de consulta e dentre elas às mais frequentes, enfim, tudo
isso dá subsídio para decidir sobre o adequado uso de índices, bem como a estrutura física de
armazenamento que deva ser mais bem adotada e expansão desta estrutura de acordo com o
volume de dados que poderá ser armazenado.
Diante disto, será possível estimar o desempenho do banco de dados e prever ações para mi-
tigar a perda de performance.
Certo.

022. (CEBRASPE/CESPE/MPU/ANALISTA DE INFORMÁTICA/2010) Julgue os itens a se-


guir acerca de técnicas de análise de desempenho e otimização de consultas SQL em ban-
co de dados.
As técnicas de otimização embasadas em heurísticas permitem estimar, sistematicamente,
o custo de estratégias de execução diferentes e escolher o plano de execução com o menor
custo estimado.

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.

023. (CEBRASPE/CESPE/ANTAQ/ANALISTA ADMINISTRATIVO/INFRAESTRUTURA DE


TI/2014) A respeito de segurança em banco de dados, julgue o item abaixo.
A principal desvantagem dos modelos de políticas de controle discricionário em relação às
políticas de acesso obrigatório é a sua vulnerabilidade a ataques maliciosos.

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

desvantagem dos modelos DAC (Controle de acesso discricionário) é sua vulnerabilidade a


ataques maliciosos, como cavalos de Troia embutidos nos programas de aplicação.”
Certo.

024. (CEBRASPE/CESPE/ANATEL/ANALISTA ADMINISTRATIVO/SUPORTE E INFEAES-


TRUTURA DE TI/2014) Acerca das tecnologias de segurança e dos ataques eletrônicos, julgue
os itens a seguir.
Os ataques de SQL Injection do tipo code injection se caracterizam por tentar modificar um
comando SQL já existente mediante a adição de elementos à cláusula WHERE ou a extensão
do comando SQL com operadores como UNION, INTERSECT ou MINUS.

Mais uma questão retirada do livro do Navathe, vejamos:

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.

025. (CEBRASPE/CESPE/CORREIOS/ANALISTA DE SISTEMAS/2011) Julgue os itens sub-


sequentes, relativos à segurança e à integridade de banco de dados e à linguagem SQL.
O uso de visão em banco de dados é uma forma de aumentar a sua segurança, pois impe-
de o acesso direto aos dados de uma tabela, fornecendo somente os dados considerados
necessários.

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.

026. (CEBRASPE/CESPE/CORREIOS/ANALISTA DE SISTEMAS/2011) Julgue os itens sub-


sequentes, relativos à segurança e à integridade de banco de dados e à linguagem SQL.
As restrições de domínio em um banco de dados aumentam o nível de segurança, mas não
contribuem para a avaliação da integridade dos dados inseridos.

A banca tenta confundir nos conceitos e associações. Vem comigo.


As restrições de domínio fazem parte do rol de restrições de integridade, a fim de garantir o uso
padronizado de informações no banco de dados, buscando garantir que não haja inconsistên-
cias, principalmente quando há necessidade de comparar 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 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.

027. (CEBRASPE/CESPE/MPU/ANALISTA DE INFORMÁTICA/BANCO DE DADOS/2010)


Em relação aos aspectos de segurança de SGBDs, julgue os itens a seguir.
Considerando um modelo relacional de banco de dados, o axioma de segurança a seguir está
corretamente apresentado: se o usuário i não tiver acesso SELECT à combinação de atributo
A, então ele também não tem acesso UPDATE ao A.

Os privilégios concedidos(GRANT) para operações em relações(tabelas), podem ser para ob-


ter dados (SELECT), alterar dados (UPDATE) e excluir dados (DELETE), porém cada um deles
é concedido explicitamente, ou seja, se um usuário precisa ler e alterar, o comando de GRANT
precisa ter nele o SELECT e o UPDATE.
Neste sentido, a questão está certa, pois no axioma da questão o acesso SELECT, quanto o
UPDATE não foram concedidos e nem um deles tem permissões implícitas.
Certo.

028. (CEBRASPE/CESPE/MPU/ANALISTA DE INFORMÁTICA/BANCO DE DADOS/2010)


Em relação aos aspectos de segurança de SGBDs, julgue os itens a seguir.
O administrador de banco de dados deve especificar os privilégios de acesso a cada usuário ou
grupo de usuários, sendo que o SGBD provê acesso seletivo a cada relação no banco de dados
embasada em contas específicas.

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.

029. (CEBRASPE/CESPE/MPU/ANALISTA DE INFORMÁTICA/BANCO DE DADOS/2010)


Em relação aos aspectos de segurança de SGBDs, julgue os itens a seguir.
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 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 perfeita e boa para revisão.


Ela aborda o conceito abordado pelo Navathe, sobre os tipos de Privilégios Discricionários, que
podem ser em Nível de Conta e em Nível de Relação.
Certo.

030. (CEBRASPE/CESPE/BACEN/ANALISTA/SUPORTE À INFRAESTRUTURA DE TECNO-


LOGIA DA INFORMAÇÃO/2013) Julgue o item que se segue, relativo às cópias de segurança.
Tanto o becape incremental, quanto o diferencial copiam arquivos criados ou alterados desde
o último becape normal, e o becape incremental não desmarca o atributo de arquivo

A questão tenta confundir os conceitos referentes ao backup incremental.


O 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 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.
Errado.

031. (CEBRASPE/CESPE/TCE-SC/AUDITOR DE TECNOLOGIA DA INFORMAÇÃO/2016) A


respeito de sistemas de becape e restauração, julgue o próximo item.
O becape do tipo incremental provê o uso mais eficiente do espaço de armazenamento, uma
vez que não gera cópias duplicadas de arquivos, porém suas restaurações são mais lentas e
mais complexas em comparação aos processos dos becapes full e diferencial.

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.

032. (CEBRASPE/CESPE/BANCO DA AMAZÔNIA/TÉCNICO CIENTÍFICO – ADMINISTRA-


DOR DE DADOS/2012) Julgue os itens que se seguem, relativos aos procedimentos de ba-
ckup de banco de dados.
1) A fim de que a recuperação de um banco de dados seja capaz de recompor todos os
dados sem nenhuma perda em caso de falha, é necessário que seja realizado backup do
log de transações ativas.
2) O uso de backups diferenciais em conjunto com backups de log de transação reduz o
tempo de restauração do banco de dados em caso de falha, comparando-se a situações
em que os backups diferenciais não tenham sido criados.

Vamos analisar as alternativas acima.


A alternativa 1. Está correta, pois os logs servem para armazenar registros das transações
ocorridas, seja com INSERT, UPDATE ou DELETE e servem para em caso de recuperação trazer
a situação para o estado antes da falha ocorrida, sem perda de dados. Para isso os SGBDs
fazem o armazenamento dos logs ativos e tempos em tempos para que possa garantir o seu
uso em casos de necessidades.
A alternativa 2. Também está correta, pois os logs de backups full, em caso de recuperação, se-
rão mais demorados do que se fosse feito backup diferencial, junto com os backups dos logs
de transação, pois nestes último o tempo de leitura para recuperação seria menor.
Certo. Certo.

033. (CEBRASPE/CESPE/BANCO DA AMAZÔNIA/TÉCNICO CIENTÍFICO/ADMINISTRA-


DOR DE DADOS/2012) Julgue os itens que se seguem, relativos aos procedimentos de ba-
ckup de banco de dados.
Os procedimentos de recuperação de um banco de dados devem prever uma sequência de
operações que se inicie com a restauração de um backup diferencial, quando ele existir.

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.

034. (CEBRASPE/CESPE/MEC/TÉCNICO DE NÍVEL SUPERIOR/ANALISTA DE SEGURAN-


ÇA/2015) Com relação aos sistemas de becape, julgue os itens que se seguem.
Um becape completo consiste na cópia de todos os arquivos para a mídia de becape.

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.

035. (CEBRASPE/CESPE/TCDF/ANALISTA DE ADMINISTRAÇÃO PÚBLICA/SISTEMAS DE


TECNOLOGIA DA INFORMAÇÃO/2014) Julgue os seguintes itens, acerca de sistemas de ge-
renciamento de bancos de dados (SGBD) e de cópias de segurança de dados.
No caso de a atualização de dados ocorrer com frequência e de esses dados serem conside-
rados de alto valor, recomenda-se a implementação de becapes diferenciais.

Bela questão para revisão, vamos lá!


Os backups diferenciais armazenam os dados que foram alterados desde o evento do último
backup do tipo full, ou seja, neste tipo de backup mais dados são armazenados e consequen-
temente mais tempo na sua realização, o que garante a segurança de recuperação de dados
importantes perdidos em casos de falha ou incidentes.
Comparando com o backup incremental, este tende a ser mais lento do que o diferencial, uma
vez que este necessita do último backup full, além de todos os incrementais.
Neste caso, a questão está correta.
Certo.

036. (CEBRASPE/CESPE/TJSE/ANALISTA JUDICIÁRIO/BANCO DE DADOS/2014) No que


se refere a becape e restauração de dados, julgue os próximos itens.
1) Mesmo com a realização de becapes totais e incrementais dos bancos de dados, é pos-
sível haver perda de dados em casos de desastres.
1) O becape total de um banco de dados permite que esse banco seja restaurado a qual-
quer ponto temporal específico.

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.

037. (CEBRASPE/CESPE/CRPM/ANALISTA EM GEOCIÊNCIAS/SISTEMAS DE INFORMA-


ÇÃO/2013) A respeito de becape e restore, julgue os itens seguintes.
Considere que, em uma empresa, seja realizado becape de segunda-feira a sexta-feira. Con-
sidere, ainda, que seja executado becape completo na segunda-feira e que sejam executados
becapes do tipo incremental de terça-feira a sexta-feira. Nessa situação, o becape realizado na
quinta-feira não contemplará os dados do becape realizado na segunda-feira, mas contempla-
rá os dados que foram modificados na quinta-feira.

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.

038. (CEBRASPE/CESPE/ABIN/ÁREA 08/2018) A respeito de sistemas gerenciadores de


banco de dados, julgue os próximos itens.
No processo de otimização de consulta a banco de dados, é necessário coletar informações a
respeito do tamanho dos campos envolvidos nos processos de exclusão das tabelas.

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

039. (CEBRASPE/CESPE/BANCO DA AMAZÔNIA/TÉCNICO CIENTÍFICO/ADMINISTRA-


DOR DE DADOS/2012) Com relação a tuning em banco de dados, julgue os itens subsecutivos.
Em um banco de dados, a despeito de a normalização reduzir a replicação de dados, ela nem
sempre proporciona o bom desempenho das operações de acesso a esses dados.

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.

040. (CEBRASPE/CESPE/BANCO DA AMAZÔNIA/TÉCNICO CIENTÍFICO/ADMINISTRA-


DOR DE DADOS/2012) Com relação a tuning em banco de dados, julgue os itens subsecutivos.
Entre os elementos que influenciam significativamente o desempenho de consultas a banco de
dados, destaca-se a ordem em que são usados os joins na reestruturação de consultas SQL.

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.

041. (CEBRASPE/CESPE/BANCO DA AMAZÔNIA/TÉCNICO CIENTÍFICO/ADMINISTRA-


DOR DE DADOS/2012) Com relação a tuning em banco de dados, julgue os itens subsecutivos.
A inclusão de gatilhos (triggers) propicia melhor desempenho do banco de dados, em virtude de
eliminar a necessidade de execução de algumas operações de acesso a esse banco de dados.

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.

042. (CEBRASPE/CESPE/BANCO DA AMAZÔNIA/TÉCNICO CIENTÍFICO/ADMINISTRA-


DOR DE DADOS/2012) Com relação a tuning em banco de dados, julgue os itens subsecutivos.
No processo de tuning de um banco de dados, devem ser consideradas questões relativas à
otimização de índices e consultas, bem como à configuração de 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 65 de 71
BANCO DE DADOS E BI
Administração de Banco de Dados
Luis Octavio Lima

Boa questão para revisão.


O uso de índices pode ocasionar queda de performance quando criados para indexar atribu-
tos pouco utilizados, gerando um gargalo de atualização de índices desnecessários, por isso,
otimizar índices é uma das atividades realizadas pelo DBA em algumas ocasiões, apesar de
alguns SGBDs fazerem isso de forma automática. Mas, nem tudo é culpa do SGBD, existem
outros ativos na infraestrutura que podem causar queda de performance, como sistema ope-
racional, rede, tráfego, dentre outros. Questão certíssima.
Certo.

043. (CEBRASPE/CESPE/SERPRO/ANALISTA/ADMINISTRAÇÃO DE SERVIÇOS DE TECNO-


LOGIA DA INFORMAÇÃO/2013) A respeito de banco de dados, julgue os itens subsequentes.
Os administradores de banco de dados podem ajustar o desempenho (tuning performance) de
um sistema de banco de dados para uma aplicação específica no nível do hardware, por meio
dos parâmetros do sistema de banco de dados e do projeto do esquema.

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.

044. (CEBRASPE/CESPE/TCE-PA/AUDITOR DE CONTROLE EXTERNO/INFORMÁTI-


CA/2016) Acerca de segurança de banco de dados e de desenvolvimento de software, julgue
o item subsecutivo.
Os bancos de dados NoSQL são imunes a ataques de injeção SQL.

O examinador busca candidato(a)s desprevenidos, que não é o seu caso.


NoSQL são bancos de dados quer permitem trabalhar com dados semiestruturados, e significa
“Não apenas SQL”, ou seja, a banca quis aproveitar o nome para induzir que são bancos sem
SQL e com isso não haveria ataques de injeção de SQL, o que é falso, pois até os bancos NoS-
QL são passíveis de ataque.
Errado.

045. (CEBRASPE/CESPE/MEC/ANALISTA DE SEGURANÇA/2015) Considere que o capítu-


lo sobre segurança de bancos de dados contenha recomendação de adoção de arquiteturas
seguras, modelos e sistemas de controle de acesso e procedimentos de classificação, entre
outros. A esse respeito, julgue o item subsequente.

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

A adoção de controle de acessos a dados aderente ao modelo mandatório depende da adoção


de procedimentos de rotulagem de segurança que sejam aplicáveis tanto aos usuários quanto
aos dados.

O Mandatory Access Control (MAC) – Controle de Acesso Mandatório, é bastante implementa-


do em ambiente governamentais ou instituições que trabalhem com dados sensíveis.
Estes dados são classificados como sendo: Não Classificado, Confidencial, Secreto ou Ul-
tra Secreto.
O controle mandatório se dá tanto para pessoas ou usuários que podem ou não acessar de-
terminadas informações, como também nos dados que poderão ser acessado ou não, por
determinadas pessoas, a depender da classificação adotada.
Certo.

046. (CEBRASPE/CESPE/TRT-8ª/ANALISTA JUDICIÁRIO/TECNOLOGIA DA INFORMA-


ÇÃO/2013) Com base nos conceitos de melhoria de desempenho de um banco de dados,
assinale a opção correta. Nesse sentido, considere que a sigla SGBD, sempre que utilizada,
refere-se a sistema gerenciador de banco de dados.
É possível determinar a necessidade de um índice — elemento fundamental que acelera o aces-
so aos dados — por meio da esparsividade dos dados da coluna que se deseja indexar, uma
vez que ela leva em consideração o número de valores diferentes que uma coluna pode ter.

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.

047. (CEBRASPE/CESPE/TRT-8ª/ANALISTA JUDICIÁRIO/TECNOLOGIA DA INFORMA-


ÇÃO/2013) Com base nos conceitos de melhoria de desempenho de um banco de dados,
assinale a opção correta. Nesse sentido, considere que a sigla SGBD, sempre que utilizada,
refere-se a sistema gerenciador de banco de dados.
O tempo necessário para que uma consulta retorne um conjunto de resultados no tempo es-
perado depende basicamente da capacidade de processamento da CPU, da memória principal
disponível e da taxa de transmissão de entrada/saída.

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

048. (CEBRASPE/CESPE/TRT-8ª/ANALISTA JUDICIÁRIO/TECNOLOGIA DA INFORMA-


ÇÃO/2013) Com base nos conceitos de melhoria de desempenho de um banco de dados,
assinale a opção correta. Nesse sentido, considere que a sigla SGBD, sempre que utilizada,
refere-se a sistema gerenciador de banco de dados.
Em um SGBD, as consultas SQL são submetidas ao processo de otimização e, posteriormente,
traduzidas para a álgebra relacional.

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.

049. (CEBRASPE/CESPE/TRT-8ª/ANALISTA JUDICIÁRIO/TECNOLOGIA DA INFORMA-


ÇÃO/2013) Com base nos conceitos de melhoria de desempenho de um banco de dados,
assinale a opção correta. Nesse sentido, considere que a sigla SGBD, sempre que utilizada,
refere-se a sistema gerenciador de banco de dados.
A técnica de otimização de consultas embasada em regras heurísticas estima o custo de dife-
rentes estratégias de execução da consulta e escolhe o plano de execução de custo mais baixo.

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.

050. (CEBRASPE/CESPE/TRT-8ª/ANALISTA JUDICIÁRIO/TECNOLOGIA DA INFORMA-


ÇÃO/2013) Com base nos conceitos de melhoria de desempenho de um banco de dados,
assinale a opção correta. Nesse sentido, considere que a sigla SGBD, sempre que utilizada,
refere-se a sistema gerenciador de banco de dados.
Estatística de bancos de dados é um termo que se refere às diversas medidas relativas aos ob-
jetos do banco, tais como o número de processadores utilizados, a velocidade do processador
e o espaço temporário disponível. As estatísticas são geradas automaticamente pelo SGBD e
determinam o modo mais eficiente para executar a consulta.

As estatísticas aplicadas em banco de dados são pertinentes ao consumo do SGBD em consul-


tas e operações, quais operações são mais usadas em determinadas tabelas, qual a volume-
tria dos dados envolvidos, quais índices são usados em determinados cenários operacionais,

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.

051. (CEBRASPE/CESPE/BASA/ANALISTA JUDICIÁRIO/TÉCNICO CIENTÍFICO ADMINIS-


TRAÇÃO DE DADOS/2010) A respeito de tunning e de administração de banco de dados,
julgue os itens.
O administrador do banco de dados não pode fazer alterações no projeto físico desse banco
de dados, mesmo se perceber que a forma como foram implementadas algumas tabelas está
sobrecarregando o sistema e, consequentemente, o desempenho do BD. No entanto, pode su-
gerir que o pessoal técnico da área de desenvolvimento o faça.

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

Luis Octavio Lima


Analista em Tecnologia da Informação do Ministério do Planejamento, Orçamento e Gestão (MPOG)
– atual Ministério da Economia –, atualmente ocupando cargo de chefia da Divisão de Arquitetura e
Modelagem de Dados no Ministério da Justiça e Segurança Pública. Tecnólogo em Gestão da Tecnologia
da Informação pela Universidade do Sul de Santa Catarina (UniSul), especialista em Políticas Públicas e
Gestão Governtamental pela UPIS/Brasília. Possui certificações Sun Certified Java Programmer (SCJP) e
Scrum Foundation Professional Certificate (SFPC). É autor de artigos no site www.luisoctaviolima.com.br e
www.rogeraoaraujo.com.br e professor da área de Banco de Dados e Business Intelligence para concursos
públicos. Aprovado nos seguintes concursos públicos, todos na área Tecnologia da Informação: TST 2008
(classificado), TJ-DFT 2008 (classificado), STF 2008 (classificado), DER/DF 2009 (classificado), Caesb
2009 (classificado), Funasa 2009 (nomeado), MPOG (Ministério da Economia) 2009 (nomeado).

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.

Você também pode gostar