Buscar

6_adm_db

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 212 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 212 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 212 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

WBA0880_v1.0
APRENDIZAGEM EM FOCO
ADMINISTRAÇÃO DE BANCO DE 
DADOS
2
APRESENTAÇÃO DA DISCIPLINA
Autoria: Ariel da Silva Dias
Leitura crítica: Washington Henrique Carvalho Almeida
Um Administrador de Banco de Dados, ou DBA, é um profissional 
de Tecnologia da Informação responsável por trabalhar na criação, 
manutenção, consulta e ajuste do banco de dados de uma empresa. 
Além disso, eles também são responsáveis por manter a segurança 
e a integridade dos dados. Essa função requer que os profissionais 
tenham bom conhecimento e experiência em um Sistema de 
Gerenciamento de Banco de Dados (SGBD) específico que a empresa 
usa, como o SQL Server ou Oracle. 
O administrador de banco de dados é a chave para que tudo 
ocorra bem em um SGBD, garantindo o fluxo de dados e o acesso 
ininterrupto dos dados à organização. Quando o DBA funciona 
de forma eficaz, o resultado é uma empresa eficiente e capaz de 
armazenar e escalar seus dados com sucesso. 
Qualquer erro no SGBD refletirá nas receitas da empresa, seja esse 
erro uma pequena queda de energia, má manutenção de dados 
ou erro humano. Qualquer um deles podem gerar prejuízos para 
a empresa, então, observe que o papel do DBA é crítico em uma 
organização.
Desse modo, esta disciplina foi desenvolvida contemplando todas as 
competências necessárias para a formação de um DBA. Inicialmente, 
você conhecerá os dois principais SGBDs do mercado que são o 
Oracle e o SQL Server.
Em seguida, apresentaremos o conceito de transação e as 
particularidades de comandos e transações no Oracle e o SQL 
Server. Ainda sobre transações, você conhecerá uma propriedade 
3
muito importante em banco de dados relacional que é a ACID 
(Atomicidade, Consistência, Isolamento e Durabilidade).
Por fim, você conhecerá diversas técnicas de segurança e 
de proteção ao banco de dados, como técnicas de backup e 
recuperação de dados, administração de usuários, controle de 
acesso, entre outros.
Não se preocupe se alguns conceitos e termos citados aqui não lhe 
são familiares, tudo isso ficará muito claro e intuitivo no final da 
disciplina.
Bons estudos!
INTRODUÇÃO
Olá, aluno (a)! A Aprendizagem em Foco visa destacar, de maneira 
direta e assertiva, os principais conceitos inerentes à temática 
abordada na disciplina. Além disso, também pretende provocar 
reflexões que estimulem a aplicação da teoria na prática 
profissional. Vem conosco!
Sistemas de Gerenciamento de 
Banco de Dados 
______________________________________________________________
Autoria: Ariel da Silva Dias
Leitura crítica: Washington Henrique Carvalho Almeida
TEMA 1
5
DIRETO AO PONTO
O banco de dados é baseado na coleta de dados armazenados 
em um formato estruturado, em que precisamos de um SGBD 
(Sistema de Gerenciamento de Banco de Dados) e SGBDR (Sistema 
de Gerenciamento de Banco de Dados Relacional) para gerenciar a 
coleta desses dados. 
Desde os primeiros tempos da tecnologia da computação, os dados 
tinham que ser salvos e organizados em fitas - raramente usadas 
no mundo de hoje. O principal problema com essas fitas era a 
impossibilidade de reler os dados, então, nasceram os bancos de 
dados e, junto a eles, veio a necessidade de gerenciar esse processo 
de armazenamento, segurança e recuperação dos dados.
Tanto o SGBD quanto o SGBDR são muito semelhantes e uma 
pessoa que não seja de tecnologia não consegue diferenciá-los. No 
entanto, precisamos dar uma olhada em ambas as tecnologias para 
entendê-las totalmente. Um SGBD é uma solução de tecnologia 
usada para armazenar e gerenciar informações por meio da 
implementação de abordagens sistemáticas. Ele foi introduzido na 
década de 1960, com opções eficientes de manipulação de dados 
como inserção, exclusão e atualização de dados armazenados nos 
bancos de dados. 
Aqui cabe uma consideração importante: um SGBD não se limita 
às operações CRUD (Criar, Ler, Atualizar e Excluir). Além disso, ele 
fornece opções de definição e controle para que qualquer empresa 
ou indivíduo possa trabalhar em estreita colaboração com os bancos 
de dados e obter as informações desejadas com mais precisão.
Com base nisso, pode-se definir SGBD como uma coleção de dados 
inter-relacionados e um programa responsável por gerenciar esses 
6
dados, realizando o armazenamento, a atualização, a segurança e 
permitindo o acesso a esses dados de maneira fácil e eficaz.
O SGBD possui essencialmente três arquiteturas (Figura 1), cada 
uma das arquiteturas será discutida a seguir.
Arquitetura de camada única (ou banco de dados local): nesse 
tipo de arquitetura, o banco de dados está diretamente disponível 
para o usuário usá-lo para armazenar dados, desse modo, qualquer 
solicitação feita pelo usuário não requer uma conexão de rede para 
realizar a ação no banco de dados. Por exemplo: você possui uma 
agenda de contato telefônico em seu celular. Quando você abre essa 
agenda, os dados são acessados localmente, sem a necessidade de 
buscar o contato em um servidor externo.
Figura 1 - Arquiteturas em Camadas SGBD
Fonte: elaborada pelo autor.
7
Arquitetura de duas camadas: essa arquitetura inclui uma camada 
de aplicativo entre o usuário e o SGBD, que é responsável por 
comunicar a solicitação do usuário ao sistema de gerenciamento 
de banco de dados e, em seguida, enviar a resposta do SGBD ao 
usuário. Uma interface de aplicativo conhecida como ODBC (Open 
Database Connectivity) fornece uma API que permite que o programa 
do cliente invoque o SGBD. A maioria dos fornecedores de sistemas 
de banco de dados fornece drivers ODBC para seus SGBD. Assim, tal 
arquitetura fornece segurança extra ao SGBD, uma vez que não é 
exposta diretamente ao usuário final. Além disso, a segurança pode 
ser melhorada adicionando verificações de segurança e autenticação 
na camada de aplicativo.
Arquitetura de três camadas: essa é a arquitetura geralmente 
utilizada por aplicativos web, sendo uma extensão da arquitetura de 
2 camadas. Como vimos, a arquitetura de 2 possui uma camada de 
aplicação que pode ser acessada programaticamente para realizar 
várias operações no SGBD. Geralmente, o aplicativo entende a 
linguagem de acesso ao banco de dados e processa as solicitações 
dos usuários finais para o SGBD. Na arquitetura de 3 camadas é 
adicionada uma camada de apresentação que fornece uma interface 
gráfica para o usuário final interagir com o SGBD. Para o usuário 
final, a camada de interface é o Sistema de Banco de Dados e o 
usuário final não tem ideia sobre a camada de aplicativo e o sistema 
SGBD.
Por fim, cabe destacar que o SGBDR é um tipo de SGBD que 
armazena os dados em formato tabular e é usado para classificá-los 
em linhas e colunas, que são chamadas de tuplas e tabelas. Nesse 
contexto, como exemplos de SGBDR temos o SQL Server e o Oracle 
Database.
8
Referências bibliográficas
RAMAKRISHNAN, R.; GEHRKE, J. Sistemas de gerenciamento de banco de 
dados. 3. ed. Porto Alegre: Bookman, 2011. 
PARA SABER MAIS
O SGBDR é um sistema padrão para o gerenciamento de banco de 
dados relacional. Por sua vez, os dados são armazenados na forma 
de linhas e colunas no SGBDR. As relações entre as tabelas também 
são armazenadas na forma de tabela. A linguagem de programação 
SQL (Structured Query Language) é usada para realizar tarefas como 
inserir, atualizar ou recuperar dados de um banco de dados. Os 
principais bancos de dados relacionais usam SQL, como é o caso do 
Oracle, Microsoft SQL Server, MySQL, entre outros.
Características de um SGBDR:
• Bancos de dados SQL são bancos de dados baseados em 
tabelas.
• Armazenamento de dados em linhas e colunas.
• Cada linha contém uma instância única de dados para as 
categorias definidas pelas colunas.
• Fornece uma chave primária para identificar exclusivamente as 
linhas.
Então, observe que o conceito fundamental por trás dos bancos de 
dados relacionais é a organização de dados em coleções de tabelas 
que consistem em colunas e linhas, conforme pode ser visto na 
Figura 2.
9
Figura 2 - Banco dedados relacional - Tabelas
Fonte: elaborada pelo autor.
A principal vantagem dos bancos de dados relacionais é que eles 
permitem aos usuários categorizar e armazenar facilmente dados 
que podem ser consultados e filtrados posteriormente para extrair 
informações específicas para relatórios. Os bancos de dados 
relacionais também são fáceis de estender e não dependem de 
organização física. Após a criação do banco de dados original, uma 
nova categoria de dados pode ser adicionada sem que todos os 
aplicativos existentes sejam modificados.
TEORIA EM PRÁTICA
No início do desenvolvimento de qualquer sistema, seja ele web, 
desktop ou móvel, um dos primeiros passos é escolher o tipo de 
banco de dados: se Banco de Dados estruturados SQL ou Banco de 
Dados NoSQL. Após escolher o tipo de banco de dados, o próximo 
passo é escolher o gerenciador de banco de dados. 
Observe o seguinte detalhamento que a senhora Ana, proprietária 
de uma loja de móveis, lhe passou sobre a aplicação que deseja que 
você desenvolva:
10
“O cliente chega em minha loja e escolhe um móvel que deseja 
adquirir. Por exemplo, se ele vê um sofá que esteja a seu gosto, ele 
se senta em minha mesa para negociarmos. Então eu apresento 
todas as opções de cores de sofá, bem como os tamanhos e a 
quantidade disponível do produto em estoque (de acordo com 
as necessidades do cliente). Se ele desejar comprar o móvel, 
então é realizado um cadastro com todos os dados pessoais. Em 
seguida, emito um pedido para entrega do produto e o cliente pode 
acompanhar o status do pedido via aplicativo.”
Com base nessa descrição, ao seu ver, qual tipo de banco de dados 
seria ideal para a empresa da senhora Ana (SQL ou NoSQL)? Indique 
as características de cada um dos tipos de bancos e o motivo da 
escolha.
Para conhecer a resolução comentada proposta pelo professor, 
acesse a videoaula deste Teoria em Prática no ambiente de 
aprendizagem.
LEITURA FUNDAMENTAL
Prezado aluno, as indicações a seguir podem estar disponíveis 
em algum dos parceiros da nossa Biblioteca Virtual (faça o log 
in por meio do seu AVA), e outras podem estar disponíveis em 
sites acadêmicos (como o SciELO), repositórios de instituições 
públicas, órgãos públicos, anais de eventos científicos ou 
periódicos científicos, todos acessíveis pela internet. 
Isso não significa que o protagonismo da sua jornada de 
autodesenvolvimento deva mudar de foco. Reconhecemos 
que você é a autoridade máxima da sua própria vida e deve, 
Indicações de leitura
11
portanto, assumir uma postura autônoma nos estudos e na 
construção da sua carreira profissional. 
Por isso, nós o convidamos a explorar todas as possibilidades da 
nossa Biblioteca Virtual e além! Sucesso!
Indicação 1
No capítulo 4 do livro Sistemas de Banco de Dados, os autores 
apresentam a definição dos tipos de dados em SQL, especificando as 
restrições. Acrescenta-se, ainda, que o autor apresenta as principais 
instruções SQL como INSERT, UPDATE, DELETE e UPDATE.
ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. Barueri: 
Pearson, 2019. p. 57-72.
Indicação 2
No capítulo 1 do livro Projeto de Banco de Dados, o autor apresenta 
a definição de sistema de gerenciamento de banco de dados, bem 
como os diferentes tipos de modelos de banco de dados como 
modelo conceitual, modelo lógico e modelo conceitual como modelo 
de organização.
HEUSER, C. A. Projeto de banco de dados - V4. 6. ed. São Paulo: 
Bookman, 2017. p. 1-9. 
QUIZ
Prezado aluno, as questões do Quiz têm como propósito a 
verificação de leitura dos itens Direto ao Ponto, Para Saber 
12
Mais, Teoria em Prática e Leitura Fundamental, presentes neste 
Aprendizagem em Foco.
Para as avaliações virtuais e presenciais, as questões serão 
elaboradas a partir de todos os itens do Aprendizagem em Foco 
e dos slides usados para a gravação das videoaulas, além de 
questões de interpretação com embasamento no cabeçalho 
da questão.
1. A arquitetura de um SGBD depende do __________, no qual ele 
é executado. Por exemplo, em uma arquitetura __________, os 
sistemas de banco de dados na máquina __________ podem 
executar várias solicitações feitas pela máquina __________.
Assinale a alternativa que completa adequadamente as 
lacunas: 
a. Servidor; de três camadas; local; em nuvem.
b. Computador; de três camadas; cliente; servidor.
c. Sistema computacional; cliente-servidor; servidor; cliente. 
d. Servidor; de duas camadas; cliente; servidor.
e. Sistema computacional; três camadas; cliente; servidor. 
2. Um SGBDR se refere a um banco de dados __________ 
que armazena dados em um formato __________, usando 
__________ e __________. Isso torna mais fácil localizar e 
acessar valores específicos no banco de dados.
Assinale a alternativa que completa adequadamente as 
lacunas:
13
a. Relacional; estruturado; linhas; colunas.
b. NoSQL; não estruturado; chave; valor.
c. Não estruturado; colunar; linhas; colunas.
d. Não relacional; não estruturado; chave; valor.
e. Tabular; estruturado; chave; valor. 
GABARITO
Questão 1 - Resposta C
Resolução: O SGBD pode possuir três arquiteturas distintas: 
camada única, duas camadas ou três camadas. Na arquitetura 
de duas camadas ou cliente-servidor, um cliente pode realizar 
solicitações para uma máquina servidor. O servidor, por sua 
vez, atende as requisições do cliente. 
Questão 2 - Resposta A
Resolução: Os bancos de dados relacionais se destacam por 
sua capacidade de armazenar dados estruturados. Os dados 
são armazenados em uma estrutura tabular usando linhas e 
colunas, formando uma tabela. 
Transações 
______________________________________________________________
Autoria: Ariel da Silva Dias
Leitura crítica: Washington Henrique Carvalho Almeida
TEMA 2
15
DIRETO AO PONTO
Por que ocorre bloqueio em um banco de dados? Como em outros 
sistemas, os bloqueios de banco de dados servem para proteger 
recursos ou objetos compartilhados. Esses recursos protegidos 
podem ser tabelas, linhas, blocos de dados, itens que estão em 
cache ou, até mesmo, sistemas inteiros.
Nesse contexto, existem muitos tipos de bloqueios que podem 
ocorrer, no entanto, neste tema nos concentraremos em estudar o 
bloqueio transacional.
O bloqueio transacional está relacionado à capacidade do sistema 
de gerenciamento de banco de dados (SGBD) de garantir transações 
confiáveis que aderem as propriedades ACID (Atomicidade, 
Consistência, Isolamento e Durabilidade). Desse modo, observe 
a seguir a descrição das propriedades ACID, observe que elas 
estão relacionadas e devem ser consideradas em conjunto, ou 
seja, são propriedades de uma mesma transação e não conceitos 
independentes.
16
Figura 1 - Quatro propriedades de uma transação
Fonte: elaborada pelo autor.
Atomicidade: significa tudo ou nada. Uma transação pode realizar 
três instruções: inserir dados em uma tabela, excluir de outra tabela 
e atualizar uma terceira tabela. A atomicidade garante que ocorram 
todas essas instruções ou nenhuma. Neste exemplo, não seria 
possível executar apenas uma instrução.
Consistência: significa que as transações sempre levam o banco 
de dados de um estado consistente para outro. Portanto, se uma 
transação violar as regras de consistência do banco de dados, toda a 
transação será revertida.
Isolamento: significa que as transações simultâneas e as alterações 
feitas nelas não ficam visíveis umas para as outras até que sejam 
concluídas. A implementação do isolamento é bastante diferente 
em diferentes SGBDs. Essa também é a propriedade mais 
frequentemente relacionada a problemas de bloqueio.
17
Durabilidade: significa que as transações confirmadas (após fazer 
o commit) não serão perdidas, mesmo em caso de encerramento 
anormal, ou seja, uma vez que um usuário ou programa tenha sido 
notificado de que uma transação foi confirmada, eles podem ter 
certeza de que os dados não serão perdidos.
Exemplo de propriedades ACID: transferência de R$ 100,00 da 
conta de uma pessoa A para a conta de uma pessoa B:
1. read(A)
2. A = A -100
3. write(A)
4. read(B)
5. B = B + 100
6. write(B)
Atomicidade: se houver uma falha, por exemplo, no momento de 
leitura da etapa 4, o SGBD deve garantir que as atualizações não 
sejam refletidas no banco. 
Consistência: se ocorrer a falha descrita anteriormente e o banco 
for atualizado, mesmo assim haverá inconsistência nos dados, 
ou seja, A ficará com -R$ 100,00 e B não receberá o crédito de R$ 
100,00.
Isolamento: se um usuário C acessar em uma transação T2 
durante a etapa 4 de T1, obterá um banco de dados parcialmente 
inconsistente.
Durabilidade: se após a etapa 6 os usuários A e B forem notificados 
de que a transação de transferência foi concluída, as atualizações no 
banco devem persistir mesmo que haja falhas.
18
Referências bibliográficas
ORAFAQ. ACID. Disponível em: https://www.orafaq.com/wiki/ACID. Acesso em: 
9 maio 2021. 
PARA SABER MAIS
Os SGBDs relacionais, de modo a garantir as propriedades ACID, 
usam vários bloqueios transacionais. Entretanto, o uso de bloqueios 
a recursos compartilhados está sujeito a conflitos e o escalonador de 
transações (sistema que gerencia as transações e escolhe qual será 
executada) sozinho não pode evitar suas ocorrências.
Quando duas transações simultâneas não podem progredir porque 
cada uma espera que a outra libere um bloqueio, temos o estado de 
Deadlock (Figura 2).
Figura 2 - Estado de Deadlock
Fonte: elaborada pelo autor.
19
Pela Figura 2, observe que a Transação 1 bloqueou a tabela 
tbusuario e aguarda a liberação do bloqueio da tabela tbcliente 
para finalizar a transação. O mesmo ocorre com a Transação 2, 
assim, como ambas estão bloqueando e aguardando a aquisição 
de bloqueio, nenhuma delas libera o bloqueio antes de adquirir o 
próximo.
Um deadlock pode ocorrer nos estados de exclusão mútua, retenção 
e espera, sem preempção e espera circular.
A Prevenção de deadlock e liberação do deadlock pode ser obtida 
quando:
• Sem exclusão mútua: sem exclusão mútua significa remover 
todos os recursos que podem ser compartilhados.
• Sem retenção e espera: a remoção da condição de suspensão 
e espera pode ser feita se um processo adquirir todos os 
recursos necessários antes de iniciar.
• Permitir preempção: permitir a preempção é tão bom quanto 
remover a exclusão mútua. A única necessidade é restaurar 
o estado do recurso para o processo preemptivo, em vez de 
deixá-lo entrar ao mesmo tempo que o preempção.
• Removendo a espera circular: a espera circular pode ser 
removida apenas se os recursos forem mantidos em uma 
hierarquia e o processo puder conter os recursos aumentando 
a ordem de precedência.
Se houver preempção, basta que um dos estados seja revertido para 
que a mesma deixe de acontecer.
20
TEORIA EM PRÁTICA
O deadlock é o estado em que um processo A realiza o bloqueio de 
um recurso R1 e um processo B realiza o bloqueio de um recurso 
R2. Esse estado é alcançado quando: há exclusão mútua, não há 
preempção, há retenção e espera e espera circular.
Então, considere que você foi contratado para ser o DBA (Database 
Administrator) em uma empresa de desenvolvimento de software. 
Em uma reunião com quatro colegas, o primeiro diz que a melhor 
maneira de lidar com deadlock é ignorando-o e, caso ocorra, reinicie 
o sistema. O segundo diz que o melhor caminho é a prevenção, 
eliminando as condições que provocam o deadlock. Um terceiro 
diz que o melhor é evitar, analisando criteriosamente os recursos, 
evitando que o deadlock ocorra. O quarto colega diz que o melhor é 
deixar o deadlock acontecer e, quando isso ocorrer, basta reiniciar 
o processo. Analise cada um dos posicionamentos, indicando pontos 
positivos e negativos das abordagens sugeridas.
Para conhecer a resolução comentada proposta pelo professor, 
acesse a videoaula deste Teoria em Prática no ambiente de 
aprendizagem.
LEITURA FUNDAMENTAL
Prezado aluno, as indicações a seguir podem estar disponíveis 
em algum dos parceiros da nossa Biblioteca Virtual (faça o log 
in por meio do seu AVA), e outras podem estar disponíveis em 
sites acadêmicos (como o SciELO), repositórios de instituições 
Indicações de leitura
21
públicas, órgãos públicos, anais de eventos científicos ou 
periódicos científicos, todos acessíveis pela internet. 
Isso não significa que o protagonismo da sua jornada de 
autodesenvolvimento deva mudar de foco. Reconhecemos 
que você é a autoridade máxima da sua própria vida e deve, 
portanto, assumir uma postura autônoma nos estudos e na 
construção da sua carreira profissional. 
Por isso, nós o convidamos a explorar todas as possibilidades da 
nossa Biblioteca Virtual e além! Sucesso!
Indicação 1
No capítulo 7 do livro Sistema de Banco de Dados, os autores 
apresentam o conceito de transações, bem como os modelos 
e estruturas. Além disso, eles também apresentam ao aluno 
as propriedades ACID, além de exercícios para aprofundar o 
conhecimento. Trata-se de uma leitura fortemente recomendada 
para reforçar o aprendizado sobre transações.
SILBERSCHATZ, A.; KORTH, H.; SUDARSHAN, S. Sistema de banco de 
dados. 7. ed. Rio de Janeiro: RTC, 2020. p. 452-470.
Indicação 2
No capítulo 18 do livro Sistema de Banco de Dados, os autores 
apresentam os tipos de bloqueios e sua necessidade em um banco 
de dados. Além disso, nos traz alguns exemplos de deadlock e como 
preveni-lo. O tratamento de deadlock é essencial para a rotina de 
trabalho de um administrador de banco de dados, logo, trata-se de 
uma leitura recomendada.
22
SILBERSCHATZ, A.; KORTH, H.; SUDARSHAN, S. Sistema de banco de 
dados. 7. ed. Rio de Janeiro: RTC, 2020. p. 472-510. 
QUIZ
Prezado aluno, as questões do Quiz têm como propósito a 
verificação de leitura dos itens Direto ao Ponto, Para Saber 
Mais, Teoria em Prática e Leitura Fundamental, presentes neste 
Aprendizagem em Foco.
Para as avaliações virtuais e presenciais, as questões serão 
elaboradas a partir de todos os itens do Aprendizagem em Foco 
e dos slides usados para a gravação das videoaulas, além de 
questões de interpretação com embasamento no cabeçalho 
da questão.
1. Um sistema de processamento de transações (SPT) é responsável 
por monitorar e gerenciar as transações em um banco de 
dados. O sistema é útil quando algo é vendido pela Internet. 
Isso permite um intervalo de tempo entre o momento em que 
um item está sendo vendido e o momento em que é realmente 
vendido. Um exemplo é a venda de um ingresso para uma 
determinada poltrona no cinema. 
Sobre o sistema de processamento de transações, assinale a 
alternativa correta. 
a. Um SPT garante que o cliente comprará os ingressos com 
segurança graças ao seu sistema de criptografia.
b. O SPT permite armazenar em um banco de dados todas as 
informações sobre a compra do ingresso.
23
c. O SPT retem o ingresso, permitindo que um mesmo bilhete 
não seja vendido a dois clientes diferentes.
d. O SPT gerencia a transação desde o momento que o cliente 
solicita o bilhete, passando pela aprovação do pagamento até 
a sua emissão.
e. Um SPT é um sistema que faz parte do banco de dados e 
o objetivo é aceitar ou negar transações realizadas em um 
banco de dados pelo usuário. 
2. Em seu aplicativo, uma única instrução SQL INSERT ou 
um único SET ou KILL global pode não constituir em si 
uma __________. Nesses casos, você usa comandos de 
processamento de transação para definir a sequência 
de __________ que forma uma transação completa. Uma 
__________ marca o início da __________; após uma sequência 
de possivelmente muitas __________, outro comando marca o 
fim da __________.
Assinale a alternativa que completa adequadamente as 
lacunas.
a. Transação completa; instruções; instrução; transação; 
instruções; transação.
b. Inserção; comandos; instrução; transação; inserções; 
transação.
c. Transação; operações; transação; instrução; transações; 
instrução.
d. Instrução; transações; instrução; transação; transações; 
instrução.
e. Instrução; transações; transação; instrução; transações; 
instrução. 
24
GABARITO
Questão 1 - RespostaC
Resolução: O SPT é usado para manter a integridade do 
banco de dados, garantindo que um conjunto de instruções 
(transação) seja executado por completo ou não executado. 
Logo, se um cliente A começou a adquirir um ingresso para a 
poltrona D5 no cinema e, no mesmo instante, o cliente B tenta 
realizar a aquisição da mesma poltrona (D5), o SPT não permite, 
retendo (bloqueando) o ingresso e permitindo que o mesmo 
seja vendido apenas para um cliente. 
Questão 2 - Resposta A
Resolução: A alternativa está correta, pois uma transação é um 
conjunto de uma ou mais instruções. Logo, uma única instrução 
SQL não constitui uma transação completa. Muitas vezes, são 
necessárias várias instruções para que se tenha uma única 
transação. Portanto, uma instrução pode marcar o início de 
uma transação. Após muitas instruções, uma última instrução 
marca o fim da transação. 
Backup e recuperação de dados 
______________________________________________________________
Autoria: Ariel da Silva Dias
Leitura crítica: Washington Henrique Carvalho Almeida
TEMA 3
26
DIRETO AO PONTO
Criar backups do banco de dados regularmente é uma das tarefas 
mais fáceis que se podem ser realizadas, entretanto, muitas vezes, 
isso acaba sendo negligenciado até o minuto em que ocorre o 
primeiro desastre. Logo, quando isso ocorre, todos pensam: “se 
tivéssemos um backup agora tudo poderia ser diferente”.
Portanto, o backup é a chave para um plano de recuperação de 
desastres bem-sucedido. Cada mecanismo de banco de dados tem 
seus próprios comandos e procedimentos de backup. O Oracle, 
por exemplo, tem o RMAN (Recovery Manager) um utilitário Oracle 
que pode fazer backup, restaurar e recuperar arquivos de banco 
de dados. Trata-se de um recurso do servidor de banco de dados 
Oracle e não requer instalação separada (ORACLE, 2021). O SQL 
Server tem recursos para backups completos e diferenciais, bem 
como um processo de backup para logs de transações (MICROSOFT, 
2021). Esses procedimentos podem ser usados em combinação para 
garantir tempo de inatividade limitado caso o banco de dados sofra 
uma interrupção ou uma falha crítica irrecuperável.
Então, antes de criar um backup é importante conhecer os seus 
três diferentes tipos: completo, diferencial e incremental. Alguns 
administradores chamam incorretamente os backups diferenciais de 
incrementais. Há uma diferença distinta entre os dois, no entanto, 
isso afeta a maneira como os bancos de dados veem dados de 
backup.
Por sua vez, o Oracle possuí recursos para backup completo do 
banco de dados, bem como backup parcial como os backups 
tablespace e de arquivo de dados.
A Figura 1 apresenta a relação entre os três tipos de backup: 
completo, incremental e diferencial.
27
O backup completo é o mais simples de todos, trata-se de uma 
cópia completa de todos os dados contidos no banco de dados. Esse 
tipo de backup inclui: a estrutura de tabelas, as visualizações, os 
gatilhos e qualquer outra configuração do banco.
O backup incremental realiza a cópia de todos os dados 
modificados desde o último backup incremental. Caso não haja um 
backup incremental, a cópia será realizada a partir do último backup 
completo que foi realizado. Apesar do SQL Server não ter suporte 
para esse tipo de backup, outras distribuições como o Oracle a 
possui.
Figura 1 - Tipos de backups
Fonte: adaptada de TTGTMEDIA (2021).
28
O backup diferencial realiza a cópia de todos os dados modificados 
após o backup completo. Nesse tipo, cada backup diferencial será 
anexado ou associado ao arquivo de backup completo realizado 
inicialmente. Dessa forma, observe que o backup diferencial é 
acumulativo, logo, os arquivos de backup podem ficar muito 
grandes.
Nesse sentido, note que todos os tipos de backups necessitam que, 
primeiramente, seja feito um backup completo. Logo, não importa 
qual backup será escolhido, pois você iniciará pelo backup completo.
Em um ambiente real é comum a realização do backup completo no 
início da semana e, no decorrer dos dias, realizar backup diferencial. 
Além disso, alguns bancos de dados mais críticos necessitam de 
backups em um curto prazo de tempo, algo como 10 ou 15 minutos, 
porém, outros tipos de bancos são passíveis de passar por backup 
no final do dia.
Referências bibliográficas
MICROSOFT. Criar um backup de banco de dados completo. Disponível em: 
https://docs.microsoft.com/pt-br/sql/relational-databases/backup-restore/
create-a-full-database-backup-sql-server?view=sql-server-ver15. Acesso em: 18 
jun. 2021.
ORACLE. Backup and Recovery. Disponível em: https://docs.oracle.com/cd/
B19306_01/server.102/b14220/backrec.htm. Acesso em: 18 jun. 2021.
TTGTMEDIA. Full vs. incremental vs. differential backup. Disponível em: 
https://cdn.ttgtmedia.com/rms/onlineimages/whatis-pillar_full_incremental_
differential_backup_desktop.png. Acesso em: 18 jun. 2021. 
29
PARA SABER MAIS
Em banco de dados, o rollback é um comando que leva o banco de 
dados a um ponto anterior, sendo utilizado especificamente para 
reiniciar a transação atual e restabelecer o estado do último commit.
O rollback é essencial para a integridade do banco de dados, pois 
indica que ele pode ser restaurado para uma cópia limpa, mesmo 
após uma operação incorreta. Após realizar o rollback para uma 
transação ativa, o banco de dados pode ser restaurado para um 
estado consistente.
Quando o comando rollback é executado, as alterações feitas nos 
arquivos de banco de dados, atualizações, adições ou exclusões, 
desde o limite do commit, são revertidas e as entradas originais 
são colocadas de volta nos arquivos. Os registros adicionados aos 
arquivos permanecem como registros excluídos. Os arquivos são 
reposicionados para o último limite de commit. Já as alterações 
feitas em outros recursos também são revertidas.
O rollback pode ser executado manualmente pelos usuários ou 
automaticamente pelos sistemas de banco de dados.
Se um usuário modifica um campo de dados mas não mantém as 
alterações, os dados são armazenados em um log de transações ou 
em um estado temporário. Os usuários que executam uma consulta 
no banco de dados verão os valores inalterados. 
No entanto, se o usuário optar por não salvar os dados, um 
comando de rollback trata os dados para descartar qualquer 
alteração feita pelo usuário. Portanto, um rollback ocorre quando 
um usuário começa a alterar os dados e descobre que o registro 
errado foi atualizado, então, ele cancela a transação para desfazer as 
modificações.
30
O rollback também pode acontecer automaticamente após um 
travamento do banco de dados ou do servidor. Quando o banco 
de dados é reiniciado, todas as transações não concluídas são 
revertidas, permitindo que os usuários entrem novamente e salvem 
as alterações necessárias.
TEORIA EM PRÁTICA
Backup é o processo seguro de fazer uma cópia de seus dados e, 
por exemplo, em caso de perda por corrupção ou exclusão, pode-se 
recuperá-los com o mínimo de prejuízo possível. 
Reflita sobre o caso de uma empresa que deseja implantar o sistema 
de banco de dados SQL Server como o Sistema de Gerenciamento 
de Banco de Dados. Eles desejam saber de você, DBA (Database 
Administrator), quais as características dos backups disponibilizados 
por essa ferramenta. Como você responderia à solicitação de seu 
chefe sobre as características de backup do SQL Server? Descreva os 
tipos de backups que o SQL Server atende, lembrando dos três tipos 
principais estudados.
Para conhecer a resolução comentada proposta pelo professor, 
acesse a videoaula deste Teoria em Prática no ambiente de 
aprendizagem.
LEITURA FUNDAMENTAL
Prezado aluno, as indicações a seguir podem estar disponíveis 
em algum dos parceiros da nossa Biblioteca Virtual (faça o log 
Indicações de leitura
31
in por meio do seu AVA), e outras podem estar disponíveis em 
sites acadêmicos (como o SciELO), repositórios de instituições 
públicas, órgãos públicos, anais de eventos científicos ou 
periódicos científicos, todos acessíveis pela internet.Isso não significa que o protagonismo da sua jornada de 
autodesenvolvimento deva mudar de foco. Reconhecemos 
que você é a autoridade máxima da sua própria vida e deve, 
portanto, assumir uma postura autônoma nos estudos e na 
construção da sua carreira profissional. 
Por isso, nós o convidamos a explorar todas as possibilidades da 
nossa Biblioteca Virtual e além! Sucesso!
Indicação 1
No livro Sistema de Banco de Dados, o autor apresenta um conceito 
completo sobre a definição de falhas, bem como a classificação 
delas quanto a falhas de transação, falha de sistema e falha de disco. 
Trata-se de uma leitura recomendada para o aluno compreender 
e diferenciar os diversos tipos de falhas, bem como saber como se 
recuperar.
SILBERSCHATZ, A.; KORTH, H.; SUDARSHAN, S. Sistema de banco de 
dados. 7. ed. Rio de Janeiro: LTC, 2020. p. 511.
Indicação 2
No livro Cibersegurança para leigos, o autor apresenta no capítulo 
13 a definição de backup bem como os conceitos de backup 
incremental, completo e diferencial. Essa é uma ótima oportunidade 
de se aprofundar no conceito de backup e as técnicas relacionadas.
32
STEINBERG, J. Cibersegurança para leigos. Rio de Janeiro: Alta 
books, 2021. 
QUIZ
Prezado aluno, as questões do Quiz têm como propósito a 
verificação de leitura dos itens Direto ao Ponto, Para Saber 
Mais, Teoria em Prática e Leitura Fundamental, presentes neste 
Aprendizagem em Foco.
Para as avaliações virtuais e presenciais, as questões serão 
elaboradas a partir de todos os itens do Aprendizagem em Foco 
e dos slides usados para a gravação das videoaulas, além de 
questões de interpretação com embasamento no cabeçalho 
da questão.
1. A capacidade de restaurar bancos de dados de backups 
válidos é uma parte vital para garantir a continuidade dos 
negócios. Desse modo, os administradores de banco de dados 
(DBAs) devem fazer um plano de backup para os bancos de 
dados pelos quais são responsáveis.
Sobre os tipos de backups de dados é correto falar que: 
a. O backup incremental realiza uma cópia ou instantâneo dos 
dados modificados desde o último backup diferencial.
b. O backup completo necessita de mais espaço para 
armazenamento quando usado em combinação com outros 
tipos de backups.
c. O backup completo e o backup intermediário são precedidos 
pelo backup diferencial, responsável por organizar os dados.
33
d. O backup diferencial e o backup intermediário são 
semelhantes, porém, o diferencial continua a copiar dados 
alterados após o backup completo.
e. O backup diferencial continua a copiar todos os dados 
alterados após o último backup incremental. 
2. O conceito de __________ está relacionado com a 
incapacidade de um sistema ou componente de software 
de executar suas funções exigidas dentro dos requisitos 
de desempenho especificados. Quando um __________ 
chega ao cliente final, é chamado de __________. Durante o 
desenvolvimento, __________ são geralmente observadas 
pelos __________.
a. Falta; erro; falha; as faltas; usuários.
b. Erro; erro; falha; as falhas; desenvolvedores.
c. Falha; defeito; falha; as falhas; testadores.
d. Falha; erro; falha; as falhas; desenvolvedores.
e. Falta; erro; falta; as falhas; testadores. 
GABARITO
Questão 1 - Resposta D
Resolução: A alternativa está correta, pois o backup diferencial 
é semelhante ao backup incremental pois ambos se iniciam a 
partir do backup completo. Entretanto, o backup diferencial 
copia todos os dados alterados desde a realização do último 
backup completo 
34
Questão 2 - Resposta C
Resolução: A falha está relacionada a uma perda específica 
dos requisitos, gerando um comportamento inesperado do 
software. Uma falha geralmente é observada pelo usuário 
final, entretanto, durante o processo de desenvolvimento de 
software, a falha é observada pelos testadores. 
Segurança de banco de dados 
______________________________________________________________
Autoria: Ariel da Silva Dias
Leitura crítica: Washington Henrique Carvalho Almeida
TEMA 4
36
DIRETO AO PONTO
O controle de acesso ao banco de dados é um método que permite 
o acesso aos dados confidenciais da empresa apenas para aquelas 
pessoas (usuários do banco de dados) que têm permissão para 
acessar esses dados e para restringir o acesso às pessoas não 
autorizadas. Esse processo inclui dois componentes principais: 
autenticação e autorização.
A autenticação é o método de verificar a identidade de uma 
pessoa que está acessando seu banco de dados. Observe que, 
a autenticação não é suficiente para proteger os dados. Uma 
camada adicional de segurança é necessária, a autorização, a 
qual determina se um usuário deve ter permissão para acessar os 
dados ou fazer a transação que está tentando. Sem autenticação e 
autorização, não há segurança de dados.
Qualquer empresa cujos funcionários se conectam à Internet, ou 
seja, toda empresa hoje, precisa de algum nível de controle de 
acesso implementado.
Dentre os tipos de controle de acesso temos modelos obsoletos 
como o Controle de Acesso Discricionário (DAC) e o Controle de 
Acesso Obrigatório (MAC). Já entre os métodos mais comuns temos 
o Role-Based Access Control (RBAC) e o modelo que é mais recente 
chamado Attributed Based Access Control (ABAC).
Com os modelos DAC, o proprietário atribui direitos de acesso com 
base em regras especificadas pelo usuário. Trata-se de um dos 
modelos mais antigos e menos usado nos últimos tempos.
O MAC foi desenvolvido usando um modelo não discricionário, 
no qual as pessoas têm acesso com base em uma liberação de 
37
informações. Essa é uma política na qual os direitos de acesso são 
atribuídos com base nos regulamentos da autoridade central.
Por outro lado, o RBAC concede acesso com base na função de um 
usuário e implementa princípios de segurança importantes, como 
privilégio mínimo e separação de privilégio. Assim, alguém que tenta 
acessar informações só pode acessar os dados necessários para sua 
função. A Figura 1 exemplifica o RBAC.
Figura 1 - Arquitetura RBAC
Fonte: elaborada pelo autor.
Pela Figura 1, observe que os sistemas de controle de acesso 
baseado em função (RBAC) atribuem acesso e ações de acordo 
com a função de uma pessoa no sistema. Assim, todos que 
detêm essa função têm o mesmo conjunto de direitos. Aqueles que 
desempenham funções diferentes têm direitos diferentes.
O usuário A pode ser, por exemplo, um funcionário da contabilidade, 
o qual tem a Função 1 a qual é atualizar o salário dos funcionários 
da empresa. Logo, ele terá a permissão de realizar essa ação. O 
mesmo usuário A também tem a Função 2 que é verificar as vendas 
no mês. Desse modo, ele tem permissão de acesso às informações 
de vendas.
38
Ainda analisando Figura 1, observe que os sistemas de controle 
de acesso com base em funções (não somente este da figura, mas 
todos eles) compartilham elementos essenciais, como:
• Administradores: eles identificam funções, concedem 
permissões e, de outra forma, mantêm os sistemas de 
segurança.
• Funções: os trabalhadores são agrupados com base nas 
tarefas que executam.
• Permissões: o acesso e as ações estão vinculados a cada 
função e definem o que as pessoas podem e não podem fazer.
Por fim, no método ABAC, cada recurso e usuário são atribuídos 
a uma série de atributos. Nesse método dinâmico, uma avaliação 
comparativa dos atributos do usuário, incluindo hora do dia, posição 
e localização, são usados para tomar uma decisão sobre o acesso a 
um recurso.
PARA SABER MAIS
A injeção de SQL é a forma mais comum de ataque a sites, pois os 
formulários são muito comuns e, geralmente, não são codificados 
corretamente. Além disso, as ferramentas de hacking usadas para 
encontrar pontos fracos e tirar proveito deles estão disponíveis on-
line. 
Esse tipo de exploração é fácil o suficiente para que hackers 
inexperientes possam realizar estragos de pequeno a grande porte. 
No entanto, nas mãos de um hacker muito habilidoso, uma fraqueza 
no código da web pode revelar o acesso no nível raiz dos servidores39
da web e, a partir disso, ataques em outros servidores em rede 
podem ser realizados.
Um acesso legítimo dos visitantes ao seu site pode incluir 
pesquisas, formulários de inscrição, formulários de contato, 
formulários de logon e tudo isso fornece acessos para o banco 
de dados. Esses vários pontos de acesso são possivelmente 
incorporados em aplicativos prontos para uso ou podem ser 
aplicativos personalizados configurados apenas para o seu site. 
Esses formulários e seu código de suporte provavelmente vieram 
de muitas fontes, foram adquiridos em momentos diferentes e, 
possivelmente, instalados por pessoas diferentes.
A injeção de SQL é o uso desses campos que estão disponíveis 
publicamente para obter entrada no seu banco de dados. Isso é 
feito inserindo comandos SQL nos campos do formulário, em vez 
dos dados esperados. Os formulários codificados incorretamente 
permitirão que um hacker os use como um ponto de entrada no 
banco de dados, quando os dados no banco de dados podem se 
tornar visíveis e o acesso a outros bancos de dados no mesmo 
servidor ou em outros servidores da rede.
Como os sites exigem acesso constante ao banco de dados, os 
firewalls oferecem pouca ou nenhuma defesa contra-ataques 
de injeção de SQL. Se o site é público e os firewalls devem ser 
configurados para permitir que cada visitante do site acesse o banco 
de dados, geralmente pela porta 80/443.
Os programas antivírus são igualmente ineficazes no bloqueio de 
ataques de injeção de SQL. Eles visam detectar e interromper um 
tipo totalmente diferente de dados recebidos.
A defesa de injeção SQL mais usada é composta de dois 
componentes. Primeiro, aplicando atualizações e correções de 
40
rotina de todos os servidores, serviços e aplicativos. O segundo 
componente se trata de produzir e usar códigos de sites bem 
escritos e bem testados, de modo a não permitir que comandos SQL 
inesperados sejam executados.
Essas duas defesas são por definição suficientes para interromper 
qualquer ataque de injeção de SQL.
TEORIA EM PRÁTICA
Autenticação, autorização e controle de acesso são três conceitos 
fundamentais de segurança cibernética que costumam ser 
confundidos e usados de forma intercambiável. Apesar de serem 
entendidos como um único processo pelo usuário, existem 
distinções entre esses três conceitos, logo, é importante saber 
diferenciá-los para projetar um sistema efetivo de segurança.
Reflita sobre o caso seguinte: você é o administrador de um sistema 
de banco de dados em uma empresa de desenvolvimento de 
software. Em determinado dia, o gerente lhe entrega uma missão: 
você deve criar o controle de acesso, definindo o usuário e a senha 
para cada funcionário. Você logo percebe que tem algo errado na 
fala e pergunta se ele quer que seja criado o controle de acesso ou 
a autenticação ao sistema. Então, seu gerente lhe questiona: “Não 
é tudo a mesma coisa?”, desse modo, você vê uma oportunidade 
de mostrar a ele seus conhecimentos. Então, apresente a diferença 
entre autenticação, autorização e controle de acesso, citando 
exemplos.
Para conhecer a resolução comentada proposta pelo professor, 
acesse a videoaula deste Teoria em Prática no ambiente de 
aprendizagem.
41
LEITURA FUNDAMENTAL
Prezado aluno, as indicações a seguir podem estar disponíveis 
em algum dos parceiros da nossa Biblioteca Virtual (faça o log 
in por meio do seu AVA), e outras podem estar disponíveis em 
sites acadêmicos (como o SciELO), repositórios de instituições 
públicas, órgãos públicos, anais de eventos científicos ou 
periódicos científicos, todos acessíveis pela internet. 
Isso não significa que o protagonismo da sua jornada de 
autodesenvolvimento deva mudar de foco. Reconhecemos 
que você é a autoridade máxima da sua própria vida e deve, 
portanto, assumir uma postura autônoma nos estudos e na 
construção da sua carreira profissional. 
Por isso, nós o convidamos a explorar todas as possibilidades da 
nossa Biblioteca Virtual e além! Sucesso!
Indicação 1
SQL Injection ou injeção SQL é uma técnica de ataque a sites e 
aplicativos web. Esse tipo de ataque tem crescido à medida que 
as empresas oferecem ainda mais interação em seus sites para os 
visitantes. Mais importante do que entender o que é SQL Injection 
é compreender como se proteger. Desse modo, o artigo Injeção de 
SQL em aplicações Web: causas e prevenção traz as características de 
uma injeção SQL, bem como técnicas de prevenção. Trata-se de uma 
leitura recomendada devido a relevância do assunto no dia a dia 
do administrador de banco de dados. Para acessar o artigo, busque 
pelo título no acervo da Universidade Federal do Rio Grande do Sul.
Indicações de leitura
42
FARIAS, M. Injeção de SQL em Aplicações Web. Trabalho de 
Graduação - Universidade Federal do Rio Grande do Sul, Porto 
Alegre, 2009.
Indicação 2
No livro Introdução à segurança de computadores, entre as 
páginas 382 e 417, o autor apresenta o conceito de criptografia 
bem como os diferentes tipos, classificando as criptografias 
simétricas e assimétricas. Ele também apresenta os conceitos de 
hash e assinaturas digitais. Trata-se de uma leitura fortemente 
recomendada devido a importância da criptografia para a segurança 
da informação.
GOODRICH, M.; TAMASSIA, R. Introdução à segurança de 
computadores. Porto Alegre: Bookman, 2013. 
QUIZ
Prezado aluno, as questões do Quiz têm como propósito a 
verificação de leitura dos itens Direto ao Ponto, Para Saber 
Mais, Teoria em Prática e Leitura Fundamental, presentes neste 
Aprendizagem em Foco.
Para as avaliações virtuais e presenciais, as questões serão 
elaboradas a partir de todos os itens do Aprendizagem em Foco 
e dos slides usados para a gravação das videoaulas, além de 
questões de interpretação com embasamento no cabeçalho 
da questão.
43
1. A injeção de SQL é uma técnica usada para explorar dados do 
usuário por meio de entradas de páginas da Web, injetando 
comandos SQL como instruções. Basicamente, essas 
instruções podem ser usadas para manipular o servidor web 
do aplicativo por usuários mal-intencionados.
Sobre a injeção de SQL, assinale a alternativa correta. 
a. A forma primária de injeção SQL consiste em inserção indireta 
de código em campos de texto em formulário web.
b. A forma principal de injeção SQL é a invasão do servidor de 
banco de dados com as credenciais de super usuário.
c. A injeção SQL permite que um invasor acesse os servidores de 
banco de dados e execute códigos SQL.
d. O servidor SQL deve estar parametrizado para evitar que a 
Injeção SQL seja executada por criminosos.
e. O procedimento que constrói instruções SQL deve ser 
revisado quanto a vulnerabilidades de injeção. 
2. Leia com atenção a definição de controle de acesso.
“O controle de acesso é um componente fundamental da 
segurança de dados, que determina quem pode acessar e usar 
informações e recursos da empresa. Por meio de autenticação 
e autorização, as políticas de controle de acesso garantem 
que os usuários sejam quem dizem ser e que tenham acesso 
apropriado aos dados da empresa. O controle de acesso 
também pode ser aplicado para limitar o acesso físico a campi, 
edifícios, salas e datacenters.”
Fonte: CITRIX. O que é controle de acesso. Disponível em: 
https://www.citrix.com/pt-br/solutions/secure-access/what-is-
access-control.html. Acesso em: 29 jun. 2021.
44
Sobre controle de acesso, autenticação e autorização, assinale 
a alternativa correta.
a. Um funcionário que pega emprestado o crachá de um amigo 
para ter acesso ao datacenter está quebrando o processo de 
autenticação.
b. No controle de acesso baseado em função, o acesso se baseia 
em atributos como localização e horário do dia.
c. Um dispositivo de autenticação que contribui para o controle 
de acesso é o leitor biométrico.
d. A autenticação impede que dados confidenciais sejam 
apresentados para usuários não autenticados no sistema.
e. A autorização, diferentemente da autenticação, apresenta as 
políticas e define quais partes do sistema umusuário pode ter 
acesso. 
GABARITO
Questão 1 - Resposta E
Resolução: A alternativa está correta, pois o ataque por 
injeção de SQL consiste em inserir diretamente código SQL 
em campos de formulários como entrada de texto. Desse 
modo, todo procedimento em uma aplicação web que execute 
instruções SQL precisa ser revisado, de modo a minimizar a 
vulnerabilidade a possíveis ataques de injeção. 
Questão 2 - Resposta C
Resolução: A alternativa está correta, pois a autenticação 
pode ser física (nesse caso, trata-se de um dispositivo de leitor 
biométrico) ou pode ser lógica (como um campo para digitar 
o usuário e senha). Em ambos os casos, a autenticação é o 
primeiro passo para que seja aplicado o controle de acesso. 
45
Depois que a autenticação é realizada com sucesso, o controle 
de acesso autoriza as ações do usuário mediante a regras e 
políticas previamente parametrizadas. 
BONS ESTUDOS!
W
BA
08
80
_V
1.
0
ADMINISTRAÇÃO DE 
BANCOS DE DADOS
2
Ariel da Silva Dias 
São Paulo 
Platos Soluções Educacionais S.A 
2021
ADMINISTRAÇÃO DE BANCOS DE DADOS
1ª edição
3
2021
Platos Soluções Educacionais S.A
Alameda Santos, n° 960 – Cerqueira César
CEP: 01418-002— São Paulo — SP
Homepage: https://www.platosedu.com.br/
Diretor Presidente Platos Soluções Educacionais S.A 
Paulo de Tarso Pires de Moraes
Conselho Acadêmico
Carlos Roberto Pagani Junior
Camila Turchetti Bacan Gabiatti
Camila Braga de Oliveira Higa
Giani Vendramel de Oliveira
Gislaine Denisale Ferreira
Henrique Salustiano Silva
Mariana Gerardi Mello
Nirse Ruscheinsky Breternitz
Priscila Pereira Silva
Tayra Carolina Nascimento Aleixo
Coordenador
Henrique Salustiano Silva
Revisor
Washington Henrique Carvalho Almeida
Editorial
Alessandra Cristina Fahl
Beatriz Meloni Montefusco
Carolina Yaly
Mariana de Campos Barroso
Paola Andressa Machado Leal 
Dados Internacionais de Catalogação na Publicação (CIP)_____________________________________________________________________________________ 
Dias, Ariel da Silva
D541a Administração de bancos de dados / Ariel da Silva Dias, – 
 São Paulo: Platos Soluções Educacionais S.A., 2021.
 44 p.
 
 ISBN 978-65-89965-68-8
 
 1. Banco de dados. 2. SQL Server. 3. Oracle. I. Título. 
CDD 005
____________________________________________________________________________________________
Evelyn Moraes – CRB 010289/O
© 2021 por Platos Soluções Educacionais S.A.
Todos os direitos reservados. Nenhuma parte desta publicação poderá ser 
reproduzida ou transmitida de qualquer modo ou por qualquer outro meio, 
eletrônico ou mecânico, incluindo fotocópia, gravação ou qualquer outro tipo de 
sistema de armazenamento e transmissão de informação, sem prévia autorização, 
por escrito, da Platos Soluções Educacionais S.A.
4
SUMÁRIO
Sistemas de Gerenciamento de Banco de Dados _____________ 05
Transações ___________________________________________________ 20
Backup e recuperação de banco de dados ___________________ 35
Segurança de banco de dados _______________________________ 48
ADMINISTRAÇÃO DE BANCOS DE DADOS
5
Sistemas de Gerenciamento de 
Banco de Dados
Autoria: Ariel da Silva Dias
Leitura crítica: Washington Henrique Carvalho Almeida
Objetivos
• Compreender o conceito de dados e a necessidade 
de seu gerenciamento.
• Examinar as funcionalidades de um sistema de 
gerenciamento de banco de dados.
• Relacionar um banco de dados SQL e um banco de 
dados NoSQL.
6
1. Sistemas de Gerenciamento de Banco de 
Dados (SGBD)
Então, você está construindo um aplicativo de software e um dos 
primeiros problemas a serem resolvidos é como armazenar seus 
dados. Qual banco de dados você escolherá?
Um Sistema de Gerenciamento de Banco de Dados, ou SGBD, é um 
software que se comunica com o próprio banco de dados, aplicativos 
e interfaces de usuário para obter dados e analisá-los. O SGBD 
também contém os principais instrumentos para controlar o banco de 
dados (ELMASRI, 2009; ORACLEc, 2021).
Antes de entrarmos a fundo no estudo sobre SGBD e conhecer os 
principais sistemas, analisaremos as definições de dados, banco de 
dados e gerenciadores de banco de dados.
1.1 Dados
Os dados são fatos e estatísticas armazenados ou fluindo livremente 
em uma rede ou sistema computacional, geralmente, são brutos e 
não processados. Por exemplo, quando você visita um site qualquer, 
este site pode armazenar seu endereço IP, ou seja, dados, em troca 
podem adicionar um cookie em seu navegador, indicando que você 
visitou o site, ou seja, dados. Além disso, o site pode coletar seu 
nome, idade, localização, preferências, ou seja, seus dados.
Os dados tornam-se informações quando são processados, 
transformando-os em algo significativo. Por exemplo, com base nos 
dados de cookies salvos no navegador do usuário, um site pode 
analisar os dados e obter a informação de que a maior parte das 
pessoas que visitam o site são mulheres solteiras de 26 a 40 anos, ou 
seja, informações derivadas dos dados coletados.
7
Observe que, para uma empresa (não limitando somente a 
empresas), os dados são verdadeiros tesouros preciosos. Por meio 
de uma análise profunda, é possível tirar diversas conclusões sobre 
os dados. Como no exemplo acima, onde a empresa, conhecendo seu 
público principal, pode redirecionar propagandas ou produtos que 
atendam ao interesse de mulheres solteiras, de 26 a 40 anos. Logo, os 
dados são verdadeiros tesouros que, se bem utilizados, podem gerar 
grandes oportunidades estratégicas.
1.2 Banco de dados
Um banco de dados é uma coleção de dados relacionados, 
organizados de forma que os dados possam ser facilmente 
acessados, gerenciados e atualizados. O banco de dados pode ser 
baseado em software ou hardware, com um único propósito, o 
armazenamento de dados, segundo Elmasri, (2009).
Durante os primeiros dias do computador, os dados eram coletados 
e armazenados em fitas, que eram, em sua maioria, somente 
para gravação, o que significa que, uma vez que os dados são 
armazenados, nunca mais poderão ser lidos. Eram lentos e pesados, 
e logo os cientistas da computação perceberam que precisavam de 
uma solução melhor para esse problema.
Em um banco de dados, os dados são organizados de forma que 
seja possível encontrar e gerenciar rapidamente as informações 
desejadas.
Um exemplo muito simples de um banco de dados pode ser uma lista 
de nomes em ordem alfabética ou uma lista crescente de códigos 
numéricos, onde cada código representa um item do estoque.
Você pode armazenar informações no banco de dados de diferentes 
maneiras, conhecidas como modelos de banco de dados.
8
Os bancos de dados, normalmente, têm uma de duas formas básicas:
• Banco de dados de arquivo único ou arquivo simples.
• Banco de dados relacional ou estruturado de vários arquivos.
Um banco de dados de arquivo simples armazena dados em um 
arquivo de texto simples, com cada linha de texto, normalmente, 
contendo um registro. Delimitadores como vírgulas ou tabulações 
separam os campos. Um banco de dados de arquivo simples, como 
o nome indica, usa uma estrutura simples e, ao contrário de um 
banco de dados relacional, não pode conter várias tabelas e relações, 
segundo Elmasri.
Um banco de dados relacional contém várias tabelas de dados com 
linhas e colunas que se relacionam entre si, por meio de campos-
chave especiais. Esses bancos de dados são mais flexíveis do que 
as estruturas de arquivo simples e fornecem funcionalidade para 
leitura, criação, atualização e exclusão de dados. Os bancos de dados 
relacionais usam Structured Query Language (SQL), um aplicativo de 
usuário padrão que fornece uma interface de programação fácil para 
interação com o banco de dados.
O modelo de banco de dados relacional é o modelo de banco 
de dados mais amplamente usado. Usa relações e conjuntos 
para armazenar os dados. Na prática, parece que os dados são 
organizados em tabelas. Para acessar informaçõesde um banco de 
dados, você, normalmente, precisa de um sistema de gerenciamento 
de banco de dados, ou simplesmente, de um SGBD (ORACLEc, 2021).
1.3 SGBD
Um SGBD é um software que permite a criação, definição e 
manipulação de banco de dados, permitindo aos usuários armazenar, 
9
processar e analisar dados com facilidade. O SGBD fornece uma 
ferramenta para realizar várias operações, como criar banco de 
dados, armazenar dados nele, atualizar dados, criar tabelas no banco 
de dados e muito mais.
O software SGBD funciona, principalmente, como uma interface entre 
o usuário final e o banco de dados, gerenciando simultaneamente 
os dados, o mecanismo do banco de dados e o esquema do banco 
de dados para facilitar a organização e a manipulação dos dados 
(ORACLEc, 2021).
Embora as funções do SGBD variem muito, os recursos e capacidades 
do SGBD de uso geral devem incluir: um catálogo acessível ao usuário 
que descreve metadados, sistema de gerenciamento de biblioteca 
SGBD, abstração e independência de dados, segurança de dados, 
registro e auditoria de atividade, suporte para simultaneidade e 
transações, suporte para autorização de acesso, suporte de acesso 
de locais remotos, suporte de recuperação de dados SGBD em caso 
de danos e aplicação de restrições, para garantir que os dados sigam 
certas regras, segundo Elmasri, (2009).
O SGBD também fornece proteção e segurança para os bancos de 
dados, inclusive mantendo a consistência dos dados no caso de vários 
usuários. A Figura 1 apresenta uma organização onde temos o banco 
de dados sendo gerenciado pelo SGBD.
10
Figura 1–Sistema de gerenciamento de banco de dados
Fonte: elaborada pelo autor.
Basicamente, existem dois tipos de SGBDs: relacionais e não relacionais, 
conhecidos mais por, respectivamente, SQL e NoSQL. Diferem em 
termos de recuperação, distribuição e processamento de dados. 
Veremos estes tipos de SGBDs a seguir.
1.3.1 Bancos de Dados Relacionais (SGBDR)
Como o SQL é o núcleo desses sistemas, esse tipo de banco também é 
chamado de SQL. Em SGBDR, os dados aparecem como tabelas de linhas 
e colunas com uma estrutura rígida e dependências bem definidas.
Devido à estrutura integrada e ao sistema de armazenamento de dados, 
os bancos de dados SQL não requerem muito esforço de engenharia 
para torná-los bem protegidos. São uma boa escolha para construir e 
dar suporte a soluções de software complexas, onde qualquer interação 
tem uma série de consequências. Um dos fundamentos do SQL é 
a conformidade com ACID (atomicidade, consistência, isolamento, 
11
durabilidade). A conformidade com ACID é uma opção preferida se você 
criar, por exemplo, aplicativos de comércio eletrônico ou financeiros, 
onde a integridade do banco de dados é crítica, segundo Elmasri, (2009).
No entanto, a escalabilidade pode ser um desafio com bancos de dados 
SQL. O dimensionamento de um banco de dados SQL entre vários 
servidores (dimensionamento horizontal) exige esforços adicionais de 
engenharia, sendo um ponto fraco deste tipo de banco. Em vez disso, os 
bancos de dados SQL são, geralmente, escalados verticalmente, ou seja, 
adicionando mais poder de computação a um servidor.
Entre os principais bancos de dados SQL, destacam-se: SQL Server, 
Oracle, MySQL, MariaDB e PostgreSQL.
1.3.1 Bancos de Dados Não Relacionais (NoSQL)
Como esses bancos de dados não estão limitados a uma estrutura de 
tabela, são chamados de NoSQL. Este tipo de sistema de gerenciamento 
de banco de dados é considerado orientado a documentos. Dados não 
estruturados, como artigos, fotos, vídeos, publicações em redes sociais, 
áudios e outros, são coletados em um único documento. Os dados são 
simples de consultar, mas nem sempre são classificados em linhas e 
colunas como em um banco de dados relacional. Os bancos de dados 
não relacionais ou NoSQL,geralmente, são escalados horizontalmente 
com a adição de novos servidores (ELMASRI, 2009; ORACLEc, 2021).
Como os bancos de dados NoSQL permitem reservar vários tipos de 
dados juntos e escaloná-los, crescendo em torno de vários servidores, 
este tipo de banco está a cada dia se tornando mais popular, sendo 
utilizado por grandes nomes, como Facebook, Netflix, Twitter, Google, 
entre outros.
Os bancos de dados NoSQL são definidos em quatro tipos:
12
• Banco de dados chave-valor: têm uma estrutura de dados 
de dicionário, que consiste em um conjunto de objetos que 
representam campos de dados. Cada objeto recebe uma chave 
exclusiva. Para recuperar dados armazenados em um determinado 
objeto, precisa usar uma chave específica. Por sua vez, você obtém 
o valor (ou seja, dados) atribuído à chave. Esse valor pode ser 
um número, uma string ou até mesmo outro conjunto de pares 
de chave-valor. Geralmente, são bancos de dados in-memory. 
Principais sistemas de banco de dados deste tipo: Riak, Redis, 
Amazon DynamoDB.
• Banco de dados de documentos: são repositórios que podem ser 
representados nos formatos XML, JSON, BSON, que consistem em 
conjuntos de pares do tipo chave-valor para armazenamento dos 
dados. Esses documentos são unidades básicas de dados que você 
também pode agrupar em coleções (bancos de dados), com base 
em sua funcionalidade. Principais sistemas de banco de dados 
deste tipo: MongoDB, CouchDB e Elasticsearh.
• Banco de dados colunar: os dados são armazenados e agrupados 
em colunas armazenadas separadamente em vez de linhas. Esses 
bancos de dados organizam as informações em colunas que 
funcionam de forma semelhante às tabelas dos bancos de dados 
relacionais. Principais sistemas de banco de dados deste tipo: 
Cassandra e CosmoDB.
• Banco de dados baseado em grafos: usam uma representação 
flexível de grafos para gerenciar dados, consistindo em 
três elementos: o vértice ou nó (em comparação ao SQL, é 
como se fosse uma linha em um SGBD), aresta (representa 
o relacionamento entre dois nós), a propriedade (as arestas 
possuem propriedades, o que permite organizar os vértices). 
Principais sistemas de banco de dados deste tipo: Neo4J, ArangoDB 
e OrientDB.
13
1.4 Microsoft SQL Server
O Microsoft SQL Server é um dos líderes de mercado em tecnologia 
de gerenciamento de banco de dados. Trata-se de SGBDR que oferece 
suporte a vários aplicativos, incluindo BI (Business Intelligence), 
processamento de transações e análises.
O SQL Server segue uma estrutura de tabela baseada em linhas, 
permitindo a conexão de dados e funções enquanto mantém a 
segurança e consistência dos dados.
O Microsoft SQL Server também permite uma instalação simples 
e atualizações automáticas, personalização para atender às suas 
necessidades de negócios e manutenção simples de seu banco de 
dados.
1.4.1 Gerência de dados
Um banco de dados SQL é composto por um ou mais arquivos de dados 
(.mdf/.ndf) e um arquivo de log de transações (.ldf). Os arquivos de 
dados contêm esquema e dados, e o arquivo de log contém alterações 
ou inserções recentes. Os dados são organizados por páginas (como um 
livro), cada página tem 8 KB e são gerenciados quanto a leitura, escrita e 
atualizações (MICROSOFT, 2019).
De acordo com o site oficial, uma página é a unidade de armazenamento 
fundamental do SQL Server. O SQL Server acessa os dados puxando 
toda a página de 8 KB do disco para a memória. As páginas permanecem 
temporariamente na memória até que não sejam mais necessárias. 
Amiúde, a mesma página será modificada ou lida com frequência, pois o 
SQL funciona com o mesmo conjunto de dados (MICROSOFT, 2019).
O SQL altera os dados por meio de exclusão ou modificação, ou 
gravando novos dados. Todas as modificações são gravadas no log de 
14
transações (que fica no disco onde é seguro), no caso do servidor SQL 
perder energia antes de gravar os dados de volta no disco (MICROSOFT, 
2019).
A página de 8 KB é gravada de volta no disco depois de não ser usada 
por um determinado período. Depois que uma transação é gravada 
no disco (arquivo .mdf / .ndf), é marcada como gravada no log de 
transações. Em caso de queda de energia,o SQL pode recuperar as 
transações concluídas que não foram gravadas e adicioná-las aos 
arquivos do banco de dados (.mdf e .ndf) quando voltar a operar.
1.4.2 Edições SQL Server
Existem várias edições do SQL Server, dependendo do tamanho 
dos bancos de dados e qual a sua finalidade. Algumas edições são 
(MICROSOFT, 2019):
• Enterprise: para grandes organizações com requisitos complexos, 
a Enterprise Edition pode gerenciar bancos de dados de até 524 PB 
(Petabytes–1000 terabytes) e a quantidade de memória e núcleos 
de CPU é limitada apenas pelo sistema operacional em que está 
sendo executado.
• Standard: esta é a edição para empresas que possuem um banco 
de dados de tamanho razoável, 10 GB ou mais, ou se muitas 
pessoas se conectarem a ele. Possuí um limite de 128 GB de 
memória, mas também pode gerenciar bancos de dados de até 
524 PB.
• Web: projetado como uma maneira mais econômica de gerenciar 
bancos de dados para sites da web.
• BI (Business Intelligence): semelhante ao SQL Standard, mas 
com mais ferramentas analíticas e com propósito específico para 
Business Intelligence.
15
• Workgroup: disponível apenas até o SQL 2008, que agora está em 
fim de vida. Projetado para aplicações de pequenas empresas.
• Express: SQL Express é muito comum para pequenas e médias 
empresas. Embora suporte apenas bancos de dados de até 10 
GB e possa usar apenas 1 GB de memória e 1 núcleo de CPU, é 
uma licença gratuita da Microsoft, portanto, muitos aplicativos 
destinados a pequenas e médias empresas aproveitarão as 
vantagens do SQL Express. É uma maneira muito econômica de 
fornecer um mecanismo de banco de dados robusto e confiável 
para pequenas empresas, além de ser a versão escolhida por 
instituições de ensino.
Durante os estudos, utilizaremos o SQL Server 2019 Express.
1.5 Oracle
Um dos sistemas de banco de dados mais populares em todo o mundo, 
a Oracle, é confiável para algumas das maiores empresas em operação. 
Com muitas versões diferentes do banco de dados Oracle lançadas, 
a Oracle oferece recursos inovadores em muitas áreas, incluindo 
gerenciamento, desempenho, segurança e desenvolvimento (ORACLE, 
2018a).
Os administradores e desenvolvedores de banco de dados podem 
usar facilmente este sistema de banco de dados para criar aplicativos 
inovadores para suas operações de negócios. A marca Oracle 
é bem conhecida por sua dedicação contínua em pavimentar o 
desenvolvimento futuro de recursos atualizados para melhor 
auxiliar empresas, pequenas e grandes, em suas necessidades de 
gerenciamento de dados.
O banco de dados Oracle pode ser implantado localmente, em nuvem 
ou em uma configuração híbrida, sendo, principalmente, usado para 
16
armazenar dados para sistemas de processamento de transações 
online (OLTP) e vendido em várias edições com diferentes conjuntos de 
recursos e faixas de preço (ORACLE, 2018a).
Embora o banco de dados Oracle seja um data warehouse popular para 
empresas em todos os setores, você vai querer dar uma olhada mais de 
perto no custo da plataforma, na estratégia de bloqueio e nos requisitos 
de licenciamento antes de decidir exatamente como (e quando) usar o 
Oracle.
1.5.1 Arquitetura: armazenamento físico e lógico
A arquitetura do banco de dados Oracle depende de dois tipos de 
armazenamento: físico e lógico (ORACLE, 2018a).
• O armazenamento físico (em disco) contém todos os arquivos 
do banco de dados. Estruturas de armazenamento lógico, como 
espaços de tabela, segmentos, extensões e blocos aparecem no 
disco, mas não fazem parte do conjunto de dados.
• O armazenamento lógico ajuda os usuários a localizar dados 
específicos e ajuda a melhorar a eficiência do processo de 
recuperação, permitindo um sistema modular de armazenamento 
de dados no qual a capacidade pode ser ajustada sem afetar o 
desempenho.
Para entender a diferença entre os dois tipos de armazenamentos, 
utilizaremos como exemplo um livro. O livro é impresso em papel, ou 
seja, trata-se de um armazenamento físico, porém, existem informações 
adicionais, como o número do capítulo, número da página e notas de 
rodapé, que ajudam os leitores a navegar pelo livro e seu conteúdo, isso 
seria o armazenamento lógico.
Observe, então, que o armazenamento lógico se refere a uma 
informação contextual que aparece no livro, porém, que não faz parte 
17
da história do livro. Pelo contrário, trata-se de um guia para ajudar o 
leitor a encontrar informações específicas ou se localizar.
1.5.2 Arquitetura: objetos
Compreender a diferença entre o armazenamento físico e o 
armazenamento lógico é uma base para a compreensão de objetos de 
banco de dados.
As estruturas de armazenamento lógico diferem dos objetos de banco 
de dados em seu grau de visibilidade. Enquanto as estruturas lógicas 
de armazenamento residem no banco de dados para ajudar a organizar 
os dados, os objetos do banco de dados consistem em representações 
conceituais dos dados (ORACLE, 2018a).
Exemplos de objetos de banco de dados incluem linhas, tabelas, índices 
e visualizações que exibem dados.
Os objetos de banco de dados representam a visão lógica dos dados 
armazenados em arquivos de vários locais. Para conseguir isso, os 
objetos de banco de dados contam com estruturas de armazenamento 
lógico, que localizam os dados de destino.
1.5.3 Arquitetura: banco de dados e instâncias
O termo banco de dados é, geralmente, usado quando nos referimos 
ao banco de dados e à instância como um todo. Entretanto, é mais 
preciso usar este termo ao se referir especificamente ao disco físico ou 
armazenamento de arquivo que contém os dados e metadados. Por 
outro lado, uma instância são os processos e a memória reservados para 
acessar as informações no banco de dados.
18
Os bancos de dados existem no armazenamento físico (disco, 
por exemplo), enquanto as instâncias residem na memória e são 
executadas como processos. Estruturas de memória armazenam dados 
e metadados. Os processos ajudam a executar o banco de dados, 
permitem a comunicação entre vários componentes e mantêm os dados 
entre a memória e o disco sincronizados(ORACLE, 2018a).
1.5.4 Edições Oracle
A Oracle possui quatro edições de seu banco de dados, cada uma com 
seus preços e características diferentes (ORACLE, 2020b):
• Enterprise Edition (EE): é a principal edição do Oracle, que 
possui uma vasta gama de ferramentas e recursos para grandes 
corporações.
• Standard Edition (SE): edição que possui as funções básicas 
de gerenciamento de banco de dados para pequenas e médias 
empresas, a um custo muito menor do que o EE.
• Standard Edition One (SEO): é uma edição indicada para 
pequenas empresas e possui um preço especial para servidores de 
um único processador.
• Oracle Express (OE): é a versão ideal para Database Administrator 
(DBA), ou Administrador de Banco de Dados, cientistas de dados, 
estudantes e para aqueles que estão tendo seu primeiro contato 
com a Oracle. Trata-se de um banco de dados com as mesmas 
funcionalidades e poder computacional que outras versões, 
entretanto, possui um processo de download e instalação mais 
simples e é gratuito.
Durante os estudos, utilizaremos o Oracle 18C Express.
19
Nesta unidade, você pode conhecer um pouco sobre o conceito de 
banco de dados e sobre os gerenciadores de banco de dados. Você 
também foi apresentado a dois conceitos: bancos de dados relacionais 
e banco de dados não relacionais ou NoSQL. Enquanto os bancos 
relacionais utilizam uma estrutura fixa como tabelas com colunas e 
linhas, os bancos NoSQL são mais flexíveis, podendo apresentar pelo 
menos quatro tipo de organizações: banco de dados chave-valor, banco 
de dados de documentos, banco de dados orientado a grafos e banco de 
dados orientados a colunas.
Por fim, você teve uma introdução sobre os dois principais 
gerenciadores de bancos de dados: o SQL Server e o Oracle Database.
Referências
ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. 4. ed. São Paulo: 
Pearson, 2009.
MICROSOFT. Guia de arquitetura de página e extensões.2019. Disponível 
em: https://docs.microsoft.com/pt-br/sql/relational-databases/pages-and-
extents-architecture-guide?view=sql-server-ver15#:~:text=Conforme%20
mencionado%2C%20em%20SQL%20Server,de%20sistema%20sobre%20a%20
p%C3%A1gina. Acesso em: 31 ago. 2021.
ORACLEa. Oracle Database 18c Technical Architecture. 2018. Disponível em: 
https://www.oracle.com/webfolder/technetwork/tutorials/architecture-diagrams/18/
technical-architecture/pdf/db-18c-architecture.pdf. Acesso em: 31 ago. 2021.
ORACLEb. Oracle Database Editions. Disponível em: https://docs.oracle.com/cd/
E11882_01/license.112/e47877/editions.htm#DBLIC109. Acesso em: 31 ago. 2021.
ORACLEc. O que é SQL? Disponível em: https://www.oracle.com/br/database/what-
is-database/. Acesso em: 31 ago. 2021.
https://docs.microsoft.com/pt-br/sql/relational-databases/pages-and-extents-architecture-guide?view=
https://docs.microsoft.com/pt-br/sql/relational-databases/pages-and-extents-architecture-guide?view=
https://docs.microsoft.com/pt-br/sql/relational-databases/pages-and-extents-architecture-guide?view=
https://docs.microsoft.com/pt-br/sql/relational-databases/pages-and-extents-architecture-guide?view=
https://www.oracle.com/webfolder/technetwork/tutorials/architecture-diagrams/18/technical-architectu
https://www.oracle.com/webfolder/technetwork/tutorials/architecture-diagrams/18/technical-architectu
https://docs.oracle.com/cd/E11882_01/license.112/e47877/editions.htm#DBLIC109.
https://docs.oracle.com/cd/E11882_01/license.112/e47877/editions.htm#DBLIC109.
20
Transações
Autoria: Ariel da Silva Dias
Leitura crítica: Washington Henrique Carvalho Almeida
Objetivos
• Compreender o conceito de transação em um banco 
de dados.
• Relacionar as propriedades ACID com os bancos de 
dados relacionais.
• Compreender os casos de bloqueio entre 
transações.
21
1. Processamento de transações
Os analistas de negócios que trabalham em soluções de sistemas devem 
ter uma compreensão básica dos conceitos de banco de dados. Diversos 
sistemas de gerenciamento de banco de dados (SGBD) fazem parte de 
uma classe de sistemas chamados de sistemas OLTP (OnLine Transaction 
Processing).
Antes de estudarmos sobre o processamento de transações e as 
propriedades a elas relacionadas, poderemos entender o que é uma 
transação em um banco de dados no contexto de OLTP.
Resumidamente, uma transação representa uma série de operações 
realizadas em um SGBD em relação a um banco de dados de modo que, 
uma vez que a transação é concluída, os dados são deixados em um 
estado confiável e também consistente. Se alguma etapa da transação 
falhar, todas as etapas serão revertidas, ou seja, retrocedidas, de modo 
que a integridade dos dados possa ser mantida.
Um exemplo típico de transação seria um pedido de um cliente em 
uma loja virtual. Este pedido consiste em uma série de eventos como 
aceitação do pedido, manutenção dos dados no estoque, cobrança, 
entre outros. A principal característica é que todos estes eventos são 
tratados como um todo.
Como dito anteriormente, uma transação não pode permanecer em 
um estado intermediário incompleto, desse modo, outros processos 
não podem acessar os dados da transação até que a transação seja 
concluída ou tenha sido revertida após a falha. O processamento de 
transações é projetado para manter a integridade do banco de dados (a 
consistência dos itens de dados relacionados) em um estado conhecido 
e consistente.
22
Desse modo, considerado o exemplo acima, a transação (pedido do 
cliente) só será efetivada quando tudo (aceitação do pedido, atualização 
do estoque, comprovação do pagamento, entre outros) forem 
processadas em sua totalidade. Logo, se houver uma falha na aceitação 
do pedido ou na comprovação do pagamento, a transação não será 
efetivada.
Outro exemplo típico de transação ocorre quando você realiza 
uma transferência via PIX de sua conta para outra. Por exemplo, 
consideremos que Ana e Beatriz, duas amigas, ambas possuem o saldo 
de R$ 1.000,00 em suas contas bancárias. Ana vai transferir, de sua 
conta bancária, o valor de R$ 300,00 para a conta bancária de Beatriz. 
Essencialmente, o que deve ser feito na transação é:
• Retirar o valor 300 do saldo de Ana, atualizando este novo saldo.
• Somar o saldo atual de Beatriz com o valor 300, atualizando este 
novo saldo.
Um código simplificado é apresentado a seguir, exemplificando esta 
transação:
UPDATE conta SET saldo = saldo–300 WHERE cliente = ‘Ana’ 
UPDATE conta SET saldo = saldo + 300 WHERE cliente = ‘Beatriz’
Este código, apesar de ter duas linhas, representa apenas uma única 
transação. Desse modo, por exemplo, se o nome do cliente destinatário 
(Beatriz) estiver errado ou não existir no banco, a transação não será 
efetivada. Ana continuará com seu saldo anterior (ou seja, não terá 
o débito do valor R$ 300,00 em sua conta) e Beatriz não receberá o 
crédito.
Se a transação for finalizada com sucesso, ou seja, não houve falha em 
nenhuma instrução, o novo saldo das amigas será R$ 700,00 para Ana e 
R$ 1.300,00 para Beatriz.
23
As transações também podem ocorrer em outros ambientes, por 
exemplo, entre uma organização e sua equipe por meio do aplicativo de 
Recursos Humanos, em marketing, controle de produção e em outros 
lugares. Normalmente, mas nem sempre, esses tipos de aplicativos 
foram implementados sobre bancos de dados relacionais.
Os SGBDs foram desenvolvidos para oferecer suporte ao 
processamento de transações, entretanto, não são os únicos meios 
para o processamento de transações por motivos históricos e por 
motivos técnicos. Além de aplicativos transacionais baseados em dados 
puramente relacionais, os bancos de dados relacionais incorporaram 
XML e recursos orientados a objetos ao longo dos anos para que 
ambientes transacionais híbridos (que requerem o uso dessas 
tecnologias junto com dados relacionais) também possam oferecer 
suporte ao processamento de transações, embora XML puro e os bancos 
de dados orientados a objetos continuem a fazer parte do mercado de 
aplicativos especializados.
Acrescenta-se, ainda, que muitas empresas continuam a empregar em 
seus projetos os SGBDs Hierárquicos para OLTP. Isso ocorre devido 
às dificuldades de migrar para fora deste tipo de banco de dados ou 
porque esses tipos de bancos hierárquicos são muito eficientes para a 
carga de trabalho específica.
1.1 Propriedades ACID
Além do desempenho e outras considerações generalizadas, os 
principais requisitos para bancos de dados de processamento de 
transações são as chamadas propriedades ACID (Atomicidade, 
Consistência, Isolamento, Durabilidade), as quais garantem que as 
transações sejam processadas de forma confiável, segundo Elmasri 
(2009).
24
As transações ACID eram um grande negócio quando introduzidas 
formalmente, na década de 1980, em bancos de dados SQL monolíticos, 
como Oracle e IBM DB2. Bancos de dados NoSQL distribuídos populares 
da última década, incluindo Amazon DynamoDB e Apache Cassandra, 
inicialmente, focados em casos de uso de Big Data, não exigiam tais 
garantias e, portanto, evitaram implementá-los completamente. No 
entanto, as transações ACID tiveram um forte retorno nos últimos anos 
com o lançamento de bancos de dados distribuídos que têm suporte 
integrado para eles.
A seguir, vamos conhecer cada uma destas propriedades, segundo Elmasri 
(2009):
• Atomicity (atomicidade): garante que todas as operações em uma 
transação são tratadas como uma única unidade, que é totalmente 
bem-sucedida ou falha totalmente. No exemplo da conta bancária, se 
alguma das instruções falhar, toda a transação deve ser abortada e 
retrocedida.
• Consistency (consistência): garante que uma transação só pode levar o 
banco de dados de um estado válido para outro, evitando a corrupção 
de dados. Suponha, então, que a transação do exemplo anterior falhe 
na segunda instrução no momento de atualizar o saldo de Beatriz, 
não somando em sua conta os R$ 300,00 e a transação não seja 
revertida. Desse modo, o banco de dados ficará inconsistente,

Outros materiais