Você está na página 1de 87

Livro Eletrônico

Aula 02

Análise de Informações p/ TCU 2018 (Todos os Cargos) Com videoaulas

Professor: Thiago Rodrigues Cavalcanti


Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

AULA 02: Banco de dados relacionais: conceitos


básicos e características. Metadados. Tabelas,
visões (views) e índices. Chaves e
relacionamentos.

Sumário
Modelo Relacional ............................................................................................................................. 2
1. Modelo relacional .............................................................................................................. 2
1.1. Restrições de Integridade ......................................................................................... 7
2. Tabelas, visões e índices ............................................................................................. 11
2.1. Tabelas ........................................................................................................................... 11
2.2. Visões .............................................................................................................................. 14
2.3. Índices ............................................................................................................................ 15
3. Álgebra relacional ........................................................................................................... 16
3.1. Seleção ........................................................................................................................... 16
3.2. Projeção ......................................................................................................................... 17
3.3. Rename (renomeação)............................................................................................. 18
3.4. União ............................................................................................................................... 19
3.5. Intersecção ................................................................................................................... 19
3.6. Diferença........................................................................................................................ 20
3.7. Produto Cartesiano .................................................................................................... 20
3.8. Junção ............................................................................................................................. 21
3.9. Divisão ............................................................................................................................ 22
4. Regras de Codd ............................................................................................................... 24
5. Normalização.................................................................................................................... 26
6. Mapeando o modelo ER em relacional ................................................................... 34
Questões comentadas .............................................................................................................. 39
Questões sem comentários .................................................................................................... 67
Gabarito ............................................................................................................................................. 85
Considerações Finais ..................................................................................................................... 86

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 1 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Modelo Relacional

1. Modelo relacional
Nossa aula de hoje trata de um modelo de dados definido em 1970 por
Codd. Edgar Frank Codd foi um matemático britânico que desenvolveu o
modelo de banco de dados relacional quando era pesquisador da IBM em San
José – Califórnia. É interessante que a IBM não quis implementar as ideias de
Codd inicialmente.

Eles tinham uma linha produtos, em especial o IMS/DB, e não queriam


perder faturamento. O IMS/DB era um SGBD que não utilizava o modelo
relacional como fundamento teórico. A IBM tinha um grande volume de receitas
advindas deste produto e não queria perder espaço neste mercado, mesmo que
fosse para ela mesma.

Ainda assim, Codd insistiu na utilização do modelo, ele


conversou com um grupo de clientes e apresentou as
vantagens e peculiaridades da sua solução. A IBM acabou
implementando o System R. Deste projeto surge a linguagem
SQL (SEQUEL). Falaremos um pouco sobre SQL, ao final
desta aula, por enquanto, apresentaremos os conceitos do
modelo relacional. Vamos juntos?

O modelo relacional é um modelo de dado


representativo (ou de implementação). Como um modelo, ele procura
organizar os dados em um banco de dados. Para isso, ele define um conjunto de
conceitos para representação dos dados. O modelo tem uma base formal sólida
que está estruturada na teoria dos conjuntos e na lógica de primeira ordem.

C. J. DATE apresenta o modelo relacional com as seguintes características


fundamentais, que o distingue dos demais modelos:

1. Estrutura de dados tabular.

2. Regras de integridade.

3. Operadores relacionais.

4. Utilização do SQL (Structured Query Language).

Vejam que a primeira característica definida acima trata da estrutura de


dados tabular. A base deste modelo é o conceito de relação. Um banco de
dados seria, portanto, um conjunto de relações. Cada relação pode ser vista
como uma tabela. Assim, os SGBD relacionais devem representam os dados
sob a forma de tabelas bidimensionais organizadas em linhas e colunas.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 2 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Cada linha dessas tabelas é conhecida como uma tupla, ou uma coleção
de valores relacionados. Cada coluna é vista como um atributo, que possui um
determinado conjunto de valores possíveis: o domínio. Um domínio é um
conjunto de valores atômicos. A figura abaixo resume os conceitos vistos por
meio da representação da tabela Alunos.

Tuplas

Percebam que a tabela é uma relação dentro do modelo. Cada uma das
colunas (Nome, Número e Turma), representam um atributo que deve ser
associado a cada uma da tuplas desta tabela. Cada linha descreve um aluno
desta tabela, a primeira linha apresenta os dados de Francisco com seus
respectivos número e turma.

Outra constatação que podemos fazer na figura acima é a presença de um


conjunto de valores possíveis para cada uma das colunas. Não está explícito.
Não sabemos a definição formal da tabela. Contudo, podemos observar que as
tuplas desta relação apresentam apenas valores numérico associados a coluna
Número e caracteres associados a coluna Nome. É importante perceber que cada
coluna possui um tipo de dados.

Um tipo de dados define os valores que um dado pode assumir e as


operações que podem ser efetuadas sobre o mesmo. Tipos podem ser, por
exemplo: inteiros, reais, caracteres, etc.

Quando especificamos um domínio, geralmente definimos um tipo de


dado do qual são retirados os valores possíveis para o atributo. Além do tipo de
dado, um domínio pode ser descrito por meio de um nome, um formato e outras
informações adicionais a respeito dos dados. Apenas para exemplificar um
atributo salário pode ser definido como um decimal com 10 dígitos e seu
valor ser definido em reais (R$).

Outra característica relevante associada ao domínio é o fato dele ser


atômico. Isso faz parte da definição do modelo relacional. Não se esqueça
disso! Usaremos esse conceito quando formos estudar normalização mais a
frente. Outro ponto importante, está relacionado à integridade dos dados. O
modelo apresenta um conjunto de restrições básicas para dados e
relacionamentos, conhecidas como restrições de integridade.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 3 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Ok! Temos as nossas relações! Conseguimos definir, pelo menos de forma


gráfica um conjunto de tabelas com seus atributos. Se quisermos, podemos
povoar essas tabelas com dados. Agora, se eu quiser associar ou operar uma
tabela com outras, ou ainda, fazer uma consulta que me retorne apenas as
tuplas que possuam uma certa restrição, o que devo fazer?

Neste momento chegamos a terceira característica definida por Date, que


vimos na página anterior. Os operadores relacionais são usados para
manipular as informações pertencentes a cada uma das relações do nosso
modelo. Esse conjunto de operações é conhecido como álgebra relacional. Ela
vai nos auxiliar a trabalhar com os dados em nossos esquemas relacionais.

Formalmente, um esquema relacional R, pode ser definido por R (A1, A2,


..., An) é composto por um nome de relação R e uma lista de atributos A1, A2, ...,
An. Cada atributo Ai é o nome de um papel desempenhado por algum domínio D
no esquema de relação R. Veja que aqui estamos falando do esquema, modelo,
desenho ou intenção de uma relação. Vejamos um exemplo: Aluno (Nome,
Endereço, Turma, Responsável).

Veja que no exemplo acima aluno seria o nome da relação. E Nome,


Endereço, Tuma e Responsável seriam atributos desta tabela. Se você não
conseguiu observar de forma clara a definição acima, vamos tentar apresentar a
mesma em forma de figura.

Veja que eu mantive o nome das colunas e da relação com os termos


usados na definição. Os valores em cada coluna são definidos de acordo com um
domínio especifico, veja a coluna An pode receber os valores Aprovado ou
Reprovado, por exemplo.

R A1 A2 ... AN

BACEN 8.8 Aprovado

SENADO 9.2 Aprovado

TCU 9.8 Aprovado

Vejamos agora outras definições presentes no modelo. Percebam que são


definições simples. O entendimento destes conceitos facilita a leitura do
conteúdo quando estudamos e também na hora da prova!

O grau (ou aridade) de uma relação é o número de atributos ‘n’ desse


esquema de relação. Em outras palavras, a aridade de uma relação é o número
‘n’ de elementos que compõem as n-uplas ordenadas pertencentes à relação.
Uma relação de grau cinco teria, logicamente, cinco atributos. Se pensarmos em
uma tabela, teríamos cinco colunas. Considere o exemplo de uma relação
esquema de grau 7, que descreve estudantes universitários:

ESTUDANTE (Nome, Matricula, Telefone, Endereço, Celular, Idade, MPA)

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 4 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Existe outra característica, que é o estado ou a extensão de uma relação,


representado formalmente por um r (minúsculo) ou r (R). Esse ‘r’ é um conjunto
de ‘m’ tuplas, onde r = {t1, t2, …, tm}. Cada uma das tuplas ti é uma lista
ordenada de n valores ti = <v1, v2, ..., vn> em que cada valor vi, 1<=i<=n, é
um elemento de dom(Ai) ou um valor especial NULL. Lembre-se que ‘Ai‘ é um
atributo da relação.

Mais uma vez apresentamos uma definição um pouco matemática do


conceito. E, mais uma vez, podemos, ao visualizar essa definição em uma
tabela, verificarmos a simplicidade visual do que está sendo descrito acima.

R A1 A2 A3 A4

T1 v11 v12 v13 v14

T2 v21 v22 v23 v24

T3 v31 v32 v33 v34

Neste caso, podemos definir r = {t1, t2, t3} e cada uma das tuplas são
ordenadas pelos valores <v1, v2, v3, v4>. Perceba a existência de uma ordenação
entre os valores dos atributos de uma relação. Lembra quando você cria uma
tabela em SQL, geralmente a ordem que você define para os atributos é a
mesma que os campos são criados fisicamente na base.

1. Ano: 2015 Banca: CESPE Órgão: STJ Prova: Analista Judiciário -


Análise de Sistemas de Informação
Acerca de modelagem relacional e pontos de função, julgue o item a seguir.
O modelo relacional consiste em uma coleção ilimitada de tipos escalares e de
um operador de atribuição relacional que atribui valores às variáveis de relações
que integram os componentes desse modelo.
Comentário: OK! O texto em questão parece Grego. Mas não é! Você já precisa
apenas de um tradutor para resolver a questão. Quando falamos em tipos
escalares, estamos nos referindo a atributos que tem valore atômicos e
indivisíveis. Numa classificação normal um escalar se contrapõe a uma matriz.
Em uma matriz temos vários valores associados a uma instância.
Agora já temos uma coleção de tipos escalares que estabelecem os domínios dos
atributos que formam uma tabela ou uma relação. Certo!? Assim, construímos
uma tabela! Vamos precisar, então, inserir novos valores nesta tabela. Neste
contexto, precisamos de um operador que permita a inserção de novas linhas.
Esse operador de atribuição vai permitir que essa associação seja feita.
Vamos relembrar da nossa videoaula. Nela apresentamos um conjunto de
componentes definidos pelo Date para banco de dados relacionais. Segundo ele
o modelo relacional consiste em cinco componentes:

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 5 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

1) Uma coleção ilimitada de tipos escalares, incluindo em particular o tipo


booleano ou valor verdade. (TIPOS DE DADOS)
2) Um gerador de tipo de relação e uma interpretação pretendida para esses
tipos de relações. (A EXITÊNCIA DAS TABELAS)
3) Recursos para definição de RelVars desses tipos de relações gerados. (DDL –
DEFINIÇÃO – UMA LINGUAGEM PARA CONSTRUIR AS TABELAS)
4) Um operador de atribuição relacional para atribuição de valores de relações a
essas RelVars. (DML – MANIPULÇÃO/INSERSÃO DE VALORES NAS TABELAS)
5) Uma coleção ilimitada de operadores relacionais genéricos para derivar
valores de relações a partir de outros valores de relações. (OPERAÇÕES)
Gabarito: C.
Agora que entendemos todos os conceitos iniciais vamos tratar de outras
características das relações. A primeira delas seria a ordenação de tuplas em
uma relação. Vejam que estamos falando das linhas. Imagine uma consulta ao
banco de dados que retorna um conjunto de tuplas, será que existe algum
critério predefinido para a ordenação deste resultado?

A ideia é que, por ser definida como um conjunto de tuplas dentro de cada
relação, as tuplas não são ordenadas. Em outras palavras, a ordenação da
tupla não faz parte da definição da relação. Se você pensar em SQL, é
basicamente estabelecer o fato de que se você fizer uma consulta e não
especificar uma ordenação para o resultado na cláusula order by o SGBD pode
retornar os valores ou tuplas em qualquer ordem.

E a ordenação dos valores dentro de uma tupla? Essa sim é


importante, pois cada valor representa um significado específico dentro de um
domínio. Ou seja, ao inserir uma tupla em uma relação é importante que os
valores estejam associados aos seus respectivos atributos. Para exemplificar,
pense em uma tabela, os valores associados a cada coluna têm um significado,
sendo assim, a inserção de linhas deve ser feita respeitando o contexto de cada
coluna.

Vamos fazer duas questões para entendermos um pouco mais do assunto.

2. Banca: CESPE Ano: 2015 Órgão: TRE-MT Prova: Analista Judiciário -


Análise de Sistemas
No modelo relacional formal,
a) os elementos de uma relação respeitam uma ordem matemática entre eles.
b) cada coluna em uma relação é uma tupla.
c) cada cabeçalho em uma relação é uma chave.
d) domínio é um conjunto de valores em que cada valor é indivisível.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 6 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

e) uma coleção de dados é considerada como um arquivo plano.


Comentário: Essa questão foi comentada em detalhes na videoaula.
Vamos retomar os conceitos para que você consiga fixar melhor cada um deles.
Os elementos de uma relação são as linhas (tuplas) e colunas (atributos), não
existe uma ordem lógica sobre as linhas, elas podem ser armazenadas em
qualquer ordem na tabela.
Já na alternativa B o erro está em definir uma coluna como uma tupla. Sabemos
que uma tupla é a linha da tabela! Lembre-se do funk da tabela! Cada cabeçalho
descreve o nome do atributo referente a coluna. Não existe obrigatoriedade de
um atributo ser chave. Sendo assim, a alternativa C também está incorreta.
A alternativa D é a nossa resposta! Veja que o domínio é um escalar, logo
indivisível. Cada tipo de dados que estabelece um domínio vai restringir o
conjunto de valores de uma coluna. Por exemplo, você pode permitir que apenas
caracteres sejam incluídos na coluna Nome.
Um arquivo plano é um arquivo tipo .txt. Semelhante aquele que você cria no
Notepad do Windows. A ideia de definir uma coleção de dados como um arquivo
TXT não me parece saudável. Sendo assim, a alternativa E está incorreta.
Gabarito: D.

3. Ano: 2015 Banca: CESPE Órgão: STJ Prova: Analista Judiciário -


Análise de Sistemas de Informação
Acerca de modelagem relacional, julgue o item a seguir.
O modelo relacional de dados consiste em um banco de dados percebido por
seus usuários como uma coleção de variáveis de relações que trata das questões
lógicas e físicas da estrutura, da integridade e da manipulação de dados.
Comentário: Essa questão trata de um ponto que eu gostaria muito que você
guardasse para prova: modelo relacional é um modelo lógico! Não é físico como
sugere a questão. Modelos físicos fazem parte da implementação dos sistemas
de banco de dados. São definidos por programadores que constroem os SBGD,
algo complexo até para mim que trabalho com banco de dado há alguns anos.
Sendo assim, a questão está equivocada ao tentar associar o modelo relacional
ao nível físico.
Agora vamos tentar esclarecer outros pontos interessantes do texto. O modelo
relacional define o modelo como uma coleção de tabelas ou variáveis de
relações. Veja que essas estruturas, as tabelas, são de fato variáveis pois
mudam ao longo do tempo. Pense que os preços dos produtos em um
supermercado variam, os funcionários contratados em uma empresa também se
alteram ao longo do tempo. Logo, as tabelas que armazenam essas informações
são modificadas para manter a consistência com os eventos de negócio, como a
contratação de um novo funcionário.
Gabarito: E

1.1. Restrições de Integridade


Prof. Thiago Rodrigues Cavalcanti
www.estrategiaconcursos.com.br 7 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Na primeira parte da aula definimos a estrutura tabular presente no


modelo relacional. Agora vamos falar das restrições de integridade. Essas
restrições visam manter a consistência dos dados dentro do seu banco. As
regras de integridade podem ser vistas como um conjunto de parâmetros ou
regras do negócio, previamente estabelecidos e criados no banco de dados, aos
quais os dados são submetidos, para garantir que um processo de atualização
não resulte em dados inconsistentes.

Uma das características mais fortes dos bancos de dados relacionais,


quando comparado com seus antecessores (em Rede e Hierárquico), está em
oferecer mecanismos para a criação de regras de integridade diretamente no
banco de dados. As regras de integridade de dados podem ser implementadas
nos SGBDR de forma declarativa ou procedural.

A integridade declarativa é implementada através de parâmetros


opcionais da linguagem de definição de dados (DDL). Os tipos mais comuns de
integridade declarativa são: chave primária (PK), domínio e integridade
referencial.

A integridade procedural se apresenta sob a forma de um programa,


cuja lógica é escrita pelo programador, na linguagem procedural nativa do
SGBD. Esse tipo de integridade supre as necessidades não cobertas pelos
parâmetros de integridade declarativa e pode ser criada através de triggers
(gatilhos), stored procedures (procedimentos armazenados) ou assertions
(afirmações).

Triggers, stored procedures e assertions são comandos que podem ser


usados para fazer ajustes na base de dados. Um trigger, por exemplo, é uma
estrutura conhecida como EVENTO-CONDIÇÃO-AÇÃO. Imagine que uma
modificação no banco de dados dispara um evento. Por exemplo, uma
atualização na tabela funcionário com a inclusão de 10 novos auditores.

Esse evento vai levar a execução de um código ou de um programa. O


programa vai verificar (condição) se os auditores foram de fato aprovados no
concurso público e em seguida incluir os dados dos mesmos na folha de
pagamento e no plano de saúde do órgão em questão.

As bancas focam suas questões sobre esse assunto nos seguintes tipos de
restrições:

• Integridade de Domínio (dom(A)) – restringe os valores válidos que


podem ser associados a um determinado atributo. É a mais elementar
forma de restrição de integridade. Ajudam, não somente a garantir os
valores inseridos no banco de dados, mas também a testar consultas para
garantir que as comparações feitas fazem sentido. Você deve se lembrar
que cada tipo de dado tem um conjunto de operações que pode ser
executada sobre os mesmos. Imagine a operações de soma e subtração

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 8 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

nos tipos de dados numéricos. Na linguagem SQL é implementada pelo


comando CHECK.

• Integridade de Chave (Unicidade) – Garante a unicidade do valor da


chave primária em cada uma das tuplas de uma relação. Implementado
pela palavra-chave UNIQUE.

• Integridade de Vazio (def if(x!=null?x==null)) – Basicamente verifica


se um valor de um determinado atributo pode ou não ter o valor nulo
associado a suas instâncias. Podemos definir uma coluna como NULL ou
NOT NULL em SQL.

• Integridade de Entidade (PK != null) – Garante que a chave primária


de uma entidade não receba o valor nulo.

• Integridade Referencial (FK == PK (Chave Candidata) || FK == null) -


Garante que o valor que aparece em uma relação para um dado conjunto
de atributos também apareça para um conjunto de atributos em outra
relação. Em SQL é implementada por meio de uma referência da chave
estrangeira (FK) de uma relação à chave primária ou atributo UNIQUE da
outra tabela. Esse valor de chave estrangeira, sempre que existir, deve
estar associado a um valor da chave primária da outra relação. Caso
contrário pode assumir apenas o valor nulo. Veja a figura abaixo para
entender melhor esse conceito.

Observe que o uso de chaves estrangeira vai permitir a criação de


relacionamentos no modelo reacional.

• Integridade Semântica (assertions ou triggers) – Uma asserção é um


predicado que expressa uma condição que desejamos que seja sempre
satisfeita no banco de dados. Um gatilho (triggers) é um comando que é
executado pelo sistema automaticamente, em consequência de uma
modificação no banco de dados. Toda vez que um evento acontece, uma
condição (caso exista) é verificada e uma ação é disparada.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 9 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Ao lado da explicação de cada uma das regras de integridade existe, entre


parênteses, uma palavra, fórmula ou expressão. Elas não existem em nenhuma
fonte oficial de estudos. São estruturas criadas por mim para facilitar a
memorização das restrições de integridade. Quando formos estudar SQL,
falaremos um pouco mais sobre esse assunto com uma visão mais prática dos
conceitos apresentados.

Vamos agora fazer mais algumas questões de provas passadas.

4. Ano: 2010 Banca: CESPE Órgão: MPU Prova: Analista de Informática -


Banco de Dados
Acerca de administração de banco de dados relacionais, julgue os itens que se
seguem.
O termo integridade é utilizado em sistema de banco de dados com o significado
de precisão, correção ou validade. Nesse contexto, a integridade tem como
função assegurar que os dados no banco de dados sejam precisos e preservados
contra atualizações válidas.
Comentário: Essa questão apresenta uma pegadinha. Esse é um tipo de
questão para as pessoas que sofrem do mal da leitura dinâmica rústica errarem.
Muita calma ao ler as questões do seu concurso. A afirmação: “preservado
contra atualizações válidas” distorce uma das funções do SGBD. O SGDB deve
ser utilizado para garantir a consistência do banco de dados. Preservando contra
anomalias de atualização ou atualizações inválidas. Logo, a alternativa está
incorreta.
Gabarito: E.

5. Ano: 2008 Banca: CESPE Órgão: STF Prova: Analista Judiciário -


Tecnologia da Informação
O armazenamento e a recuperação de grandes quantidades de dados é um
trabalho importante e muito explorado em um sistema gerenciador de banco de
dados (SGBD). Com relação aos conceitos que envolvem esse sistema, julgue os
itens que se seguem.
Integridade referencial pode ser definida como uma condição imposta a um
conjunto de atributos de uma relação para que valores que apareçam nesse
conjunto também apareçam em um certo conjunto de atributos de uma outra
relação.
Comentário: Essa é uma questão um pouco antiga, tem quase 10 anos.
Contudo, apresenta o conceito de integridade referencial. Como eu falei, a
integridade referencial (IR) permite que o relacionamento entre entidades do
modelo E-R seja expresso no modelo relacional. A ligação entre as tabelas é
feira por meio destas IRs. Vejam mais um exemplo desta situação na figura
abaixo:

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 10 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Gabarito: C.

6. Ano: 2014 Banca: CESPE Órgão: SUFRAMA Prova: Analista Técnico -


Tecnologia da Informação
Com relação aos sistemas gerenciadores de banco de dados (SGBD), julgue os
itens a seguir.
A integridade semântica de um SGBD garante que os dados estejam sempre
corretos em relação ao domínio de aplicação.
Comentário: A integridade semântica tem relação direta com as regras de
negócio, ou seja, são restrições impostas pelo funcionamento da organização.
Um gerente não pode ganhar mais do que um diretor, por exemplo. Essas
restrições garantem que os dados estejam corretos em relação ao domínio da
aplicação. Sendo assim, a alternativa está correta.
Gabarito: C.

2. Tabelas, visões e índices


Nos próximos tópicos vamos apresentar alguns conceitos relacionados com
tópicos que estão explicitamente listados no seu edital: tabelas, visões e índices.

2.1. Tabelas
Vamos agora conversar um pouco sobre tabelas, são várias as questões
da que cobram o conteúdo deste assunto. A tabela é o local onde todos os dados
são armazenados. Para criar uma tabela basta seguir a sintaxe do CREATE
TABLE apresentada abaixo. Basicamente, você de descrever as colunas que vão
compor sua tabela, juntamente com os tipos e as restrições de integridade
associados. Vejam um exemplo de tabela na figura abaixo.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 11 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Observem que optamos por dar um exemplo do Oracle. Aproveitamos


para apresentar o comando DESC, que, seguido pelo nome da tabela, fornece
uma descrição das colunas com seu tipo. O comando também informa se a
coluna aceita ou não valores nulos.

Sobre o comando CREATE, ele é usado para especificar uma nova relação,
dando-lhe um nome e especificando seus atributos e restrições iniciais.
Vejam que os atributos são definidos primeiro e, a cada atributo, é dado um
nome, um tipo para especificar o domínio de seus valores e alguma restrição
de atributo.

As restrições de chave, de integridade de entidade e de integridade


referencial podem ser especificas no mesmo comando após os atributos serem
declarados ou poderão ser adicionadas depois usando o comando ALTER TABLE.

Outro comando importante é o comando DROP <TABLE> que remove


todas as informações de uma relação do banco de dados. Em outras palavras,
excluí o objeto e os dados armazenados. É possível usar o modificador CASCADE
para deletar também tabelas que sejam filhas da tabela removida ou pelo menos
ajustar a integridade referencial.

Na alteração de tabelas feita pelo comando ALTER TABLE podemos


adicionar e excluir atributos de uma relação. É possível definir um valor default
para os novos atributos ou eles vão receber valores nulos para as tuplas já
existentes. Vejam abaixo um resumo da sintaxe do alter table.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 12 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Vamos então visualizar um exemplo de uma tabela já carregadas com


dados e importada para o Excel. Vejam a figura:

Para entendermos melhor como escolher os tipos de dados das nossas


colunas passaremos a seguir a analisar os principais tipos de dados de SQL e
suas peculiaridades. SQL inclui sete tipos de tipos de dados pré-definidos: string
(conjunto de caracteres), numéricos, binário, datetime, interval, boolean e XML.

Na linguagem SQL padrão esses tipos são divididos em tamanho fixo e


variável. Todas as cadeias de caracteres em SQL podem ser de comprimento fixo
ou variável. Você tem três tipos principais de cadeias de caracteres: 1. Cadeias
de caracteres de tamanho fixo (CHARACTER ou CHAR), 2. Cadeias de
caracteres de tamanho variável (CHARACTER VARYING ou VARCHAR) e 3.
Cadeia de caracteres de para armazenar grandes objetos (CHARACTER LARGE
OBJECT ou CLOB).

Vamos agora tratar dos tipos de dados numéricos. Eles são divididos em
duas grandes categorias: números exatos (exact numbers) e números
aproximados (approximate).

Os números exatos podem ser números inteiros (lápis, pessoas ou


planetas) ou ter casas decimais (preços, pesos ou percentuais). Os números
podem ser positivos e negativos. Eles podem ter precisão e escala. O que seria
isso? A precisão (p) determina o número total máximo de dígitos decimais que
podem ser armazenados (tanto a esquerda quanto a direita do ponto decimal).

Os números de ponto flutuantes ou aproximados são números que não


podem ser representados com precisão absoluta. Outros tipos de dados não são
relevantes para o nosso estudo. É importante, para o concurso do TCU, que você

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 13 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

saiba que as tabelas são descritas por meio de colunas, restrições e tipos de
dados.

2.2. Visões
Outro objeto SQL que podemos criar dentro dos nossos bancos de dados
são as VIEWs. A view é um comando SQL que é armazenado no banco de dados
e possui um nome associada a ela. Eles têm algumas funções básicas. A
primeira é facilitar a visualização dos dados dispersos em diversas tabelas
tornando-os mais natural ou intuitivo ao entendimento humano.

Outra função importante para a view está relacionada a segurança dos


dados. É possível restringir o acesso aos campos e às colunas de uma tabela por
meio de uma view. Desta forma o usuário teria visão apenas a parte dos dados
ou informações. Esse grupo de informações deve ser compatível com as funções
e necessidades de acesso do usuário.

Outra opção para o uso de view é sumarizar dados de diferentes tabelas


gerando relatórios. Vejamos abaixo dois exemplos do uso de VIEWs.
Lembrando que ela pode ser criada sobre uma ou múltiplas tabelas. Observe que
o comando basicamente incluí a sintaxe CREATE VIEW nome AS antes de uma
consulta ao banco de dados.

Para visualizarmos os dados de uma visão, basta escrevermos um


comando SELECT sobre ela, vejam o exemplo sobre a view web_designers
criada acima.

A view é considerada uma tabela virtual porque ela só existe


durante o período que você está utilizando a mesma. Todas as operações

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 14 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

que são feitas sobre a tabela podem ser feitas em uma VIEW, mas a tabela é
virtual, e na teoria não deve ser armazenada no banco de dados.

2.3. Índices
O primeiro conceito que devemos ter em mente do assunto é a definição de
índices. Um índice é um mecanismo utilizado para melhorar a velocidade
de acesso aos dados. Ele é composto por uma chave que é um atributo ou
conjunto de atributos usado para procurar registros em um arquivo. Ele também
possui um ponteiro que consiste em um identificador para um bloco de disco,
além do deslocamento dentro do bloco para encontrar o registro.

Um arquivo de índice consiste em um conjunto de registros com o formato


apresentado na figura abaixo. Esse registro se dá o nome de registro de índice
ou entrada de índice.

Como uma técnica para criar estruturas de dados auxiliares, os índices


agilizam a busca e a recuperação de registros, para isso eles envolvem
armazenamento de dados auxiliares. Esses dados são armazenados nos arquivos
de índices. Alguns tipos de acesso podem se beneficiar dos índices, por exemplo,
a localização de registro com um valor especificado e a localização de registros
em um intervalo especificado de valores. Veja a figura abaixo para entender um
pouco mais sobre índices.

É necessário saber se esse benefício de fato traz um ganho de


desempenho ao sistema de banco de dados. Avaliar os índices para medir seus
efeitos na performance é um passo importante. Vários SGBDs possuem
utilitários que ajudam a quantificar os efeitos pretendidos com a criação de
índices sobre tabelas. Esse valor é baseado em alguns fatores, entre eles, o
tempo de acesso, inserção e deleção; o overhead de espaço em disco e os
métodos de acesso suportados.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 15 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

3. Álgebra relacional
Falaremos agora sobre a álgebra relacional, um assunto bastante
explorado pelas bancas de concurso. Esse tema possui algumas características
matemáticas que são baseadas principalmente na teoria de conjuntos. O
conjunto básico de operações utilizadas no modelo relacional é conhecido como
álgebra relacional. Navathe apresenta três motivos para considerarmos essas
operações importantes:

1. Fornece alicerce formal para o modelo relacional.

2. É usado como base para implementação e otimização de consultas.

3. Alguns dos seus conceitos são incorporados na linguagem SQL


padrão.

Historicamente, a álgebra e o cálculo relacional foram desenvolvidos antes


da linguagem SQL. O conjunto básico de operações para o modelo relacional é a
álgebra relacional. Essas operações permitem que um usuário especifique as
solicitações de recuperação básicas como expressões da álgebra relacional. O
resultado de uma recuperação ou consulta é uma nova relação.

Embora a álgebra defina um conjunto de operações para o modelo


relacional, o cálculo relacional oferece uma linguagem declarativa de nível
mais alto para especificar consultas relacionais. A álgebra relacional
normalmente é considerada uma parte do modelo de dados relacional. Suas
operações podem ser divididas em dois grupos. Um grupo inclui conjunto de
operações da teoria de conjuntos da matemática; e outro grupo
desenvolvidas especificamente para bancos de dados relacionais: as operações
relacionais.

Vamos apresentar cada uma das operações, e em seguida,


apresentaremos as taxonomias ou formas de classificação das operações.
Tenham em mente que todas as operações são executadas sobre uma ou duas
tabelas e o retorno delas é sempre outra relação. Essa característica é conhecida
como fechamento.

3.1. Seleção
O objetivo dessa operação, que recebe como entrada uma única tabela ou
relação, é selecionar um conjunto de tuplas que satisfaçam um predicado (uma
condição lógica) nos valores dos atributos. Em outras palavras vamos extrair de
uma relação um conjunto de linhas que possuem algumas restrições, por
exemplo, funcionário que o salário seja maior que 10 mil reais. Vamos procurar
entender melhor o que a operação faz exatamente com outro exemplo, vejam a
tabela abaixo:

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 16 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Queremos executar uma operação se seleção sobre está tabela. Vamos


então fazer uma consulta de quais grupos de países ou parte do mundo
apresentam mais de 10% da distribuição de petróleo. Olhando para a tabela já
poderíamos trazer os valores América Latina e Oriente Médio. Mas existe uma
notação especifica definida pela álgebra relacional para fazer essa consulta. Essa
notação pode ser vista abaixo:

A letra grega (sigma) representa a operação de seleção, que é feita


sobre a relação R, restringindo as linhas de acordo com as restrições descritas
pelo predicado. Sobre esse predicado é preciso tecer alguns comentários.
Primeiramente é perfeitamente possível que ele seja uma composição de
restrições sobre diferentes colunas da tabela.

Cada restrição é conhecida como termo. Os termos podem ser ligados por
conectivos (e), (ou), ¬ (não). Cada termo pode ser composto por um
<atributo> operador <atributo> ou <atributo> operador <constante>. Por fim a
lista de operadores é formada por =, ≠, >, ≥, < ou ≤. Percebam que você pode
compor diferentes predicados com essas estruturas.

Vamos agora, que conhecemos a sintaxe e a consulta sugerida, escrever a


mesma na notação correta. (Para facilitar nossa escrita, vamos chama as
colunas de REGIAO, DISTRIBUICAODEPETROLEO, DISTRIBICAODEGAS e a
relação de PETROLEOREGIAO):

<DISTRIBUICAODEPETROLEO >= 10>(PETROLEOREGIAO)

Observe na consulta acima que o predicado < DISTRIBUICAODEPETROLEO >= 10> é


definido sobre um atributo da tabela PETROLEOREGIAO.

3.2. Projeção
Agora vamos passar para a projeção. Essa operação, também, recebe
como entrada uma relação. Contudo, suas restrições são feitas sobre as colunas
Prof. Thiago Rodrigues Cavalcanti
www.estrategiaconcursos.com.br 17 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

da tabela. Essa operação deixa algumas colunas de fora do resultado, reduzindo,


portanto, a quantidade de dados a serem analisados. Usando o mesmo exemplo
anterior vamos supor que queremos as informações apenas da distribuição de
petróleo no mundo e das regiões. Bastaria recortar a tabela excluindo a coluna
que informa a distribuição de gás.

Da mesma maneira que a operação anterior, apresentaremos agora a


representação formal da projeção:

A letra grega (pi) representa a operação. A1, A2, ..., Ak são a lista de
atributos da relação R que queremos trazer como resultado. Para fazermos a
consulta utilizando a nomenclatura correta podemos escrevê-la da seguinte
forma:

< REGIAO, DISTRIBUICAODEPETROLEO >(PETROLEOREGIAO)

Ainda sobre a essa operação consideramos relevante saber que os


resultados duplicados são removidos.

3.3. Rename (renomeação)


Para entender a definição da função rename, podemos começar
entendendo a sua funcionalidade. A primeira seria unificar em um único
conjunto duas listas diferentes. Imaginem duas tabelas, uma com a lista de
escolas e outra das universidades. Se quiséssemos juntar os nomes das
instituições de ensino poderíamos fazer uma união (falaremos sobre a operação
nas próximas linhas) dos nomes das escolas com os nomes das universidades.
Contudo, se precisarmos usar esse resultado mais adiante, qual o nome da nova
relação e dos atributos? Temos, portanto, que renomear o resultset.

O segundo uso do rename seria para reduzir ambiguidade em


“selfjoin´s”. Quando fazemos um join da tabela com ela mesma e queremos
comparar os atributos do resultado, temos que renomear as tabelas para que
essa comparação possa ser feita. Se você se lembrar de SQL, a linguagem
implementa alias sobre as tabelas, e uma das funções desse alias é justamente
resolver essa ambiguidade. Em suma, o alias é uma implementação do conceito
de rename.

A representação formal da operação de rename é feita da pela letra grega


(rho) e é aplicada sobre uma relação. Veja abaixo:

x<A1, A2, ... ,An >(E)

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 18 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

O x representa o novo nome dado para a relação (E) e A1, A2, ..., An
representam os novos nomes dados para os atributos da relação. A1 se refere
ao primeiro atributo da relação, A2 ao segundo e assim sucessivamente.
Suponha uma relação STUDENT (NAME, PHONE). Podemos usar o comando de
rename da seguinte forma:

estudante<nome, telefone>(STUDENT)

Você poderia ainda atribuir o resultado acima a outra relação usando o


comando de assignment (). Assim poderíamos atribuir o resultado anterior a
uma variável, por exemplo:

temp  estudante<nome, telefone>(STUDENT)

As próximas quatro operações são conhecidas como operações de


conjuntos. Vamos analisar cada uma 9
delas.

3.4. União
A operação é caracterizada por R S, onde R e S são duas relações com a
mesma quantidade de atributos e cujos atributos operam sobre o mesmo
domínio. O resultado contém as tuplas que estão em R, S ou ambas,
matematicamente pode ser vista assim:

3.5. Intersecção
A intersecção representada por R S, trás como resultado a Relação que
contém as tuplas que estão em ambas R e S.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 19 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

3.6. Diferença
R - S: Relação que contém as tuplas que estão em R e que não estão em
S.
e

3.7. Produto Cartesiano


Permite combinar informações de duas relações fazendo uma junção de
todas as linhas a primeira com todas as linhas da segunda. O produto cartesiano
entre duas tabelas ou relações gera uma nova relação com a quantidade de
tuplas igual ao produto da quantidade de tuplas de cada uma das relações. A
nova relação possui todos os atributos que compõe cada uma das tabelas que
fazem parte da operação da seguinte forma:

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 20 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

3.8. Junção
A junção é uma conexão entre duas tabelas na qual elas são mescladas de
acordo com um campo em comum. Essa junção pode ser considerada um
produto cartesiano seguido por uma seleção. O símbolo representa uma
junção. Ao executar uma junção ela deve satisfazer a um predicado e existir
pelo menos um campo nas duas tabelas que operem sobre o mesmo domínio.
Esse campo é usado para decidir quais linhas da primeira tabela devem se
relacionar com cada uma das linhas da segunda tabela. Geralmente exige-se que
os valores dos atributos sejam iguais. Mas existem variações da junção
conforme veremos abaixo.

Theta-Join: O primeiro tipo de junção é definido sobre alguma


comparação entre os atributos de junção. Essa comparação é conhecida como
predicado. Caso esse predicado seja uma igualdade entre valores essa junção é
conhecida como Equijoin. Vejamos um exemplo:

Natural join ( ): Junção na qual é uma igualdade predefinida entre


todos os atributos de mesmo nome presentes em duas relações R1 e R2
(atributos de junção). Estes atributos só aparecem uma vez no resultado.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 21 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Junções externas ou outer joins. Junção na qual as tuplas de uma ou


ambas as relações que não são combinadas mesmo assim são preservadas no
resultado, possui basicamente três variações. Logo em seguida apresentamos
um exemplo.

Left outer Join: tuplas da relação à esquerda são preservadas.

Notação:

Right outer join: tuplas da relação à direita são preservadas

Notação:

Full outer join: tuplas da relação à direita e à esquerda são preservadas

Notação:
c

Antijoin: Representada pelo seguinte símbolo: . A operação retorna os


valores da relação que não satisfazem a condição de junção. Vejam o exemplo
abaixo:

3.9. Divisão
A operação de divisão é usada nas consultas nas quais se emprega a
frase: “para todos”. Seu resultado será composto basicamente pelos elementos

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 22 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

da primeira tabela que se relacionem com todos os elementos da segunda


tabela. Vejam o exemplo abaixo:

Sobre a taxonomia é importante saber que temos um conjunto de


operações conhecidas como fundamentais que são a seleção, projeção, união,
interseção, diferença, produto cartesiano e rename. Essas operações possuem
esse nome, pois a partir delas é possível obter o resultado das demais
operações.

Outra classificação importante é a classificação das operações em binárias


e unárias (ou primárias). Esse parâmetro está baseado na quantidade de
relações que são utilizadas nas operações. As operações de projeção, seleção e
rename são unárias. As operações de união, interseção, subtração, produto
cartesiano, junção e divisão são binárias.

7. BANCA: FCC ANO: 2012 ÓRGÃO: TJ-RJ PROVA: ANALISTA JUDICIÁRIO


- ANALISTA DE SISTEMAS
Considere a seguinte tabela de um banco de dados.
TAB_FUNC = {COD_FUNC, NOME, COD_DEP, SAL}
Uma expressão da álgebra relacional representando a tabela formada pelos
códigos (COD_FUNC) e nomes (NOME) dos funcionários que ganham salário
(SAL) entre 1000 e 3000 reais e trabalham no departamento de código
(COD_DEP) 3 é

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 23 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Comentário: Para resolver essa questão vamos começar fazendo o código SQL
da consulta: SELECT COD_FUNC, NOME FROM TAB_FUNC WHERE SAL >= 1000
AND SAL <= 3000 AND COD_DEP = 3;
Agora vamos transformar essa consulta para a álgebra relacional. Vamos fazer
uma projeção sobre os atributos COD_FUNC e NOME sobre o resultado de uma
seleção com as restrições iguais as do select. Assim temos como resultado:
<COD_FUN, NOME >( < SAL >= 1000 ^ SAL <= 3000 ^ COD_DEP = 3>(TAB_FUN))

Vejam que esse resultado está presente na alternativa A com algumas


modificações na ordem das restrições impostas pelo comando de seleção.
Gabarito: A.

4. Regras de Codd
Para que um banco de dados seja considerado relacional ele deve seguir
as 13 regras definidas por E.F.Cood, apresentamos abaixo as referências a cada
uma das regras. É muito comum encontrar publicações falando das 12 regras. O
que acontece é que são 13 regras, numeradas de 0 até 12.

0. Todas as regras se baseiam na noção de que para um banco de dados


ser qualificado como relacional, ele dever utilizar recursos exclusivamente
relacionais para seu gerenciamento.

1. Informação: Todas as informações em um banco de dados são


representadas de forma explícita no nível lógico e são estruturadas
exatamente, em apenas uma forma, por valores em tabelas.

2. Acesso Garantido: Todos os dados precisam ser acessíveis. Cada valor


atômico (datum) em um banco de dados relacional possui a garantia de ser
logicamente acessado pela combinação de nome de tabela, do valor da chave
primária e do nome da coluna.

3. Tratamento sistemático de valores nulos: Valores nulos devem ser


suportados de forma sistemática, independente do tipo de dado, para
representar informações inexistentes e informações inaplicáveis. É também
implícito que tais representações devem ser manipuladas pelo SGBD de maneira
sistemática.

4. Catálogo on-line dinâmico: A descrição ou metadados do banco de


dados é representada no nível lógico da mesma forma que os dados ordinários,
permitindo que os usuários autorizados utilizem a mesma linguagem relacional
aplicada aos dados regulares. É possível usar a linguagem SQL para conhecer as
descrições das tabelas do banco, por exemplo.

5. Sublinguagem ampla dos dados: Um sistema relacional pode suportar


várias linguagens e várias formas de recuperação de informações. Entretanto,
deve haver pelo menos uma linguagem, com uma sintaxe bem definida e
expressa por um conjunto de caracteres, que suporte de forma compreensiva
Prof. Thiago Rodrigues Cavalcanti
www.estrategiaconcursos.com.br 24 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

todos os seguintes itens: definição de dados, definição de "views",


manipulação de dados (interativa e embutida em programas), restrições de
integridade, autorizações/segurança de acesso, e transações (begin, commit e
rollback).

6. Atualização de visualizações: Todas as "views" ou visões dos dados


que são teoricamente atualizáveis devem também ser atualizáveis pelo sistema.

7. Inserção, atualização e exclusão de alto nível: A capacidade de


manipular um conjunto de dados (em uma relação) através de um simples
comando deve-se estender às operações de inclusão, alteração ou exclusão de
dados.

8. Independência física de dados: Programas de aplicação e recursos ad


hoc permanecem logicamente inalterados quando ocorrem mudanças no método
de acesso ou na forma de armazenamento físico.

9. Independência lógica de dados: Mudanças nas relações e nas views


provocam pouco ou nenhum impacto nas aplicações. Ou seja, as alterações nas
tabelas que preservam os valores originais não devem afetar os aplicativos e
recursos ad hoc.

10. Independência de integridade: As aplicações não são afetadas


quando ocorrem mudanças nas regras de restrições de integridade. Deve ser
possível que todas as regras de integridade sejam definidas na linguagem
relacional e armazenadas no catálogo de sistema, não no nível de aplicação.

11. Independência de distribuição: As aplicações não são logicamente


afetadas quando ocorrem mudanças geográficas dos dados. Ou seja, os usuários
finais não devem perceber o fato do BD ser distribuído ou local.

12. Não transposição das regras: Se um sistema possui uma linguagem


de baixo nível, essa linguagem não pode ser usada para subverter as regras de
integridades e restrições definidas no nível mais alto.

8. BANCA: FCC ANO: 2012 ÓRGÃO: TRT - 11ª REGIÃO (AM) PROVA:
ANALISTA JUDICIÁRIO - TECNOLOGIA DA INFORMAÇÃO
Considere:
I. Regra 1 − Todas as informações são representadas de forma explícita no nível
lógico e exatamente em apenas uma forma, por valores em tabelas.
II. Regra 2 − Cada um e qualquer valor atômico (datum) possui a garantia de
ser logicamente acessado pela combinação do nome da tabela, do valor da
chave primária e do nome da coluna.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 25 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

III. Regra 3 − Valores nulos não devem ser utilizados de forma sistemática,
independente do tipo de dado ainda que para representar informações
inexistentes e informações inaplicáveis.
Das regras de Codd para bancos de dados relacionais, está correto o que consta
em
A I, apenas.
B II, apenas.
C I e II, apenas.
D II e III, apenas.
E I, II e III.
Comentário: Vejam que a questão tratou das três primeiras regras da lista,
mas modificou o texto da regra 3 para torná-la incorreta. Vejamos novamente
as 3 primeiras regras:
Regra 1: Informação – Todas as informações de um BDR devem ser
representadas logicamente como valores de coluna em linhas dentro das
tabelas.
Regra 2: Garantia de Acesso – 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 Nulos – Os nulos devem ser representados
e tratados de modo sistemático, independentemente do tipo de dados.
Gabarito: C

5. Normalização
O Processo de normalização, como foi inicialmente proposto por Codd
(1972), sujeita um esquema de relação a uma série de testes para certifica-se
de que ele satisfaça certa forma normal.

A normalização de dados é uma técnica de decomposição utilizada no


projeto de banco de dados com objetivo de prover um armazenamento
consistente, evitando redundância de dados e anomalias de atualização.

Inicialmente, Codd propôs três formas normais: 1ª, 2ª e 3ª. Todas


baseadas nas dependências funcionais entre os atributos de uma relação. Uma
nova forma normal foi proposta por Boyce-Codd, que é mais forte do que 3ª FN.

Para entender as formas normais é preciso antes de qualquer coisa,


entender alguns conceitos. Para facilitar o seu entendimento vamos defini-lo e
explicá-los em uma linguagem simples e objetiva.

Vamos começar falando sobre chave. Como sabemos, existem alguns


conceitos relacionados a chave. O primeiro deles é o de superchave, uma
superchave de um esquema de relação R = {A1, A2, ..., An} é um conjunto de
atributos S C R (S está contido em R) que contenha a propriedade na qual não

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 26 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

haverá duas tuplas t1 e t2, em qualquer estado válido da relação r de R, cuja


t1[S] = t2[S]. Em outras palavras uma superchave é um conjunto de atributos
que tem a característica de restringir o conjunto de tuplas de uma relação a
apenas uma linha.

Antes de continuar nosso estudo sobre chaves, vejamos uma questão de


uma prova recente.

9. Ano: 2017 Banca: IADES Órgão: Hemocentro Cargo: Analista de


Tecnologia da Informação Q. 34
QUESTÃO 34 Considere uma tabela relacional “R” e seus atributos definidos por
R (F1, F2, F3, F4, F5) com dependências funcionais F1, F2, F3 F4, F5 e F5
F1, F2. Com base nessas informações, assinale a alternativa que contém o
número total de superchaves distintas para essa tabela.
(A) 2
(B) 7
(C) 8
(D) 10
(E) 12
Comentário: Para responder a essa questão temos que ter em mente a
definição de superchave:
Uma superchave é um conjunto de um ou mais atributos que, tomando
coletivamente, permite-nos identificar unicamente uma entidade no conjunto de
entidades.
De posse desta informação podemos montar conjuntos distintos de atributos que
possuem essa característica. Para simplificar vamos começar pelo conjunto dos 5
atributos e, em seguinte, vamos compondo os demais conjuntos. A grande
sacada é partir das dependências funcionais e perceber que F5 determina F1, F2,
logo F5 pode ser superchave em conjunto com F3. Vamos lá:
• (F1, F2, F3, F4, F5) --- superchave com 5 atributos
• (F1, F2, F3, F4), (F1, F2, F3, F5), (F5, F3, F2, F4), (F5, F3, F1, F4) --- super
chave com 4 atributos
• (F1, F2, F3), (F5, F3, F1), (F5, F3, F2), (F5, F3, F4) - super chave com 3
atributos
• (F5, F3) - superchave com 2 atributos
Vejam que no total temos 10 possíveis superchaves para a relação em questão.
Gabarito: D.
Essa superchave pode ser considerada apenas uma chave. Neste caso, a
chave é defendida como uma superchave mínima (K), qualquer remoção de
atributo de K fará com que K deixe de ser superchave da relação. Se um

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 27 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

esquema tiver mais de uma chave, cada uma delas é chamada de chave
candidata. Entre as chaves uma delas é escolhida para ser a chave da relação e
é denominada de chave primária. As demais são renegadas e são denominadas
chaves secundárias.

Entender o conceito de chave é o primeiro passo para o entendimento das


formas normais. De posse deste conhecimento, é possível definir agora um
atributo primário, que é membro de alguma chave candidata de R. Por sua
vez, de forma bem intuitiva, um atributo não primário é todo aquele que não
for um atributo primário!

Vejamos então uma questão do CESPE sobre este assunto.

10. BANCA: CESPE ANO: 2015 ÓRGÃO: TJDFT PROVA: PROGRAMAÇÃO


DE SISTEMAS
Julgue os itens seguintes a respeito de banco de dados.
[61] Em uma tabela de um banco de dados relacional, se uma restrição de chave
primária for definida como composta de mais de uma coluna, os seus valores
poderão ser duplicados em uma coluna; no entanto, cada combinação de valores
de todas as colunas na definição da restrição de chave primária deve ser
exclusiva.
Comentário: Questão interessante, pois nos permite fazer um rápido
comentário sobre chaves. Uma chave identifica unicamente uma linha de uma
relação. Toda relação pode ter vários conjuntos de atributos que podem ser
escolhidos como chave primária. Cada uma dessas opções que se caracterizam
por ser uma superchave mínima, ou seja, não é possível retirar nenhum
atributo sem que o conjunto perca a propriedade de ser chave da relação, é
denominada chave candidata. A chave escolhida para ser a chave da relação é
denominada chave primária. Ela pode ser composta por um ou mais
atributos.
A questão pede para analisarmos uma característica de chaves compostas por
mais de um atributo. Percebam que a unicidade dos valores deve considerar o
conjunto dos atributos e não um atributo individualmente. Sendo assim a
alternativa encontra-se correta.
Gabarito: C.
Outro conceito que temos que ter conhecimento é o de dependências
funcional (DF). Já sabemos que ele faz parte da definição de algumas formas
normais. Mas, ainda não sabemos exatamente o que ele significa.

Dependência funcional é, basicamente, uma restrição entre dois conjuntos


de atributos do banco de dados. Formalmente, uma dependência funcional,
denotada por X  Y entre dois conjuntos de atributos X e Y, que são
subconjunto de R, especifica uma restrição nas possíveis tuplas que formam um

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 28 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

estado da relação r de R. A restrição é que, para quaisquer duas tuplas t1 e t2


em r que tenha t1[X] = t2[X], elas também têm de ter t1[Y] = t2[Y].

Mais uma vez podemos simplificar: a questão aqui é perceber que se você
escolher um determinado valor para o atributo X da relação (sabendo que X 
Y) é possível saber o valor do atributo Y. Na definição formal é dito que se duas
tuplas tiverem o mesmo valor para X, então elas também terão o mesmo valor
de Y. É importante saber também que quando X  Y (X determina Y), X é
chamando de determinante e Y de determinado.

Uma dependência funcional pode ser considerada trivial, neste caso se X


 Y e X contém ( ) Y. Para entender isso basta supor um conjunto de atributos
(A, B, C, D, E) e o fato de A, B, C  C faz desta DF uma dependência trivial. Por
outro lado, temos a possibilidade da DF ser não trivial se X  Y e X não contém
Y. Usando os mesmos atributos acima, uma DF A, B  D pode ser considerada
um exemplo de DF não trivial.

Com esses conceitos já é possível definir as três primeiras formas


normais, bem como a forma normal de Boyce-Codd.

Primeira forma normal (1FN) – Essa é considerada uma parte da


definição de relação no modelo relacional básico. Sua definição prevê que todos
os atributos de uma relação devem ter seus valores definidos sobre domínios
atômicos ou indivisíveis. Em outras palavras, os campos de uma tabela não
devem ser compostos ou multivalorados. Vejam abaixo uma figura que
demonstra a normalização de uma tabela que não está na 1FN para duas
relações.

Segunda forma normal (2FN) – A definição mais rigorosa descreve que


um esquema de relação R está na 2FN se todo atributo não primário A em R
tem dependência funcional total de uma chave candidata. Podemos dizer
também que não existe dependência parcial. De uma forma mais simples, a
ideia aqui é que cada atributo não chave seja definido por todos os atributos
pertencentes à chave primária ou a outra chave candidata da relação. Veja
abaixo uma relação que não se adequa a segunda forma normal, sendo evoluída
para duas que estão de acordo com a definição apresentada.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 29 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Terceira forma normal (3FN) - Uma relação está na Terceira Forma


Normal (3NF) se ela está na 2FN e nenhum atributo não chave (não primário) é
transitivamente dependente da chave primária. Enfim, na 3FN não se aceita
dependência transitiva. O Navathe[1] descreve uma definição mais geral da
terceira forma normal que diz basicamente o seguinte:

Um esquema de relação R está na terceira forma normal (3FN) sempre


que uma dependência funcional não trivial X  A for determinada em R,
qualquer

(a) X é superchave de R;

(b) A é atributo primário de R;

Segundo o próprio autor, violar a condição (a) significa que X não é um


super conjunto de nenhuma chave de R; consequentemente, X pode ser não
primário ou pode ser um dado subconjunto de uma chave de R. O autor fala
também que a violação de (b) significa que A é um atributo não primário. Enfim,
são condições para a terceira forma normal (1) ter dependência funcional total
para todas as chaves de R e (2) não ser transitivamente dependente de
nenhuma chave de R.

Antes de apresentarmos as outras formas normais vamos fazer uma


questão sobre os conceitos vistos até aqui:

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 30 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

11. Ano: 2017 Banca: FGV Órgão: Alerj Cargo: Analista de Tecnologia
da Informação Q. 48
Em banco de dados, a finalidade do processo de normalização é evitar
redundâncias e, portanto, evitar certas anomalias de atualização de dados.
Considere as dependências funcionais entre os atributos das seguintes
entidades:
PACIENTE(ID_PACIENTE determina NOME_PACIENTE);
MEDICO(ID_MEDICO determina CRM_MEDICO, NOME_MEDICO);
CONSULTA(ID_PACIENTE, ID_MEDICO determinam DATA_ATEND,
HORA_ATEND);
Sabendo-se que o atributo sublinhado é a chave primária, a alternativa que
apresenta as entidades e seus atributos na Terceira Forma Normal (3FN) é:
(A) PACIENTE (ID_PACIENTE, NOME_PACIENTE, ID_MEDICO, DATA_ATEND,
HORA_ATEND)
MEDICO (ID_MEDICO, CRM_MEDICO, NOME_MEDICO)
CONSULTA (CRM_MEDICO, DATA_ATEND, HORA_ATEND)
(B) PACIENTE (ID_PACIENTE, NOME_PACIENTE)
MEDICO (ID_MEDICO, CRM_MEDICO, NOME_MEDICO)
CONSULTA (ID_PACIENTE, NOME_MEDICO, DATA_ATEND, HORA_ATEND)
(C) PACIENTE (ID_PACIENTE, NOME_PACIENTE, ID_MEDICO)
MEDICO (ID_MEDICO, CRM_MEDICO, NOME_MEDICO)
CONSULTA (ID_PACIENTE, DATA_ATEND, HORA_ATEND)
(D) PACIENTE (ID_PACIENTE, NOME_PACIENTE)
MEDICO (ID_MEDICO, CRM_MEDICO, NOME_MEDICO)
CONSULTA (ID_PACIENTE, ID_MEDICO, DATA_ATEND, HORA_ATEND)
(E) PACIENTE (ID_PACIENTE, NOME_PACIENTE)
MEDICO (ID_MEDICO, CRM_MEDICO, NOME_MEDICO)
CONSULTA (ID_PACIENTE, CRM_MEDICO, NOME_MEDICO,
DATA_ATEND, HORA_ATEND)
Comentário: Para chegarmos até a terceira forma normal temos que cumprir
alguns requisitos. As relações do modelo não podem ter atributos compostos ou
multivalorasdos (1FN), não pode existir em cada uma das relações dependência
parcial (2FN) nem dependência transitiva (3FN). Ao ajustar o modelo podemos
encontra nossa resposta na alternativa D.
Gabarito: D
Forma normal de Boyce-Codd (FNBC) – Uma coisa interessante é que
ela foi proposta como uma forma mais simples que 3FN, porém mais rígida.
Devido ao fato de a 3FN não tratar satisfatoriamente casos onde uma relação
tem mais de uma chave candidata, estas chaves são compostas e possuem
atributos em comum.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 31 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Se uma relação está na FNBC, também está na 3FN. Sua definição diz o
seguinte: uma relação está na FNBC se todo determinante é chave candidata.
Abaixo segue uma figura que demonstra uma normalização de uma relação para
a FNBC.

12. BANCA: FCC ANO: 2015 ÓRGÃO: TRE-RR PROVA: ANALISTA


JUDICIÁRIO - ANÁLISE DE SISTEMAS
Considere a entidade a seguir, retirada de um diagrama de entidade-
relacionamento, que possui como chave primária os atributos employee_id e
start_date.

Pode-se afirmar que para esta entidade estar na Segunda Forma Normal (2FN),
ela precisa estar na Primeira Forma Normal (1FN) e
A os atributos employee_id, job_id e department_id precisam ser chave
estrangeira nesta entidade.
B a chave primária precisa ser formada pelos atributos employee_id, job_id e
department_id, que são provenientes de tabelas relacionadas a esta.
C o atributo employee_id, que é parte da chave primária, precisa ser
proveniente de uma das tabelas relacionadas a esta.
D os atributos end_date, job_id e department_id precisam ser dependentes da
chave primária composta inteira, não apenas de parte dela.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 32 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

E todos os atributos precisam permitir apenas valores exclusivos, de forma que


não haja redundância e, consequentemente, desperdício de espaço em disco.
Comentário: Vejam que pelo diagrama sabemos que JOB_HISTORY se relaciona
com outras 3 entidades, possivelmente, EMPLOYEE, JOB e DEPARTMENT. Se
lembrarmos da definição da segunda forma normal que diz para eliminarmos
dependência parcial, podemos observar que a alternativa D está correta, pois é
uma implicação da 2FN.
Gabarito: D.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 33 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

6. Mapeando o modelo ER em relacional


Quando estudamos os conceitos introdutórios de banco de dados sempre
falamos do modelo conceitual entidade-relacionamento (ER) e do modelo lógico
relacional. Explicamos que durante um projeto de banco de dados a evolução
natural leva você a construir os dois modelos a partir dos requisitos do cliente.

Legal, então você começou pelo minimundo, juntou os requisitos e


construiu seu modelo ER! Agora, se você tinha dificuldade de passar esse
modelo para o modelo relacional, seus problemas acabaram! Nas próximas
linhas vamos explicar o passo a passo da transformação do seu diagrama ER em
tabelas.

O livro do Navathe sugere um algoritmo que nos ajuda no processo de


transformar um esquema ER e um esquema relacional. Vamos utilizar o
esquema abaixo para ilustrar o passo-a-passo deste mapeamento.

Passo 01: O mapeamento começa com as entidades regulares do modelo


ER. Para casa tipo de entidade forte ‘E’ presente no diagrama, criamos uma
relação ‘R’ que incluí todos os atributos simples da entidade E. Escolha os
atributos chaves da entidade para ser chave primária da relação. Se a chave da
entidade for composta, o mesmo conjunto de atributos que formam a chave de E
vão fazer parte da chave primária de R.

Vejamos no exemplo temos as entidades fortes EMPLOYEE, DEPARTAMENT


e PROJECT serão transformados em relações. Os atributos SSN, DNUMBER e
PNUMBER serão as chaves primárias das respectivas tabelas. Assim temos:

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 34 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Passo 02: A segunda etapa se concentra em mapear as entidades fracas.


Para cada entidade fraca W no modelo ER com uma entidade pai ou proprietária
E, você deve criar uma relação R e incluir todos os atributos simples (ou os
componentes simples de atributos compostos) de W como atributos de R. É
necessário ainda incluir como chave estrangeira os atributos que fazem parte da
chave primária da entidade proprietária E. Assim a chave primária será formada
pela combinação da chave primária da entidade pai mais a chave parcial da
entidade fraca, caso exista.

Vamos mais uma vez para o nosso diagrama ER. A entidade fraca
DEPENDENT deve dar origem a uma relação. Essa relação terá os atributos da
entidade, além da chave estrangeira que vem da entidade pai. Vejam, então,
que o Ssn fará parte da relação. Desta forma podemos construir a relação
dependente conforme descrito abaixo:

Passo 03: Vamos agora começar a mapear os relacionamentos binários


1:1 entre as entidades. Para cada relacionamento binário 1:1 R no esquema ER,
identificamos as relações que correspondem as entidades S e T que participam
do relacionamento R. A partir deste momento temos três ações possíveis.

A primeira seria usar chave estrangeira para efetivar o relacionamento.


Neste caso você escolhe uma das chaves primárias de S ou de T. Vamos supor
que escolhemos a chave de S. Você vai usar a chave primária de S e incluir ela
como chave estrangeira da relação T.

A melhor opção é escolher a entidade que tenha participação total no


relacionamento. Em outras palavras, você deve escolher a entidade que para
cada instância existente da entidade ela tenha uma instância no relacionamento
e incluir a chave primária da outra entidade nela. Vejam que neste caso
evitamos o uso valores nulos.

Um exemplo desta opção é colocar na relação DEPARTAMENT a chave do


funcionário que gerencia (MANAGES) o departamento. Vejam que todo

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 35 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

departamento deve ter um funcionário como gerente. Agora nossa tabela de


DEPARTAMENT aparece com os novos atributos: o id do gerente e a data de
início da gerência.

A segunda opção seria fazer um merge ou fusão das relações. Vejam que
se temos um relacionamento 1:1 podemos combinar os atributos das duas
relações e do relacionamento em uma única relação. Essa opção é adequada
quando a participação das duas entidades no relacionamento é total.

A terceira opção seria por cross-reference ou criação de uma relação para o


relacionamento. Essa alternativa basicamente cria uma nova relação com a
chave primária das duas relações participantes para prover o relacionamento
entre elas. Conhecida como tabela de ligação.

Passo 04: Neste momento vamos nos preocupar com os relacionamentos


binários 1:N. Para cada relacionamento binário 1:N, vamos identificar a relação
S que representa a participação da entidade no lado N do relacionamento. Em
seguida, devemos incluir a chave estrangeira da relação T em S. Os atributos da
relação 1:N também devem aparecer na relação S.

Vejamos um exemplo, os relacionamentos WORKS_FOR, CONTROLS e


SUPERVISION no diagrama ER acima. Para WORKS_FOR vamos incluir o número
do departamento como chave estrangeira na relação EMPLOYEE, vamos chama-
lo de DNO.

Da mesma forma vamos incluir SUPER_SSN para implementar o


relacionamento SUPERVION e o número do departamento na tabela de projeto
para implementar o relacionamento CONTROLS. Vejam como ficaram as relações
EMPLOYEE e PROJECT com essas mudanças.

Passo 05: O próximo mapeamento deve tomar conta dos relacionamentos


M:N. Para cada relacionamento M:N criar uma nova relação para representar o
relacionamento. Inclua como chaves estrangeiras da nova relação as chaves
primárias das entidades participantes. Inclua ainda os atributos simples do
relacionamento na nova tabela.

Observe o relacionamento WORKS_ON no diagrama ER. Ele é mapeado


pela criação da entidade WORKS_ON no esquema relacional. A chave primária é
Prof. Thiago Rodrigues Cavalcanti
www.estrategiaconcursos.com.br 36 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

formada pelas chaves estrangeiras de projeto e empregado, renomeadas


respectivamente para PNO e ESSN, respectivamente. O atributo HOURS é
representado na relação.

Passo 06: Vamos agora fazer o mapeamento dos atributos multivalorados.


Para cada atributo multivalorado A, crie uma tabela R. Essa relação R vai incluir
qualquer atributo pertencente ao conjunto A, além da chave primária da
entidade K que tem A como atributo multivalorado sendo chave estrangeira em
R. A chave primária da relação é uma combinação de A e K.

No nosso modelo temos o exemplo de DEPT_LOCATIONS que deve ser


criado. O atributo DLOCATION representa um atributo multivalorado de
departamento, que tem como chave primária DNUMBER. A relação
DEPT_LOCATIONS fica com a seguinte configuração:

Antes de passar para o passo 07, vamos apresentar o esquema relacional


completo derivado do diagrama ER apresentado acima. As setas indicam a
existência de uma chave estrangeira que garante a integridade referencial.

Modelo relacional
Passo 07: A última etapa é o mapeamento de relacionamentos N-ários.
Devemos criar uma nova relação que inclua as chaves primárias de todas as
entidades participantes do relacionamento quanto n>2. Adicione também os
atributos simples. Observe o diagrama abaixo o resultado do mapeamento do
relacionamento SUPPLY em uma relação.
Prof. Thiago Rodrigues Cavalcanti
www.estrategiaconcursos.com.br 37 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Digrama ER de um relacionamento ternário

Modelo relacional derivado de um relacionamento ternário.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 38 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Questões comentadas
Aproveitamos este espaço para complementar seu entendimento sobre o
assunto, sempre colocando pinceladas extras de conteúdo. Na lista abaixo
resolvemos dividir as questões por banca, começando pela CESPE. Essas
questões abordam os assuntos vistos nesta nossa aula: álgebra relacional e
formas normais. A minha sugestão é que, antes de tentar fazer as questões você
assista aos vídeos sobre o assunto associados a essa aula.

13. BANCA: CESPE ANO: 2015 ÓRGÃO: CGE-PI PROVA: AUDITOR


GOVERNAMENTAL - TECNOLOGIA DA INFORMAÇÃO
A respeito de banco de dados, julgue os itens subsequentes.
Para normalizar, conforme primeira forma, uma tabela em um banco de dados, é
preciso criar chaves estrangeiras que representem a ligação entre elas.
Comentário: A primeira forma normal deve eliminar atributos compostos e
multivalorados. Vejam que no caso dos atributos compostos não é necessário
criar outra relação, basta fracionar as partes em atributos atômicos. Quando
estamos removendo atributos multivalorados podemos utilizar outra tabela para
listar os diversos valores e associa-los por meio da chave. Ou seja, nem sempre
é necessário usar chaves estrangeiras quando normalizamos para a 1FN.
Gabarito: E.

14. BANCA: CESPE ANO: 2013 ÓRGÃO: CRPM PROVA: ANALISTA EM


GEOCIÊNCIAS - SISTEMAS DE INFORMAÇÃO
No que concerne a mapeamento de dados lógico e físico e a elaboração e
implantação de projeto de banco de dados, julgue os seguintes itens.
No processo de implantação de um projeto de banco de dados, devem ser
utilizadas as operações de álgebra relacional de dados para estabelecer as
restrições de cardinalidade e relacionamento entre o conjunto de entidades.
Comentário: As operações da álgebra relacional fornecem subsídio matemático
para execução de operações no modelo relacional. Elas são utilizadas pelos
desenvolvedores de SGBDs para estruturar as operações sobre as tabelas em
bancos de dados relacionais.
A cardinalidade entre os relacionamentos e os relacionamentos em si são
implementados por meio das restrições de integridade e da organização ou
estruturação dos dados nas diversas tabelas do modelo. Um relacionamento N
para N precisa de uma tabela de ligação que é formada pelas chaves de cada
uma das tabelas que participam do relacionamento.
Gabarito: E

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 39 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

15. BANCA: CESPE ANO: 2013 ÓRGÃO: ANTT PROVA: ANALISTA


ADMINISTRATIVO - DESENVOLVIMENTO DE SISTEMAS
Julgue os itens subsequentes, relativos a banco de dados.
A linguagem padrão de consulta SQL (structured query language) utiliza uma
combinação de construtores em álgebra e cálculo relacional.
Comentário: O cálculo relacional é considerado a base para linguagem SQL, e a
álgebra relacional é usada nos detalhes internos de muitas implementações de
banco de dados para processamento e otimização de consulta. Alternativa
correta!
Gabarito: C.

16. BANCA: CESPE ANO: 2013 ÓRGÃO: TCE-ES PROVA: ANALISTA


ADMINISTRATIVO - INFORMÁTICA
O conjunto de operações cujo resultado seja uma nova relação e que envolve
seleção, projeção, união e produto cartesiano é denominado
A mapeamento de cardinalidades.
B álgebra relacional.
C generalização.
D chave primária.
E herança.
Comentário: Essa questão você deve fazer rapidamente e ganhar tempo na
hora da prova para outras questões mais complexas. Vejam que ela basicamente
quer saber se você conhece as operações da álgebra relacional.
Gabarito B

17. Ano: 2016 Banca: CESPE Órgão: TCE-SC Cargo: Auditor de TI


Com relação aos bancos de dados relacionais, julgue os próximos itens.
94 O catálogo de um sistema de gerenciamento de banco de dados relacional
armazena a descrição da estrutura do banco de dados e contém informações a
respeito de cada arquivo, do tipo e formato de armazenamento de cada item de
dado e das restrições relativas aos dados.
95 Denomina-se visão uma tabela única derivada de uma ou mais tabelas
básicas do banco. Essa tabela existe em forma física e viabiliza operações
ilimitadas de atualização e consulta.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 40 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

96 Em bancos de dados relacionais, as tabelas que compartilham um elemento


de dado em comum podem ser combinadas para apresentar dados solicitados
pelos usuários.
Comentário: O dicionário de dados ou catálogo de dados contém as descrições
das estruturas dos objetos presentes na base de dados. Presente em todos os
SGBDs relacionais ele guarda os metadados ou informações a respeitos dos
objetos armazenados. Podemos marcar como correta a assertiva 94.
A definição de visão presente no padrão SQL/ANSI é de uma estrutura
temporária que armazena informações advinda de uma ou mais tabelas. A visão
não é armazenada fisicamente em disco e é removida ou apagada ao final da
sua utilização. Sendo assim, a alternativa 95 encontra-se incorreta.
Dentro do contexto de bancos de dados relacionais, é possível usar as operações
de junção. Essas operações utilizam atributos que operam sobre o mesmo
domínio presentes em cada uma das tabelas. Esses atributos são utilizados para
juntar ou relacionar uma tabela com a outra, sempre que tivermos os mesmos
valores em ambas as tabelas. Vejam que temos mais uma vez uma alternativa
correta.
Gabarito: C E C

18. Ano: 2015 Banca: CESPE Órgão: TRE-PI – Questão 56


Acerca da aplicação dos princípios de normalização (Formas Normais), assinale a
opção correta.
A A aplicação da 1FN se dá se e somente se, para todo modelo, for aplicada a
Forma Normal de Boyce-Codd (ou BCNF).
B A 2FN é baseada no conceito de dependência funcional total, isto é, todo
atributo não primário de uma entidade tem dependência funcional total da chave
primária.
C A Terceira Forma Normal (3FN) requer que não haja dependências
intransitivas de atributos que não sejam com toda chave candidata.
D A aplicação da Primeira Forma Normal (1FN) requer que, ao fim da sua
aplicação, todos os atributos de uma relação sejam multivalorados ou estejam
em tabelas aninhadas, o que garante grupos repetidos de dados, reduzindo o
tamanho físico do banco de dados.
E A Segunda Forma Normal (2FN) requer que, ao fim da sua aplicação, não haja
dependências transitivas de atributos que não sejam com toda chave candidata.
Comentários: Vamos comentar cada uma das alternativas acima.
A. Vimos durante a aula que a 1FN está relacionada a eliminação de atributos
compostos ou multivalorados, e que a forma normal de Boyce-Codd é aplicada
após a 3FN. Desta forma, a alternativa A se encontra incorreta.
B. Sabemos que a caraterística que nos leva a considerar a existência de um
problema com a segunda forma normal é a presença de chave composta na
relação. Se parte dessa chave determinar algum outro atributo da tabela temos
uma dependência funcional parcial, o que fere a segunda forma normal. Temos

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 41 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

que fazer com que todo atributo nesta condição seja decomposto de forma a
evitar problemas com a 2FN. A alternativa está correta, essa é nossa resposta!
C. A terceira forma normal trata da eliminação das dependências transitivas.
Desta forma a alternativa está incorreta, pois fala em dependências
intransitivas.
D. A primeira forma normal, como falamos na alternativa A, visa eliminar
atributos atômicos, a alternativa D, portanto, encontra-se incorreta.
E. A presença de dependências transitivas é eliminada pela terceira forma
normal e não pela segunda como sugere a questão.
Gabarito: B

19. BANCA: CESPE ANO: 2014 ÓRGÃO: TC-DF PROVA: ANALISTA DE


ADMINISTRAÇÃO PÚBLICA - SISTEMAS DE TECNOLOGIA DA
INFORMAÇÃO
Com relação a projetos de bancos de dados, modelo entidade relacionamento e
linguagens utilizadas em bancos de dados, julgue os próximos itens.
Durante o projeto de um banco de dados, transformando-se as relações na
quinta forma normal, garante-se que elas não terão anomalias que possam ser
eliminadas usando-se projeções.
Comentário: Justamente! Comentamos isso quando tercemos os comentários
teóricos a respeito da 5FN, as projeções sobre a relação, que são as partes da
decomposição da relação original, devem ser capazes de reconstruir a relação
sem perdas ou anomalias.
Gabarito: C.

20. BANCA: CESPE ANO: 2015 ÓRGÃO: MPOG PROVA: ANALISTA -


ANALISTA EM TECNOLOGIA DA INFORMAÇÃO
A respeito de modelo entidade-relacionamento e normalização, julgue os itens
subsequentes.
113 Em relações normalizadas, na primeira forma normal, toda tupla em toda
relação contém apenas um único valor, do tipo apropriado, em cada posição de
atributo.
114 Sabendo que, nos relacionamentos ternários, a cardinalidade refere-se a
pares de entidades, em um relacionamento ternário R entre três entidades A, B
e C, a cardinalidade máxima de A e B dentro de R indica quantas ocorrências de
C podem estar associadas a um par de ocorrências de A e B.
Comentário: A primeira forma normal diz que todo atributo deve ser atômico.
Ou de outra forma, nenhum atributo pode ser composto ou multivalorado. A
partir dessa definição podemos dizer que em toda tupla cada um dos seus
atributos deve ter apenas um valor de um tipo apropriado. A alternativa 113
está correta. Aproveitando para dizer que a primeira forma normal é parte da
Prof. Thiago Rodrigues Cavalcanti
www.estrategiaconcursos.com.br 42 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

definição do modelo relacional. Ou seja, se eu disser que uma tabela do modelo


relacional ela está automaticamente na primeira forma normal.
Uma propriedade importante de um relacionamento é de quantas ocorrências de
uma entidade podem estar associadas a uma determinada ocorrência através do
relacionamento. Esta propriedade é chamada de Cardinalidade. Num
relacionamento ternário a cardinalidade é definida pelo relacionamento de uma
entidade com as demais conjuntamente. Vejam a figura abaixo:

Gabarito: C C.

21. BANCA: CESPE ANO: 2015 ÓRGÃO: CGE-PI PROVA: AUDITOR


GOVERNAMENTAL - TECNOLOGIA DA INFORMAÇÃO
A respeito de banco de dados, julgue os itens subsequentes.
96 Um modelo de dados pode ser usado para representar os tipos de dados
existentes em um banco de dados de um sistema online de reservas.
97 Em banco de dados relacional, os atributos representam as entidades do
mundo real.
98 Em um relacionamento de tabelas de um banco de dados relacional, a chave
estrangeira serve para referenciar uma entidade dentro de outra tabela,
facilitando, assim, a busca e o agrupamento dessas entidades.
99 Para normalizar, conforme primeira forma, uma tabela em um banco de
dados, é preciso criar chaves estrangeiras que representem a ligação entre elas.
100 Em um sistema gerenciador de banco de dados, a linguagem de definição de
dados possibilita a criação das tabelas bem como a autorização de acesso aos
dados para determinados usuários do banco de dados.
Comentário: Vamos analisar cada uma das alternativas acima.
Comentário 96. Um modelo de banco de dados pode representar diferentes tipos
de negócios, um deles, definido inclusive no livro do Silberchatz é o sistema de
reservas on-line. Alternativa correta.
Prof. Thiago Rodrigues Cavalcanti
www.estrategiaconcursos.com.br 43 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Comentário 97. Os atributos representam as características de uma entidade e


não a entidade em si. Logo, alternativa incorreta.
Comentário 98. A assertiva define com perfeição o motivo da existência das
chaves estrangeira.
Comentário 99. A normalização para primeira forma normal é feita eliminando os
atributos compostos ou multivalorados. Veremos mais sobre normalização na
próxima aula.
Comentário 100. Segundo o livro do Navathe: “Quando o projeto de um banco
de dados é finalizado e um SGBD é escolhido para implementá-lo, o primeiro
passo é especificar esquemas conceituais e internos para o banco de dados e
quaisquer mapeamentos entre os dois. Em muitos SGBDs, onde não é mantida
nenhuma separação estrita de níveis, uma linguagem, chamada linguagem de
definição de dados (DDL) é usada pelo DBA e pelos projetistas de banco de
dados para definir os dois esquemas". A DDL SQL inclui comandos para
especificar direitos de acesso para relações e views.
Gabarito: C E C E C.

22. Ano: 2017 Banca: FCC Órgão: ARTESP Cargo: Especialista em


Regulação de Transporte - Tecnologia da Informação Questão: 73.
73. Na modelagem de um banco de dados relacional há diversos aspectos a
serem considerados. Dentre tais aspectos, é correto afirmar que
(A) a função exercida por um conjunto de entidades ligado a um conjunto de
relacionamentos denomina-se gatilho.
(B) uma modelagem de um banco de dados relacional suporta um número
máximo teórico de conjuntos de entidades, não superior a 30.
(C) as propriedades descritivas de um conjunto de entidades são denominadas
de atributos.
(D) conjuntos de relacionamentos não admitem atributos do tipo descritivo.
(E) um conjunto de relacionamentos recursivo liga dois ou mais conjuntos de
entidades.
Comentário: O modelo relacional pode ser visto como um conjunto de entidade
denominadas relações. Cada relação possui um conjunto de linhas ou tuplas.
Cada tupla é uma instância do tipo ou entidade e possui nos seus atributos
características descritivas da entidade.
Uma relação se associa com outro por meio de chave estrangeira, que liga uma
ou várias tuplas de uma relação à uma ou várias tuplas de outra relação. Não
existe número máximo teórico para a quantidade de tuplas em uma relação nem
para a quantidade de relações dentro de um esquema. Veja que o Oracle não
possui limitações para quantidade de tabelas em um banco de dados, nem de
colunas em uma tabela.
Os conjuntos de relacionamento são as conhecidas tabelas de ligação que,
geralmente, fazem o relacionamento N:N entre duas entidades. Se você lembrar

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 44 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

do modelo ER, deve ter em mente que os relacionamentos possuem atributos.


Esses atributos vão aparece no conjunto de relacionamento. Relacionamento
recurso não é um termo usado na teoria de banco de dados relacional. Existe um
auto relacionamento quando a chave estrangeira referenciada está na própria
tabela. É o caso do atributo gerente da tabela empregado.
Gabarito: C

23. Ano: 2017 Banca: FCC Órgão: ARTESP Cargo: Especialista em


Regulação de Transporte - Tecnologia da Informação Questão: 74.
74. Com o intuito de verificar se uma determinada relação R de um banco de
dados relacional atende a segunda forma normal, deve-se verificar se
(A) atributos que não façam parte de qualquer chave candidata de R são total e
funcionalmente dependentes da chave primária de R.
(B) o domínio de todos os atributos de R comportam valores considerados
múltiplos.
(C) todos os atributos de R são do tipo literal ou numérico.
(D) a relação R tem uma chave primária composta por dois ou mais atributos.
(E) o número de atributos da relação R é múltiplo de 2.
Comentário: Sabemos que a segunda forma norma procura eliminar
dependências parciais de atributos primários. Em outras palavras, precisamos
procurar por atributos que façam parte de uma chave candidata composta e
verificar se individualmente algum deles consegue determinar algum outro
atributo, não chave da relação.
Veja que o acabamos de falar acima pode ser reescrito de outra forma. Os
atributos que não façam parte de qualquer chave candidata de R são total e
funcionalmente dependentes da chave primária de R. Assim, nossa resposta
encontra-se na alternativa A.
Gabarito: A.

24. Ano: 2017 Banca: FCC Órgão: TRT-11 Cargo: Analista Judiciário de
TI – Q. 44
Considere o modelo de dados abaixo.

Na relação entre as entidades Advogado e Processo um advogado poderá atuar


em diversos processos, tanto como advogado de defesa como de acusação.
Assim, cada processo terá, pelo menos, dois advogados. Com base nesse

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 45 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

modelo, na implementação das tabelas do banco de dados em um Sistema de


Gerenciamento de Banco de Dados relacional,
(A) será necessária a criação de uma tabela entre Advogado e Processo e o
relacionamento N:N dará lugar a dois relacionamentos 1:N.
(B) a chave primária da tabela Processo deverá ser chave estrangeira na tabela
Advogado.
(C) a chave primária da tabela Advogado deverá ser chave estrangeira na tabela
Processo.
(D) ambas as tabelas (Processo e Advogado) deverão ter chave primária
composta.
(E) a tabela Advogado deverá ter um campo para especificar o tipo de atuação
do advogado em cada processo (defesa ou acusação).
Comentário: Já falamos algumas vezes sobre esse tipo de questão. Ela
pergunta como vamos fazer a passagem do modelo entidade-relacionamento
para o modelo relacional. Quais relações precisam ser criadas. Dado a existência
de um relacionamento N:M, precisamos criar uma tabela auxiliar para
representar os relacionamentos entre as entidades advogado e processo. Essa
relação terá como chave primária os atributos chave das duas entidades. Ela
poderá ainda ter outros atributos que fazem sentido apenas para o
relacionamento.
Veja, portanto, que será necessária a criação de uma tabela entre
Advogado e Processo e o relacionamento N:N dará lugar a dois
relacionamentos 1:N. Tal texto está presente na alternativa A, que é a
resposta da nossa questão.
Gabarito: A.

25. Ano: 2017 Banca: FCC Órgão: TRE-SP Cargo: Técnico Judiciário de
TI – Operação de computadores - Q. 57
57. Um Técnico do TRE-SP deparou-se, hipoteticamente, com o seguinte
problema:
Um banco de dados relacional, modificado por outro profissional, começou a
apresentar anomalias. As entidades conceituais que embasaram o banco,
originalmente, eram Processo e Cidadão. Os requisitos especificavam que o
relacionamento entre tais entidades atendesse ao fato de que um processo
poderia relacionar-se com um único cidadão e um cidadão, claramente, poderia
relacionar-se com mais de um processo. Isto para o caso do relacionamento
denominado Autoria. Já, em outro relacionamento entre as mesmas entidades,
denominado Participação, o processo poderia ter a participação de mais de um
cidadão e cada um deles também poderia participar de mais de um processo.
Ora, após a modificação do banco, quando os usuários tentaram entrar com
mais de um cidadão na atualização de participação de um determinado processo,
apesar de na tela ter o espaço para tal, o programa apresentava erro de
consistência, não aceitando mais de um cidadão participante. Nesse caso,
especificamente, ocorreu a implementação do relacionamento

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 46 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

(A) Participação (Processo Participação de Cidadão, nesta ordem) como n:m.


(B) Participação (Processo Participação de Cidadão, nesta ordem) como n:1.
(C) Autoria (Processo Autoria de Cidadão, nesta ordem) como n:m.
(D) Participação (Processo Participação de Cidadão, nesta ordem) como 1:n.
(E) Autoria (Processo Autoria de Cidadão, nesta ordem) como n:1.
Comentário: Depois de ler toda a histórica contada pelo enunciado podemos
verificar que o relacionamento Participação deve permitir que 1 Cidadão
participe de vários processos. Desta forma, temos que ter um relacionamento
1:n entre cidadão e processo. Neste caso, a nossa resposta está na alternativa
B.
Gabarito: B.

26. Ano: 2017 Banca: FCC Órgão: TRE-SP Cargo: Técnico Judiciário de
TI – Q. 57
Considere as entidades abaixo que são integrantes de um modelo de banco de
dados relacional.
Candidato Candidato_Concurso Concurso
idCandidato(pk) idCandidato (pk, fk) idConcurso(pk)
nomeCandidato idConcurso (pk, fk) nomeConcurso
Analisando-se as entidades, tem-se que
(A) estas entidades estabelecem dois relacionamentos n:m não-identificados
(non-Identifying).
(B) se for incluído um atributo pontuacao, ele terá que ser incluído na entidade
Candidato.
(C) se for incluído o atributo dataInscricaoCandidato, ele terá que ser incluído na
entidade Candidato_Concurso.
(D) para que a entidade Candidato esteja na 1a forma normal, a entidade
Candidato_Concurso precisa estar normalizada.
(E) a entidade Candidato_Concurso nunca estará na 2a forma normal porque ela
possui chave primária composta
Comentário: Vamos comentar cada uma das alternativas.
Para respondermos com certeza a alternativa A precisamos ter o conhecimento
de relacionamento identificado e não-identificado. Percebam que a tabela
Candidato_concursos recebeu os atributos chaves das outras tabelas do modelo.
Se esses atributos fizerem parte da chave da relação, no caso,
Candidado_Concurso, temos um relacionamento identificado, caso contrário, se
eles forem apenas atributos não chaves teríamos um relacionamento não
identificado. Desta forma, não podemos falar de relacionando não identificado,
pois os atributos são considerados chave primária da relação
Candidato_Concurso.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 47 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Já na alternativa B temos uma suposição, se formos incluir um novo atributo no


modelo denominado pontuação, em qual relação ele deveria ser incluído.
Perceba que a inclusão deve ser feita na tabela que representa o relacionamento
Candidato_concurso, na mais razoável, visto que, você recebe uma pontuação
quando participa de um concurso.
Perceba que na alternativa C temos outra suposição, só que desta vez, o novo
atributo, dataInscriçãoCandidato, está inserido na relação correta. Desta forma
essa é a nossa resposta!
A normalização de uma entidade ou relação não depende da normalização da
outra. Desta forma a alternativa D está incorreta.
A alternativa E apresenta um conceito incorreto. O fato de ter um atributo (veja
que é atributo e não chave) composto fere a primeira forma normal. A 1FN exige
que todos os atributos sejam atómicos. A segunda forma norma trata de
eliminar as dependências parciais. Vejam que a alternativa apresente um texto
totalmente desconexo. ==9e8c==

Gabarito: C.

27. Ano: 2016 Banca: FCC Órgão: TRE-SP Cargo: Analista Judiciário de
TI – Q. 59.
Considere as informações abaixo.
PROCESSO (Num_Processo, [Titulo_Eleitor, Nome_Eleitor,
Zona_Eleitoral_Eleitor, Secao_Eleitoral_Eleitor, Status_Eleitor_no_Processo],
Data_Criacao_Processo, Data_Solucao_Processo).
Sabe-se que os seguintes requisitos se aplicam:
− Um Eleitor pode ser citado em um ou mais processos.
− Um Processo pode citar um ou mais eleitores, portanto, os dados de Eleitor,
entre chaves na tabela (ou relação) acima, podem ser integrantes de um grupo
de repetição.
− Os atributos grifados são chaves-primárias de seus respectivos grupos de
atributos, ou seja, Num_Processo é chave dos dados de processo e Titulo_Eleitor
é chave dos atributos de eleitor.
− O Status_Eleitor_no_Processo (ex. Ativo, Inativo, Desistente) pode ser
diferente nos processos nos quais é citado, ou seja, o mesmo eleitor pode ter,
por exemplo, o status de Desistente em um processo, mas Ativo em outro).
Após a aplicação da 3FN, a situação ficou como segue:
− PROCESSO (Num_Processo, Data_Criacao_Processo, Data_Solucao_Processo)
− ELEITOR (Titulo_Eleitor, Nome_Eleitor, Zona_Eleitoral_Eleitor,
Secao_Eleitoral_Eleitor)
− CITAÇÃO (Num_Processo, Titulo_Eleitor, Zona_Eleitoral_Eleitor,
Status_Eleitor_no_Processo)
Os atributos em negrito são as chaves identificadoras das tabelas (ou relações).

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 48 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Um experiente Analista de Sistemas analisou a situação e concluiu,


corretamente, que a normalização
(A) deve manter o atributo Num Processo em ELEITOR, para ficar integralmente
correta.
(B) deve incluir o atributo Data_Solucao_Processo na CITAÇÃO, para ficar
integralmente correta.
(C) está integralmente correta.
(D) deve retirar o atributo Zona_Eleitoral_Eleitor da CITAÇÃO, para ficar
integralmente correta.
(E) deve incluir o atributo Status_Eleitor_no_Processo em PROCESSO, para ficar
integralmente correta.
Comentário: Percebam que o processo de normalização foi feito de forma
parcialmente correta. Primeiramente foram separados os atributos que
descrevem cada uma das entidades do modelo. Desta forma, o atributo
composto ELEITOR que inicialmente fazia parte da tabela de PROCESSO passou
a ser uma entidade própria. A tabela de PROCESSO também ficou apenas com
seus atributos. E uma nova tabela CITACAO foi criada para associar um processo
a uma pessoa. O atributo status_eleitor_no_processo foi devidamente associado
a citação, o que faz todo sentido.
Contudo, perceba que o atributo zona_eleitoral_eleitor aparece de forma
incorreta na tabela CITAÇÂO. Ele pode ser obtido por meio do título de eleitor, o
que gera uma dependência parcial no modelo e fere a segunda forma normal.
Assim, nossa resposta aparece na alternativa D: “deve retirar o atributo
Zona_Eleitoral_Eleitor da CITAÇÃO, para ficar integralmente correta.”
Gabarito: D

28. BANCA: FCC ANO: 2015 ÓRGÃO: CNMP PROVA: ANALISTA DO


CNMP - DESENVOLVIMENTO DE SISTEMAS
Considere a tabela funcionario a seguir, cuja chave primária é FuncCPF, em um
banco de dados relacional.

A manipulação de dados nesta tabela pode levar a problemas conhecidos como


anomalias. Sobre elas, considere:
I. Para incluir uma nova tupla na tabela será necessário incluir ou os valores de
atributo do departamento para o qual o funcionário trabalha ou valores NULL, se
o funcionário ainda não trabalha para nenhum departamento. Este é um
exemplo de anomalia de inserção.
II. A única maneira de inserir um novo departamento que ainda não tenha
funcionários é colocar valores NULL nos atributos para funcionário, já que este

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 49 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

procedimento não viola a integridade de entidade. Este é um exemplo de


anomalia de inserção.
III. Se o funcionário Antônio for excluído e este for o último funcionário
trabalhando no departamento RH, a informação referente a este departamento
se perde do banco de dados. Este é um exemplo de anomalia de exclusão.
IV. Se o valor de um dos atributos de determinado departamento for mudado
(do departamento 5, por exemplo) será necessário atualizar as tuplas de todos
os funcionários que trabalham neste departamento, caso contrário, o banco de
dados ficará incoerente. Este é um exemplo de anomalia de modificação.
Está correto o que se afirma APENAS em
A I, III e IV.
B III e IV.
C I, II e III.
D II e IV.
E I, II e IV.
Comentário: Quando tratamos do assunto de normalização é costume falar que
ao normalizar uma relação você vai reduzir anomalias de atualização. Contudo,
nem sempre nos lembramos de mostrar exemplos práticos de como isso
acontece, essa questão nos ajuda neste aspecto.
A assertiva I trata da inserção de um novo funcionário ainda não alocado em
nenhum departamento. Neste caso os valores referentes a departamento ficarão
vazios na tupla até que venham a ser inseridos. Além de não ser bom para
saúde do banco de dados esse exemplo é considerado um exemplo de anomalia
de inserção, sendo assim, temos uma alternativa correta.
Veja que não temos condições de inserir um departamento sem funcionário
associado, pois a chave da relação é o CPF do funcionário. Sabemos que a chave
primária não pode assumir valores nulos. Desta forma, podemos afirmar que a
alternativa II está errada.
A alternativa III descreve um caso concreto da anomalia de exclusão em tabelas
não normalizadas, vejam que é possível que você perca as informações sobre
um departamento ao excluir o último funcionário que está cadastro. A
alternativa está correta.
Por fim, a alternativa IV apresenta um exemplo concreto e correto de uma
anomalia de modificação.
Gabarito: A.

29. BANCA: FCC ANO: 2014 ÓRGÃO: TJ-AP PROVA: ANALISTA


JUDICIÁRIO - DESENVOLVIMENTO DE SISTEMAS
Uma Forma Normal (FN) é uma regra que deve ser obedecida por uma tabela
para ser considerada bem projetada. As descrições a seguir são de tabelas em
Formas Normais.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 50 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

I. A tabela não contém dependências transitivas, ou seja, as colunas que não


sejam chave primária não dependem funcionalmente de outras colunas ou
combinação de colunas que não sejam chave primária.
II. A tabela não contém dependências parciais, ou seja, cada coluna não chave
depende da chave primária completa e não apenas de parte dela.
Os itens I e II descrevem, respectivamente, regras referentes à
A 4FN e 2FN.
B 2FN e 3FN.
C 3FN e 2FN.
D 1FN e 3FN.
E 3FN e 4FN.
Comentário: Pelas definições, que já tratamos na aula e em questões
anteriores, as alternativas I e II estão associadas respetivamente a 3FN e 2FN.
Vejam que a sequência da associação tenta levar você a confundir entre as
alternativas B e C. Prestem bastante atenção para não cair nestas pegadinhas na
hora da prova.
Gabarito: C.

30. BANCA: FCC ANO: 2013 ÓRGÃO: MPE-MA PROVA: ANALISTA


JUDICIÁRIO - BANCO DE DADOS
Em um banco de dados relacional, a atividade de normalizar suas tabelas tem
como objetivo
A gerar os triggers especificados para o banco de dados.
B eliminar, ou pelo menos diminuir redundâncias de dados desnecessárias
nessas tabelas.
C impedir o acesso ao banco de dados, por parte de usuários desconhecidos.
D compilar todas as funções inseridas no banco de dados.
E preparar todas as tabelas do banco de dados para um backup completo.
Comentário. Vejam que a reposta bate completamente com a definição de
normalização. Seus principais objetivos são reduzir a redundância do banco de
dados e as anomalias de atualização. Falaremos mais sobre normalização na
aula de modelo relacional.
Gabarito B

31. Ano: 2014 Banca: Quadrix Órgão: COBRA Tecnologia S/A (BB)
Cargo: Analista - Programador

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 51 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Considere uma tabela de Alunos com uma chave primária matrícula-aluno e,


entre outros, os atributos nome-aluno, nome-curso e unidade-ensino. A tabela
Alunos está:
A) na 1FN, apenas
B) na 2FN, apenas.
C) na 3FN, apenas.
D) na 1FN e 2FN.
E) não normalizada.
Comentário: Percebam que temos uma relação (ALUNO) com os seguintes
atributos: matrícula-aluno, nome-aluno, nome-curso e unidade-ensino.
Percebam que, pela definição de relação, não temos nenhum atributo
composto ou multivalorado, logo podemos afirmar que a relação está na 1FN.
Esse é o primeiro requisito para verificarmos a especificidade da 2FN.
Agora começa os nossos problemas, não temos como verificar as outras
formas normais. Veja que existem outros atributos na relação, esses atributos
podemos ferir alguma das formas normais subsequentes. Desta forma, nosso
gabarito está na alternativa A.
Gabarito: A

32. Ano: 2014 Banca: Quadrix Órgão: COBRA Tecnologia S/A (BB)
Cargo: Analista - Programador
A integridade entre as informações armazenadas nas tabelas, com o vínculo
entre a chave primária de uma tabela com a chave estrangeira de outra tabela,
é implementada pelos SGDB pelo mecanismo de:
A) asserção.
B) gatilho.
C) integridade referencial.
D) restrição de domínio.
E) dependência funcional.
Comentário: Percebam que estamos falando de um dos tipos de restrições e
integridade dentro o banco de dados relacional. Neste caso específico o texto
descreve a integridade referencial.
A integridade referencial visa evitar a corrupção dos dados, de modo a não
existir um registro "filho" sem um registro "pai". A tentativa de exclusão (ou
alteração da chave primária) de um registo "pai" que possui registros "filhos"
associados a ele causam uma violação de chave estrangeira e devem ser
devidamente tratados.
Gabarito: C

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 52 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

33. Ano: 2014 Banca: Quadrix Órgão: COBRA Tecnologia S/A (BB)
Cargo: Analista - Programador
Duas entidades que se relacionam numa associação N:N fazem parte de um
modelo lógico que será implementado fisicamente num modelo relacional por
meio de:
A) uma tabela.
B) duas tabelas.
C) três tabelas.
D) quatro tabelas.
E) cinco tabelas.
Comentário: Essa situação específica de uma associação N:N no modelo ER
necessita de uma tabela, conhecida como tabela de ligação, que vai fazer a
união entre as chaves primárias e os atributos presentes no relacionamento.
Teremos ainda uma tabela para representar cara uma das entidades presentes
no relacionamento. Desta forma, precisamos de 3 tabelas para representar
essa associação.
Gabarito: C.

34. Ano: 2014 Banca: Quadrix Órgão: COBRA Tecnologia S/A (BB)
Cargo: Analista - Programador
Um modelo relacional é derivado a partir do modelo lógico, entre outras regras,
observando que:
A) um autorrelacionamento, com associação 1:N, exige que a chave secundária
da entidade A seja, na entidade B, chave primária.
B) o mapeamento dos relacionamentos pode ser por navegação disjunta, para
trabalhar com as modificações das definições dos registros existentes.
C) uma tabela á acessível por qualquer atributo, desde que este seja declarado
como chave primária.
D) toda entidade torna-se uma tabela, carregando todos os atributos definidos
para ela.
E) o relacionamento entre conjunto de dados (tabelas) deve existir fisicamente,
através de chave estrangeira.
Comentário: Essa é uma questão interessante para pensarmos na criação do
modelo relacional a partir de um modelo conceitual ou lógico. Vamos comentar
cada uma das alternativas.
Na alternativa A temos um erro ao afirmar que em um autorelacionamento 1:N
precisamos de um chave secundária. O que necessitamos na realidade é de uma
coluna que tem uma referência para a chave primária. Seria como uma chave
estrangeira que aponta para a própria tabela.
A alternativa B apresente um texto desconexo com os termos que utilizamos
para o estudo do assunto, não vamos comentar nada sobre ele.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 53 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Na alternativa C temos um absurdo. Uma tabela pode ser acessível por qualquer
atributo, se o acesso for feito por um atributo que seja diferente da chave e não
exista um índice sobre ele, será necessário fazer uma varredura completa da
tabela. Perceba que mesmo utilizando um full scan é possível que o acesso seja
feito por esse atributo. Você pode usar qualquer comparação na clausula where
do comando select, contudo a performance da consulta pode ficar muito lenta a
depender dos atributos utilizados.
A alternativa D está correta. Quando estamos passando do modelo ER para o
relacional, para cada entidade será criada uma tabela ou relação que a
represente.
Por fim a alternativa E apresenta um erro ao apresentar uma característica
incorreta do modelo relacional. Vejamos algumas características do modelo
listadas no livro Projeto de Banco de Dados do Felipe Machado:
1 - Uma tabela é acessível por qualquer campo (atributo) independente se este
é declarado como chave ou não;
2 - O relacionamento entre conjunto de dados (tabelas) não existe fisicamente,
pois este relacionamento é apenas lógico e representado através das chaves
estrangeiras;
3 - Utilização de linguagens autocontidas e não procedurais;
4 - Os ambientes relacionais possuem um otimizador estratégico para escolher o
melhor caminho para recuperação dos dados.
Desta forma, após analisar todas as alternativas, podemos marcar nosso
gabarito na alternativa D.
Gabarito: D.

35. Ano: 2012 Banca: Quadrix Órgão: CFP Cargo: Analista de


Tecnologia da Informação - Desenvolvimento
Sobre normalização de banco de dados, é incorreto a firmar que:
A) uma tabela que está na 1ª FN e que possui apenas uma coluna como chave
primária não contém dependências parciais.
B) uma tabela encontra-se na 2ª FN, quando, além de estar na FN, contém
dependências parciais.
C) uma tabela encontra-se na terceira forma normal, quando, além de estar na
2ª FN, não contém dependências transitivas.
D) uma dependência funcional transitiva ou indireta acontece quando uma
coluna não chave primária depende funcionalmente de outra coluna ou
combinação de colunas não chave primária.
E) toda tabela que está na 1ª FN e que possui apenas uma coluna como chave
primária já está na 2ª FN.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 54 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Comentário: Primeira informação importante para nossa análise da questão é


que procuramos a alternativa INCORRETA! Por favor, não vacile numa questão
deste tipo! Quando ver o termo incorreta no enunciado grife!
Analisando cada uma das alternativas podemos perceber que a alternativa 2
define de forma errada a 2FN. Segundo o Segundo Date, a 2FN é baseada no
conceito de dependência funcional total. Além de estar na 1FN, um esquema de
relação R está em 2FN se cada atributo não principal A em R for total e
funcionalmente dependente da CHAVE PRIMÁRIA de R.
Em outras palavras, não contém dependência parciais de colunas não chave
em relação à chave primária, incluindo-se nessa chave atributos e
relacionamentos identificadores. Assim, as colunas que não sejam chave
primária não dependem funcionalmente de outra coluna ou combinação de
colunas que sejam parte da chave primária.
Gabarito: B.

36. Ano: 2015 Banca: Quadrix Órgão: COBRA Tecnologia S/A (BB)
Cargo: Analista de Operações
Analisando uma tabela de um banco de dados, verificamos a seguinte situação:
Nome da Tabela:
Venda
Chave Primária Composta:
Código da Venda + Código do Produto + Código de Vendedor.
Campos não Chave:
Quantidade Vendida
Data da Venda
Nome do Vendedor
O que podemos afirmar sobre tal situação?
A) A tabela está em desacordo apenas com a primeira forma normal.
B) A tabela está em desacordo com a primeira e segunda formas normais.
C) A tabela está em desacordo apenas com a segunda forma normal.
D) A tabela está em desacordo apenas com a primeira e terceira formas
normais.
E) A tabela está em acordo apenas com a primeira e terceira formas normais.
Comentário: Essa questão é no mínimo estranha. Temos que descobrir ou
adivinhar que algum dos atributos descritos no enunciado é composto ou
multivalorado para adequarmos a resposta. Na minha concepção essa é uma
questão passível de recurso.
Mas para entendermos a questão temos que voltar a definição da primeira forma
normal: “Uma relação estará na primeira forma normal 1FN se não houver grupo
de dados repetidos, isto é, se todos os valores forem únicos. Em outras palavras

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 55 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

podemos definir que a primeira forma normal não admite repetições ou campos
que tenha mais que um valor”.
Agora podemos pensar que o nome do vendedor é composto polo primeiro
nome, nome do meio e último nome. Desta forma temos um atributo composto.
Ao mesmo tempo, o nome do vendedor depende apenas do código do vendedor
que uma parte da chave. Assim ferimos ainda a segunda forma normal ou seja.
O modelo fere a primeira e a segunda forma normal.
Gabarito: B.

37. Ano: 2015 Banca: Quadrix Órgão: CFA Cargo: Analista de Sistemas
Assinale a alternativa que faz uma afirmação correta sobre um banco de dados
relacional.
A) Toda chave secundária é, necessariamente, uma superchave.
B) Toda chave estrangeira é, necessariamente, uma superchave.
C) Toda chave primária é, necessariamente, uma superchave.
D) Toda superchave é, necessariamente, uma chave primária.
E) Toda chave candidata é, necessariamente, uma chave secundária.
Comentário: Vamos apresentar essas pertinências entre os conceitos de chaves
em forma de diagrama:

Analisando o diagrama e as alternativas podemos perceber que apenas a


alternativa C está correta.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 56 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Outro ponto importante da questão é que a definição de chave secundária não


aparece na figura. Perceba que uma chave secundária é estabelecida quando
temos a criação de um índice sobre uma tabela. Neste caso a chave secundária
não necessariamente é uma superchave. Já as chaves candidatas e primárias
são superchaves mínimas.
Veja o texto: “ Uma chave secundária é utilizada sobre um campo ou um
conjunto de campos que serão indexados para acessos mais rápidos. Uma tabela
pode ter várias chaves secundárias.” Enfim, chave secundária está diretamente
associada a índices de banco de dados. Desta forma, não existe garantia que ela
seja uma superchave.
Gabarito: C.

38. Ano: 2014 Banca: Quadrix Órgão: DATAPREV Cargo: Analista -


Tecnologia da Informação
Em uma determinada tabela de um banco de dados, há a necessidade de se
determinar que um campo identifique o registro inserido na tabela. Essa
identificação deve ser única, ou seja, sem repetição, exclusiva e não nula. Qual
das alternativas a seguir corresponde à descrição acima?
A) Chave Primária.
B) Chave Estrangeira.
C) UML.
D) Registro.
E) Chave Pública.
Comentário: Essa questão apresenta um conceito extremamente importante
dentro de banco de dados relacional que é conceito de chave primária. Chaves
primárias, sob o ponto de vista de um banco de dados relacional, referem-se
aos conjuntos de um ou mais campos, cujos valores, considerando a combinação
de valores em caso de mais de uma chave primária, nunca se repetem na
mesma tabela e, desta forma, podem ser usadas como um índice de referência
para criar relacionamentos com as demais tabelas do banco de dados (daí vem o
nome banco de dados relacional). Portanto, uma chave primária nunca pode ter
valor nulo, nem repetição.
Gabarito: A.

39. Ano: 2014 Banca: Quadrix Órgão: SERPRO Cargo: Analista -


Desenvolvimento de Sistemas
Considere os itens a seguir, referentes aos bancos de dados relacionais.
I. A tabela não contém dependências parciais.
II. A tabela não contém tabelas aninhadas.
III. A tabela não contém dependências transitivas.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 57 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Os itens I, II e III estão relacionados, direta e respectivamente, a


A) 1FN,2FN e 3FN
B) 3FN, 1FN e 2FN.
C) 2FN, 1FN e 3FN.
D) 1FN,3FN e 4FN
E) 3FN, 2FN e 4FN.
Comentário: Vejam que essa questão é para relembramos as definições das
formas normais. Vejam que a alternativa I apresenta o conceito presente na
2FN, qual seja: não existe dependência parcial. Na segunda afirmação temos
uma ideia presente na primeira forma normal, precisamos eliminar atributos
compostos ou multivalorados, isso vai eliminar a existência de tabelas
aninhadas. Por fim, a afirmação III descreve a terceira forma normal.
Desta forma, podemos marcar sem medo o gabarito na alternativa C.
Gabarito: C.

40. BANCA: CESGRANRIO ANO: 2013 ÓRGÃO: LIQUIGÁS PROVA:


ANALISTA DE SISTEMAS - TECNOLOGIA DA INFORMAÇÃO
Seja a seguinte sequência de operações da Álgebra Relacional:

Considerando-se essa sequência da esquerda para a direita, que operações


foram empregadas?
A Junção, projeção e seleção
B Junção, seleção e projeção
C Projeção, junção e seleção
D Projeção, seleção e junção
E Seleção, projeção e junção
Comentário: As operações são Projeção, Seleção e junção. A junção é do tipo
equijoin! Questão bem tranquila! Vamos em frente!
Gabarito: D

41. BANCA: CESGRANRIO ANO: 2014 ÓRGÃO: PETROBRAS PROVA:


TÉCNICO TÉCNICO DE INFORMÁTICA
A álgebra relacional fornece um alicerce formal para as operações do modelo
relacional. Um técnico de informática reconhece que essas operações permitem
que um usuário especifique solicitações como expressões da álgebra relacional,
nas quais a(o)

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 58 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

A operação PROJEÇÃO é usada para escolher um subconjunto das tuplas de uma


relação que satisfaça uma condição de seleção.
B operação de PROJEÇÃO mantém quaisquer tuplas duplicadas, de modo que o
resultado dessa operação é um conjunto de tuplas que pode conter tuplas
repetidas.
C operação PROJEÇÃO pode selecionar certas colunas da tabela e descartar
outras.
D operação SELEÇÃO é usada para incluir todas as tuplas de duas relações em
uma única relação, sendo que as tuplas duplicadas são eliminadas.
E resultado da operação SELEÇÃO pode ser visualizado como uma partição
vertical da relação original em duas relações: uma tem as colunas (atributos)
necessárias e contém o resultado da operação, e a outra contém as colunas
descartadas.
Comentário: A operação de PROJEÇÃO permite selecionar um conjunto de
colunas de uma relação. Essa operação elimina as tuplas duplicadas do
resultado. A operação de SELEÇÃO permite fazer filtros sobre os atributos
restringindo os valores de determinados atributos. As tuplas retornadas por uma
SELEÇÃO devem satisfazer ao predicado. Observem que o gabarito que contem
um texto correto do ponto de vista teórico está presente na alternativa C.
Comentando a alternativa D, ela está incorreta por atribuir a operação de
SELEÇÃO, que é uma operação unária, o trabalho realizado pela operação de
UNIÃO, que é uma operação binária.
A alternativa E criou uma nova operação no modelo relacional ☺, ela não existe.
Uma operação unária que retorne duas relações. Lembre-se de propriedade de
fechamento!
Gabarito C

42. BANCA: CESGRANRIO ANO: 2014 ÓRGÃO: BANCO DA AMAZÔNIA


PROVA: TÉCNICO CIENTÍFICO - BANCO DE DADOS
Considere que K,X,Y e Z são conjuntos de atributos de uma relação R.
Sabendo que:

NÃO é possível garantir que


AX YZ
BX Y
C XK ZK
DY K
EY ZX
Comentário: Existe um conjunto de propriedades relacionadas a dependências
funcionais. Basicamente a questão procura verificar seu entendimento a respeito

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 59 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

delas. Essas propriedades são conhecidas como regras de inferência.


Apresentamos abaixo um conjunto de três regras que são conhecidas como
regras de Armstrong: Reflexiva, Aumentativa e Transitiva.
RI1. (Reflexiva) Se Y é subconjunto de X, então XY (Isso também é válido
quando X=Y)
RI2. (Aumentativa) Se XY, então XZYZ (Notação: XZ significa X U Z)
RI3. (Transitiva) Se X  Y e Y  Z, então X  Z
RI1, RI2 e RI3 formam um conjunto completo de regras de inferência, sendo,
portanto sólida e completa.
Por sólida queremos dizer que, dado um conjunto de dependências funcionais F
especificado para um esquema da relação R, toda dependência que pudermos
deduzir para F usando RI1 a RI3 será assegurada para qualquer estado de
relação r de R que satisfizer as dependências de F.
Por completa queremos dizer que, se usarmos RI1 a RI3 sucessivamente para
deduzir outras dependências funcionais, até que mais nenhuma dependência
possa ser deduzida, resultará no conjunto completo de todas as dependências
possíveis que podem ser inferidas para F.
Podemos citar ainda outras regras, são elas:
RI4 (Decomposição) Se XYZ, então XY e XZ
RI5 (Aditiva) Se XY e XZ, então XYZ
RI6 (Pseudotransitiva) Se XY e WYZ, então WXZ
Agora que temos conhecimento do conjunto de regras de inferência, vamos
analisar cada uma das alternativas baseada nas dependências funcionais
iniciais:
A X YZ – Se Y é subconjunto de X podemos garantir que XY. Como YZ,
pela transitividade podemos garantir que X  Z. Desta forma podemos inferir
pelas regras aditivas que X  YZ. Logo essa inferência é possível.
BX Y – Se Y é subconjunto de X podemos garantir que XY.
C XK ZK – Já vimos acima que X  Z, pela aumentativa podemos concluir que
XK  ZK
DY K – Usando a transitividade se Y  Z e Z K, então Y  K
E Y ZX – Podemos resolver a questão por eliminação, mas veja que não tem
nenhuma regra que consiga, por meio de inferência, definir que Y  ZK. A
alternativa E é nossa resposta, por não conseguimos inferi-la por nenhuma das
regras apresentadas.
Gabarito E.

43. BANCA: VUNESP ANO: 2013 ÓRGÃO: MPE-ES PROVA: AGENTE


ESPECIALIZADO - ANALISTA DE BANCO DE DADOS

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 60 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Quando é necessário efetuar operações de consulta em, por exemplo, duas


tabelas de um banco de dados relacional que tenham uma chave em comum
(chave primária/chave estrangeira), a operação a ser realizada é a
A canalização.
B identação.
C junção natural.
D materialização.
E nomeação.
Comentário: Essa questão está presente aqui para que você possa fixar bem a
operação de Junção natural. Já comentamos sobre ela em uma das questões
acima. A junção natural ou NATURAL JOIN é uma operação binária que opera
sobre duas relações. O atributo ou os atributos de junção são escolhidos entre
os atributos das duas relações que tem o mesmo nome. É esperado também que
o domínio deles seja o mesmo.
No resultado desta operação irão constar basicamente as tuplas que possuem os
mesmos valores dos atributos de junção nas duas relações com seus respectivos
atributos.
Gabarito C.

44. BANCA: FGV ANO: 2015 ÓRGÃO: TJ-BA PROVA: ANALISTA


JUDICIÁRIO - TECNOLOGIA DA INFORMAÇÃO
Considere as seguintes dependências funcionais sobre os atributos A, B, C e D
de uma tabela relacional, listadas a seguir.
A->B
A->C
C->D
A dependência funcional que NÃO pode ser derivada das dependências acima é:
A) B->C
B) A->D
C) A->B,C
D) A,B,C->A,B
E) C,B->D,B
Comentário: Voltamos para uma questão das regras de inferências. Vejam que
o fato de A  B e A  C não garante que BC. Conseguimos concluir que A é a
chave da relação porque a define B, C e D. Sendo assim, toda vez que temos A
do lado esquerdo da dependência funcional ela pode ser derivada por uma das
regras de inferência. Por fim se C  D, pela regra aumentativa C,B  D,B.
Gabarito: A.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 61 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

45. BANCA: FGV ANO: 2015 ÓRGÃO: TJ-BA PROVA: ANALISTA


JUDICIÁRIO - TECNOLOGIA DA INFORMAÇÃO V2
Considere as dependências funcionais apresentadas a seguir.

Sabendo-se que todos os atributos são atômicos, o esquema relacional que


satisfaz as formas normais 1ª, 2ª, 3ª e Boyce-Codd é:
A R (D, C, N, E) onde D é a chave primária e C é uma chave candidata;
B R1 (D, C, N, E) onde D é a chave primária;
C R1 (C, N, E) onde C é a chave primária, e R2 (C, D) onde C é a chave
primária;
D R1 (C, N, E) onde C é a chave primária, e R2 (C, D) onde D é a chave
primária;
E R (D, C, N, E) onde D e C, concatenados, formam a chave primária.
Comentário: Vamos lembrar da ordem e do conceito das formas normais,
vejam a tabela abaixo:

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 62 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Partindo da FNBC precisamos necessariamente que os determinantes que não


são chave primária sejam chaves candidatas. Logo, C é uma chave candidata.
Por transitividade D é chave primária e determina todos os outros atributos da
relação. Sendo assim podemos garantir que a relação está nas formas normais
anteriores. Você deve estar perguntando se DCN não seria uma DF transitiva
e pode ferir a 3FN, neste caso não! Basicamente porque C é chave candidata.
Com base nestes fatos podemos encontrar nossa resposta na alternativa A.
Gabarito: A.

46. BANCA: FGV ANO: 2013 ÓRGÃO: AL-MT PROVA: ANALISTA DE


SISTEMAS BANCO DE DADOS
Leia o fragmento a seguir:

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 63 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Assinale a alternativa cujo item completa corretamente a lacuna do fragmento


acima.
A primeira
B segunda
C terceira
D quarta
E quinta
Comentário: Vejam que a definição é quase a mesma descrita no livro do
Navathe para a 4FN. "Um esquema de relação R está na 4FN com relação a um
conjunto de dependências funcionais ou multivaloradas F se, para toda
dependência multivalorada não-trivial X Y em F+, X for uma superchave de
R." Algumas características importantes da 4FN:
1. Uma relação não pode conter um atributo multivalorado que não é
superchave, pois para uma mesma chave, deveria haver diversas tuplas para
contemplar os diversos valores desse atributo.
2. Assim, todos os atributos que sejam multivalorados devem fazer parte da
chave.
3. Portanto, somente tem sentido verificar-se a multidependência funcional em
relações que tenham 3 ou mais atributos como parte da chave.
Gabarito: D.

47. BANCA: NUCEPE ANO: 2015 ÓRGÃO: SEFAZ - PI PROVA: ANALISTA


- SISTEMAS PLENO
O conceito de normalização foi introduzido por E.F. Codd em 1970. Sobre esta
técnica de modelagem de banco de dados relacionais, é INCORRETO afirmar que
A a 1FN diz que cada ocorrência da chave primária deve corresponder a uma e
somente uma informação de cada atributo.
B uma entidade para estar na 2FN deve estar em 1FN e não pode ter atributos
com dependência parcial em relação à chave primária.
C uma entidade está na 3FN se estiver em 2FN e se nenhum de seus atributos
possui dependência transitiva em relação a outro atributo de entidade que não
participe da chave primária.
D uma entidade está na BCNF se e somente se estiver na 3FN e todo atributo
não chave não depender funcionalmente diretamente da chave primária.
E uma entidade está na 4FN, se e somente se, estiver na 3FN e não existirem
dependências multivaloradas.
Comentário: Veja que a única alternativa errada é a letra D. A forma normal de
Boyce Codd elimina determinantes que não são chave candidata. Outra definição
seria: ” um esquema de relação R está na BCNF sempre que uma dependência

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 64 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

funcional não trivial X  A for mantida em R, então X será uma superchave de


R.”
O enunciado da alternativa D diz um absurdo: atributo não chave não depender
da chave primária? É latente que isso não pode acontecer!
Gabarito: D.

48. BANCA: BIO RIO ANO: 2014 ÓRGÃO: EMGEPRON PROVA:


ANALISTA DE SISTEMAS - BANCO DE DADOS
Uma tabela com anomalia de atualização deverá ser normalizada. Nos conceitos
das Formas Normais, aquela que necessariamente deverá ser aplicada em uma
tabela com chave primária composta é:
A Primeira
B Segunda
C Terceira
D Quinta
Comentário: Vejam que dentre as formas normais aquela que tem a restrição
associadas a chave primária composta é justamente a segunda, pois, não deve
existir uma dependência parcial da chave primária.
Gabarito: B.

49. BANCA: FEPESE ANO: 2014 ÓRGÃO: MPE-SC PROVA: ANALISTA


JUDICIÁRIO - ANALISTA DE TECNOLOGIA DA INFORMAÇÃO
São todas características de uma relação que está na 4a forma normal – 4FN:
1. Não possuir atributos multivalorados
2. Cada atributo não chave depender da chave primária inteira
3. Não existirem dependências multivaloradas
Assinale a alternativa que indica todas as afirmativas corretas.
A É correta apenas a afirmativa 1.
B São corretas apenas as afirmativas 1 e 2.
C São corretas apenas as afirmativas 1 e 3.
D São corretas apenas as afirmativas 2 e 3.
E São corretas as afirmativas 1, 2 e 3.
Comentário: Lembre-se que para estar na 4FN devemos ter a relação
normalizada nas formas anteriores. Ou seja, se estamos com a relação na
quarta forma na primeira forma normal (não possuir atributos multivalorados),
na segunda forma normal (cada atributo não chave depende da chave primária

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 65 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

inteira) e na 4FN (não existem dependências multivaloradas). Assim nossa


resposta está na alternativa E.
Gabarito: E.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 66 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Questões sem comentários

1. BANCA: CESPE ANO: 2015 ÓRGÃO: TJDFT PROVA: PROGRAMAÇÃO DE


SISTEMAS
Julgue os itens seguintes a respeito de banco de dados.
[61] Em uma tabela de um banco de dados relacional, se uma restrição de chave
primária for definida como composta de mais de uma coluna, os seus valores
poderão ser duplicados em uma coluna; no entanto, cada combinação de valores
de todas as colunas na definição da restrição de chave primária deve ser
exclusiva.

2. BANCA: FCC ANO: 2015 ÓRGÃO: CNMP PROVA: ANALISTA DO CNMP -


DESENVOLVIMENTO DE SISTEMAS
Considere a tabela funcionario a seguir, cuja chave primária é FuncCPF, em um
banco de dados relacional.

A manipulação de dados nesta tabela pode levar a problemas conhecidos como


anomalias. Sobre elas, considere:
I. Para incluir uma nova tupla na tabela será necessário incluir ou os valores de
atributo do departamento para o qual o funcionário trabalha ou valores NULL, se
o funcionário ainda não trabalha para nenhum departamento. Este é um
exemplo de anomalia de inserção.
II. A única maneira de inserir um novo departamento que ainda não tenha
funcionários é colocar valores NULL nos atributos para funcionário, já que este
procedimento não viola a integridade de entidade. Este é um exemplo de
anomalia de inserção.
III. Se o funcionário Antônio for excluído e este for o último funcionário
trabalhando no departamento RH, a informação referente a este departamento
se perde do banco de dados. Este é um exemplo de anomalia de exclusão.
IV. Se o valor de um dos atributos de determinado departamento for mudado
(do departamento 5, por exemplo) será necessário atualizar as tuplas de todos
os funcionários que trabalham neste departamento, caso contrário, o banco de
dados ficará incoerente. Este é um exemplo de anomalia de modificação.
Está correto o que se afirma APENAS em
A I, III e IV.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 67 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

B III e IV.
C I, II e III.
D II e IV.
E I, II e IV.

3. BANCA: FCC ANO: 2012 ÓRGÃO: TJ-RJ PROVA: ANALISTA JUDICIÁRIO


- ANALISTA DE SISTEMAS
Considere a seguinte tabela de um banco de dados.
TAB_FUNC = {COD_FUNC, NOME, COD_DEP, SAL}
Uma expressão da álgebra relacional representando a tabela formada pelos
códigos (COD_FUNC) e nomes (NOME) dos funcionários que ganham salário
(SAL) entre 1000 e 3000 reais e trabalham no departamento de código
(COD_DEP) 3 é

4. BANCA: FCC ANO: 2012 ÓRGÃO: TRT - 11ª REGIÃO (AM) PROVA:
ANALISTA JUDICIÁRIO - TECNOLOGIA DA INFORMAÇÃO
Considere:
I. Regra 1 − Todas as informações são representadas de forma explícita no nível
lógico e exatamente em apenas uma forma, por valores em tabelas.
II. Regra 2 − Cada um e qualquer valor atômico (datum) possui a garantia de
ser logicamente acessado pela combinação do nome da tabela, do valor da
chave primária e do nome da coluna.
III. Regra 3 − Valores nulos não devem ser utilizados de forma sistemática,
independente do tipo de dado ainda que para representar informações
inexistentes e informações inaplicáveis.
Das regras de Codd para bancos de dados relacionais, está correto o que consta
em
A I, apenas.
B II, apenas.
C I e II, apenas.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 68 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

D II e III, apenas.
E I, II e III.

5. Ano: 2017 Banca: IADES Órgão: Hemocentro Cargo: Analista de


Tecnologia da Informação Q. 34
QUESTÃO 34 Considere uma tabela relacional “R” e seus atributos definidos por
R (F1, F2, F3, F4, F5) com dependências funcionais F1, F2, F3 F4, F5 e F5
F1, F2. Com base nessas informações, assinale a alternativa que contém o
número total de superchaves distintas para essa tabela.
(A) 2
(B) 7
(C) 8
(D) 10
(E) 12

6. Ano: 2017 Banca: FGV Órgão: Alerj Cargo: Analista de Tecnologia da


Informação Q. 48
Em banco de dados, a finalidade do processo de normalização é evitar
redundâncias e, portanto, evitar certas anomalias de atualização de dados.
Considere as dependências funcionais entre os atributos das seguintes
entidades:
PACIENTE(ID_PACIENTE determina NOME_PACIENTE);
MEDICO(ID_MEDICO determina CRM_MEDICO, NOME_MEDICO);
CONSULTA(ID_PACIENTE, ID_MEDICO determinam DATA_ATEND,
HORA_ATEND);
Sabendo-se que o atributo sublinhado é a chave primária, a alternativa que
apresenta as entidades e seus atributos na Terceira Forma Normal (3FN) é:
(A) PACIENTE (ID_PACIENTE, NOME_PACIENTE, ID_MEDICO, DATA_ATEND,
HORA_ATEND)
MEDICO (ID_MEDICO, CRM_MEDICO, NOME_MEDICO)
CONSULTA (CRM_MEDICO, DATA_ATEND, HORA_ATEND)
(B) PACIENTE (ID_PACIENTE, NOME_PACIENTE)
MEDICO (ID_MEDICO, CRM_MEDICO, NOME_MEDICO)
CONSULTA (ID_PACIENTE, NOME_MEDICO, DATA_ATEND, HORA_ATEND)
(C) PACIENTE (ID_PACIENTE, NOME_PACIENTE, ID_MEDICO)
MEDICO (ID_MEDICO, CRM_MEDICO, NOME_MEDICO)
CONSULTA (ID_PACIENTE, DATA_ATEND, HORA_ATEND)
Prof. Thiago Rodrigues Cavalcanti
www.estrategiaconcursos.com.br 69 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

(D) PACIENTE (ID_PACIENTE, NOME_PACIENTE)


MEDICO (ID_MEDICO, CRM_MEDICO, NOME_MEDICO)
CONSULTA (ID_PACIENTE, ID_MEDICO, DATA_ATEND, HORA_ATEND)
(E) PACIENTE (ID_PACIENTE, NOME_PACIENTE)
MEDICO (ID_MEDICO, CRM_MEDICO, NOME_MEDICO)
CONSULTA (ID_PACIENTE, CRM_MEDICO, NOME_MEDICO,
DATA_ATEND, HORA_ATEND)

7. BANCA: FCC ANO: 2015 ÓRGÃO: TRE-RR PROVA: ANALISTA


JUDICIÁRIO - ANÁLISE DE SISTEMAS
Considere a entidade a seguir, retirada de um diagrama de entidade-
relacionamento, que possui como chave primária os atributos employee_id e
start_date.

Pode-se afirmar que para esta entidade estar na Segunda Forma Normal (2FN),
ela precisa estar na Primeira Forma Normal (1FN) e
A os atributos employee_id, job_id e department_id precisam ser chave
estrangeira nesta entidade.
B a chave primária precisa ser formada pelos atributos employee_id, job_id e
department_id, que são provenientes de tabelas relacionadas a esta.
C o atributo employee_id, que é parte da chave primária, precisa ser
proveniente de uma das tabelas relacionadas a esta.
D os atributos end_date, job_id e department_id precisam ser dependentes da
chave primária composta inteira, não apenas de parte dela.
E todos os atributos precisam permitir apenas valores exclusivos, de forma que
não haja redundância e, consequentemente, desperdício de espaço em disco.

8. BANCA: CESPE ANO: 2014 ÓRGÃO: TJ-SE PROVA: ANALISTA


JUDICIÁRIO BANCO DE DADOS

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 70 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Julgue os seguintes itens, acerca de projetos, administração de usuários e


acessos de bancos de dados relacionais.
[1] Se uma variável de relação estiver na quinta forma normal, não será possível
realizar nenhuma decomposição sem haver perda de informação.

9. Ano: 2014 Banca: Quadrix Órgão: COBRA Tecnologia S/A (BB) Cargo:
Analista - Programador
Considere uma tabela de Alunos com uma chave primária matrícula-aluno e,
entre outros, os atributos nome-aluno, nome-curso e unidade-ensino. A tabela
Alunos está:
A) na 1FN, apenas
B) na 2FN, apenas.
C) na 3FN, apenas.
D) na 1FN e 2FN.
E) não normalizada.

10. Ano: 2014 Banca: Quadrix Órgão: COBRA Tecnologia S/A (BB)
Cargo: Analista - Programador
A integridade entre as informações armazenadas nas tabelas, com o vínculo
entre a chave primária de uma tabela com a chave estrangeira de outra tabela,
é implementada pelos SGDB pelo mecanismo de:
A) asserção.
B) gatilho.
C) integridade referencial.
D) restrição de domínio.
E) dependência funcional.

11. Ano: 2014 Banca: Quadrix Órgão: COBRA Tecnologia S/A (BB)
Cargo: Analista - Programador
Duas entidades que se relacionam numa associação N:N fazem parte de um
modelo lógico que será implementado fisicamente num modelo relacional por
meio de:
A) uma tabela.
B) duas tabelas.
C) três tabelas.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 71 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

D) quatro tabelas.
E) cinco tabelas.

12. Ano: 2014 Banca: Quadrix Órgão: COBRA Tecnologia S/A (BB)
Cargo: Analista - Programador
Um modelo relacional é derivado a partir do modelo lógico, entre outras regras,
observando que:
A) um autorrelacionamento, com associação 1:N, exige que a chave secundária
da entidade A seja, na entidade B, chave primária.
B) o mapeamento dos relacionamentos pode ser por navegação disjunta, para
trabalhar com as modificações das definições dos registros existentes.
C) uma tabela á acessível por qualquer atributo, desde que este seja declarado
como chave primária.
D) toda entidade torna-se uma tabela, carregando todos os atributos definidos
para ela.
E) o relacionamento entre conjunto de dados (tabelas) deve existir fisicamente,
através de chave estrangeira.

13. Ano: 2012 Banca: Quadrix Órgão: CFP Cargo: Analista de


Tecnologia da Informação - Desenvolvimento
Sobre normalização de banco de dados, é incorreto a firmar que:
A) uma tabela que está na 1ª FN e que possui apenas uma coluna como chave
primária não contém dependências parciais.
B) uma tabela encontra-se na 2ª FN, quando, além de estar na FN, contém
dependências parciais.
C) uma tabela encontra-se na terceira forma normal, quando, além de estar na
2ª FN, não contém dependências transitivas.
D) uma dependência funcional transitiva ou indireta acontece quando uma
coluna não chave primária depende funcionalmente de outra coluna ou
combinação de colunas não chave primária.
E) toda tabela que está na 1ª FN e que possui apenas uma coluna como chave
primária já está na 2ª FN.

14. Ano: 2015 Banca: Quadrix Órgão: COBRA Tecnologia S/A (BB)
Cargo: Analista de Operações
Analisando uma tabela de um banco de dados, verificamos a seguinte situação:
Nome da Tabela:
Prof. Thiago Rodrigues Cavalcanti
www.estrategiaconcursos.com.br 72 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Venda
Chave Primária Composta:
Código da Venda + Código do Produto + Código de Vendedor.
Campos não Chave:
Quantidade Vendida
Data da Venda
Nome do Vendedor
O que podemos afirmar sobre tal situação?
A) A tabela está em desacordo apenas com a primeira forma normal.
B) A tabela está em desacordo com a primeira e segunda formas normais.
C) A tabela está em desacordo apenas com a segunda forma normal.
D) A tabela está em desacordo apenas com a primeira e terceira formas
normais.
E) A tabela está em acordo apenas com a primeira e terceira formas normais.

15. Ano: 2015 Banca: Quadrix Órgão: CFA Cargo: Analista de Sistemas
Assinale a alternativa que faz uma afirmação correta sobre um banco de dados
relacional.
A) Toda chave secundária é, necessariamente, uma superchave.
B) Toda chave estrangeira é, necessariamente, uma superchave.
C) Toda chave primária é, necessariamente, uma superchave.
D) Toda superchave é, necessariamente, uma chave primária.
E) Toda chave candidata é, necessariamente, uma chave secundária.

16. Ano: 2014 Banca: Quadrix Órgão: DATAPREV Cargo: Analista -


Tecnologia da Informação
Em uma determinada tabela de um banco de dados, há a necessidade de se
determinar que um campo identifique o registro inserido na tabela. Essa
identificação deve ser única, ou seja, sem repetição, exclusiva e não nula. Qual
das alternativas a seguir corresponde à descrição acima?
A) Chave Primária.
B) Chave Estrangeira.
C) UML.
D) Registro.
E) Chave Pública.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 73 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

17. Ano: 2014 Banca: Quadrix Órgão: SERPRO Cargo: Analista -


Desenvolvimento de Sistemas
Considere os itens a seguir, referentes aos bancos de dados relacionais.
I. A tabela não contém dependências parciais.
II. A tabela não contém tabelas aninhadas.
III. A tabela não contém dependências transitivas.
Os itens I, II e III estão relacionados, direta e respectivamente, a
A) 1FN,2FN e 3FN
B) 3FN, 1FN e 2FN.
C) 2FN, 1FN e 3FN.
D) 1FN,3FN e 4FN
E) 3FN, 2FN e 4FN.

18. BANCA: CESPE ANO: 2015 ÓRGÃO: CGE-PI PROVA: AUDITOR


GOVERNAMENTAL - TECNOLOGIA DA INFORMAÇÃO
A respeito de banco de dados, julgue os itens subsequentes.
Para normalizar, conforme primeira forma, uma tabela em um banco de dados, é
preciso criar chaves estrangeiras que representem a ligação entre elas.

19. BANCA: CESPE ANO: 2013 ÓRGÃO: CRPM PROVA: ANALISTA EM


GEOCIÊNCIAS - SISTEMAS DE INFORMAÇÃO
No que concerne a mapeamento de dados lógico e físico e a elaboração e
implantação de projeto de banco de dados, julgue os seguintes itens.
No processo de implantação de um projeto de banco de dados, devem ser
utilizadas as operações de álgebra relacional de dados para estabelecer as
restrições de cardinalidade e relacionamento entre o conjunto de entidades.

20. BANCA: CESPE ANO: 2013 ÓRGÃO: ANTT PROVA: ANALISTA


ADMINISTRATIVO - DESENVOLVIMENTO DE SISTEMAS
Julgue os itens subsequentes, relativos a banco de dados.
A linguagem padrão de consulta SQL (structured query language) utiliza uma
combinação de construtores em álgebra e cálculo relacional.
Prof. Thiago Rodrigues Cavalcanti
www.estrategiaconcursos.com.br 74 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

21. BANCA: CESPE ANO: 2013 ÓRGÃO: TCE-ES PROVA: ANALISTA


ADMINISTRATIVO - INFORMÁTICA
O conjunto de operações cujo resultado seja uma nova relação e que envolve
seleção, projeção, união e produto cartesiano é denominado
A mapeamento de cardinalidades.
B álgebra relacional.
C generalização.
D chave primária.
E herança.

22. Ano: 2016 Banca: CESPE Órgão: TCE-SC Cargo: Auditor de TI


Com relação aos bancos de dados relacionais, julgue os próximos itens.
94 O catálogo de um sistema de gerenciamento de banco de dados relacional
armazena a descrição da estrutura do banco de dados e contém informações a
respeito de cada arquivo, do tipo e formato de armazenamento de cada item de
dado e das restrições relativas aos dados.
95 Denomina-se visão uma tabela única derivada de uma ou mais tabelas
básicas do banco. Essa tabela existe em forma física e viabiliza operações
ilimitadas de atualização e consulta.
96 Em bancos de dados relacionais, as tabelas que compartilham um elemento
de dado em comum podem ser combinadas para apresentar dados solicitados
pelos usuários.

23. Ano: 2015 Banca: CESPE Órgão: TRE-PI – Questão 56


Acerca da aplicação dos princípios de normalização (Formas Normais), assinale a
opção correta.
A A aplicação da 1FN se dá se e somente se, para todo modelo, for aplicada a
Forma Normal de Boyce-Codd (ou BCNF).
B A 2FN é baseada no conceito de dependência funcional total, isto é, todo
atributo não primário de uma entidade tem dependência funcional total da chave
primária.
C A Terceira Forma Normal (3FN) requer que não haja dependências
intransitivas de atributos que não sejam com toda chave candidata.
D A aplicação da Primeira Forma Normal (1FN) requer que, ao fim da sua
aplicação, todos os atributos de uma relação sejam multivalorados ou estejam

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 75 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

em tabelas aninhadas, o que garante grupos repetidos de dados, reduzindo o


tamanho físico do banco de dados.
E A Segunda Forma Normal (2FN) requer que, ao fim da sua aplicação, não haja
dependências transitivas de atributos que não sejam com toda chave candidata.

24. BANCA: CESPE ANO: 2014 ÓRGÃO: TC-DF PROVA: ANALISTA DE


ADMINISTRAÇÃO PÚBLICA - SISTEMAS DE TECNOLOGIA DA
INFORMAÇÃO
Com relação a projetos de bancos de dados, modelo entidade relacionamento e
linguagens utilizadas em bancos de dados, julgue os próximos itens.
Durante o projeto de um banco de dados, transformando-se as relações na
quinta forma normal, garante-se que elas não terão anomalias que possam ser
eliminadas usando-se projeções.

25. BANCA: CESPE ANO: 2015 ÓRGÃO: MPOG PROVA: ANALISTA -


ANALISTA EM TECNOLOGIA DA INFORMAÇÃO
A respeito de modelo entidade-relacionamento e normalização, julgue os itens
subsequentes.
113 Em relações normalizadas, na primeira forma normal, toda tupla em toda
relação contém apenas um único valor, do tipo apropriado, em cada posição de
atributo.
114 Sabendo que, nos relacionamentos ternários, a cardinalidade refere-se a
pares de entidades, em um relacionamento ternário R entre três entidades A, B
e C, a cardinalidade máxima de A e B dentro de R indica quantas ocorrências de
C podem estar associadas a um par de ocorrências de A e B.

26. BANCA: CESPE ANO: 2015 ÓRGÃO: CGE-PI PROVA: AUDITOR


GOVERNAMENTAL - TECNOLOGIA DA INFORMAÇÃO
A respeito de banco de dados, julgue os itens subsequentes.
96 Um modelo de dados pode ser usado para representar os tipos de dados
existentes em um banco de dados de um sistema online de reservas.
97 Em banco de dados relacional, os atributos representam as entidades do
mundo real.
98 Em um relacionamento de tabelas de um banco de dados relacional, a chave
estrangeira serve para referenciar uma entidade dentro de outra tabela,
facilitando, assim, a busca e o agrupamento dessas entidades.
99 Para normalizar, conforme primeira forma, uma tabela em um banco de
dados, é preciso criar chaves estrangeiras que representem a ligação entre elas.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 76 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

100 Em um sistema gerenciador de banco de dados, a linguagem de definição de


dados possibilita a criação das tabelas bem como a autorização de acesso aos
dados para determinados usuários do banco de dados.

27. BANCA: CESGRANRIO ANO: 2013 ÓRGÃO: LIQUIGÁS PROVA:


ANALISTA DE SISTEMAS - TECNOLOGIA DA INFORMAÇÃO
Seja a seguinte sequência de operações da Álgebra Relacional:

Considerando-se essa sequência da esquerda para a direita, que operações


foram empregadas?
A Junção, projeção e seleção
B Junção, seleção e projeção
C Projeção, junção e seleção
D Projeção, seleção e junção
E Seleção, projeção e junção

28. BANCA: CESGRANRIO ANO: 2014 ÓRGÃO: PETROBRAS PROVA:


TÉCNICO TÉCNICO DE INFORMÁTICA
A álgebra relacional fornece um alicerce formal para as operações do modelo
relacional. Um técnico de informática reconhece que essas operações permitem
que um usuário especifique solicitações como expressões da álgebra relacional,
nas quais a(o)
A operação PROJEÇÃO é usada para escolher um subconjunto das tuplas de uma
relação que satisfaça uma condição de seleção.
B operação de PROJEÇÃO mantém quaisquer tuplas duplicadas, de modo que o
resultado dessa operação é um conjunto de tuplas que pode conter tuplas
repetidas.
C operação PROJEÇÃO pode selecionar certas colunas da tabela e descartar
outras.
D operação SELEÇÃO é usada para incluir todas as tuplas de duas relações em
uma única relação, sendo que as tuplas duplicadas são eliminadas.
E resultado da operação SELEÇÃO pode ser visualizado como uma partição
vertical da relação original em duas relações: uma tem as colunas (atributos)
necessárias e contém o resultado da operação, e a outra contém as colunas
descartadas.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 77 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

29. BANCA: CESGRANRIO ANO: 2014 ÓRGÃO: BANCO DA AMAZÔNIA


PROVA: TÉCNICO CIENTÍFICO - BANCO DE DADOS
Considere que K,X,Y e Z são conjuntos de atributos de uma relação R.
Sabendo que:

NÃO é possível garantir que


AX YZ
BX Y
C XK ZK
DY K
EY ZX

30. Ano: 2017 Banca: FCC Órgão: ARTESP Cargo: Especialista em


Regulação de Transporte - Tecnologia da Informação Questão: 73.
73. Na modelagem de um banco de dados relacional há diversos aspectos a
serem considerados. Dentre tais aspectos, é correto afirmar que
(A) a função exercida por um conjunto de entidades ligado a um conjunto de
relacionamentos denomina-se gatilho.
(B) uma modelagem de um banco de dados relacional suporta um número
máximo teórico de conjuntos de entidades, não superior a 30.
(C) as propriedades descritivas de um conjunto de entidades são denominadas
de atributos.
(D) conjuntos de relacionamentos não admitem atributos do tipo descritivo.
(E) um conjunto de relacionamentos recursivo liga dois ou mais conjuntos de
entidades.

31. Ano: 2017 Banca: FCC Órgão: ARTESP Cargo: Especialista em


Regulação de Transporte - Tecnologia da Informação Questão: 74.
74. Com o intuito de verificar se uma determinada relação R de um banco de
dados relacional atende a segunda forma normal, deve-se verificar se
(A) atributos que não façam parte de qualquer chave candidata de R são total e
funcionalmente dependentes da chave primária de R.
(B) o domínio de todos os atributos de R comportam valores considerados
múltiplos.
(C) todos os atributos de R são do tipo literal ou numérico.
(D) a relação R tem uma chave primária composta por dois ou mais atributos.
Prof. Thiago Rodrigues Cavalcanti
www.estrategiaconcursos.com.br 78 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

(E) o número de atributos da relação R é múltiplo de 2.

32. Ano: 2017 Banca: FCC Órgão: TRT-11 Cargo: Analista Judiciário de
TI – Q. 44
Considere o modelo de dados abaixo.

Na relação entre as entidades Advogado e Processo um advogado poderá atuar


em diversos processos, tanto como advogado de defesa como de acusação.
Assim, cada processo terá, pelo menos, dois advogados. Com base nesse
modelo, na implementação das tabelas do banco de dados em um Sistema de
Gerenciamento de Banco de Dados relacional,
(A) será necessária a criação de uma tabela entre Advogado e Processo e o
relacionamento N:N dará lugar a dois relacionamentos 1:N.
(B) a chave primária da tabela Processo deverá ser chave estrangeira na tabela
Advogado.
(C) a chave primária da tabela Advogado deverá ser chave estrangeira na tabela
Processo.
(D) ambas as tabelas (Processo e Advogado) deverão ter chave primária
composta.
(E) a tabela Advogado deverá ter um campo para especificar o tipo de atuação
do advogado em cada processo (defesa ou acusação).

33. Ano: 2017 Banca: FCC Órgão: TRE-SP Cargo: Técnico Judiciário de
TI – Q. 57.
Considere as entidades abaixo que são integrantes de um modelo de banco de
dados relacional.
Candidato Candidato_Concurso Concurso
idCandidato(pk) idCandidato (pk, fk) idConcurso(pk)
nomeCandidato idConcurso (pk, fk) nomeConcurso
Analisando-se as entidades, tem-se que
(A) estas entidades estabelecem dois relacionamentos n:m não-identificados
(non-Identifying).
(B) se for incluído um atributo pontuacao, ele terá que ser incluído na entidade
Candidato.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 79 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

(C) se for incluído o atributo dataInscricaoCandidato, ele terá que ser incluído na
entidade Candidato_Concurso.
(D) para que a entidade Candidato esteja na 1a forma normal, a entidade
Candidato_Concurso precisa estar normalizada.
(E) a entidade Candidato_Concurso nunca estará na 2a forma normal porque ela
possui chave primária composta

34. Ano: 2016 Banca: FCC Órgão: TRE-SP Cargo: Analista Judiciário de
TI – Q. 59.
Considere as informações abaixo.
PROCESSO (Num_Processo, [Titulo_Eleitor, Nome_Eleitor,
Zona_Eleitoral_Eleitor, Secao_Eleitoral_Eleitor, Status_Eleitor_no_Processo],
Data_Criacao_Processo, Data_Solucao_Processo).
Sabe-se que os seguintes requisitos se aplicam:
− Um Eleitor pode ser citado em um ou mais processos.
− Um Processo pode citar um ou mais eleitores, portanto, os dados de Eleitor,
entre chaves na tabela (ou relação) acima, podem ser integrantes de um grupo
de repetição.
− Os atributos grifados são chaves-primárias de seus respectivos grupos de
atributos, ou seja, Num_Processo é chave dos dados de processo e Titulo_Eleitor
é chave dos atributos de eleitor.
− O Status_Eleitor_no_Processo (ex. Ativo, Inativo, Desistente) pode ser
diferente nos processos nos quais é citado, ou seja, o mesmo eleitor pode ter,
por exemplo, o status de Desistente em um processo, mas Ativo em outro).
Após a aplicação da 3FN, a situação ficou como segue:
− PROCESSO (Num_Processo, Data_Criacao_Processo, Data_Solucao_Processo)
− ELEITOR (Titulo_Eleitor, Nome_Eleitor, Zona_Eleitoral_Eleitor,
Secao_Eleitoral_Eleitor)
− CITAÇÃO (Num_Processo, Titulo_Eleitor, Zona_Eleitoral_Eleitor,
Status_Eleitor_no_Processo)
Os atributos em negrito são as chaves identificadoras das tabelas (ou relações).
Um experiente Analista de Sistemas analisou a situação e concluiu,
corretamente, que a normalização
(A) deve manter o atributo Num Processo em ELEITOR, para ficar integralmente
correta.
(B) deve incluir o atributo Data_Solucao_Processo na CITAÇÃO, para ficar
integralmente correta.
(C) está integralmente correta.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 80 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

(D) deve retirar o atributo Zona_Eleitoral_Eleitor da CITAÇÃO, para ficar


integralmente correta.
(E) deve incluir o atributo Status_Eleitor_no_Processo em PROCESSO, para ficar
integralmente correta.

35. Ano: 2017 Banca: FCC Órgão: TRE-SP Cargo: Técnico Judiciário de
TI – Operação de computadores - Q. 57
57. Um Técnico do TRE-SP deparou-se, hipoteticamente, com o seguinte
problema:
Um banco de dados relacional, modificado por outro profissional, começou a
apresentar anomalias. As entidades conceituais que embasaram o banco,
originalmente, eram Processo e Cidadão. Os requisitos especificavam que o
relacionamento entre tais entidades atendesse ao fato de que um processo
poderia relacionar-se com um único cidadão e um cidadão, claramente, poderia
relacionar-se com mais de um processo. Isto para o caso do relacionamento
denominado Autoria. Já, em outro relacionamento entre as mesmas entidades,
denominado Participação, o processo poderia ter a participação de mais de um
cidadão e cada um deles também poderia participar de mais de um processo.
Ora, após a modificação do banco, quando os usuários tentaram entrar com
mais de um cidadão na atualização de participação de um determinado processo,
apesar de na tela ter o espaço para tal, o programa apresentava erro de
consistência, não aceitando mais de um cidadão participante. Nesse caso,
especificamente, ocorreu a implementação do relacionamento
(A) Participação (Processo Participação de Cidadão, nesta ordem) como n:m.
(B) Participação (Processo Participação de Cidadão, nesta ordem) como n:1.
(C) Autoria (Processo Autoria de Cidadão, nesta ordem) como n:m.
(D) Participação (Processo Participação de Cidadão, nesta ordem) como 1:n.
(E) Autoria (Processo Autoria de Cidadão, nesta ordem) como n:1.

36. BANCA: FCC ANO: 2014 ÓRGÃO: TJ-AP PROVA: ANALISTA


JUDICIÁRIO - DESENVOLVIMENTO DE SISTEMAS
Uma Forma Normal (FN) é uma regra que deve ser obedecida por uma tabela
para ser considerada bem projetada. As descrições a seguir são de tabelas em
Formas Normais.
I. A tabela não contém dependências transitivas, ou seja, as colunas que não
sejam chave primária não dependem funcionalmente de outras colunas ou
combinação de colunas que não sejam chave primária.
II. A tabela não contém dependências parciais, ou seja, cada coluna não chave
depende da chave primária completa e não apenas de parte dela.
Os itens I e II descrevem, respectivamente, regras referentes à
Prof. Thiago Rodrigues Cavalcanti
www.estrategiaconcursos.com.br 81 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

A 4FN e 2FN.
B 2FN e 3FN.
C 3FN e 2FN.
D 1FN e 3FN.
E 3FN e 4FN.

37. BANCA: FCC ANO: 2013 ÓRGÃO: MPE-MA PROVA: ANALISTA


JUDICIÁRIO - BANCO DE DADOS
Em um banco de dados relacional, a atividade de normalizar suas tabelas tem
como objetivo
A gerar os triggers especificados para o banco de dados.
B eliminar, ou pelo menos diminuir redundâncias de dados desnecessárias
nessas tabelas.
C impedir o acesso ao banco de dados, por parte de usuários desconhecidos.
D compilar todas as funções inseridas no banco de dados.
E preparar todas as tabelas do banco de dados para um backup completo.

38. BANCA: VUNESP ANO: 2013 ÓRGÃO: MPE-ES PROVA: AGENTE


ESPECIALIZADO - ANALISTA DE BANCO DE DADOS
Quando é necessário efetuar operações de consulta em, por exemplo, duas
tabelas de um banco de dados relacional que tenham uma chave em comum
(chave primária/chave estrangeira), a operação a ser realizada é a
A canalização.
B identação.
C junção natural.
D materialização.
E nomeação.

39. BANCA: FGV ANO: 2015 ÓRGÃO: TJ-BA PROVA: ANALISTA


JUDICIÁRIO - TECNOLOGIA DA INFORMAÇÃO
Considere as seguintes dependências funcionais sobre os atributos A, B, C e D
de uma tabela relacional, listadas a seguir.
A->B
A->C

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 82 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

C->D
A dependência funcional que NÃO pode ser derivada das dependências acima é:
A) B->C
B) A->D
C) A->B,C
D) A,B,C->A,B
E) C,B->D,B

40. BANCA: FGV ANO: 2015 ÓRGÃO: TJ-BA PROVA: ANALISTA


JUDICIÁRIO - TECNOLOGIA DA INFORMAÇÃO V2
Considere as dependências funcionais apresentadas a seguir.

Sabendo-se que todos os atributos são atômicos, o esquema relacional que


satisfaz as formas normais 1ª, 2ª, 3ª e Boyce-Codd é:
A R (D, C, N, E) onde D é a chave primária e C é uma chave candidata;
B R1 (D, C, N, E) onde D é a chave primária;
C R1 (C, N, E) onde C é a chave primária, e R2 (C, D) onde C é a chave
primária;
D R1 (C, N, E) onde C é a chave primária, e R2 (C, D) onde D é a chave
primária;
E R (D, C, N, E) onde D e C, concatenados, formam a chave primária.

41. BANCA: NUCEPE ANO: 2015 ÓRGÃO: SEFAZ - PI PROVA: ANALISTA


- SISTEMAS PLENO
O conceito de normalização foi introduzido por E.F. Codd em 1970. Sobre esta
técnica de modelagem de banco de dados relacionais, é INCORRETO afirmar que
A a 1FN diz que cada ocorrência da chave primária deve corresponder a uma e
somente uma informação de cada atributo.
B uma entidade para estar na 2FN deve estar em 1FN e não pode ter atributos
com dependência parcial em relação à chave primária.
C uma entidade está na 3FN se estiver em 2FN e se nenhum de seus atributos
possui dependência transitiva em relação a outro atributo de entidade que não
participe da chave primária.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 83 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

D uma entidade está na BCNF se e somente se estiver na 3FN e todo atributo


não chave não depender funcionalmente diretamente da chave primária.
E uma entidade está na 4FN, se e somente se, estiver na 3FN e não existirem
dependências multivaloradas.

42. BANCA: BIO RIO ANO: 2014 ÓRGÃO: EMGEPRON PROVA:


ANALISTA DE SISTEMAS - BANCO DE DADOS
Uma tabela com anomalia de atualização deverá ser normalizada. Nos conceitos
das Formas Normais, aquela que necessariamente deverá ser aplicada em uma
tabela com chave primária composta é:
A Primeira
B Segunda
C Terceira
D Quinta

43. BANCA: FEPESE ANO: 2014 ÓRGÃO: MPE-SC PROVA: ANALISTA


JUDICIÁRIO - ANALISTA DE TECNOLOGIA DA INFORMAÇÃO
São todas características de uma relação que está na 4a forma normal – 4FN:
1. Não possuir atributos multivalorados
2. Cada atributo não chave depender da chave primária inteira
3. Não existirem dependências multivaloradas
Assinale a alternativa que indica todas as afirmativas corretas.
A É correta apenas a afirmativa 1.
B São corretas apenas as afirmativas 1 e 2.
C São corretas apenas as afirmativas 1 e 3.
D São corretas apenas as afirmativas 2 e 3.
E São corretas as afirmativas 1, 2 e 3.

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 84 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Gabarito
1. C 23. B
2. A 24. C
3. A 25. CC
4. C 26. CECEC
5. D 27. D
6. D 28. C
7. D 29. E
8. E 30. C
9. A
10. C 31. A
32. A
11. C 33. C
12. D 34. D
13. B 35. B
14. B 36. C
15. C
16. A 37. B
17. C 38. C
18. E 39. A
19. E 40. A
20. C 41. D
42. B
21. B 43. E
22. C E C

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 85 de 86
Banco de dados relacionais TCU
Prof. Thiago Rodrigues Cavalcanti Aula 02

Considerações Finais

Chegamos ao final da nossa aula sobre o modelo relacional! Considero esse


um dos assuntos mais densos do nosso curso. Tente esgotar as questões sobre o
assunto e, se possível, assistir as videoaulas com os conceitos associados ao
tema.

A continuação desse assunto encontra-se na próxima aula. Falaremos sobre


a linguagem SQL, uma implementação prática do modelo relacional. Espero
reencontrar você.

As videoaulas referentes a esse assunto já estão disponibilizadas no site do


Estratégia Concursos®, não deixe de assistir e mandar suas observações!

Até a próxima!

Thiago Cavalcanti

Prof. Thiago Rodrigues Cavalcanti


www.estrategiaconcursos.com.br 86 de 86