Logo Passei Direto
Buscar

Introdução ao Banco de Dados

Ferramentas de estudo

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

1
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
2
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
3
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Núcleo de Educação a Distância
GRUPO PROMINAS DE EDUCAÇÃO
Diagramação: Gildenor Silva Fonseca
PRESIDENTE: Valdir Valério, Diretor Executivo: Dr. Willian Ferreira.
O Grupo Educacional Prominas é uma referência no cenário educacional e com ações voltadas para 
a formação de profissionais capazes de se destacar no mercado de trabalho.
O Grupo Prominas investe em tecnologia, inovação e conhecimento. Tudo isso é responsável por 
fomentar a expansão e consolidar a responsabilidade de promover a aprendizagem.
4
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Prezado(a) Pós-Graduando(a),
Seja muito bem-vindo(a) ao nosso Grupo Educacional!
Inicialmente, gostaríamos de agradecê-lo(a) pela confiança 
em nós depositada. Temos a convicção absoluta que você não irá se 
decepcionar pela sua escolha, pois nos comprometemos a superar as 
suas expectativas.
A educação deve ser sempre o pilar para consolidação de uma 
nação soberana, democrática, crítica, reflexiva, acolhedora e integra-
dora. Além disso, a educação é a maneira mais nobre de promover a 
ascensão social e econômica da população de um país.
Durante o seu curso de graduação você teve a oportunida-
de de conhecer e estudar uma grande diversidade de conteúdos. 
Foi um momento de consolidação e amadurecimento de suas escolhas 
pessoais e profissionais.
Agora, na Pós-Graduação, as expectativas e objetivos são 
outros. É o momento de você complementar a sua formação acadêmi-
ca, se atualizar, incorporar novas competências e técnicas, desenvolver 
um novo perfil profissional, objetivando o aprimoramento para sua atua-
ção no concorrido mercado do trabalho. E, certamente, será um passo 
importante para quem deseja ingressar como docente no ensino supe-
rior e se qualificar ainda mais para o magistério nos demais níveis de 
ensino.
E o propósito do nosso Grupo Educacional é ajudá-lo(a) 
nessa jornada! Conte conosco, pois nós acreditamos em seu potencial. 
Vamos juntos nessa maravilhosa viagem que é a construção de novos 
conhecimentos.
Um abraço,
Grupo Prominas - Educação e Tecnologia
5
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
6
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Olá, acadêmico(a) do ensino a distância do Grupo Prominas! .
É um prazer tê-lo em nossa instituição! Saiba que sua escolha 
é sinal de prestígio e consideração. Quero lhe parabenizar pela dispo-
sição ao aprendizado e autodesenvolvimento. No ensino a distância é 
você quem administra o tempo de estudo. Por isso, ele exige perseve-
rança, disciplina e organização. 
Este material, bem como as outras ferramentas do curso (como 
as aulas em vídeo, atividades, fóruns, etc.), foi projetado visando a sua 
preparação nessa jornada rumo ao sucesso profissional. Todo conteúdo 
foi elaborado para auxiliá-lo nessa tarefa, proporcionado um estudo de 
qualidade e com foco nas exigências do mercado de trabalho.
Estude bastante e um grande abraço!
Professor: Alan de Oliveira Santana
7
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
O texto abaixo das tags são informações de apoio para você ao 
longo dos seus estudos. Cada conteúdo é preprarado focando em téc-
nicas de aprendizagem que contribuem no seu processo de busca pela 
conhecimento.
Cada uma dessas tags, é focada especificadamente em partes 
importantes dos materiais aqui apresentados. Lembre-se que, cada in-
formação obtida atráves do seu curso, será o ponto de partida rumo ao 
seu sucesso profissional.
8
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
O ato de registrar informações em diversos tipos de mídias é algo 
que a humanidade faz a milênios, porém, foi com o desenvolvimento dos 
Sistemas de Gerenciamento de Banco de Dados que passamos a explo-
rar as informações contidas nos dados de formas sistemática e efetiva. 
Assim, o estudo de como manipular dados é algo essencial para as áreas 
que se correlacionam de alguma forma à computação e pode se tornar 
uma disciplina básica para todos nos próximos anos. Neste sentido, esta 
Unidade irá apresentar uma introdução aos bancos de dados, permitindo 
que o aluno possa ter uma visão geral e prática das principais técnicas e 
conceitos de manipulação das informações contidas nestes bancos. Para 
tanto, será apresentado um contexto geral e breve sobre a história dos 
bancos de dados, o qual, é consideravelmente recente quando comparado 
a outras áreas da computação e das ciências como um todo. Tomando por 
base a história dos bancos, serão apresentados em seguida os modelos 
históricos dos bancos até o modelo relacional, que embasará os métodos 
de gerenciamento citados nas seções seguintes. Assim, serão apresenta-
dos os conceitos básicos dos bancos relacionais e o que vem a ser uma 
entidade, bem como um atributo, até os tipos de relacionamento e como se 
dá a padronização da descrição de um banco de dados relacional através 
dos diagramas de entidade-relacionamento. Uma vez que estes concei-
tos básicos tenham sido apresentados, a linguagem de manipulação em 
bancos relacionais SQL começará a ser tratada, especificamente, iniciando 
pela álgebra relacional, que padroniza o modelo relacional. Em seguida, 
serão apresentados os primeiros comandos em SQL, como a criação dos 
bancos, tabelas e inserção e manipulação dos atributos, pelos quais será 
possível apresentar as diferentes formas de consultas aos dados e suas 
especificidades. Desta forma, como citado, espera-se que este conteúdo 
sirva como porta de entrada para a exploração e uso dos conceitos avan-
çados dos bancos de dados.
Banco de dados; Consultas; Modelo relacional.
9
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
 CAPÍTULO 01
FUNDAMENTOS DOS BANCOS DE DADOS
Apresentação do Módulo ______________________________________ 11
Breve História dos Bancos de Dados e suas Arquiteturas __________
Modelos de Dados ________________________________________________
Entidades e Atributos ____________________________________________
Tipos de Relacionamento ________________________________________
Diagrama Entidade-Relacionamento _____________________________
Recapitulando ___________________________________________________
12
15
21
21
24
28
 CAPÍTULO 02
INTRODUÇÃO À LINGUAGEM SQL
Um Breve Contexto da Álgebra Relacional ______________________
Criando um Banco de Dados ____________________________________
Criando Tabelas ________________________________________________
Manipulando Tabelas __________________________________________
Recapitulando _________________________________________________
32
40
40
44
48
10
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Operações de Consultas Complexas ____________________________
Recapitulando _________________________________________________
Considerações Finais ___________________________________________
Fechando a Unidade ___________________________________________
Referências ____________________________________________________
61
67
73
74
77
Operações de Consulta Básica __________________________________ 53
 CAPÍTULO 03
CONSULTAS EM BANCO DE DADOS
Introdução ao Capítulo _________________________________________ 52
11
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Os bancos de dados têm ganhado cada vez mais importância 
com o passar dos anos, sejam em suas aplicações tradicionais em sis-
temas de vendas,cadastros, entre outros, seja para análise de padrões 
usados nas mais diversas aplicações.
Independente da aplicação, os conceitos fundamentais dos 
bancos de dados devem ser bem absorvidos e fixados, uma vez que 
são fundamentais para muitas das profissões existentes, inclusive, não 
ligadas à computação, gerando demandas crescentes por profissionais 
que atuem com bancos de dados.
Desta forma, este material procurará introduzir os conceitos 
fundamentais dos bancos de dados, com ênfase nos bancos do modelo 
relacional, pois é o modelo mais usado nas aplicações gerais, ou seja, 
na maioria das aplicações onde se faz necessário digitalizar informa-
ções e guardá-las em meios digitais.
Assim, espera-se que este material sirva como meio de entra-
da para os conceitos de banco de dados, auxiliando nas oportunidades 
de atividades remuneradas, bem como na formação de um ente capaz 
de contribuir com as mudanças que envolvem as sociedades tecnológi-
cas atuais e futuras.
Bons estudos!
12
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S BREVE HISTÓRIA DOS BANCOS DE DADOS E SUAS ARQUITETURAS
A história humana contém diversas etapas compostas por de-
senvolvimento de meios de sobrevivência cada vez mais efetivos, vali-
dação da efetividade do meio e replicação dos resultados.
Entre estes meios citados, este material irá atentar a uma im-
portante ferramenta que revolucionou a forma como nossas sociedades 
evoluíram e evoluirão as técnicas de manipulação de informações: os 
bancos de dados.
De forma geral, o registro histórico humano é iniciado com a 
escrita, porém, há muito tempo os humanos já preservavam as suas 
formas particulares de verem o mundo através de manifestações artís-
ticas, como pinturas, criação de objetos que representavam animais, 
criação ou armazenamento de peças ornamentais ou de forte simbolis-
mo para o indivíduos, entre outras que sobreviveram ao passar do tem-
FUNDAMENTOS DOS
BANCOS DE DADOS
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
13
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
po, nos permitindo vislumbrar a forma de pensar e do próprio ambiente 
destes humanos antigos (JUSTAMAND, 2019).
Assim, podemos observar que o ato de guardar informações 
com objetivos específicos, muitas vezes individuais, faz parte de uma 
cultura geral humana.
Todavia, como citado, a história humana se iniciou com a es-
crita, uma forma diferenciada de comunicação, em que um ou mais in-
divíduos podem registrar algo em algum material (papel, argila, entre 
outros), permitindo que a ideia escrita, seja transportada, replicada e, 
principalmente, guardada.
Perceba que as citações históricas se referem ao ato de guar-
dar informações de forma geral, todavia, por volta dos anos 70 do sé-
culo XXI, foi desenvolvida uma estratégia eficiente para guardar estas 
informações, os Sistemas Gerenciadores de Banco de Dados, que per-
mitiram a humanidade tratar os dados armazenados para criar soluções 
que nos impactam em muitos setores da vida cotidiana (ELMASRI e 
NAVATHE, 2005, p. 3), como veremos ainda nesta seção. 
Assim, de forma restrita, pode-se dizer que dados podem ser 
armazenados das mais variadas formas, como em livros, porém, foi 
através do uso de meios computacionais que estes dados passaram a 
ser utilizados de formas mais eficiente e prática.
Antes de apresentar a história dos bancos de dados, é preciso 
fazer a definição do que é um dado. Dados podem ser sinônimo de in-
formação ou informações capazes de serem digitalizadas em um com-
putador, possuindo um significado agradado, em que é possível fazer 
inferências diretas ou derivadas a partir de um dado qualquer isolado. 
Vale ressaltar que o termo informação e dados podem aparecer em di-
versas fontes como sinônimos, porém, alguns autores definem ambos 
de forma distinta. Da mesma forma, este trabalho define dados como 
um subtipo de informação, que pode ser representada através de meios 
computacionais.
Desta forma, se destacam os Sistemas Gerenciadores de Ban-
co de Dados (SGBD), sistemas ou conjunto de sistemas, com a res-
ponsabilidade de permitir aos usuários construir e gerenciar bancos de 
dados (ELMASRI e NAVATHE, 2005, p. 3).
14
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
A história dos bancos de dados se mistura com a história das 
redes de computadores e da disseminação do uso de computadores em 
ambientes acadêmicos e de negócios.
Os primeiros SGBDs eram aplicados a sistemas de grande 
porte físico, chamados de mainframes, os quais chegavam a ocupar 
salas inteiras e, até mesmo, todo o prédio onde estavam instalados.
Estes primeiros SGBDs tinham como característica o registro 
de informações através de hierarquias, ou seja, os elementos eram re-
gistrados inserindo todas suas relações em uma mesma estrutura. 
Este tipo de estrutura para quantidade de dados intermediárias 
foi uma solução com certo sucesso, porém, com o aumento da quan-
tidade de dados produzidos e armazenados em computadores, o fato 
deste modelo de registro conter muitos dados similares em diferentes 
estruturas, começou a gerar gargalos de processamento e, principal-
mente, de consumo de espaço, uma vez que os meios de mantimento 
de dados são limitados.
Assim, a partir da década de 70 começaram a surgir modelos 
paralelos, voltados em geral a aplicações distintas e/ou aperfeiçoar os 
modelos anteriores.
O conceito de mainframe não mudou muito nas últimas déca- 
das, porém, deve-se ficar atento, pois os mainframes das décadas de 
60 e 70 eram máquinas muito grandes que consumiam muita energia 
e com poder de processamento, quando comparados a dispositivos 
atuais, baixos. Todavia, os mainframes atuais são compostos de con-
juntos de máquinas com altíssimo poder de processamento de dados, li-
gados geralmente a redes de altíssimas velocidades. Pode-se destacar 
os mainframes da empresa Google, que representam porções elevadas 
do tráfego de dados na rede mundial de computadores.
Desta forma, neste período se destacaram três modelos de 
SGDBs principais, o hierárquico (ainda em uso e sendo aperfeiçoado), 
um modelo baseado em rede e o modelo de arquivos invertidos.
Segundo Elmasri e Navathe (2005, p. 16), por volta dos anos 
80, com o surgimento e popularização das linguagens orientadas a ob-
jeto, foram desenvolvidos novos modelos de SGDBs voltados a este 
paradigma de programação.
15
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Todavia, apesar da rápida popularização dos bancos de dados 
orientados a objeto, um tipo específico de modelo de banco de dados 
prevaleceu como o mais usado em aplicações gerais, com um forte uso 
em serviços web, o modelo relacional.
Surgido por volta dos anos 70, este modelo procurou reduzir 
a quantidade de dados repetidos em um banco através do uso de rela-
ções, todavia, seu uso só se popularizou por volta do final dos anos 80, 
proveniente do desenvolvimento de linguagens de alto nível e da cria-
ção de padrões para a criação dos SGDBs para este modelo (ELMASRI 
e NAVATHE, 2005, p. 16).
Atualmente, os bancos de dados estão presentes em diversas 
áreas, com destaque para o chamado e-commerce, que utiliza técni-
cas avançadas de tratamento de dados para a extração de informações 
úteis, como padrões de compra, perfil, consumo médio, entre outros 
também importantes para empresas que procuram aumentar seu poder 
competitivo e lucro.
MODELOS DE DADOS
A seção anterior tratou de aspectos gerais sobre a história dos 
bancos de dados, citando alguns dos diversos modelos de Gerenciado-
res de Banco de Dados existentes.
Apesar da predominância dos modelos baseados na entidade-
-relacionamento (modelos relacionais de SGDBs), os demais modelos 
ainda encontram papel importantes nos dias atuais.
É indiscutível o tamanho do mercado dosbancos relacionais, 
todavia, é importante atentar para os demais modelos, uma vez que 
estes podem ser usados para aplicações específicas, como o modelo 
orientado a objetos. Assim, indica-se que sejam feitas pesquisas em 
prol de procurar outros modelos além dos apresentados nesta seção, 
procurando ter uma visão geral destes para facilitar projetos futuros 
de desenvolvimento de sistemas que utilizem algum grau de registro e 
manipulação de dados.
16
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Assim, esta seção tratará dos principais modelos de SGDB.
Modelo Hierárquico
Segundo Takai, Italiano e Ferreira (2005, p. 6), o modelo hie-
rárquico surgiu devido à criação dos dispositivos de armazenamento 
endereçáveis de dados, que utilizam os meios físicos para manter os 
dados através de hierarquias bem definidas.
De forma simplista, o modelo hierárquico se baseia na estrutu-
ra de dados árvore, em que cada novo elemento pode gerar uma nova 
ramificação ou ser inserido dentro de uma hierarquia já existente.
Dependendo do tipo de árvore, novos elementos adicionados 
em um ramo existente podem ser inseridos com grau de hierarquia su-
perior a outros elementos previamente inseridos através do uso de pon-
teiros. 
Todavia, esse modelo apresenta alguns problemas ligados à 
inserção de dados duplicados, algo que em grandes volumes de dados 
pode gerar gargalos de acesso e perda das informações.
A Figura 1 apresenta um esquema geral de dados segundo o 
modelo hierárquico.
Figura 1 – Exemplo do modelo hierárquico
Fonte: SIQUEIRA. Acesso em 2020.
Perceba que a Figura 1 apresenta um exemplo de registro de 
venda em uma empresa. Note que a partir do nó RAIZ, o nó hierarquica-
mente abaixo contém o nome do vendedor, cidade e data onde a venda 
foi realizada. 
Logo abaixo do nó citado estão os nós que identificam a quan-
tidade de objetos vendidos, o nome do objeto e o preço total da venda.
Chamemos os últimos nós citados de nós folhas, em que se 
for observado o nó folha mais à esquerda, que apresenta a venda de 
https://sites.google.com/site/uniplibancodedados1/aulas/aula-1---introducao
17
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
15 canetas, note que o nó folha central também é um registro de uma 
venda de canetas.
Assim, para qualquer nova venda de canetas, será feito um 
novo registro na base de dados, repetindo o mesmo objeto.
Apesar do modelo relacional resolver esse problema de repeti-
ções, a simplicidade da implementação do modelo hierárquico o faz ser 
usado em aplicações distintas, como na comunicação entre serviços 
web através de linguagens como o XML e o JSON, linguagens estrita-
mente hierárquicas.
Vale salientar, como citado por Date (1989, p. 79), que cada 
registro é inserido, em geral, com suas dependências, como no exem-
plo apresentado na Figura 1, em que o ato de inserir o objeto vendido 
depende da inserção do local e vendedor, o qual é registrado no mesmo 
momento que o objeto vendido.
O modelo hierárquico possui três operações fundamentais, 
sendo elas: inserção; remoção; e atualização.
O processo de inserção se dá no ato da ocorrência, em que 
os dados podem ser introduzidos, concomitantemente, com as depen-
dências ou sendo incluídos em momento posterior ao da inserção das 
dependências.
De forma simplista, pode-se afirmar que a inserção neste mo-
delo é sempre orientada à demanda, não sendo inseridos dados previa-
mente sem real necessidade.
Por exemplo, se uma empresa vende carros amarelos e ver-
melhos, ela só irá inserir em sua árvore de dependências a cor azul em 
seus registros, caso ocorra uma venda de um veículo desta cor espe-
cífica.
A remoção, de forma semelhante à inserção, se dá por ocor-
rências ou necessidades específicas. 
Usando o exemplo da Figura 1 note que, se a venda das quin-
ze canetas for cancelada, seu segmento superior também é removido. 
Todavia, se a venda do outro conjunto de canetas também for removida, 
resultará na completa exclusão de todos os registros de canetas no sis-
tema, uma vez que as canetas não são previamente registradas.
Por fim, a atualização, como o próprio nome diz, realiza opera-
18
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
ções de modificações nos dados previamente registrados.
Se calcularmos o preço unitário das canetas citadas, encon-
traremos o valor de R$ 3, porém, se a empresa realizar uma oferta 
relâmpago e a venda registrar o valor original de R$ 3, e se for preciso 
em seguida atualizar o valor correto, perceba que para saber o valor 
atual individual da última venda, é preciso fazer uma busca em todos os 
registros em que aparecem caneta para encontrar a data mais recente, 
podendo, assim, recuperar o último valor de venda do produto.
Outro ponto é que se um produto tiver o nome mudado ou caso 
seja preciso alterar alguma informação nos registros, será necessário 
gerar modificações em todas as incidências em que os dados foram 
registrados.
Vale ressaltar que este modelo foi o primeiro modelo reconhe-
cido de SGDB usado massivamente, surgindo com o tempo sistemas 
que procuraram reduzir os problemas citados, bem como o próprio mo-
delo hierárquico desenvolvido para atender às demandas por bancos de 
dados simples nos dias atuais.
Modelo em Rede
O modelo em rede pode ser entendido como uma evolução, ou 
extensão, do modelo hierárquico. Sua principal característica em rela-
ção ao modelo apresentado na seção anterior, é o fato da possibilidade 
de inserção não hierárquica, em que um elemento pode ser usado em 
um ou mais outros registros.
Por exemplo, se numa livraria, o valor da venda da última cane-
ta for registrado com o valor atual na base de dados, além de ser usado 
o preço atual como referência no ato de registro das vendas, também 
permite uma consulta direcionada e mais rápida ao valor aplicado na 
última venda, uma vez que só será preciso consultar o valor em um dos 
registros.
Assim, mesmo que o modelo em redes possua as mesmas 
operações que o modelo hierárquico, esse apresenta vantagens nítidas 
em todas as operações.
A necessidade imediata citada está vinculada ao fato de que os 
dados atualizados ou inseridos poderão ser usados a qualquer momen-
to, não existindo a possibilidade de uso provável. Assim, vender carros 
19
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
azuis implicará no registro desta cor de carro, porém, não vender carros 
amarelos, implicará no não registro prévio deste tipo de carro.
O exemplo citado de inserção já contempla a vantagem de reu-
tilizar dados, porém, também permite que dados sejam inseridos pre-
viamente para usos futuros, mesmo que continuem sendo orientados a 
registros e necessidades imediatas. 
A Figura 2 apresenta um exemplo do modelo em redes.
Figura 2 – Exemplo do modelo em rede
Fonte: Takai, Italiano e Ferreira (2005, p. 7)
Note que a Figura 2 apresenta um exemplo de registro de con-
ta bancária simplificado, com alguns clientes possuindo mais de uma 
conta aberta em seus nomes. 
Assim, o registro da pessoa poderá se vincular a um ou mais 
registros de contas. Este fato retoma as operações no modelo, uma vez 
que atualizar os dados de um cliente não necessitará de mudanças em 
mais de um registro.
Por exemplo, se o cliente mudar de cidade, só será preciso al-
terar essa informação em seu registro, não gerando impactos em seus 
dependentes.
De forma similar, a exclusão de registros é simplificada, uma 
vez que as dependências ou dependentes podem ser identificados de 
20
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
forma mais simples que no modelo hierárquico.
Modelo Orientado a Objetos
O modelo orientado a objetos foi introduzido procurando aten-
der demandas advindas do paradigma de orientação a objetos. Além do 
exposto, nos anos iniciaisa seu surgimento, muitos de seus adeptos 
pensaram que este modelo seria um concorrente direto ao modelo re-
lacional.
Uma de suas principais características em relação ao modelo 
relacional é a inserção de conceitos como encapsulamento, herança, mo-
delos abstratos de dados, entre outros advindos da orientação a objeto.
Todavia, Elmasri e Navathe (2005, p. 16), apresentam fatos 
que explicam o motivo pelo qual os bancos orientados a objeto não 
serem amplamente usados atualmente, sendo eles a complexidade do 
modelo e a falta de padrões nos primeiros anos após seu surgimento, 
sendo atualmente aplicados principalmente em sistemas especialistas.
Modelo Relacional
Buscando resolver problemas existentes nos modelos hierár-
quicos e em redes, surgiu ainda por volta dos anos 70, o modelo rela-
cional.
Este modelo procurou, entre outros meios, dar maior indepen-
dência aos dados, desenvolver uma forma sistematizada de reuso de 
dados, facilitar a manutenção de bancos complexos e se basear em re-
gras matemáticas bem fundamentadas a fim de padronizar os métodos 
de gerenciamento dos dados, se tornando mais flexível para as diversas 
aplicações que estavam surgindo e demandando gerencias dos dados 
(TAKAI, ITALIANO e FERREIRA, 2005, p. 8).
Assim, tomando por base conceitos da lógica de primeira or-
dem (modelo em que os dados de diferentes formatos, como números, 
texto, entre outros, são processados através de regras de tratamento 
que derivam e expandem a lógica booleana, que só utiliza números 
como entradas) e outros fundamentos da álgebra e teoria dos conjun-
tos, foi criado um conceito na ciência da computação denominado álge-
bra relacional, pelo qual se dá a fundamentação dos padrões de geren-
ciamento de dados no modelo relacional.
Além do exposto, e como o nome do modelo cita, as relações 
são uma das principais características do modelo, o qual também é 
composto de operações de inserção, exclusão e alteração, porém, ex-
pande consideravelmente, em relação aos modelos que o precederam 
21
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
e à forma de manipulação dos dados.
Nas seções seguintes será abordado o modo como se dá a es-
trutura básica de um registro, os tipos de relacionamento, os conceitos 
gerais do diagrama de entidade-relacionamento, bem como um estudo 
de caso para exemplificar o modelo.
ENTIDADES E ATRIBUTOS
O modelo relacional define terminologias específicas no tra-
tamento dos dados, em que até o momento utilizamos termos como 
registros e valores para identificar os dados em um banco de dados.
Neste sentido, o modelo relacional define termos padronizados 
de dados, sendo alguns dos principais as entidades, os relacionamen-
tos e os atributos.
Uma entidade pode ser entendida como um registro, ou um 
objeto na base de dados. Um relacionamento é a forma como as entida-
des se conectam e trocam dados e, por fim, os atributos são os dados 
presentes nas entidades.
Assim, registrar uma compra em um SGDB se dá em forma de 
entidades. As informações do produto, data, vendedor, entre outros, são 
os atributos e, por fim, a relação é a forma como o SGDB gerencia o 
fato dos produtos, vendedores e vendas serem entidades com atributos 
próprios que se relacionam.
TIPOS DE RELACIONAMENTO
Esta seção abordará de forma simplificada os tipos de relacio-
namento no modelo relacional, sendo eles dos tipos: 1 para 1 (1:1); 1 
para n (1:n); e n para n (n:n).
Apesar dos três exemplos citados, cada tipo possui derivações, 
em que são aplicadas regras distintas.
É preciso citar, primeiramente, que cada entidade é represen-
tada por uma estrutura chamada de tabela, que é composta de linhas 
denominadas tuplas, colunas denominadas de atributos e atributos 
identificadores únicos das entidades chamados de chaves.
Assim, os relacionamentos se dão entre as tabelas através de 
quantidades de interações entre seus objetos. Estas quantidades cita-
das são chamadas de cardinalidade.
Por exemplo, os dados apresentados na Figura 2, onde um 
cliente de um banco poderia possuir uma ou mais contas. Note que uma 
22
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
conta, por sua vez, só poderia estar vinculada a uma pessoa.
Assim, a relação se dá no tipo 1:n, em que um cliente pode ter 
até n contas, com n sendo maior que 0, obrigatoriamente.
Assim, perceba que a relação entre o cliente e a quantidade de 
contas será de:
1,1 para 1,n
Caso ao cliente fosse permitido fazer o cadastro no banco sem, 
necessariamente, abrir uma conta, sua relação seria de:
1,1 para 0,n
Perceba que o uso das vírgulas no relacionamento define a 
quantidade mínima de objetos na relação, assim, 1,1 significa que um 
e, unicamente, um cliente poderá ter de zero até infinitas contas abertas 
(0,n), como mostrado no exemplo acima.
Assim, o valor antes da vírgula define o número mínimo de ob-
jetos na relação, e o segundo valor define o número máximo, bem como 
é o identificador da relação.
Por exemplo, a relação 1,n para 0,1 é do tipo n:1, uma vez que 
os últimos valores presentes em cada relação, respectivamente, são o 
n e o 1.
A Figura 3 apresenta um esquema geral com todas as combi-
nações para cada relação.
Note que existem três regras de implementação, tabela pró-
pria, adição de coluna e fusão de tabelas, que podem ser aplicadas de 
formas obrigatória, facultativa e proibida.
Tabela própria significa que, após a relação, cada entidade 
mantém suas próprias tabelas independentes. 
23
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Figura 3 – Combinações das relações
Fonte: Heuser (1998, p. 105).
24
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Cada entidade deve ser constituída de um ou mais identifica-
dores chamados de chaves primárias, que quando são referenciadas 
em outras tabelas, passam a se chamar chaves estrangeiras.
Assim, a adição de coluna significa que uma das entidades 
deverá receber a chave primária da outra em sua tabela como chave 
estrangeira.
Por fim, a fusão de tabelas é quando ambas tabelas geram 
uma nova tabela identificada por suas respectivas chaves e podendo 
conter outros atributos. 
Este tipo de tabela gerada pela relação de duas ou mais outras 
entidades, gera as chamadas entidades fracas, entidades que não pos-
suem chave primária. Por sua vez, as entidades que fornecem as cha-
ves primárias para identificação das entidades fracas, são chamadas de 
entidades fortes (ELMASRI e NAVATHE, 2005, p. 16).
Assim, dão-se os relacionamentos e seus conceitos fundamen-
tais, os quais serão explorados nos capítulos seguintes.
DIAGRAMA ENTIDADE-RELACIONAMENTO 
Um Diagrama Entidade-Relacionamento (DER) é uma estrutu-
ra que permite uma visualização da estrutura de um banco, sendo com-
posto de elementos como retângulos, losangos, círculos, entre outros 
elementos.
Diferentes autores e ferramentas apresentam diferenças nes-
tes elementos, como no caso dos atributos, que podem ser representa-
dos por pequenos círculos com o nome do atributo dentro ou fora, bem 
como com as chaves primárias representadas por círculos coloridos ou 
pelo nome do atributo sublinhado.
De forma geral, os elementos principais são:
• Retângulos: representam as entidades;
• Losangos: representam os relacionamentos;
• Círculos sem preenchimento de cor: atributos normais;
• Círculos com preenchimento: atributo chave (chave primária).
25
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
A cardinalidade se dá entre os relacionamentos com os valores 
representados dentro de parênteses.
Além da representação através de elementos geométricos, o 
modelo também prevê a representação textual destes mesmos elemen-
tos. A seguir será apresentado um estudo de caso onde serão expostas 
ambas as visualizações.
A Figura 4 apresenta um DER para o exemplode um sistema 
de venda simplificado.
Figura 4 – Exemplo de DER 
Fonte: Elaborado pelo autor (2020).
Perceba que uma venda é consolidada no sistema ao ser inse-
rido um conjunto maior que um de objetos a um vendedor, identificado 
pela cardinalidade apresentada próximo da relação (venda).
A entidade Produtos é composta por quatro atributos, sendo 
eles: id (chave primária), preço última venda, nome e preço atual, po-
dendo a venda ser composta por um ou mais produtos.
Por sua vez, a entidade Vendedor é composta por apenas um 
26
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
atributo, o qual, também, é o atributo chave, sendo permitido apenas um 
vendedor para cada venda.
A relação Venda é composta por quatro atributos, sendo uma 
entidade fraca, não possui atributo chave, sendo identificada pelas cha-
ves estrangeiras produtos e vendedor, bem como os atributos data da 
venda e valor da venda.
Assim se dá a relação no DER. Por sua vez, o diagrama ER 
também prevê a estruturação textual dos elementos, sendo as entida-
des representadas por textos diretos seguidos por atributos apresenta-
dos dentro de parênteses. Por fim, as chaves primárias são apresenta-
das com sublinhado e as chaves estrangeiras recebem uma descrição 
referenciando a entidade de origem.
A Figura 5 apresenta um exemplo da visualização textual do 
DER. Note que a relação também é apresentada.
Figura 5 – Exemplo de DER textual
Produtos (ID Produto, Preço última venda, Preço atual, Nome)
Vendedor (ID Vendedor)
Venda (Data da venda, Valor da venda, ID Vendedor, ID Produto)
 ID Vendedor Referencia Vendedor
 ID Produto Referencia Produtos
Fonte: Elaborado pelo autor (2020).
Note que as linhas 4 e 5 do texto dos elementos do DER repre-
sentam os atributos chaves estrangeiras e suas respectivas entidades.
Assim, concluímos a apresentação dos fundamentos dos ban-
cos de dados.
Filme sobre o assunto:
A REDE SOCIAL. Dirigido por David Fincher. Estados Unidos: 
Relativity Media e Trigger Street Productions, 2010. 1 DVD.
Acesse os links: 
REIS, Fábio dos. 1 Vídeo (13 min). 10 Conceitos de Bancos 
de Dados que todo estudante precisa conhecer. Publicado pelo canal 
27
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Bóson Treinamentos, 2019. Disponível em: <https://www.youtube.com/
watch?v=2E7crqRI1iE>. Acesso em 17 ago. 2020.
REIS, Fábio dos. 1 Vídeo (20 min). Modelagem de Dados: Con-
ceitos de Bancos de Dados. Publicado pelo canal Bóson Treinamentos, 
2017. Disponível em: <https://www.youtube.com/watch?v=Q_KTYFg-
vu1s>. Acesso em 17 ago. 2020.
28
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
QUESTÕES DE CONCURSOS
QUESTÃO 1
Ano: 2020 Banca: IBADE Órgão: Pref Vila Velha Prova: Analista 
Uma das estruturas de bancos de dados é a que tem o formato co-
nhecido por “árvore”. Nessas estruturas, cada registro tem apenas 
um possuidor. Esse modelo é chamado:
a) hierárquico.
b) indexado.
c) block chain.
d) relacional.
e) sequencial.
QUESTÃO 2
Ano: 2019 Banca: VUNESP Órgão: CM Piracicaba Prova: Adminis-
trador de Rede 
Sobre o modelo hierárquico de bancos de dados, é correto afirmar 
que
a) um registro não pode ser pai de mais de um registro filho.
b) um registro pai pode ter relacionamento com, no máximo, 3 registros 
filhos.
c) um registro do tipo raiz só pode ter relacionamento com um único 
registro filho.
d) um registro do tipo raiz não participa como registro filho em qualquer 
relacionamento.
e) o campo de um registro filho admite apenas tipos de dados inteiros.
QUESTÃO 3
Ano: 2018 Banca: CEBRASPE (CESPE) órgão: CGM João Pessoa 
Prova: Auditor Municipal de Controle Interno
A respeito de bancos de dados, julgue o item a seguir.
Nos bancos de dados construídos sob a concepção do modelo 
hierárquico, os dados são estruturados em hierarquia ou árvores 
cujos nós contêm ocorrências de registros, e cada registro consis-
te em uma coleção de atributos.
( ) Certo
( ) Errado
QUESTÃO 4
Ano: 2018 Banca: CEBRASPE (CESPE) Prova: Oficial Técnico de 
Inteligência
A respeito de sistemas gerenciadores de banco de dados, julgue o 
29
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
próximo item.
Em um sistema hierárquico, o servidor que recebe pedidos de con-
sultas e distribui essas consultas para origens de dados remotas é 
denominado servidor hierárquico.
( ) Certo
( ) Errado
QUESTÃO 5
Ano: 2018 Banca: VUNESP Órgão: Prova: Analista de Sistemas 
Em um modelo hierárquico de dados, 
a) cada registro, com exceção da raiz, participa como filho em pelo me-
nos dois relacionamentos. 
b) cada registro sempre participa como folha e como pai em dois rela-
cionamentos. 
c) um registro pode participar como pai em apenas um relacionamento.
d) um registro que não participe como pai em qualquer relacionamento 
é denominado folha. 
e) um registro que não participe como folha em qualquer relacionamen-
to é denominado esquema.
QUESTÃO DISSERTATIVA– DISSERTANDO A UNIDADE
Uma empresa deseja desenvolver um registro de clientes para criação 
de um sistema de premiação por fidelidade, por isso irá gameficar a 
pontuação e a evolução dos clientes dentro do sistema, oferecendo 
descontos e produtos personalizados para certos níveis de pontos acu-
mulados.
Assim, a empresa o procurou para que desenvolver esta base de da-
dos, que irá interagir com um programa escrito em html, Java script, php 
e pyton, para análise dos dados.
Assim, é esperado que você desenvolva um diagrama entidade- relacio-
namento para descrever os elementos que irão compor o banco, com 
os programadores ficando encarregados de implementá-lo no sistema.
Após criar o diagrama, descreva seu funcionamento através de um tex-
to dissertativo argumentativo, em que será descrita a motivação para os 
elementos que estão presentes no diagrama, com o texto tendo entre 
5 e 10 páginas, podendo conter imagens para melhor elucidação das 
escolhas.
DICA 1: Para o desenvolvimento do diagrama, existem diversas ferra-
mentas gratuitas na internet, sendo indicado, não prioritariamente, o site 
draw io, onde poderão ser encontrados os elementos necessários para 
a criação dos diagramas, sendo necessárias contas de terceiros para 
30
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
salvar os diagramas em nuvens, como o google drive.
DICA 2: Um banco como este deverá possuir tabelas para os clientes, 
para os produtos comercializados, bem como, para registrar as com-
pras e o sistema de pontuação.
DICA 3: Atente para o uso das chaves primárias em todas as tabelas, 
salvo as entidades fracas, como por exemplo, uma tabela para conter 
as vendas formadas pela relação entre as entidades fortes das tabelas 
clientes e produtos, cabendo ao aluno definir e justificar quais são os 
atributos de cada tabela.
TREINO INÉDITO
Assunto: Modelo Hierárquico
O modelo hierárquico foi um dos principais modelos utilizados durante 
o surgimento dos SGDBs, sendo considerado o primeiro modelo criado. 
Apesar da evolução através de outros modelos, o modelo hierárquico 
ainda é utilizado, pois possui as seguintes vantagens:
a) É ideal para modelos de bancos de dados grandes e complexos.
b) Este modelo é baseado na álgebra relacional, algo que permite uma 
boa padronização para os desenvolvedores.
c) É indicado para sistemas embarcados, pois é compatível com o pa-
radigma estruturado.
d) Por ser simples de se desenvolver, é indicado para operações com 
bancos pequenos, como na comunicação entre páginas web.
e) Tem como vantagem ser leve e de fácil implementação, porém, foi 
completamente substituído pelo modelo em redes, não existindo aplica-
ções que façam uso dele atualmente.
NA MÍDIA
PROTOCOLO GRIT PERMITE TRANSAÇÕES DISTRIBUÍDAS EM MI-
CROSERVICES DE MÚLTIPLOS BANCOS DE DADOS
Na Conferência Internacional da IEEE sobreEngenharia de Dados 
(ICDE) 2019, os engenheiros do eBay apresentaram um documento so-
bre um protocolo para transações distribuídas ACID usando múltiplas 
bases de dados, GRIT. O suporte a vários bancos de dados é essencial 
para permitir o uso do GRIT a microservices, que geralmente são imple-
mentados em diferentes idiomas e podem usar vários bancos de dados 
subjacentes.
Em ambientes que envolvem vários bancos de dados independentes, 
o protocolo tradicional two-phase commit (2PC) era essencialmente a 
31
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
única opção para transações distribuídas pelo sistema sem esforço adi-
cional na aplicação. No entanto, não funciona bem em uma plataforma 
que precisa escalar, devido aos longos caminhos de potencialmente 
muitos participantes coordenando e ao bloqueio necessário ao longo 
das fases. Por outro lado, o uso de um log de transações executado 
por uma estrutura como o Saga incorrerá em lógica de compensação 
complexa por aplicativos e poderá ter implicações nos negócios devido 
a transações parcialmente bem-sucedidas irreversíveis.
Fonte: InfoQ
Data: 19/12/2019
Leia a notícia na íntegra: <https://www.infoq.com/br/news/2019/12/
eBay-grit-multidb-transactions/>.
NA PRÁTICA
A VIDA E OS DESAFIOS DE UMA DBA
Trata-se de entrevista realizada com a convidada Danielle Monteiro, 
que é mestre em Engenharia da Computação, Microsoft MVP e Mon-
goDB Female Innovator, além de colunista da própria revista iMasters.
Danielle começou a trabalhar com tecnologia no segundo semestre da 
faculdade. Era desenvolvedora e, apesar de adorar o que fazia, alega 
que a transição para a área de dados foi natural. Quando conheceu o 
SQL Server 2005, se apaixonou! Hoje, ela trabalha com arquitetura de 
dados e participa de diversas comunidades, ministra treinamentos, es-
creve artigos e mantém um blog, o DB4Beginners.com.
Nesta entrevista, ela fala mais sobre a atuação dos arquitetos de ban-
cos de dados, a (às vezes conturbada) relação desses profissionais 
com desenvolvedores e sobre o mercado em questão.
Confira abaixo uma das perguntas e respostas da entrevista realizada.
Revista iMasters: Como arquiteta de dados, qual é o seu maior desafio 
quando falamos da dificuldade de gerir essa enorme quantidade infor-
mações?
Daniele Monteiro: São vários os desafios. O maior deles é ter governan-
ça de dados e agilidade (ao mesmo tempo e em igual proporção). Outro 
é conhecer a linhagem dos dados mesmo tendo uma quantidade enor-
me de sistemas e integrações; também é importante (e difícil) garantir 
a segurança e integridade em bancos de dados NoSQL. E por fim, mas 
não menos importante, estar aderente às leis cada vez mais rígidas, 
como a GDPR e a Lei Geral de Proteção de Dados.
Fonte: CARDOSO, Rodrigo. A vida e os desafios de uma DBA. iMas-
ters. 27 nov. 2018. Disponível em: <https://imasters.com.br/banco-de-
-dados/vida-e-os-desafios-de-uma-dba>. Acesso em 18 ago. 2020.
32
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S UM BREVE CONTEXTO DA ÁLGEBRA RELACIONAL
Esta seção procurará apresentar de formas direta e simplifica-
da uma visão geral sobre a álgebra relacional citada no capítulo ante-
rior, procurando relacionar as operações com a linguagem aplicada nos 
SGDBs baseados no modelo relacional, chamada de SQL.
A álgebra relacional pode ser definida como uma linguagem de 
consulta e alteração formal, composta por um conjunto sequencial de 
expressões de alto nível sobre relações que produzem novas relações, 
em que sua principal função é sustentar a fundamentação teórica para o 
estudo de linguagens de consulta de bancos de dados relacional, como 
o mencionado SQL.
A álgebra relacional é composta por dois tipos de expressões, 
as primitivas – seleção, projeção, produto cartesiano, união e diferença 
– e derivadas – interseção, junção e divisão (DATE, 1989, p. 78).
INTRODUÇÃO À
LINGUAGEM SQL
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
33
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
A seguir será apresentada, isoladamente, cada uma das ex-
pressões.
Seleção (σ)
A seleção é uma operação que recebe uma única entrada 
(unária) descrita como σφ(R), onde φ é uma fórmula hipoteticamente 
verdadeira definida através da utilização de operadores de comparação 
(=, <=, >, >=, ≠), podendo ou não conter operadores lógicos como ˄(e), 
˅(ou) e ¬(negação), resultando na seleção de todas as tuplas de R que 
possuam a premissa φ como verdade (TAKAI, ITALIANO e FERREIRA, 
2005, p. 49).
Se considerarmos uma tabela que contém um conjunto de 
clientes associados a um clube, identificados pelos atributos nome, so-
brenome, ano de associação e sexo, se for necessário identificar todos 
os sócios do sexo masculino que se associaram antes de 2018, por 
exemplo, deve ser aplicada a seguinte expressão:
σAno<2018˄Sexo=‘M’(Cliente)
As tabelas 1, 2 e 3 apresentam, respectivamente, a tabela ori-
ginal, a aplicação da expressão e a tabela resultante.
Tabela 1 – Dados originais (Seleção)
Nome Sobrenome Ano de entrada Sexo
Fabio Filho 2019 M
João Augusto 2013 M
Maria Fernandes 2011 F
Rita Melo 2020 F
Fonte: Elaborado pelo autor (2020).
Tabela 2 – Expressão aplicada (Seleção)
Nome Sobrenome Ano de 
entrada
Sexo σAno<2018˄Sexo=‘M’(Cliente)
Fabio Filho 2019 M F
João Augusto 2013 M V
Maria Fernandes 2011 F F
Rita Melo 2020 F F
Fonte: Elaborado pelo autor (2020).
34
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Tabela 3 – Dados resultantes (Seleção)
Nome Sobrenome Ano de entrada Sexo
João Augusto 2013 M
Fonte: Elaborado pelo autor (2020).
Projeção (π)
A projeção é uma operação que recebe apenas uma entrada 
(unária) descrita como: 
π(a1,…,an)(R)
Onde a1,…,an é o conjunto de atributos pertencentes a R e o 
resultado é um novo conjunto contendo as tuplas de R que são restritas 
ao conjunto a1,…,an.
Assim, uma tabela com dados quaisquer, a projeção será dada 
pela indicação de quais elementos deverão ser mantidos na nova tabe-
la. A fim de visualizar um exemplo de projeção, vide tabelas 4 e 5, que 
representam, respectivamente, a tabela original e a tabela projetada 
(TAKAI, ITALIANO e FERREIRA, 2005, p. 50).
Tabela 4 – Dados originais (Projeção)
Nome Sobrenome Telefone
André Franco 11111-1111
Luiza Franco 22222-2222
Margarete Garcia 33333-3333
Fonte: Elaborado pelo autor (2020).
Sobre os dados da tabela 4, é aplicada a expressão:
πNome, Telefone (NomeTabela)
Com nome Dados Originais sendo o nome fictício dado a Tabe-
la 4 e o resultado da projeção sendo apresentado na Tabela 5.
35
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Tabela 5 – Dados resultantes (Projeção)
Nome Telefone
André 11111-1111
Luiza 22222-2222
Margarete 33333-3333
Fonte: Elaborado pelo autor (2020).
Note que as colunas que permaneceram foram indicadas na 
expressão citada acima.
Produto Cartesiano (×)
O produto cartesiano é uma operação que recebe duas ou 
mais relações como entrada, descritas como:
(R1)×...×(Rn)
Onde R1, …, Rn são as relações, cujo resultado é composto 
por um outro conjunto contendo todas as combinações possíveis entre 
as tuplas contidas nas relações (ELMASRI e NAVATHE, 2005, p. 44). 
Assim, a quantidade de tuplas geradas é exatamente o produto 
entre as tuplas de entrada.
As Figuras 6, 7 e 8 representam, respectivamente, uma tabela 
chamada cadastro de cliente, operações de pedidos e o produto carte-
siano entre ambos.
Tabela 6 – Tabela Cadastro (Produto cartesiano)
Nome Código
Marcos 1
Priscila 2
Fonte: Elaborado pelo autor (2020).
Tabela 7 – Tabela Pedido (Produto cartesiano)
Número Valor
1 R$100 
2 R$150 
Fonte: Elaborado pelo autor (2020).
36
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Tabela 8 –Dados resultantes (Produto cartesiano)
Cliente.Número Clientte.Nome Pedido Número Pedido.Valor
1 Marcos 1 R$100 
1 Marcos 2 R$150 
2 Priscila 1 R$100 
2 Priscila 2 R$150 
Fonte: Elaborado pelo autor (2020).
União (∪)
Segundo Costa (2009, p. 36), diferente das expressões ante-
riores, a união é uma operação que somente pode ser executada sobre 
duas relações, ditas compatíveis, ou seja, que devem possuir mesmo 
grau (ou número de colunas), descrito como: 
(R1) ∪ (R2)
O resultado esperado é a união das duas relações subtraindo 
as duplicidades na nova relação gerada.
Para exemplificar, tomemos por base a tabelas 9 - Funcioná-
rios, tabela 10 - Clientes e tabela 11, que representa a união das duas 
tabelas supracitadas.
Tabela 9 – Tabela Funcionários (União)
Nome CPF
Alfredo 000.000.000-00
Diego 111.111.111-11
Flavia 222.222.222-22
Fonte: Elaborado pelo autor (2020).
Tabela 10 – Tabela Clientes (União)
Nome CPF
Alfredo 000.000.000-00
Bianca 333.333.333-33
Diego 444.444.444-44
Loiza 555.555.555-55
Fonte: Elaborado pelo autor (2020).
37
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Tabela 11 – Resultado da expressão (União)
Nome CPF
Alfredo 000.000.000-00
Diego 111.111.111-11
Flavia 222.222.222-22
Bianca 333.333.333-33
Diego 444.444.444-44
Loiza 555.555.555-55
Fonte: Elaborado pelo autor (2020).
Diferença (-)
Assim como na união, a diferença necessita de duas relações 
compatíveis, com a expressão definida como:
(R1) - (R2)
Essa expressão resulta na diferença de R1 em relação a R2, 
ou seja, tudo que há em R1 e que não existe em R2 (COSTA, 2009, p. 
39).
Tomemos por base os dados apresentados nas tabelas 9 e 10, 
em que a expressão de diferença será aplicada, com os dados resultan-
tes apresentados na tabela 12.
Tabela 12 – Resultado da expressão (Diferença)
Nome CPF
Diego 111.111.111-11
Flavia 222.222.222-22
Fonte: Elaborado pelo autor (2020).
Interseção (∩)
A interseção necessita de duas relações compatíveis de entra-
da e é definida pela seguinte expressão: 
(R1) ∩ (R2)
A resultante da expressão acima é uma nova relação que pos-
38
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
sui as tuplas que são pertencentes a R1 e R2, simultaneamente, ou 
seja, tudo que há em R1 e R2 ao mesmo tempo (TAKAI, ITALIANO e 
FERREIRA, 2005, p. 53).
De forma similar a representação exemplificada na tabela 12, 
os dados que serão utilizados como base para a aplicação da interse-
ção estão presentes nas tabelas 9 e 10, em que a resultante da expres-
são está presente na tabela 13.
Tabela 13– Resultado da expressão (Interseção)
Nome CPF
Alfredo 000.000.000-00
Fonte: Elaborado pelo autor (2020).
Junção (⨝)
A junção necessita de duas relações de entrada e é definida 
como:
(R1)⨝<condição>(R2)
Onde R1 e R2 são as relações de entrada e <condição> é uma 
condição hipoteticamente verdadeira que resulta em uma nova relação 
que possui a junção das tuplas de R1 e R2 de acordo com a condição, 
ou seja, concatena as tuplas (COSTA, 2009, p. 43).
As tabelas 6 e 7 serão usadas como referência para a apli-
cação da junção, em que o resultado da expressão está presente na 
tabela 14.
Tabela 14 – Tabela Cadastro (Junção)
Nome Código Número Valor
Marcos 1 1 R$100 
Priscila 2 2 R$150 
Fonte: Elaborado pelo autor (2020).
Divisão (/)
A divisão necessita de duas relações de entrada, sendo defini-
da pela expressão:
R1/R2
39
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
O resultado desta expressão é uma nova relação contendo as 
tuplas em R1 que possuam todas as combinações em R2. (TAKAI, ITA-
LIANO e FERREIRA, 2005, p. 58). 
Por exemplo, se for necessário saber quais alunos, presentes 
em uma tabela com suas respectivas classes matriculadas, estão ma-
triculados em uma base de dados quaisquer ao mesmo tempo, teremos 
três conjuntos de operações: a tabela de entrada, a restrição e a saída 
contendo os dados restringidos.
Tomemos por base a os dados apresentados nas tabelas 15 e 
16, os quais, apresentem, respectivamente, um registro de alunos por 
disciplinas e uma tabela para uso da divisão, onde será baseada nas 
disciplinas. Assim, a tabela 17 apresenta o resultado da expressão so-
bre as tabelas citadas.
Tabela 15 – Tabela Aluno (Divisão)
Nome Disciplina
Luciano Banco de dados
Michael Programação estruturada
Teddy Orientação a objetos
Luiz Programação estruturada
Fonte: Elaborado pelo autor (2020).
Tabela 16 – Tabela Divisão (Divisão)
Disciplinas
Programação estruturada
Orientação a objetos
Fonte: Elaborado pelo autor (2020).
Tabela 17 – Resultado da expressão (Divisão)
Nome
Luciano 
Fonte: Elaborado pelo autor (2020).
Neste capítulo, as seções seguintes apresentarão conceitos da 
aplicação da álgebra relacional através da linguagem de manipulação 
de banco de dados SQL, apresentando como se dá a criação dos ban-
cos, tabelas, entre outros conceitos vinculados.
40
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
CRIANDO UM BANCO DE DADOS
Para criar um banco de dados, deve-se primeiramente definir 
o SGBD que permitirá criar e utilizar um banco de dados, existindo di-
versas opções livres ou proprietárias, como o PostgresSQL, Firebird, 
MySQL, Oracle, entre outros. 
A linguagem SQL é utilizada em todos os SGDBs citados, uma 
vez que uma das premissas da linguagem é definir um padrão global de 
manipulação de dados, objetivando a simplicidade e facilidade de uso.
A sintaxe básica para a criação de um banco de dados é 
definida pela seguinte expressão:
CREATE DATABASE nome da base de dados
O comando CREATE DATABASE é responsável por “dizer” ao 
SGBD que estamos criando uma nova base de dados, com o nome des-
ta base inserido logo em seguida (BEIGHLEY, 2010, p. 16).
CRIANDO TABELAS
Tipos de dados
Antes de iniciar a criação de tabelas em um banco de dados, 
deve-se ter em mente os tipos de dados a serem utilizados para que o 
banco seja o mais eficiente e leve possível. 
Esse fato irá influenciar diretamente no tempo de resposta du-
rante uma consulta ou até mesmo uma inserção mais complexa 
Dentre os tipos de dados básicos para os atributos de uma 
tabela, pode-se destacar os (ELMASRI e NAVATHE, 2005, p. 150-151):
• Números
- Inteiro (INT): é o tipo que armazena números inteiros variando 
de -231 a 231-1; 
- Reais (REAL): é o tipo que armazena números reais variando 
de -3,40E+38 a 3,40E+38.
41
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
• Lógicos
- Bool: é o tipo que armazena valores lógicos como ‘TRUE” 
(VERDADEIRO) e ‘FALSE’ (FALSO).
• Cadeias de caracteres
- Char (n): é o tipo de dados que armazena cadeias de caracte-
res e n representa o número máximo de caracteres permitidas, note que 
esta quantidade será sempre fixa e caso não seja totalmente preenchi-
da o SGBD automaticamente preencherá o restante como vazio. 
- Varchar (n): assim como o char este tipo armazena uma ca-
deia de caracteres onde n é o tamanho máximo, diferindo apenas que 
o varchar armazenará no banco apenas a quantidade de caracteres 
inseridas pelo usuário.
• Datas e Horas
- Date: é o tipo que armazena uma data no formato YYYY-MM-
-DD variando de ‘1000-01-01’ a ‘9999-12-31’. 
- Time: é o tipo que armazena horas no formato hh:mm:ss va-
riando de ‘-838:59:59’ a ‘838:59:59’.
Criação de tabelas
Para criar novas tabelas em um banco de dados, a sintaxe do 
comando utilizado em SQL será a seguinte, apresentada na Figura 6:
Perceba que primeiramente se deve inserir o comando CREA-
TE TABLE, como descrito, seguido do nome que se quer dar a nova 
tabela. Em seguida, entre os parênteses serão criadas as colunas se-
guidas de seus respectivos tipos, separando cada um destes atributos 
por vírgulas e finalizando fechando os parênteses e incluindo o ponto e 
vírgula ao final do comando (ELMASRI e NAVATHE, 2005, p. 150):Figura 6 – Exemplo da sintaxe de criação de tabelas com SQL
CREATE TABLE nome_da_tabela 
 (coluna1 tipo1 , 
 coluna2 tipo2 , 
 … … , 
 colunan tipon) ;
Fonte: Elaborado pelo autor (2020).
42
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Chaves primárias e estrangeiras
O assunto desta seção já foi abordado no capítulo 1, porém, 
será retomado de forma mais prática em relação à linguagem SQL.
As chaves primárias e estrangeiras são definidas para manter 
o banco de dados e as tabelas bem organizadas e buscando a fácil 
manipulação dos dados (HEUSER, 1998, p. 88). 
Assim, toda tabela (entidade) deverá possuir uma chave pri-
mária que pode ser definida como uma identidade única e particular de 
cada tupla da relação.
Por exemplo, o Cadastro de Pessoa Física (CPF) é um código 
único para cada pessoa no Brasil e nunca poderá se repetir em uma 
mesma tabela, característica essa que define uma chave primária.
Além do exposto, outra característica fundamental das chaves 
primárias é o fato de não poderem ser nulas e cada tupla deve possuir 
uma e somente uma chave (ELMASRI e NAVATHE, 2005, p. 141).
A criação de uma chave primária se dá ao criar uma tabela, 
podendo ser incrementada automaticamente ou não de acordo com a 
sintaxe apresentada na Figura 7.
Figura 7 – Sintaxe das chaves primárias
CREATE TABLE nome_da_tabela 
 (coluna1 tipo1 , 
 coluna2 tipo2 ,
 … … , 
 colunan tipon PRIMARY KEY <AUTOINCRE-
MENT>); 
Fonte: Elaborado pelo autor (2020).
Perceba que em relação à criação de uma tabela, a enésima 
coluna possui logo após o tipo, a identificação que este atributo é uma 
chave primária, conhecida como atributo chave, em que após o código 
PRIMARY KEY é adicionado o comando facultativo de autoincremento 
deste atributo. Desta forma, quando novos elementos forem inseridos 
nesta tabela, o SGDB será responsável por valorar o atributo incremen-
talmente a cada nova entrada.
Note que a chave primária deve conter um valor único, desta 
forma, o limite de objetos dentro de cada tupla será definido pelo tipo do 
atributo, o qual, geralmente é INT. 
43
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Apesar de normalmente serem usados números para 
representar uma chave primária, existem casos em que outros tipos de 
dados podem ser usados, como por exemplo o CPF, o qual em muitos 
bancos que o utilizam como chave, ele é do tipo char, uma vez que os 
pontos que separam as cadeias de números do CPF não podem ser 
representados numericamente.
Por sua vez, as chaves estrangeiras de forma similar às cha-
ves primárias, são indispensáveis para a organização de um banco, 
pelo qual através destas as relações podem manter uma ‘ligação’ umas 
com as outras, referenciando as chaves primárias. Todavia, nem toda 
tabela necessitará possuir uma, como apresentado por Elmasri e Nava-
the (2005, p. 141). 
Assim como a chave primária, uma chave estrangeira é 
representada durante a criação da tabela seguindo sua própria sintaxe, 
como pode ser visto na Figura 8.
Figura 8 – Sintaxe das chaves estrangeira
CREATE TABLE nome_da_tabela 
 (coluna1 tipo1 , 
 coluna2 tipo2 ,
 … … , 
 colunan tipon , 
 FOREIGN KEY (coluna2) REFERENCES outra_tabe-
la(chave) );
Fonte: Elaborado pelo autor (2020).
Perceba que após a inserção de todas as colunas/atributos, 
uma ou mais linhas são inseridas para referenciar as chaves estrangei-
ras. No exemplo da sintaxe na Figura 8, a chave estrangeira é a coluna 
2, com o termo outra_tabela sendo substituído pelo nome da tabela, e 
44
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
o termo chave substituído pelo nome da chave primária desta tabela 
referenciada, criando assim a vinculação desta chave de outra tabela 
ao atributo chave estrangeira.
MANIPULANDO TABELAS
Inserção
Uma vez criada as tabelas, o próximo passo é povoá-las, ou 
seja, inserir e manipular os dados inseridos. Assim, como na criação 
do banco e das tabelas, existe uma sintaxe definida para a inserção de 
elementos em uma tabela.
A sintaxe básica é composta dos comandos INSERT INTO e 
VALUES. O primeiro comando citado é responsável por identificar a ta-
bela onde os dados serão inseridos e o VALUES, identifica os valores a 
serem inseridos na tabela (TAKAI, ITALIANO e FERREIRA, 2005, p. 70). 
Em relação aos valores, a sintaxe permite que dados especí-
ficos possam ser inseridos em determinados atributos através da des-
crição direta do atributo entre aspas simples, seguido do valor a ser 
inserido após uma vírgula.
A Figura 9 apresenta um exemplo da sintaxe do processo de 
inserção de dados em uma tabela.
A sintaxe apresentada na Figura 9 indica quando se quer atri-
buir valores a atributos específicos, não sendo indicada a inserção dos 
atributos com autoincremento.
Figura 9 – Sintaxe da inserção de dados em uma tabela
INSERT INTO tabela VALUES (
 ‘atributo1’, valor1, 
 ‘atributo2’, valor2, 
 ... , ... ,
 ‘atributon’, valorn )
Fonte: Elaborado pelo autor (2020).
Porém, também é possível inserir valores em uma tabela sem 
necessidade de indicar os atributos, todavia, deve-se atentar à ordem 
em que as colunas das tabelas foram criadas, uma vez que, os dados 
45
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
deverão ser inseridos na mesma ordem. A Figura 10 apresenta a sinta-
xe da inserção sem referência direta aos atributos.
Figura 10 – Sintaxe da inserção de dados em uma tabela sem referência aos 
atributos
INSERT INTO tabela VALUES (
 valor1, 
 valor2, 
 .... ,
 ‘valorn )
Fonte: Elaborado pelo autor (2020).
Vale ressaltar que a inserção de valores numéricos e boolea-
nos, por exemplo, devem ser feitos sem o uso de aspas, com o uso 
dessas relativos aos valores textuais.
Alteração
Outro tipo básico de manipulação de dados em uma tabela é 
a alteração dos dados, processos definidos através de comandos que 
citam a tabela que será alterada (UPDATE), colunas e valores a serem 
alterados (SET) e outras operações, como condicionais que identificam 
os fatores que deverão ser atendidos para que a operação de alteração 
seja realizada e onde (TAKAI, ITALIANO e FERREIRA, 2005, p. 71). Es-
tas condições serão exploradas de forma mais profunda no capítulo 3.
Assim, a Figura 11 apresenta um exemplo simplificado da sin-
taxe da alteração.
Figura 11 – Sintaxe da alteração de dados em uma tabela
UPDATE tabela SET 
 coluna1 = value1, coluna2 = value2, … = …, colunan = valuen
Fonte: Elaborado pelo autor (2020).
46
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Exclusão
Por fim, a última operação básica nas tabelas dos bancos de 
dados relacionais apresentadas neste capítulo, é a exclusão de tuplas, 
ou seja, de linhas das tabelas.
A sintaxe de exclusão identifica a tabela através do comando 
DELETE FROM e recebe em seguida funções de tratamento condicio-
nais, identificando quais as tuplas deverão ser excluídas, pois se for 
executada sem as regras condicionais, a função de deletar apagará to-
dos os dados da tabela (TAKAI, ITALIANO e FERREIRA, 2005, p. 71). 
A Sintaxe básica é apresentada na Figura 12.
Figura 12 – Exemplo da sintaxe básica de exclusão de tuplas
DELETE FROM tabela
Fonte: Elaborado pelo autor (2020).
Argumentos para alteração e exclusão de dados
Como já citado, existem funções específicas para tratar como 
os dados serão manipulados nas diferentes operações, definindo por 
exemplo, quais elementos serão alterados ou excluídos.
Assim, esta seção apresentará de forma simplificada o uso de 
argumentos condicionais através do comando WHERE, pelo qual, é 
possível especificar como as operaçõesserão realizadas.
Tomemos por base uma tabela qualquer com dois registros de 
pessoas, sendo os atributos desta tabela o nome, idade e CPF das pes-
soas cadastradas.
Desta forma, se for necessário identificar uma pessoa espe-
cífica através de seu número de CPF, o uso do comando WHERE irá 
auxiliar essa operação específica. Observe a Figura 13, que representa 
uma operação de exclusão de uma pessoa com CPF 000.000.000-00.
Figura 13 – Exclusão condicional
DELETE FROM tabela WHERE ‘CPF’ = ‘000.000.000-0’
Fonte: Elaborado pelo autor (2020).
47
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Note que o comando apresentado na Figura 13 informa que 
tuplas serão apagadas de uma tabela qualquer e o comando WHERE 
identifica que as tuplas a serem excluídas deverão apresentar em sua 
coluna CPF o valor igual ao descrito.
Filme sobre o assunto:
A REDE. Dirigido por Irwin Winkler. Estados Unidos: Rob 
Cowan e Irwin Winkler, 1995. 1 DVD.
Acesse os links: 
GUANABARA, Gustavo. 1 Vídeo (28 min). Curso MySQL 
#03: Criando o primeiro banco de dados. Publicado pelo canal Curso 
em Vídeo, 2017. Disponível em: <https://www.youtube.com/watch?-
v=m9YPlX0fcJk&t=24s>. Acesso em 17 ago. 2020.
MEIRA, Regilan. 1 Vídeo (10 min). BDA: Comandos de 
Manipulação de Dados SQL. Publicado pelo canal Regilan Meira, 2020. 
Disponível em: <https://www.youtube.com/watch?v=JjnsY4_q4-4>. 
Acesso em 17 ago. 2020.
48
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
QUESTÕES DE CONCURSOS
QUESTÃO 1
Ano: 2020 Banca: COPESE UFPI Órgão: ALEPI Prova: Consultor 
Legislativo 
Um técnico em TI da Assembleia Legislativa do Piauí se deparou 
com uma base de dados na qual a tabela Servidores possui di-
versos campos, sendo um deles, o campo nome, do tipo cadeia 
de caracteres (varchar). Para exibir todos os registros cujo campo 
nome inicie por qualquer caractere seguido de “agner”, utiliza-se 
a instrução SQL:
a) SELECT *.* FROM Servidores WHERE nome LIKE ‘_agner’;
b) SELECT * FROM Servidores WHERE nome LIKE ‘_agner’;
c) SELECT * FROM Servidores WHERE nome EQUALS ‘%agner’;
d) SELECT *.* FROM Servidores WHERE nome LIKE ‘%agner’;
e) SELECT * FROM Servidores WHERE nome=’#agner’;
QUESTÃO 2
Ano: 2019 Banca: NC-UFPR Órgão: ITAIPU Prova: Profissional Ní-
vel Universitário Jr 
Considerando a linguagem SQL (Structured Query Language) para 
sistemas de banco de dados, assinale a alternativa que remove 
linhas de uma tabela chamada CLIENTE.
a) REMOVE FROM CLIENTE ...
b) CUT FROM CLIENTE ...
c) DELETE FROM CLIENTE WHERE ...
d) ERASE FROM CLIENTE …
e) CLEAR FROM CLIENTE ...
QUESTÃO 3
Ano: 2019 Banca: NC-UFPR Órgão: ITAIPU Prova: Profissional Ní-
vel Universitário Jr 
A recursividade presente em consultas realizadas com SQL na for-
ma SELECT a.id,... FROM a WHERE ... IN (SELECT atributo FROM b 
WHERE b.x=a.id) pode ser evitada por meio:
a) da substituição do operador IN por EXISTS.
b) da junção externa do tipo RIGHT JOIN com a verificação de atributos 
de b com o valor nulo.
c) da junção interna – INNER JOIN.
d) da junção externa do tipo LEFT JOIN com a verificação de atributos 
de b com o valor nulo.
e) da utilização de expressões de tabelas comuns (CTE).
49
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
QUESTÃO 4
Ano: 2019 Banca: NC-UFPR Órgão: ITAIPU Prova: Profissional Ní-
vel Universitário Jr 
Considerando os SGBDs MySQL e PostgreSQL, em qual cláusula 
do comando SELECT o resultado das funções de agregação pode 
ser utilizado em condições de filtragem dos registros?
a) SELECT.
b) HAVING.
c) FROM.
d) WHERE.
e) ORDER BY.
QUESTÃO 5
Ano: 2019 Banca: NC-UFPR Órgão: ITAIPU Prova: Profissional Ní-
vel Universitário Jr 
Segundo o ANSI SQL, as “window functions” são as funções:
a) RANK, de distribuição, número de linha e de agregação.
b) de conversão de tipo de dados.
c) de tratamento de data e hora.
d) de verificação de permissão
e) de tratamento do conjunto de caracteres (encoding).
QUESTÃO DISSERTATIVA – DISSERTANDO A UNIDADE
O processo de criação de atributos em uma tabela é um processo mui-
to importante e que deve-se ter muita atenção, uma vez que escolhas 
errôneas podem gerar problemas de representatividade dos dados, nas 
relações e também no consumo de espaço físico nos dispositivos com-
putacionais.
Assim, em um projeto de banco de dados para um trabalho de exten-
são da universidade, você ficou responsável por fazer as tipagens dos 
atributos, de uma das tabelas ligadas de usuário e identificar se está 
faltando algum atributo.
Os atributos mapeados pela equipe foram:
- Data de nascimento;
- Sexo;
- Estuda;
- Trabalha;
- Data de registro.
Desta forma, faça um pequeno texto de no mínimo 10 linhas explicando 
quais tipos deveriam ser aplicados a cada um dos atributos citados, 
bem como se existem mais alguns atributos para serem adicionados, 
50
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
justificando obrigatoriamente as respostas.
DICA 1: Perceba que cada tipo possui um tamanho máximo definido 
e este tamanho máximo é completamente alocado quando um novo 
elemento é inserido na tabela, assim, preze por formatos que atendam 
ao tamanho das entradas, mas procure ajustar esse tamanho aos tipos 
com menos consumo de espaço físico no banco.
DICA 2: Para inserção de possíveis atributos, é indicada a realização de 
pesquisas sobre bancos de dados de cadastro, sendo indicado o uso 
de mídias de vídeo online para obtenção dos exemplos ou livros, caso 
sejam acessíveis.
TREINO INÉDITO
Assunto: Chave estrangeira
O desenvolvimento de tabelas com atributos que abstraiam corretamen-
te os objetivos esperados em registrar os dados é algo que demanda 
tempo e atenção. Entre estes atributos, podemos destacar as chaves 
estrangeiras, que são conceituadas como:
a) Atributos chaves que referenciam uma chave primária de outras tabela.
b) Chave física responsável por abrir as máquinas onde estão instala-
dos os bancos de dados.
c) Gatilho para identificar se uma tabela está vazia ou não.
d) Atributo identificador, o qual está presente nas entidades fortes.
e) Interface das tabelas para acesso aos seus atributos.
NA MÍDIA
POR QUE CONHECER E UTILIZAR DIFERENTES TIPOS DE BANCO 
DE DADOS?
Os Sistemas Gerenciadores de Bancos de Dados (SGDB) são conjun-
tos de softwares desenvolvidos com o intuito de gerenciar acesso às 
informações contidas nos bancos de dados, que são arquivos físicos ar-
mazenados em disco. Quando uma empresa utiliza um banco de dados 
bem estruturado, ele é capaz de armazenar e identificar o perfil exato de 
clientes e outras pessoas que estejam salvos em seus registros.
Quando esses dados são relacionados entre si, transformam-se em in-
formações valiosas, que ao serem inseridas em um contexto determina-
do, tornam-se fonte de conhecimento para ser utilizada como base em 
tomadas de decisão.
Utilizar um sistema de gerenciamento de banco de dados eficaz é indis-
pensável para qualquer empresa. Afinal, por meio dele é possível man-
51
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
ter organizados os registros dos empregados, da contabilidade, da ges-
tão de projetos, da qualidade do atendimento, do impacto das ações de 
marketing, entre outras inúmeras informações relevantes para o negócio.
Fonte: opservices
Data: 26/02/2019
Leia a notícia na íntegra:<https://www.opservices.com.br/banco-de-
-dados/>.
NA PRÁTICA
GANHANDO EXPERIÊNCIA EM BANCO DE DADOS
Como conseguir experiência com banco de dados se todas as entre-
vistas de emprego pedem essa tal experiência? Bem, quando recebi o 
e-mail, primeiro sugeri que talvez as vagas para quais essas entrevistas 
estavam selecionando não fossem para estagiário ou DBA júnior. Por 
definição, a vaga de estagiário ou DBA júnior não deveria necessitar de 
experiência. Contudo, muitas vezes o mercado acaba exigindo algo quefoge às definições, especialmente em situações onde o empregador 
quer ser ‘esperto’ e contratar um profissional que conheça muito para 
uma remuneração que não é adequada. Deixando a discussão sobre 
isso de lado, vou comentar o que sugeri para a leitora que me enviou 
um e-mail.
Uma ótima forma de se ganhar experiência em programação, e por ta-
bela com banco de dados, é a participação de projetos de software livre. 
Sim, esses projetos são abertos à comunidade e sempre estão preci-
sando de colaboradores.
Muitos projetos de software livre precisam de colaboradores de todos os 
níveis, desde aquele programador avançado até quem está começando 
a aprender a utilizar o computador. O importante é compreender o espí-
rito de colaboração e saber contribuir para o projeto com algo relevante. 
Fonte: PICHILIANI, Mauro. Ganhando experiência em banco de dados. 
iMasters. 25 mai. 2010 Disponível em: <https://imasters.com.br/banco-
-de-dados/ganhando-experiencia-em-banco-de-dados>. Acesso em 18 
ago. 2020.
52
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S INTRODUÇÃO AO CAPÍTULO
O capítulo 2 apresentou uma introdução básica aos conceitos 
ligados à manipulação de dados através dos SGBDs, pelo qual concei-
tuou-se a álgebra relacional e os conjuntos básicos de manipulação de 
um banco: criação do banco, criação das tabelas, inserção, exclusão e 
alteração de atributos.
Neste sentido, o capítulo 3 apresentará conceitos mais com-
plexo de manipulação dos dados, especificamente no tratamento das 
chamadas, consultas, que serão divididas em consultas básicas e com-
plexas.
Para tal, serão apresentados estudos de caso simplificados em 
cada seção ligada aos comandos. 
CONSULTAS EM
BANCO DE DADOS
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
53
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
OPERAÇÕES DE CONSULTA BÁSICA
As operações de consulta SQL básicas apresentadas neste 
material serão: SELECT (seleção), WHERE (condicional) e DISTINCT 
(seleção redundante). Estes comandos serão abordados em subseções 
a seguir.
Comando select
As operações com SQL, especificamente as de consulta, va-
riam de muito simples a muito complexas, sendo o uso do comando 
SELECT puro a forma mais básica de consulta (ELMASRI e NAVATHE, 
2005, p. 156),
O comando de seleção é responsável pela consulta a atributos 
das tuplas, descrevendo quais atributos devem ser consultados e em 
quais tabelas. 
Assim, a sintaxe básica da consulta é constituída do comando 
SELECT, que identifica a consulta, os atributos a serem consultados e 
a cláusula FROM, para identificar as tabelas consultadas. Desta forma, 
a sintaxe é expressa por (BEIGHLEY, 2010, p. 39).
SELECT atributo1, atributo2, ... , atributon FROM tabela
Assim, caso seja necessário identificar apenas o nome de um 
usuário em sua respectiva tabela, seria preciso apenas informar o nome 
deste atributo e da tabela onde está o usuário.
Durante o decorrer desta seção, comandos de seleção serão 
apresentados a partir de variações do comando básico de seleção.
Perceba que a expressão algébrica Projeção (π) é similar à 
operação de seleção básica no SQL, uma vez que, o comando SELECT 
segue o padrão matemático descrito na álgebra relaciona.
Desta forma, utilizar o comando SELECT sem especificar con-
dições de uso além dos atributos, é o mesmo que apenas projetar as 
colunas que devem ser retornadas.
Além da sintaxe apresentada, em alguns momentos é preciso 
54
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
retornar o resultado contendo todos os atributos da tabela consultada. 
Assim, o uso do símbolo especial * depois do comando SELECT, permite 
que todos os atributos sejam inseridos na saída (BEIGHLEY, 2010, p. 48).
Assim, a sintaxe de seleção contendo todos os atributos será:
SELECT * FROM tabela
O comando de seleção também permite que mais de uma ta-
bela seja consultada ao mesmo tempo, gerando uma alteração na sin-
taxe da consulta, que receberá na descrição dos atributos a referência 
a qual tabela esse pertence.
A sintaxe da seleção básica com mais de uma tabela segue o 
seguinte formato geral:
SELECT tabela1.atributo1, tabela2.atributo2 FROM tabela1, 
tabela2
Perceba que o nome da tabela aparece antes dos atributos, 
pelos quais são unificados por pontos.
Vale ressaltar que a saída de uma consulta é uma tabela tem-
porária, assim, sua estrutura visual receberá nas colunas, os nomes dos 
atributos, que nos casos de consultas com combinação das tabelas, as 
colunas apresentarão os nomes combinados das tabelas, seguido de 
um ponto e, por fim, com o nome do atributo.
A fim de facilitar e reduzir os longos textos e organizar a apre-
sentação dos títulos dos dados de retorno das consultas, a linguagem 
SQL possui uma ferramenta chamada de Alias, uma espécie de “apeli-
do”, sendo esta ferramenta usada para substituir o nome das tabelas na 
identificação dos atributos (ELMASRI e NAVATHE, 2005, p. 159),
Um exemplo da sintaxe de uso do seletor com o uso de Alias, 
será dada pela seguinte estrutura:
SELECT t1.atributo1, t2.atributo2 FROM tabela1 t1, tabela2 t2
Note que o “apelido” foi colocado em frente ao nome das tabe-
55
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
las, pelo qual, substituiu o nome das tabelas na descrição dos atributos 
após o SELECT.
De forma geral, esta ferramenta serve para reduzir o tamanho 
de longos e complexos nomes de tabelas, mas em alguns casos pode-
-se dar nomes mais claros para descrevê-las.
A fim de apresentar de forma prática como escrever uma con-
sulta simples, as tabelas 18 e 19 serão usadas como referencial para 
as exemplificações.
A tabela 18 representará os registros de alunos. Por sua vez, 
a tabela 19 apresenta um registro de disciplinas de um curso de com-
putação.
Estas duas tabelas serão reutilizadas nas demais seções a fim 
de demostrar como se dá as consultas avançadas, sendo apresentadas 
no decorrer do capítulo mais tabelas base.
Tabela 18 – Tabela Alunos
id nome ano_matrícula
1 Luciano 2017
2 Otto 2017
3 Marta 2017
4 Luiz 2017
5 Teresa 2017
6 Alecsa 2018
7 Paulo 2018
8 Rochelly 2018
9 Ian 2019
10 Oliveira 2019
Fonte: Elaborado pelo autor (2020).
Tabela 19 – Tabela Disciplinas
id nome créditos
1 Introdução a 
ciência da com-
putação
20
2 Programação 
estruturada
20
56
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
3 Programação 
orientada a ob-
jetos
20
4 Redes de com-
putadores
20
5 Inteligência arti-
ficial
20
6 Computação 
gráfica
20
7 Banco de dados 20
8 Física 15
9 Matemática 15
10 Estatística 15
Fonte: Elaborado pelo autor (2020).
Tomando por base as duas tabelas acima, 18 e 19, em uma 
consulta simples com o comando SELECT, é possível extrair certos da-
dos das tabelas.
Por exemplo, se for necessário coletar os nomes dos alunos 
matriculados, o comando de consulta será:
SELECT nome FROM Alunos
Assim, a saída será uma nova tabela contendo apenas um atri-
buto, pelo qual apresenta os nomes de todos os alunos.
Um outro tipo de seleção seria pegar todos os nomes de dis-
ciplinas e alunos em uma única tabela, sendo utilizado um Alias nas 
tabelas. Assim, o comando seria:
SELECT u.nome, d.nome FROM Alunos u, Disciplina d
Condições
As condições são comandos SQL que permitem especificar os 
dados que serão apresentados nas saídas das consultas.
Sua sintaxe básica é aplicada após a sintaxe já apresentada 
do SELECT, especificamente após a descrição das tabelas. Assim, sua 
estrutura será dada da seguinte maneira:
SELECT atributos FROM tabelas WHERE condições
57
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Desta forma, perceba que o comando específico de uma con-
dição é o WHERE, em que podem ser usados métodoscondicionais 
como as operações de igualdade, diferença, maior que, menor que, e 
lógico (^), ou lógico (V), entre outros (BEIGHLEY, 2010, p. 51).
Por exemplo, se for necessário encontrar todos os alunos que 
se matricularam antes de 2019, o comando usado seria.
SELECT * FROM Alunos WHERE ano_matrícula < 2019
Desta forma, a tabela de saída da consulta acima está apre-
sentada na tabela 20.
Tabela 20 – Alunos matriculados antes de 2019
id nome ano_matrícula
1 Luciano 2017
2 Otto 2017
3 Marta 2017
4 Luiz 2017
5 Teresa 2017
6 Alecsa 2018
7 Paulo 2018
8 Rochelly 2018
Fonte: Elaborado pelo autor (2020).
Outra forma específica de uso do comando condicional é fazer 
comparações entre os dados presentes nas colunas com valores de-
terminados através do uso de igualdade, o qual pode ser aplicado em 
todos os tipos de dados, como mostrado a seguir:
SELECT * FROM Disciplinas d WHERE d.créditos = 20
Perceba que o comando acima irá retornar todas as disciplinas 
com créditos iguais a 20.
Condições com operadores lógicos
Como citado, o comando WHERE permite que sejam usados 
comandos lógicos nas consultas, existindo um conjunto específico de 
elementos que podem ser usados nas operações lógicas, sendo os 
mais básicos e usados os operadores AND (e lógico) e OR (ou lógico).
58
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Os operadores lógicos se baseiam na lógica booleana e em 
suas operações, bem como no uso de tabelas verdade. Todavia, a lin-
guagem SQL especifica nomenclaturas e aplicações próprias para algu-
mas operações lógicas.
Pelo fato das operações lógicas serem baseadas na matemá-
tica booleana, as suas expressões serão asseadas em verdades e não 
verdades, utilizando na literatura, respectivamente, os termos TRUE e 
FALSE.
Assim, existem dez tipos de operadores lógicos que podem 
ser usados através do comando WHERE, sendo estes e suas respec-
tivas descrições apresentadas a seguir (ELMASRI e NAVATHE, 2005, 
p. 155):
• AND: Retorna verdadeiro se todos os elementos presentes na 
operação também forem verdadeiros;
• OR: Retorna verdadeiro se ao menos um dos elementos pre-
sentes na operação também for verdadeiro;
• NOT: Este operador inverte o valor de uma entrada. Assim, se 
esta for verdadeira, a saída será falsa e vice-versa;
• ALL: Similar ao AND, porém, pode ser aplicado a uma lista de 
elementos;
• ANY: Similar ao OR, porém, pode ser aplicado a uma lista de 
elementos;
• SOME: A aplicação e saída do SOME é igual ao ANY;
• BETWEEN: Retorna verdadeiro se o elemento da operação 
apresentar valor entre um intervalo dado;
• LIKE: O comando LIKE permite que um valor seja comparado 
completamente ou parcialmente através do uso dos símbolos [], [^], % e _;
• IN: Retorna verdadeiro caso um atributo do algum elemento 
em uma lista ou valores especificados for igual a um elemento do seletor;
• EXISTS: Retorna verdadeiro caso um atributo do algum ele-
mento em uma lista for igual a um elemento do seletor.
Para exemplificar o uso das operações com os operadores ló-
gicos, será apresentada uma nova tabela base, que exibirá a tabela 21, 
que registra quais disciplinas cada aluno está matriculado, sua respecti-
va data de matrícula nas disciplinas e o estado da matrícula. 
59
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Tabela 21 – Tabela Matrículas
Usuário_id Discipli-
na_id
ano_matrí-
cula
Estado
1 9 2018 Aprovado
2 9 2018 Aprovado
3 8 2018 Aprovado
4 6 2018 Aprovado
5 9 2018 Aprovado
6 1 2018 Aprovado
7 1 2018 Reprovado
8 1 2018 Aprovado
7 2 2018 Aprovado
6 4 2018 Matriculado
7 3 2018 Matriculado
8 3 2018 Matriculado
9 1 2019 Matriculado
10 1 2019 Matriculado
1 10 2019 Aprovado
2 10 2019 Reprovado
3 6 2019 Aprovado
4 4 2019 Aprovado
5 3 2019 Aprovado
Fonte: Elaborado pelo autor (2020).
Vamos fazer um exemplo simples de uso da cláusula AND, 
com código como apresentado a seguir:
SELECT u.nome FROM Alunos u, Matriculas m WHERE u.id = 
m.Usuário_id AND m.ano_matrícula >= 2019
Perceba que foi usada a cláusula AND para verificar os casos 
onde o identificador do usuário for igual ao atributo relativo à chave 
estrangeira do usuário na tabela Matrículas, resultando em verdade, ou 
seja, igualdade, com o ano da matrícula na disciplina igual ou maior que 
2019, em que é preciso que os dois campos resultem em verdade para 
que o seletor retorne os dados da saída.
Outro exemplo é o uso da clausula ANY em uma operação de 
60
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
alinhamento de seletores, ou seja, uso de múltiplos seletores em uma 
mesma consulta, como pode ser visto abaixo:
SELECT m.ano_matrícula FROM Matrícula m WHERE m.Dis-
ciplina_id = ANY (SELECT d.id FROM Disciplinas) AND m.Estados = 
NOT ‘Aprovado’ AND m.ano_matrícula = 2019
O comando acima procura todas as incidências onde uma dis-
ciplina não recebeu matrículas no ano de 2019.
Distinct
O comando DISTINCT serve para remover possíveis valores 
duplicados em relação aos atributos, ou seja, ao apontar os atributos 
após o SELECT, se for usado o comando DISTNCT, todos os valores 
que se repetem dentre estes atributos são ignorados, sendo retornadas 
apenas as primeiras aparições destes (TAKAI, ITALIANO e FERREIRA, 
2005, p. 67). 
Perceba que o uso do comando DISTINCT cria conjuntos ba-
seados nos atributos “citados” no seletor, assim, não se repetirão valo-
res dentro do conjunto formado.
A sintaxe deste comando é dada pela seguinte estrutura:
SELECT DISTINCT atributoA, atributoB FROM tabela
Apesar da simplicidade da consulta com o uso do DISTINCT, 
sua aplicação em muitos momentos se mostra necessária para realizar, 
por exemplo, contagem do número de termos ou objetos cadastrados 
na base de dados que possuem mais de uma entrada igual, como no-
mes, sobre nomes, endereços, entre outros.
Por exemplo, se essa consulta for aplicada na tabela de disci-
plinas usando o DISTINCT sobre a quantidade de créditos a saída será 
dada como se mostra a seguir:
SELECT DISTINCT créditos FROM Disciplinas
61
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
O resultado desta consulta será como o mostrado a seguir na 
Tabela 22.
Tabela 22 – Uso do comando Distinct
créditos
20
15
Fonte: Elaborado pelo autor (2020).
Perceba que no exemplo exposto na tabela 22 os dados foram 
apresentados sem repetição. 
O exemplo acima pretendia apenas verificar quais os valores 
de créditos presentes no sistema, 20 e 15, porém, em casos mais es-
pecíficos como um banco de dados que registra os pedidos de lanches 
de um cliente, este pode identificar quais os lanches que um usuário 
específico já pediu e que foram registrados na base de dados, permitin-
do que seja traçado um perfil de quais produtos chamam mais atenção 
deste cliente, informação que pode ser usada para criação de promo-
ções e de produtos para perfis específicos.
OPERAÇÕES DE CONSULTAS COMPLEXAS
Teoria dos conjuntos
A teoria dos conjuntos é uma das bases fundamentais da com-
putação e também do uso das operações de união com SQL. Assim, 
essa seção abordará de formas direta e curta as principais operações 
ligadas à teoria dos conjuntos.
Assim, a operação de união, também chamada de reunião, é 
uma operação responsável onde dados dois conjuntos de elementos 
sua saída será igual à combinação sem repetições dos elementos de 
cada conjuntos (DANTE, 2013, p. 27).
Por sua vez, a interseção é uma operação onde todos os ele-
mentos iguais entre dois conjuntos quaisquer, são retornados em um 
novo conjunto os contendo (DANTE, 2013, p. 27). Ou seja, essa opera-
ção identifica elementos idênticos ao comprar conjuntos.
Por fim, a operação de diferença irá procurar identificar quais 
elementos de um conjunto não estão presentes no outro, executando 
essa ação para ambos conjuntos envolvidos na operação (DANTE, 
2013, p. 27). Assim, a operação de diferença podeser entendida como 
o inverso da operação de interseção.
62
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Apesar da simplicidade em apresentar as principais operações 
da teoria dos conjuntos, essa explicação geral servirá de base para os 
conceitos apresentados na seção seguinte.
Operações Join
O comando Join toma por base conceitos da teoria dos con-
juntos para utilizar as relações entre as tabelas para gerar dados de 
consultas.
Para tanto, o comando realiza a identificação das relações 
através de seus identificadores comuns, que estão presentes nas tabe-
las de referência como chaves estrangeiras.
Desta forma, para que se possa usar o comando Join, é pre-
ciso que ao menos uma das tabelas da relação possuam uma chave 
estrangeira de uma das tabelas na relação.
Somando ao exposto, estas relações podem se dar em ordem 
de duas ou mais tabelas através da propriedade de transitividade, que 
permite relacionar tabelas que não se relacionam diretamente, como atra-
vés de entidades fracas (TAKAI, ITALIANO e FERREIRA, 2005, p. 78).
Existem três tipos de comandos JOIN, um chamado de INNER 
JOIN, outro de OUTER JOIN, e este último é dividido em LEFT JOIN, 
RIGHT JOIN, FULL JOIN e, por fim, o último tipo de JOIN se chama 
CROSS JOIN.
Assim, para exemplificar o uso do JOIN, serão adicionadas 
mais duas tabelas bases, tabela 18, tabela 19 e tabela 21. Desta forma, 
a tabela 23 apresentará os professores e a tabela 24, a relação dos 
professores com as disciplinas.
Antes de apresentar os tipos de JOIN, note que os professo-
res estão relacionados indiretamente à tabela Disciplinas, bem como 
a tabela dos alunos está da mesma forma relacionada indiretamente à 
tabela Disciplina. Assim, é possível relacionar qual professor está minis-
trando para um aluno específico através do uso dos comandos JOIN.
Tabela 23 – Tabela Professores
id Nome ano_contrato
1 Marcelo 2012
2 Michelly 2012
3 Tannya 2014
4 Rafaela 2018
Fonte: Elaborado pelo autor (2020).
63
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Tabela 24 – Tabela Ministra
Professores_id Disciplinas_id
1 8
1 9
1 10
2 1
2 2
2 3
2 7
3 1
3 2
3 3
3 5
3 6
4 3
4 4
4 7
Fonte: Elaborado pelo autor (2020).
Assim, as seções seguintes apresentaram cada um dos ti-
pos de junções utilizando as tabelas citadas como referências para os 
exemplos.
Inner Join
A cláusula INNER JOIN é um tipo de junção que retorna todos 
os casos em que, exclusivamente, a comparação entre os atributos cha-
ves é igual a TRUE, sendo sua sintaxe composta da seguinte estrutura 
(BEIGHLEY, 2010, p. 360).
SELECT * FROM tabela1 INNER JOIN tabela2 ON tabela1.id 
= tabela2.id
Perceba o uso da cláusula ON, em que se dá a condição de 
junção das tabelas, que tem a mesma função da cláusula WHERE.
Além do formato apresentado, é indicado o uso de Alias para as 
consultas, uma vez que seu uso irá organizar as consultas de todos os 
JOIN, especialmente quando são feitas junções com mais de duas tabelas.
64
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Assim, a sintaxe básica para uma consulta com mais de uma 
tabela e contendo o uso dos Alias pode ser vista a seguir, porém, con-
tendo o uso da cláusula AS, identificando a Alias criada. 
O uso do AS é facultativo, porém, é comum ver na literatura o 
uso de Alias com AS em operações com JOIN. 
SELECT * FROM tabela1 
INNER JOIN tabela2 ON tabela1.id = tabela2.id
INNER JOIN tabela3 ON tabela2.id = tabela3.id
Perceba que a cláusula INNER JOIN foi inserida logo após a 
inserção de outra cláusula igual. Assim, é possível realizar aninhamento 
de junções.
Assim, por exemplo, se quisermos encontrar quais os profes-
sores que estão ministrando disciplinas com 20 créditos, é possível 
através do uso de um INNER JOIN composto de mais de uma junção, 
uma vez que os professores estão vinculados às disciplinas através de 
uma entidade fraca.
Portanto, o comando a seguir apresenta uma consulta para 
identificar qual professor está ministrando disciplinas de mais de 20 cré-
ditos através do uso do INNER JOIN.
SELECT p.nome FROM Professores AS p
INNER JOIN Ministra AS m ON m.Professores_id = p.id
INNER JOIN Disciplinas AS d ON d.id = m.Disciplinas_id AND 
d.créditos < 20
Com base na consulta (querry) acima, a tabela de saída será 
dada como demonstrado na tabela 25.
Tabela 25 – Exemplo Inner Join
id Nome ano_contrato
1 Marcelo 2012
Fonte: Elaborado pelo autor (2020).
Outer Join
A junção Outer Join é composta por três tipos distintos de cláu-
sulas, sendo elas o RIGHT JOIN, LEFT JOIN e FULL JOIN.
Diferente do INNER JOIN, os Outer Joins podem retornar os 
dados da combinação de forma similar a um ou lógico, em que a condi-
ção será verdadeira se encontrar ao menos um dos casos consultados.
Assim, o RIGHT JOIN irá retornar todos os casos onde existam 
65
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
as combinações das tabelas, bem como, onde a verificação a direita 
seja verdadeira. Por tanto, no uso do RIGHT JOIN, quando tanto os 
dados da tabela direita, como esquerda não apresentarem uma saída 
verdadeira, os campos dos atributos serão preenchidos com NULL, ou 
seja, valores nulos (ELMASRI e NAVATHE, 2005, p. 122).
De forma similar se dá a função do LEFT JOIN, porém, será 
analisado se os dados da tabela esquerda serão verdadeiros.
Por fim, o FULL JOIN faz essa verificação nos dois lados, retor-
nando todos os elementos de ambas as tabelas, recebendo o valor nulo 
nos atributos quando não existir combinação com retorno verdadeiro. 
Como as sintaxes dos Outer Joins são similares, basta alterar 
o nome LEFT por RIGHT ou FULL para se usar alguns desses tipos de 
junções. A seguir é mostrado um exemplo de um comando Outer Join:
SELECT * FROM tabela1 AS t1 RIGHT JOIN tabela2 AS t2 ON 
t1.id = t2.id
Cross Join
A cláusula CROSS JOIN atua fazendo o produto cartesiano 
dos elementos da esquerda e direita da junção.
Assim, o uso do CROSS JOIN retornará todas as combinações 
possíveis entre os atributos selecionados de forma similar ao que foi 
apresentado nos conceitos de álgebra relaciona, especificamente no 
produto cartesiano, com a tabela de saída do CROSS JOIN apresen-
tando o mesmo padrão de saída (ELMASRI e NAVATHE, 2005, p. 170):
A seguir está apresentada a sintaxe geral da aplicação do 
CROSS JOIN:
SELECT t1.atributo1, t2atributo1 FROM tabela1 AS t1
CROSS JOIN tabela1 AS t2 WHERE t1.id = t2.id
Filme sobre o assunto:
JOBS. Dirigido por Danny Boyle. Estados Unidos: Five Star 
Feature Films, 2013. 1 DVD.
Acesse os links: 
PERES, Sarajane Marques. 1 Vídeo (23 min). Bancos de Da-
66
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
dos Aula 14 Linguagem de consulta SQL Parte II. Publicado pelo canal 
UNIVESP, 2017. Disponível em: <https://www.youtube.com/watch?-
v=XnS8XCXPkuk>. Acesso em 17 ago. 2020.
GUANABARA, Gustavo. 1 Vídeo (28 min). Curso MySQL #16: 
INNER JOIN com várias tabelas. Publicado pelo canal Curso em vídeo, 
2016. Disponível em: <https://www.youtube.com/watch?v=jx2ne8iZ-
MOA>. Acesso em 17 ago. 2020.
67
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
QUESTÕES DE CONCURSOS
QUESTÃO 1
Ano: 2019 Banca: NC-UFPR Órgão: ITAIPU Prova: Profissional Ní-
vel Universitário Jr 
As tabelas a e b abaixo, com os respectivos registros, são referên-
cia para a questão.
Os valores (registros) retornados ao se executar a instrução “(SE-
LECT * FROM a) MINUS (SELECT * FROM b)” são:
a) (5,1)
b) (1,3,5)
c) (1,2,4,5)
d) (-1,0,1)
e) (3)
QUESTÃO 2
Ano: 2019 Banca: NC-UFPR Órgão: ITAIPU Prova: Profissional Ní-
vel Universitário Jr 
As tabelas a e b abaixo, com os respectivos registros, são referên-
cia para a questão.
A instrução SQL que apresenta resultado equivalente à instrução 
“(SELECT * FROM a) INTERSECT (SELECT* FROM b)” no MySQL 
5.7 ou 8 é:
a) SELECT valor FROM a UNION ALL SELECT valor FROM b
b) SELECT a.valor FROM a LEFT JOIN b ON a.valor=b.valor
c) SELECT a.valor FROM a RIGHT JOIN b ON a.valor=b.valor;
d) SELECT DISTINCT valor FROM a INNER JOIN b USING (valor)
e) SELECT valor FROM a WHERE valor NOT IN (SELECT valor FROM b)
68
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
QUESTÃO 3
Ano: 2019 Banca: NC-UFPR Órgão: ITAIPU Prova: Profissional Ní-
vel Universitário Jr 
As tabelas a e b abaixo, com os respectivos registros, são referên-
cia para a questão.
O resultado esperado da instrução “select a.valor*b.valor from a,b” é:
a) (1,2),(3,2),(5,2),(1,3),(3,3),(5,3),(1,4),(3,4),(5,4)
b) (2,6,10,3,9,15,4,12,20)
c) (1,2,3,4,5)
d) (2,1),(2,3),(2,5)
e) (3,3)
QUESTÃO 4
Ano: 2019 Banca: NC-UFPR Órgão: ITAIPU Prova: Profissional Ní-
vel Universitário Jr 
Segundo o ANSI SQL 92 e posteriores, é INCORRETO afirmar:
a) Junção cruzada (cross join) equivale a uma junção interna sem uma 
condição de junção.
b) Junção união (union join) equivale a uma junção externa completa na 
condição “false”, ou seja, em que a junção interna está vazia.
c) Junção natural (natural join) equivale a uma junção interna em que 
os atributos com identificadores comuns são utilizados internamente na 
condição, entretanto, sem repeti-los no conjunto resultante.
d) Junção externa esquerda (left outer join) equivale à recuperação das 
tuplas da relação à esquerda e posteriormente associadas com as tu-
plas da relação à direita, mas quando não existir a correspondência, 
o valor nulo será atribuído aos campos correspondentes da relação a 
direita.
e) Junção exclusiva (xor join) equivalente à junção externa completa 
(full outer join), em que as tuplas das duas relações estão presentes no 
conjunto resultante.
QUESTÃO 5
Ano: 2019 Banca: FCC Órgão: AFAP Prova: Analista de Fomento 
Fernando está usando a linguagem SQL (ANSI) e pretende fazer 
uma atualização nos dados Nome_Cli e End_Cli do cliente cujo 
69
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Cod_Cli é Cli01, na tabela Cliente. Nome_Cli passará a ser Ariana e 
End_Cli passará a ser Rua ABC.
O código SQL correto que Fernando escreveu foi:
..I.. Cliente
..II.. Nome_Cli = ‘Ariana’, End_Cli = ‘Rua ABC’
..III.. Cod_Cli = ‘Cli01’;
Para que o código esteja correto, as lacunas I, II e III devem ser 
preenchidas, respectivamente, por
a) SET − WHERE − UPDATE
b) UPDATE − SET − WHERE
c) UPDATE − WHERE − SET
d) WHERE − SET − UPDATE
e) SET − UPDATE − WHERE
QUESTÃO DISSERTATIVA – DISSERTANDO A UNIDADE
Uma escola recentemente criou uma base de dados para cadastrar os alu-
nos, profissionais docentes, administrativos e complementares, bem como, 
as disciplinas e suas relações com os professores, alunos e horários.
Assim, notou-se que certas pesquisas, utilizando consultas básicas, 
não estavam atendendo de forma satisfatória à equipe administrativa, 
motivo pelo qual você foi convidado para criar padrões de consultas 
para facilitar o trabalho de mapeamentos e planejamentos.
Para tanto, você deverá criar um conjunto de duas consultas utilizando 
algumas das cláusulas do Join, identificando os professores e os horá-
rios das disciplinas, bem como, uma lista com o nome de cada aluno 
também por disciplina.
Por fim, gere um pequeno relatório entre 5 a 10 páginas descrevendo os 
comandos desenvolvidos durante a tarefa, bem como, sendo apresen-
tados argumentos para as escolhas feitas durante a atividade.
DICA 1: Para esta questão, é preciso que um banco teste seja projetado 
e populado. Assim, desenvolva as tabelas de forma textual, como apre-
sentado nesta unidade, ou utilize outros meios, como um SGDB caso 
esteja familiarizado.
DICA 2: Crie as tabelas com apenas os atributos necessários para a 
questão, bem como insira um número não muito elevado, por volta de 5 
a 10 de entradas, a fim de reduzir a complexidade da tarefa. Todavia, é 
fortemente indicado para fins de fixação, que as tabelas sejam feitas da 
formas mais complexa e populadas possíveis, para fins de treinamentos 
pós tarefa, além de ser indicado o uso de cadernos ou de editores de 
70
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
texto para se perceber a cada interação, como se dá o comportamento 
de uma consulta. Todavia, vale ressaltar que a indicação de expansão 
das tabelas e seus dados são voltados para reforço e não avaliação, 
mantendo-se assim a indicação da simplicidade com representatividade 
nesta tarefa.
TREINO INÉDITO
Assunto: Condição
Assim como a cláusula SELECT e seu respectivo comando, a cláusula 
WHERE é uma das mais importantes e usadas no gerenciamento de 
banco de dados. Sobre as operações com a cláusula WHERE, é correto 
afirmar que:
a) É uma cláusula que identifica onde estão os atributos, podendo ser 
usada no lugar do SELECT.
b) Sempre deve ser usada entes do comando SELECT a fim de condi-
cionar a seleção.
c) Permite apenas fazer comparações de igualdade e diferença nas 
consultas.
d) Pode ser aplicada utilizando diversos operadores condicionais, inclu-
sive operadores lógicos como o AND e OR.
e) Pelo fato de só poder existir uma cláusula WHERE por comando, é 
impossível usá-la para condições em múltiplas tabelas em uma mesma 
consulta.
NA MÍDIA
MAS O QUE É MYSQL?
Uma empresa sueca chamada MySQL AB desenvolveu o MySQL em 
1994. Então, a companhia norte-americana Sun Microsystems obteve 
controle total do software ao comprar a MySQL AB em 2008.
Já em 2010, a gigante Oracle, também norte-americana, por sua vez, 
comprou a Sun Microsystems, e o MySQL MySQL tem sido da Oracle 
desde então.
Quanto a sua definição, MySQL é um Banco de Dados relacional (RDB-
MS – Relational Database Management Systems) com um modelo de 
cliente-servidor.
RDBMS é um software de código aberto ou serviço usado na criação 
e gerenciamento de bancos de dados baseados no modelo relacional. 
Agora vamos analisar cada termo.
Mas como o cliente e o servidor se comunicam em um ambiente RDB-
71
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
MS? Eles usam uma linguagem específica – Structured Query Langua-
ge (SQL).
Se você encontrar outros nomes que também possuam SQL, como 
PostgreSQL e Microsoft SQL Server, provavelmente são outras marcas 
que utilizam a sintaxe SQL.
Um software RDBMS é normalmente escrito em outra linguagem de 
programação, mas sempre utiliza SQL como linguagem primária para 
comunicação com o banco de dados.
O próprio MySQL é escrito em C e C++. Pense em todos os países colo-
nizados pela Inglaterra, cada um tem sua história e costumes próprios, 
mas todos falam inglês.
O cientista da computação Ted Codd desenvolveu SQL no início dos 
anos 70 com um IBM baseado no modelo relacional. A linguagem se 
tornou mais popular em 1974 substituindo algumas linguagens ultrapas-
sadas, como ISAM e VISAM.
A seguir é apresentado o funcionamento básico do MySQL:
1. O MySQL cria um banco de dados para armazenamento e manipula-
ção de dados, definindo a relação de cada tabela. 
2. Clientes podem fazer solicitações digitando comandos SQL específi-
cos no MySQL. 
3. A aplicação do servidor responde com a informação solicitada fazen-
do aparecer no cliente.
Fonte: hostinger
Data: 21/01/2019
Leia a notícia na íntegra:<https://www.hostinger.com.br/tutoriais/o-
-que-e-mysql/>.
NA PRÁTICA
DICAS PARA TRABALHAR COM MODELOS DE DADOS GRANDES
Olá, pessoal. Como DBA há algum tempo, acabo fazendo várias con-
sultorias em diferentes clientes que têm problemas com seus bancos de 
dados. Entre os cenários de bases de dados que eu encontrei, prova-
velmente o aspecto que mais afeta o meu trabalho é lidar com modelos 
de banco de dados grandes e complexos, que foram criados para satis-
fazer os requisitos de armazenamento dos dados. 
O objetivo principal deste artigo é apresentar algumas dicas para aju-
dar os profissionaisque precisam trabalhar com modelos de bancos de 
dados complexos, grandes e de difícil compreensão, que qualquer um 
72
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
pode encontrar no trabalho do dia a dia.
Sem mais delongas, estas são as minhas dicas àqueles que têm de 
compreender e manipular rapidamente um modelo de banco de dados 
grande sem ser seu criador: 1. Identificar as maiores, mais cheias mais 
usadas tabelas no modelo; 2. Use uma ferramenta de controle de ver-
são ou de gestão de configuração; 3. Saiba como imprimir o modelo de 
banco de dados completo ou parcial; 4. Identifique os objetos comple-
mentares mais utilizados (stored procedures, triggers, funções, índices); 
5. Tenha como visualizar o banco de dados em camadas separadas: 
com e sem relacionamentos, com e sem índices, com e sem constrain-
ts, etc.; 6. Use retângulos coloridos para agrupar tabelas de um mesmo 
subsistema; 7. Obtenha a ordem correta para inserir, atualizar e remo-
ver os dados em tabelas específicas, respeitando os relacionamentos 
entre elas; 8. Sempre tenha uma forma rápida de procurar pelo nome 
dos atributos; 9. Tenha um script que gere todos os objetos banco de 
dados com uma fração de seus dados (10% é ok); 10. Mantenha uma 
lista atualizada das permissões nos objetos mais comuns para saber 
rapidamente o que um usuário específico pode e não pode fazer com os 
objetos; 11. Saiba como prever e estimar o tamanho de objetos específi-
cos para prever o crescimento ou encolhimento do banco de dados; 12. 
Mostre no modelo quais objetos possuem opções de particionamento, 
se eles são compactados e a quais os grupos de arquivos eles perten-
cem; 13. Em modelos OLAP centralize a tabela de fatos e tenha à mão 
uma maneira de visualizar as hierarquias principais, os níveis, membros 
e grãos de cada tabela de dimensão.
Fonte: PICHILIANI, Mauro. Dicas para trabalhar com modelos de dados 
grandes. iMasters. 30 jan. 2013. Disponível em: <imasters.com.br/ban-
co-de-dados/dicas-para-trabalhar-com-modelos-de-dados-grandes>. 
Acesso em 18 ago. 2020.
73
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
Ao final desta aventura no aprendizado dos conceitos bási-
cos de bancos de dados, procurou-se fundamentar uma estrutura de 
conhecimento que permitirá explorar conceitos, bem como técnicas 
intermediárias e avançadas sobre o tema, além de também permitir 
uma visualização geral e prática de como usar um banco de dados, 
executando sua gerência nas especificações de criação, manipulação 
dos dados e consultas básicas e intermediárias.
Desta forma, cada capítulo contribuiu com uma parte rele-
vante na construção deste conhecimento, passando pela história dos 
bancos de dados, os modelos dos SGDBs, especificamente nos que 
ainda usados atualmente, exploração dos conceitos fundamentais dos 
relacionamentos e da álgebra relacional, que permitiram a inserção dos 
conceitos sobre a linguagem SQL através da apresentação dos conhe-
cimentos sobre comandos fundamentais de gerência, como criação de 
bancos e tabelas, bem como manipulação de atributos, até comando de 
consulta básicos e complexos.
Assim, é fortemente indicado que todos os exercícios apon-
tados, bem como os adicionais, sejam feitos em prol da fixação dos 
conteúdos. Além do exposto, também é indicada a realização de pes-
quisas adicionais nas literaturas e mídias citadas, porém, também em 
outras fontes, pois diferentes pontos de vistas tendem a gerar reflexões 
pontuais que contribuirão para uma melhor compreensão do conteúdo.
 
74
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
GABARITOS
CAPÍTULO 01
QUESTÕES DE CONCURSOS
01 02 03 04 05
A D CERTO ERRADO D
QUESTÃO DISSERTATIVA – DISSERTANDO A UNIDADE – PADRÃO 
DE RESPOSTA
É esperado do aluno a capacidade de criação de um diagrama simples, 
contendo ao menos duas tabelas com seus respectivos atributos.
E que o aluno seja capaz de identificar a necessidade do atributo chave 
primária nas entidades fortes.
De forma similar, é esperado que em entidades fracas, caso sejam des-
critas, não seja adicionada chave primária.
Não é esperado que o aluno utilize de forma satisfatória as tipagens dos 
atributos, bem como, que estes sejam adequados para os dados que 
serão armazenados.
TREINO INÉDITO
Gabarito: D
A alternativa (A) está errada, uma vez que estes bancos se tornaram 
pouco atrativos devido o crescimento das bases de dados e, respecti-
vamente, a complexidade das relações.
A alternativa (B) está errada, uma vez que o modelo hierárquico se ba-
seia nas estruturas de arvores, onde os nós subsequentes são hierar-
quicamente vinculados aos nós superiores.
A alternativa (C) está errada, pois o modelo orientado a objetos que é 
indicado para sistemas embarcados.
A alternativa (D) está correta, pois o uso de bancos hierárquicos pode 
ser facilmente implantados quando as bases de dados não são muito 
grandes e complexas.
A alternativa (E) está errada, pois este modelo ainda é usado para apli-
cações simples e nos navegadores.
75
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
CAPÍTULO 02
QUESTÕES DE CONCURSOS
01 02 03 04 05
B C C B A
QUESTÃO DISSERTATIVA – DISSERTANDO A UNIDADE – PADRÃO 
DE RESPOSTA
Esta atividade procura retomar alguns conceitos da unidade 1 com as 
manipulações de tabelas da unidade 2. Assim, é esperado que o aluno 
seja capaz de identificar corretamente o uso dos tipos para cada atribu-
to, bem como, que identifique ao menos a necessidade de inserção dos 
atributos id e nome do usuário.
TREINO INÉDITO
Gabarito: A
A alternativa (A) está correta, uma vez que as chaves estrangeiras são 
atributos em uma tabela que referencia atributos chave de outras tabelas. 
A alternativa (B) está errada, pois a chave estrangeira é um conceito de 
bancos de dados, não sendo um objeto do mundo físico.
A alternativa (C) está errada, pois a chave estrangeira não é um gatilho 
para realizar uma consulta de presença de elementos em tabelas.
A alternativa (D) está errada, uma vez que as chaves estrangeiras não são 
elementos que definem as entidades fortes, e sim as entidades fracas.
A alternativa (E) está errada, uma vez que a chave estrangeira não é 
uma interface de acesso aos atributos, por menos, está vinculada a en-
capsulamento nos bancos relacionais.
76
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
CAPÍTULO 03
QUESTÕES DE CONCURSOS
01 02 03 04 05
D B A B D
QUESTÃO DISSERTATIVA – DISSERTANDO A UNIDADE – PADRÃO 
DE RESPOSTA
Esta atividade possui um fator de dificuldade agregado composto pelo 
conhecimento das três unidades anteriores, cabendo ao aluno desen-
volver um banco com tabelas e atributos bem definidos e justificados 
no relatório, bem como é esperado que o aluno apresente um nível sa-
tisfatório de compreensão das operações com JOIN, que se dará pela 
correta posição das cláusulas e do uso da condição.
TREINO INÉDITO
Gabarito: D
A alternativa (A) está errada, uma vez que a função do WHERE é servir 
como condicional para a consulta.
A alternativa (B) está errada, pois o comando WHERE sempre aparece 
depois do primeiro comando SELECT.
A alternativa (C) está errada, pois esta cláusula permite realizar outros 
tipos de operações, como as operações lógicas.
A alternativa (D) está correta, pois a cláusula WHERE permite o uso dos 
operadores comuns, como igualdade, diferença e maior/menor-que, 
bem como o uso de operadores lógicos.
A alternativa (E) está errada, uma vez que pode existir mais de uma 
cláusula WHERE por consulta, além de poder ser feita a comparação de 
duas tabelas através de seus atributos usando o WHERE.
77
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
BEIGHLEY, Lynn. Use a cabeça: SQL. Tradução de Leopoldino Ma-
chado. 2. Reimpressão. Rio de Janeiro: AltaBooks, 2010. 491 p. Título 
original: Head First SQL.
COSTA, D. C. El Modelo Relacional y el Álgebra Relacional. UOC/
Digitalia, 2009.
DATE, C. J. Introdução a sistemas de banco de dados. 7. Reimpres-
são. Rio de Janeiro: Campus, 1989.
DANTE, L. R. Matemática: Contexto & Aplicação. 5 ed. São Paulo, edi-
tora Ática, 2013.
ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de da-
dos. Tradução de Marília Guimarães Pinheiro et al. 4. ed. São Paulo: 
Pearson education, 2005. 798 p. Título original: Fundamentais of Data-
base Systems.
HEUSER, Carlos A. Projeto de banco de dados. 4. ed. Sagra Luzzatto, 
1998.
JUSTAMAND, Michel. O brasil desconhecido as pinturas rupestres de 
são raimundo nonato têm muito a revelar. Somanlu: Revista de Estu-
dos Amazônicos, v. 19, n. 1, 2019.
TAKAI, Osvaldo Kotaro; ITALIANO, Isabel Cristina; FERREIRA, João 
Eduardo. Introdução a banco de dados. DCC-IME-USP, 2005.
SIQUEIRA, Fernando. Banco de Dados I. Unipli. Disponível em: <ht-
tps://sites.google.com/site/uniplibancodedados1/aulas/aula-1---introdu-
cao>. Acesso em 17 ago. 2020.
https://sites.google.com/site/uniplibancodedados1/aulas/aula-1---introducao
https://sites.google.com/site/uniplibancodedados1/aulas/aula-1---introducao
https://sites.google.com/site/uniplibancodedados1/aulas/aula-1---introducao
78
IN
TR
O
D
U
Ç
Ã
O
 A
O
 B
A
N
C
O
 D
E
 D
A
D
O
S 
- 
 G
R
U
P
O
 P
R
O
M
IN
A
S
	_Hlk37475635
	_Hlk37475578
	_Hlk48553939
	_Hlk48554198
	_Hlk48525445
	_Hlk37475488
	_Hlk48678214
	_GoBack