Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

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

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

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

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

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

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

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

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

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

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

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

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

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

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

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

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

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

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

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

Prévia do material em texto

_________________________________________ 
 
 
1 
 
_________________________________________ 
 
 
2 
 
 
Tecnologia da Informação 
TEORIA 
Modelo Relacional 
 
 
SUMÁRIO 
 
DIRETIVAS DA AULA ............................................................................................................... 4 
GLOSSÁRIO DE TERMOS ......................................................................................................... 6 
1. MODELO RELACIONAL ................................................................................................... 8 
1.1 Conceitos do modelo relacional ......................................................................................... 8 
1.2 Doze (Treze) Regras de Codd ......................................................................................... 11 
1.3 Tabelas (relações) ............................................................................................................. 16 
1.4 Visões (views) ................................................................................................................... 22 
1.5 Índice (index) ................................................................................................................... 26 
1.6 Chaves .............................................................................................................................. 32 
1.7 Relacionamentos .............................................................................................................. 39 
1.8 Restrições de integridade ................................................................................................. 44 
1.9 Álgebra relacional ............................................................................................................ 48 
1.10 Normalização ................................................................................................................... 57 
1.10.1 As formas normais ....................................................................................................... 57 
1.10.2 TEMA AVANÇADO: análise de dependências e formas normais.............................. 71 
1.10.3 TEMA AVANÇADO: axiomas das dependências funcionais ..................................... 78 
1.10.4 TEMA AVANÇADO: definições formais para as formas normais ............................. 82 
2. ESQUEMAS DE AULA ..................................................................................................... 84 
3. MAPA MENTAL ................................................................................................................ 89 
4. REFERÊNCIAS .................................................................................................................. 90 
 
 
 
_________________________________________ 
 
 
3 
A nossa aula é bem esquematizada, então para facilitar o seu acesso aos esquemas, você 
pode usar o seguinte índice: 
Esquema 1 - Modelo relacional: conceitos básicos. ................................................................................. 9 
Esquema 2 – Doze (treze) regras de Codd para os bancos de dados relacionais. .................................................. 13 
Esquema 3 – Tabela (relação). ................................................................................................... 17 
Esquema 4 – Visão (view) e visão materializada (materialized view). ........................................................... 22 
Esquema 5 – Índices. ............................................................................................................. 28 
Esquema 6 – Chaves. ............................................................................................................. 36 
Esquema 7 – Relacionamentos. ................................................................................................... 42 
Esquema 8 – Restrições de integridade. ........................................................................................... 45 
Esquema 9 – Operações com relações (álgebra relacional). ........................................................................ 54 
Esquema 10 – Formas normais. .................................................................................................. 66 
Esquema 11 – Axiomas de dependências funcionais. .............................................................................. 79 
 
 
_________________________________________ 
 
 
4 
 
DIRETIVAS DA AULA 
 
Esta aula cobre o modelo relacional, também citado nos editais como bancos de dados 
relacionais. É o modelo mais cobrado de bancos de dados em provas de concursos, então é 
de suma importância que você atente bastaste para o conteúdo ministrado nessa aula. 
Começaremos com uma introdução ao modelo relacional e seus aspectos fundamentais, que 
não são diretamente cobrados, mas são importantes para a compreensão geral. 
Discutiremos as regras de Codd, que definem um banco de dados relacional. Não é 
necessário entender essas regras em profundidade, mas é útil ter uma noção geral de sua 
existência e função para responder a questões literais. 
A seguir, abordaremos a estrutura da tabela (ou relação), incluindo tuplas, atributos e 
domínios. Esses conceitos são essenciais tanto para questões diretas quanto para o 
entendimento de tópicos subsequentes. 
Abordaremos as visões e índices, destacando a diferença entre uma visão e uma visão 
materializada. Conheça essas definições, pois as questões costumam ser diretas. 
Exploraremos os conceitos de chaves, incluindo superchave, chave, chave candidata e chave 
primária, além da chave estrangeira. Esses conceitos simplesmente despencam em prova, 
então você precisa ter atenção redobrada aqui. 
Você precisa saber distinguir entre os tipos de relacionamentos (1:1, 1:N e N:M) e como 
eles são implementados em bancos relacionais. Este tópico é mais direto e é melhor 
abordado de forma rápida, pois é mais relevante para a modelagem conceitual (aula própria). 
As principais restrições de integridade serão consolidadas em uma seção específica para 
organizar seu entendimento. As questões sobre este tema são geralmente diretas. 
O tópico sobre operações de álgebra relacional não é tão cobrado pela maioria das bancas, 
mas é útil ter noções básicas e saber as definições das operações para acertar aquelas 
questões mais diretas. 
Finalmente, abordaremos as formas normais, um dos tópicos mais cobrados. Você deve 
conhecer os conceitos e palavras-chave associados a cada forma normal. Além disso, saber 
identificar a forma normal de uma tabela é crucial para responder a muitas questões. A aula 
também incluirá alguns tópicos avançados, conforme necessário para bancas específicas que 
puxam um pouco mais no tema. 
Nesta aula, estude tudo com carinho, pois como dito trata de um dos modelos mais cobrados, 
mas ligue o modo atenção total nos seguintes pontos: 
▪ 1.3 Tabelas 
▪ 1.4 Visões 
▪ 1.5 Índices 
▪ 1.6 Chaves 
▪ 1.8 Restrições de Integridade 
▪ 1.10.1 As formas normais 
_________________________________________ 
 
 
5 
ORIENTAÇÕES ESPECIAIS PARA AS BANCAS 
CEBRASPE 
A banca CEBRASPE costuma “amar” os conteúdos dessa aula. Sendo uma banca mais 
conceitual, então aqui ela encontra muito subsídio para as questões. Logo, se está estudando 
para um concurso dessa banca, a sua atenção aqui deve ser redobrada. 
 
FCC 
A FCC costuma não cobrar tantas questões conceituais, focando principalmente nas formas 
normais. Contudo, não recomendo que vá direto para esse tema, pois seu entendimento é 
facilitado se você souber as estruturas descritas nos demais tópicos. 
 
FGV 
A banca FGV costuma ir um pouco além na cobrança de alguns conteúdos. Os conceitos de 
chave são bem explorados por essa banca, mas formas normais são as queridinhas dessa 
banca, contudo ela prefere os temas avançados, principalmente a análise de dependências 
funcionais e os axiomas. Assim, se você estuda para essa banca, muitasalario matricula_chefe 
134512 
João 
Aprovado 
13.002,03 
 
123 
Departamento de 
Auditoria 
10 
134512 
251218 
Maria 
Concursada 
5.519,61 
 
456 
Grupo de Auditoria 
Operacional 
5 251218 
124578 
Paulo 
Passou 
13.002,03 
 
789 Gerência de Pregão 3 NULL 
131820 
Glória 
Nomeada 
5.519,61 
 
 
A tabela DEPARTAMENTO possui como chave primária o atributo codigo que identifica 
unicamente cada linha. Indica também os nomes dos departamentos, a quantidade de 
servidores e a matricula do servidor chefe do setor. O atributo matricula_chefe identifica 
o chefe do departamento e é uma chave estrangeira que faz referência ao atributo matricula 
da tabela SERVIDOR. 
Todos os valores de matricula_chefe devem se referir a valores existentes na tabela 
Servidor ou ser nulos. Por exemplo, as matrículas 134512 e 25128 estão corretamente 
associadas aos servidores João e Maria. O valor NULL na terceira linha indica que a 
Gerência de Pregão não tem um chefe cadastrado, o que é permitido. Porém, um valor 
789123 não seria válido, pois não há servidor com essa matrícula na tabela SERVIDOR. 
 
 
_________________________________________ 
 
 
35 
ATENÇÃO!!! 
A chave estrangeira de uma tabela deve referenciar a chave primária ou qualquer 
chave candidata da outra tabela? 
Pessoal, essa é uma daquelas típicas divergências que costumam pegar na hora da prova e 
infelizmente não temos uma conclusão bem definida, pois as bancas costumam adotar ambos 
os posicionamentos. 
Como a chave primária é uma escolha (mais ou menos arbitrária) dentre as chaves 
candidatas, basta que a chave estrangeira referencie uma chave CANDIDATA de outra 
tabela e não necessariamente uma chave primária. Porém, várias são as questões que dão 
como correta a afirmação de que a chave candidata referencia ou deve referenciar a chave 
PRIMÁRIA da outra tabela. 
 
Vejamos uma questão que afirma a possibilidade de relacionamento com a chave candidata: 
(CESPE - 2008 - STF - Analista Judiciário - Tecnologia da Informação) Chaves 
estrangeiras podem ser definidas como sendo um conjunto de atributos pertencentes a um 
esquema de relação que constituem chaves primárias ou candidatas em outros esquemas 
independentes. 
Gabarito: Certo. 
E agora uma que fala apenas de chave primária: 
(CESPE - 2015 - TJ-DFT - Analista Judiciário - Analista de Sistemas) Em um banco 
de dados relacional, a chave estrangeira que existe em uma tabela deve ser chave primária 
em outra tabela. 
Gabarito: Certo. 
 
E para finalizar, uma questão que restringe à chave primária: 
(CESPE - 2010 - TRT - 21ª Região (RN) - Analista Judiciário - Tecnologia da 
Informação) Uma chave estrangeira é um atributo ou uma combinação de atributos em 
uma relação, cujos valores são necessários para equivaler somente à chave primária de outra 
relação. 
Gabarito: Errado. 
Sugiro os seguintes posicionamentos: 
▪ Se a questão afirmar que a chave estrangeira pode referenciar a chave candidata, 
aceite como CORRETO. 
▪ Se a questão afirmar que a chave estrangeira deve referenciar a chave primária ou 
deve fazer parte da chave primária, aceite como CORRETO. 
▪ Se a questão for mais explícita e afirmar que a chave estrangeira referencia somente 
a chave primária ou indicar que não pode referenciar uma chave candidata, marque 
ERRADO. 
_________________________________________ 
 
 
36 
Vamos consolidar o nosso estudo sobre as chaves com um esquema!!! 
 
Esquema 6 – Chaves. 
 
20- (CESPE / CEBRASPE – MPE-TO - 2024 - Analista Ministerial) Julgue o item 
a seguir, referente a banco de dados. 
Em um banco de dados relacional, uma chave primária é o conjunto de um ou mais campos 
utilizados para identificar um único registro na tabela. 
Resolução: 
Perfeitamente. A chave primária permite distinguir os registros de uma tabela. Cada 
registro terá um valor diferente para a chave, permitindo que ele seja identificado e 
diferenciado dos demais. 
Suponha que matrícula seja a chave de uma tabela FUNCIONARIO. Logo, cada funcionário 
será identificado e diferenciado dos demais através desse atributo. João poderá ter matrícula 
123 e Maria 456. Todo funcionário deverá ter matrícula preenchida e não existirão dois 
funcionários com matrículas iguais. 
Gabarito: Certo. 
 
21- (CESPE / CEBRASPE – 2024 – ANAC - Especialista em Regulação de Aviação 
Civil) Acerca de bancos de dados relacionais, julgue o item que se segue. 
Definir um atributo como chave do tipo entidade significa que a propriedade de unicidade 
deve ocorrer para pelo menos uma entidade, portanto, quaisquer duas ou mais entidades 
podem ter, ao mesmo tempo, o mesmo valor para o atributo-chave. 
Resolução: 
A chave de uma entidade, isto é, a chave primária garante a propriedade da unicidade. 
Assim, duas entidades (ou dois registros) não devem possuir o mesmo valor para a chave. 
Gabarito: Errado. 
 
C
h
a
v
e
 c
a
n
d
id
a
ta
 
Superchave 
Conjunto de um ou 
mais atributos que, 
coletivamente, permitem 
identificar de forma 
exclusiva uma tupla. 
Chave 
Superchave com a 
propriedade adicional de 
que a remoção de 
qualquer dos atributos 
a faz deixar de ser 
chave. 
Chave primária 
Chave candidata que é 
escolhida pelo designer 
de banco de dados 
como o principal meio de 
identificar tuplas. 
Cada uma das 
chaves possíveis em 
uma relação. 
 Chave estrangeira 
Associa registros 
referenciando a chave 
primária ou candidata de 
outra relação. 
 
_________________________________________ 
 
 
37 
22- (CESPE / CEBRASPE - 2024 MPE-TO - Analista Ministerial) A respeito de 
modelagem relacional, modelagem dimensional e normalização das estruturas de dados, 
julgue o item que se segue. 
Chave estrangeira é um campo que aponta para a chave primária de outra tabela ou da 
mesma tabela, dessa forma, passa a existir uma relação entre duplas de duas tabelas ou de 
uma única tabela. 
Resolução: 
Uma chave estrangeira (ou externa) é um atributo ou conjunto de atributos em uma 
tabela que cria uma ligação lógica com a chave primária (ou candidata) de outra 
tabela, permitindo a associação de registros entre elas. Uma tabela pode se referir a ela 
mesma, formando um autorrelacionamento. 
Imagine uma tabela PESSOA com os campos (CPF, nome, cpf_conjuge). Nesse caso, o 
atributo cpf_conjuge é uma chave estrangeira que associa uma pessoa a outra pessoa, isto 
é, um registro da tabela PESSOA com outro registro da mesma tabela. 
Imagine os seguintes registros: 
(123, João, 456) 
(456, Maria, 123) 
(789, Pedro, NULL). 
Perceba que João é casado com Maria, pois, o cpf_conjuge de João faz referência ao de Maria 
e, vice versa. Já Pedro não é casado, pois o valor de cpf_conjuge é NULL. De todo modo, 
note que a chave estrangeira nesse caso faz referência a um campo da própria tabela. 
Gabarito: Certo. 
 
23- (CESPE / CEBRASPE - 2024 – MPO - Analista de Planejamento e 
Orçamento) Em relação a banco de dados relacionais, julgue o seguinte item. 
A chave estrangeira é definida como um conjunto de um ou mais campos para definir, 
univocamente, um único registro. 
Resolução: 
A chave estrangeira não serve para identificar registros, mas sim para fazer associações 
entre registros. A assertiva ficaria correta se fosse: 
A chave estrangeira chave primária, chave candidata, chave ou superchave é definida 
como um conjunto de um ou mais campos para definir, univocamente, um único registro. 
Gabarito: Errado. 
 
 
 
_________________________________________ 
 
 
38 
24- (CESPE / CEBRASPE - 2024 – MPO - Analista de Planejamento e 
Orçamento) Julgue o item a seguir a respeito de conceitos de banco de dados. 
A chave utilizada em uma tabela de dados que referencia outra tabela é a chave primária. 
Resolução: 
A chave que referencia outra tabela é a chave estrangeira (ou externa). A chave primária 
serve para identificar os registros de uma tabela. 
O esquema a seguir resume os principais conceitosde chave no modelo relacional: 
 
Gabarito: Errado. 
 
25- (FGV - 2024 – TJ-MS - Técnico de Nível Superior) Os principais sistemas de 
informação de uma organização armazenam seus dados transacionais em bancos de dados 
relacionais que são estruturados em tabelas que se relacionam entre si por meio da 
implementação de: 
a) chaves; 
b) índices; 
c) matrizes; 
d) métricas; 
e) nós e arestas. 
Resolução: 
O relacionamento entre tabelas é realizado por meio das chaves estrangeiras. 
Conceitualmente, uma chave estrangeira (ou externa) é um atributo ou conjunto de 
atributos em uma tabela que cria uma ligação lógica com a chave primária (ou 
candidata) de outra tabela, permitindo a associação de registros entre elas. 
Gabarito: Letra A. 
 
 
C
h
a
v
e
 c
a
n
d
id
a
ta
 
Superchave 
Conjunto de um ou 
mais atributos que, 
coletivamente, permitem 
identificar de forma 
exclusiva uma tupla. 
Chave 
Superchave com a 
propriedade adicional de 
que a remoção de 
qualquer dos atributos 
a faz deixar de ser 
chave. 
Chave primária 
Chave candidata que é 
escolhida pelo designer 
de banco de dados 
como o principal meio de 
identificar tuplas. 
Cada uma das 
chaves possíveis em 
uma relação. 
 Chave estrangeira 
Associa registros, 
referenciando a chave 
primária ou candidata de 
outra relação. 
 
_________________________________________ 
 
 
39 
1.7 Relacionamentos 
Um relacionamento é uma associação entre as tabelas. O relacionamento existe quando 
um ou mais dados de uma tabela estão relacionados de alguma forma com um ou mais dados 
de outra tabela. Existe também relacionamento de dados de uma tabela com outros dados 
desta mesma tabela, quando falamos em auto relacionamento. 
A chave estrangeira é usada para promover os relacionamentos entre as tabelas. É 
importante ressaltar que uma chave estrangeira faz a ligação lógica entre as tabelas, 
portanto, o relacionamento entre tabelas não existe fisicamente. 
Baseado na cardinalidade dos relacionamentos, isto é, no número de registros que um 
registro pode se associar via relacionamento, podemos ter os seguintes tipos: 
▪ Relacionamento um para um (1:1): neste tipo de relacionamento, cada registro 
de uma tabela se relaciona a um único registro de outra tabela. Este 
relacionamento é pouco comum nos modelos de bancos de dados relacionais. 
Existem três abordagens para implementar esse relacionamento: 
o Técnica da chave estrangeira: uma das duas tabelas possui a chave 
estrangeira. As duas tabelas podem ter inclusive chaves estrangeiras 
redundantes (duas tabelas). 
o Técnica de relação mesclada: mescla-se as duas entidades em uma única 
relação (uma única tabela). 
o Técnica de relação de referência cruzada: configura-se uma terceira 
tabela para realizar a referência cruzada das chaves primárias das duas 
tabelas sendo ligadas (três tabelas). 
 
EXEMPLIFICANDO!!! 
Vejamos um exemplo de relacionamento 1:1. 
 
Imagine uma escola com um Cadastro de Alunos na tabela Alunos e que apenas uma parte 
deles participa da Banda da Escola. Por questões de projeto do Banco de Dados, podemos 
criar uma Segunda Tabela "Alunos da Banda", a qual se relaciona com a tabela Alunos 
através de um relacionamento do tipo Um para Um. Cada aluno somente é cadastrado 
uma vez na Tabela Alunos e uma única vez na tabela Alunos da Banda. Poderíamos utilizar 
o Campo Matrícula do Aluno como o Campo que relaciona as duas Tabelas. 
Quando fosse necessário buscar as informações tais como nome, fone, etc, estas podem ser 
recuperadas através do relacionamento existente entre as duas tabelas, evitando, com isso, 
que a mesma informação (Nome, Rua, etc) tenha que ser duplicada nas duas tabelas, 
inclusive aumentando a probabilidade de erros de digitação. 
_________________________________________ 
 
 
40 
▪ Relacionamento um para muitos (1:N): cada registro de uma tabela A pode ser 
relacionar com mais de um registro da tabela B, no entanto cada registro da 
tabela B está relacionado a apenas um elemento de A. Uma das tabelas (o lado um 
do relacionamento) possui um campo que é a Chave Primária e a outra tabela (o lado 
muitos) se relaciona através de um campo cujos valores relacionados podem se repetir 
várias vezes. 
 
EXEMPLIFICANDO!!! 
Vejamos um exemplo de relacionamento 1:N. 
 
Nas tabelas apresentadas anteriormente, cada Cliente somente é cadastrado uma única vez 
na tabela de Clientes (por isso o campo Código do Cliente, na tabela Clientes, é uma chave 
primária, indicando que não podem ser cadastrados dois clientes com o mesmo código), 
portanto a tabela Clientes será o lado um do relacionamento. Ao mesmo tempo cada 
cliente pode fazer diversos pedidos, por isso que o mesmo Código de Cliente poderá 
aparecer várias vezes na tabela Pedidos: tantas vezes quantos forem os pedidos que o 
Cliente tiver feito. Por isso que temos um relacionamento do tipo Um para Muitos entre 
a tabela Clientes e Pedidos, através do campo Código do Cliente, indicando que um mesmo 
Cliente pode realizar diversos (muitos) pedidos. 
 
 
_________________________________________ 
 
 
41 
▪ Relacionamento muitos para muitos (N:M): neste tipo de relacionamento, para cada 
valor do campo de uma tabela, pode haver N valores no campo da outra tabela e 
vice-versa. O relacionamento N:M (muitos-para-muitos) possui uma característica 
diferente dos outros, pois os dados estão diretamente relacionados ao fato (ou ao 
relacionamento), além de às entidades (ou tabelas), como observamos nos outros 
tipos de relacionamentos vistos anteriormente. 
 
Em bancos de dados relacionais, esta relação consuma-se através de uma tabela de 
ligação que faz a correspondência de ambos os lados com relacionamento 1 para N para 
cada lado. A chave primária surge de forma natural, e é composta pela junção das chaves 
primárias das tabelas interligadas. 
 
EXEMPLIFICANDO!!! 
Vejamos um exemplo de relacionamento N:M. 
 
Neste exemplo, são relacionadas as tabelas Produtos e Pedidos através de uma terceira 
tabela Detalhes do Pedido. Perceba que as chaves primárias das duas tabelas fazem parte 
da tabela criada para o relacionamento. Note também que o próprio fato (ou 
relacionamento) Detalhes do Pedido possui atributos próprios como PreçoUnitário, 
Quantidade e Desconto. 
Este relacionamento demonstra que um Produto pode estar relacionado a diversos Pedidos. 
Por outro lado, um mesmo Pedido pode possuir mais de um Produto e, por isso, falamos em 
relacionamento muitos para muitos. 
 
 
ATENÇÃO!!! 
Embora raro, é possível indicar um número exato na cardinalidade 1:N ou N:N ao invés de 
simplesmente usar o N para muitos. Assim, é possível indicar cardinalidade 1:5 para 
demonstrar que cada registro de um lado pode se associar com até exatamente 5 do outro. 
 
_________________________________________ 
 
 
42 
Vamos fixar os tipos e características dos relacionamentos com um esquema!!! 
 
Esquema 7 – Relacionamentos. 
 
26- (CESPE / CEBRASPE - 2024 – CAU-BR - Analista) No que se refere a banco de 
dados relacional e orientado a objeto, julgue o item a seguir. 
Em um modelo relacional, a cardinalidade de 1 para 10 significa que cada registro em uma 
tabela pode estar associado a 10 registros em outra tabela. 
Resolução: 
Embora raro, é possível indicar um número exato na cardinalidade 1:N ou N:N ao invés de 
simplesmente usar o N para muitos. Assim, é possível indicar cardinalidade 1:10 para 
demonstrar que cada registro de um lado pode se associar com até exatamente 10 do outro. 
Imagine um condomínio com uma regra de que cada apartamento possa ter até, no máximo, 
3 vagas de garagem. Nesse caso, o relacionamento será 1:3, conforme diagrama a seguir: 
 
Gabarito: Certo. 
 
 
Um para um 
(1:1)
Cada registro de uma 
tabela se relaciona a um 
único registro de outra 
tabela.
1. Uma tabela mesclada.
2. Duas tabelas, uma com 
a chave estrangeira.
3. Três tabelas, com umatabela de ligação 
referenciando as originais.
Um para muitos 
(1:N)
Cada registro de uma 
tabela pode ser relacionar 
com mais de um registro
de outra, no entanto cada 
registro da segundaestá 
relacionado a apenas um 
registro da primeira. 
Chave estrangeira no 
lado muitos.
Muitos para 
muitos (N:M)
Cada registro em uma 
tabela pode estar 
relacionado a múltiplos 
registros em outra tabela 
e vice-versa
Tabela de ligação com 
chaves estrangeiras para 
cada tabela original.
https://www.tecconcursos.com.br/concursos/analista-cau-br-geotecnologia-2024
_________________________________________ 
 
 
43 
27- (CESPE - 2018 - STJ - Técnico Judiciário - Suporte Técnico) Acerca de banco 
de dados, julgue o item que se segue. 
Relacionamentos do tipo um-para-um podem ser representados em até três tabelas, de 
acordo com a obrigatoriedade do relacionamento. 
Resolução: 
No relacionamento 1:1, cada elemento de uma tabela se relaciona a um único elemento 
de outra tabela. Existem três abordagens para condições especiais para implementar esse 
relacionamento. 
▪ Técnica da chave estrangeira: uma das duas tabelas possui a chave estrangeira. As 
duas tabelas podem ter inclusive chaves estrangeiras redundantes (duas tabelas). 
▪ Técnica de relação mesclada: mescla-se as duas entidades em uma única relação (uma 
única tabela). 
▪ Técnica de relação de referência cruzada: configura-se uma terceira tabela para 
realizar a referência cruzada das chaves primárias das duas tabelas sendo ligadas (três 
tabelas). 
Gabarito: Certo. 
 
 
 
_________________________________________ 
 
 
44 
1.8 Restrições de integridade 
As regras ou restrições de integridade (constraints) são usadas para garantir a exatidão 
e consistência dos dados, refletindo corretamente a realidade modelada e protegendo o 
banco de dados contra danos acidentais. 
As restrições em bancos de dados podem divididas em três categorias principais: 
▪ Restrições inerentes no modelo de dados (ou restrições implícitas): envolvem 
as regras do próprio modelo, incluindo as características gerais das relações. 
Exemplo: em um modelo relacional, cada valor de atributo em uma tabela deve ser 
atômico, ou seja, indivisível. Isso significa que cada célula na tabela deve conter um 
único valor, não um conjunto ou lista de valores. 
 
▪ Restrições baseadas em esquema (ou restrições explícitas): podem ser 
diretamente expressas no esquema de banco de dados e na linguagem de 
definição de dados. As restrições baseadas em esquema incluem: 
o Restrições de domínio: especificam que, dentro de cada tupla, o valor de 
cada atributo deve ser um valor indivisível dentro do domínio desse 
atributo. Exemplo: o atributo idade de uma tabela SERVIDOR deve ser um 
número inteiro entre 18 e 75. 
o Restrições de nulidade ou de vazios: especifica se valores nulos são 
permitidos ou não para determinados atributos. Alguns atributos podem 
ser obrigatórios (NOT NULL) enquanto outros podem permitir nulos 
(NULL). Exemplo: o atributo nome de SERVIDOR não pode ser nulo, já o 
atributo data_ultima_promocao pode ser nulo. 
o Restrição de unicidade ou exclusividade: especifica se um atributo pode 
ou não se repetir. Alguns atributos podem se repetir e outros não 
(UNIQUE). Exemplo: o atributo CPF da tabela SERVIDOR deve ser único, 
não podendo se repetir. 
o Restrições de chave: duas tuplas distintas não podem ter valores idênticos 
para todos os seus atributos e para isso toda tabela deve possuir uma 
chave capaz de distinguir as tuplas. Exemplo: na tabela SERVIDOR, a 
chave é o campo matrícula. 
o Restrição de integridade de entidade: nenhum valor de chave primária 
pode ser nulo. Isso garante que cada registro pode ser identificado 
exclusivamente pela chave primária. Exemplo: o atributo matrícula de 
SERVIDOR, que é chave não pode ser nulo, devendo ser preenchido. 
o Restrição de integridade referencial: uma tupla em uma relação que 
referencia outra relação precisa se referir a uma tupla existente nessa 
relação. Isso assegura a consistência das referências entre tabelas. Exemplo: 
na tabela DEPARTAMENTOS, matricula_chefe deve referenciar uma 
matricula existente na tabela SERVIDOR. 
_________________________________________ 
 
 
45 
▪ Restrições baseadas em aplicação (ou restrições semânticas ou regras de 
negócios): devem ser expressas e impostas pelos programas de aplicação ou de 
alguma outra maneira. Exemplo: um servidor não pode ser promovido mais de uma 
vez por ano. Essa regra precisa ser verificada na aplicação que gerencia as 
promoções. 
 
ESCLARECENDO!!! 
Embora as restrições de chave e as restrições de unicidade estejam relacionadas, elas 
possuem diferenças importantes. 
▪ Restrição de chave: garante que cada registro seja identificável de forma única e 
não nula. Isso é alcançado através da chave primária ou chaves candidatas. 
▪ Restrição de unicidade: assegura que valores em uma coluna não devem se repetir. 
Diferente da chave, uma restrição de unicidade pode permitir valores nulos, mas 
cada valor não nulo deve ser único. Essa restrição pode ser aplicada a colunas que 
não fazem parte da chave. 
 
 
Esquematizando as restrições, temos que: 
 
Esquema 8 – Restrições de integridade. 
• Regras do próprio modelo, incluindo as características das 
relações.
Restrições inerentes no modelo de dados (ou 
restrições implícitas)
• Expressas no esquema de banco de dados e na linguagem de 
definição de dados. Incluem:
• Restrições de domínio
• Restrições de nulidade ou de vazios
• Restrição de unicidade ou exclusividade
• Restrições de chave
• Restrição de integridade de entidade
• Restrição de integridade referencial
Restrições baseadas em esquema (ou 
restrições explícitas)
• Expressas e impostas pelos programas de aplicação.
Restrições baseadas em aplicação (ou 
restrições semânticas ou regras de negócios)
_________________________________________ 
 
 
46 
28- (CESPE / CEBRASPE – 2024 - ANAC - Especialista em Regulação de Aviação 
Civil) Acerca de bancos de dados relacionais, julgue o item que se segue. 
Em bancos de dados relacionais, a restrição de integridade de entidade estabelece-se entre 
duas relações e é usada para manter a consistência entre as tuplas nessas duas relações. 
Resolução: 
A restrição que estabelece associação entre relações é a de integridade referencial. A 
restrição de entidade, por sua vez, garante que uma chave primária nunca seja nula. 
Gabarito: Errado. 
 
29- (CESPE / CEBRASPE - 2023 – DATAPREV - Analista de Processamento) A 
respeito de modelagem de dados, julgue o item a seguir. 
A integridade referencial é uma parte essencial de qualquer banco de dados relacional, que, 
entre outros benefícios, facilita as consultas. 
Resolução: 
Sim, a integridade referencial é uma parte essencial de qualquer banco de dados relacional 
e traz vários benefícios, incluindo a facilitação das consultas. A restrição de integridade 
referencial garante a associação correta entre tabelas por meio das chaves 
estrangeiras. Essa restrição estabelece que uma tupla em uma relação que referencia outra 
relação deve se referir a uma tupla existente nessa outra relação, assegurando a consistência 
das referências entre tabelas. 
A integridade referencial facilita as consultas porque garante que os dados estejam 
consistentes entre as tabelas. Isso permite que as consultas que dependem de relações entre 
tabelas sejam realizadas de maneira confiável e precisa, sem a necessidade de lidar com 
referências inválidas ou órfãs. Por exemplo, ao consultar os departamentos e seus 
respectivos chefes, a integridade referencial garante que cada matricula_chefe realmente 
exista na tabela Servidor, evitando erros e inconsistências nos resultados das consultas. 
Gabarito: Certo. 
 
30- (CESPE / CEBRASPE - 2023 – FUB - Analista de Tecnologia da Informação) 
Julgue o item subsecutivo, a respeito de administração de banco de dados 
Deacordo com a restrição de domínio de uma relação, em uma chave estrangeira, o valor 
do campo tem que coincidir com uma chave primária de uma tabela referenciada 
Resolução: 
A restrição referida na questão é a de integridade referencial, segundo a qual uma tupla 
em uma relação que referencia outra relação precisa se referir a uma tupla existente 
nessa relação. A restrição de domínio, por sua vez, especifica que, dentro de cada tupla, o 
valor de cada atributo deve ser um valor indivisível dentro do domínio desse atributo. 
Gabarito: Errado. 
_________________________________________ 
 
 
47 
31- (FCC - 2023 – MPE-PB – Analista Ministerial) A integridade semântica deve 
garantir que um dado inserido em uma linha da tabela tenha um valor válido. E para que 
este valor seja válido ele 
a) não pode estar em branco. 
b) deve ser do mesmo tamanho que o especificado nos metadados, desde que tenha sido 
especificado como tamanho fixo. 
c) não pode ser nulo. 
d) deve ter sido especificado nos metadados como um tipo de dado numérico inteiro. 
e) deve ser do mesmo tipo de dado definido na especificação da coluna na tabela. 
Resolução: 
Essa questão inicia toda confusa, pois cita restrição de integridade semântica. As restrições 
semânticas estão relacionadas as regras de negócio e não aos esquemas de bancos de dados, 
conforme trazidos nos itens. 
De todo modo, vamos analisar cada um dos itens: 
a) Incorreto: não pode estar em branco. Um valor válido para um atributo pode ser nulo, 
isto é, um atributo pode aceitar ausência de valor para algum registro. Sendo assim, é 
possível que um atributo possua valor válido, mesmo que “em branco”. 
b) Incorreto: deve ser do mesmo tamanho que o especificado nos metadados, desde que 
tenha sido especificado como tamanho fixo. Não há obrigatoriedade de um valor ser 
declarado como fixo. Se ele foi declarado como variável, também irá ocupar no máximo o 
tamanho definido. 
c) Incorreto: não pode ser nulo. Um valor válido para um atributo pode ser nulo, isto é, um 
atributo pode aceitar ausência de valor para algum registro. Sendo assim, é possível que um 
atributo possua valor válido, mesmo que “nulo”. 
d) Incorreto: deve pode ter sido especificado nos metadados como um tipo de dado 
numérico inteiro. Também pode ser de outros tipos, como caractere, booleano, etc. 
e) Correto: deve ser do mesmo tipo de dado definido na especificação da coluna na tabela. 
Essa é a restrição de domínio. É uma restrição explícita e não semântica. 
Contudo, como os demais itens também não trazem nenhuma restrição semântica e o único 
item que faz sentido para restrições é o e), então dava para marcar ele como correto. 
Gabarito: Letra E. 
 
 
_________________________________________ 
 
 
48 
1.9 Álgebra relacional 
A álgebra relacional define operações sobre relações, similar às operações algébricas como 
adição, subtração ou multiplicação, que operam em números. Assim como as operações 
algébricas tomam um ou mais números como entrada e retornam um número como saída, 
as operações de álgebra relacional tomam uma ou duas relações como entrada e 
retornam uma relação como saída. 
O termo predicado descreve a condição que deve ser satisfeita na operação. Devido a 
propriedade do fechamento, o resultado de uma operação com relações pode ser usado 
como entrada em outra operação, permitindo a composição de múltiplas operações. 
As operações da álgebra relacional são classificadas em: 
▪ Unárias: operam sobre uma única relação. São elas principalmente a seleção e a 
projeção, mas incluem também a renomeação e a atribuição. 
▪ Binárias: tomam duas relações como entrada. Incluem o produto cartesiano e a 
junção, a união, a interseção, a diferença e a divisão. 
 
A seguir, vamos descrever as principais operações da álgebra relacional. Primeiramente 
vejamos as duas principais operações unárias, a seleção e a projeção: 
▪ Seleção (σ): seleciona tuplas que satisfazem um determinado predicado. Esta 
operação, portanto, retorna um conjunto de tuplas (ou linhas) que cumprem 
determinada condição nos valores dos atributos. 
A sintaxe é σ(Relação). 
 
EXEMPLIFICANDO!!! 
Tomemos como exemplo uma tabela SERVIDOR que apresenta informações de 
matricula, nome e salário dos servidores de um órgão público. 
Agora suponha que você queira selecionar apenas os servidores que ganhem menos que 
13 mil por mês. Como você quer filtrar registros, então poderá usar a operação de 
SELEÇÃO da seguinte forma σsalario(Relação). 
 
EXEMPLIFICANDO!!! 
Vamos supor que não tenhamos interesse em divulgar os salários dos servidores, mas que 
tenha sido solicitado a lista de todos os servidores. Poderemos realizar esta consulta com 
base em uma operação de projeção: Пmatricula, nome (Servidor): 
SERVIDOR Пmatricula, nome (SERVIDOR) 
matricula nome salario matricula nome 
134512 João Aprovado 13.002,03 134512 João Aprovado 
251218 Maria Concursada 5.519,61 251218 Maria Concursada 
124578 Paulo Passou 13.002,03 124578 Paulo Passou 
131820 Glória Nomeada 5.519,61 131820 Glória Nomeada 
112035 Eduardo Posse 13.002,03 112035 Eduardo Posse 
Observe que a operação de projeção retorna somente os dados referentes as colunas 
escolhidas, reduzindo, assim, a quantidade de dados que precisam ser analisados. 
 
Outras duas operações unárias que podem ser utilizadas são as operações de renomeação e 
a de atribuição. Essas operações são utilizadas para facilitar a construção das consultas mais 
complexas que envolvam várias operações. 
▪ Renomeação (ρ): usada para alterar o nome de uma relação ou de um atributo. 
É útil para melhorar a compreensão ou evitar conflitos de nomes. 
A sintaxe é ρ(a1, a2, ..., an) (R) ou ρ(R) ou ρ (a1, a2, ..., an)(R), sendo R o nome 
original da relação, N o novo nome para a relação e (a1, a2, ..., an) os novos nomes 
para os atributos. 
 
▪ Atribuição ou designação (←): usada para armazenar o resultado de uma 
expressão relacional em uma nova relação. É útil para criar relações temporárias 
que podem ser usadas em operações subsequentes. 
A sintaxe é RelaçãoResultante ← Relação. 
 
DICA DO PROFESSOR!!! 
Dentre as operações unárias, foque principalmente nas de seleção e projeção, pois são as 
mais cobradas em questões. Um bizu é que a seLeção filtra Linhas para não confundir com 
a projeção que filtra colunas. 
Já as operações de renomeação e atribuição não são muito cobradas em provas, mas pelo 
menos as suas definições não são difíceis de entender, então vale saber que existem e 
conhecer seus conceitos e símbolos. 
_________________________________________ 
 
 
50 
Vamos abordar agora as operações binárias: 
▪ Produto cartesiano ou produto cruzado (X): combina todos os pares de linhas 
de duas relações de entrada, independente de eles terem correspondência. Dito 
de outra forma, cada linha da primeira relação é combinada com cada linha da 
segunda relação. O resultado conterá todos os atributos que compõem cada uma das 
relações que fazem parte da operação, mesmo que repetidos. 
A sintaxe é Relação1 X Relação 2. 
 
EXEMPLIFICANDO!!! 
Vejamos a operaçãode produto cartesiano Servidor X Cargo: 
SERVIDOR CARGO 
matricula nome salario nome_cargo salario 
134512 João Aprovado 13.002,03 Auditor 13.002,03 
251218 Maria Concursada 5.519,61 Agente 5.519,61 
124578 Paulo Passou 13.002,03 
A operação de produto cartesiano faz um cruzamento das duas tabelas, retornando todas 
as linhas da primeira tabela relacionadas com todas as linhas da segunda tabela. No 
exemplo, são criadas duas linhas para cada servidor, pois eles serão relacionados com os 
dois cargos existentes na segunda tabela. Logo, o resultado é: 
matricula nome salario nome_cargo salario 
134512 João Aprovado 13.002,03 Auditor 13.002,03 
134512 João Aprovado 13.002,03 Agente 5.519,61 
251218 Maria Concursada 5.519,61 Auditor 13.002,03 
251218 Maria Concursada 5.519,61 Agente 5.519,61 
124578 Paulo Passou 13.002,03 Auditor 13.002,03 
124578 Paulo Passou 13.002,03 Agente 5.519,61 
Note que não importa se há alguma relação entre os registros. Por exemplo, “João 
Aprovado” foi relacionado tanto com o cargo de “Auditor” como com o cargo de “Agente”, 
mesmo que o salário dele seja de “Auditor”. Da mesma forma todos os outros. 
 
 
▪ Junção (⋈): combina os pares de linhas de duas relações com base em alguma 
condição de correspondência entre os atributos das relações, retornando apenas 
as linhas que atendem a condição. Se a condição não for informada, haverá o 
relacionamento por meio de atributos comuns entre as tabelas (junção natural). O 
resultado não conterá atributos repetidos. 
A sintaxe é Relação1 ⋈ Relação 2. 
 
 
_________________________________________ 
 
 
51 
EXEMPLIFICANDO!!! 
Agora vejamos como fica a operação de junção entre Servidor ⋈ Cargo: 
SERVIDOR CARGO 
matricula nome salario nome_cargo salario 
134512 João Aprovado 13.002,03 Auditor 13.002,03 
251218 Maria Concursada 5.519,61 Agente 5.519,61 
124578 Paulo Passou 13.002,03 
A operação de junção seleciona linhas das duas tabelas, fazendo uma relação entre os com 
base em uma condição. Como não definida nenhuma condição específica, então será 
utilizado o atributo comum “salario” para fazer a correspondência entre as linhas. 
No exemplo, é criada uma linha para cada servidor associando-o ao cargo. O resultado é: 
matricula nome salario nome_cargo 
134512 João Aprovado 13.002,03 Auditor 
251218 Maria Concursada 5.519,61 Agente 
124578 Paulo Passou 13.002,03 Auditor 
Note que importa a correspondência. Assim, “João Aprovado” e “Paulo Passou” foram 
associados ao cargo de “Auditor”, pois possuem salário “13.002,03”. Já “Maria Concursada” 
foi associada ao cargo de “Agente” por conta do salário “5.519,61”. 
 
Através da álgebra relacional é possível implementar as operações bem conhecidas dos 
conjuntos como a União, Intersecção e Diferença. Preliminarmente, é importante destacar 
que estas operações são realizadas sobre duas relações com a mesma estrutura, isto é, 
com a mesma quantidade de atributos e cujos atributos possuem o mesmo domínio. 
▪ União (Ս): seleciona a união de tuplas das duas relações de entrada, isto é, as tuplas 
que estão na primeira relação, na segunda relação, ou em ambas. 
A sintaxe é Relação1 Ս Relação 2. 
EXEMPLIFICANDO!!! 
Consideremos duas tabelas, uma com dados dos Auditores e outra com dados dos Agentes: 
AUDITORES AGENTES 
matricula nome salario matricula nome salario 
134512 João Aprovado 13.002,03 251218 Maria Concursada 5.519,61 
124578 Paulo Passou 13.002,03 131820 Glória Nomeada 5.519,61 
112035 Eduardo Posse 13.002,03 
A operação de união AUDITORES Ս AGENTES terá como retorno uma tabela com 
todas as tuplas presentes na primeira tabela, na segunda tabela ou em ambas. 
matricula nome salario 
134512 João Aprovado 13.002,03 
124578 Paulo Passou 13.002,03 
112035 Eduardo Posse 13.002,03 
251218 Maria Concursada 5.519,61 
131820 Glória Nomeada 5.519,61 
Linhas da 1ª relação 
Linhas da 2ª relação 
+ 
_________________________________________ 
 
 
52 
▪ Intersecção (Ո): seleciona a intersecção de tuplas das duas relações de entrada, isto 
é, as tuplas que aparecem tanto na primeira relação quanto na segunda. 
A sintaxe é Relação1 Ո Relação 2. 
 
▪ Diferença ou Subtração (-): seleciona as tuplas que aparecem na primeira 
relação, mas não estão na segunda. 
A sintaxe é Relação1 - Relação 2. 
 
EXEMPLIFICANDO!!! 
Tomemos como base as tabelas a seguir: 
AUDITORES CHFES 
matricula nome salario matricula nome salario 
134512 João Aprovado 13.002,03 124578 Paulo Passou 13.002,03 
124578 Paulo Passou 13.002,03 131820 Glória Nomeada 5.519,61 
112035 Eduardo Posse 13.002,03 112035 Eduardo Posse 13.002,03 
 
Se quisermos selecionar somente os Auditores da primeira tabela que possuem chefia 
podemos fazer a operação de Interseção (AUDITORES Ո CHEFES) entre as duas tabelas: 
matricula nome salario 
124578 Paulo Passou 13.002,03 
112035 Eduardo Posse 13.002,03 
 
Caso contrário, se quisermos obter somente os Auditores da primeira tabela que não 
possuem chefia, é possível utilizar a operação Diferença (AUDITORES - CHEFES): 
matricula nome salario 
134512 João Aprovado 13.002,03 
 
 
As operações de união, intersecção e diferença podem ser representadas em diagramas: 
 
 
 
União 
A Ս B 
Intersecção 
A Ո B 
Diferença 
A - B 
Linhas que estão em ambas 
Linha somente na 1ª tabela 
_________________________________________ 
 
 
53 
Uma outra operação útil é a divisão, que é usada em alguns tipos especiais de consulta. 
▪ Divisão (÷): seleciona as tuplas de uma relação que possuem correspondência 
com todas as tuplas de outra relação. Um detalhe importante é que a comparação 
ocorrerá com base em atributos comuns de ambas as relações, mas o resultado irá 
apresentar os atributos que existem somente na primeira relação. 
 
EXEMPLIFICANDO!!! 
Vamos usar um exemplo com uma tabela que apresenta quais as certificações um Servidor 
possui e uma outra tabela que mostra as certificações requeridas para se candidatar a um 
projeto específico: 
CERTIFICACOES_SERVIDOR CERTIFICACOES_PROJETO 
matricula nome certificacao certificacao 
134512 João Aprovado PMP PMP 
134512 João Aprovado Java Java 
134512 João Aprovado ITIL 
124578 Paulo Passou PMP 
124578 Paulo Passou Java 
112035 Eduardo Posse PMP 
112035 Eduardo Posse ITIL 
Ao realizar a operação CERTIFICACOES_SERVIDOR ÷ CERTIFICAOES_PROJETO, 
o resultado será: 
matricula nome 
134512 João Aprovado 
124578 Paulo Passou 
A operação buscou os registros da primeira tabela que contenham todas as certificações da 
segunda tabela, isto é, que possuem as certificações PMP e Java. 
▪ “João” retornou no resultado, pois possui as certificações PMP e Java. Possui 
também a ITIL, mas essa não é relevante para a operação, pois ela não é exigida pela 
segunda tabela. 
▪ “Paulo” veio foi retornado pois possui exatamente as certificações PMP e Java. 
▪ “Eduardo” não retornou, pois possui a certificação PMP, mas não possui a 
certificação Java. Ou seja, ele não tem as duas exigidas. 
Note que somente aparecem os atributos que aparecem na primeira relação, mas não na 
segunda. Por isso, somente são apresentados os atributos matricula e nome. O atributo 
certificação é usado para realizar a operação, mas não é incluído no resultado. 
 
ATENÇÃO!!! 
Dentre essas operações, vale ressaltar que são consideradas primitivas (ou básicas), as 
operações de seleção, projeção, produto cartesiano, união e diferença, além da 
renomeação. Isso significa que elas são as operações básicas e não podem ser definidas em 
termos de outras. As demais são derivadas (ou compostas), isto é, que podem ser definidas 
em termos de operações primitivas. 
_________________________________________ 
 
 
54 
As operações da álgebra relacional são esquematizadas no quadro a seguir. 
Operações da álgebra relacional 
Seleção (σ) Filtra tuplasque satisfazem um predicado. 
Projeção (П) 
Filtra atributos especificados de todas as linhas da relação de entrada, 
removendo as tuplas duplicadas da saída. 
Renomeação (ρ) Altera o nome de uma tabela ou atributo. 
Produto 
cartesiano (X) 
Combina todos os pares de linhas de duas relações de entrada, 
independente de eles terem correspondência. 
União (Ս) Filtra tuplas que estão na primeira relação, na segunda, ou em ambas. 
Diferença (-) Filtra tuplas que aparecem na primeira relação, mas não na segunda. 
Junção (⋈) 
Combina pares de linhas de duas relações com base em alguma condição 
de correspondência entre os atributos 
Intersecção (Ո) Filtra tuplas que aparecem na primeira relação e também na segunda. 
Divisão (÷) 
Filtra tuplas de uma relação que possuem correspondência com todas 
as tuplas de outra relação. 
Atribuição (←) Armazena o resultado de uma operação em uma relação temporária. 
Esquema 9 – Operações com relações (álgebra relacional). 
 
APROFUNDANDO!!! 
Em álgebra relacional, dizemos que duas expressões ou operações são equivalentes se elas 
produzem o mesmo resultado ainda que sejam escritas ou executadas de maneiras 
diferentes. O símbolo ≡ é utilizado para equivalência. 
Um exemplo bem simples é o da conhecida propriedade da comutatividade na matemática. 
Assim, Servidor ⋈ Cargo ≡ Cargo ⋈ Servidor, isto é, essas duas operações são equivalentes. 
 
32- (CESPE / CEBRASPE - 2024 – FINEP - Analista) A respeito de modelagem 
relacional para combinar informações de duas relações quaisquer, é correto o uso de 
a) produto cartesiano. 
b) diagrama de esquema. 
c) chave primária. 
d) chave estrangeira. 
e) superchave. 
Resolução: 
O produto cartesiano é a operação que combina todos os pares de linhas de duas 
relações de entrada, independente de eles terem correspondência. 
Gabarito: Letra A. 
P
R
IM
IT
IV
A
S
 
D
E
R
IV
A
D
A
S
 
U
N
Á
R
IA
S
 
UNÁRIA 
B
IN
Á
R
IA
S
 
_________________________________________ 
 
 
55 
33- (VUNESP - 2024 - Prefeitura de São Bernardo do Campo - Analista de 
Tecnologia da Informação e Comunicações) Considere a seguinte tabela de um banco 
de dados relacional: 
Produto (ID, Nome, Fabricante, Peso) 
A consulta da álgebra relacional para obter o nome dos produtos e o peso, para itens com 
peso superior a 100 gramas é (suponha que o peso está expresso em gramas): 
a) πNome, Peso > 100 (Produto) 
b) πNome, Peso (σPeso > 100 (Produto)) 
c) πNome (Produto) (σPeso (Produto) > 100) 
d) σNome, Peso > 100 (Produto) 
e) σNome, Peso (πPeso > 100 (Produto)) 
Resolução: 
A consulta deseja obter somente alguns dos atributos (nome e peso), logo teremos uma 
projeção (π). Também deseja filtrar produtos com base em uma condição (peso > 100), logo 
teremos uma seleção (σ). Vamos montar essa consulta em dois passos: 
1. Filtragem de linhas com seleção: a operação de seleção é usada para filtragem de linhas, 
como a condição é Peso > 100, então teremos σPeso > 100 (Produto). Pronto, essa operação 
irá retornar apenas os produtos com peso maior que 100. 
2. Filtragem de colunas com projeção: depois de filtradas as linhas, queremos apenas os 
atributos nome e peso, portanto devemos fazer uma projeção sobre a operação anterior. A 
expressão fica então πNome, Peso (σPeso > 100 (Produto)). 
Quanto aos itens, podemos incrementar que: 
a) Incorreto: πNome, Peso > 100 (Produto) não aplica a operação de seleção. Além disso tenta 
colocar uma condição (>100) na operação de projeção, o que não é permitido. 
b) Correto: πNome, Peso (σPeso > 100 (Produto)) faz exatamente o solicitado no item. 
c) Incorreto: πNome (Produto) (σPeso (Produto) > 100) apresenta uma sintaxe totalmente 
equivocada para a operação de seleção. 
d) Incorreto: σNome, Peso > 100 (Produto) não aplica a operação de projeção. Além disso, tenta 
filtrar atributos na operação de seleção, o que não é correto. 
e) Incorreto: σNome, Peso (πPeso > 100 (Produto)) inverte a seleção com a projeção. É a projeção 
(π) que seleciona os atributos e a seleção (σ) que filtra as linhas com base em condições. 
Gabarito: Letra B. 
 
 
 
_________________________________________ 
 
 
56 
34- (FGV - 2018 - MPE-AL - Analista do Ministério Público - Administrador de 
Banco de dados) No contexto da otimização de consultas para bancos de dados, a Álgebra 
Relacional tem um papel importante, especialmente na construção das query trees para a 
representação de planos de execução. As operações primitivas da AR são definidas como as 
operações que não podem ser expressas por meio das demais operações. Assinale a opção 
que apresenta a lista que contém as cinco operações primitivas da AR. 
a) Diferença, divisão, projeção, seleção e união. 
b) Diferença, produto, projeção, seleção e união. 
c) Interseção, produto, projeção, seleção e união. 
d) Divisão, interseção, junção, seleção e união. 
e) Junção, produto, projeção, seleção e união. 
Resolução: 
São consideradas primitivas (ou básicas), as operações de seleção, projeção, produto 
cartesiano, união e diferença, além da renomeação, conforme esquema a seguir: 
As operações da álgebra relacional são esquematizadas no quadro a seguir. 
Operações da álgebra relacional 
Seleção (σ) Filtra tuplas que satisfazem um predicado. 
Projeção (П) 
Filtra atributos especificados de todas as linhas da relação de entrada, 
removendo as tuplas duplicadas da saída. 
Renomeação (ρ) Altera o nome de uma tabela ou atributo. 
Produto 
cartesiano (X) 
Combina todos os pares de linhas de duas relações de entrada, 
independente de eles terem correspondência. 
União (Ս) Filtra tuplas que estão na primeira relação, na segunda, ou em ambas. 
Diferença (-) Filtra tuplas que aparecem na primeira relação, mas não na segunda. 
Junção (⋈) 
Combina pares de linhas de duas relações com base em alguma condição 
de correspondência entre os atributos 
Intersecção (Ո) Filtra tuplas que aparecem na primeira relação e também na segunda. 
Divisão (÷) 
Filtra tuplas de uma relação que possuem correspondência com todas 
as tuplas de outra relação. 
Atribuição (←) Armazena o resultado de uma operação em uma relação temporária. 
 
Gabarito: Letra B. 
 
 
P
R
IM
IT
IV
A
S
 
D
E
R
IV
A
D
A
S
 
U
N
Á
R
IA
S
 
UNÁRIA 
B
IN
Á
R
IA
S
 
_________________________________________ 
 
 
57 
1.10 Normalização 
Um dos objetivos da abordagem de banco de dados é reduzir a redundância dos dados, 
evitando assim que dados duplicados sejam armazenados sem necessidade. Um dos modos 
de controlar a redundância é aplicar a normalização das tabelas. 
A normalização de dados pode ser considerada um processo de analisar os esquemas de 
relação dados com base em suas dependências funcionais e chaves primárias para conseguir 
as propriedades desejadas e a (1) minimização de redundância e (2) a minimização de 
anomalias de inserção, exclusão e atualização. 
Para normalizar o banco de dados, deve-se examinar as colunas (atributos) de uma entidade 
e as relações entre entidades (tabelas), com o objetivo de se evitar anomalias observadas na 
inclusão, exclusão e alteração de registros. Para adequar o banco de dados, é necessário 
avaliar com base em cinco regras (seis com a de boyce-codd), que recebem o nome de 
formas normais. Essas correspondem a um conjunto de regras de simplificação e 
adequação de tabelas. 
A forma normal de uma relação refere-se à condição de forma normal mais alta a que 
ela atende e, portanto, indica o grau ao qual ela foi normalizada. 
Vamos estudar a seguir as formas normais. 
 
1.10.1 As formas normais 
Primeira Forma Normal (1FN) 
Uma tabela está na Primeira Forma Normal (1FN) se, e somente se, todos os valores 
das colunas (todos os atributos) forem atômicos. Em outras palavras, uma tabela para 
estar na 1FN não pode possuir atributos multivalorados nem compostos. 
▪ Compostos: podem ser divididos em partes menores, que representam atributos 
mais básicos.O valor é a concatenação de seus componentes atributos simples. 
Podem formar hierarquia. Ex.: endereço completo com rua, número e cep. 
▪ Multivalorado: possui um conjunto de valores para a mesma entidade. Um 
atributo multivalorado pode possuir um limite mínimo e máximo para restringir 
o número de valores permitidos. Ex.: telefone que aceita mais de um número. 
Vale ressaltar que a 1FN é considerada parte da definição formal de uma relação no 
modelo relacional básico. Assim, só é considerado de fato um banco de dados 
relacional se as tabelas estiverem ao menos na primeira forma normal. 
Uma das consequências de um modelo não estar na 1FN é a existência de tabelas 
aninhadas. Como uma tabela que não está na 1FN pode conter atributos compostos e 
multivalorados, então esses atributos podem ser considerados verdadeiras tabelas dentro 
da tabela principal. Por exemplo, um atributo composto endereço formado por cidade, 
bairro, rua, número e cep pode ser facilmente compreendido como uma tabela aninhada 
formada por vários atributos atômicos. 
 
_________________________________________ 
 
 
58 
EXEMPLIFICANDO!!! 
Para os estudos das formas normais vamos utilizar exemplos de tabelas que não se 
encontram nas formas normais estudadas e como elas podem ser transformadas para se 
adaptar as regras. 
Assim, vamos tomar como exemplo a Tabela DEPARTAMENTO a seguir que não está 
em nenhuma forma normal, pois sequer está na 1FN. 
DEPARTAMENTO 
Nome_departamento Número_Departamento CPF_Gerente Localizacoes_Departamento 
Pesquisa 5 33344555587 Santo André, Itu, São Paulo 
Administração 4 98765432168 Mauá 
Matriz 1 88866555576 São Paulo 
 
A chave primária da tabela DEPARTAMENTO é Número_Departamento. 
Note que o atributo Localizacoes_Departamento é multivalorado, pois possui uma lista 
de valores para a mesma tupla. Perceba, por exemplo, que a primeira linha possui locais 
diversos como “Santo André”, “Itu” e “São Paulo”. Assim, está ferindo a 1FN, pois como 
vimos, para uma tabela está na 1FN, não pode ter atributos compostos nem multivalorados. 
Para deixar essa tabela na 1FN, temos então que definir somente atributos atômicos. 
Podemos nesse caso simplesmente desmembrar os atributos multivalorados de 
Localizacoes_Departamento em mais de uma linha, repetindo as demais informações. 
Dessa forma teremos: 
DEPARTAMENTO 
Nome_departamento Número_Departamento CPF_Gerente Localizacoes_Departamento 
Pesquisa 5 33344555587 Santo André 
Pesquisa 5 33344555587 Itu 
Pesquisa 5 33344555587 São Paulo 
Administração 4 98765432168 Mauá 
Matriz 1 88866555576 São Paulo 
 
Perceba que agora todas as colunas contêm apenas valores atômicos e, portanto, essa tabela 
está na 1FN. 
 
Um conceito relevante para o entendimento das próximas formas normais é o de 
dependência funcional (DF), que é um relacionamento entre dois ou mais atributos de 
forma que o valor de um atributo identifique o valor para cada um dos outros atributos, ou 
seja, um atributo está relacionado a outro. A dependência funcional pode ser ilustrada por 
→. Assim, em A → B, temos que “A determina B” ou “B é dependente (funcionalmente) 
de A”, isto é, o valor de B pode ser descoberto sabendo o valor de A. 
Por exemplo, CPF → Nome, significa que a partir do CPF de alguém, é possível encontrar 
o nome dessa pessoa. 
 
_________________________________________ 
 
 
59 
Segunda Forma Normal (2FN) 
Uma relação está na Segunda Forma Normal (2FN) se, e somente se, estiver na 1FN e 
cada atributo não-chave for dependente da chave primária (ou candidata) inteira, isto 
é, cada atributo não-chave não poderá ser dependente de apenas parte da chave. 
Trata-se de uma dependência funcional total. 
Chamo a atenção que não basta a dependência total para que uma tabela esteja na 2FN, pois 
ela deve estar antes de tudo na 1FN. Além disso, caso a chave primária da tabela seja 
formada por apenas um atributo, estando a tabela na 1FN, estará automaticamente na 2FN. 
 
EXEMPLIFICANDO!!! 
Vamos utilizar a Tabela FUNC_PROJ que já está na 1FN. Nestes exemplos, DF significa 
Dependência Funcional. 
 
A chave primária desta tabela é formada por {Cpf, Projnumero}. 
Note, que embora essa tabela esteja na 1FN, os atributos Projnome e Projlocal dependem 
apenas de Projnumero, isto é, apenas de parte da chave primária. Do mesmo modo, temos 
o atributo Fnome que depende apenas do Cpf. 
Para deixar essa tabela na 2FN, temos que fazer com que todos os atributos não chave 
dependam da chave inteira. Para este caso, teremos que separar os atributos em três tabelas: 
 
Agora, todos os atributos não chave dependem das chaves inteiras das respectivas tabelas. 
Note que nesse caso, a tabela FP1 possui como chave os atributos {Cpf, Projnumero}, 
sendo que o atributo Horas depende da totalidade dessa chave. Do mesmo modo, na tabela 
FP2, o atributo Fnome depende da totalidade da chave {Cpf} e na tabela FP3, os atributos 
Projnome e Projlocal dependem da totalidade da chave Projnumero. 
Ressalto que as tabelas FP2 e FP3 possuem somente um atributo como chave, logo, como 
estão na 1FN, também estão na 2FN. 
Essas tabelas estão na 2FN, pois todos os atributos não chave dependem totalmente de uma 
chave primária (ou candidata). 
 
 
_________________________________________ 
 
 
60 
Terceira Forma Normal (3FN) 
Uma relação está na Terceira Forma Normal (3FN) se estiver na 2FN e cada atributo 
não chave não possuir dependência transitiva, para cada chave candidata. Todos os 
atributos não-chave da tabela devem ser independentes uns dos outros, ao mesmo tempo 
que devem ser dependentes exclusivamente da chave primária (ou candidata). 
EXEMPLIFICANDO!!! 
Vamos agora utilizar a tabela FUNC_DEP que já está na 2FN (perceba que aqui não há 
dúvida, pois, a chave primária é formada por um único atributo {Cpf}. 
 
Note que nesta tabela, temos uma dependência transitiva entre alguns atributos, pois 
Dnome e Cpf_gerente dependem do atributo não chave Dnumero, que, por sua vez, 
depende da chave {Cpf}. Esquematicamente temos (→ indica determina): 
Se Cpf → Dnumero 
E Dnumero → Dnome 
Logo, Cpf → Dnome 
Para passar para a 3FN, podemos dividir a tabela em duas outras: 
 
 
 
Agora, todos os atributos não chave dependem exclusivamente das chaves de cada tabela, 
sem dependências transitivas. Note que nesse caso, a tabela DF1 possui a chave {Cpf} e 
todos os atributos dependem exclusivamente desta chave. O mesmo ocorre para a tabela 
DF2, em que os atributos Dnome e Cpf_gerente dependem diretamente de Dnumero. 
Essas tabelas estão na 3FN, pois todos os atributos não chave dependem exclusivamente 
de uma chave primária. 
 
ATENÇÃO!!! 
É comum as definições das formas normais em questões se referirem apenas a chave 
primária. Isso ocorre, pois muitas vezes nos livros e fontes sobre o tema, é a chave usada 
como base de explicação. Contudo, lembre-se de que a chave primária é uma escolha dentre 
as candidatas possíveis, então o que vale para a primária, vale para a candidata. De todo 
modo, não elimine um item apenas por ele citar somente a chave primária, pois vai encontrar 
várias questões dadas como corretas afirmando que “na 2FN, cada atributo não chave deve 
depender da totalidade da chave primária” ou “na 3FN, os atributos devem depender 
exclusivamente da chave primária”. Isso é aceitável assim como se fizer referência explícita 
a chave candidata também, ou somente a chave. 
_________________________________________ 
 
 
61 
As formas normais 1FN, 2FN e 3FN foram as definidas originalmente por Edgar F. Codd, 
sendo as mais importantes para resolver as questões de prova. Contudo, hoje existem outras 
formas normais aceitas como a FNBC, a 4FN e 5FN. 
 
Forma Normal de Boyce-Codd (FNBC) 
Uma tabela está na Forma Normal de Boyce-Codd (FNBC ou BCNF) se, e somente se, 
estiver na 3FN e todo determinante é chave candidata. Dessa forma, não há 
dependênciasentre atributos não chave. É considerada uma variação forte da 3FN. 
 
EXEMPLIFICANDO!!! 
Vamos ver o seguinte exemplo de passagem para a forma normal de boyce codd. Veja a 
tabela Lotes1A a seguir: 
 
 
 
Suponha que tenhamos milhares de lotes na relação, mas que eles sejam de apenas duas 
cidades: Ribeirão Preto e Analândia. Suponha também que os tamanhos de lote em Ribeirão 
Preto sejam de apenas 0,5, 0,6, 0,7, 0,8, 0,9 e 1,0 hectare, enquanto os tamanhos de lotes em 
Analânda sejam restritos a 1,1, 1,2, ..., 1,9 e 2,0 hectares. Isso significa que Area determina 
Nome_cidade. Como Area não é uma chave candidata, então esta tabela não está na FNBC. 
 
Ao passar para a forma normal de boyce-codd, separamos a tabela LOTES1A em duas para 
que agora a área, que é um determinante, seja chave de uma tabela. 
 
 
Agora, temos somente chaves como determinantes. Esquematicamente: 
 
Em LOTES1AX: 
Propriedade_num → Area 
Propriedade_num → Num_lote 
Em LOTES1AY: 
Area → Nome_cidade 
 
 
_________________________________________ 
 
 
62 
Quarta Forma Normal (4FN) 
Uma tabela está na Quarta Forma Normal (4FN) se, e somente se, está na 3FN e não 
possui dependência multivalorada. 
▪ Dependência multivalorada: dependência entre conjuntos de atributos. 
 
EXEMPLIFICANDO!!! 
Vamos ver o seguinte exemplo de passagem para quarta forma normal. Veja a tabela 
Revendas a seguir preenchida com dados de representantes, clientes e produtos: 
REVENDAS 
 Representante Cliente Produto 
1 Martins Sá e Filhos Louça 
2 Martins Sá e Filhos Talheres 
3 Martins DMI, Lda Louça 
4 Martins DMI, Lda Talheres 
5 Castro Sá e Filhos Cintos 
6 Castro Sá e Filhos Meias 
7 Castro Sá e Filhos Lenços 
8 Castro YSL Cintos 
9 Castro YSL Meias 
10 Castro YSL Lenços 
 
Conforme a figura acima, temos uma tabela relacionando representante, cliente e produto. 
Um representante pode vender para vários clientes e vários produtos. Isso gera uma 
grande redundância nas informações. Para evitar essa repetição de informações, devemos 
dividir a tabela: 
REPRESENTANTE_CLIENTE REPRESENTANTE_PRODUTO 
Representante Cliente Representante Produto 
Martins Sá e Filhos Martins Louça 
Martins DMI, Lda Martins Talheres 
Castro Sá e Filhos Castro Cintos 
Castro YSL Castro Meias 
 Castro Lenços 
 
Agora, não há dependências entre conjuntos de atributos. Logo, as duas tabelas estão na 
quarta forma normal. 
 
 
 
 
 
 
_________________________________________ 
 
 
63 
Quinta Forma Normal (5FN) 
Uma tabela está na Quinta forma normal (5FN) se, e somente se, está na 4FN e não 
possui dependência de junção. Na 5FN, o conteúdo de um registro não pode ser 
reconstruído (junção) a partir de outros registros menores, extraídos do registro 
principal. 
▪ Dependência de junção: dependência entre conjuntos de atributos, com mais 
de dois atributos. 
 
EXEMPLIFICANDO!!! 
Suponha que houve uma divisão de uma tabela em duas tabelas menores, da seguinte forma: 
 
 
 
 
 
 
 
 
Se, por algum motivo, eu tiver que reconstruir a tabela Revendas sem ter todos os seus 
dados, isso não será possível somente com os dados das tabelas menores, pois não há 
representação de que vendas foram realizados a que clientes. Logo, há uma dependência de 
junção. 
Para resolver esse problema, eu preciso de uma terceira tabela para conseguir reconstruir 
a tabela maior. Assim, eu precisarei de uma tabela auxiliar que me apresente que produtos 
foram vendidos a que clientes. 
 
 
 
 
 
 
 
Agora sim, como base nessas três tabelas menores, eu consigo reconstruir a tabela maior. 
 
_________________________________________ 
 
 
64 
Identificando as formas normais 
Pessoal, muitas são as questões literais acerca das características das formas normais. 
Contudo, algumas questões pedem para que você identifique a forma normal de uma tabela. 
Para auxiliar nesse processo, vou apresentar a seguir alguns exemplos de como realizar 
essa identificação. 
 
EXEMPLIFICANDO!!! 
Dada a tabela a seguir e sabendo que sua chave primária é composta por OAB_Advogado e 
ID_Cliente, vamos avaliar sua forma normal: 
 
OAB_Advogado ID_Cliente Valor_Da_Causa Percentual_De_Honorário Valor_Total_Honorário 
12345-SC 1 25000 30 7500 
97845-SP 2 120000 20 24000 
3469-SP 3 1450000 10 145000 
 
Para avaliar em que forma normal essa tabela está, vamos analisar uma a uma das formas 
normais, isto é, da primeira à quinta para verificar se ela descumpre alguma. Se ela 
descumprir uma específica, então, a tabela está na forma normal imediatamente anterior. 
Vamos lá então: 
1ª Forma Normal: a tabela possui somente atributos atômicos, isto é, não possui nenhum 
atributo multivalorado ou composto. Logo, está na 1FN. 
2ª Forma Normal: dada a chave composta {OAB_Advogado, ID_Cliente}, nenhum dos 
atributos não chave depende de apenas parte dessa chave, isto é, não há dependência parcial. 
O valor da causa, o percentual de honorário e o valor total do honorário dependem de ambos 
os atributos da chave, não sendo relacionado a somente um deles. Isto é, eles não são 
atributos que dependem apenas do advogado e nem apenas do cliente, mas da junção desses 
dois em um processo. 
3ª Forma Normal: o fato de possuir um campo de cálculo fere a 3FN, pois teremos a 
existência de um atributo que não depende exclusivamente da chave primária da tabela. 
Nesse caso, Valor_Total_Honorário depende dos atributos Valor_da_Causa e 
Percentual_do_Honorário, que não são chaves. 
Dessa forma, ficamos com, no máximo, a Segunda Forma Normal para esta relação. 
 
 
 
 
 
 
 
_________________________________________ 
 
 
65 
EXEMPLIFICANDO!!! 
Dada a tabela a seguir e sabendo que sua chave primária é composta por Aluno e Disciplina, 
vamos avaliar sua forma normal: 
Aluno Disciplina Professor 
Carlos Química Ana 
Carlos Física Antônio 
Marta Química Ana 
Marta Português Maria 
João Português Manoel 
Vamos analisar cada uma das formas normais: 
1ª Forma Normal: a tabela possui somente atributos atômicos, isto é, não possui nenhum 
atributo multivalorado ou composto. Logo, está na 1FN. 
2ª Forma Normal: somente existe um atributo não chave: o atributo Professor. Este 
atributo depende de todos os atributos da chave, isto é, de Aluno e de Disciplina. Logo, eu 
não tenho dependência parcial e, portanto, a tabela está na 2FN. 
3ª Forma Normal: se eu só tenho um atributo não chave, não é possível ter uma 
dependência transitiva. O atributo Professor depende diretamente da chave {Aluno, 
Disciplina}. Logo, a tabela está na 3FN. 
FNBC: todo determinante deve ser chave, então vejamos quem são os determinantes da 
tabela: 
{Aluno, Disciplina} -> Professor 
Professor -> Disciplina. 
Logo, há um determinante que não é chave da tabela, pois Professor determina a Disciplina. 
Logo, esta tabela não está na FNBC. 
Dessa forma, ficamos com, no máximo, a Terceira Forma Normal para esta relação. 
 
 
EXEMPLIFICANDO!!! 
A tabela a seguir não está nem na primeira forma normal. Observe-a: 
Código_cliente Nome Telefone Endereço 
CD001 José 
9563-6352 
9847-2501 
Rua Seis, 85 
Morumbi 
12536-965 
CD002 Maria 3265-8596 
Rua Onze, 64 
Moema 
65985-963 
CD003 Jânio 
8545-8956 
9598-6301 
Praça Ramos 
Liberdade 
68858-633 
Perceba que “Telefone” é multivalorado, pois aceita mais de um valor. Além disso, Endereço 
é composto, sendo claramente representando como um conjunto de vários componentes 
menores (Rua, número, cidade e CEP). 
_________________________________________ 
 
 
66 
Resumo das formas normais 
O esquema a seguir consolida as principais informações acerca de cada forma normal: 
 
Esquema 10 – Formas normais. 
 
35- (CESPE / CEBRASPE - 2024 – CAU-BR - Analista) No que se refere a banco de 
dados, julgue o próximo item. 
Para que uma tabela esteja na terceira forma normal, é suficiente que ela não possua 
nenhuma coluna não-chave que dependade outra coluna não-chave. 
Resolução: 
São dois os requisitos para uma tabela estar na terceira forma normal: 
▪ Estar na 2FN. 
▪ Não possuir dependências transitivas, isto é, não possui colunas não chave 
dependendo de outros não chave. 
Nesse caso, não é suficiente apenas o segundo requisito, por isso a assertiva está errada. 
Gabarito: Errado. 
•Todos os atributos são atômicos (sem atributos multivalorados ou compostos).
1FN
•Está na 1FN.
•Não possui dependência parcial. Cada atributo não-chave é dependente da 
chave primária (ou candidata) inteira e não de apenas parte dela.
2FN
•Está na 2FN.
•Não possui dependência transitiva. Cada atributo não-chave depende 
exclusivamente da chave primária (ou candidata) e não de atributos não-chave.
3FN
•Está na 3FN (variação forte da 3FN).
•Todo determinante é chave candidata, não hávendo dependências entre 
atributos não chave.
FNBC
•Está na 3FN.
•Não possui dependência multivalorada.
4FN
•Está na 4FN.
•Não possui dependência de junção.
5FN
_________________________________________ 
 
 
67 
36- (CESPE / CEBRASPE - 2024 – CTI - Tecnologista Júnior) A respeito da 
normalização de dados no design de bancos de dados relacionais, julgue o item que se segue. 
Considere a seguinte tabela ItemVenda e seus atributos. 
Tabela ItemVenda 
• CodVenda: chave primária 
• CodProduto: chave primária 
• Qtd 
• PrecoProduto 
Se a coluna PrecoProduto depender do valor da coluna CodProduto, que é parte da chave 
primária da tabela ItemVenda, então, haverá dependência funcional total. 
Resolução: 
A assertiva citou uma dependência funcional parcial e não total, pois afirmou que 
CodProduto depende apenas de parte da chave da tabela. 
Gabarito: Errado. 
 
37- (CESPE / CEBRASPE – MPO - 2024 - Analista de Planejamento e 
Orçamento) Acerca de fundamentos dos bancos de dados relacionais, normalização, 
diagrama entidade-relacionamento e linguagem SQL, julgue o item a seguir. 
Nos bancos de dados relacionais, enquanto a segunda forma normal é baseada no conceito 
de dependência transitiva, a terceira forma normal baseia-se no conceito de dependência 
funcional total. 
Resolução: 
A assertiva inverteu as formas normais. O correto seria: Nos bancos de dados relacionais, 
enquanto a segunda terceira forma normal é baseada no conceito de dependência transitiva, 
a terceira segunda forma normal baseia-se no conceito de dependência funcional total. 
Gabarito: Errado. 
 
38- (CESPE / CEBRASPE - 2023 – FUB - Analista de Tecnologia da Informação) 
Acerca de bancos de dados relacionais, julgue o item seguinte. 
As tabelas que estejam na primeira forma normal (1FN) e que possuam apenas uma coluna 
como chave primária também estão na segunda forma normal (2FN). 
Resolução: 
Exatamente. Se a chave é simples (única coluna), então não há como se falar em dependência 
parcial, e, por consequência, não é possível violar a 2FN. Somente é possível identificar 
dependência parcial caso haja uma chave composta (mais de uma coluna). 
Gabarito: Certo. 
_________________________________________ 
 
 
68 
39- (FGV - 2024 – TJ-MS - Técnico de Nível Superior) A normalização de dados é o 
processo de analisar os esquemas de relações com base nas dependências funcionais de seus 
atributos e chaves primárias, envolvendo uma série de Formas Normais (FN). Observe o 
esquema da tabela “Pedido”, a seguir. 
 
A tabela "Pedido" possui chave primária composta (ID_PEDIDO, ID_CLIENTE), 
atributos com valores atômicos e dependência parcial de coluna não chave 
(NOME_CLIENTE) com parte da chave primária (ID_CLIENTE). 
 Com base nisso, “Pedido” está normalizada na FN: 
a) 1FN; 
b) 2FN; 
c) 3FN; 
d) 4FN; 
e) 5FN. 
Resolução: 
Com base nas informações dadas, vamos avaliar as formas normais para essa tabela: 
1ª Forma Normal: a descrição da questão foi clara em citar que os atributos possuem 
“valores atômicos”. Logo, como não há atributos compostos ou multivalorados, a tabela está 
na primeira forma normal. 
2ª Forma Normal: a própria questão citou que há dependência parcial da coluna 
NOME_CLIENTE para parte da chave ID_CLIENTE. Assim, havendo dependência de 
um atributo não chave em relação a apenas parte da chave, isto é, dependência parcial, essa 
tabela viola a segunda forma normal. 
Dessa forma, ficamos com, no máximo, a Primeira Forma Normal para esta relação. 
Gabarito: Letra A. 
 
40- (FGV - 2023 – SEFAZ-MT - Fiscal de Tributos Estaduais) A normalização das 
estruturas de dados é uma etapa importante do processo de modelagem relacional para 
eliminar distorções ou anomalias no modelo. 
Diz-se que uma tabela está na segunda forma normal, de acordo com as regras de 
normalização, se ela está na primeira forma normal e 
a) as linhas da tabela são unívocas, sem chaves compostas e todos os seus atributos são 
atômicos. 
b) as linhas não contêm itens repetitivos, atributos com valores nulos e nem 
multidimensionais. 
_________________________________________ 
 
 
69 
c) cada uma das colunas não pertencentes à chave primária não for dependente parcialmente 
dessa chave. 
d) contém apenas chaves externas e conecta-se a outras tabelas por múltiplas junções. 
e) as colunas não pertencentes à chave primária ficam determinadas transitivamente por 
esta. 
Resolução: 
Vamos analisar cada um dos itens: 
a) Incorreto: as linhas serem unívocas é uma característica do próprio modelo relacional. 
As chaves podem ser simples ou compostas. Até aqui não temos relação com nenhuma 
forma normal. Já a exigência de atributos atômicos é da primeira forma normal. 
b) Incorreto: as linhas não conterem itens repetitivos para todos os seus atributos e a 
possibilidade de aceitar valores nulos são características do próprio modelo relacional, não 
fazendo parte da definição de nenhuma forma normal. 
c) Correto: cada uma das colunas não pertencentes à chave primária não for dependente 
parcialmente dessa chave. Essa é a definição da segunda forma normal, em que as colunas 
não chave devem depender da totalidade da chave e não apenas de parte dela. 
d) Incorreto: a possibilidade de uma tabela possui chaves externas que permitam junções 
não está relacionada a nenhuma forma normal. 
e) Incorreto: as colunas não pertencentes à chave primária não ficam determinadas 
transitivamente por esta. É a terceira forma normal que garante a inexistência de 
dependências transitivas entre atributos não chave. 
Gabarito: Letra C. 
 
41- (FCC - 2023 – TRT 12ª Região - Analista Judiciário) Uma tabela está na segunda 
forma normal (2FN) se e somente se 
a) não contém atributos multivalorados, mas contém tabelas aninhadas e atributos 
candidatos que dependem de somente uma parte da chave primária. 
b) contém atributos multivalorados, mas não contém tabelas aninhadas e nem atributos 
candidatos que dependem de somente uma parte da chave primária. 
c) contém tabelas aninhadas, mas não contém atributos multivalorados e nem atributos não 
chave que dependem de somente uma parte da chave primária. 
d) não contém tabelas aninhadas e nem atributos multivalorados. 
e) não contém tabelas aninhadas nem atributos multivalorados e todos seus atributos não 
chave são dependentes da totalidade da chave primária. 
 
 
 
_________________________________________ 
 
 
70 
Resolução: 
Vamos analisar a qual forma normal se refere cada um dos itens: 
a) Incorreto: se contém tabelas aninhadas nem está na primeira forma normal. Se não 
está na primeira, não pode estar na segunda. Além disso, atributos que dependem somente 
de parte da chave violam a regra da segunda. 
b) Incorreto: se contém atributos multivalorados nem está na primeira forma normal. 
Se não está na primeira, não pode estar na segunda. 
c) Incorreto: se contém tabelas aninhadas nem está na primeira forma normal. Se não 
está na primeira, não pode estar na segunda. Além disso, atributos que dependem somente 
de parte da chave violam a regra da segunda.d) Incorreto: não contém tabelas aninhadas e nem atributos multivalorados. Isso só 
garante que esteja na primeira, mas não garante que esteja na segunda, pois além de estar 
na primeira precisa também não ter dependência parcial para estar na segunda. 
e) Correto: não contém tabelas aninhadas nem atributos multivalorados, logo está na 
primeira forma normal, e todos seus atributos não chave são dependentes da totalidade da 
chave primária, estando também na segunda forma normal. 
Gabarito: Letra E. 
 
_________________________________________ 
 
 
71 
1.10.2 TEMA AVANÇADO: análise de dependências e formas normais 
Um tema mais avançado, mas que é abordado vez por outra é o de análise de dependências 
funcionais, bem como a repercussão dessa análise na definição de uma forma normal. 
 
DICA DO PROFESSOR!!! 
A Fundação Getúlio Vargas é, principalmente, a banca que costuma trazer questões sobre 
esses temas. Sendo assim, vou trazer uma discussão sobre isso, mas se você não estiver 
estudando para concurso dessa banca, sugiro deixar esse tópico de lado. 
 
Uma dependência funcional é um relacionamento entre dois ou mais atributos de forma 
que o valor de um atributo identifique o valor para cada um dos outros atributos, ou seja, 
um atributo está relacionado a outro. A dependência funcional pode ser ilustrada por →. 
Assim, em A → B, temos que “A determina B” ou “B é dependente (funcionalmente) de 
A”, isto é, o valor de B pode ser descoberto sabendo o valor de A. 
 
EXEMPLIFICANDO!!! 
Em uma tabela com os atributos CPF, nome e salário, temos as seguintes dependências 
funcionais: 
CPF → nome; (a partir do CPF podemos facilmente descobrir o nome). 
CPF → salário; (a partir do CPF podemos facilmente descobrir o salário). 
CPF → nome, salário; (a partir do CPF podemos facilmente descobrir o nome e o salário). 
Por outro lado: 
salario → nome não é uma dependência válida. (não podemos descobrir o nome apenas com 
o valor do salário, pois inclusive podemos ter vários nomes para um mesmo salário). 
 
 
Sabendo-se o que é uma dependência funcional, temos que saber como identificar suas 
influências nas principais formas normais, isto é, da 1FN a FNBC. Vejamos então: 
▪ Primeira Forma Normal (1FN): não é baseada em dependência funcional. Essa 
forma normal é baseada na presença somente de atributos atômicos, então devem 
ser analisados os atributos em separado e não a relação entre eles. 
 
 
 
 
 
_________________________________________ 
 
 
72 
▪ Segunda Forma Normal (2FN): não podemos ter dependências parciais. Se A, 
B forem a chave composta de uma tabela, então não podemos ter nenhum atributo 
não chave que dependa somente de A ou somente de B. 
 
EXEMPLIFICANDO!!! 
Dada a seguinte estrutura de tabela, cuja chave seja {nro-pedido, nro-peça}: 
pedido (nro-pedido, data, nro-peça, descrição, qtdade_comprada, preço_cotado) 
 
E as seguintes dependências funcionais: 
nro-pedido → data 
nro-peça → descrição 
{nro-pedido, nro-peça} → {qtdade_comprada, preço_cotado} 
 
Perceba que, nesse exemplo, temos atributos que dependem apenas de parte da 
chave. Data depende apenas do nro-pedido e descrição apenas do nro-peça. Assim, 
essa relação não está na 2FN. 
 
A solução para resolver isso é separar as partes da chave em tabelas diferentes: 
pedido (nro-pedido, data) 
peça (nro_peça, descrição) 
pedido_peça (nro_pedido, nro_peça, qtdade_comprada, preço_cotado) 
 
▪ Terceira Forma Normal (3FN): não podemos ter dependências transitivas. Não 
podemos então ter A → B, B → C e A → C, desde que C não seja chave candidata 
ou subconjunto de qualquer chave. 
EXEMPLIFICANDO!!! 
Dada a seguinte estrutura de tabelas, que tem como chave primária SSN (Social 
Security Number): 
emp_dept (enome, ssn, datanasc, endereco, dnumero, dnome, degerssn 
 
E as seguintes dependências funcionais: 
ssn → {enome, datanasc, endereco, dnumero} 
dnumero → {dnome, dgerssn} 
CONTINUA... 
 
_________________________________________ 
 
 
73 
CONTINUAÇÃO... 
Perceba que temos uma dependência transitiva, pois dnumero não é chave, mas 
determina dnome e dgerssn. Como dnumero depende de ssn, então dnome e dgerssn 
também dependem de ssn, mas indiretamente. 
 
A solução para resolver isso é remover da tabela os atributos que dependem de um 
determinante não chave. Assim: 
ED1 (enome, ssn, datanasc, endereco, dnumero) 
ED2 (dnumero, dnome, dgerssn) 
 
▪ Forma Normal de Boyce-Codd: todo determinante deve ser chave. Para cada 
dependência funcional X → A, X é uma superchave. 
EXEMPLIFICANDO!!! 
Dada a estrutura de tabela, sendo num_propriedade a chave primária e 
{municipio_nome, num_lote} uma chave candidata. 
LOTES1A (num_propriedade, município_nome, num_lote, area) 
 
Supondo que há milhares de lotes, mas apenas nos municípios de Uberlândia e 
Araguari, sendo que: 
– em Uberlândia só existem lotes com 100, 200 e 300 m2 
– em Araguari só existem lotes com 150, 250 e 350 m2 
 
Nesse caso, temos uma dependência em que area → municipio_nome, pois sabendo a 
área, podemos descobrir do município. Temos um determinante que não é chave. 
 
Para resolver isso, precisamos colocar esse determinante como chave, logo, 
desmembrar a tabela: 
LOTES1AX (num_propriedade, area, num_lote) 
LOTES1AY (area, municipio_nome) 
 
 
DICA DO PROFESSOR!!! 
A questão costuma listar um conjunto de dependências funcionais e perguntar se essas 
dependências estão respeitando determinada forma normal ou pedir para você definir uma 
estrutura de tabela que respeite uma forma normal, então fique atento as regras que define 
cada das FNs. 
_________________________________________ 
 
 
74 
42- (FGV - 2024 – CGE-PB - Auditor de Contas Públicas) Considere as tabelas 
relacionais T1 e T2, de acordo com as colunas e as instâncias abaixo descritas. Na execução 
dos comandos SQL, assuma que o mecanismo do banco de dados considera valores NULL 
como valores desconhecidos (unknown). 
Tabela T1 
 
Tabela T2 
 
Tomando como base somente as instâncias das tabelas T1 e T2, anteriormente 
apresentadas, considere o conjunto de dependências funcionais que, possivelmente, 
poderiam ser verificadas. 
 
Dessa lista enumerada, o conjunto completo das únicas dependências funcionais que 
poderiam ser corretamente depreendidas é: 
a) 1, 2; 
b) 1, 3; 
c) 1, 2, 5; 
d) 1, 2, 7, 8; 
e) 1, 3, 7, 8. 
Resolução: 
Uma dependência funcional é um relacionamento entre dois ou mais atributos de forma 
que o valor de um atributo identifique o valor para cada um dos outros atributos, ou seja, 
um atributo está relacionado a outro. A dependência funcional pode ser ilustrada por →. 
Assim, em A → B, temos que “A determina B” ou “B é dependente (funcionalmente) de 
A”, isto é, o valor de B pode ser descoberto sabendo o valor de A. 
 
_________________________________________ 
 
 
75 
A regra básica é que um mesmo valor do determinante sempre deve levar a um mesmo 
valor do determinado. Dito isto, vamos avaliar cada uma das dependências: 
(1) Correto: P -> N. Em T1, para cada valor de P, existe um único valor de N. Por exemplo, 
se te digo o valor de P = 1, você sabe exatamente que N é 10. Se eu te der qualquer valor 
de P, você não terá dúvidas sobre o valor de N. 
(2) Incorreto: N -> P. Em T1, para cada valor de N, não existe um único valor de P. Por 
exemplo, se eu te digo que N=10, você não sabe se P é 1 ou 4. 
(3) Correto: E -> Q. Em T2, para cada valor de E, existe um único valor de Q. Por exemplo, 
se te digo o valor de E = 1, você sabe exatamente que Q é 10. Se eu te der qualquer valor 
de E, você não terá dúvidas sobre o valor de Q. 
(4) Incorreto: E -> P. Em T2, nem todo valor de E leva a um valor válido de P. Por 
exemplo, para E=4, temos que P=NULL, ou seja, não sabemos qual o valor de P para E=4. 
(5) Incorreto: Q -> P. Em T2, para cada valor de Q, não existe um único valor de P. Por 
exemplo, se eu te digo que Q=10, você nãoatenção também aos 
seguintes temas: 
▪ 1.10.2 Análise de dependências funcionais e as formas normais 
▪ 1.10.3 Axiomas de dependências funcionais 
 
CESGRANRIO 
A banca CESGRANRIO também “ama” normalização e as formas normais, então se estuda 
para essa banca, atente-se bem para esse tópico. 
 
VUNESP 
A banca VUNESP costuma fazer uma abordagem bem teórico/conceitual dos temas dessa 
aula. Então vale ter uma atenção redobrada com as definições. Também apresenta várias 
questões sobre as operações de álgebra relacional, inclusive trazendo exemplos de 
operações para serem analisados. Assim, o estudo para essa banca, além de seguir as 
diretivas gerais, deve também ter uma atenção especial ao seguinte tópico: 
▪ 1.9 Álgebra relacional 
 
_________________________________________ 
 
 
6 
 
GLOSSÁRIO DE TERMOS 
 
Álgebra relacional: conjunto de operações realizadas que podem ser realizadas nas 
relações (tabelas), tomando uma ou duas relações como entrada e retornando uma relação 
como saída. 
Aplicação, aplicativo ou software: programa de computador com objetivo de 
desempenhar tarefas práticas, em geral ligadas ao processamento de dados. 
Aridade ou grau: número de colunas em uma tabela. 
Atomicidade: propriedade das transações que garante que uma transação seja executada 
ou por completo ou de forma alguma. 
Atributo: coluna ou campo de uma tabela. 
Becape ou backup: cópia de segurança dos dados de um dispositivo de armazenamento. 
Booleano: tipo de dado que possui apenas dois valores: VERDADEIRO ou FALSO. 
Cardinalidade: número de entidades que outra entidade pode se associar via 
relacionamento. 
Campo de indexação: campo (coluna ou atributo) utilizado para criar um índice. 
Catálogo ou dicionário de dados: local do SGBD onde ficam os metadados. Possui 
informações sobre a estrutura de cada arquivo, o tipo e o formato de armazenamento de 
cada item de dados e diversas restrições sobre os dados. 
Consulta ad hoc: criada na hora, no momento em que surge a necessidade. Não é salva no 
SGBD. 
Dependência funcional: relacionamento entre dois ou mais atributos de forma que o valor 
de um atributo identifique o valor para cada um dos outros atributos. 
Determinante (atributo): atributo que determina outro, isto é, cujo valor do outro é 
relacionado a ele. 
Domínio: tipo de dados válido para uma coluna. Valores possíveis. 
Índice: estrutura de acesso auxiliar que permite agilizar a recuperação de registros. Oferece 
caminho de acesso secundário. 
Integridade: capacidade de garantir que a informação não foi alterada sem autorização. 
Modelo de dados: descrição dos tipos de informações que estão armazenadas em um banco 
de dados. 
Nulo ou Null: valor especial que representa "falta de informação ou informação 
inaplicável". 
Ponteiro: é um tipo de dado cujo valor se refere diretamente a um outro valor. É um 
apontador ou referência para um dado armazenado em outro lugar. 
Relação: sinônimo de tabela. Bloco de montagem básico do modelo relacional. 
_________________________________________ 
 
 
7 
RelVar ou variável de relação: cabeçalho de uma tabela, formado pelos pares domínio e 
nome. 
Restrição de integridade: regras usadas para garantir a exatidão e a consistência dos 
dados. 
Transação: programa em execução ou processo que inclui um ou mais acessos ou operações 
de banco de dados. 
Transparente para o usuário: usuário não precisa conhecer os detalhes ou funcionamento 
interno. 
Tupla: linha ou registro de uma tabela. 
Visão ou view: tabela virtual derivada de outras tabelas. Maneira alternativa de 
visualização dos dados. Consulta pré-definida ou armazenada, executada sempre que 
referenciada. 
Visão materalizada ou materialized view: visão armazenada. 
 
_________________________________________ 
 
 
8 
 
1. MODELO RELACIONAL 
 
1.1 Conceitos do modelo relacional 
O modelo relacional atraiu bastante a atenção devido a sua simplicidade e base matemática. 
Pode ser considerado o primeiro modelo a ser descrito formalmente. 
O modelo relacional usa o conceito de relação matemática como bloco de montagem 
básico e se fundamenta na teoria dos conjuntos e lógica de predicado de primeira 
ordem. Um banco de dados relacional utiliza as relações para representar tanto os 
dados quanto os relacionamentos entre estes dados. Informalmente, uma relação é 
semelhante a uma tabela de valores, em que cada linha na tabela representa uma coleção 
de valores de dados relacionados ou, até certo ponto, a um arquivo plano de registros, 
porque cada registro tem uma simples estrutura linear ou plana. 
O modelo relacional requer que o banco de dados seja percebido pelos usuários como 
tabelas, embora os dados possam estar armazenados fisicamente em outras estruturas 
(índices, listas, sequências, etc.). Todo o conteúdo de informação do banco de dados é 
representado de um e somente um modo, ou seja, como valores explícitos em posições de 
colunas em linhas de tabelas. Esse é o chamado Princípio da Informação. 
Para C.J. Date, o modelo relacional é descrito (informalmente) com base em três aspectos: 
▪ Aspecto estrutural: bancos de dados percebidos pelos usuários como tabelas. 
▪ Aspecto de integridade: as tabelas satisfazem a restrições de integridade 
para garantir a exatidão e consistência dos dados, refletindo corretamente a 
realidade modelada e protegendo o banco de dados contra danos acidentais. 
▪ Aspecto manipulador: os operadores disponíveis para que o usuário possa 
manipular as tabelas são operadores que derivam tabelas a partir de outras. 
EXEMPLIFICANDO!!! 
Vejamos um exemplo de uma relação (ou tabela) com os dados do cadastro de clientes: 
Código do cliente Nome do cliente CPF Endereço 
134512 João Aprovado dos Santos 123.123.123-12 Rua A, nº 123 
251218 Maria Concursada Fernandes 456.456.456-45 Rua B, nº 456 
Note que todos os dados são representados por meio de uma estrutura tabular (uma relação 
ou tabela), isto é, segue-se o Princípio da Informação. 
Podemos observar a presença dos 3 aspectos discutidos por C. J. Date: 
▪ Estrutural: você percebe os dados como uma tabela, mas estes dados podem estar armazenados 
fisicamente em outras estruturas. 
▪ De integridade: podemos ter uma regra que só permita o cadastro de um cliente se for inserido 
um CPF composto somente por números e seguindo o padrão XXX.XXX.XXX-XX. 
▪ Manipulador: podemos fazer uma operação nesta tabela para selecionar, por exemplo, somente 
os clientes que moram na Rua A. 
_________________________________________ 
 
 
9 
A arquitetura ANSI/SPARC em três níveis considera que os bancos de dados relacionais 
consistem de três componentes: 
▪ Uma coleção de estruturas de dados, formalmente chamadas de relações, ou 
informalmente tabelas, compondo o nível conceitual; 
▪ Uma coleção dos operadores, a álgebra e o cálculo relacionais, que constituem a base 
da linguagem SQL; 
▪ Uma coleção de restrições da integridade, definindo o conjunto consistente de 
estados de base de dados e de alterações de estados. 
O autor C.J. Date amplia essa divisão, definindo que de maneira mais formal, o modelo 
relacional consiste em cinco componentes: 
▪ Uma coleção ilimitada de tipos escalares (incluindo em particular o tipo booleano ou 
valor verdade). 
▪ Um gerador de tipo de relação e uma interpretação pretendida para esses tipos de 
relações gerados. 
▪ Recursos para definição de RelVars (variáveis de relações) desses tipos de relações 
gerados. Uma relvar (variável relacional) é um conjunto de pares ordenados de 
domínio e nome que serve como um cabeçalho para uma relação. 
▪ Um operador de atribuição relacional para atribuição de valores de relações a essas 
RelVars. 
▪ Uma coleção ilimitada de operadores relacionais genéricos (“a álgebra relacional”) 
para derivar valores de relações a partir de outros valores de relações. 
 
Muita informação??? Não se preocupe, veja um esquema para facilitar sua vida!sabe se P é 2 ou NULL. 
(6) Incorreto: Q -> E. Em T2, para cada valor de Q, não existe um único valor de E. Por 
exemplo, se eu te digo que Q=10, você não sabe se E é 1 ou 4. 
(7) Incorreto: P -> E. Em T2, temos um valor NULL para P que está associado a um valor 
4 de E. Isso não garante a dependência funcional, pois o valor E=4 não depende 
funcionalmente de nenhum valor de P. 
(8) Incorreto: P -> Q. Em T2, temos um valor NULL para P que está associado a um valor 
10 de Q. Isso não garante a dependência funcional, pois o valor Q=10 não depende 
funcionalmente de nenhum valor de P. 
Logo são válidas somente as dependências P -> N e E -> Q. 
Gabarito: Letra B. 
 
43- (FGV - 2023 – TJ-SE - Analista Judiciário) Considere uma tabela de um banco 
relacional com quatro colunas: X, Y, Z e W. Na modelagem dos dados, foram detectadas as 
seguintes dependências funcionais para essa tabela. 
X → Y 
X → Z 
Z → X 
Y → Z 
X → W 
A lista das colunas que devem necessariamente ser definidas com a propriedade unique, com 
colunas isoladas ou em conjunto, é: 
a) X e Y, em conjunto, e W, separadamente; 
b) X, Y, Z, W, separadamente; 
_________________________________________ 
 
 
76 
c) X, Y, Z, separadamente; 
d) X, isoladamente, e ainda Y, Z, em conjunto; 
e) X, isoladamente. 
Resolução: 
A questão indiretamente cobra a forma normal de boyce-codd, segundo a qual, todos os 
determinantes devem ser chaves primárias ou candidatas. Nesse caso, ao usar a propriedade 
unique garantimos a não repetição dos valores. Também será necessário declarar os 
atributos como não nulos, mas a questão não entra nesse mérito. 
O fato é que queremos identificar os atributos que devem ser declarados como únicos. Pela 
forma normal de boyce-codd, são todos os determinantes. 
X determina Y, Z e W (X → Y e X → Z e X → W) 
Z determina X (Z → X) 
Y determina Z (Y → Z). 
Logo, sabemos que esses três atributos separadamente são determinantes, então devem 
ser marcados com unique isoladamente. Eles serão chaves candidatas simples. 
Para agrupar os determinantes em conjuntos, eles precisariam determinar o mesmo 
conjunto de atributos, o que não ocorre no caso da questão. Por exemplo, se ao tivéssemos 
Y → X (ao invés de Y → Z), então tanto Z quanto Y determinariam apenas X, então 
poderíamos agrupar Z, Y em um conjunto de atributos, isto é, eles seriam uma chave 
candidata composta. 
Gabarito: Letra C. 
 
44- (FGV - 2018 - AL-RO - Analista Legislativo - Banco de Dados) Considere uma 
tabela relacional R com atributos A, B, C, D, e as seguintes dependências funcionais. 
A → B 
B → C 
A → D 
B → A 
Estabelecendo-se que os atributos sublinhados identificam chaves, primárias ou candidatas, 
o esquema correto para que se obtenha um projeto normalizado até a forma normal Boyce-
Codd, é 
a) R (A, B, C, D) 
b) R (A, B, C, D) 
c) R (A, B, C, D) 
d) R1 (A, C, D) 
 R2 (A, B) 
_________________________________________ 
 
 
77 
e) R1 (A, B, D) 
 R2 (B, C) 
Resolução: 
Uma tabela está na Forma Normal de Boyce-Codd (FNBC ou BCNF) se, e somente se, 
estiver na 3FN e todo determinante é chave candidata. Dessa forma, não há 
dependências entre atributos não chave. É considerada uma variação forte da 3FN. 
Logo, dadas as dependências funcionais: 
A → B 
B → C 
A → D 
B → A 
Temos que A e B são determinantes e, portanto, devem ser chaves da tabela. Logo, 
a) Correto: R (A, B, C, D) A e B são determinantes e chaves. Nesse caso, A e B serão chaves 
candidatas diferentes e não uma única chave composta. Essa possibilidade é dada pela 
própria questão ao informar que os atributos sublinhados identificam chaves, primárias ou 
candidatas. É por isso que essa forma atende ao solicitado, considerando-se A e B duas 
chaves distintas. 
b) Incorreto: R (A, B, C, D) B é um determinante e, portanto, deveria ser chave. 
c) Incorreto: (A, B, C, D) A é um determinante e, portanto, deveria ser chave. 
d) Incorreto: R1 (A, C, D) 
 R2 (A, B) B é um determinante e, portanto, deveria ser chave. 
e) Incorreto: R1 (A, B, D) 
 R2 (B, C) B é determinante de C e A e não somente de C. 
Gabarito: Letra A. 
 
_________________________________________ 
 
 
78 
1.10.3 TEMA AVANÇADO: axiomas das dependências funcionais 
Um assunto que costuma ser cobrado pouco, mas que pode aparecer na sua prova, é o de 
axiomas ou regras de inferência das dependências funcionais. 
 
DICA DO PROFESSOR!!! 
A Fundação Getúlio Vargas é, principalmente, a banca que costuma trazer questões sobre 
esses temas. Sendo assim, vou trazer uma discussão sobre isso, mas se você não estiver 
estudando para concurso dessa banca, sugiro deixar esse tópico de lado. 
 
Vamos verificar quais são as regras de inferência ou axiomas das dependências funcionais. 
 
As três regras básicas, chamadas Axiomas de Armstrong, são: 
▪ Reflexibilidade: se X contém Y, então X → Y. (dependência funcional trivial) 
o Exemplo: 
Se X é tipo_embarcacao, modelo e Y é tipo_embarcacao, 
Então tipo_embarcacao, modelo → tipo_embarcacao. 
 
▪ Expansibilidade ou aumentativa: se X → Y, então XZ → YZ para qualquer Z. 
o Exemplo: 
Se CPF → endereço, 
Então CPF, nome → endereço, nome. 
 
▪ Transitividade: se X → Y, e Y → Z então X → Z. 
o Exemplo: 
Se CPF → código-cidade e código-cidade → nome-cidade 
Então CPF → nome-cidade. 
 
Como consequências desses axiomas, temos as seguintes regras adicionais: 
▪ União ao aditiva: se X → Y, X → Z então X → YZ. 
o Exemplo: 
Se CPF → nome e CPF → endereco 
Então CPF → nome, endereco 
 
_________________________________________ 
 
 
79 
▪ Decomposição ou separação: Se X → YZ, então X → Y e X → Z. 
o Exemplo: 
Se CPF → nome, endereço 
Então CPF → nome e CPF → endereço 
 
Podemos citar ainda outras regras básicas ou axiomas: 
▪ Pseudo-Transitividade: se X → Y e YZ → W, então XZ → W. 
o Exemplo: 
Se CPF → código-funcionário e código-funcionário, mês → salário-
funcionário 
Então CPF, mês → salário-funcionário. 
 
▪ Acumulação: Se X → Y, então XZ → Y. 
o Exemplo: 
Se CPF → endereco, 
Então CPF, nome → endereco. 
 
▪ Unicidade: Se a: X → Y e b: X →Y; a=b. 
 
Em resumo: 
Axioma Descrição 
Reflexibilidade Se X contém Y, então X → Y. 
Expansibilidade ou aumentativa Se X → Y, então XZ → YZ para qualquer Z. 
Transitividade Se X → Y, e Y → Z então X → Z. 
União ao aditiva Se X → Y, X → Z então X → YZ. 
Decomposição ou separação Se X → YZ, então X → Y e X → Z. 
Pseudo-Transitividade X → Y e YZ → W, então XZ → W 
Acumulação Se X → Y, então XZ → Y 
Unicidade Se a: X → Y e b: X →Y; a=b 
Esquema 11 – Axiomas de dependências funcionais. 
_________________________________________ 
 
 
80 
45- (FGV - 2023 – TJ-SE - Analista Judiciário) A normalização de esquemas de bancos 
de dados é feita a partir das dependências funcionais existentes entre as colunas de uma 
tabela. Além disso, é possível combinar dependências e derivar novas dependências a partir 
de axiomas preestabelecidos. Considerando uma tabela hipotética, com colunas X, Y e Z, o 
axioma da transitividade é definido como segue: 
a) Se X → Y e X →Z então Z → XY; 
b) Se X → Y e Y → Z então X → Z; 
c) Se X → Y então XZ → YZ; 
d) Se X → Y então X XY; 
e) Se XY → Z então X → Z. 
Resolução: 
Vejamos a que axioma se refere cada item: 
a) Incorreto: Se X → Y e X →Z então Z → XY não é um axioma válido. 
b) Correto: Se X → Y e Y → Z então X → Z é o axioma da transitividade. 
c) Incorreto: Se X → Y então XZ → YZ é o axioma da expansibilidade ou aumentativo. 
d) Incorreto: Se X → Y então X → XY é o axioma da reflexibilidade. 
e) Incorreto: Se XY → Z então X → Z não é um axioma válido. 
Gabarito: Letra B. 
 
46- (FGV - 2022 – TCU – Auditor Federal de Controle Externo) Para a questão a 
seguir, considere uma tabela relacional R, com atributos W, X, Y, Z, e o conjunto de 
dependências funcionais identificadas para esses atributos. 
X → Y 
X → Z 
Z → XZ → W 
Analise o conjunto de dependências funcionais inferidas abaixo a partir do conjunto de 
atributos e dependências funcionais presentes na tabela R, como descrita anteriormente. 
(1) X → Y Z W 
(2) X → W 
(3) X W → Y W 
(4) X Y Z W → X Y 
(5) Y → Z 
_________________________________________ 
 
 
81 
À luz dos axiomas da teoria de projeto de bancos de dados aplicáveis nesse caso, é correto 
concluir que, dentre essas dependências inferidas: 
a) somente 2 é válida; 
b) somente 1, 2 e 5 são válidas; 
c) somente 1, 2, 3 e 4 são válidas; 
d) somente 2, 3, 4 e 5 são válidas; 
e) todas são válidas. 
Resolução: 
Os axiomas para derivar as dependências funcionais são: 
Axioma Descrição 
Reflexibilidade Se X contém Y, então X → Y. 
Expansibilidade ou aumentativa Se X → Y, então XZ → YZ para qualquer Z. 
Transitividade Se X → Y, e Y → Z então X → Z. 
União ao aditiva Se X → Y, X → Z então X → YZ. 
Decomposição ou separação Se X → YZ, então X → Y e X → Z. 
Pseudo-Transitividade X → Y e YZ → W, então XZ → W 
Acumulação Se X → Y, então XZ → Y 
Unicidade Se a: X → Y e b: X →Y; a=b 
Logo, dadas 
X → Y 
X → Z 
Z → X 
Z → W 
Vamos analisar os itens: 
(1) Correto: X → Y Z W. Como X → Z e Z → W, pela transitividade, X → W. 
Como X → Y, X → Z e X → W (descoberta acima), pela união, X → Y Z W. 
(2) Correto: X → W. Como X → Z e Z → W, pela transitividade, X → W. 
(3) Correto: X W → Y W. Como X → Y, pela expansibilidade X W → Y W. 
(4) Correto: X Y Z W → X Y. Axioma da reflexibilidade, pois X Y Z W contém X Y. 
(5) Incorreto: Y → Z. Não é possível fazer essa derivação por nenhum axioma ou 
combinações entre eles. 
Gabarito: Letra C. 
 
_________________________________________ 
 
 
82 
1.10.4 TEMA AVANÇADO: definições formais para as formas normais 
Galera, um tema avançado em provas, mas que pode cair em algumas questões é o que trata 
dos modelos ou descrições matemáticas para as formas normais. 
 
DICA DO PROFESSOR!!! 
A Fundação Getúlio Vargas é, principalmente, a banca que costuma trazer questões sobre 
esses temas. Nesse caso, eu sugiro que se você for fazer prova dessa banca, então dê uma 
olhada nas descrições matemáticas. Eu não vou explicar o seu funcionamento, pois isso é 
totalmente improdutivo e isso não cai nesse nível, mas vou citar as descrições. 
 
A seguir apresento as descrições matemáticas ou formais para as formas normais: 
▪ Primeira Forma Normal (1FN): não possui uma definição formal ou matemática 
específica. Sabemos que o domínio dos atributos deve incluir apenas valores atômicos. 
▪ Segunda Forma Normal (2FN): um esquema de relação R está na segunda forma 
normal (2FN) se cada atributo não principal A em R não for parcialmente dependente 
de qualquer chave de R. 
▪ Terceira Forma Normal (3FN): um esquema de relação R está na terceira forma 
normal (3FN) se toda vez que uma dependência funcional não trivial X → A se 
mantiver em R, ou (a) X for uma superchave de R ou (b) A for um atributo principal 
de R. 
▪ Forma Normal de Boyce Codd (FNBC): um esquema de relação R está na FNBC se 
toda vez que uma dependência funcional não trivial X → A se mantiver em R, então 
X é uma superchave de R. 
▪ Quarta Forma Normal (4FN): Um esquema de relação R está na 4FN com relação 
a um conjunto de dependências F (que inclui dependências funcionais e dependências 
multivaloradas) se, para cada dependência multivalorada não trivial X --> Y em F, X 
é uma superchave para R. 
▪ Quinta Forma Normal (5FN): Um esquema de relação R está na quinta forma 
normal (5FN) com relação a um conjunto F de dependências funcionais, 
multivaloradas e de junção se, para cada, dependência de junção não trivial DJ (R1, 
R2, ..., Rn) em F (ou seja, implicada por F), cada Ri é uma superchave de R. 
 
 
ATENÇÃO!!! 
Coisa de louco né? Pois é. Por isso falo que não vale a pena entender isso. Seriam páginas 
para explicar isso e, bem provável, que ainda assim você não entendesse. O bom é que não 
precisa entender, nas poucas vezes que isso cai, é de forma literal. 
 
 
_________________________________________ 
 
 
83 
47- (FGV - 2013 - AL-MT - Analista de Sistemas - Banco de Dados) Dependências 
funcionais podem ser combinadas de modo que novas dependências sejam derivadas a partir 
de um conjunto inicial de dependências. Essas regras de derivação são conhecidas como 
Axiomas de Armstrong. Assim, a partir das dependências funcionais 
Leia o fragmento a seguir: 
“Um esquema de relação S está na _____ forma normal com relação a um conjunto de 
dependências F (que inclui dependências funcionais e dependências multivaloradas) se, para 
cada dependência multivalorada não trivial X -> -> Y em F, X é uma superchave para R.” 
Assinale a alternativa cujo item completa corretamente a lacuna do fragmento acima. 
a) primeira 
b) segunda 
c) terceira 
d) quarta 
e) Quinta 
Resolução: 
A definição é da quarta forma normal. 
A seguir apresento as descrições matemáticas ou formais para as formas normais: 
▪ Primeira Forma Normal (1FN): não possui uma definição formal ou matemática 
específica. Sabemos que o domínio dos atributos deve incluir apenas valores atômicos. 
▪ Segunda Forma Normal (2FN): um esquema de relação R está na segunda forma 
normal (2FN) se cada atributo não principal A em R não for parcialmente dependente 
de qualquer chave de R. 
▪ Terceira Forma Normal (3FN): um esquema de relação R está na terceira forma 
normal (3FN) se toda vez que uma dependência funcional não trivial X → A se 
mantiver em R, ou (a) X for uma superchave de R ou (b) A for um atributo principal 
de R. 
▪ Forma Normal de Boyce Codd (FNBC): um esquema de relação R está na FNBC se 
toda vez que uma dependência funcional não trivial X → A se mantiver em R, então 
X é uma superchave de R. 
▪ Quarta Forma Normal (4FN): Um esquema de relação R está na 4FN com relação 
a um conjunto de dependências F (que inclui dependências funcionais e dependências 
multivaloradas) se, para cada dependência multivalorada não trivial X --> Y em F, X 
é uma superchave para R. 
▪ Quinta Forma Normal (5FN): Um esquema de relação R está na quinta forma 
normal (5FN) com relação a um conjunto F de dependências funcionais, 
multivaloradas e de junção se, para cada, dependência de junção não trivial DJ (R1, 
R2, ..., Rn) em F (ou seja, implicada por F), cada Ri é uma superchave de R. 
Gabarito: Letra D. 
_________________________________________ 
 
 
84 
 
2. ESQUEMAS DE AULA 
 
 
Modelos relacional: conceitos básicos 
 
 
 
Doze (treze) regras de Codd para os bancos de dados relacionais 
 
 
 
 
Modelo 
Relacional
Conceitos
Conjuntos de relações ou tabelas que
representam dados e relacionamentos.
Relação matemática é o bloco de montagem.
Base teórica na teoria de conjunto e lógica
de predicado de primeira ordem.
Princípio da 
Informação
Todo o conteúdo de informação é representado
como valores explícitos em posições de
colunas em linhas de tabelas.
Aspectos de descrição
Aspecto estrutural: dados percebidos pelos
usuários como tabelas.
Aspecto de integridade: tabelas satisfazem a
restrições de integridade.
Aspecto manipulador: os operadores
disponíveis para que o usuário possa
manipular essas tabelas derivam tabelas a
partir de outras.
D
o
ze
 (
tr
ez
e)
 r
eg
ra
s 
d
e 
C
o
d
d
 p
ar
a 
B
an
co
s 
R
el
ac
io
n
ai
s Regra 0 - Regra fundamental ou regra base
Regra 1 - A regra da informação ou Princípio da Informação
Regra 2 - A regra de acesso garantido
Regra 3 - Tratamento sistemático de valores nulos
Regra 4 - Catálogo on-line baseado no modelo relacional
Regra 5 - Sublinguagem Ampla de Dados
Regra 6 - Atualização de visões
Regra 7 - Inserção, Atualização, e Exclusão de alto nível
Regra 8 - Independência Física de dados
Regra 9 - Independência Lógica de Dados
Regra 10 - Independência de Integridade
Regra 11 - Independência de Distribuição
Regra 12 - A não-transposição das regras
_________________________________________85 
Tabela (relação) 
 
 
Visão (view) 
 
 
Índice 
 
 
Visão
Tabela virtual
Armazena apenas a consulta
(não copia os dados)
Em regra, não atualizáveis
Visão materializada
Tabela física auxiliar
Armazena o resultado da 
consulta (cópia dos dados)
Em regra, atualizáveis
Ín
d
ic
es
Estruturas de acesso auxiliar.
Utilizados para agilizar a recuperação de registros 
Oferecem caminhos de acesso secundários
Usam ponteiros para a localização dos dados.
Não devem ser criados de maneira ilimitada e sem cuidados.
Tabela (relação) – representa dados e relacionamentos. 
Coluna (atributo ou campo) - ajuda a 
interpretar o significado dos valores 
das linhas. 
Linha (tupla ou registro) - 
coleção de valores de dados 
relacionados. 
Grau (aridade) - número 
de colunas de uma relação. 
Domínio - tipo de dado que 
descreve os tipos de valores que 
podem aparecer em cada coluna. 
_________________________________________ 
 
 
86 
Chaves 
 
 
Relacionamentos 
 
 
Um para um 
(1:1)
Cada registro de uma 
tabela se relaciona a um 
único registro de outra 
tabela.
1. Uma tabela mesclada.
2. Duas tabelas, uma com 
a chave estrangeira.
3. Três tabelas, com uma 
tabela de ligação 
referenciando as originais.
Um para muitos 
(1:N)
Cada registro de uma 
tabela pode ser relacionar 
com mais de um registro
de outra, no entanto cada 
registro da segundaestá 
relacionado a apenas um 
registro da primeira. 
Chave estrangeira no 
lado muitos.
Muitos para 
muitos (N:M)
Cada registro em uma 
tabela pode estar 
relacionado a múltiplos 
registros em outra tabela 
e vice-versa
Tabela de ligação com 
chaves estrangeiras para 
cada tabela original.
C
h
a
v
e
 c
a
n
d
id
a
ta
 
Superchave 
Conjunto de um ou 
mais atributos que, 
coletivamente, permitem 
identificar de forma 
exclusiva uma tupla. 
Chave 
Superchave com a 
propriedade adicional de 
que a remoção de 
qualquer dos atributos 
a faz deixar de ser 
chave. 
Chave primária 
Chave candidata que é 
escolhida pelo designer 
de banco de dados 
como o principal meio de 
identificar tuplas. 
Cada uma das 
chaves possíveis em 
uma relação. 
 Chave estrangeira 
Associa registros 
referenciando a chave 
primária ou candidata de 
outra relação. 
 
_________________________________________ 
 
 
87 
Restrições de integridade 
 
 
Operações de álgebra relacional 
Operações da álgebra relacional 
Seleção (σ) Filtra tuplas que satisfazem um predicado. 
Projeção (П) 
Filtra atributos especificados de todas as linhas da relação de entrada, 
removendo as tuplas duplicadas da saída. 
Renomeação (ρ) Altera o nome de uma tabela ou atributo. 
Produto 
cartesiano (X) 
Combina todos os pares de linhas de duas relações de entrada, 
independente de eles terem correspondência. 
União (Ս) Filtra tuplas que estão na primeira relação, na segunda, ou em ambas. 
Diferença (-) Filtra tuplas que aparecem na primeira relação, mas não na segunda. 
Junção (⋈) 
Combina pares de linhas de duas relações com base em alguma condição 
de correspondência entre os atributos 
Intersecção (Ո) Filtra tuplas que aparecem na primeira relação e também na segunda. 
Divisão (÷) 
Filtra tuplas de uma relação que possuem correspondência com todas 
as tuplas de outra relação. 
Atribuição (←) Armazena o resultado de uma operação em uma relação temporária. 
 
• Regras do próprio modelo, incluindo as características das 
relações.
Restrições inerentes no modelo de dados (ou 
restrições implícitas)
• Expressas no esquema de banco de dados e na linguagem de 
definição de dados. Incluem:
• Restrições de domínio
• Restrições de nulidade ou de vazios
• Restrição de unicidade ou exclusividade
• Restrições de chave
• Restrição de integridade de entidade
• Restrição de integridade referencial
Restrições baseadas em esquema (ou 
restrições explícitas)
• Expressas e impostas pelos programas de aplicação.
Restrições baseadas em aplicação (ou 
restrições semânticas ou regras de negócios)
P
R
IM
IT
IV
A
S
 
D
E
R
IV
A
D
A
S
 
U
N
Á
R
IA
S
 
UNÁRIA 
B
IN
Á
R
IA
S
 
_________________________________________ 
 
 
88 
Formas normais 
 
Axiomas das dependências funcionais 
Axioma Descrição 
Reflexibilidade Se X contém Y, então X → Y. 
Expansibilidade ou aumentativa Se X → Y, então XZ → YZ para qualquer Z. 
Transitividade Se X → Y, e Y → Z então X → Z. 
União ao aditiva Se X → Y, X → Z então X → YZ. 
Decomposição ou separação Se X → YZ, então X → Y e X → Z. 
Pseudo-Transitividade X → Y e YZ → W, então XZ → W 
Acumulação Se X → Y, então XZ → Y 
Unicidade Se a: X → Y e b: X →Y; a=b 
 
•Todos os atributos são atômicos (sem atributos multivalorados ou compostos).
1FN
•Está na 1FN.
•Não possui dependência parcial. Cada atributo não-chave é dependente da 
chave primária (ou candidata) inteira e não de apenas parte dela.
2FN
•Está na 2FN.
•Não possui dependência transitiva. Cada atributo não-chave depende 
exclusivamente da chave primária (ou candidata) e não de atributos não-chave.
3FN
•Está na 3FN (variação forte da 3FN).
•Todo determinante é chave candidata, não hávendo dependências entre 
atributos não chave.
FNBC
•Está na 3FN.
•Não possui dependência multivalorada.
4FN
•Está na 4FN.
•Não possui dependência de junção.
5FN
_________________________________________ 
 
 
89 
 
3. MAPA MENTAL 
 
 
 
 
_________________________________________ 
 
 
90 
 
4. REFERÊNCIAS 
 
BATTISTI, Julio. O Modelo Relacional de Dados. Disponível em: 
https://juliobattisti.com.br/artigos/office/modelorelacional_p2.asp. Acesso em: 14 nov. 
2017. 
DATE, Christopher J. Introdução a sistemas de bancos de dados. Rio de Janeiro: 
Elsevier Brasil, 2003. 
ELMASRI, Ramez; NAVATHE, Shamkant B. Sistema de Banco de Dados. 7ed. São 
Paulo: Pearson Addison Wesley, 2019. 
LINHA DE CÓDIGO. Índices MySQL: Otimização de consultas. Disponível em: 
. Acesso em: 09 nov. 2020. 
OLIVEIRA, Leornado; SENNA, Carlos. Refinamento de Esquemas e Formas Normais. 
Disponível em: . 
Acesso em: 29 out. 2021. 
SYLBERCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Database System 
Concepts. 6th. New York: McGraw-Hill, 2011. 
SOFTBLUE. Curso de SQL Completo Gratuito. Disponível em: 
. 
 
https://juliobattisti.com.br/artigos/office/modelorelacional_p2.asp
http://www.linhadecodigo.com.br/artigo/3620/indices-mysql-otimizacao-de-consultas.aspx
http://www.linhadecodigo.com.br/artigo/3620/indices-mysql-otimizacao-de-consultas.aspx
https://www.ic.unicamp.br/~geovane/mo410-091/Ch19-Resumo.pdf
https://www.softblue.com.br/site/curso/id/3/CURSO+DE+SQL+COMPLETO+BASICO+AO+AVANCADO+ON+LINE+BD03+GRATIS
https://www.softblue.com.br/site/curso/id/3/CURSO+DE+SQL+COMPLETO+BASICO+AO+AVANCADO+ON+LINE+BD03+GRATISEsquema 1 - Modelo relacional: conceitos básicos. 
Modelo 
Relacional
Conceitos
Conjuntos de relações ou tabelas que
representam dados e relacionamentos.
Relação matemática é o bloco de montagem.
Base teórica na teoria de conjunto e lógica
de predicado de primeira ordem.
Princípio da 
Informação
Todo o conteúdo de informação é representado
como valores explícitos em posições de
colunas em linhas de tabelas.
Aspectos de descrição
Aspecto estrutural: dados percebidos pelos
usuários como tabelas.
Aspecto de integridade: tabelas satisfazem a
restrições de integridade.
Aspecto manipulador: os operadores
disponíveis para que o usuário possa
manipular essas tabelas derivam tabelas a
partir de outras.
_________________________________________ 
 
 
10 
1- (CESPE - 2018 - Polícia Federal - Perito Criminal Federal) Acerca de banco de 
dados, julgue o seguinte item. 
Situação hipotética: Ao analisar um computador, Marcos encontrou inúmeros emails, 
vídeos e textos advindos, em sua maioria, de comentários em redes sociais. Descobriu 
também que havia relação entre vários vídeos e textos encontrados em um diretório 
específico. Assertiva: Nessa situação, tendo como referência somente essas informações, 
Marcos poderá inferir que se trata de um grande banco de dados relacional, visto que um 
diretório é equivalente a uma tabela e cada arquivo de texto é equivalente a uma tupla; além 
disso, como cada arquivo possui um código único, poderá deduzir que esse código é a chave 
primária que identifica o arquivo de forma unívoca. 
Resolução: 
Caros, um banco de dados relacional não é formado por documentos, mas sim por um 
conjunto de tabelas. O Princípio da Informação aborda justamente isso, afirmando que 
todos os dados devem ser organizados em tabelas (ainda que armazenados em estruturas 
diferentes) e, portanto, todo o conteúdo de informação do banco de dados é representado 
de um e somente um modo, ou seja, como valores explícitos em posições de colunas em 
linhas de tabelas. Assim, como esse banco não é percebido pelo usuário como um conjunto 
de tabelas, mas sim como um conjunto de documentos e outras mídias, não se trata de um 
banco relacional. 
Gabarito: Errado. 
 
2- (CESPE - 2015 - TCU - Auditor Federal de Controle Externo - Conhecimentos 
Gerais) Acerca de bancos de dados relacionais, julgue os itens subsequentes. 
Os bancos de dados relacionais são constituídos de três componentes: uma coleção de 
estrutura de dados (relações ou tabelas), uma coleção de operadores (linguagem SQL) e uma 
coleção de restrições de integridade (conjunto consistente de estados de base de dados e de 
alterações de estados). 
Resolução: 
A arquitetura ANSI/SPARC em três níveis considera que os Bancos de dados relacionais 
consistem de três componentes: 
❖ Uma coleção de estruturas de dados, formalmente chamadas de relações, ou 
informalmente tabelas, compondo o nível conceitual; 
❖ Uma coleção dos operadores, a álgebra e o cálculo relacionais, que constituem a 
base da linguagem SQL; 
❖ Uma coleção de restrições da integridade, definindo o conjunto consistente de 
estados de base de dados e de alterações de estados. 
Gabarito: Certo. 
 
 
_________________________________________ 
 
 
11 
1.2 Doze (Treze) Regras de Codd 
As Doze Regras de Codd são um conjunto de treze regras (é isso mesmo! Elas são 
enumeradas de zero a doze) propostas por Edgar F. Codd e usadas para definir o que é 
necessário para que um sistema de gerenciamento de banco de dados seja 
considerado relacional. 
 
DICA DO PROFESSOR!!! 
As questões sobre esse tema são bem literais. Logo, sugiro que não se preocupe em entender 
essas regras profundamente. Basta ter uma noção de que elas existem e de como funcionam. 
Algumas questões as cobram de maneira indireta, sem citar que são as regras de Codd, mas 
que você consegue resolver facilmente se tiver noção dessas regras. 
 
Vejamos essas regras: 
▪ Regra 0 - Regra fundamental ou regra base: um SGBD relacional deve gerenciar 
seus dados usando exclusivamente capacidades relacionais, isto é, não devem ter 
extensões para tratar conceitos e estruturas de outros modelos de dados. 
 
▪ Regra 1 - A regra da informação ou Princípio da Informação: todas as informações 
no banco de dados necessitam estar representadas de apenas uma forma, nomeados por 
valores em posições de colunas dentro de registros de tabelas. 
 
▪ Regra 2 - A regra de acesso garantido: deve-se garantir que todos os valores de 
uma tabela possam ser acessados por meio de uma combinação de nome de tabela, 
valor de chave primária e nome de coluna. 
 
▪ Regra 3 - Tratamento sistemático de valores nulos: o SGBD deve permitir que 
cada campo possa permanecer nulo (ou vazio). Especificamente, ele deve suportar 
uma representação de "falta de informação e informações inaplicáveis" que é sistemática, 
diferente de todos os valores regulares (por exemplo, "diferente de zero ou qualquer 
outro número", no caso de valores numéricos), e independente de tipo de dados. É 
também implícito que tais representações devem ser manipuladas pelo SGBD de 
maneira sistemática. 
 
▪ Regra 4 - Catálogo on-line baseado no modelo relacional: os metadados devem 
ser armazenados e gerenciados como dados comuns, ou seja, em tabelas no interior 
do Banco de Dados. Esses dados devem estar disponíveis aos usuários autorizados, 
utilizando a linguagem de consulta padrão do Banco de Dados. 
 
_________________________________________ 
 
 
12 
▪ Regra 5 - Sublinguagem Ampla de Dados: deve suportar uma linguagem 
declarativa bem definida com suporte para definição de dados, definição de visões, 
manipulação de dados (interativa ou por programa), restrições de integridade, 
autorização e gerenciamento de transações (iniciar, enviar e desfazer). 
 
▪ Regra 6 - Atualização de visões: todas as visões que são teoricamente atualizáveis 
devem ser atualizáveis pelo sistema. 
 
▪ Regra 7 - Inserção, Atualização, e Exclusão de alto nível: o sistema necessita 
fornecer suporte à configuração do nível de operações para inserir, atualizar e excluir. 
Isto significa que os dados podem ser recuperados a partir de um banco de dados 
relacional em conjuntos de dados construídos a partir de várias linhas e/ou várias 
tabelas. Esta regra afirma que as operações de inserção, atualização, e exclusão devem 
ser apoiadas para qualquer conjunto recuperável e não apenas para uma única linha em 
uma única tabela. 
 
▪ Regra 8 - Independência Física de dados: aplicativos e recursos ad hoc não são 
afetados logicamente quando os métodos de acesso ou as estruturas de 
armazenamento físico são alterados. 
 
▪ Regra 9 - Independência Lógica de Dados: aplicativos e recursos ad hoc não são 
afetados logicamente quando de alterações de estruturas de tabela que preservem 
os valores originais da tabela (alteração da ordem ou inserção de colunas). Alterações 
nas relações e nas Visualizações causam pouco ou nenhum impacto nas aplicações. 
 
▪ Regra 10 - Independência de Integridade: todas as restrições de integridade 
necessitam ser especificadas separadamente dos programas de aplicação e 
armazenadas no catálogo. É necessário que seja possível mudar estas restrições sem que 
necessariamente tenha-se de modificar as aplicações. 
 
▪ Regra 11 - Independência de Distribuição: a distribuição de partes do SGBD em 
várias localidades deve ser transparente para os usuários do mesmo, isto é, os usuários 
não devem ser afetados pela localização dos dados. 
 
▪ Regra 12 - A não-transposição das regras: se o SGBD dá suporte a acesso de baixo 
nível aos dados, não deve haver um modo de negligenciar as regras de integridade 
do mesmo. 
 
_________________________________________ 
 
 
13 
Em resumo, as regras são: 
 
Esquema 2 – Doze (treze) regras de Codd para os bancos de dados relacionais. 
 
3- (CESPE / CEBRASPE – 2024 - MPO - Analista de Planejamento e 
Orçamento) No quese refere à representação de dados numéricos e aos conceitos de bancos 
de dados relacionais, julgue o item seguinte. 
Uma das regras de Codd para bancos de dados relacionais é a independência física de dados, 
em que aplicativos e recursos ad hoc não são afetados logicamente quando os métodos de 
acesso ou as estruturas de armazenamento físico são alterados. 
Resolução: 
Questão literal sobre a Regra 8 - Independência Física de dados, que afirma que 
aplicativos e recursos ad hoc não são afetados logicamente quando os métodos de 
acesso ou as estruturas de armazenamento físico são alterados. 
Imagine um sistema de banco de dados de uma biblioteca digital que armazena informações 
sobre livros, autores e usuários. Suponha que você decide reorganizar os arquivos físicos 
que armazenam os dados dos livros, mudando para um sistema de armazenamento em 
nuvem. Logo, a forma como os dados são armazenados (esquema interno) foi modificada. 
Contudo, a estrutura do banco de dados (tabelas, relacionamentos) permanecerá a mesma e 
os programas de aplicação irão continuar funcionando sem necessidade de alteração. Essa 
situação ilustra a independência física de dados, 
Gabarito: Certo. 
 
 
 
D
o
ze
 (
tr
ez
e)
 r
eg
ra
s 
d
e 
C
o
d
d
 p
ar
a 
B
an
co
s 
R
el
ac
io
n
ai
s Regra 0 - Regra fundamental ou regra base
Regra 1 - A regra da informação ou Princípio da Informação
Regra 2 - A regra de acesso garantido
Regra 3 - Tratamento sistemático de valores nulos
Regra 4 - Catálogo on-line baseado no modelo relacional
Regra 5 - Sublinguagem Ampla de Dados
Regra 6 - Atualização de visões
Regra 7 - Inserção, Atualização, e Exclusão de alto nível
Regra 8 - Independência Física de dados
Regra 9 - Independência Lógica de Dados
Regra 10 - Independência de Integridade
Regra 11 - Independência de Distribuição
Regra 12 - A não-transposição das regras
_________________________________________ 
 
 
14 
4- (FCC - 2019 - TRF - 4ª REGIÃO - Analista Judiciário - Infraestrutura em 
Tecnologia da Informação) Dentre as regras de Codd que caracterizam Bancos de Dados 
Relacionais, a regra da Independência de Integridade estipula que as várias formas de 
integridade relacional de banco de dados 
a) precisam ser definidas na linguagem relacional e armazenadas dentro do catálogo do 
sistema ou dicionário de dados, e ser totalmente independentes da lógica dos aplicativos. 
b) podem ser representadas em tabelas relacionais específicas que se relacionam com as 
tabelas de cada aplicativo. Quando um aplicativo mudar, a regra de independência muda 
automaticamente. 
c) precisam ser definidas na linguagem de cada aplicativo e armazenadas como tabelas 
relacionais dentro do banco de cada aplicativo, pois somente desta forma, ao mudar o 
aplicativo, as regras de integridade mudarão também, automaticamente. 
d) podem ser definidas em linguagem natural ou em Shell script e armazenadas no 
dicionário de dados ou dentro do catálogo do sistema; contudo, não há como garantir que 
elas sejam totalmente independentes da lógica dos aplicativos na totalidade das situações. 
e) devem ser escritas em linguagem hierárquica ou de rede pois, desta forma, tanto a 
hierarquia das tabelas quanto os links entre elas, como ocorre nos bancos em rede, 
conduzirão às mudanças automáticas das integridades ao se mudar algum aplicativo. 
Resolução: 
A Regra 10 - Independência de Integridade afirma que todas as restrições de 
integridade necessitam ser especificadas separadamente dos programas de aplicação 
e armazenadas no catálogo. É necessário que seja possível mudar estas restrições sem que 
necessariamente tenha-se de modificar as aplicações. 
Assim, 
a) Correto: perfeitamente. As formas de integridade devem ser independentes da lógica da 
aplicação. 
b) Incorreto: as regras não devem mudar com a alteração dos aplicativos. 
c) Incorreto: as regras não devem mudar com a alteração dos aplicativos. 
d) Incorreto: as restrições devem ser escritas em linguagem relacional e devem apresentar 
independência lógica com os aplicativos. 
e) Incorreto: as restrições devem ser escritas em linguagem relacional e devem apresentar 
independência lógica com os aplicativos. 
Gabarito: Letra A. 
 
 
 
 
_________________________________________ 
 
 
15 
5- (CESPE - 2019 – SEFAZ-RS – Auditor Fiscal da Receita Estadual) Uma das 
regras de Cood para o modelo relacional consiste 
a) na dependência de dados físicos (mudança na memória e no método de acesso). 
b) na independência de distribuição. 
c) na presença de uma linguagem de programação no SGBD que promova interface com o 
banco de dados, com a segurança e a atualização de dados. 
d) na subversão das regras de integridade ou restrições quando utilizada uma linguagem de 
baixo nível. 
e) no não tratamento das atualizações de visões de dados. 
Resolução: 
As Regras de Codd para o modelo relacional são: 
 
Dito isto, vejamos os itens: 
a) Incorreto: na independência de dados físicos (mudança na memória e no método de 
acesso). 
b) Correto: na independência de distribuição. 
c) Incorreto: na presença de uma linguagem de programação ampla de dados no SGBD 
que promova interface com o banco de dados, com a segurança e a atualização de dados. 
A regra 5 de Codd prevê a existência de uma linguagem ampla de dados. Contudo, não é 
uma linguagem de programação, mas sim uma linguagem declarativa para operações em 
bancos de dados. Uma linguagem de programação possui foco diferente, sendo utilizada 
para construção de softwares e sistemas. 
d) Incorreto: na não subversão das regras de integridade ou restrições quando utilizada 
uma linguagem de baixo nível. 
e) Incorreto: no não tratamento das atualizações de visões de dados. 
Gabarito: Letra B. 
D
o
ze
 (
tr
ez
e)
 r
eg
ra
s 
d
e 
C
o
d
d
 p
ar
a 
B
an
co
s 
R
el
ac
io
n
ai
s Regra 0 - Regra fundamental ou regra base
Regra 1 - A regra da informação ou Princípio da Informação
Regra 2 - A regra de acesso garantido
Regra 3 - Tratamento sistemático de valores nulos
Regra 4 - Catálogo on-line baseado no modelo relacional
Regra 5 - Sublinguagem Ampla de Dados
Regra 6 - Atualização de visões
Regra 7 - Inserção, Atualização, e Exclusão de alto nível
Regra 8 - Independência Física de dados
Regra 9 - Independência Lógica de Dados
Regra 10 - Independência de Integridade
Regra 11 - Independência de Distribuição
Regra 12 - A não-transposição das regras
_________________________________________ 
 
 
16 
1.3 Tabelas (relações) 
As tabelas (relações) são a estrutura chave do modelo relacional. Elas representam os 
dados e os relacionamentos entre esses dados. Cada tabela possui um nome único. 
Em uma tabela, cada linha (tupla ou registro) representa uma coleção de valores de 
dados relacionados. Uma linha representa um fato que normalmente corresponde a uma 
entidade ou relacionamento do mundo real. 
Uma tabela é organizada em colunas (atributos ou campos), que servem para ajudar a 
interpretar o significado dos valores em cada linha. O número de colunas de uma 
relação representa o grau (ou aridade) da relação. 
O tipo de dado que descreve os tipos de valores que podem aparecer em cada coluna é 
representada por um domínio de valores possíveis. É importante destacar que um domínio 
é um conjunto de valores atômicos, ou seja, é indivisível. Temos aqui a chamada restrição 
de integridade de domínio, que garante que os valores respeitem o domínio especificado. 
Uma tabela pode ser representada de forma tabular (como em planilhas), em um diagrama 
(ex. diagrama entidade-relacionamento), ou por meio de um esquema de relação, composto 
pelo nome da relação e pela lista de atributos da seguinte forma R(A1, A2,..., An). 
Representação Tabular Diagrama Esquema 
 
Moto (placa, cor, modelo) 
 
EXEMPLIFICANDO!!! 
A tabela “Clientes” representa os dados referentes aos clientes de uma loja fictícia. “Clientes” 
é um nome único para esta tabela.Código do cliente Nome do cliente CPF Endereço 
134512 João Aprovado 123.123.123-12 Rua A, nº 123 
251218 Maria Concursada 456.456.456-45 Rua B, nº 456 
Esta tabela está estruturada em quatro colunas (código do cliente, nome do cliente, cpf e 
endereço). Estas colunas (ou atributos) ajudam a entender os significados dos valores das 
tabelas, assim, podemos perceber que os clientes são identificados por um código, pelo seu 
nome, cpf e tem seu endereço cadastrado. Com base no número de colunas, podemos 
perceber que o grau (ou aridade) desta tabela é quatro. 
As linhas (ou tuplas) da tabela demonstram coleções de dados relacionados, por exemplo, 
todos os dados da primeira linha são relacionados ao cliente João Aprovado dos Santos. 
Podemos citar, por exemplo, que o domínio para o cpf é um conjunto de números com onze 
dígitos e para o nome dos clientes é um conjunto de caracteres. 
O esquema dessa relação é Clientes (Código do Cliente, Nome do Cliente, CPF e Endereço). 
_________________________________________ 
 
 
17 
O esquema a seguir resume a estrutura de uma tabela: 
 
Esquema 3 – Tabela (relação). 
Agora que já vimos os componentes básicos de uma tabela, vamos estudar algumas 
características importantes sobre as relações. 
▪ Ordenação de tuplas em uma relação: uma relação é definida como um conjunto 
de tuplas. Matematicamente, os elementos de um conjunto não possuem nenhuma 
ordem em particular, isto é, uma relação não é sensível à ordenação de tuplas. 
▪ Ordem dos valores dentro de uma tupla: uma tupla é uma lista ordenada de 
valores, de modo que a ordem dos valores em uma tupla – e, portanto, dos atributos 
em um esquema de relação – é importante. (Há uma divergência, pois C.J. Date 
considera que a tupla é um conjunto, também não importando os valores). 
Em resumo, 
o A ordem das linhas não é relevante. 
o A ordem das colunas é relevante, a não ser que a correspondência entre 
elas e seus valores seja mantida. 
▪ Valores e NULLs nas tuplas: cada valor em uma tupla é um valor atômico, isto é, 
não é divisível em componentes dentro da estrutura do modelo relacional. Um 
conceito importante é o dos valores NULL (nulo), usados para representar os 
valores de atributos que podem ser desconhecidos ou não se aplicam a uma tupla. 
▪ Interpretação (significado) de uma relação: o esquema da relação pode ser 
interpretado como uma declaração ou um tipo de afirmação (ou asserção) e cada 
tupla pode ser interpretada como um fato ou instância particular da afirmação. 
 
Tabela (relação) – representa dados e relacionamentos. 
Coluna (atributo ou campo) - ajuda a 
interpretar o significado dos valores 
das linhas. 
Linha (tupla ou registro) - 
coleção de valores de dados 
relacionados. 
Grau (aridade) - número 
de colunas de uma relação. 
Domínio - tipo de dado que 
descreve os tipos de valores que 
podem aparecer em cada coluna. 
_________________________________________ 
 
 
18 
ATENÇÃO!!! 
Sobre a questão da ordenação das colunas, temos uma polêmica. Quanto a ordenação das 
linhas, está tudo tranquilo, pois não há preocupação com a ordem. Contudo, quando estamos 
tratando das colunas, temos duas possibilidades: 
▪ Para a maioria dos autores, uma tupla é uma lista ordenada de valores, logo a 
ordem dos valores é importante. 
▪ C.J. Date, contudo, diverge desse raciocínio ao definir uma tupla como um conjunto 
de valores. Sendo assim, a ordem dos valores também não é importante. 
E agora professor, o que faço? Primeiro vamos entender a visão geral da importância da 
ordenação das colunas. Um modo mais claro de verificar a importância da ordem das 
colunas é quando estamos usando a linguagem SQL para realizar inserções de dados na 
tabela. Podemos usar a seguinte sintaxe: 
INSERT INTO tabela VALUES (valor1, valor2, valor3, ...) 
Este comando irá inserir os valores segundo a ordem das colunas na tabela. Caso não haja 
correspondência entre os valores passados e os tipos dos campos, haverá falhas na inserção. 
Por isso a ordem das colunas é importante. Logicamente, existem comandos mais 
específicos para definir quais as colunas selecionar, mas esse exemplo mostra que a ordem 
das colunas tem impacto nas operações realizadas no banco. 
Logo, percebemos que a ordem é importante, pois precisamos segui-la ou declará-la. Esse 
seria o raciocínio para levar para a prova. Contudo, se a questão cobrar a visão do Date e 
não tiver outra opção mais correta ou menos errada, então marque a que afirma que a ordem 
das colunas não importa. 
 
Vejamos umas questões como exemplo: 
(CESPE - 2014 - TJ-SE - Analista Judiciário - Banco de Dados) No modelo relacional, 
sob o ponto de vista do usuário, a ordem em que as linhas estão armazenadas nas tabelas é 
insignificante. 
Gabarito: Certo. (Quanto às linhas não há dúvida, a ordem não importa). 
 
(CESPE - 2017 - TCE-PE - Auditor de Controle Externo - Auditoria de Contas 
Públicas) Em uma relação, os nomes das colunas são únicos, as linhas são distintas entre 
si, e a ordem da disposição das linhas e colunas é irrelevante para o banco de dados. 
Gabarito: Errado. (Visão da maioria dos autores sobre a ordenação das colunas ser 
relevante) 
 
(CESPE – 2018 – TCM-BA - - Auditor Estadual de Controle Externo) 
c) Os componentes de uma tupla são ordenados da esquerda para a direita. 
Gabarito: Errado. (Visão de Date, dando como errada a importância da ordenação) 
_________________________________________ 
 
 
19 
6- (CESPE / CEBRASPE – MPE-TO - 2024 - Analista Ministerial) A respeito de 
modelagem relacional, modelagem dimensional e normalização das estruturas de dados, 
julgue o item que se segue. 
No modelo relacional de dados, o termo relação é usado para fazer referência a uma tabela, 
enquanto o termo tupla é utilizado para se referir a uma linha da tabela. 
Resolução: 
Perfeitamente. O termo formal para tabela é relação e o termo formal para linha é tupla. 
 
Gabarito: Certo. 
 
7- (CESPE / CEBRASPE - 2023 – MPE-RO - Analista) Na modelagem de dados, o 
objeto que representa uma entidade do mundo real e contém atributos para descrever suas 
características é 
a) a função. 
b) a chave estrangeira. 
c) o procedimento. 
d) a visão. 
e) a tabela. 
Resolução: 
A estrutura base do modelo relacional é a tabela. É na estrutura de tabela que são 
armazenados dados que representam as entidades, as suas características e os 
relacionamentos entre essas entidades. Embora a questão não faça referência explícita ao 
modelo relacional. A única estrutura dentre os itens com a finalidade solicitada é a tabela. 
Gabarito: Letra E. 
Tabela (relação) – representa dados e relacionamentos. 
Coluna (atributo ou campo) - ajuda a 
interpretar o significado dos valores 
das linhas. 
Linha (tupla ou registro) - 
coleção de valores de dados 
relacionados. 
Grau (aridade) - número 
de colunas de uma relação. 
Domínio - tipo de dado que 
descreve os tipos de valores que 
podem aparecer em cada coluna. 
_________________________________________ 
 
 
20 
8- (VUNESP - 2024 – Prefeitura de Santo André - Analista de Tecnologia da 
Informação) Considerando o modelo relacional de bancos de dados relacionais, é possível 
que não se conheça ou que não exista o valor de um determinado atributo de um registro 
de uma relação. Nesse caso, recomenda-se que seja atribuído um valor especial a esse 
atributo, denominado valor 
a) nulo. 
b) temporário. 
c) de junção. 
d) parcial. 
e) de seleção. 
Resolução: 
Um valor NULL (nulo) é usado para representar um valor de atributos que pode ser 
desconhecidos ou não se aplica a uma tupla. Por exemplo, em uma tabela Funcionarios, 
se um funcionário ainda estiver empregado, o campo DataDemissao terá o valor NULL ou 
se o telefone de um funcionário não for conhecido, o campo Telefone pode ser NULL. 
Gabarito: Letra A. 
 
9- (VUNESP - 2023 – DPE-SP - Agente de Defensoria Pública) Um dos conceitos 
importantesna modelagem de um banco de dados relacional consiste na especificação do 
domínio de um atributo de um conjunto de entidades, que significa especificar o 
a) tempo máximo a ser utilizado no armazenamento de cada valor do atributo. 
b) conjunto de valores válidos e aceitos para esse atributo. 
c) número máximo de entidades permitido em cada caso. 
d) número máximo de vezes que os valores dos atributos podem ser alterados. 
e) tipo de mídia que deve ser utilizado para o armazenamento de cada atributo. 
Resolução: 
O domínio de um atributo representa os tipos de valores que são aceitos em um atributo. 
Por exemplo, o domínio para um atributo CPF pode ser um conjunto de números com onze 
dígitos e para um atributo NOME pode ser um conjunto de caracteres. 
Gabarito: Letra B. 
 
 
 
 
 
_________________________________________ 
 
 
21 
10- (CESPE / CEBRASPE - 2021 - Polícia Federal - Escrivão de Polícia Federal) 
No que diz respeito a modelagem conceitual, julgue o item que se segue. 
Se uma tabela de banco de dados tiver 205 atributos, então isso significa que ela tem 205 
registros. 
Resolução: 
O número de atributos (colunas) não possui relação com o número de registros (linhas). 
Cada linha (tupla ou registro) representa uma coleção de valores de dados 
relacionados, enquanto as colunas (atributos ou campos) servem para ajudar a 
interpretar o significado dos valores em cada linha. 
Gabarito: Errado. 
 
11- (CESPE - 2018 - TCM-BA - Auditor Estadual de Controle Externo) 
Considerando os conceitos de banco de dados relacionais, assinale a opção correta a respeito 
das propriedades de uma tupla. 
a) A tupla tem o mesmo significado e as mesmas propriedades de uma tabela. 
b) Os componentes de uma tupla são ordenados da esquerda para a direita. 
c) Cada tupla contém exatamente um valor para cada um de seus atributos. 
d) Um subconjunto de uma tupla não é considerado uma tupla. 
e) Uma tupla nunca é vazia, seu grau pode variar de 1 até n. 
Resolução: 
Vamos analisar cada um dos itens: 
a) Incorreto: uma tabela é um conjunto de tuplas e atributos. As tuplas são as linhas das 
tabelas. Logo, são conceitos diferentes. 
b) Incorreto: pessoal, este item é polêmico, pois uma tupla é uma lista ordenada de valores 
e, assim, este item deveria ser correto. Porém, Date contrapõe essa definição, afirmando que 
uma tupla também é um conjunto de valores e, portanto, a ordem dos componentes não 
importa. 
c) Correto: Cada tupla contém exatamente um valor para cada um de seus atributos. Esse 
valor deve ser do tipo apropriado. 
d) Incorreto: Um subconjunto de uma tupla não é considerado uma tupla. 
e) Incorreto: Uma tupla nunca é pode ser vazia, seu grau pode variar de 1 0 até n. 
Gabarito: Letra C. 
 
 
 
_________________________________________ 
 
 
22 
1.4 Visões (views) 
A tabela é a estrutura fundamental do modelo relacional, mas pode conter uma grande 
quantidade de dados que nem sempre são necessários ou que não podem ser visualizadas 
por um conjunto de usuários. Para fornecer apenas os dados necessários e/ou relevantes a 
determinados usuários, utilizam-se as views (ou visões). 
Uma visão (ou view) é uma tabela virtual derivada de outras tabelas, que podem ser 
tabelas base ou outras visões previamente definidas. Uma visão fornece uma maneira 
alternativa de visualização dos dados de uma ou mais tabelas. Tecnicamente, uma visão 
é uma consulta predefinida ou armazenada que é executada sempre que referenciada, 
permitindo que não seja necessário reescrever a consulta constantemente. 
Uma visão não necessariamente existe em forma física; por isso é considerada uma 
tabela virtual, ao contrário das tabelas da base, cujas tuplas sempre estão armazenadas 
fisicamente no banco de dados. Isso limita as possíveis operações de atualização que podem 
ser aplicadas às visões, mas não oferece quaisquer limitações sobre a consulta de uma visão. 
Por isso, em regra, as visões são não atualizáveis. 
No entanto, em alguns sistemas de bancos de dados existem as visões materializadas (ou 
armazenadas) que armazenam o resultado da consulta em uma tabela auxiliar, isto é, 
fazem uma cópia dos dados e os armazenam fisicamente. Os sistemas de bancos de dados 
garantem que a atualização dessas visões quando ocorrer alterações em suas tabelas base. 
Em regra, essas visões são atualizáveis. 
Podemos destacar as seguintes vantagens de se utilizar visões: 
▪ Economizar tempo com retrabalho. 
▪ Velocidade de acesso às informações. 
▪ Mascarar a complexidade do banco de dados. 
▪ Simplificar o gerenciamento de permissões de usuários. 
▪ Organizar dados a serem exportados para outros aplicativos. 
É importante destacar que todas as operações que podem ser realizadas em tabelas, também 
podem ser realizadas em visões. 
Vamos fixar os conceitos de visão e visão materializada com um esquema! 
 
Esquema 4 – Visão (view) e visão materializada (materialized view). 
Visão
Tabela virtual
Armazena apenas a consulta
(não copia os dados)
Em regra, não atualizáveis
Visão materializada
Tabela física auxiliar
Armazena o resultado da 
consulta (cópia dos dados)
Em regra, atualizáveis
_________________________________________ 
 
 
23 
ESCLARECENDO!!! 
Como uma View pode aumentar a velocidade de acesso às informações, visto que será 
sempre executada a consulta? 
Muito cuidado, pois uma View aumenta a velocidade do ACESSO as informações do ponto 
de vista do usuário, pois ao invés de ter que definir uma consulta, basta acessá-la. Portanto, 
não irá requerer tempo e esforço para montar a consulta, otimizando o tempo necessário 
para visualizar os dados. 
 
EXEMPLIFICANDO!!! 
Tomemos como exemplo a relação Servidor a seguir: 
matricula nome salario 
134512 João Aprovado dos Santos 13.002,03 
251218 Maria Concursada Fernandes 5.519,61 
124578 Paulo Passou Batista 13.002,03 
131820 Glória Nomeada Rodrigues 5.519,61 
112035 Eduardo Posse Pordeus 13.002,03 
Perceba que essa tabela informa o salário dos servidores. Suponha que o pessoal do setor 
de comunicação desse órgão utilize informações básicas sobre os servidores. Se, por algum 
motivo, não for interessante que o pessoal desse setor possua acesso ao salário, pode então 
ser criada uma visão somente com as informações do interesse desse grupo de usuários. 
Dessa forma, pode ser criada uma visão (view) que apresenta somente a matrícula e nome 
dos funcionários. A partir daí, o acesso a esta visão pode ser fornecido ao pessoal da 
comunicação e a o acesso direto a tabela Servidor pode ser retirado. 
O fato é que agora o pessoal da comunicação pode ter acesso à visão ao invés da tabela, 
visualizando apenas as informações que precisam. Ao selecionar a visão, será apresentado: 
matricula nome 
134512 João Aprovado dos Santos 
251218 Maria Concursada Fernandes 
124578 Paulo Passou Batista 
131820 Glória Nomeada Rodrigues 
112035 Eduardo Posse Pordeus 
Se for usada uma visão comum, então sempre que o pessoal da comunicação acessar a visão, 
será executada a consulta na tabela original e o resultado será apresentado. 
Se for usada uma visão materializada, então o resultado será armazenado em uma tabela 
auxiliar, ou seja, será criada uma tabela com uma cópia dos dados e quando o pessoal da 
comunicação for acessar, então a consulta será nos dados da tabela auxiliar. 
 
_________________________________________ 
 
 
24 
12- (CESPE / CEBRASPE - 2024 - ANAC - Especialista em Regulação de Aviação 
Civil) Acerca de bancos de dados relacionais, julgue o item que se segue. 
Em um banco de dados relacional, a estratégia de implementação de uma view denominada 
materialização da view implica criar fisicamente uma tabela temporária a partir da primeira 
consulta a essa view e mantê-la ativa por um determinado período, considerando que 
poderão seguir-se outras consultas. 
Resolução: 
A visão materializada serve justamente para o propósito descrito na assertiva,pois ela 
armazena a tabela decorrente da consulta. 
Ao criar uma view materializada, o SGBD executa a consulta definida e armazena o 
resultado em uma nova tabela. Essa nova tabela poderá então utilizada para responder a 
consultas posteriores. 
Gabarito: Certo. 
 
13- (CESPE / CEBRASPE - 2024 – CTI - Tecnologista Júnior) Considerando as 
linguagens e os fundamentos de bancos de dados relacionais, julgue o item subsequente. 
Uma VIEW é uma representação virtual de dados que se comporta como uma tabela, 
formada a partir de uma consulta em tabelas relacionadas. 
Resolução: 
Uma visão (ou view) é uma tabela virtual derivada de outras tabelas, que podem ser 
tabelas base ou outras visões previamente definidas. Uma visão é uma consulta 
predefinida ou armazenada que é executada sempre que referenciada, permitindo que não 
seja necessário reescrever a consulta constantemente. 
Gabarito: Certo. 
 
14- (CESPE / CEBRASPE - 2023 – FUB - Analista de Tecnologia da Informação) 
Acerca de bancos de dados relacionais, julgue o item seguinte. 
Uma visão representa um conjunto de informações de uma ou mais tabelas, em uma 
representação específica, ocupando espaço físico no banco de dados. 
Resolução: 
Uma visão não necessariamente ocupa espaço físico no banco, por isso é considerada 
uma tabela virtual. Uma visão é uma consulta predefinida ou armazenada que é 
executada sempre que referenciada, permitindo que não seja necessário reescrever a 
consulta constantemente. 
Até existem as visões materializadas que criam cópias dos resultados das consultas em 
tabelas auxiliares e, nesse caso, ocupam espaço de armazenamento. Contudo, a questão não 
fez referência a esse tipo de visão, logo está errada. 
Gabarito: Errado. 
_________________________________________ 
 
 
25 
15- (FCC - 2018 - DPE-AM - Analista em Gestão Especializado de Defensoria - 
Analista de Banco de Dados) Visões constituem um tipo de estrutura possível de ser 
criada em um banco de dados relacional e apresentam como característica: 
a) Permitir a consulta apenas a tabelas que possuam somente atributos do tipo numérico 
armazenados. 
b) Possuir o armazenamento somente do comando de criação de sua estrutura, sendo os 
dados consultados a partir de tabelas com dados fisicamente armazenados. 
c) Não comportar a visualização de atributos do tipo booleano. 
d) Exibir apenas as chaves primária e estrangeira das tabelas especificadas em sua estrutura. 
e) Ser consultadas um número restrito de vezes, conforme seja o sistema gerenciador de 
banco de dados utilizado. 
Resolução: 
Uma visão (ou view) é uma única tabela que é derivada de outras tabelas, que podem 
ser tabelas de base ou mesmo outras visões previamente definidas. Podemos ainda entender 
uma visão como uma maneira alternativa de visualização dos dados de uma ou mais 
tabelas. 
Vamos analisar cada uma das alternativas: 
a) Incorreto: não há restrição ao tipo de dados que pode ser consultado. 
b) Correto: Possuir o armazenamento somente do comando de criação de sua estrutura, 
sendo os dados consultados a partir de tabelas com dados fisicamente armazenados. 
c) Incorreto: não há restrição ao tipo de dados que pode ser consultado. 
d) Incorreto: a visão exibe as informações que foram selecionadas na sua criação e não 
apenas as chaves primária e estrangeira. 
e) Incorreto: não há restrição ao número de consultas para uma visão. 
Gabarito: Letra B. 
 
 
_________________________________________ 
 
 
26 
1.5 Índice (index) 
Vamos supor que seja necessário realizar uma consulta em uma tabela de vendas de uma 
grande multinacional com mais de um milhão de tuplas. Uma consulta que precise percorrer 
linha por linha procurando um registro pode não ser a forma mais eficiente e, para isso, 
foram criados os índices. 
De maneira geral, um índice funciona com base no mesmo princípio aplicado aos índices de 
livros ou desta aula. Se você está interessado em ler somente um determinado tópico, você 
verifica no índice a localização específica deste tópico e vai até elas para ler o conteúdo que 
deseja. Do mesmo modo, através de um índice adequado, o sistema de banco de dados pode 
percorrer primeiro o índice para descobrir onde obter os dados e, em seguida, acessar 
diretamente aos locais para obter os dados necessários. 
Os índices são estruturas de acesso auxiliares associados a tabelas, que são utilizados 
para agilizar a recuperação de registros em resposta a certas condições de pesquisa. 
As estruturas de índice são arquivos adicionais no disco que oferecem caminhos de 
acesso secundários, os quais oferecem formas alternativas de acessar os registros sem 
afetar o posicionamento físico no arquivo de dados primário no disco. 
Os índices permitem o acesso eficiente aos registros com base nos campos de indexação 
que são usados para construir o índice. Basicamente, qualquer atributo de uma tabela pode 
servir para criar um índice, e múltiplos índices em diferentes atributos podem ser 
construídos na mesma tabela. 
Um índice permite que o conjunto das linhas de uma tabela que satisfazem determinado 
critério seja localizado rapidamente, através de ponteiros associados. 
Apesar da importância dos índices para auxiliar na consulta, este não devem ser criados 
de maneira ilimitada e sem nenhum cuidado, pois eles apresentam algumas 
desvantagens: 
▪ Piora a performance em escritas de dados no banco de dados: toda vez que uma 
informação chave for modificada (inserida, alterada, deletada) obrigará a escrita no 
índice. E o índice pode ser interpretado como uma tabela adicional escondida no 
banco de dados. E se a informação modificada está presente em várias chaves (vários 
índices), todos eles deverão ser alterados (em inclusão e remoção, todos sempre são 
afetados, ainda que seja possível otimizar para a remoção, sob pena de encarecer o 
custo de leitura). A alteração do índice implica em acesso de leitura e escrita nele, 
apesar de ser uma operação eficiente se comparada com o acesso direto à tabela, não 
deixa de ter um custo adicional. 
 
▪ Aumenta o consumo de espaço para armazenamento do banco de dados 
(memória e disco): é claro que esta tabela adicional de chaves de índice vai ocupar 
um espaço extra também. Costuma ser um espaço menor que a tabela de dados 
original, mas existe um custo extra. Se houver muitos índices é possível que o espaço 
seja até maior que a tabela original. Com muito índice fica difícil colocar tudo na 
memória. 
 
_________________________________________ 
 
 
27 
▪ Aumenta a necessidade de manutenção interna no banco de dados: isto é um 
pouco dependente da implementação, mas é comum que páginas de chaves sejam 
abandonadas conforme elas vão sendo alteradas. Além disto o administrador de 
banco de dados pode ter mais elementos com que se preocupar. 
 
▪ Pode diminuir a performance de consultas: não há garantias que todas as 
consultas serão mais rápidas com o uso de índices. Como há uma operação adicional 
para acesso ao índice antes do acesso aos dados principais, é possível que a soma do 
tempo gasto nas operações seja maior que o acesso só ao dado principal mesmo que 
o acesso no principal sem índice seja teoricamente menos eficiente. Isto é mais 
comum quando o volume de dados é pequeno, mas isto também é verdade em casos 
de consultas complexas ou onde uma grande porção dos dados da tabela serão 
retornados em qualquer ordem. 
APROFUNDANDO!!! 
Vamos entender como funciona uma consulta em uma tabela sem e com o uso de índice: 
Quando temos uma tabela e executamos uma consulta sobre ela (operação SELECT em 
SQL), o SGBD chama a ação “TABLE SCAN”. Essa ação consiste em percorrer toda a 
tabela, avaliando cada registro. Caso o registro atenda às condições definidas no filtro, ele 
é incluído no conjunto de retorno, senão, é apenas desconsiderado. 
A figura a seguir ilustra uma pesquisa desse tipo, filtrando pelo campo “Código”, ondeseu 
valor seja “3”. 
 
Imagina realizar essa busca em uma tabela com milhares ou milhões de linhas, será muito 
dispendioso! 
Para melhorar essas consultas, utilizamos ÍNDICES, objetos do banco de dados que 
facilitam a organização e consulta de uma tabela, “indexando-a” por uma de suas colunas. 
Quando criamos um índice em uma coluna, o gerenciador do banco ordena a tabela por essa 
coluna e a partir de então os filtros (sobre essa coluna) são feitos através de uma busca 
binária. 
Na busca binária, a tabela sofre divisões sucessivas até que o registro desejado seja 
localizado. Inicialmente a tabela é “dividida” na metade, onde os registros com os menores 
valores no campo indexado ficam na parte superior, e os registros com os maiores valores 
ficam na parte inferior. O gerenciador verifica então em que parte está contido o valor 
pesquisado, se na primeira metade ou na segunda. Isso é facilmente feito comparando o 
valor pesquisado com o do registro intermediário. Se o valor pesquisado for maior que o do 
registro intermediário, o registro desejado encontra-se na segunda metade, caso contrário, 
encontra-se na primeira metade. 
CONTINUA... 
_________________________________________ 
 
 
28 
CONTINUAÇÃO... 
Na figura a seguir temos uma ilustração desse processo: 
 
Por exemplo, se pesquisássemos pelo registro de Código = 3, seria avaliado se esse valor é 
maior ou menor que 5. Como o valor é menor, indica que o registro procurado se encontra 
na primeira metade. 
Em seguida, o processo é repetido apenas na metade em que se encontra o registro 
pesquisado, dividindo-a na metade e avaliando novamente em que parte se encontra o que 
se deseja. 
Note que na operação sem o índice, todos os registros seriam lidos e com a utilização de 
índices, na primeira divisão já se descarta metade dos registros da tabela. É aí onde está o 
segredo da otimização e da agilidade na consulta. 
 
 
Para fixar o que é o índice!!! 
 
Esquema 5 – Índices. 
 
 
 
 
Ín
d
ic
es
Estruturas de acesso auxiliar.
Utilizados para agilizar a recuperação de registros 
Oferecem caminhos de acesso secundários
Usam ponteiros para a localização dos dados.
Não devem ser criados de maneira ilimitada e sem cuidados.
_________________________________________ 
 
 
29 
16- (VUNESP - 2024 – Prefeitura de São Bernardo do Campo - Analista de 
Tecnologia da Informação e Comunicações) Considerando os bancos de dados 
relacionais, uma estrutura utilizada é representada pela criação de índices, a partir de 
campos de tabelas, sendo correto afirmar que a finalidade básica da criação de índices em 
bases de dados é 
a) armazenar dados referentes ao dicionário de dados das tabelas. 
b) agilizar o processo de obtenção dos resultados de consultas feitas à base de dados. 
c) especificar o número máximo de registros que poderão ser armazenados em uma tabela. 
d) transformar todas as tabelas do banco de dados para a terceira forma normal. 
e) gerar endereços a serem disponibilizados para acesso às tabelas por meio da Internet. 
Resolução: 
Vamos analisar cada um dos itens: 
a) Incorreto: os índices não armazenam o dicionário de dados. 
b) Correto: os índices são estruturas de acesso auxiliares associados a tabelas, que são 
utilizados para agilizar a recuperação de registros em resposta a certas condições de 
pesquisa. 
c) Incorreto: em tese, não existe uma definição do limite máximo de registros. 
d) Incorreto: a transformação em formas normais é objetivo do processo de normalização. 
e) Incorreto: os índices não são utilizados para gerar endereços para recursos via internet. 
Gabarito: Letra B. 
 
17- (CESPE / CEBRASPE - 2023 – MPE-RO - Analista) Em um banco de dados 
relacional, o índice 
a) garante a consistência dos dados, evitando conflitos e duplicidades. 
b) é responsável por controlar o acesso e a autenticação dos usuários, garantindo a 
segurança dos dados. 
c) permite a criação de relacionamentos entre tabelas, garantindo a integridade referencial. 
d) permite a organização física dos registros, melhorando o desempenho das consultas. 
e) facilita a modelagem conceitual, definindo os atributos e as entidades do sistema. 
Resolução: 
Vejamos a que se refere cada um dos itens: 
a) Incorreto: uma restrição de integridade garante a consistência dos dados, evitando 
conflitos e duplicidades. 
b) Incorreto: o SGBD é responsável por controlar o acesso e a autenticação dos usuários, 
garantindo a segurança dos dados. 
_________________________________________ 
 
 
30 
c) Incorreto: a chave estrangeira permite a criação de relacionamentos entre tabelas, 
garantindo a integridade referencial. 
d) Correto: um índice permite a organização física dos registros, melhorando o 
desempenho das consultas. Os índices oferecem caminhos de acesso alternativos que 
agilizam a recuperação de registros. 
e) Incorreto: o diagrama entidade-relacionamento facilita a modelagem conceitual, 
definindo os atributos e as entidades do sistema. 
Gabarito: Letra D. 
 
18- (CESGRANRIO - 2023 – BB - Escriturário) Um banco de dados (BD) persiste 
dados de forma organizada e controlada. Em adição, um BD deve prover recursos para 
permitir que consultas que necessitem de velocidade (baixo tempo de resposta) no acesso 
aos dados possam ter um bom desempenho. 
Um dos recursos que um profissional de tecnologia da informação tem à disposição para 
configurar um BD, de modo a melhorar o desempenho de consultas selecionadas, é a criação 
de 
a) regras de integridade 
b) visões não materializadas 
c) índices 
d) sequências 
e) gatilhos 
Resolução: 
Os índices permitem consultas com melhor desempenho. 
 
Gabarito: Letra C. 
 
 
Ín
d
ic
es
Estruturas de acesso auxiliar.
Utilizados para agilizar a recuperação de registros 
Oferecem caminhos de acesso secundários
Usam ponteiros para a localização dos dados.
Não devem ser criados de maneira ilimitada e sem cuidados.
_________________________________________ 
 
 
31 
19- (CESPE - 2013 - TCE-RO - Auditor de Controle Externo - Tecnologia da 
Informação) Para aperfeiçoamento das consultas em tabelas, em relação ao tempo de 
atualização e de consulta dos registros, deve-se criar o maior número de índices possível, 
independentemente do uso da tabela. 
Resolução: 
Os índices são estruturas de acesso auxiliares associados a tabelas, que são utilizados 
para agilizar a recuperação de registros em resposta a certas condições de pesquisa. 
As estruturas de índice são arquivos adicionais no disco que oferecem caminhos de 
acesso secundários, os quais oferecem formas alternativas de acessar os registros sem 
afetar o posicionamento físico no arquivo de dados primário no disco. 
Apesar da importância dos índices para auxiliar na consulta, este não devem ser criados 
de maneira ilimitada e sem nenhum cuidado, pois eles apresentam algumas 
desvantagens: 
▪ Piora a performance em escritas de dados no banco de dados: Toda vez que 
uma informação chave for modificada (inserida, alterada, deletada) obrigará a escrita 
no índice. E o índice pode ser interpretado como uma tabela adicional escondida no 
banco de dados. E se a informação modificada está presente em várias chaves (vários 
índices), todos eles deverão ser alterados (em inclusão e remoção, todos sempre são 
afetados, ainda que seja possível otimizar para a remoção, sob pena de encarecer o 
custo de leitura). A alteração do índice implica em acesso de leitura e escrita nele, 
apesar de ser uma operação eficiente se comparada com o acesso direto à tabela, não 
deixa de ter um custo adicional. 
▪ Aumenta o consumo de espaço para armazenamento do banco de dados 
(memória e disco): É claro que esta tabela adicional de chaves de índice vai ocupar 
um espaço extra também. Costuma ser um espaço menor que a tabela de dados 
original, mas existe um custo extra. Se houver muitos índices é possível que o espaço 
seja até maior que a tabela original.Com muito índice fica difícil colocar tudo na 
memória. 
▪ Aumenta a necessidade de manutenção interna no banco de dados: Isto é um 
pouco dependente da implementação, mas é comum que páginas de chaves sejam 
abandonadas conforme elas vão sendo alteradas. Além disto o DBA pode ter mais 
elementos com que se preocupar. 
▪ Pode diminuir a performance de consultas: Não há garantias que todas as 
consultas serão mais rápidas com o uso de índices. Como há uma operação adicional 
para acesso ao índice antes do acesso ao dados principal, é possível que a soma do 
tempo gasto nas operações seja maior que o acesso só ao dado principal mesmo que 
o acesso no principal sem índice seja teoricamente menos eficiente. Isto é mais 
comum quando o volume de dados é pequeno, mas isto também é verdade em casos 
de consultas complexas ou onde uma grande porção dos dados da tabela serão 
retornados em qualquer ordem. 
Gabarito: Errado. 
_________________________________________ 
 
 
32 
1.6 Chaves 
Uma tabela (ou relação) é constituída de linhas que representam dados relacionados. Essas 
linhas devem ser distintas, ou seja, não devem existir duas linhas com os mesmos valores 
para todos os seus atributos. Em um banco de dados relacional, as chaves são usadas para 
essa distinção. Veremos a seguir, os principais conceitos relacionados as chaves. 
Uma superchave é um conjunto de um ou mais atributos que, coletivamente, nos 
permitem identificar de forma exclusiva uma tupla na relação. De outro modo, uma 
superchave especifica uma restrição de exclusividade de que duas tuplas não podem ter 
os mesmos valores para todos os seus atributos. 
É importante destacar que cada relação tem pelo menos uma superchave padrão: o conjunto 
de todos os seus atributos. Outra consideração importante é que uma superchave pode ter 
atributos redundantes ou desnecessários para a identificação única de uma tupla. 
Uma chave, por sua vez, é uma superchave com a propriedade adicional de que a 
remoção de qualquer dos atributos a faz deixar de ser chave. Assim, uma chave é um 
conjunto de um ou mais atributos que, coletivamente, nos permitem identificar de forma 
exclusiva uma tupla na relação, sendo que a remoção de qualquer dos seus atributos a faz 
deixar de identificar unicamente a tupla na relação. 
Em resumo, uma chave apresenta duas propriedades: 
▪ Duas tuplas distintas não podem ter valores idênticos para os atributos na chave; 
▪ É uma superchave mínima, ou seja, uma superchave da qual não podemos remover 
nenhum atributo sem acabar com a restrição de exclusividade. 
Em geral, uma relação pode ter mais de uma chave. Nesse caso, cada uma dessas chaves 
possíveis é denominada chave candidata. É possível que diversos conjuntos distintos e 
atributos possam servir como uma chave candidata, porém, devemos ter em mente que uma 
chave candidata é uma superchave mínima e, portanto, não deve conter atributos 
desnecessários. Assim, se um atributo matrícula é uma chave candidata, o conjunto formado 
por matrícula e nome não é chave candidata, embora seja uma superchave. 
Devemos usar o termo chave primária (primary key) para designar uma chave candidata 
que é escolhida pelo designer de banco de dados como o principal meio de identificar 
tuplas em uma relação. As demais são chamadas chaves secundárias ou chaves únicas. 
 
ESCLARECENDO!!! 
Pessoal, chamo a atenção para o fato de que todos esses conceitos de chaves que foram 
apresentados possuem a propriedade da unicidade em comum, ou seja, a propriedade de 
distinguir as tuplas de uma tabela. Sendo assim, se a questão fizer a seguinte afirmação: 
Uma _________ é um atributo ou conjunto de atributos que permite identificar uma tupla. 
O espaço pode ser preenchido por superchave, chave, chave primária, chave candidata, 
chave secundária ou chave única. Em qualquer das hipóteses, essa afirmação será correta. 
Elas diferem por outras características e não pela capacidade de distinguir uma tupla. 
_________________________________________ 
 
 
33 
EXEMPLIFICANDO!!! 
Para clarificar o entendimento dos diversos conceitos de chave, vejamos o seguinte 
exemplo tomando como base a tabela Servidor a seguir. 
matricula cpf nome salario 
134512 65465465454 João Aprovado 13.002,03 
251218 12312312312 Maria Concursada 5.519,61 
124578 45645645645 Paulo Passou 13.002,03 
131820 78978978978 Glória Nomeada 5.519,61 
112035 32132132132 Eduardo Posse 13.002,03 
O atributo matricula do servidor é suficiente para distinguir uma tupla de outra. Assim, 
matricula é uma superchave. O atributo de salario do servidor, por outro lado, não é 
uma superchave, porque vários servidores podem ter o mesmo salario. Outras superchaves 
possíveis podem ser {cpf}, {matricula, cpf}, {matricula, nome}, {cpf, nome} ou mesmo o 
conjunto formado por todos os atributos da tabela {matricula, cpf, nome, salario}. Dessa 
forma, podemos ter superchave com atributos ambíguos ou em excesso. 
No exemplo, considerando a propriedade de ser superchave mínima, chegamos as chaves. 
Na tabela, podemos ter a chave matrícula ou a chave cpf, pois ambos os atributos 
identificam unicamente as tuplas e como são simples não podem ser removidos. Assim, 
matricula ou cpf são chaves candidatas da relação. Diferente é o caso de {matrícula, 
nome}, pois apesar de servir para identificar exclusivamente as linhas da tabela, podemos 
retirar o atributo nome e, ainda assim, a restrição de exclusividade será mantida. 
O designer do banco pode optar, por exemplo, pela escolha de matricula para ser a chave 
primária desta relação. Neste caso, cpf será chave secundária ou chave única. 
 
A escolha da chave primária dentre as chaves candidatas possíveis é um pouco arbitrária, 
porém devem-se tomar uma série de cuidados: 
▪ Normalmente é melhor escolher uma chave com um único atributo ou 
pequeno número de atributos. 
▪ A chave primária deve ser escolhida de tal forma que seus valores de atributo 
nunca sejam, ou muito raramente, mudados. 
▪ Os atributos das tuplas da chave devem possuir valores válidos, ou seja, não 
devem permitir valor NULL. Este cuidado na verdade é uma restrição, a 
chamada restrição de integridade da entidade. 
 
ESCLARECENDO!!! 
As chaves podem ser naturais (natural key), quando formadas por atributos com 
significado no mundo real, como o número de CPF, ou artificiais (surrogate key), quando 
formadas por atributos gerados exclusivamente para identificar os registros no banco, mas 
não possuem significado fora dali, como um ID numérico incrementado automaticamente. 
 
_________________________________________ 
 
 
34 
Agora vamos entender o conceito de chave estrangeira. 
Uma chave estrangeira (foreign key) é um atributo ou conjunto de atributos em uma 
tabela que cria uma ligação lógica com a chave primária (ou candidata) de outra 
tabela, permitindo a associação de registros entre elas. A tabela com a chave estrangeira é 
chamada de referenciadora, e a tabela com a chave referenciada é chamada de 
referenciada. Uma tabela pode se referir a ela mesma, formando um autorrelacionamento. 
A chave estrangeira assegura a consistência entre tabelas, garantindo que cada valor de 
chave estrangeira corresponda a um valor existente na tabela referenciada. Isso é conhecido 
como restrição de integridade referencial, que exige que uma tupla na tabela 
referenciadora sempre corresponda a uma tupla existente na tabela referenciada. 
 
ATENÇÃO!!! 
A chave estrangeira aceita valores nulos. É possível que para algum registro, não haja 
valor de chave estrangeira preenchido, caso aquele registro não seja relacionado a outro 
registro. Contudo, se existir um valor de chave estrangeira, esse valor deve existir na 
tabela referenciada para manter a restrição de integridade referencial. 
 
EXEMPLIFICANDO!!! 
Vejamos as tabelas Servidor e Departamento a seguir. 
SERVIDOR DEPARTAMENTO 
matricula nome salario codigo nome_departamento

Mais conteúdos dessa disciplina