Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

BANCO DE DADOS III
BANCO DE DADOS III
Copyright © UVA 2020
Nenhuma parte desta publicação pode ser reproduzida por qualquer 
meio sem a prévia autorização desta instituição.
Texto de acordo com as normas do Novo Acordo Ortográfico 
da Língua Portuguesa.
AUTORIA DO CONTEÚDO
Marla Miranda Loiola Dore Carvalho
REVISÃO
Janaina Vieira
Lydianna Lima
PROJETO GRÁFICO
UVA
DIAGRAMAÇÃO
UVA
SUMÁRIO
Apresentação
Autor
6
7
Implementação de Banco de Dados 32
• Projeto Físico de Banco de Dados
• Criando Esquemas de Banco de Dados
• Criando Instâncias de Banco de Dados
UNIDADE 2
8
• Administração de Banco de Dados
• Projeto de Banco de Dados
• Mapeamento do Diagrama de Classes
Gerência de Banco de Dados
UNIDADE 1
SUMÁRIO
Controle de Transações com SQL-DTL 62
• Instrução Commit
• Instrução Rollback
• Instrução Savepoint
UNIDADE 4
48
• Importância do Controle e Segurança do Banco de Dados com SQL-DCL
• Instrução Grant
• Instrução Revoke
Gerenciamento do Controle e Segurança de Dados
UNIDADE 3
6
A disciplina Banco de Dados III tem como ementa a administração de banco de dados. 
Por meio desse estudo veremos a parte conceitual e os serviços necessários relaciona-
dos às ferramentas para gerenciar e monitorar um banco de dados focando a segurança 
dos serviços. A disciplina engloba também o desenvolvimento de projeto de banco de 
dados, abarcando o de vida de um projeto e as habilidades e competências necessárias 
para a administração de um banco de dados visando à maior segurança e adequação a 
infraestruturas díspares. O mapeamento do modelo relacional é outro tópico importante 
desta unidade, que também apresenta quais são as expertises de um analista de siste-
mas que lhe permitam compreender melhor as necessidades do cliente e projetá-las, 
respeitando as regras que envolvem entidades e relacionamentos. O tópico sobre a im-
plementação de banco de dados também englobará o desenvolvimento na linguagem 
SQL (Structured Query Language). Serão destacadas as estruturas da linguagem, que 
são: SQL-DCL (Data Control Language), que trata de comandos com o objetivo de viabili-
zar o controle e a segurança de banco de dados, e SQL-DTL (Data Transaction Language), 
composta por comandos para controle e gerenciamento de transações.
APRESENTAÇÃO
7
MARLA MIRANDA LOIOLA DORE CARVALHO
Bacharelado em Informática pela Universidade Católica do Salvador – UCSAL. Especia-
lização em Sistemas Distribuídos Universidade Federal da Bahia – UFBA e mestrado em 
Tecnologias para Educação Universidade do Estado da Bahia – UNEB. Atua com de-
senvolvimento de software desde 2002 e, desde 2004, tem se especializado em data 
science, machine learning e ERPs, atuando como desenvolvedora, analista de sistemas, 
gerente de TI, consultora de TI e professora nas modalidades presencial e a distância. 
Professora e pesquisadora do Centro Universitário Jorge Amado – Unijorge, fomentando 
startups de tecnologia, educação e saúde, responsabilidade social, automação, inteligên-
cia artificial, games, processamento de imagens e auditoria de dados. Consultora em 
data science e inovação de TI. Palestrante em eventos para desenvolvedores de software 
como Database Day, SQLDay e DevFestNE.
AUTOR
Gerência de Banco de Dados
UNIDADE 1
9
Administrar um banco de dados — BD é, de forma resumida, instalar, configurar, monito-
rar e gerenciar problemas de um Sistema Gerenciador de Banco de Dados — SGBD . Com 
base nessas tarefas, a serem desenvolvidas na administração de um BD, um administra-
dor de banco de dados tem as seguintes responsabilidades:
• Definir regras de segurança.
• Tomar decisões de como os dados são representados na base de dados armazenada.
• Mapear o projeto físico da base de dados.
• Definir procedimentos de recuperação.
• Monitorar o desempenho do servidor de BD por meio de ferramentas.
• Acompanhar a análise de desempenho de consultas, detecção de anomalias, aná-
lise de bloqueio e deadlock.
• Fornecer suporte à análise de requisitos dos usuários relativos a demandas de 
acesso a dados.
• Gerenciar mudanças nas estruturas dos bancos de dados para atendimento das 
alterações dos requisitos.
De um administrador de BD também é esperado o conhecimento das regras de negócios 
dos demais sistemas, a fim de que haja integração de dados, respeitando a segurança 
de cada sistema.
INTRODUÇÃO
Nesta unidade você será capaz de:
• Compreender a administração de banco de dados e o processo de implementa-
ção a partir do modelo relacional de banco de dados.
OBJETIVO
10
Administração de Banco de Dados
Para administrar um BD você pode utilizar mais de uma ferramenta — inclusive, não 
precisa que elas estejam na mesma plataforma (mesmo sistema operacional ou 
mesmo tipo de rede).
Cada fornecedor da ferramenta adotada tem um book com a documentação de suas 
ferramentas. No entanto, é necessário sempre acompanhar os lançamentos das versões 
e a compatibilidade de cada ferramenta com a versão em uso.
SQL Server 2019 
Considere que estejamos tratando do SQL Server 2019. A seção de docs da Microsoft 
tem uma visão geral de cada ferramenta.
As versões chamadas Express podem ser baixadas para testes, uma vez que 
não são exigidas licenças para utilização, pois o foco são o aprendizado e a 
disseminação das ferramentas. Obviamente, há um interesse da empresa 
para que o uso da ferramenta seja ensinado em faculdades e universidades, 
pois dali podem surgir novos empresários, dos quais é esperado que, por já 
as conhecerem , deem preferência a essas ferramentas. 
Independentemente da troca de interesses ou não, faça sua escolha de acor-
do com as necessidades de seu cliente, considerando as verbas disponíveis.
No site da Microsoft existe o link para baixar a versão gratuita do SQL Server 2019 
Express. Nessa versão, você pode aplicar o conhecimento que estamos construindo 
nesta disciplina.
Baixe, instale, verifique os requisitos de sua máquina e coloque a mão 
na massa!
11
Existem, inclusive, comunidades nas quais grande parte dos membros são voluntários 
que mantêm essas documentações. Há, no entanto, setores dos próprios fornecedores 
destinados a manter contato direto e contínuo com várias dessas comunidades. Vale a 
pena pesquisar. Cada estado, em cada país, tem pelo menos uma comunidade em cada 
capital com foco em disseminar conhecimento.
Outra ferramenta bastante útil e que possibilita trabalhar técnicas para otimiza-
ção de banco de dados, gerando grande melhoria na performance dos BD, é o 
DETA (Database Engine Tuning Advisor). O DETA Tem por objetivo realizar uma 
análise de como as consultas são processadas no banco de dados e, assim, é 
capaz de fazer recomendações para otimizar o desempenho dessa consultas 
por meio de modificações nas estruturas do banco de dados, tais como a cria-
ção de índices, views (consultas) indexadas e particionamentos.
Exemplo
Certificação MVP 
No caso da Microsoft, há, inclusive, certificações, sendo uma delas a MVP – Microsoft 
Most Valuable Professional em SQL, mediante a qual são reconhecidos especialistas 
técnicos de comunidades do mundo inteiro que, voluntariamente, dividem seus conheci-
mentos sobre tecnologias da Microsoft e, em contrapartida, recebem benefícios de via-
gens e suporte para serem o que é chamado evangelista da tecnologia na qual desejam 
se especializar.
Na rede social Twitter existem vários evangelistas a serem seguidos, cujo con-
teúdo promove altas discussões, em nível técnico e colaborativo.
Que tal procurar evangelistas das ferramentas que você utiliza e colaborar para 
sua melhoria contínua?
Siga o @SQLServer ou o @oracledobrasil. Siga também o evangelista @Crespi-
DB, palestrante que dá altas dicas sobre BD.
Ampliando o foco
12
Linhas de comando 
Você pode administrar um banco de dados por meio de linhas de comando. Um bom 
administrador tem na manga vários comandos que são mais usuais, mas que também 
podem ser críticos. Logo, é necessário saber o momento certo de utilizar, pois problemas 
podem ser ocasionados.Use com moderação! 
Um exemplo de comando é o SHRINKDATABASE.
O SHRINKDATABASE reduz os arquivos de data e log, sendo aplicado a todos os arqui-
vos do banco de dados (.mdf, .ndf ou .ldf) em um só momento. Importante ressaltar que 
esses arquivos são de duas categorias (dados e log). Convencionou-se que:
• O primeiro arquivo de dados terá a extensão .mdf – Master Data File.
• Os demais arquivos de dados terão a extensão ndf. – Secondary Data File.
No entanto, se rodarmos o comando quando um backup estiver agendado ou em pa-
ralelo na base de produção associado a outras ferramentas, alguns dados podem ser 
interrompidos, podendo impactar também o tratamento de transações.
A indicação é utilizar juntamente com a análise do monitoramento do 
servidor de BD. 
Vamos ver um exemplo?
Na empresa Analize, um administrador de banco de dados está envolvido na aquisição e no 
desenvolvimento de novos sistemas, sendo requisitado para analisar possíveis integrações 
de sistemas, debatendo as necessidades de novos perfis de acesso de usuários, camadas 
de comunicação e formas de transferência de dados de um sistema para o outro.
Substituirei os nomes dos sistemas por nomes fictícios para representar melhor uma 
situação real para você.
Imagine um sistema financeiro que gerencie mensalidades e serviços de alunos em uma 
instituição de ensino. Esse sistema, que chamaremos de Academy, deve integrar-se com 
o sistema já desenvolvido por uma empresa de cobrança, o Charge.
13
Nesta situação, o administrador de banco de dados, também chamado admin, deve 
destacar regras de acesso a dados e campos-chave de integração dos registros dos 
movimentos financeiros do sistema que receberá os dados financiados, o Academy, ali-
nhado com o nível de detalhe de informações que os gestores da empresa e usuários 
experientes que acessam os dados — os chamados stakeholders — consideram impor-
tantes no momento de uso.
Campos-chave Admin
São as chaves primárias de cada 
entidade.
Termo que faz alusão ao usuário admin 
padrão nos SGBDs.
No entanto, o admin deve destacar outros sistemas que também necessitarão daqueles 
dados, como:
• Um setor chamado Controladoria que possui um sistema, o Controller.
• Outro setor chamado Contabilidade, o Account, que contabiliza e audita todos os 
dados de entrada e de saída.
Nesse contexto, importante ressaltar a importância do admin:
• Destacando a integração dos sistemas que se refletem na redução de trabalho 
por meio da comunicação entre os setores e a segurança de dados.
• Analisando os perfis de segurança.
• Monitorando o processamento das consultas dos bancos de dados de cada sistema. 
• Destacando os requisitos mínimos para atendimento ao processamento dos da-
dos que demandam consumo da banda de dados da rede da empresa, assim como 
comunicação e troca de dados com links entre suas filiais e possíveis servidores de 
replicação de dados. 
• Assegurando a qualidade no tempo de resposta necessário para a execução 
dos serviços.
14
Projeto de Banco de Dados
Agora que já conhecemos a importância da administração de um banco de dados, vamos 
aprender como criar os projetos de BD.
Um projeto faz parte do que chamamos de ciclo de vida do projeto, sendo dividido em 
três fases ou níveis principais:
I. Modelo conceitual.
II. Modelo lógico. 
III. Modelo físico. 
Modelo conceitual 
Na primeira fase, o modelo conceitual ou MCD (modelo de alto nível) envolve a represen-
tação do mundo real. Para que essa ilustração ocorra acontece a etapa de análise de 
requisitos ou levantamento de necessidades e regras — em que é coletada dos usuá-
rios a forma como os processos ocorrem para que possa ser definido como deverão ser 
agrupados e interligados em um banco de dados.
Nesta fase não há interferência da tecnologia da ferramenta a ser adotada para 
gerenciar os dados.
Importante
Modelo lógico
Na segunda fase, o modelo lógico ou MLD consiste na especificação lógica dos dados 
em um formato adequado ao SGBD que será utilizado. Ou seja, apesar de ainda não 
estar atrelado à ferramenta nessa fase, é necessário especificar o tipo de cada campo 
pertencente à entidade. No entanto, os tipos disponíveis estão vinculados à ferramenta 
que será usada. Sabe-se que existem tipos comuns a todas as ferramentas, chamados 
de tipos primitivos. Contudo, cada ferramenta, seja ela SQL Server ou Oracle, MySql, tem 
suas especificações, dependendo inclusive da versão que está em uso. Dessa forma, ao 
representar os tipos nos campos em cada entidade, é necessário atentar-se aos detalhes 
na especificação de alguns tipos, representando esses campos e entidades por meio de 
um diagrama chamado Diagrama de Entidade-Relacionamento, ou DER.
15
Existem tipos específicos para armazenar letras ou caracteres, que podem ser 
os tipos var e varchar. Contudo, se for utilizar a ferramenta Oracle, também 
existem tipos exclusivos para essa ferramenta, como o tipo varchar2, disponí-
vel desde o Oracle 8 e que difere na forma como armazena seus dados, como 
bytes ou caracteres.
Exemplo
Modelo físico
Na terceira fase o modelo físico ou MFD (modelo de baixo nível) será definido a partir 
do modelo lógico, detalhando os componentes, como tabelas, campos, tipos de valores, 
restrições e relacionamentos.
O livro Projeto de Banco de Dados, de Heuser — indicado nas referências e dis-
ponível na Biblioteca Virtual — trata de todas as fases e conceitos pertinentes 
ao desenvolvimento de um projeto de BD. 
Ampliando o foco
Modelo Entidade-Relacionamento — ER 
Os conceitos centrais da abordagem do modelo ER indicado na segunda fase do projeto 
de BD são:
• Entidades: tabelas ou objetos de armazenamentos de dados.
• Relacionamentos: formas de comunicação entre as entidades sobre as quais se 
mantém uma conexão e que estão relacionadas com as cardinalidades das rela-
ções entre as entidades.
• Atributos: campos que compõem as entidades, com seus tipos e restrições es-
pecíficos.
16
Conceito Símbolo
Entidade
(1,1)
Relacionamento
(1,1)
Atributo
(1,1)
Atributo identificador
(1,1)Relacionamento 
identificador
(1,1)
Generalização/
especialização
(1,1)
Entidade associativa
(1,1)
Figura 1: Símbolos usados na representação de um esquema ER.
Fonte: Heuser (2011, p. 62.).
17
Cada entidade deve ter um identificador que corresponde ao conjunto de propriedades 
(atributos e relacionamentos) cujos valores servem para distinguir diferentes registros.
A cardinalidade de uma entidade em um relacionamento, de acordo com Heuser (2011), 
corresponde ao número de ocorrências de uma entidade que pode estar associada a 
uma determinada ocorrência de entidade por meio do relacionamento.
Há dois tipos de cardinalidade: a cardinalidade máxima e a cardinalidade mínima. 
Outros conceitos importantes são:
• Generalização/especialização
Representam uma entidade intitulada pai ou mãe, que contém atributos genéricos. 
Já as entidades relacionadas à entidade pai ou mãe contêm atributos específicos. 
O que as diferencia é o sentido da ligação entre elas.
Conforme Heuser (2011), o conceito de generalização/especialização permite atri-
buir propriedades particulares a um subconjunto das ocorrências especializadas 
de uma entidade genérica.
• Entidade associativa
Entidade criada para representar uma cardinalidade de muitos para muitos.
A entidade Pessoa está relacionada à entidade PessoaJurídica.
A relação de Pessoa para PessoaJurídica é de especialização.
A relação de PessoaJurídica para Pessoa é de generalização.
Exemplo
Muitos para muitos
Termo utilizado na multiplicidade de uma relação matemática, em que existem 
várias formas de relações nos dois sentidos.
Ampliando o foco
18
Um aluno pode cursar muitas disciplinas, assim como uma disciplina pode ser cur-
sada por muitos alunos. Esse tipo de relação é denominada “muitos para muitos”.
Exemplo
Vamos entender melhor esses conceitos? 
Observe a figura a seguir:
Analisando a imagem podemos perceber que:
• A entidade Filial tem relação com a entidade Cliente.• A entidade Cliente tem uma relação do tipo especialização com as entidades 
PessoaFísica e PessoaJurídica.
Observe, na imagem, o símbolo que representa a especialização, destacando que:
• Na entidade Cliente, temos os atributos comuns, que são código e nome.
• Nas entidades especializadas, temos os atributos característicos de cada uma — 
na entidade PessoaFísica, os atributos CPF e sexo, e, na entidade PessoaJurídica, 
os atributos CNPJ e tipo de organização.
Figura 2: Representação gráfica de um caso ER.
Fonte: Adaptada pelo autor (2020).
FILIAL CLIENTE
(1,1) (0,n)
nome
codigo
PESSOA
FÍSICA
PESSOA
JURÍDICA
CPF sexo CNPJ tipo deorganização
19
Repare que, no atributo código da entidade, Cliente tem um círculo preenchido. Isso 
quer dizer que o campo não pode se repetir mais de uma vez no preenchimento dessa 
entidade — o que convencionamos chamar de chaves primárias.
Com referência à cardinalidade, representada na Figura 2, podemos interpretar algumas 
situações.
Situação 1 
Existe uma filial fictícia chamada MDC que já foi criada, mas ainda não tem clientes.
Cada filial tem que se relacionar com seus clientes. No entanto, no dia em que foi lança-
da, a referida filial ainda não tinha nenhum cliente. Assim, representa-se a necessidade 
de existir:
• 1 (um) registro na entidade Filial.
• 0 (zero) registros na entidade Cliente.
Situação 2 
A filial MDC foi criada e já tem vários clientes cadastrados na entidade Cliente. Esses 
vários clientes são representados pela letra “n” na cardinalidade (0,n).
Exemplos de uso de entidades e relacionamentos podem ser verificados no 
Capítulo 2, item 2.3, do livro Projeto de Banco de Dados, de Heuser. Além 
disso, no item 2.8 existem exercícios que ajudarão a sanar dúvidas e rever os 
conceitos deste tópico. 
Ampliando o foco
Retomemos agora o conceito de modelo lógico.
O MLD representa um nível de abstração que independe da ferramenta de SGBD que 
será utilizada. Independentemente do fato de ser Oracle, SqlServer ou qualquer outra, o 
modelo lógico se manterá.
Vamos ver como isso funciona na prática? 
20
Observe, a seguir, um Diagrama de Entidade-Relacionamento — DER em que a entidade 
Produto, que tem como chave primária o atributo código, tem um relacionamento com 
a entidade Tipo de Produto.
PRODUTO TIPO DEPRODUTO
n 1
preço
código descrição código descrição
Figura 3: Diagrama de Entidade-Relacionamento.
Fonte: Heuser (2011).
Agora, vamos representar esse mesmo relacionamento em um modelo lógico no qual o nível 
de abstração do usuário passa a depender do SGBD que ele está utilizando. Assim, a Figura 
3 será representada no modelo físico com seus dados preenchidos pela Figura 4, a seguir.
Figura 4: Representação da entidade com dados preenchidos.
Fonte: Heuser (2011).
Figura 5: Modelo lógico do exemplo
Fonte: Heuser (2011).
A Figura 5 representa o modelo lógico a ser implementado no modelo físico.
21
Assim, a união de uma modelagem conceitual, de um modelo lógico e de 
um modelo físico, gera um projeto de banco de dados.
Sistema Gerador de Banco de Dados – SGBD 
Os SGBDs oferecem técnicas que garantem que certos usuários ou grupos de usuários 
somente acessem determinadas entidades ou partes de um BD.
Para tanto, é necessário garantir a definição de restrições apropriadas, assim como o 
monitoramento das interações dos usuários para garantir que as restrições não estejam 
sendo violadas pelo sistema. Alguns dos privilégios que podem ser concedidos são: AL-
TER, DELETE, EXECUTE, INDEX, INSERT, REFERENCES, SELECT, UPDATE.
A respeito dos comandos da linguagem DCL, podemos destacar as sintaxes GRANT 
e REVOKE. 
A sintaxe do comando GRANT concede o privilégio de indicar o acesso à permissão da 
operação que será dado a cada objeto por um usuário ou grupo de usuários:
A sintaxe do comando REVOKE tem o objetivo de remover privilégios concedidos 
anteriormente:
No entanto, para a implementação do projeto físico é necessário especificar os 
tipos inerentes a cada ferramenta.
Importante
GRANT Privilégio(s) ON Objeto TO Usuário(s) [WITH GRANT OPTION]
REVOKE [GRANT OPTION FOR] Privilégio(s) ON Objeto 
 FROM Usuário(s) {RESTRICT | CASCADE}
22
Transação 
Uma transação é o conjunto de comandos a serem processados respeitando-se a in-
tegridade e a consistência de dados. Esse processamento pode ser todo executado, ou 
não, garantindo a atomicidade das informações.
A sintaxe básica de uma transação é:
BEGIN TRANSACTION 
--Corpo de comando 
COMMIT ou ROLLBACK
No Capítulo 15 do livro SQL: Structured Query Language, de Damas, disponível 
em Minha Biblioteca, são abordados os comandos de SQL-DCL e de Data Con-
trol Language que tratam de comandos com o objetivo de viabilizar o controle 
e a segurança de banco de dados, entre os quais podemos destacar os coman-
dos GRANT, REVOKE E DENY. Nos Capítulos 14 e 16, são tratados os coman-
dos de SQL-DTL e de Data Transaction Language, compostos por comandos 
para controle e gerenciamento de transações envolvendo BEGIN TRANSAC-
TION, COMMIT E ROLLBACK.
Ampliando o foco
23
Mapeamento do Diagrama de Classes
Ao fazermos um DER, estamos representando um mundo no modelo chamado relacional.
Outro paradigma de representação é o Modelo Orientado a Objetos — OO.
Um dos componentes da orientação a objetos chama-se Diagrama de Classes, no qual 
são representadas entidades. No entanto, essas entidades terão seus comportamentos 
indicados por métodos integrados a cada uma.
Assim, o mapeamento conceitual será representado pelo Diagrama de Classes, seguindo 
a representação da Linguagem de Modelagem Unificada — UML.
Os conceitos de entidades e seus atributos são correspondentes aos conceitos no mode-
lo relacional, sendo no modelo OO chamados de classes e atributos da classe. 
As relações que envolvem entidades, em que essas entidades eram chamadas de fracas 
— uma não existe sem a outra —, são denominadas composição. 
A herança que representa a generalização/especialização também é representada por 
um triângulo e continua existindo a representação da quantidade de relações entre uma 
classe e outra, também chamada de cardinalidade.
Modelo Orientado a Objetos
O mapeamento de orientação a objetos pode ser considerado uma extensão do modelo 
relacional, no qual são inseridas características de orientação a objetos.
As técnicas de modelagem orientada a objeto utilizam a Linguagem de Modelagem Uni-
ficada (do inglês, UML – Unified Modeling Language) e, por meio da UML, representam 
nove diagramas. Um deles é o Diagrama de Classes, que tem relação com os conceitos 
da abordagem ER (entidade-relacionamento).
A mudança de paradigma de um modelo ER para um modelo de objetos chega como 
uma forma diferente daquela a que estávamos habituados. No entanto, a utilização de 
bancos de dados relacionais ainda é uma prática comum na maioria das empresas.
24
Bancos de dados relacionais rodando no que chamamos de back end e 
sistemas modelados a OO são uma forma de trabalho pertencente aos 
modelos de desenvolvimento de softwares. 
Há, no entanto, outros conceitos que representam os tipos ou modificadores de acesso 
de cada atributo e métodos da classe, sendo eles público, protegido ou privado, em que 
os símbolos de cada um, respectivamente, são, +, # e -.
Os modificadores de acesso se diferenciam pela forma como cada item pode 
ser acessado somente na classe ou por outras classes .
Importante
O Capítulo 12 do livro Banco de Dados - Projeto e Implementação apresenta 
exemplos e descreve um paralelo de cada tipo de Modelo Entidade-Relaciona-
mento — MER para o Diagrama de Classes.
Ampliando o foco
Para trazer mais exemplos e agregar mais valor ao seu conhecimento, recomendamos 
que você consulte exercícios resolvidos, tente refazê-los e, principalmente, pratique o de-
senvolvimento da análise. Para isso, atenção às dicas:
I. Foque a interpretação do texto.
II. Identifique quais objetos representam o mundo real.
III. Esses objetos são atributos ou classes? Diferencie, questionandose o item é uma 
característica de algo ou um objeto que tem outros detalhes e comportamentos.
IV. Entre essas classes, verifique se há características específicas que podem ser 
objetos diferentes do mundo real e se há características comuns. Definido isso, 
teremos classes-pai e classes-filhas.
Lembra da Pessoa e PessoaJurídica? A Pessoa seria a classe-pai e Pessoa-
Jurídica, assim como PessoaFísica, seria a classe-filha, que herda atributos e 
métodos da classe Pessoa.
Exemplo
25
V. Após definir quais são as classes e os atributos, tente relacioná-los e represente 
a quantidade de sua existência, o quantitativo que pode haver em cada objeto 
relacionado ao outro, indicando, assim, sua cardinalidade.
Quanto mais exercícios fizer, mais você trabalhará as habilidades neces-
sárias para entender o comportamento de cada sistema, as necessida-
des de evoluções, suas alterações futuras e poderá discutir melhor com 
um cliente que deseje implementar soluções. 
Camada de persistência 
Na Análise Orientada a Objetos — OO, podemos introduzir alguns conceitos, entre eles, a 
camada de persistência. 
De acordo com Machado (2001), a camada de persistência é uma biblioteca que permite a 
realização do processo de persistência, isto é, o armazenamento e a manutenção do esta-
do de objetos em algum meio não volátil, como um banco de dados, de forma transparente.
Essa camada de persistência tem o objetivo de isolar os objetos do sistema de mudan-
ças do mecanismo de armazenamento. Ou seja, por meio desses mecanismos, diminui o 
acoplamento entre os objetos e a camada do sistema, possibilitando que este seja mais 
flexível e portátil. No entanto, há a desvantagem da sobrecarga dessa intermediação.
Diagrama de Classes 
A linguagem UML é uma linguagem de modelagem visual, composta por diagramas 
que representam estruturas que compreendem os componentes estáticos do sistema 
como um todo, por meio de representações estáticas e representações comporta-
mentais que disponibilizam informações do comportamento do sistema, ou seja, re-
presentações dinâmicas. 
Assim, destacamos o Diagrama de Classes como um diagrama que representa a es-
trutura de um sistema.
Sobre a Análise Orientada a Objetos — OO, no que se refere ao desenvolvimento de um 
Diagrama de Classes, a ideia central é concentrar a construção do sistema em torno 
dos objetos (mais próximo do mundo real).
26
No Diagrama de Classes o analista precisa:
• Identificar essas entidades em um conjunto de objetos.
• Uma entidade irá representar um conjunto de objetos que tenham determinadas 
características em comum.
• Identificar como esses objetos interagem entre si. Essa interação pode ser por:
• Requisição de um serviço.
• Reação a uma outra mensagem.
Uma classe é representada conforme a Figura 6, a seguir, em que:
• Os atributos são informações da entidade/classe.
• Os métodos são ações que podem ser realizadas pelos objetos.
Classe
+atributo1 
+atributo2 
+atributo3
+Metodo1() 
+Metodo2()
Nome da classe
Atributos da classe
Métodos da classe
Figura 6: Diagrama de Classes.
Fonte: Elaborada pela autora (2020).
Leia o Capítulo 12 do livro Banco de Dados – Projeto e Implementação, disponível 
em Minha Biblioteca, em que são resumidas regras de implementação de projetos.
Ampliando o foco
27
Assim, finalizamos a Unidade 1. Esperamos que tenha sido esclarecedora e que você 
possa praticar e compreender a importância de entender um contexto e a necessidade 
de um cliente, passando pelas fases de construção de um projeto de BD e representando 
os comportamentos realizados no mundo real por meio de diagramas que recebem da-
dos e comunicam-se mediante trocas de mensagens que são instanciadas.
Para ampliar seu conhecimento veja o material complementar da Unidade 1, 
disponível na midiateca.
MIDIATECA
28
Qual é, então, a ferramenta que podemos usar para monitorar os serviços no 
SQL Server?
A ferramenta SQL Profiler monitora todas as transações executadas no banco 
de dados, todos os traces ou vestígios. Por meio dessa ferramenta é possível 
identificar consultas que estão demandando mais recursos da máquina, poden-
do-se sugerir divisão de querys ou refatoramento de um código (termo aplicado 
a fim de otimizar um procedimento), assim como verificar melhores horários de 
utilização de consumo da rede a fim de sugerir agendamento de backups.
O que é importante focar ao utilizar uma ferramenta de monitoramento de dados?
Podemos realizar o monitoramento em um servidor que chamamos de produ-
ção, ou seja, que está sendo utilizado pelos usuário no momento da manipula-
ção das ferramentas ou em um servidor de testes, em que podemos descartar 
outras variáveis que possam influenciar o ambiente. Podemos, ainda, realizar 
procedimentos que não impactem dados reais.
Dessa forma, quando ainda não identificamos o trace, colocamos para rodar 
a ferramenta SQL Profiler, que monitora cada ação que é executada no SQL 
Server, seja um login, a execução de um query, o bloqueio de uma variável, um 
procedimento ou uma instrução Transact-SQL. Seja proveniente do Manage-
ment Studio ou da aplicação, um vestígio é deixado no banco de dados com 
todas as informações sobre aquele procedimento que está sendo executado. 
Imaginemos uma situação real...
O usuário André tem acesso ao sistema financeiro Charge e realizou, ao longo 
do dia, várias baixas de mensalidades e serviços com seu usuário. No entanto, 
ao fim do dia, identificou uma divergência entre o relatório do caixa recebido 
e os valores de entrada. André emitiu um relatório detalhado dos pagamen-
tos efetuados com seu usuário naquele dia. Para sua surpresa, não localizou o 
comprovante de pagamento de Edgar Codd, que constava como baixa em seu 
relatório do dia.
NA PRÁTICA
29
Dessa forma, ele abriu um chamado para o setor de TI solicitando verificação 
do procedimento daquela baixa de Edgar Codd e informou o horário em que 
começou a trabalhar naquele dia. O chamado aberto para a TI foi encaminhado 
para o setor que administra o servidor de BD, onde está o database do sistema 
Charge, que analisa a tabela em que registra os dados financeiros. No entanto, 
o comentário do horário do usuário chamou a atenção do administrador de BD, 
que analisou também outros dados referentes ao processamento da procedure 
de pagamento que estão armazenados. Por tratar-se de uma execução que 
consideramos como funcionalidade principal do sistema ou funcionalidade crí-
tica, foram armazenados dados para possíveis auditorias, como IP da máquina, 
username, nome do computador, entre outros.
Dessa forma, as informações de horário de execução de baixa do cliente indicado 
“Edgar Codd” e o nome de computador indicaram que outro usuário teve acesso 
ao usuário e senha do funcionário André, pois não era a máquina que o funcioná-
rio sempre usava. Foi aberto, então, um procedimento administrativo para cruzar 
dados da filmagem daquele dia de uma câmera de segurança que havia no local, 
para verificação de pessoas que estavam no setor no momento da baixa.
O administrador de BD gerou um relatório relatando o fato, notificando setores 
que estariam envolvidos: o setor de Recursos Humanos, que tomou providên-
cias; e o próprio setor de TI, sugerindo mudanças como permissão de horário 
de acesso à rede de acordo com o horário do funcionário. Apontou também a 
necessidade de viabilizar uma forma de comunicação entre as gerências dos 
setores e o setor de TI para possíveis alterações com prévia comunicação. Noti-
ficou o acontecido ao núcleo de desenvolvimento do sistema Charge, relatando 
o fato e sugerindo que também constassem no relatório analítico de pagamen-
to do caixa dados como hora exata da baixa e máquina utilizada. Foi sugeri-
da também adição de token (dispositivo de segurança adicional) ao acessar o 
login do sistema para que cada usuário tivesse acesso a ele. O administrador 
notificou também o setor de gerenciamento das câmeras, solicitando o registro 
da informação de manutenção dos aparelhos paraa necessidade de cruza-
mento de dados.
30
Resumo da Unidade 1
Na disciplina sobre a administração de banco de dados, apresentamos conceitos impor-
tantes sobre segurança, monitoramento de traces e gerenciamento dos serviços em um 
banco de dados, enfatizando a atenção às competências de um analista de sistemas, 
que englobam o conhecimento de administração de um banco de dados, passando pelo 
levantamento de requisitos e o desenvolvimento de um modelo conceitual e lógico de um 
projeto de BD a ser implementado. Por fim, tratamos da abordagem de outro paradigma 
de análise, que é a orientação a objetos, a qual caminha em paralelo à utilização de ban-
cos de dados relacionais, demonstrando que uma análise relacional pode ser comple-
mentada por meio de um Diagrama de Classes presente em uma análise OO.
Conceito de representação do mundo real, especificamente a abstração, pen-
sando em cada camada separadamente, focando o monitoramento e a per-
formance de um SGBD, a robustez da decisão de aplicação de uma tecnologia 
associada às condições de um ambiente que favoreça melhor absorção de 
seus recursos e a representação dos comportamentos de cada instância de 
um objeto representado.
CONCEITO
31
Referências 
DAMAS, L. SQL – Structured Query Language. Rio de Janeiro: LTC. Minha Biblioteca.
HEUSER, C. A. Projeto de Banco de Dados. 6. ed. Porto Alegre: Bookman, 2011. Minha 
Biblioteca.
MACHADO, F. N. R. Banco de Dados: projeto e implementação. São Paulo: Saraiva, 2009. 
Minha Biblioteca.
Implementação de Banco de Dados
UNIDADE 2
33
Esta unidade aborda a análise e a implementação de projetos físicos de Banco de Da-
dos — BD, tratando regras de normalização e sintaxe de scripts, possibilitando que sejam 
aplicados os conceitos e a interpretação inerentes a um analista de sistemas focado em 
administração de BD, assim como aplicação de ferramentas para o auxílio na automati-
zação de processos.
INTRODUÇÃO
Nesta unidade você será capaz de:
• Realizar a implementação de banco de dados a partir do Diagrama de Classes.
OBJETIVO
34
Projeto Físico de Banco de Dados
O projeto físico de banco de dados deve ser realizado após ter sido feito o projeto lógico. 
A evolução de um projeto para o outro envolve outros fatores que vão além de simplesmen-
te iniciar a codificação na linguagem SQL (Structured Query Language, ou Linguagem de 
Consulta Estruturada). 
O principal motivo para que seja feita uma análise ao se iniciar o projeto físico é o custo 
elevado da manutenção dos sistemas, especialmente com os esquemas dos BDs, além 
do impacto negativo na confiabilidade perante o cliente no desenvolvimento de projetos 
pela empresa responsável.
Ao iniciar-se o projeto físico de BD, devem ser considerados e analisados os seguintes 
aspectos:
• Respeitar as regras de normalização de BD.
• Analisar o volume de dados que serão armazenados.
• Avaliar a disponibilidade do serviço de BD para atender ao processamento do sis-
tema que o acessará.
• Identificar entidades críticas do sistema, a fim de garantir alta performance no 
processamento das transações.
• Seguir padronização na declaração de nomes de tabelas, campos e transações, a 
fim de facilitar a codificação na linguagem SQL.
• Considerar a integração com outras bases de dados, destacando a compatibili-
dade dos tipos de dados, principalmente dos atributos-chaves (campos que serão 
relacionados a outras tabelas).
• Considerar a capacidade de recuperação de dados.
Regras de normalização 
As regras de normalização de BD consistem na forma como os dados são organizados 
em tabelas e como devem se relacionar, havendo uma fundamentação de álgebra rela-
cional que justifica o respeito a essas regras.
Analise bem antes de tomar a decisão de repetir os dados em um BD. 
35
Vamos ver um exemplo?
Imagine uma empresa XPTO que necessite de um banco de dados em cada filial por 
questões de segurança — para que cada uma não fique sem conexão que possibilite a 
replicação e sincronização das bases de dados. Para tanto, uma análise bem crítica às 
exceções de situações que necessitam de redundância de dados é indicada, como si-
tuações de replicação de dados em empresas que têm mais de um servidor de BD para 
atender filiais diferentes da XPTO.
Conforme pode ser visto na Tabela 1, uma das regras de normalização chama a atenção 
para a não repetição de dados, em se percebe que o valor do dado no campo cidade irá 
se repetir. Logo, há a necessidade explícita de criação de uma tabela chamada Cidade, 
bem como a criação do relacionamento da tabela Aluno com a nova tabela Cidade.
Aluno Cidade
João Alberto Rio de Janeiro
Maria Alda Salvador
Joana Silva Salvador
Alberto Cunha Rio de Janeiro
Tabela 1: Exemplo de tabela Aluno não normalizada.
Fonte: Elaborada pela autora (2020).
É necessário manter a documentação sempre atualizada com novas solicita-
ções ou alterações de regras de negócio que envolvam mudanças no esquema 
do BD. Para tanto, é importante que a equipe de desenvolvimento tenha a docu-
mentação do BD como parte da metodologia de desenvolvimento de sistemas 
da empresa em que você atua.
Importante
36
Tabelas críticas
As tabelas críticas podem gerar mais gargalos no sistema, ou seja, são tabelas que têm gran-
des números de inserção de registro, acesso por uma quantidade grande de usuários, regras 
de negócios que exijam recursos da máquina e possam impactar no processamento do BD.
Portanto, quanto ao item das tabelas críticas a serem analisadas, devemos considerar as 
seguintes orientações:
• Definir os índices a serem criados.
• Identificar tabelas com grandes volumes de dados para eventual particionamento.
• Identificar hierarquias de generalização/especialização (entidades-pai e entidades 
que possuirão tipos herdados).
• Descrever domínios discretos para eventual implementação de constraints.
• Decidir se a integridade referencial será garantida pelo SGBD ou por aplicação.
• Definir parâmetros para garantir a disponibilidade dos dados conforme requisitos.
Importante também analisar as principais consultas para considerar:
• Os índices a serem criados nas tabelas — otimizar as consultas é um ponto-chave.
• O número de usuários que acessam ao mesmo tempo, chamados usuários con-
correntes estimados.
• A performance na execução da transação.
Implementação de banco de dados com SQL 
Para realizar a implementação do BD na linguagem SQL após análise e observação de 
integração e demais itens descritos, é necessário entender a sintaxe para execução de 
cada um dos comandos para criação, alteração e deleção do esquema de BD:
• Resolvendo os trabalhos propostos e desafiando-se a aplicar os comandos da 
linguagem SQ.
• Fazendo análises de projeção de BD em contextos diferentes, seja com exercícios 
já resolvidos ou se organizando e separando um tempo para praticar, analisar e ima-
ginar situações de crescimento de um banco de dados.
• Analisando a quantidade de usuários acessando ao mesmo tempo ou um sistema 
web acessando esse BD, que, dessa forma, tem a necessidade de tempo de resposta 
com processamento de transação que impeça o sistema de ter perda de dados ou de 
não conseguir executar transações com o tempo mínimo de conexão disponível. 
37
São grandes desafios, não é verdade? 
Porém, ao colocarmos esses sistemas em produção, essas situações ocorrerão, e um 
bom analista de sistemas deve considerar todos esses itens para que a performance seja 
cada vez mais eficaz.
O livro SQL: Structured Query Language (Damas), disponível na Biblioteca Vir-
tual, disponibiliza exercícios e exemplos sobre a aplicação de todos os coman-
dos necessários para a implementação de um BD.
Ampliando o foco
38
Criando Esquemas de Banco de Dados
Os esquemas, ou schemas, são uma coleção de objetos, que podem ser tabelas, con-
sultas, índices, transações, procedures, dentro de um determinado database (banco de 
dados), com o objetivo de organizar e agrupar esses elementos de forma a centralizar 
a estrutura e os dados de um BD em umlocal que possa ser monitorado e gerenciado.
Fazendo uma relação com um arquivo 
com pastas e documentos físicos, o ar-
quivo em si seria o esquema ou database. 
No entanto, esse arquivo teria regras para 
armazenar somente dados de serviços 
específicos ou setores de uma empresa.
Na figura 1, é representado o esquema 
do database BD_TECNOLOGIA.
Observe que, dentro do database, é organi-
zado em pacotes ou subpastas cada grupo 
de elementos que compõem o database, 
como diagramas, tabelas, views, agenda-
mentos de backups, acesso de usuários, 
entre outros.
Figura 1: Esquema do database BD_TECNOLOGIA.
Fonte: Elaborada pela autora (2020).
A forma como o esquema foi criado, com suas tabelas e regras, impacta direta-
mente a performance e a segurança do BD.
Importante
A propriedade, ou pertencimento, dos objetos de esquemas pode ser transferida entre 
seus donos ou usuários. Essa mudança pode ser realizada por meio do comando ALTER 
AUTHORIZATION.
Os objetos podem ser movidos entre esquemas. Essa mudança pode ser realizada por 
meio do comando ALTER SCHEMA.
39
O gerenciamento de acesso de usuário pode ser feito via grupos, o que facilita o geren-
ciamento de permissões, e um único esquema pode conter objetos pertencentes a vários 
usuários do BD.
Permissões em esquemas e em objetos contidos pelo esquema podem ser concedidas. 
Esse acesso pode ser realizado por meio do comando GRANT.
Construção do esquema do BD 
Vamos conhecer algumas dicas valiosas para a construção do esquema do BD?
1. Escolha o tipo de dado mais adequado.
A escolha do tipo pensado em integração com demais sistemas, assim como a 
definição de tipos objetivando a utilização de menor ocupação de espaço no ser-
vidor, seja este na nuvem ou não, é muito importante.
2. Utilize os recursos do SGBD
Os SGBDs, sejam SQL Server, Oracle, MySQL, têm ferramentas nativas que cola-
boram com o monitoramento e o melhor funcionamento do BD quanto a aspectos 
de performance, de segurança e de regras.
Um campo como a sigla de um estado que só ocupa dois caracteres não tem 
por que não delimitar o tamanho do campo a dois.
Exemplo
Se um campo aceita valores somente F ou M, para Feminino ou Masculino, uti-
lize sempre check constraint, opção para adicionar restrições a cada campo a 
fim de validar os valores. Se o campo tem um valor-padrão a ser iniciado, utilize 
a opção default. Atitudes simples como essa podem evitar inconsistência de 
dados e que o usuário consiga injetar dados não esperados no BD.
Exemplo
40
3. Analise esporadicamente os índices.
Os índices se refletem no desempenho de suas consultas, procedures e triggers 
em seu BD. A forma como o usuário mais utiliza a busca também pode influenciar 
o percentual do tempo de resposta.
4. Evite SELECT *
Os BDs são conjuntos. Então, por que não aplicar as uniões e as interseções que 
eles possibilitam sempre? Cada SELECT * executado em seu BD gastará recurso 
desnecessário de sua infraestrutura, assim como enviará uma grande quantidade 
de dados que consumirão banda da sua rede de dados.
Em uma tela de pesquisa de um sistema XPTO, os usuários utilizam bastante a 
opção de adicionar o caractere % que, quando associado ao comando LIKE, per-
mite buscas sem a necessidade de se conhecerem dados exatos, como o nome 
completo do aluno, possibilitando informar o primeiro nome adicionado ao ca-
ractere % e o último sobrenome — assim são consultados os registros na BD. 
Exemplo
Mesmo que você vá realizar testes, evite fazer consultas sem condições, princi-
palmente em horários críticos, a não ser que o objetivo seja testar a performan-
ce do servidor por meio de técnicas de stress, que aumentam a demanda de 
solicitações, dados e processamento da máquina.
Exemplo
41
5. Avalie os planos de execução de consulta.
Ferramentas como o SQL Query Analizer, ainda em uso, fornecem o plano de oti-
mização de consultas após ativação da opção.
Tenha marcos de análise de performance de cada schema de seu SGBD — se 
possível, em um servidor chamado “Testes”, no qual não haja interferência dos 
usuários e que lhe permita comparar o processamento de rotinas mais críticas 
de um sistema específico, possibilitando-lhe descartar outras variáveis que po-
deriam interferir na otimização das consultas.
Exemplo
42
Criando Instâncias de Banco de Dados
Um administrador de BD deve conhecer a infraestrutura necessária para gerenciar melhor 
e monitorar o processamento de seus serviços. Isso engloba conhecimentos de hardware, 
software e de comunicação nos diversos tipos de redes em que os dados sejam comutados. 
Esses conhecimentos devem envolver também as rotinas de backups e testes neces-
sários para a necessidade de utilização das cópias de segurança, assim como estabe-
lecimento ou alinhamento de procedimentos que envolvam a utilização dos recursos de 
SGBD e a melhor performance para execução das suas solicitações.
Antes de inicializar o SGDB, ou seja, criar instâncias, verifique se os requisitos da máquina 
são atendidos, conforme descrição na Tabela 2. Para a versão Express do SQL Server, 
também são descritos os requisitos mínimos.
Componente Requisito
Disco rígido
Mínimo de 6 GB de espaço disponível no disco rígido, podendo va-
riar a depender da versão e das ferramentas adicionais instaladas.
Recomendamos instalar o SQL Server em computadores com 
os formatos de arquivo NTFS ou ReFS. O sistema de arquivos 
FAT32 tem suporte, mas não é recomendado, pois é menos se-
guro do que os sistemas de arquivos NTFS ou ReFS.
Unidades somente leitura mapeadas ou compactadas são blo-
queadas durante a instalação.
Memória
• Mínimo: 
Edições Express: 512 MB. 
Todas as outras edições: 1 GB.
• Recomendado: 
Edições Express: 1 GB.
Todas as outras edições: pelo menos 4 GB e deve ser aumen-
tado à medida que o tamanho do banco de dados aumenta 
para garantir um ótimo desempenho.
Tabela 2: Requisitos para Instância de um SGBD.
43
Velocidade do 
processador
Mínimo: processador x64: 1,4 GHz. 
Recomendado: 2,0 GHz ou mais rápido.
Tipo do processador
Processador x64: AMD Opteron, AMD Athlon 64, Intel Xeon com 
suporte Intel EM64T, Intel Pentium IV com suporte EM64T.
Fonte: Adaptada de Mídia 7 (2020).
Por falta de conhecimento de algumas personalizações que podem beneficiar o proces-
samento do SGBD, a instalação acaba seguindo as opções-padrão. 
Uma instância do SQL Server pode ser interpretada como um contêiner em que coloca-
mos nossos dados. As configurações podem impactar a forma de resposta de interação 
do SQL Server com o hardware — como espaço em disco e gerenciamento de memória.
Uma boa forma de economizar espaço é optar pela otimização do processo de backup, 
configurando de maneira personalizada a realização do agendamento dos backups, com 
momentos de gravação do arquivo de Log, por exemplo.
Quando tratamos de BD, você deve pensar em formas e ferramentas para ge-
renciar todos os componentes que são instanciados junto com ele. 
Importante
Uma das funções do administrador de BD também é fazer a manutenção dos índices. 
Existe o recurso de manutenção, ou maintenance plans, que faz tratamentos gerais dos 
databases criados em um SGBD. No entanto, para casos específicos, a criação de scripts 
pode auxiliar melhor o monitoramento. 
A vantagem de se utilizar os planos de manutenção é que eles podem 
fazer uma determinada tarefa em vários bancos de dados.
44
Indicamos a criação do script rebuid de todos os índices existentes em todos os 
bancos de dados da instância SQL Server.
Ampliando o foco
Uma dica: a ferramenta SSMS (SQL Server Management Studio) é utilizada 
para conectar-se à instância do SQL Server e executar comandos T-SQL (Tran-
sact-SQL) para monitorar os objetos de cada database.
Ampliando o foco
45
Para ampliar seu conhecimento veja o material complementar da Unidade 1, 
disponível na midiateca.
MIDIATECA
Na empresa Audity há a necessidade de se manter o histórico sintetizado dos 
valores recebidos no dia anterior na base de dados de cada filialpara que seja 
feita uma checagem ao iniciar o processo de conferência de valores recebidos 
e de valores por forma de recebimento conforme extratos bancários. Esse pro-
cedimento demandava um tempo grande e custo de horas dos funcionários.
Foram, então, criados scripts que processavam durante noite e, pela manhã, 
eram emitidos relatórios que semiautomatizavam os trabalhos dos conferen-
cistas que auditavam os valores em cada filial.
A análise e o comportamento de requisitos para o BD podem gerar diferentes 
possibilidades de melhorias na performance, desde:
• Aplicação de otimização de consultas.
• Reagendamento de horários de backups.
• Criação de índices.
• Compactação de bancos de registros de acesso a dados (Logs).
• Duplicação gerenciável de dados.
• Upgrade na infraestrutura.
Entre outras opções que o monitoramento e a análise do feedback dos usuários 
podem gerar, o analista deve estar atento ao tempo de resposta dos serviços e 
às necessidades dos clientes nos mais variados níveis, seja operacional, geren-
cial ou executivo, proporcionando otimização de dados de forma resumida ou 
detalhada, ou seja, com nível de granularidade ou detalhes distintos.
NA PRÁTICA
46
Resumo da Unidade 2
Nesta unidade nós nos aprofundamos mais sobre criação, monitoramento, modelagem 
de BD e implementação de bancos na linguagem SQL. Atentamos para a melhoria con-
tínua dos códigos, assim como para o monitoramento necessário para melhores per-
formance e utilização dos recursos de hardware e de software necessários para o de-
sempenho do BD instanciado. As dicas e mídias referenciadas são muito importantes 
para descrição e visualização de utilização de ferramentas e desenvolvimento de scripts. 
Então, vamos lá! Aproveitem todas as informações e desenvolvam.
O conceito de instância também é tratado na orientação a objetos, na lingua-
gem UML, em que a palavra “abstrair” refere-se a armazenar todos os compo-
nentes de um BD em um contêiner, monitorando as solicitações e os acessos 
para melhorar o desempenho.
CONCEITO
47
Referências 
DAMAS, L. SQL – Structured Query Language. Rio de Janeiro: LTC, 2007. ISBN Digital: 
9788521632450. Minha Biblioteca.
HEUSER, C. A. Projeto de Banco de Dados. 6. ed. Porto Alegre: Bookman, 2011. ISBN 
Digital: 9788577804528. Minha Biblioteca.
MACHADO, F. N. R. Banco de Dados: projeto e implementação. São Paulo: Saraiva, 2009. 
ISBN Digital: 9788536518978. Minha Biblioteca.
Gerenciamento do Controle e 
Segurança de Dados
UNIDADE 3
49
Uma palavra que define bem os cuidados com gerenciamento do controle e segurança 
de dados é organização. Esta unidade contempla o tratamento e a implementação da 
linguagem SQL a partir dos comandos DCL, que lhe permitirão gerenciar um BD, tratan-
do aspectos fundamentais do controle de acesso, monitoramento e auditoria de dados 
alinhados à política de segurança adotada.
INTRODUÇÃO
Nesta unidade você será capaz de:
• Realizar o controle e a segurança de banco de dados.
OBJETIVO
50
Importância do Controle e Segurança do 
Banco de Dados com SQL-DCL
O papel do administrador de Banco de Dados também está relacionado a segurança e 
auditoria dos dados alinhadas às regras de negócio da empresa, de forma que os itens de 
segurança estejam alinhados com o Plano Diretor de Tecnologia de Informação – PDTI 
da instituição. O plano detalha segurança de dados e segurança de redes, definindo pa-
drões de procedimentos de gestão, tanto da Tecnologia da Informação – TI, quanto dos 
procedimentos adotados pela empresa.
Falar sobre Segurança de Dados nos leva a um assunto cada vez mais debatido, que é 
a Lei Geral de Proteção de Dados – LGPD. Tal lei estimula a utilização mais segura dos 
dados, tanto pelo cliente que os fornece, quanto pela instituição, que pode compartilhar e 
utilizar estes dados para outros fins. Por exemplo, a empresa utilizar o cadastro de cliente 
para repassá-lo para empresas fazerem divulgação de produtos e serviços.
Dados capturados das redes sociais podem, a partir de análise de perfis de 
usuários, beneficiar tanto estratégias de marketing quanto investimento em bol-
sas de valores e até mesmo decisões e impactos na política e economia.
Exemplo
Uma dica: leia sobre os impactos e cuidados que cada pessoa, independente-
mente da especialidade de TI, deve seguir com relação aos dados que com-
partilha, pensando de forma crítica o que essa captura de dados pode gerar ou 
influenciar, a depender da análise que é feita a partir deles.
Ampliando o foco
51
Pilares da segurança da informação 
Tratando-se de segurança de dados é importante enfatizar os quatro pilares da seguran-
ça da informação:
Confidencialidade
É o modo de garantir que a informação estará acessível apenas 
para pessoas autorizadas.
Integridade
Refere-se ao objetivo de assegurar que a informação esteja pro-
tegida contra qualquer alteração. Ao se tratar de alterações são 
englobados os camandos de update, de insert e delete dos re-
gistros no BD assegurando-se que os dados estejam íntegros, 
conforme as últimas operações realizadas , sejam de alteração, 
inclusão ou exclusão.
Disponibilidade
Os dados precisam estar seguros e disponíveis para serem 
acessados próximo a 100% de quantidade de solicitações. Ser-
viços necessários para que o BD esteja disponível atendo-se à 
sua arquitetura: se é um BD distribuído ou BD na nuvem, que to-
dos os requisitos estejam funcionando para que atendam aos 
usuários autorizados desejando serviços de qualidade e que 
estejam sempre “no ar”, ou seja, em funcionamento com estru-
turas necessárias para que isso venha a acontecer.
Autenticidade
Objetiva garantir que os dados sejam autênticos, que possibili-
tem os registros de alterações dos dados.
Portanto, as informações devem ser mantidas somente para o acesso de usuários au-
torizados, assim como implementar ações que protejam os dados contra vazamentos, 
ataques ou danos em geral.
Medidas de controle 
Para proteger um BD contra problemas de segurança e garantir que esses objetivos se-
jam alcançados é fundamental implementar três medidas de controle, que são: controle 
de acesso, controle de fluxo e criptografia.
52
Controle de Acesso
Em um sistema de BD multiusuário o sistema deve oferecer técnicas para permitir o ge-
renciamento de bloqueio de registro e de acesso dos usuários a um conjunto que tenha 
acesso somente à parte selecionada dos dados, sem que tenham acesso ao restante 
do banco. Assim, isso é fundamental ao tratar-se de um grande banco de dados inte-
grado que precisa ser acessado por vários usuários e sistemas dentro da instituição.
Logo, o SGBD inclui um sistema de autorização de acesso e um subsistema de seguran-
ça que são responsáveis por garantir a segurança do banco de dados contra acesso não 
autorizado. São usados dois mecanismos para isso:
• Mecanismos de Segurança Discricionários - São usados para conceder acesso 
aos usuários para consulta e atualização aos arquivos, registros (ou tuplas) e cam-
pos de um BD.
• Mecanismos de Segurança obrigatórios – Esses recursos são utilizados para ge-
renciar usuários ou grupo de usuários de acordo com seus perfis ou papéis (roles).
 
Controle de Fluxo
Essa medida de controle acontece de forma similar a aparelhos de rede que têm ge-
renciamento de rota, em que os dados somente são enviados para os endereços ou 
destinatários que têm acesso a eles. Assim, limitam a possibilidade de usuários que não 
possuem permissão acessarem os dados que estão trafegando.
Criptografia
Essa medida possibilita aumentar a segurança de dados utilizando algoritmos de emba-
ralhamento de dados em que somente o usuário com permissão conseguirá acessá-los 
na ordem que deveria ser mostrada e de acordo como foi enviada.
ISO 27001
A gestão da Segurança da Informação da estrutura pode ser elaborada de acordo com 
a norma ISO 27001. A adequação dos procedimentos para atender à norma englobam 
questões operacionais que possibilitem o monitoramento das informações, não espe-
cificando quais ferramentasdevem ser adotadas, mas sugerindo boas práticas. Estas 
requerem desde a aquisição de equipamentos de redes que façam o melhor controle do 
53
fluxo, quanto o desenvolvimento de procedimentos automatizados que armazenem o 
histórico dos dados e sua alteração.
No esquema a seguir são destacadas as etapas da ISO 27001, em que a organização é o 
foco principal, sendo necessário passar pelos ciclos de planejamento, operacionalização, 
verificação e somente depois a implementação, que faz parte da ISMS – Information 
Security Management System.
PLAN
Estabelecer o ISMS.
ISO 27001
ACT
Implementar 
e operar 
o ISMS.
DO
Implementar 
e operar 
o ISMS.
CHECK
Monitorar e revisar o 
ISMS.
Figura 1: Etapas da ISO 27001.
54
Instrução Grant 
A linguagem SQL (Structured Query Language) é aplicada a bancos de dados conside-
rados relacionais, com entidades, relacionamentos e diagramas. Destaca-se que os co-
mandos SQL são divididos em:
• DDL (Data Definition Language) ou Linguagem de definição de dados.
• DML (Data Manipulation Language) ou Linguagem de manipulação de dados.
• DQL (Data Query Language) ou Linguagem de recuperação de dados.
• DCL (Data Control Language) ou Linguagem de controle de dados.
Dentre os grupos de comandos citados, as instruções DCL alteram as permissões no 
banco de dados, sendo usadas para controle de acesso e gerenciamento dos usuários 
nos bancos de dados. Podem permitir ou negar ações para usuários nas tabelas ou re-
gistros, sendo que o controle por registros é chamado de segurança de nível de linha.
Sobre os comandos:
SQL GRANT é um comando utilizado para fornecer acesso ou privilégios sobre os obje-
tos de banco de dados para os usuários.
GRANT -> Atribui privilégios de acesso do usuário a objetos do banco de dados.
Ao codificar comandos na linguagem SQL é uma boa prática utilizar caixa alta 
para as palavras reservadas da linguagem e caixa baixa para utilização de de-
mais itens como campos e tipos. 
GRANT privilege_name
ON object_name
TO {user_name |PUBLIC |role_name}
[WITH GRANT OPTION];
Exemplo
55
Tratando os privilégios
Os privilégios ou controle de acessos podem ser concedidos aos comandos que cada 
grupo de usuário ou usuário terá ao database (banco de dados de cada sistema), tabela 
ou componente do BD. A seguir destacamos:
SELECT – Permissão para ler todas as tabelas ou consultas especificadas, continuando 
as permissões mesmo após alterações na estrutura da tabela.
INSERT – Permissão de inserir linhas na tabela especificada ou campo específico de 
uma tabela.
DELETE – Permissão de apagar linhas ou tuplas da tabela especificada.
REFERENCES – Permissão de definir chaves estrangeiras.
WITH GRANT OPTION – Permite que o usuário possa repassar a permissão a outros 
usuários. 
Se o objeto criado for uma visão, o usuário que a criou terá sobre ela os mesmos privilé-
gios que tem sobre as visões e tabelas utilizadas na visão. Para criar uma visão é neces-
sário ter, no mínimo, privilégio de seleção em todos os objetos utilizados.
Destaco que apenas o dono de um schema (ou Diagrama de Entidade Relacio-
namento - DER) pode executar CREATE, ALTER e DROP. Esse tipo de privilégio 
não pode ser repassado ou revogado.
Privilégios são concedidos havendo sempre a necessidade de identificação do 
usuário e senha antes da execução de comandos. 
Importante
Para o administrador de BD definir os papéis dos usuários os seguintes itens devem ser 
levados em consideração:
• Grupo de operação ou privilégios.
• Grupo de objetos a que o papel terá acesso.
• Grupo de usuários ou papéis que farão parte desse papel específico.
56
Instrução Revoke
A segurança de banco de dados é implementada para resolver questões:
• Legais e éticas quanto ao acesso e manipulação dos dados.
• Políticas que possibilitem a confidencialidade das informações em diversos níveis.
• De funcionamento do SGBD referente à infraestrutura de hardware e de software 
para que a disponibilidade seja atendida.
• Da hierarquização de acesso aos dados com a necessidade de gerenciamento de 
perfis de usuário e controle de acesso deste ao SGBD.
O comando REVOKE, também pertencente ao grupo DCL (Data Control Language) ou 
Linguagem de controle de dados, remove direitos de acesso do usuário ou privilégios 
para os objetos de banco de dados.
Assim, a sintaxe do comando é demonstrada, sendo que o REVOKE tem por finalidade 
remover os privilégios de acesso aos objetos obtidos com o comando GRANT.
REVOKE privilege_name
ON object_name
FROM {user_name |PUBLIC |role_name}
REVOKE é o comando complementar ao comando GRANT. Com ele pode tanto ser re-
tirada uma permissão de acesso ou o GRANT OPTION de um privilégio de um usuário 
específico. A sintaxe só mesmo:
REVOKE [GRANT OPTION FOR] privilégio ON objeto FROM usuários {RESTRICT 
CASCADE} 
A cláusula RESTRICT faz com que a cláusula a ser executada trate exceções de usuários 
específicos no momento da retirada de acessos a objetos de BD.
57
Removendo permissões. 
Desejo retirar a permissão de seleção do usuário joao no database academico, 
ou seja, o * representa todas as tabelas do database academico.
REVOKE SELECT on academico.* from joao
Outro exemplo: em vez de retirar a permissão apenas de uma tabela específica, 
não se utiliza o * e indica-se o nome da tabela após o database.
REVOKE SELECT on academico.aluno from joao
Exemplo
Auditoria de banco de dados 
A auditoria em banco de dados auxilia a identificar possíveis alterações não permitidas 
em registros que podem impactar em demais regras de negócio do sistema que faz uso 
do SGDB.
Dessa forma, para que se efetive a auditoria alguns itens são necessários, como:
• Ações que devam ser auditadas.
• Disponibilização de relatórios ou ferramentas de BI (Business Intelligence) para 
analisar as operações.
• Cruzar dados que identifiquem atividades suspeitas.
Tratando-se de Banco de Dados, a auditoria relaciona-se ao processo de identificação e a 
proteção dos dados contra pessoas que não são autorizadas. A partir da análise realiza-
da na auditoria de dados é possível examinar os logs gerados pelo Sistema Gerenciador 
de Banco de Dados (SGBD). Com esses logs pode-se localizar usuários que estão reali-
zando alguma operação ilegal, como visualizando dados que ele não está autorizado a 
visualizar.
58
O Administrador de Banco de Dados (DBA) geralmente é a pessoa responsável por efe-
tuar a auditoria, realizando o diagnóstico de problemas de execução do Sistema Geren-
ciador de Banco de Dados e o monitoramento das operações realizadas pelos usuários 
do sistema. O administrador confronta dados a partir de aplicação da própria linguagem 
SQL para consultar as tabelas geradas no logs de acesso gerados para cada database, 
podendo diagnosticar alterações indevidas e eventuais exclusões nos dados do sistema. 
Para isso, o Sistema Gerenciador de Banco de Dados deve dispor de mecanismos que 
deem permissão para a realização dessas atividades conforme o nível de segurança.
Normas internacionais relacionadas ao processo:
ISO 12207 – Processo de Desenvolvimento de Software.
ISO 15408 – Segurança de Aplicação (desenvolvimento).
ISO 15504 – Processo de Desenvolvimento de Software.
ISO 27001 – Especificação de Sistema de Gestão de Segurança da Informação 
(2006).
ISO 27002 – Código de Prática para Gestão da Segurança da Informação.
As diretrizes destas instituições norteiam regras de funcionamento para aten-
der a três características: confiabilidade, integridade e disponibilidade.
Ampliando o foco
59
Para ampliar seu conhecimento veja o material complementar da Unidade 1, 
disponível na midiateca.
MIDIATECA
Ao administrar bancos de dados há a necessidade constante de criação de 
usuários. Logo, é muito mais prático gerenciar um grupo de usuários que pos-
suam as mesmas permissões. Assim, para criar o papel ou perfil, é necessário 
que o usuário possua o privilégio, podendo executar os comandos conforme o 
exemplo a seguir, considerando-se que se está trabalhando com um sistemaacadêmico e deseja-se dar permissões, regras, tabelas e comandos que pode-
rão acessá-las.
GRANT CREATE ROLE TO <usuario>
CREATE ROLE <nome do papel> [IDENTIFIED BY <senha>]
CREATE ROLE inclusao_de_notas
CREATE ROLE inclui_notas IDENTIFIED BY senhadificil
GRANT PRIVILEGIO(S) ON TABELAS(S) TO ROLENAME
GRANT SELECT, INSERT, DELETE, UPDATE on notas TO inclusao_de_notas
NA PRÁTICA
60
Resumo da Unidade 3
Esta unidade envolveu os principais itens referentes a segurança de dados, trazendo 
exemplos dos comandos GRANT e REVOKE, assim como reflexões a respeito da prote-
ção de dados e da necessidade e importância da execução de auditoria dos dados e dos 
acessos às base de dados.
O Capítulo 23 do livro Sistemas de Banco de Dados (Elsimari) trata a Segu-
rança e Autorização em Banco de Dados abordando as técnicas utilizadas 
para proteger o banco de dados, chamando a atenção e detalhando bem as 
questões de segurança, que envolvem desde questões éticas que referem-se 
ao comportamento dos usuários, assim como questões legais ao direito de 
acesso a certas informações. Lembrando que os pilares da tecnologia, hard-
ware, software e people, estão interligados à segurança e a todos os aspectos 
que esta pode vir a impactar.
CONCEITO
61
Referências 
DAMAS, L. SQL - Structured Query Language. Rio de Janeiro: LTC. ISBN Digital: 
9788521632450. Minha Biblioteca.
ELMASRI, R.; NAVATHE, S. B. Sistemas de Banco de Dados. Rio de Janeiro: Pearson, 
2019 . Minha Biblioteca.
HEUSER, C. A. Projeto de Banco de Dados. 6. ed. Porto Alegre: Bookman, 2011. ISBN 
Digital: 9788577804528. Minha Biblioteca.
MACHADO, F. N. R. Banco de Dados: projeto e implementação. São Paulo: Saraiva, 2020. 
ISBN Digital: 9788536518978. Minha Biblioteca.
Controle de Transações 
com SQL-DTL
UNIDADE 4
63
Os comandos Data Transaction Language – DTL ou Linguagem de Transação de Dados 
são responsáveis por gerenciar diferentes transações ocorridas dentro de um Sistema 
Gerenciador de Banco de Dados – SGBD. Para que um conjunto de comandos possa ser 
gerenciado há propriedades que devem ser garantidas, recursos que devem ser controla-
dos e gerenciados para que mais usuários possam manipular os dados ao mesmo tem-
po e que a concorrência de acesso a esses dados atenda à qualidade e à confiabilidade 
do Banco de Dados – BD.
Neste sentido, esta unidade tem o objetivo de trabalhar os conceitos das transações 
realizadas em um BD, necessários para as competências de um administrador de BD, 
analista de sistemas ou profissional de TI para compreensão e aplicação dos conceitos 
e práticas que a área demanda. A gestão, controle e melhoria da eficiência de transações 
é um desafio de que trataremos nesta unidade, abordando para tanto as sintaxes, formas 
de aplicação, transações diferentes a depender da necessidade das diversas funcionali-
dades que um sistema demande.
INTRODUÇÃO
Nesta unidade você será capaz de:
• Realizar o controle de transações de banco de dados SQL-DTL.
OBJETIVO
64
Instrução Commit 
Transação é um processamento de tarefas que pode envolver vários dados e instruções 
de manipulação de registros em uma única execução. A transação é atômica, ou seja, 
deve ser considerada pelo SGBD como um componente único, em que todas as opera-
ções nela contidas sejam executadas no BD, ou nenhuma deve ser aplicada.
Todas as operações de uma transação devem ser executadas, ou nenhu-
ma será aplicada.
A sintaxe de uma transação pode envolver comandos de início e fim (BEGIN TRANSAC-
TION/END TRANSACTION), além de comandos de parada ou retorno à situação anterior 
à sua execução como um todo. No entanto, o padrão SQL-92 define que uma transação 
inicia-se a partir do comando SQL e engloba os comandos subsequentes até o fim da 
transação, com os comandos COMMIT ou ROLLBACK.
Propriedades da Transação
O SGBD deve garantir as quatro propriedades da transação, também conhecidas como 
ACID.
Imagine que você está em um caixa eletrônico consultando o saldo de sua con-
ta bancária. Considere este como o momento 1. Em seguida, você tenta sacar, 
o que já consideramos como momento 2. No entanto, houve falta de dinheiro 
no caixa eletrônico e a operação de saque não foi realizada. Neste instante o 
SGBD do sistema bancário volta o estado dos seus registros ao momento 1, 
permanecendo seus dados inalterados.
Exemplo
65
A
Atomicidade: o componente de recuperação de falhas do SGBD deve garantir 
que a transação é toda executada ou o estado anterior deve retornar. É a cha-
mada Lei do Tudo ou Nada. 
C
Consistência: os dados devem ser consistentes, estar de acordo as regras de 
negócio de seus atributos, chaves primárias, secundárias e demais compo-
nentes. Ou seja, se em um campo de uma tabela do SGBD existe uma regra 
de que aquele campo não deve ser nulo, a execução das transações deve 
atender a todas as regras de cada componente do database (banco de dados 
do sistema em questão).
I
Isolamento: cada transação deve ser tratada de forma isolada. O SGBD deve 
gerenciar a concorrência entre recursos a serem utilizados, utilizando, para 
tanto, um controle de concorrência (scheduler), que faz uso de bloqueio de 
registros que estão em uso, assim como recursos como memória e espaço 
em disco.
D Durabilidade: o SGBD deve garantir que, após a execução de transações, os dados permaneçam inalterados até o processamento de outra transação.
Estados da Transação
Uma transação pode ser executada com sucesso ou não. Quando não é executada com 
sucesso, as operações devem ser desfeitas por meio do comando ROLLBACK. Caso as 
instruções sejam executadas com sucesso, o comando COMMIT garante a atomicidade 
dos registros.
A figura a seguir representa os estados de uma transação, que são:
• Ativa: corresponde ao estado inicial e enquanto estiver sendo executada.
→ em efetivação: após todas as declarações da transação.
— commit (gravado): após o término da execução da transação.
→ em falha: após identificação de que a transação não poderá ser concluída 
normalmente.
— abort (abortado): após a transação ser desfeita e o BD retornar ao estado 
anterior.
66
Figura 1: Diagrama de Estado de Transação.
Fonte: Elaborada pela autora (2020).
Neste diagrama podemos identificar a mudança de estado durante o processamento de 
uma transação. Ao iniciar a transação com o comando BEGIN TRAN esta ficará no esta-
do Ativa e durante seu processamento poderá fazer operações de leitura e escrita no BD. 
Enquanto está processando fica no estado Em efetivação, ou seja, enquanto estiver em 
processamento pode ser abortada, retornando ao seu estado anterior à execução da 
transação a partir do comando ROLLBACK. Após executar o comando COMMIT, este 
gravará os dados no BD e dará a confirmação de que tudo foi gravado corretamente. 
Dessa forma, a transação vai para o estado finalizado com sucesso, estará no estado 
Gravado. Caso haja algum problema a transação ficará no estado Em Falha, executará o 
comando ROLLBACK e finalizará com o estado Abortado, finalizando a operação.
O SGBD gerencia os recursos e controla os acessos e liberações para estes. Neste senti-
do, é importante que o analista de BD entenda como funcionam pontos-chave envolvidos 
para o gerenciamento desses recursos, como segurança, bloqueios e desbloqueios, sin-
cronização entre as solicitações de vários usuários por meio das transações. Entenden-
do estes conceitos, a programação de scripts, a decisão por qual tipo de variável criar ou 
Os mecanismos de bloqueio em uma transação podem assegurar a integrida-
de física de cada transação e formas eficientes de controle delas. 
Ampliando o foco
Em
efetivação Gravado
Em
falha Abortado
Ativa
67
o modo de acesso a eles tenderá a ser mais adequado à eficiência e auxiliará na otimiza-
ção dos recursos existentes.
Quando várias transações são emitidas ao mesmo tempo (transações concorrentes), 
ocorre um escalonamento de operações destas. Algumas operações de uma transação 
são executadas; em seguida, seu processo é suspenso e algumas operaçõesde outra 
transação são executadas. O controle de estado das transações, utilizando algoritmos 
que controlem o estado de cada transação e da concorrência, gerenciando os recursos 
compartilhados entre as transações executadas em paralelo deve ser muito bem tratado. 
Depois que um processo é suspenso, ele é retomado a partir do ponto de interrupção, 
executado e interrompido novamente para a execução de outra transação. 
Modificações feitas por transações simultâneas devem ser isoladas das modificações 
feitas por qualquer outra transação simultânea. O isolamento deve garantir que duas 
transações, executadas de forma concorrente, tenham o mesmo resultado que teria se 
fossem executadas em ordem sequencial. 
Muitos problemas podem ocorrer quando transações sem controle de concor-
rência são executadas. Entre esses problemas encontramos:
• Perda de atualização.
• Atualização temporária (leitura suja).
• Agregação incorreta.
• Leitura não repetitiva.
Importante
Para conhecer mais sobre problemas de simultaneidade e de interfaces de 
conexão com o BD, pesquise sobre como o Sql Server trata algumas téc-
nicas, como: simultaneidade, leituras sujas, leituras de fantasma e leituras 
não repetíveis.
Ampliando o foco
68
Finalizada uma transação, seus resultados devem persistir, mesmo que ocorram falhas 
no SGBD, ou seja, as propriedades ACID devem ser garantidas. No dicionário, a palavra 
“persistir” significa: “demonstrar constância”, “insistência”; “perseverar”. Em tecnologia, 
especialmente em BD a persistência é um termo muito utilizado, pois há a necessidade 
da garantia de qualidade, de tentativas, de utilização de todos os recursos disponíveis até 
que sejam esgotadas todas as alternativas de qualidade e confiança dos dados proces-
sados e retornados.
Para saber mais detalhes sobre o processamento de procedimentos armazenados e 
compilados nativamente, pesquise sobre otimização de consultas, concorrência e deadlock. 
Você vai ver o quanto pode otimizar seu sistema e como isso pode beneficiar no processa-
mento das transações.
Ao codificarem-se scripts para transações, muitos recursos são demandados 
do servidor e da rede de dados, podendo fazer com que gargalos e problemas 
de tempo de processamento impactem na operacionalidade dos sistemas. 
Para melhor utilizar os recursos do servidor e do próprio cliente, sugiro fazer 
uso de ferramentas de otimização de código, assim como ferramentas de uso 
de recursos disponibilizadas pelo próprio SGBD e pelo Sistema operacional por 
meio do qual o servidor esteja sendo gerenciado.
Entender sobre ferramentas e gerenciamento de memória, assim como buscar 
dicas de melhoria da performance de um script podem fazem muita diferença, 
tanto no tempo de respostas do processamento das transações quanto na eco-
nomia de recursos e necessidade de upgrade da infraestrutura utilizada.
Sempre faça pesquisas para aprimorar seus conhecimentos!
Importante
Qual impacto se tem ao deixar scripts salvos no BD, como procedures e 
triggers?
Ampliando o foco
69
DTL
A DTL (Data Transaction Language ou Linguagem de Transação de Dados) é utilizada 
para gerenciar mudanças realizadas por instruções DML (Data Manipulation Langua-
ge ou Linguagem de Manipulação de Dados). Comandos como insert, update, seletc 
e delete fazem parte da manipulação de dados e serão utilizadas em conjunto no 
controle de transações. 
Como, então, aplicar a DTL?
O conceito de transação só se aplica aos comandos que fazem a manipulação de dados, 
DML, ou seja, comandos SELECT, INSERT, UPDATE e DELETE. Entende-se que qualquer 
interação com os dados pode ser considerada uma transação. No entanto, existem co-
mandos que podem controlar o momento de início, parada e interrupções planejadas. A 
seguir, um exemplo de sintaxe do código utilizando uma transação no SQL Server: 
Acesse e participe de fóruns de discussão. Eles agregam muito valor, pois é 
possível aprender com pessoas mais experientes. Existem vários, mas reco-
mendamos os oficiais da Microsoft, pois especialistas certificados nas tecnolo-
gias fazem contribuição de código e sugestão de melhoria sobre concorrência 
na seleção de dados.
Ampliando o foco
Sintaxe do BEGIN
BEGIN TRANSACTION 
 comando SQL(SELECT, INSERT,UPDATE,DELETE) 
IF @@ERROR <> 0 
 ROLLBACK 
ELSE 
 COMMIT 
Exemplo
70
Cabe acrescentar que, ao trabalharmos com BD, existe uma linguagem padrão chamada 
de SQL ANSI. Porém, existem ferramentas de fornecedores diferentes que, ao criarem 
seus SGBDs, tem a liberdade de fazer adaptações na linguagem considerada linguagem 
mãe das demais. Neste sentido, sintaxes diferentes são aplicadas aos demais BD, con-
forme a Tabela 1, como o próprio Sql Server, Oracle, Postgre, MySql, agora MariaDB, 
Informix e DB2. Destaco a seguir diferenças destas aplicações. No entanto, lembro que a 
lógica de aplicação segue a mesma linha de raciocínio. Acrescento que o uso de colche-
tes ([]) significa que o uso da cláusula é opcional.
Tabela 1: Sintaxe de Transações.
SGBD SINTAXE
SQL Server BEGIN [TRAN, TRANSACTION]
Oracle
BEGIN …
END;
Postgre BEGIN [WORK,TRANSACTION]
MySQL/MariaDB
BEGIN [NOT ATOMIC] ... 
END;
Informix BEGIN [WORK]
DB2
BEGIN ... 
END;
Fonte: Elaborada pela autora (2020). 
Para refletir
O que você faz quando depara-se com um termo técnico novo?
Quando surgir uma palavra nova aplicada, busque exemplos de sua utilização. 
Assim, você entenderá melhor a cada leitura e poderá aplicar a terminologia e o 
aprendizado. Uma sugestão é participar de palestras técnicas. Em um primeiro 
momento você irá deparar-se com muitos termos novos, mas a cada uma de 
que participar e pesquisar sobre as palavras que lhe chamaram a atenção, o 
seu vocabulário crescerá e seu conhecimento técnico também.
71
Instrução Rollback
O ROLLBACK é utilizado para desfazer as alterações realizadas. Ele é acionado caso haja 
algum erro na execução da transação ou no tratamento de exceção prevista, embutindo 
no script condições que façam voltar à situação inicial, liberando os recursos que a tran-
sação havia bloqueado para o seu processamento.
O ROLLBACK retorna para a configuração existente antes do erro de 
execução.
Quando uma transação altera o banco, é feita uma cópia dos dados anteriores à altera-
ção da instrução de ROLLBACK. Se uma outra transação estiver consultando os dados 
em paralelo à finalização da transação — que está tratando os mesmos dados antes da 
operação do COMMIT —, os dados que serão acessados são aqueles copiados antes da 
finalização do COMMIT dessa transação.
Neste sentido, imagine que duas pessoas estão acessando uma loja on-line. As duas 
possuem cartões da mesma conta corrente e limite único. No entanto, se uma transação 
não aguardar a outra ser executada e o limite do cartão não contemplar o valor das duas 
compras, a autorização da compra pode ser feita de forma a ultrapassar o valor do limite 
de compra para os dois cartões.
A sintaxe do ROLLBAK
ROLLBACK { TRAN | TRANSACTION }
 [ transaction_name | @tran_name_variable 
 |savepoint_name | @savepoint_variable ] 
[ ; ] 
Para saber mais detalhes de implementação e melhor aproveitamento do códi-
go em transações, pesquise sobre como o ROLLBACK é executado e o geren-
ciamento e liberação de recursos efetuado por ele, assim como mais detalhes 
sobre declaração de variáveis e tratamentos de erros.
Ampliando o foco
72
Utilização de Variáveis em transações
Como qualquer linguagem, a Transact-Sql possui palavras reservadas que não são indi-
cadas para serem declaradas como variáveis. A declaração de variáveis em uma tran-
sação é feita a partir da palavra reservada DECLARE, seguida do caracter @, o nome da 
variável e o tipo desta variável. Para comentários dentro de um script segue-se o padrão 
adotado em demais linguagens de programação: para uma linha adotam-se duas bar-
ras(//) e para comentários com mais de uma linha o /* */, conforme Sintaxe e exemplo 
de Atribuição de valor a seguir
-- Declaração da variável chamada var, emseguida informando o tipo da variável.
DECLARE @var data-type
-- Atribuição do valor entre aspas simples para a variável var.
SET @var=’valor’
-- Retornar valor da variável através do comando SELECT.
SELECT @var
No exemplo de Atribuição de valor é declarada a variável como nome Cliente do tipo var-
char(20), tamanho 20. A partir do comando SET é informado o valor recebido na variável 
e por meio do comando SELECT deve retornar o valor da variável na tela.
Uma variável local Transact-SQL é um objeto que pode conter um valor de dados de um 
tipo específico. As variáveis são aplicadas em situações como:
• Um contador, para ser utilizado no controle de vezes que uma transação deve ser 
executada, associado com estruturas de repetição.
Exemplo de Atribuição de valor:
DECLARE @Cliente varchar(20)
SET @Cliente=’Dore’
SELECT @Cliente
Exemplo
73
• Um totalizador, que também pode ser utilizado em transações associadas ou não 
a estruturas de repetição e de seleção.
• Como uma variável temporária, a fim de comparar dados do percorrer da transação.
• Para armazenar dados e utilizá-los como retorno de uma função, uma transação, 
stored procedure ou trigger.
Uma instrução DECLARE inicializa uma variável Transact-SQL por:
 
• Atribuir um tipo, um tamanho de uma variável passado pelo usuário ou por parâ-
metro de outra função.
• Atribuir um valor, devendo utilizar somente um @ para atribuição de valores, con-
forme Exemplo de Atribuição de valor.
• Definição de um valor como NULL.
Vale destacar que as formas de declaração de variação diferem de um SGBD para outro, 
seguindo a mesma lógica, no entanto pode haver alterações de sintaxe. Suas aplicações 
dependerão das situações que possam ser utilizadas na resolução de algum problema, o 
que pode implicar na forma de declaração de variáveis locais e globais na utilização em 
transações. Por exemplo, uma variável que terá a função de um contador somente da 
execução dentro de uma parte da transação, deve ser local e não global. 
Da interpretação da transação a seguir temos o seguinte:
A varável @nroAmb foi declarada como global em outro local por ser utilizada 
em mais de uma transação
Os nomes de algumas funções do sistema Transact-SQL começam com dois 
sinais de arroba (@@). Destaco que o uso de sua sintaxe segue as regras das 
funções.
Como avariável @@ERROR, utilizada para capturar erros retornados pelo SGBD.
BEGIN TRANSACTION T1
UPDATE Medicos SET nroa = NULL 
 WHERE nroa = @nroAmb 
Exemplo
74
Nível de Isolamento da transação
As transações especificam um nível de isolamento em que são definidos os modos de 
acesso aos recursos ou dados que possam ser compartilhados por outras transações. 
Os tipos de isolamento estão resumidos na Tabela 2, dividindo-os em quatro níveis, con-
forme definido pelo SQL-92.
Tabela 2: Níveis de isolamento da transação no SQL.
Nível de Isolamento Leitura suja(Dirty Read)
Leitura não repetível
(Nonrepeatable Read)
Fantasma
(Phantom Read)
Leitura não confirmada 
(Read uncommitted)
Sim Sim Sim
Leitura confirmada 
(Read committed)
Não Sim Sim
Leitura repetida
(Repeatable read)
Não Não Sim
Serializável
(Serializable)
Não Não Não
Fonte: Adaptado de docs.microsoft.com (2020).
IF @@ERROR <> 0 
 ROLLBACK TRANSACTION T1 
DELETE FROM Ambulatorios 
 WHERE nroa = @nroAmb 
IF @@ERROR <> 0 
 ROLLBACK TRANSACTION T1 
ELSE 
 COMMIT TRANSACTION T1 
….
75
Destaca-se que o Mecanismo de Banco de Dados do SQL Server por padrão é definido 
com o nível de isolamento READ COMMITTED, podendo ser redefinido pelo programador 
caso haja necessidade. Os níveis diferenciam na capacidade de mais usuários acessa-
rem os dados simultaneamente, havendo para tanto a necessidade de mais recursos 
para aumentar o nível de isolamento. O nível mais baixo de isolamento é a leitura não 
confirmada, que permite ler dados de outras transações que ainda não deram COMMIT, 
ou foram finalizadas, fazendo o que chamamos de leitura suja. As principais diferenças 
de um nível para o outro são destacadas na Tabela 2.
Quando, então, redefinir o nível de isolamento de uma transação?
Recomendo que mantenha-se o nível de isolamento padrão do SGBD que esteja traba-
lhando. Porém, há situações em que um sistema pode ter a necessidade de uma granu-
laridade menor, como um sistema de decisão de investimento em bolsas de ações. Siste-
mas especialistas precisam tomar decisões ou indicar melhores opções que demandam 
uma programação mais hard core, digamos assim. De qualquer forma, entenda qual a 
Ao se trabalhar com banco de dados em nuvem, outros níveis de isolamento 
podem ser configuráveis. Saiba mais pesquisando sobre os níveis de isolamen-
to que controlam o comportamento de bloqueio e do controle de versão de li-
nha das instruções Transact-SQL emitidas por uma conexão com o SQL Server.
Ampliando o foco
Exemplo de aplicação de nível de isolamento em uma transação:
Se uma transação estiver em um nível de isolamento mais baixo, Leitura não 
confirmada. Suponha que tenhamos duas transações a serem executadas, a 
Transação A e a Transação B. A transação A atualize uma linha. A transação B 
lê a linha atualizada antes que a transação A confirme a atualização, antes de 
executar o COMMIT. Se a transação A der um ROLLBACK, a transação B terá 
dados de leitura que são considerados nunca existentes.
Exemplo
76
necessidade de manipulação do dado para decidir a real necessidade de mudança no 
nível da transação. 
Sendo assim, a partir das cláusulas SET TRANSACTION são definidos os modos de 
acesso que podem ser READ (somente leitura), WRITE (somente atualização) e READ 
WRITE (ambos – default) e da cláusula ISOLATION LEVEL, por meio da qual são defi-
nidos os níveis de isolamento, SERIALIZABLE (transação executa com completo iso-
lamento – default, para alguns SGBDs), READ COMMITTED (onde transações só leem 
dados gravados. No entanto, outras transações podem escrever em dados lidos por 
demais transações).
Para saber mais informações sobre os diferentes níveis de acesso, assim como 
os fenômenos de leitura suja, leitura não repetível e fantasma faça a leitura 
além das informações reportadas nesta unidade e nas leituras complemen-
tares indicadas na midiateca. Recomendamos que busque mais informações 
sobre os níveis de isolamento da transação, como eles podem ser associados 
com a linguagem de programação com que esteja trabalhando, nas formas de 
conexão com o BD e na programação em camadas.
Ampliando o foco
77
Instrução Savepoint
A instrução Savepoint marca um ponto de gravação dentro da transação atual, sendo 
utilizada para dividir uma transação em partes menores. Identificar um ponto em uma 
transação tem o objetivo principal de possibilitar que, futuramente, você possa efetuar 
um ROLLBACK para determinado ponto salvo na transação.
Os pontos de salvamento são úteis em situações em que erros são improváveis. E, dessa 
forma, os comandos de ROLLBACK poderiam voltar àquele estado tratado, pertinente-
mente, como ponto de salvamento e retorno para o estado dos registros sem impacto de 
consistência de dados. As atualizações e reversões são operações consideradas caras, 
pois demandam o bloqueio de vários recursos. Logo, pontos de salvamento só serão 
eficientes se a probabilidade de encontrar o erro for baixa e o custo de verificar a validade 
de uma atualização com antecedência for relativamente alto. 
A sintaxe do SAVE ou SAVEPOINT
SAVE { TRAN | TRANSACTION } { savepoint_name | @savepoint_variable } [ ; ] 
Argumentos do Savepoint
O savepoint possui dois argumentos: 
savepoint_name e @savepoint_variable.
O savepoint_name refere-se ao nome que será atribuído ao ponto de salvamento. Des-
taco que os nomes utilizados neste argumento devem estar de acordo com as regras 
para identificadores, sendo as mesmas limitadas a 32 caracteres. Ele é case sensitive, ou 
seja, diferencia maiúsculas de minúsculas.
Já o @savepoint_variable refere-se ao nome de uma variável definida pelo usuário, que 
contém um nome de ponto de salvamentoválido. Ressalto também que, por tratar-se 
de uma variável, ela precisa ser declarada com o tipo de dados char, varchar, nchar ou 
78
nvarchar, tipos específicos para armazenamento de caracteres. Recomendo que sejam 
utilizados até 32 caracteres na declaração desta variável, já que, apesar de permitir a uti-
lização de mais caracteres, apenas os primeiros 32 caracteres são usados.
Em uma tabela conta temos os campos saldo e conta, em que o saldo arma-
zena o saldo da conta corrente ou poupança e a conta armazena o número da 
conta corrente ou poupança. Temos também uma tabela chamada LogSaldo 
com os campos saldoguardado e contaguardada. Queremos atualizar o valor 
do campo saldo para os registros com valores menores do que o valor 20. 
Logo, identificamos que vamos fazer uma atualização (saldo=1000) de acordo 
com a condição informada (saldo<20). 
Na transação a seguir estamos criando um save point chamado de INS_SAL-
DOLOG para garantir que as informações antigas sejam inseridas na tabela de 
logsaldo, garantindo a integridade das informações, caso futuramente seja fei-
ta alguma alteração que não deveria ocorrer.
BEGIN TRANSACTION
 UPDATE FROM conta
 SET saldo= 1.000
 WHERE saldo < 20
SAVE TRANSACTION INS_SALDOLOG 
INSERT INTO logsaldo 
(SELECT saldoguardado, contaguardada 
 From logsaldo)
COMMIT
Exemplo
Para versões do SQL Server 2014 e anteriores será necessário verificar nas 
documentações de versões anteriores.
Importante
79
Outro exemplo de aplicação de Savepoint.
Ao se trabalhar com transações é preciso destacar que o SQL Server efetua bloqueios de 
recursos que demandem o menor recurso disponível. Por exemplo, se há uma atualização 
de registro de uma tabela, somente aquele registro é bloqueado e não toda a tabela, liberan-
do, assim, acesso aos demais registros da tabela envolvida em uma transação.
Em uma tabela Setor com os campos codset, para armazenar o código do 
setor, descricao e codgerente, para armazenar o código do gerente de cada 
setor, deseja-se fazer a inserção de um novo setor e salvar os dados. Proposita-
damente, adicionei um comando para apagar todos os registros de outra tabela 
chamada Funcionario. No entanto, quero apenas que o setor seja inserido e o 
restante do código seja executado, dando um aumento de 5% a todos os fun-
cionários do setor criado conforme código abaixo:
INSERT INTO setor (codset, descricao, codgerente) 
 VALUES (15, ‘Auditoria Interna’, 7); SAVEPOINT ponto1; 
DELETE FROM Funcionario; 
ROLLBACK TO SAVEPOINT ponto1; 
UPDATE Funcionario 
 SET salario = salario * 1.05 WHERE codset = 2; 
COMMIT;
Dessa forma, o comando INSERT é executado e salvos os dados das tabelas 
envolvidas na transação conforme comando SAVEPOINT no ponto1, executado 
o comando DELETE, sendo que, como existe um comando ROLLBACK na pró-
xima linha, este desfaz tudo que foi executado antes do último ponto de salva-
mento (ponto1), desfazendo a exclusão dos registros da tabela Funcionario, em 
seguida atualizando o salário e gravando os dados no BD, finalizando o estado 
da transação. 
Exemplo
80
Arquitetura do Gerenciador de Banco de Dados
A arquitetura de um SGBD é fundamental para a execução de transações. Ressalto que ela 
tem o objetivo principal de garantir as propriedades das transações ACID, e que contempla, 
entre outros componentes, o Gerente de Transações, que objetiva controlar o escalona-
mento dos recursos utilizados e bloqueados entres as transações, conforme a Figura 2.
Figura 2: Arquitetura do gerenciador de Banco de Dados.
Fonte: Elaborada pela autora (2020).
Deadlock refere-se ao controle de concorrência, ou seja, em BD, quando mais 
de uma transação disputa os mesmos recursos. Isso fica explícito com o co-
mando DML. A manipulação de dados requer bloqueios e liberação de dados o 
tempo todo. Ou seja, imagine que há vários usuários tentando acessar um mes-
mo registro. Logo, é necessário que exista uma organização com bloqueios e 
prioridades. Se o usuário A está fazendo uma alteração, o usuário B só poderá 
fazer outra alteração após o primeiro (usuário A) finalizar. Dessa forma, o SGBD 
deve controlar o acesso ao mesmo recurso e gerenciar a concorrência.
Ampliando o foco
Gerente 
de Buffers
Gerenciador
de Arquivos
Otimizador 
de Consultas
Gerente de 
Recuperação 
Falhas
Verificação de
Integridade
Gerente de 
Transações
Scheduler
Gerente de Dados
Bando de Dados e 
Dicionário de Dados
Código objeto 
de programas
Processador 
de consulta
Gerenciador 
Dicion. Dados
Autorização
de Acesso
Processador
de Comandos
81
Vamos imaginar uma situação hipotética em que duas transações T1 e T2 desejam atua-
lizar (comando UPDATE) um dado (campo X) em uma mesma tupla (linha onde o campo 
código= HIP001) de uma tabela (TabX). O SGDB fará uso de vários componentes para 
que a execução das duas transações possa ser concluída. 
Para tanto, é verificado, por meio da Autorização de Acesso, se cada uma tem aces-
so aos dados desejados (pois o usuário pode não ter direito de escrito em determina-
dos itens). Processar os comandos, checando sua sintaxe e retornando linhas de erros, 
quando for o caso. Em paralelo fazer a verificação de Integridade, ou seja, se os dados 
vão permanecer confiáveis após a execução do código.
Caso o módulo de Otimizador de Consultas esteja ativo o SGBD gerará relatório com 
sugestões de melhoria de eficiência do código. Fará o escalonamento a partir do Sche-
duler, ou seja, um gerenciamento de qual dado será acessado e em que ordem de prio-
ridade. Em seguida, passará informações para o Gerente de Transações para controlar 
os recursos e transações. Quando são acionados os comandos de ROLLBACK em uma 
transação é acionado o Gerente de Recuperação de Falhas, para que possa enviar e 
tratar as falhas, podendo ser de hardware ou de software, e o Gerente de buffers, para 
que possa retornar os dados de memória ou paginação.
Para saber mais sobre Stored procedure e Trigger pesquise e leia sobre CLR 
(Common Language Runtime). Pratique, crie, compile, aplique passagens de 
variáveis e agendamentos a partir de condições de inclusão, alteração ou outra 
necessidade que uma situação venha a demandar.
Ampliando o foco
Para ampliar o seu conhecimento veja o material complementar da Unidade 4, 
disponível na midiateca.
MIDIATECA
82
Para ilustrar o conceito de transação, trago o exemplo clássico de transferência 
de dinheiro de uma conta para outra. Suponha que o correntista Pedro pretenda 
transferir R$ 500,00 de sua conta bancária para a conta da correntista Maria. 
Uma transferência corresponde a uma retirada de um valor X em uma conta 
(um débito) e um depósito do mesmo valor X em outra conta (um crédito).
Para execução do débito e do crédito, é necessária a aplicação de operações 
matemáticas de subtração e soma por meio do comando de manipulação de 
dados, o UPDATE, no campo saldo da tabela conta. Para tanto, sabemos que o 
número da conta de Pedro é igual a “2032” e a conta de Maria é igual a “3402”.
UPDATE conta 
 SET saldo = saldo - 500 
WHERE conta = “2032” 
UPDATE conta 
 SET saldo = saldo + 500 
WHERE Conta = “3402”
O primeiro UPDATE realizaria a operação na conta de origem (Pedro) e o segun-
do UPDATE faria a atualização na conta de destino. O que, porém, aconteceria 
se, devido a algum problema na rede de computadores, apenas o primeiro UP-
DATE fosse executado? 
Considerando que apenas o primeiro Update fosse executado, Pedro ficaria com 
menos R$ 500,00 em sua conta, enquanto o Maria ficaria com o mesmo saldo. 
Ou seja, não haveria notificação de erro ao SGBD, pois a sintaxe do comando está 
correta e ele seria executado sem problemas. No entanto, há a necessidade de 
que os dois comandos sejam executados, e não somente um deles. 
Assim, para controlar esta necessidade aplicamos uma transação. Lembram 
da Lei do Tudo ou Nada? Ou o conjunto de instruções naquele bloco é exe-
cutado ou nada é executado e o estado do BD retorna ao estado anterior. Se 
NA PRÁTICA
83
somente um dos UPDATESfosse executado dentro de uma transação, esta 
informaria que ocorreu uma falha e o controle de falhas do SGBD faria retornar 
os dados à situação anterior à execução da transação. De que forma? Um erro 
seria guardado na variável @@ERROR, a arquitetura do SGBD que está fazendo 
o gerenciamento desta transação envia para tratamento de falhas, que efetua o 
ROLLBACK e volta à situação anterior ao início da transação.
Lembrando a sintaxe que pode ser utilizada em uma transação com tratamento 
da variável @@error: 
BEGIN TRANSACTION 
 comando SQL(INSERT,UPDATE,DELETE) 
IF @@ERROR <> 0 
 ROLLBACK 
ELSE 
 COMMIT 
Para a necessidade da transferência das contas de Pedro e Maria o código po-
deria ficar como o que segue:
BEGIN TRANSACTION 
UPDATE conta 
 SET saldo = saldo – 500
WHERE conta = “2032” 
UPDATE conta 
 SET saldo = saldo + 500 
WHERE Conta = “3402”
IF @@ERROR <> 0 
 ROLLBACK 
ELSE 
 COMMIT 
// A depender da versão utilizada do SQL pode ser utilizado o comando GO ao 
final do código
84
Esses comandos nos permitem realizar o controle de início, fim e registro das 
transações, de modo a concretizar aquelas propriedades ACID (Atomicidade, 
Consistência, Isolamento e Durabilidade) que já vimos. Garante atomicidade e 
consistência dos dados. Quando não implementam-se as operações dentro 
de uma transação, o processamento será executado a cada chamada, consu-
mindo mais recursos de processamento e de armazenamento e, ao se imple-
mentar dentro de uma transação, a operação já estará compilada e demandará 
menos recursos.
85
Resumo da Unidade 4
Esta unidade contemplou a sintaxe e a propriedades das transações, assim como 
suas aplicações a partir de procedimentos e triggers. Os conceitos e detalhes de 
bloqueios de recursos e dados, assim como nível de isolamento e arquitetura de um 
SGBD foram destacados.
As Transações podem envolver vários conceitos devido a suas diversidades de 
aplicações, possibilidade de resoluções, podendo haver formas diferentes de 
programação e melhorias de aplicabilidade. Procedimentos armazenados, que 
também são transações, são semelhantes às estruturas lógicas em outras lin-
guagens de programação. O tratamento de exceções, estruturas de repetição e 
estruturas de seleção seguem a mesma linha de raciocínio, havendo mudanças 
de sintaxe. 
A otimização de recursos com a criação de procedimentos e de triggers aper-
feiçoam muito o tempo de resposta e alocação de recursos para processamen-
to destes. Considere que qualquer tipo de acesso a dados é uma transação, o 
que mudará é a forma de gerenciamento, passagem de parâmetros, chamadas 
e disparos a partir de situações pré-configuradas. Transações trazem um mun-
do de possibilidades na programação backend e na interface de comunicação 
com o frontend.
CONCEITO
86
Referências 
DAMAS, L. SQL - Structured Query Language. Rio de Janeiro: LTC. ISBN: 9788521632450. 
Minha Biblioteca.
ELMASRI, R.; NAVATH, Sistemas de Banco de Dados. Rio de Janeiro: Person. Minha 
Biblioteca.
HEUSER, C. A. Projeto de Banco de Dados, 6. ed. Porto Alegre: Bookman, 2011. ISBN: 
9788577804528. Minha Biblioteca.
MACHADO, F. N. R. Banco de Dados - Projeto e Implementação. São Paulo: Saraiva. 
ISBN: 9788536518978. Minha Biblioteca.

Mais conteúdos dessa disciplina