Prévia do material em texto
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
2
APRESENTAÇÃO DO PROFESSOR
Meu nome é Ramon Jorge de Souza e sou Auditor Fiscal
da Receita Estadual na área de Tecnologia da Informação da
SEFAZ-SC.
Fui aprovado em 12 concursos públicos: SEFAZ-SC, TCE-
CE, CNMP, ANTAQ, INSS, MPU, MPOG, EBSERH,
DATAPREV, CONAB, BRB e PETROBRÁS.
Passo a contar um pouco da minha trajetória.
Sou de Quixadá, no interior do Ceará, e estudei todo o ensino fundamental e médio em
escola pública. Logo ao sair do ensino médio, iniciei o curso de Técnico em Química no
Instituto Federal do Ceará. No ano seguinte passei a cursar também Engenharia de
Software na Universidade Federal do Ceará.
Enquanto estava ainda cursando o ensino técnico no IFCE, surgiu o concurso para a
Petrobrás Biocombustíveis da minha cidade. Então resolvi fazer a prova, pois estava
animado com a possibilidade de trabalhar ao lado de casa com um salário bem atrativo para
o local. Ai que veio a surpresa, fiquei em 30º lugar. Embora não tenha sido convocado para
esse concurso, percebi que era possível ser aprovado, desde que me dedicasse mais.
Quando estava concluindo o curso técnico em Química, fui selecionado para trabalhar na
Petrobrás Biocombustíveis como terceirizado. Trabalhando ao lado de concursados, decidi
que também queria aquilo para minha vida e, então, passei a estudar com mais afinco e a
realizar diversas provas, principalmente da Petrobrás, mesmo que não fossem no Estado do
Ceará.
Nesse meio tempo cursava Engenharia de Software e já realizava também alguns concursos
para essa área de formação. No ano de 2012, consegui obter algumas classificações tanto
para a área de Química, quanto para a área de TI. Porém, nada de convocações. Mas
continuei estudando.
Eis que o ano de 2013 foi o ano da colheita de frutos. Estava de férias quando chegou a mim
o telegrama de convocação para assumir o cargo de Técnico em Química na Petrobras S/A.
Mas e aí? Aí já era tarde demais, já tinha decidido que não queria mais seguir na área de
química e sim queria passar em concurso para TI. Não assumi na Petrobrás e continuei
estudando para a área de TI.
Ainda estava cursando Engenharia de Software e nesse período fiz um estágio em uma
empresa privada. Como disse antes, estava na época da colheita, então fui convocado para o
concurso do Banco Regional de Brasília (BRB). Pergunta-me então: assumiu? Não. Calma,
este não assumi, pois como disse ainda estava cursando Engenharia de Software e não tinha
o diploma de nível superior exigido pelo cargo. Isso se repetiu para a convocação para a
Empresa Brasileira de Serviços Hospitalares (EBSERH).
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
3
No final de 2013, passei para o concurso do Ministério do Planejamento, para o cargo de
Analista em Tecnologia da Informação. Com receio de acontecer o mesmo que os anteriores,
solicitei colação de grau especial e consegui obter o diploma. Pronto, estava preparado para
assumir o MPOG, mas como ele demorava a chamar estudava ainda firmemente para outros
concursos.
Convocado então em 2014 para assumir o MPOG, mudei-me para Brasília, mas não parei
de estudar. Nesse período, fui convocado para a DATAPREV e para o INSS, mas optei por
não assumir esses cargos.
Em 2015, continuei prestando alguns concursos, e obtive o 4º lugar no concurso do INSS,
o 6º lugar no concurso da ANTAQ, 1º lugar no concurso para o Conselho Nacional do
Ministério Público (CNMP) e também 1º lugar para o Tribunal de Contas do Estado do
Ceará (TCE-CE).
Em 2017, depois de quase aposentar a caneta preta, retornei aos estudos e dessa vez resolvi
estudar para concursos fiscais. Em 2018, realizei o concurso para da Secretaria de Estado
da Fazenda de Santa Catarina (SEFAZ-SC) e fui aprovado para o cargo de Auditor
Fiscal da Receita Estadual – Tecnologia da Informação, o qual exerço atualmente.
Agora estou aqui para ajudar você a conseguir sua aprovação. Conte comigo!
Para ter acesso a dicas e conteúdos gratuitos, acesse minhas redes sociais:
Instagram https://www.instagram.com/proframonsouza
Telegram https://t.me/proframonsouza
Youtube https://www.youtube.com/channel/UCwroD4k2RJTCx0gCEEoI1xQ
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
https://www.instagram.com/proframonsouza
https://t.me/proframonsouza
https://www.youtube.com/channel/UCwroD4k2RJTCx0gCEEoI1xQ
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
4
APRESENTAÇÃO DO CURSO
O nosso curso seguirá a seguinte sequência, cobrindo todos os pontos do edital.
AULAS TÓPICOS ABORDADOS
Aula 01 Bancos de dados relacionais: teoria e implementação.
Aula 02 Uso do SQL como DML.
Aula 03 Uso do SQL como DDL.
Aula 04 Uso do SQL como DCL.
Aula 05 Dados estruturados e não estruturados. Dados abertos.
Aula 06
Formatos e tecnologias: XML, JSON, CSV. Representação de dados numéricos,
textuais e estruturados; aritmética computacional. Representação de dados espaciais
para georeferenciamento e geosensoriamento.
Aula 07
Coleta, tratamento, armazenamento, integração e recuperação de dados. Processos de
ETL.
Aula 08
Exploração de dados: conceituação e características. Noções do modelo CRISP-DM.
Técnicas para pré-processamento de dados. Técnicas e tarefas de mineração de dados.
Classificação. Regras de associação. Análise de agrupamentos (clusterização).
Detecção de anomalias. Modelagem preditiva.
Aula 09
Segurança da informação: Confidencialidade, integridade, disponibilidade,
autenticidade e não repúdio.
Aula 10
Políticas de segurança. Políticas de classificação da informação. Sistemas de gestão de
segurança da informação. Tratamento de incidentes de segurança da informação.
Aula 11 Lei de Acesso à Informação (Lei nº 12.527/2011): conceitos e aplicação.
Aula 12 Lei 13.709/2018, Lei Geral de Proteção de Dados Pessoais (LGPD).
Aula 13
Conceitos de PLN: semântica vetorial, redução de dimensionalidade, modelagem de
tópicos latentes, classificação de textos, análise de sentimentos, representações com
n-gramas.
Aula 14
Conceitos de ML: fontes de erro em modelos preditivos, validação e avaliação de
modelos preditivos, underfitting, overfitting e técnicas de regularização, otimização
de hiperparâmetros, separabilidade de dados, redução da dimensionalidade. Modelos
lineares, árvores de decisão, redes neurais feed-forward, classificador Naive Bayes.
Aula 15
Linguagem Python: sintaxe, variáveis, tipos de dados e estruturas de controle de
fluxo. Estruturas de dados, funções e arquivos. Bibliotecas: NLTK, Tensor Flow,
Pandas, Numpy, Arrow, Sklearn, Scipy.
Aula 16
Noções da Linguagem R. Sintaxe, tipos de dados, operadores, comandos de repetição,
estruturas de dados, gráficos, Data frames. Tidyverse.
Aula 17
Pareamento de dados ( record linkage). Processo e etapas. Classificação. Qualidade de
dados pareados. Análise de dados pareados.
*O cronograma atualizado pode ser conferido na página do curso.
Este curso pode ser adquirido em: https://www.hotmart.com/product/en/analise-de-
dados-para-o-tcu/Q61666921X.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
https://www.hotmart.com/product/en/analise-de-dados-para-o-tcu/Q61666921X
https://www.hotmart.com/product/en/analise-de-dados-para-o-tcu/Q61666921X
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
5
Análise de Dados para o TCU
Bancos de Dados Relacionais
SUMÁRIO
ORIENTAÇÃO DE ESTUDOS PARA A AULA ........................................................................ 7
GLOSSÁRIO DE TERMOS .........................................................................................................8
1. BANCOS DE DADOS ......................................................................................................... 10
1.1 Conceitos preliminares .................................................................................................... 10
1.2 Características dos bancos de dados ................................................................................ 14
1.3 Processamento de transações em bancos de dados .......................................................... 20
1.4 Metadados e catálogo de dados ....................................................................................... 24
1.5 Projeto de um banco de dados ......................................................................................... 26
1.5.1 Modelos de bancos de dados ............................................................................................ 26
1.5.2 Esquema x Instância ........................................................................................................ 29
1.5.3 Arquitetura de três esquemas .......................................................................................... 30
1.5.4 Independência lógica e física de dados ............................................................................. 33
1.5.5 Modelo de dados x arquitetura de três esquemas ........................................................... 34
1.6 Principais modelos de dados (modelos lógicos) ............................................................... 36
2. BANCOS DE DADOS RELACIONAIS ............................................................................. 40
2.1 Modelo relacional............................................................................................................. 40
2.2 Doze (Treze) Regras de Codd para Bancos Relacionais.................................................. 43
2.3 Tabelas ............................................................................................................................. 46
2.4 Operações com relações (álgebra relacional) ................................................................... 49
2.5 Visões (views) ................................................................................................................... 54
2.6 Índice (index) ................................................................................................................... 57
2.7 Chaves .............................................................................................................................. 60
2.8 Relacionamentos .............................................................................................................. 65
2.9 Normalização ................................................................................................................... 70
2.9.1 Primeira Forma Normal (1FN) ....................................................................................... 70
2.9.2 Segunda Forma Normal (2FN) ........................................................................................ 72
2.9.3 Terceira Forma Normal (3FN) ........................................................................................ 73
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
6
2.9.4 Forma Normal de Boyce-Codd (FNBC) .......................................................................... 74
2.9.5 Quarta Forma Normal (4FN) .......................................................................................... 75
2.9.6 Quinta Forma Normal (5FN) .......................................................................................... 76
2.9.7 Identificando as formas normais ...................................................................................... 77
2.9.8 Resumo das formas normais ............................................................................................ 79
2.9.9 TEMA AVANÇADO: análise de dependências e formas normais ................................. 81
2.9.10 TEMA AVANÇADO: axiomas das dependências funcionais ..................................... 86
2.9.11 TEMA AVANÇADO: modelos matemáticos para as formas normais ....................... 90
3. ESQUEMAS DE AULA ..................................................................................................... 92
4. REFERÊNCIAS ................................................................................................................ 102
5. QUESTÕES COMENTADAS ......................................................................................... 103
6. LISTA DE QUESTÕES ................................................................................................... 142
7. GABARITO ....................................................................................................................... 162
A nossa aula é bem esquematizada, então para facilitar o seu acesso aos esquemas, você
pode usar o seguinte índice:
Esquema 1 – Banco de Dados (BD). ............................................................................................. 10
Esquema 2 – Sistema Gerenciador de Bancos de Dados (SGBD). ................................................................ 11
Esquema 3 – Sistema de Bancos de Dados (SBD). ............................................................................... 12
Esquema 4 – Características dos bancos de dados. ................................................................................ 18
Esquema 5 – Desvantagens da abordagem de SGBD. ............................................................................ 19
Esquema 6 – Propriedades das transações. ....................................................................................... 23
Esquema 7 – Catálogo ou dicionário de dados. ................................................................................... 25
Esquema 8 – Modelos de bancos de dados. ........................................................................................ 28
Esquema 9 – Esquema x Instância. ............................................................................................... 29
Esquema 10 – Arquitetura de 3 esquemas. ........................................................................................ 32
Esquema 11 – Independência lógica e física de dados. ............................................................................ 33
Esquema 12 – Modelos de Dados X Arquitetura de três esquemas. ............................................................... 35
Esquema 13 – Modelos de dados (modelos lógicos). ............................................................................... 39
Esquema 14 – Modelo relacional: conceitos básicos. ............................................................................... 42
Esquema 15 – Doze (treze) regras de Codd para os bancos de dados relacionais. ................................................. 45
Esquema 16 – Conceitos do modelo relacional. ................................................................................... 47
Esquema 17 – Operações com relações (álgebra relacional). ...................................................................... 52
Esquema 18 – Visão (view). ...................................................................................................... 54
Esquema 19 – Índices. ............................................................................................................ 59
Esquema 20 – Chaves. ............................................................................................................ 62
Esquema 21 – Relacionamentos. .................................................................................................. 68
Esquema 22 – Formas normais. .................................................................................................. 79
Licensed to kelton choma- kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
7
ORIENTAÇÃO DE ESTUDOS PARA A AULA
Pessoal, esta aula cobre os seguintes temas do edital: “Bancos de dados relacionais: teoria e
implementação. Processamento de transações.”.
Quanto ao assunto processamento de transações não temos muita dificuldade de saber o
que a banca costuma cobrar, pois basicamente estamos nos referindo às propriedades ACID.
Logo, é importante que você saiba diferenciar essas propriedades, além de saber alguns
detalhes sobre o Isolamento, como leitura suja e os níveis de isolamento.
Já o tópico “Bancos de dados relacionais: teoria e implementação” é bem abrangente e,
portanto, pode englobar muitos aspectos relacionados aos bancos de dados. Em que pese
essa abrangência, com base no histórico de cobrança da FGV, sabemos que ela foca bastante
nos seguintes aspectos:
▪ Normalização e formas normais.
▪ Análises de dependências funcionais.
▪ Axiomas das dependências funcionais.
▪ Conceitos de chaves.
A banca já cobrou também, em menor quantidade, questões sobre as regras de Boyce-Codd,
álgebra relacional, relacionamentos e metadados.
Dito isto, sugiro que você estude essa aula toda, mas dê atenção especial aos seguintes
tópicos:
▪ 1.3 Processamento de transações em bancos de dados
▪ 1.4 Metadados e catálogos de bancos de dados.
▪ 2.1 Modelo Relacional.
▪ 2.2 Doze (Treze) Regras de Codd para Bancos de Dados Relacionais.
▪ 2.3 Tabelas
▪ 2.4 Álgebra relacional (principalmente saiba quais são as primitivas)
▪ 2.7 Chaves
▪ 2.8 Relacionamentos
▪ 2.9 Normalização (incluindo os temas avançados)
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
8
GLOSSÁRIO DE TERMOS
Abstração: capacidade de esconder os detalhes de implementação.
Álgebra relacional: conjunto de operações realizadas que podem ser realizadas nas
relações (tabelas), tomando uma ou duas relações como entrada e retornando uma relação
como saída.
Aplicação, aplicativo ou software: programa de computador com objetivo de
desempenhar tarefas práticas, em geral ligadas ao processamento de dados.
Aridade ou grau: número de colunas em uma tabela.
Atomicidade: propriedade das transações que garante que uma transação seja executada
ou por completo ou de forma alguma.
Atributo: coluna ou campo de uma tabela.
Banco de Dados (BD): coleção coerente de dados que representa um aspecto do mundo
real com uma finalidade específica.
Becape ou backup: cópia de segurança dos dados d um dispositivo de armazenamento.
Booleano: tipo de dado que possui apenas dois valores: VERDADEIRO ou FALSO.
Cardinalidade: número de entidades que outra entidade pode se associar via
relacionamento.
Campo de indexação: campo (coluna ou atributo) utilizado para criar um índice.
Catálogo ou dicionário de dados: local do SGBD onde ficam os metadados. Possui
informações sobre a estrutura de cada arquivo, o tipo e o formato de armazenamento de
cada item de dados e diversas restrições sobre os dados.
Concorrência: disputa pelo uso de um mesmo recurso.
Consistência: propriedade das transações que visa a manutenção do cumprimento das
regras e restrições em um banco de dados.
Consulta ad hoc: criada na hora, no momento em que surge a necessidade. Não é salva no
SGBD.
Dependência funcional: relacionamento entre dois ou mais atributos de forma que o valor
de um atributo identifique o valor para cada um dos outros atributos.
Determinante (atributo): atributo que determina outro, isto é, cujo valor do outro é
relacionado a ele.
Domínio: tipo de dados válido para uma coluna. Valores possíveis.
Durabilidade: propriedade das transações que garante o armazenamento permanente dos
dados.
Esquema de banco de dados: estrutura do banco, sem os dados.
Índice: estrutura de acesso auxiliar que permite agilizar a recuperação de registros. Oferece
caminho de acesso secundário.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
9
Instância de banco de dados: dados armazenados em um instante ("fotografia" do banco).
Integridade: capacidade de garantir que a informação não foi alterada sem autorização.
Isolamento: propriedade das transações que garante a não interferência entre transações.
Metadados: dados que descrevem, identificam, explicam e localizam outros dados.
Descrevem a estrutura do banco de dados.
Modelo de dados: descrição dos tipos de informações que estão armazenadas em um banco
de dados.
Nulo ou Null: valor especial que representa "falta de informação ou informação
inaplicável".
Persistência de dados: armazenamento permanente.
Ponteiro: é um tipo de dado cujo valor se refere diretamente a um outro valor. É um
apontador ou referência para um dado armazenado em outro lugar.
Redundância: duplicação dos dados.
Relação: sinônimo de tabela. Bloco de montagem básico do modelo relacional.
RelVar ou variável de relação: cabeçalho de uma tabela, formado pelos pares domínio e
nome.
Restrição de integridade: regras usadas para garantir a exatidão e a consistência dos
dados.
Sistema Gerenciador de Banco de Dados (SGBD): software para criar e manter um
banco de dados.
Sistema de Banco de Dados: união do BD com o SGBD.
Transação: programa em execução ou processo que inclui um ou mais acessos ou operações
de banco de dados.
Transparente para o usuário: usuário não precisa conhecer os detalhes ou funcionamento
interno.
Tupla: linha ou registro de uma tabela.
Visão ou view: tabela virtual derivada de outras tabelas. Maneira alternativa de
visualização dos dados. Consulta pré-definida ou armazenada, executada sempre que
referenciada.
Visão materalizada ou materialized view: visão armazenada.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
10
1. BANCOS DE DADOS
1.1 Conceitos preliminares
O primeiro conceito fundamental para nossa aula é o de banco de dados.
Um banco de dados é uma coleção de dados relacionados, em que os dados podem ser
entendidos como fatos conhecidos que podem ser registrados e que possuem significado
implícito. Com base nessa definição bastante genérica, qualquer conjunto de dados pode ser
considerado um banco de dados (até mesmo esta página que você está lendo!!!). Contudo, o
uso comum do termo banco de dados não segue essa definição genérica. Um banco de dados
pode também ser referido como um repositório, depósito ou base de dados.
De modo mais específico, o uso comum do termo banco de dados relaciona-se as seguintes
propriedades implícitas:
1. Um banco de dados representa algum aspecto do mundo real, às vezes
chamado de minimundo ou de universo de discurso. As mudanças no minimundo
são refletidas no banco de dados.
2. Um banco de dados é uma coleção logicamente coerente de dados com
algum significado inerente. Assim, um banco de dados não é variedade
aleatória de dados.
3. Um banco de dados é projetado, construído e populado com dados para uma
finalidade específica. Ele possui um grupo definido de usuários e algumas
aplicações previamente concebidas nas quais esses usuários estão interessados.
É importante destacar, ainda, que um banco de dados pode ter qualquer tamanho e
complexidade, não se restringindo a grandes quantidades de dados relacionados. Além
disso, pode ser gerado e mantido manualmente ou de forma computadorizada, sendo
esta última mais comum.
Esquema 1 – Banco de Dados (BD).
Banco de Dados
(repositório, depósito ou base)
Representa algum aspecto
do mundo real
Coleção logicamente
coerente de dadoscom
algum significado inerente
Projetado, construído e
populado com dados para
uma finalidade específica
Pode ter qualquer tamanho
e complexidade
Pode ser manual ou
computadorizado
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
11
Professor, entendi que o banco de dados é o local onde os dados são armazenados, mas como
manipular esse banco de dados? Para isso, vamos precisar usar um sistema para interceder
por nós nessa comunicação, isto é, um software que consegue realizar as atividades no banco
de dados. Esse sistema é o Sistema Gerenciador de Banco de Dados (SGBD).
Um Sistema Gerenciador de Banco de Dados (SGBD) é uma coleção de programas
que permite aos usuários criar e manter um banco de dados. O SGBD é um sistema de
software de uso geral que facilita os seguintes processos:
▪ Definição: especificação de tipos, estruturas e restrições de dados.
▪ Construção: armazenamento dos dados em algum meio controlado.
▪ Manipulação: consulta, atualização e geração de relatórios.
▪ Compartilhamento: acesso simultâneo por usuários e sistemas.
▪ Proteção: proteção do sistema contra defeitos e proteção de segurança contra
acesso não autorizado ou malicioso.
▪ Manutenção: evolução do sistema ao longo do tempo.
Assim,
Esquema 2 – Sistema Gerenciador de Bancos de Dados (SGBD).
Existem SGBDS de diversos fornecedores como o Oracle, MySQL, SQL Server,
PostgreSQL, entre outros.
ESCLARECENDO!!!
O processo de comunicação com o banco de dados pode ser ilustrado da seguinte forma:
Note que existe um banco de dados e que algumas aplicações desejam o acessar para realizar
funções (consultar, alterar ou inserir dados ou até criar e modificar as estruturas do banco).
Para isso, essas aplicações deverão acionar o SGBD, que é quem sabe “conversar” com o
banco de dados. Assim, através do SGBD, é possível criar e definir as estruturas do banco
de dados e manipular os dados. Além disso, o SGBD vai garantir uma série de propriedades
como a segurança e o compartilhamento dos dados.
SGBD
(coleção de programas)
•Permite criar e manter um
banco de dados.
•Auxilia na:
▪Definição
▪Construção
▪Manipulação
▪Compartilhamento
▪Proteção
▪Manutenção
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
12
Um outro conceito que precisamos ter em mente é o de Sistema de Bancos de Dados
(SBD), que é a união do banco de dados com o software SGBD.
Em esquema temos:
Esquema 3 – Sistema de Bancos de Dados (SBD).
EXEMPLIFICANDO!!!
Para que você consiga visualizar melhor esses conceitos, tomemos como exemplo uma
lojinha fictícia: lojinha do aprovado.
Essa lojinha precisa armazenar os dados referentes a seus clientes, seus produtos, suas
vendas e muito mais. Para isso, ela usará um banco de dados (BD). Vejamos se esse BD
possui as três características necessárias para ser assim classificado:
1. Representa um minimundo ou Universo do Discurso? sim! Esse BD representa
aspectos do mundo real, que são as próprias entidades representadas como os clientes,
produtos, vendas, etc.
2. É uma coleção logicamente coerente de dados? sim! Esse BD possui dados que estão
relacionados ao negócio da lojinha. Não é uma variedade qualquer de dados colocadas em
um repositório.
3. Possui uma finalidade específica? sim! esse BD existe para auxiliar o dono da lojinha
a gerenciar seu negócio. Com o auxílio desse banco, ele poderá consultar informações sobre
seus produtos, saber sobre suas vendas e realizar outras muitas análises.
Então, nesse exemplo, fechamos o conceito de Banco de Dados.
Para gerenciar esse banco de dados, isto é, para criar o banco e suas estruturas, bem como
para manipular os dados, deve ser usado um Sistema Gerenciador de Banco de Dados
(SGBD). Existem SGBDS de diversos fornecedores como o Oracle, MySQL, SQL Server,
PostgreSQL, entre outros. Suponha que foi escolhido o Oracle para gerenciar o banco de
dados da lojinha, logo o Oracle será o SGBD do nosso exemplo.
Agora ficou clara a distinção entre BD e SGBD? Espero que sim.
E o Sistema de Banco de Dados (SBD)? É só o termo conceitual para se referir a união
do BD da lojinha com o SGBD Oracle.
BD SGBD SBD
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
13
1- (FGV - 2018 - MPE-AL - Técnico do Ministério Público - Geral) O conjunto de
programas responsável pelo gerenciamento de uma base de dados e que, entre outras
funções, suporta uma linguagem de consulta, gera relatórios e disponibiliza uma interface
para que os seus clientes possam incluir, alterar ou consultar dados, é chamado de
a) Banco de Dados Relacional (BDR).
b) Dicionário de Dados (DD).
c) Modelo Entidade Relacionamento (MER).
d) Sistema de Suporte à Decisão (SSD).
e) Sistema Gerenciador de Bancos de Dados (SGBD).
Resolução:
Um Sistema Gerenciador de Banco de Dados (SGBD) é uma coleção de programas
que permite aos usuários criar e manter um banco de dados. O SGBD é um sistema de
software de uso geral que facilita os seguintes processos:
▪ Definição: especificação de tipos, estruturas e restrições de dados.
▪ Construção: armazenamento dos dados em algum meio controlado.
▪ Manipulação: consulta, atualização e geração de relatórios.
▪ Compartilhamento: acesso simultâneo por usuários e sistemas.
▪ Proteção: proteção do sistema contra defeitos e proteção de segurança contra
acesso não autorizado ou malicioso.
▪ Manutenção: evolução do sistema ao longo do tempo.
Gabarito: Letra E.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
14
1.2 Características dos bancos de dados
Vale ressaltar que a abordagem de bancos de dados não é a única possível para armazenar
dados. Outra abordagem comum é a de processamento de arquivos. O uso de uma ou de
outra irá depender bastante da necessidade e de quais características são desejadas no
armazenamento e acesso aos dados.
ESCLARECENDO!!!
Vamos tratar rapidamente da abordagem de processamento de arquivos.
Tradicionalmente, o armazenamento de dados era realizado com o uso de arquivos
(planilhas Excel, arquivos CSV e outros). Essa abordagem é relativamente simples, pois os
arquivos podem ser facilmente abertos em softwares editores e manipulados. Veja a planilha
a seguir que ilustra um controle de fluxo de caixa.
No entanto, a abordagem de sistemas de arquivos apresenta uma série de limitações e
problemas para alguns usos. Vejamos algumas delas:
1. Dados redundantes: as informações presentes em um arquivo podem precisar ser
duplicadas em diversos outros arquivos.
2. Difícil padronização: embora possa existir algum padrão no arquivo, é difícil garantir
que esse padrão não será alterado. Por exemplo, o usuário pode criar uma coluna nova no
Excel sem nenhuma restrição.
3. Dificuldade de controlar múltiplos acessos: é muito difícil controlar os múltiplos
acessos e as atualizações por parte de diferentes pessoas.
Existem outros problemas, mas esses três já dão uma boa noção sobre a dificuldade de se
trabalhar com sistema de arquivos. Não estou dizendo que eles não são úteis, pois essa
abordagem ainda é bem utilizada para algumas finalidades. No entanto, para usos mais
complexos e que requerem maiores controles, é mais recomendado usar a abordagem de
bancos de dados.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
15
Vejamos as principais características da abordagem de bancos de dados. Para Elsmari e
Navathe,os bancos de dados divergem dos antigos sistemas de arquivos por apresentarem
quatro características principais:
▪ Natureza de autodescrição de um sistema de banco de dados: um banco de
dados contém uma definição ou descrição completa de sua estrutura e
restrições. Essa definição é armazenada no catálogo do SGBD, que possui
informações como a estrutura de cada arquivo, o tipo e o formato de armazenamento
de cada item de dados e diversas restrições sobre os dados. A informação
armazenada no catálogo é chamada de metadados, e descreve a estrutura do banco
de dados principal. Perceba então que um banco de dados não deve conter apenas
os dados, mas também as descrições das estruturas de armazenamento desses
dados. Assim, por exemplo, para uma tabela clientes, haverá o armazenamento não
só dos dados dos clientes, mas também da própria estrutura da tabela (nome,
colunas, tipos de dados e restrições aplicáveis).
EXEMPLIFICANDO!!!
As tabelas a seguir representam um trecho da estrutura de um banco de dados.
Podemos verificar quais são as tabelas existentes no banco de dados, quais são as
colunas das tabelas e quais são os tipos de dados dessas colunas. Logo, perceba que
a própria estrutura do banco de dados também é armazenada.
Obviamente que o banco de dados irá armazenar os dados em si. Logo, o banco de
dados irá armazenar os dados dos alunos (“João”, “Maria”), das disciplinas
(“Matemática”, “TI”) e das turmas (“A”, “B”).
▪ Isolamento entre programas e dados; e abstração de dados: a abstração de
dados é a capacidade de um SGBD oferecer aos usuários uma representação
conceitual de dados que não inclui muitos detalhes de como os dados são
armazenados ou como as operações são implementadas. Para o usuário, não importa
se uma informação é armazenada de forma A ou B, ele só deseja usar o banco e
realizar suas operações. Decorrem deste conceito:
o Independência dos dados dos programas: a estrutura dos arquivos de
dados é armazenada no catálogo do SGBD separadamente dos programas
de acesso.
o Independência da operação do programa: alguns bancos de dados
trabalham com o conceito de operações, que são funções ou métodos que
podem ser invocados pelo programa. Os programas podem atuar invocando
essas operações, independentemente de como estas estão
implementadas.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
16
EXEMPLIFICANDO!!!
A figura a seguir ilustra um sistema de banco de dados.
Perceba que os bancos de dados são representados em separado dos programas que
os acessam (independência dos dados do programa). Os bancos de dados podem
estar até mesmo em locais totalmente diferentes dos programas, isto é, em
servidores diferentes.
Da mesma forma, os programas aplicativos não estão interessados em como as
funções de acesso ou manipulação estão implementadas (independência das
operações do programa). Assim, por exemplo, se um sistema de gestão de recursos
humanos deseja consultar a base de funcionários para verificar quais funcionários
possuem dependentes, ele irá chamar a função, sem necessariamente saber como a
consulta é realizada.
Isso é abstração. A complexidade ou os detalhes de como as coisas funcionam por
“debaixo dos panos” não precisam ser conhecidos pelos usuários ou softwares
aplicativos. Não importa nem mesmo onde ou como os dados são armazenados.
▪ Suporte de múltiplas visões de dados: cada usuário pode exigir um ponto de
vista ou visão diferente do banco de dados. Um SGBD multiusuário, cujos
usuários têm uma série de aplicações distintas, precisa oferecer facilidades para
definir múltiplas visões.
EXEMPLIFICANDO!!!
A figura a seguir ilustra o modelo de suporte a múltiplas visões:
Perceba que um mesmo modelo pode gerar visões diferentes. Vamos supor uma
tabela de funcionários. Nesse caso, podemos ter uma visão para o setor de RH com
a apresentação de todos os dados dos funcionários. Já para o setor de projetos,
também pode ser gerada uma visão, contudo somente com informações específicas
dos funcionários, não apresentando, por exemplo, seu endereço, CPF e outros dados
que não são de interesse desse setor.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
17
▪ Compartilhamento de dados e processamento de transação multiusuário: o
SGBD precisa incluir um software de controle de concorrência para garantir que
vários usuários tentando atualizar o mesmo dado faça isso de maneira
controlada, de modo que o resultado dessas atualizações seja correto.
EXEMPLIFICANDO!!!
A figura a seguir apresenta um acesso compartilhado a um banco de dados.
Perceba que várias máquinas clientes acessam o mesmo banco de dados. Sendo
assim, é importante controlar esse acesso para que não haja interferência indevida
nos usos simultâneos.
Além dessas características principais, existem diversas outras. Vamos apresentar a seguir
uma lista com as características trazidas pelos principais autores.
DICA DO PROFESSOR!!!
Não se preocupe em memorizar todas estas listas, mas tenha noção de que elas se propõem
a distinguir a abordagem de bancos de dados da antiga abordagem por sistema de arquivos.
Caso seja necessário se aprofundar de alguma destas características, faremos isto em tópico
específico.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
18
Vejamos as principais características da abordagem de banco de dados:
Esquema 4 – Características dos bancos de dados.
•Natureza de autodescrição dos dados.
•Isolamento entre programas e dados; abstração de dados.
•Suporte a múltiplas visões.
•Compartilhamento de dados e processamento de transação multiusuário.
Elsmari e Navathe
(quatro principais características dos bancos de dados)
▪Controle de redundância.
▪Restrição de acesso não autorizado.
▪Armazenamento persistente para objetos do programa.
▪Estruturas de armazenamento e técnicas de pesquisa para o processamento
eficiente de consulta.
▪Backup e recuperação.
▪Múltiplas interfaces do usuário.
▪Representação de relacionamentos complexos entre dados.
▪Restrições de integridade.
▪Dedução e ação usando regras.
▪Potencial para garantir padrões.
▪Tempo reduzido para o desenvolvimento de aplicações.
▪Flexibilidade.
▪Disponibilidade de informações atualizadas.
•Economias de escala.
Elsmari e Navathe
(vantagens de usar a abordagem SGBD)
▪O dado pode ser compartilhado.
▪A redundância pode ser reduzida.
▪Inconsistências podem ser evitadas.
▪Pode-se utilizar o suporte a transações.
▪A integridade pode ser mantida.
▪A segurança pode ser aperfeiçoada.
▪Requisitos conflitantes podem ser balanceados.
▪Padrões podem ser utilizados.
Date
(benefícios da abordagem de BD)
▪Redundância e inconsistência de dados.
▪Dificuldade de acesso a dados.
▪Isolamento dos dados.
▪Problemas de integridade.
▪Problemas de atomicidade.
▪Anomalias de acesso concorrente.
▪Problemas de segurança.
Sylberchatz, Korth e Sudarshan
(desvantagens de usar sistema de arquivo)
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
19
Então professor, os bancos de dados resolvem todos os meus problemas?
Não é bem assim, essa abordagem possui também algumas desvantagens, principalmente
no que se refere à custos adicionais do uso de um SGBD que devem ser considerados.
Estes custos adicionais podem ser associados aos seguintes fatores:
▪ Alto investimento inicial em hardware, software e treinamento.
▪ A generalidade que um SGBD oferece para a definição e o processamento de
dados.
▪ Esforço adicionalpara oferecer funções de segurança, controle de concorrência,
recuperação e integridade.
De forma esquemática:
Esquema 5 – Desvantagens da abordagem de SGBD.
Custos adicionais
Alto investimento inicial
em hardware, software e
treinamento
Generalidade para
definição e processamento
de dados
Esforço adicional para
funções de segurança,
concorrência, recuperação e
integridade
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
20
1.3 Processamento de transações em bancos de dados
Vamos detalhar a característica dos bancos de dados do compartilhamento de dados e
processamento de transação multiusuário, que é uma das mais cobradas em provas. Um
programa de aplicação de banco de dados que executa um banco de dados relacional
normalmente executa uma ou mais transações. Dessa forma, devemos então entender o que
é uma transação e quais as suas propriedades.
Uma transação é um programa em execução ou processo que inclui um ou mais
acessos ou operações de banco de dados, como fazer a leitura do banco de dados ou
inserir, excluir e atualizar dados. Dito de outro modo, uma transação é uma unidade lógica
de trabalho que executa um conjunto de operações em um banco de dados.
Uma única transação pode envolver qualquer número de operações, mas ao final de uma
transação, ela precisar deixar o banco de dados em um estado válido ou coerente, que
satisfaça todas as restrições especificadas para o banco, isto é, deve manter a integridade
do banco de dados.
ESCLARECENDO!!!
Ao falar em unidade lógica estamos nos referindo ao conjunto de operações (consulta,
inserções, alterações e exclusões) que podem ser realizadas em um banco de dados, isto é,
uma transação pode conter muitas operações.
EXEMPLIFICANDO!!!
Por exemplo, se estamos diante de uma transação de transferência financeira, podemos
considerar que a transação conterá, simplificadamente, as seguintes operações:
1. Leitura do saldo na conta de origem.
2. Alteração do saldo na conta de origem com a redução do valor.
3. Leitura do saldo da conta de destino.
4. Alteração do saldo da conta de destino com o aumento do valor.
Essas 4 operações constituem uma única transação: a de transferência de um valor.
As transações devem possuir quatro propriedades ou princípios básicos, chamadas
propriedades ACID, que devem ser impostas pelos métodos de controle de concorrência e
recuperação do SGBD.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
21
Vamos estudar essas propriedades:
▪ A atomicidade é a propriedade que garante que uma transação é uma unidade de
processamento atômica; ela deve ser realizada em sua totalidade ou não deve
ser realizada de forma alguma. Assim, a propriedade de atomicidade exige que uma
transação seja executada até o fim. Se uma transação não for completada por algum
motivo, como uma falha no sistema no meio da execução da transação, a técnica de
recuperação precisa desfazer quaisquer efeitos da transação no banco de dados
(rollback). Por sua vez, as operações de gravação de uma transação confirmada
devem ser, por fim, gravadas no disco (commit). A responsabilidade por garantir
essa propriedade é do subsistema de recuperação de transação.
▪ Segundo a consistência, uma transação deve, se for completamente executada do
início ao fim sem interferência de outras transações, levar o banco de dados de um
estado consistente (válido) para outro. Um estado consistente do banco de
dados é aquele que satisfaz todas as suas regras e restrições. A responsabilidade
pela consistência é atribuída aos programadores que escrevem os programas de
bancos de dados ou ao módulo do SGBD que impõe restrições de integridade.
▪ De acordo com o isolamento, uma transação deve parecer executar isoladamente
das demais, embora centenas de transações possam ser executadas
concorrentemente. Este princípio funciona como um mecanismo de controle que
visa assegurar que nenhuma outra transação, operando no mesmo sistema, possa
interferir no funcionamento da transação corrente. Outras transações não
podem visualizar os resultados parciais das operações de uma transação em
andamento. A responsabilidade por esta propriedade é do subsistema de controle
de concorrência do SGBD.
Elsmari e Navathe destacam os seguintes níveis de isolamento:
o Nível 0: não grava sobre as leituras sujas das transações de nível mais alto.
Leitura suja ocorre quando a transação lê dados escritos por uma transação
simultânea não efetivada.
o Nível 1: não tem atualizações perdidas.
o Nível 2: não tem atualizações perdidas ou leituras sujas.
o Nível 3: isolamento verdadeiro, permite leituras repetitivas.
▪ Durabilidade: as mudanças aplicadas ao banco de dados pela transação confirmada
precisam persistir no banco de dados. Esta propriedade garante que os resultados
de uma transação são permanentes e somente podem ser desfeitos somente por uma
transação subsequente. Essas mudanças não devem ser perdidas por causa de
alguma falha após a realização da transação. Esta propriedade é de
responsabilidade do subsistema de recuperação do SGBD.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
22
EXEMPLIFICANDO!!!
Um exemplo clássico de transação é uma transferência de fundos entre duas contas
correntes. Suponha uma transação T1 que consiste na transferência de R$ 100,00 de uma
conta corrente X para uma conta corrente Z. Ao final dessa transação, todas as propriedades
ACID devem ter sido respeitadas:
Atomicidade: o saldo de X deve ser reduzido em R$ 100,00 e o de Z deve ser aumentado
em R$ 100,00. Caso ocorra qualquer falha, então os saldos iniciais devem ser retornados.
Consistência: as restrições devem ser respeitadas. Por exemplo, a transferência não deve
ser permitida se o saldo de X for menor que R$ 100,00.
Isolamento: não devemos ter mais de uma transação alterando o saldo das contas
simultaneamente.
Suponha uma segunda transação T2 que consiste na transferência de R$ 200,00 de uma
conta Y para a mesma conta Z. Suponha que as transações T1 e T2 executem em paralelo
e que os saldos iniciais das contas sejam:
X = R$ 1000,00; Y = R$ 2000,00; Z = R$ 0,00.
Vamos supor agora que ocorra o seguinte:
1. A transação T1 inicia, reduz o saldo de X em R$ 100,00 e aumenta o saldo de Z em R$
100,00. Logo,
X = R$ 900,00; Y = R$ 2000,00; Z = R$ 100,00.
2. A transação T2 também inicia e transfere R$ 200,00 para Z. Contudo, nesse momento,
ela irá ler o valor R$ 100,00 na conta Z e, portanto, irá alterar para R$ 300,00.
X = R$ 900,00; Y = R$ 1800,00 Z = R$ 300,00.
E qual o problema? Nenhum.
3. O problema vem agora. Suponha que a transação T1 não foi concretizada, isto é, não foi
finalizada. Dessa forma, ela deve retroceder ao estado inicial, como se nunca tivesse
ocorrido. Sendo assim, o saldo de Z não deveria ter os R$ 100,00 adicionados.
4. Perceba que a transação T2 realizou a leitura de um saldo em Z que não era um saldo
efetivado (leu R$ 100,00 ao invés de ler R$ 0,00). Logo, realizou uma leitura suja e
acrescentou os R$ 200,00 nesse saldo.
5. No fim das contas, se isso fosse permitido, os saldos ficariam inconsistentes. Pois, no
caso concreto (ROLLBACK de T1 e COMMIT de T2), os saldos deveriam ser:
X = R$ 1000,00 (sem alteração no saldo, pois a transação T1 foi revertida)
Y = R$ 1800,00 (a transação T2 foi executada, logo o saldo foi reduzido em R$ 200,00).
Z = R$ 200,00 (a transação T1 foi revertida, portanto o saldo somente deve sofrer o
aumento de R$ 200,00 da transação T2 e não dos R$ 100,00 da transação T1). Logo, o valor
corretoseria R$ 200,00 e não R$ 300,00.
Durabilidade: após a transferência ser finalizada, os saldos devem ser persistidos até que
novas transações ocorram.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
23
Vamos fixar as propriedades das transações com um esquema:
Esquema 6 – Propriedades das transações.
2- (FGV - 2018 - AL-RO - Analista Legislativo - Análise e Desenvolvimento de
Sistemas) No contexto das propriedades desejadas para transações executadas em banco
de dados relacionais, é possível que, eventualmente, seja permitida ou forçada a leitura de
dados que foram modificados em operações ainda não confirmadas (comitted).
Assinale a principal propriedade que é flexibilizada na ocorrência de um dirty read.
a) Atomicidade. b) Consistência. c) Durabilidade.
d) Integridade referencial. e) Isolamento.
Resolução:
Segundo a propriedade do isolamento, uma transação deve parecer executar
isoladamente das demais, embora centenas de transações possam ser executadas
concorrentemente. Este princípio funciona como um mecanismo de controle que visa
assegurar que nenhuma outra transação, operando no mesmo sistema, possa interferir no
funcionamento da transação corrente. Outras transações não podem visualizar os
resultados parciais das operações de uma transação em andamento. A responsabilidade por
esta propriedade é do subsistema de controle de concorrência do SGBD.
Elsmari e Navathe destacam os seguintes níveis de isolamento:
▪ Nível 0: não grava sobre as leituras sujas das transações de nível mais alto. Leitura
suja (dirty read) ocorre quando a transação lê dados escritos por uma transação
simultânea não efetivada.
▪ Nível 1: não tem atualizações perdidas.
▪ Nível 2: não tem atualizações perdidas ou leituras sujas.
▪ Nível 3: isolamento verdadeiro, permite leituras repetitivas.
Gabarito: Letra E.
A
to
m
ic
id
ad
e
Conceito:
unidade de
processamento
atômica.
Transação deve
ser realizada em
sua totalidade
ou não deve ser
realizada de
forma alguma.
Responsável
Subsistema de
recuperação.
C
o
n
si
st
ên
ci
a
Conceito:
transação deve
levar o banco de
um estado
consistente
para outro.
Regras e
restrições
respeitadas.
Responsável
Programador
ou módulo de
restrições de
integridade.
Is
o
la
m
en
to
Conceito:
transação deve
parecer
executar
isolada das
demais.
Não
interferência
entre transações
paralelas.
Responsável
Subsistema de
controle de
concorrência.
D
u
ra
b
il
id
ad
e
Conceito:
mudanças
realizadas
devem ser
persistidas no
banco de
dados.
Mudanças não
devem ser
perdidas por
falhas
posteriores.
Responsável
Subsistema de
recuperação.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
24
1.4 Metadados e catálogo de dados
Uma das características dos bancos de dados é a natureza da autodescrição do sistema
de banco de dados por meio da definição ou descrição completa de sua estrutura e
restrições, através dos metadados ou informações do descritor.
Metadados (informações do descritor) são dados estruturados que descrevem,
identificam, explicam, localizam e, portanto, facilitam a recuperação, uso e gestão de
recursos de informação. São os chamados dados sobre outros dados.
A definição ou descrição completa dos metadados fica armazenada no catálogo ou
dicionário de dados do SGBD. Esse catálogo contém informações como a estrutura de
cada arquivo, o tipo e o formato de armazenamento de cada item de dados e diversas
restrições sobre os dados.
O catálogo armazena informações sobre todos os esquemas e todos os mapeamentos
correspondentes entre esses esquemas. Dito de outro modo, o catálogo armazena
informações sobre os objetos do banco de dados, incluindo os códigos de definições das
estruturas desses objetos.
O catálogo é usado pelo software de SGBD e também pelos usuários do banco de dados que
precisam de informações sobre a estrutura do banco de dados.
EXEMPLIFICANDO!!!
Para ajudar no entendimento do que é o catálogo ou dicionário de dados, vamos
exemplificar por meio de um trecho de um catálogo de uma universidade fictícia.
RELAÇÕES COLUNAS
Nome_relacao Numero_de_colunas Nome_coluna Tipo_de_dado Pertence_a_relacao
ALUNO 4 Nome Caractere(30) ALUNO
DISCIPLINA 4 Tipo_aluno Inteiro(1) ALUNO
TURMA 5 Curso Tipo_curso ALUNO
O catálogo do exemplo apresenta as definições das relações que compõem o banco de dados,
informando os nomes das relações e o número de colunas de cada uma delas.
Além disso, são apresentadas algumas descrições das colunas, através das definições de seus
nomes, dos tipos de dados que podem ser inseridos nestas colunas e a qual relação elas
pertencem.
Podemos perceber através do catálogo que a relação aluno é composta de 4 colunas e que,
por exemplo, a coluna nome permite a inserção de dados do tipo caractere limitado a um
tamanho 30.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
25
E para consolidar o entendimento deste tópico, trazemos um esquema!!!
Esquema 7 – Catálogo ou dicionário de dados.
3- (FGV - 2010 - FIOCRUZ - Tecnologista em Saúde - Geoprocessamento) Sobre
os Metadados, assinale a afirmativa correta.
a) São um conjunto de informações estruturadas que descrevem os dados (bases) que
representam, facilitando ao usuário o gerenciamento desses dados.
b) São o conjunto total de dados que integram um projeto de geoprocessamento.
c) São dados preliminares que necessitam de averiguação e eventuais correções para,
posteriormente, serem utilizados.
d) São o conjunto de dados que já passaram por todas as averiguações e já estão prontos
para utilização.
e) São dados que não foram utilizados e são arquivados para futuros trabalhos.
Resolução:
Metadados (informações do descritor) são dados estruturados que descrevem,
identificam, explicam, localizam e, portanto, facilitam a recuperação, uso e gestão de
recursos de informação. São os chamados dados sobre outros dados.
Gabarito: Letra A.
Catálogo ou
dicionário de dados
Metadados ou
informações de
descritor
Estrutura de cada
tipo de arquivo
Tipo
Formato de
armazenamento
Restrições sobre os
dados
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
26
1.5 Projeto de um banco de dados
1.5.1 Modelos de bancos de dados
É importante destacar que a estrutura de um banco de dados pode ser descrita com base em
um modelo de dados. Um modelo de (banco de) dados é uma descrição dos tipos de
informações que estão armazenadas em um banco de dados.
Dependendo do grau de abstração utilizado para representar esta estrutura, falamos em
diferentes modelos:
▪ Modelo conceitual ou de alto nível: representa os conceitos que são facilmente
compreendidos por usuários, como entidades, atributos e relacionamentos.
Através deste modelo, teremos uma visão de cima (macro) compreendida de modo
relativamente fácil sobre o ambiente de dados. Também é independente de
hardware ou software, ou seja, não depende de nenhum SGBD utilizado para
implantá-lo. Por tanto, qualquer alteração no software ou hardware, não terão efeito
no modelo conceitual. O modelo conceitual registra que dados podem aparecer
no banco de dados, mas não registra como estes dados estão armazenados a
nível de SGBD. Esse modelo é elaborado na chamada modelagem conceitual.
EXEMPLIFICANDO!!!
O principal exemplo de modelo conceitual é o Modelo Entidade Relacionamento
(MER), representado por Diagramas Entidade-Relacionamento (DER).
Não se preocupe em entendertodos os elementos do diagrama a seguir, mas perceba
que ele representa de maneira simplificada que dados serão armazenados no banco
de dados. Podemos, por exemplo, perceber que teremos dados de clientes como
CodCli, Nome, CNH, Endereço e Telefone.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
27
▪ Modelo lógico, representativo ou de implementação: os conceitos podem ser
compreendidos pelos usuários, mas se aproximam da organização e armazenamento
dos dados. O modelo lógico constitui uma representação específica de um
modelo interno, utilizando as estruturas de BD suportadas pelo banco
escolhido. Um modelo lógico é uma descrição de um banco de dados no nível de
abstração visto pelo usuário do SGBD. Assim, o modelo lógico é dependente do
tipo particular de SGBD que está sendo usado (ex.: relacional, objeto, etc.). Esse
modelo é elaborado no Projeto Lógico.
EXEMPLIFICANDO!!!
O modelo relacional é um dos principais exemplos de modelos lógicos. Esse modelo
utiliza as estruturas de relações (ou tabelas) para representar os dados.
▪ Modelo físico: estes modelos descrevem o armazenamento dos dados, sendo
dependentes do SGBD específico (ex.: Oracle, MySQL, etc.). É fundamental para
o dimensionamento de índices e dados. É neste modelo que será utilizada a
linguagem para definição dos dados para criar as estruturas físicas como tabelas,
campos, tipos de dados, restrições, etc. Esse modelo é elaborado no Projeto Físico.
EXEMPLIFICANDO!!!
O modelo físico vai descrever o armazenamento físico, incluindo os tipos e tamanho
de campos, indexação, restrições.
Note na figura a seguir, que há um detalhamento dos campos. Por exemplo, há
informação de que o campo nome é do tipo VARCHAR e aceita até 30 caracteres.
ATENÇÃO!!!
Vale destacar que, em relação a dependência de SGBD, algumas questões apenas citam que
o modelo lógico depende do SGBD, sem deixar claro se está se referindo ao tipo ou a
ferramenta específica. Essas afirmações genéricas, embora confusas, têm sido consideradas
corretas. Mas, em regra, temos que:
Modelo conceitual independe de SGBD.
Modelo lógico depende do tipo ou classe de SGBD, mas não do SGBD específico.
Modelo físico depende totalmente do SGBD, isto é, da ferramenta específica.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
28
Esquema 8 – Modelos de bancos de dados.
C
o
n
ce
it
u
al Facilmente comprendido.
Registra os dados.
Independente de
hardware e software
(SGBD).
Elaborados na
Modelagem Conceitual.
Ex.: Modelo Entidade
Relacionamento.
L
ó
g
ic
o Compreensão
intermediária.
Representação das
estruturas de BD.
Dependem do tipo de
SGBD (relacional,
objetos, etc).
Elaborados no Projeto
Lógico.
Ex.: Modelo Relacional.
F
ís
ic
o Difícil compreensão.
Descreve o
armazenamento dos
dados.
Dependentes do SGBD
específico (Oracle,
MySQL, etc.)
Elaborados no Projeto
Físico.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
29
1.5.2 Esquema x Instância
Dois conceitos relacionados a bancos de dados que são, por vezes, cobrados em provas, são
os conceitos de esquema e instância de banco de dados. Vejamos então como definir cada
um desses termos:
Um esquema ou intenção de banco de dados é um esboço de um banco de dados
planejado, isto é, representa a estrutura do banco, mas sem os dados. Em outra definição,
é o conjunto de regras que governa um banco de dados.
Uma instância, estado ou extensão de um banco de dados é uma “fotografia” do seu
esquema em um dado momento no tempo, isto é, representa os dados que estão
armazenados em um dado instante.
Sendo assim, instâncias de banco de dados podem mudar ao longo do tempo, enquanto um
esquema de banco de dados é geralmente estático, já que mudar a estrutura de um banco de
dados a partir do momento que estiver operacional é menos comum.
Esquema 9 – Esquema x Instância.
Esquema ou intenção
Estrutura do banco, sem os dados
Instância, estado ou extensão
Dados armazenados em um instante
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
30
1.5.3 Arquitetura de três esquemas
De modo a auxiliar no isolamento de programas dos dados e no suporte a múltiplas visões
de usuários, além de tornar um banco de dados autodescritivo, foi proposta uma arquitetura
de três esquemas. Assim, a arquitetura de três esquemas ou arquitetura ANSI/SPARC
visa separar as aplicações do usuário do banco de dados físico.
Vejamos esses três níveis:
▪ Nível externo ou de visão: cada esquema externo descreve a parte do banco
de dados em que um usuário em particular está interessado e oculta o
restante do banco de dados do grupo de usuários. Cada esquema externo é
comumente implementado usando um modelo de dados representativo
(lógico), possivelmente baseado em um projeto de esquema externo em um
modelo de dados de alto nível.
▪ Nível conceitual: possui um esquema conceitual, que descreve a estrutura do
banco de dados inteiro para uma comunidade de usuários. O esquema
conceitual oculta os detalhes das estruturas de armazenamento físico e se
concentra na descrição das entidades, tipos de dados, relacionamentos, operações
do usuário e restrições. Normalmente, um modelo de dados representativo
(lógico) é usado para descrever o esquema conceitual quando um sistema de
banco de dados é implementado. Esse esquema conceitual de implementação
costuma estar baseado em um projeto de esquema conceitual em um modelo de
dados de alto nível.
▪ Nível interno: tem um esquema interno, que descreve a estrutura do
armazenamento físico do banco de dados. O esquema interno usa um modelo
de dados físico e descreve os detalhes completos do armazenamento de dados e
caminhos de acesso para o banco de dados.
Vale ressaltar que a maioria dos SGBDs não separa os três níveis de forma completa e
explícita, mas dá suporte a eles de alguma forma. Além disso, os esquemas são apenas
descrições dos dados, os dados em si estão apenas no nível físico.
Outro destaque é que os processos de transformação de requisições e os resultados entre
os níveis são chamados de mapeamentos. Temos então:
▪ Mapeamento conceitual/interno: especifica como a estrutura conceitual é
armazenada fisicamente.
▪ Mapeamento externo/conceitual: define a correspondência entre uma visão
particular externa e o esquema conceitual do banco de dados.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
31
EXEMPLIFICANDO!!!
Para ajudar na compreensão da diferença entre os níveis, vamos pensar em uma situação
concreta. Imagine um banco de dados de uma empresa que trabalha com projetos. Esse
banco de dados irá armazenar todas as informações úteis para auxiliar na gestão da empresa,
incluindo informações sobre os projetos, funcionários e muitas outras. A empresa possui
um setor de Gestão de Pessoas e outro de Gestão de Projetos.
Dito isto, vamos supor que tanto o pessoal da Gestão de Pessoas quanto o pessoal da Gestão
de Projetos precisem de informações sobre os funcionários, sendo que a primeira precisa
para questões de controle de pessoal e pagamentos e a segunda para alocação nos projetos.
Suponha que tenhamos as seguintes informações sobre os funcionários: matrícula, CPF,
nome, endereço, salário e cargo. Nem todas essas informações podem ou precisam ser
divulgadas a todos os usuários dos bancos de dados. Por exemplo,o pessoal da Gestão de
Projetos não precisa saber o CPF, endereço e nem o salário dos funcionários, bastando saber
as matrículas, nomes e cargos para realizar a alocação nos projetos. Como resolver isso?
Para resolver essa situação, basta criar dois esquemas de visão distintos: um para o pessoal
da Gestão de Pessoas, que pode apresentar todas as informações dos funcionários; e outro
para o pessoal da Gestão de Projetos, apresentando somente a matrícula, nome e cargo.
Dessa forma, os dois grupos terão visões diferentes sobre os dados. Esse é o nível externo
ou de visão. A figura a seguir ilustra essa situação:
Já quando temos a representação do banco de dados inteiro, isto é, todas as estruturas que
compõem o banco de dados, temos o nível conceitual. A seguir, um diagrama
representando essa situação para um pequeno banco de dados:
No nível interno, há o detalhamento das estruturas de armazenamento.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
32
Esquema 10 – Arquitetura de 3 esquemas.
Descreve parte do banco de
dados geralmente com um
modelo lógico.
Descreve o banco de dados
inteiro geralmente com um
modelo lógico.
Descreve a estrutura de
armazenamento físico
geralmente com um modelo
físico.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
33
1.5.4 Independência lógica e física de dados
A arquitetura de três esquemas pode ser usada para explicar melhor o conceito de
independência de dados, que é a capacidade de alterar o esquema em um nível do
sistema de banco de dados sem ter de alterar o esquema no nível mais alto.
Temos dois tipos de independência de dados:
▪ Independência lógica de dados: capacidade de alterar o esquema conceitual sem
ter de alterar os esquemas externos ou de programas de aplicação. Podemos alterar
o esquema conceitual para expandir o banco de dados (acrescentando um tipo de
registro), para alterar restrições ou para reduzir o banco de dados (removendo algum
tipo de registro). Depois que o esquema conceitual passa por uma reoganização lógica,
os programas de aplicação que referenciam as construções do esquema externo devem
trabalhar da mesma forma que antes.
▪ Independência física de dados: capacidade de alterar o esquema interno sem ter
de alterar o esquema conceitual e, por consequência, sem ter que alterar os esquemas
externos. Mudanças no esquema interno podem ser necessários porque alguns arquivos
físicos foram reorganizados para melhorar o desempenho da recuperação ou atualização.
Esquema 11 – Independência lógica e física de dados.
4- (FGV - 2013 - AL-MT - Analista de Sistemas - Banco de Dados) A capacidade de
alterar o esquema conceitual, sem que seja necessário alterar os esquemas externos ou os
programas de aplicação, é denominada
a) independência lógica de dados.
b) independência física de dados.
c) independência interna de dados.
d) fragmentação de dados.
e) transparência de dados.
Resolução:
Temos dois tipos de independência de dados. A lógica e a física.
A independência lógica de dados é a capacidade de alterar o esquema conceitual sem
ter de alterar os esquemas externos ou de programas de aplicação.
Gabarito: Letra A.
Independência
Lógica
Capacidade de alterar o esquema
conceitual sem ter de alterar os
esquemas externos ou de programas de
aplicação.
Física
Capacidade de alterar o esquema interno
sem ter de alterar o esquema conceitual
e, por consequência, sem ter que alterar os
esquemas externos.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
34
1.5.5 Modelo de dados x arquitetura de três esquemas
Caros alunos, é importante que vocês tenham bastante cuidado para não confundir os
modelos de dados com os níveis da arquitetura de três esquemas. É muito fácil confundir,
pois além de possuírem a mesma quantidade de níveis, temos inclusive nomes iguais para
representar níveis desses modelos.
Tenha as seguintes noções:
▪ Modelos de dados são usados para representar os conceitos usados para
descrever a estruturas dos bancos de dados.
o Modelo conceitual ou de alto nível.
o Modelo lógico, representativo ou de implementação.
o Modelo físico.
▪ Níveis do esquema representam as camadas de interação do usuário com o
banco de dados. Esses níveis são inclusive representados por modelos de dados.
o Nível externo ou de visão.
o Nível conceitual.
o Nível interno.
Então, essas classificações representam coisas diferentes. A principal confusão é causada
por conta do termo CONCEITUAL que existe tanto na hierarquia de modelos quanto na
arquitetura de esquemas. Tenha em mente que o MODELO CONCEITUAL é usado para
representar conceitos facilmente entendidos pelo usuário, enquanto o ESQUEMA EM
NÍVEL CONCEITUAL é usado para descrever o banco de dados inteiro.
ESCLARECENDO!!!
Como se classifica o banco de dados relacional em relação aos modelos e aos níveis
da arquitetura de 3 esquemas?
O modelo relacional é classificado como um modelo lógico, representativo ou de
implementação, pois representa os conceitos utilizados com base em estruturas específicas
de bancos de dados dependentes de um modelo específico.
Contudo, em uma arquitetura de três esquemas, o modelo relacional pode ser utilizado
para representar mais de um esquema. Assim, se for utilizado para descrever apenas parte
de um banco de dados, está representando um esquema externo ou de visão. Caso seja
utilizado para descrever um banco de dados inteiro, então está representando um esquema
conceitual.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
35
Esquema 12 – Modelos de Dados X Arquitetura de três esquemas.
Modelos de
dados
Representar os conceitos usados
para descrever a estruturas dos
bancos de dados.
Modelo conceitual ou de alto nível
(dados)
Dados
Modelo lógico, representativo ou
de implementação
Estruturas de banco de dados
Modelo físico
Armazenamento
Arquitetura
de 3 esquemas
Representar as camadas de
interação do usuário com o banco
de dados.
Nível externo ou de visão
Parte do banco de dados
(geralmente usa modelo lógico
baseado em modelo conceitual)
Nível conceitual
Banco de dados inteiro
(geralmente usa modelo lógico
baseado em modelo conceitual)
Nível interno
Estruturas de armazenamento
(usa modelo físico)
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
36
1.6 Principais modelos de dados (modelos lógicos)
Os SGBDs são classificados conforme o modelo utilizado, sendo principais modelos:
▪ Modelo relacional: representa um banco de dados como uma coleção de tabelas
bidimensionais (linhas x colunas), onde cada tabela pode ser armazenada como um
arquivo separado.
EXEMPLIFICANDO!!!
Veja um trecho de uma tabela do modelo relacional com 4 colunas e 2 linhas.
▪ Modelo de objetos: define um banco de dados em termos de objetos, suas
propriedades e operações. Objetos com a mesma estrutura e comportamento
pertencem a uma classe. As operações de cada classe são especificadas com
procedimentos predefinidos, chamados métodos. As classes podem ser organizadas em
hierarquias (heranças), caso em que uma classe filha (subclasse) herda as propriedades
e métodos da classe pai (superclasse). Nesse modelo, há o encapsulamento, que é o
processo de esconder os detalhes de um objeto ou de restringir o acesso direto a alguns
componentes de um objeto. Podemos ainda citar o polimorfismo,que é a característica
na qual os mesmos atributos ou métodos podem ser utilizados por objetos distintos e
com implementações distintas.
EXEMPLIFICANDO!!!
A figura a seguir ilustra um trecho de um modelo de objetos:
Nesse modelo, temos 3 classes em uma hierarquia de classes (herança), sendo
“Veiculo” uma superclasse “Carro” e “Bicicleta” como suas subclasses. Esse modelo
está representando gêneros de objetos que compartilham as mesmas características. Por
exemplo, “Carro” é a classe para representar todos os carros. Cada carro em específico
será um objeto. Logo, um carro Hyundai HB20 de placa XXX é um objeto.
As propriedades são representadas na parte intermediária da caixinha, em que “marca”
e “modelo” como propriedades para “Veiculo” e “placa” para “Carro”. Contudo, pela
herança, as subclasses herdam as propriedades e métodos da superclasse e, portanto,
tanto “Carro” quanto “Bicicleta” também possuem os atributos “marca” e “modelo”.
CONTINUA...
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
37
CONTINUAÇÃO...
Os métodos ou operações são representados na parte inferior da caixinha. Assim,
“Veiculo” possui um método “acelerar()”, “Bicicleta” possui um método “acelerar()” e
“Carro” possui os métodos “ligar()”, “desligar()” e “acelerar()”. Essas são as assinaturas
dos métodos. Dentro do método, vai seu corpo que é a implementação, isto é, o código
que declara o comportamento que deverá ser realizado.
Observe que o método “acelerar()” está presente nas três classes. Isso é um exemplo de
polimorfismo, pois a implementação desses métodos pode ser diferente em cada classe,
ainda que a assinatura do método seja a mesma. A aceleração de um carro é diferente da
de uma bicicleta, certo? Então, a aplicação poderá simplesmente invocar o método
“acelerar()” e, a depender do objeto que receber a solicitação, ele irá acionar uma
implementação diferente: no carro serão acionados todos os procedimentos mecânicos
e/ou elétricos necessários; na bicicleta, é força nas pernas.
Só pra fechar o nosso entendimento dos conceitos relacionados ao modelo de objetos,
suponha que uma aplicação deseje acessar a placa de um “Carro”. De acordo com o
encapsulamento, essa aplicação não poderá fazer isso diretamente. Então, deverá
existir um método que permita esse acesso (ex.: obterPlaca()). Assim, a aplicação irá
chamar esse método as invés de simplesmente tentar acessar “placa” diretamente. Por
que isso é importante? Porque podem ser feitas verificações e tratamentos nesse método
para garantir a consistência das informações e a segurança nos dados.
▪ Modelo objeto-relacional: os SGBDs relacionais têm estendido seus modelos para
incorporar conceitos de bancos de dados de objeto e outras funcionalidades.
EXEMPLIFICANDO!!!
A figura a seguir ilustra um trecho de um modelo objeto-relacional:
Perceba que há tanto uma tabela do modelo relacional (Tabela Conta), quanto uma
classe do modelo de objetos (Classe Conta), com o devido mapeamento entre elas.
Nesse caso, as informações da conta são armazenadas na Tabela Conta no banco de
dados, mas a manipulação no programa é feita por meio das classes e objetos.
Suponha que eu queria cadastrar uma conta, então eu vou acessar o aplicativo, vou
preencher as informações da conta, estas serão manipuladas pelos objetos e, quando, eu
finalizar o cadastro, essas informações serão armazenadas no banco de dados. Essa
comunicação objeto-tabela é realizada pelo programa com auxílio de frameworks de
mapeamento objeto-relacional.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
38
▪ Modelo XML: utiliza estruturas de árvore hierárquicas e combina conceitos de
banco de dados com conceitos dos modelos de representação de documentos. Os dados
são representados como elementos; com o uso de tags (etiquetas), os dados podem ser
aninhados para criar estruturas hierárquicas complexas.
EXEMPLIFICANDO!!!
A trecho de código a seguir ilustra um arquivo XML:
Perceba o uso de estruturas hierárquicas com o uso de tags. <receita> é a tag raiz e
possui como “filhas” as tags <titulo>, <ingredientes> e <instrucoes>. Cada uma dessas
tags representa um elemento do modelo.
▪ Modelo de rede: modelo legado (mais antigo) que representa os dados como tipos de
registro e também representa um tipo limitado de relacionamento 1:N, chamado
de tipo de conjunto. Um relacionamento 1:N (um-para-muitos) relaciona uma instância
de um registro a muitas instâncias de registros usando algum mecanismo de ligação
com ponteiros nesses modelos.
EXEMPLIFICANDO!!!
A figura a seguir ilustra um modelo em rede, relacionando departamentos aos seus
empregados.
Note que cada “Departamento” pode se relacionar com vários “Empregados”, mas cada
“Empregado” só está ligado a um “Departamento”. Por isso, temos uma relação do tipo
um-para-muitos (1:N).
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
39
▪ Modelo hierárquico: representa os dados como estruturas de árvore hierárquicas.
Cada hierarquia simboliza uma série de registros relacionados em uma estrutura de
“pais” e “filhos”. O registro principal é chamado de raiz (root). Cada registro tem um
único “pai”, mas pode ter vários “filhos”. Um registro que não seja “pai” em nenhum
relacionamento é denominado “folha” (leaf). Não existe uma linguagem padrão para
o modelo hierárquico, mas uma linguagem hierárquica popular é a DL/1, que foi um
padrão de fato na indústria por muito tempo.
EXEMPLIFICANDO!!!
Veja um modelo hierárquico a seguir:
Nesse modelo, temos uma estrutura hierárquica, cujo elemento raiz (root) é “VOO”.
“CIDADE”, “RESERVA” e “CLIENTE” são folhas, pois não são “pais” de nenhum
elemento. Note que nenhum elemento é “filho” de dois “pais”, mas um mesmo elemento
pode ser “pai” de mais de um “filho”.
O esquema a seguir resume os principais modelos de dados:
Esquema 13 – Modelos de dados (modelos lógicos).
Modelo relacional
• Dados como uma coleção de
tabelas.
Modelo de objetos
• Dados como objetos,
propriedades (atributos) e
operações (métodos).
Modelo objeto-relacional
• SGBD relacional com
extensões para modelos de
objetos.
Modelo XML
• Estruturas de árvores
hierárquicas com uso de tags.
Modelo de rede
• Registros relacionados de
forma 1:N.
Modelo hierárquico
• Estruturas de árvores
hierárquicas de "pais" e
"filhos".
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
40
2. BANCOS DE DADOS RELACIONAIS
2.1 Modelo relacional
Inicialmente vale destacar que o modelo relacional atraiu bastante a atenção devido a sua
simplicidade e base matemática. Pode ser considerado o primeiro modelo a ser descrito
formalmente.
O modelo relacional usa o conceito de relação matemática como seu bloco de montagem
básico, e sua base teórica reside na teoria de conjunto e lógica de predicado de primeira
ordem. Com base neste modelo, um banco de dados relacional utiliza as relações para
representar tanto os dados quanto os relacionamentos entre estes dados.
Informalmente, cada relação é semelhante a uma tabela de valores, em que cada linha na
tabela representa uma coleção de valores de dados relacionados ou, até certo ponto, a um
arquivo plano de registros, porque cada registro tem uma simples estrutura linear ou plana.
Veremos ainda com mais detalhes, a estrutura dos bancos de dados relacionais. Por
enquanto, devemos entender que estes são conjuntos de relações ou tabelas que
representam dados e relacionamentos.Vale ressaltar que o modelo relacional requer que o banco de dados seja percebido pelos
usuários como tabelas, mas os dados podem estar armazenados fisicamente em outras
estruturas (índices, listas, sequências, etc.).
Já que todos os dados devem ser organizados em tabelas (ainda que armazenados em
estruturas diferentes), todo o conteúdo de informação do banco de dados é representado
de um e somente um modo, ou seja, como valores explícitos em posições de colunas em
linhas de tabelas. Esse é o chamado Princípio da Informação.
Para C.J. Date, o modelo relacional é constantemente descrito (de maneira informal) com
base em três aspectos:
▪ Aspecto estrutural: os bancos de dados são percebidos pelos usuários como
tabelas.
▪ Aspecto de integridade: essas tabelas satisfazem a certas restrições de
integridade.
o As restrições de integridade são usadas para garantir a exatidão e a
consistência dos dados em um banco de dados relacional, isto é, garantir
que dados representem assertivamente a realidade modelada. As
restrições de integridade fornecem a garantia de que mudanças feitas
no banco de dados por usuários autorizados não resultem em perda da
consistência dos dados. Assim, as regras de integridade protegem o
banco de dados de danos acidentais.
▪ Aspecto manipulador: os operadores disponíveis para que o usuário possa
manipular essas tabelas são operadores que derivam tabelas a partir de outras
tabelas.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
41
EXEMPLIFICANDO!!!
Vejamos um exemplo de uma relação (ou tabela) do modelo relacional estão representados
os dados do cadastro de clientes de uma loja fictícia.
Código do cliente Nome do cliente CPF Endereço
134512 João Aprovado dos Santos 123.123.123-12 Rua A, nº 123
251218 Maria Concursada Fernandes 456.456.456-45 Rua B, nº 456
Note que todos os dados são representados por meio de uma estrutura tabular (uma relação
ou tabela), isto é, segue-se o Princípio da Informação.
Podemos observar a presença dos 3 aspectos discutidos por C. J. Date:
❖ Estrutural: você percebe os dados como uma tabela, mas estes dados podem
estar armazenados em outras estruturas.
❖ De integridade: podemos ter uma regra que só permita o cadastro de um cliente
se for inserido um CPF composto somente por números e seguindo o padrão
XXX.XXX.XXX-XX.
❖ Manipulador: podemos fazer uma operação nesta tabela para selecionar, por
exemplo, somente os clientes que moram na Rua A.
A arquitetura ANSI/SPARC em três níveis considera que os Bancos de dados relacionais
consistem de três componentes:
▪ Uma coleção de estruturas de dados, formalmente chamadas de relações, ou
informalmente tabelas, compondo o nível conceitual;
▪ Uma coleção dos operadores, a álgebra e o cálculo relacionais, que constituem a base
da linguagem SQL;
▪ Uma coleção de restrições da integridade, definindo o conjunto consistente de
estados de base de dados e de alterações de estados.
O autor C.J. Date amplia essa divisão, definindo que de maneira mais formal, o modelo
relacional consiste em cinco componentes:
▪ Uma coleção ilimitada de tipos escalares (incluindo em particular o tipo booleano ou
valor verdade).
▪ Um gerador de tipo de relação e uma interpretação pretendida para esses tipos de
relações gerados.
▪ Recursos para definição de RelVars (variáveis de relações) desses tipos de relações
gerados. Uma relvar (variável relacional) é um conjunto de pares ordenados de
domínio e nome que serve como um cabeçalho para uma relação.
▪ Um operador de atribuição relacional para atribuição de valores de relações a essas
RelVars.
▪ Uma coleção ilimitada de operadores relacionais genéricos (“a álgebra relacional”)
para derivar valores de relações a partir de outros valores de relações.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
42
Muita informação??? Não se preocupe, veja um esquema para facilitar sua vida!
Esquema 14 – Modelo relacional: conceitos básicos.
Modelo
Relacional
Conceitos
Conjuntos de relações ou tabelas que representam
dados e relacionamentos.
Relação matemática é o bloco de montagem básico.
Base teórica reside na teoria de conjunto e lógica de
predicado de primeira ordem.
Princípio da Informação
Todo o conteúdo de informação do banco de dados é
representado como valores explícitos em posições
de colunas em linhas de tabelas.
Aspectos de descrição
Aspecto estrutural: percebidos pelos usuários como
tabelas.
Aspecto de integridade: essas tabelas satisfazem a
certas restrições de integridade.
Aspecto manipulador: os operadores disponíveis
para que o usuário possa manipular essas tabelas
derivam tabelas a partir de outras tabelas.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
43
2.2 Doze (Treze) Regras de Codd para Bancos Relacionais
As Doze Regras de Codd são um conjunto de treze regras (é isso mesmo! Elas são
enumeradas de zero a doze) propostas por Edgar F. Codd e usadas para definir o que é
necessário para que um sistema de gerenciamento de banco de dados para ser
considerado relacional.
DICA DO PROFESSOR!!!
Pessoal, as questões sobre esse tema são bem literais. Logo, sugiro que não se preocupe em
entender essas regras profundamente. Basta ter uma noção de que elas existem e de como
funcionam. Algumas questões as cobram de maneira indireta, sem citar que são as regras
de Codd, mas que você consegue resolver facilmente se tiver noção dessas regras.
Vejamos essas regras:
▪ Regra 0 - Regra fundamental ou regra base: um SGBD relacional deve gerenciar
seus dados usando exclusivamente capacidades relacionais, isto é, não devem ter
extensões para tratar conceitos e estruturas de outros modelos de dados.
▪ Regra 1 - A regra da informação ou Princípio da Informação: todas as informações
no banco de dados necessitam estar representadas de apenas uma forma, nomeados por
valores em posições de colunas dentro de registros de tabelas.
▪ Regra 2 - A regra de acesso garantido: deve-se garantir que todos os valores de
uma tabela possam ser acessados por meio de uma combinação de nome de tabela,
valor de chave primária e nome de coluna.
▪ Regra 3 - Tratamento sistemático de valores nulos: o SGBD deve permitir que
cada campo possa permanecer nulo (ou vazio). Especificamente, ele deve suportar
uma representação de "falta de informação e informações inaplicáveis" que é sistemática,
diferente de todos os valores regulares (por exemplo, "diferente de zero ou qualquer
outro número", no caso de valores numéricos), e independente de tipo de dados. É
também implícito que tais representações devem ser manipuladas pelo SGBD de
maneira sistemática.
▪ Regra 4 - Catálogo on-line baseado no modelo relacional: os metadados devem
ser armazenados e gerenciados como dados comuns, ou seja, em tabelas no interior
do Banco de Dados. Esses dados devem estar disponíveis aos usuários autorizados,
utilizando a linguagem de consulta padrão do Banco de Dados.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
44
▪ Regra 5 - Sublinguagem Ampla de Dados: deve suportar uma linguagem
declarativa bem definida com suporte para definição de dados, definição de visões,
manipulação de dados (interativa ou por programa), restrições de integridade,
autorização e gerenciamento de transações (iniciar, enviar e desfazer).
▪ Regra 6 - Atualização de visões: todas as visões que são teoricamente atualizáveis
devem ser atualizáveis pelo sistema.
▪ Regra 7 - Inserção,Atualização, e Exclusão de alto nível: o sistema necessita
fornecer suporte à configuração do nível de operações para inserir, atualizar e excluir.
Isto significa que os dados podem ser recuperados a partir de um banco de dados
relacional em conjuntos de dados construídos a partir de várias linhas e / ou
várias tabelas. Esta regra afirma que as operações de inserção, atualização, e exclusão
devem ser apoiadas para qualquer conjunto recuperável e não apenas para uma única
linha em uma única tabela.
▪ Regra 8 - Independência Física de dados: aplicativos e recursos ad hoc não são
afetados logicamente quando os métodos de acesso ou as estruturas de
armazenamento físico são alterados.
▪ Regra 9 - Independência Lógica de Dados: aplicativos e recursos ad hoc não são
afetados logicamente quando de alterações de estruturas de tabela que preservem
os valores originais da tabela (alteração da ordem ou inserção de colunas). Alterações
nas relações e nas Visualizações causam pouco ou nenhum impacto nas aplicações.
▪ Regra 10 - Independência de Integridade: todas as restrições de integridade
necessitam ser especificadas separadamente dos programas de aplicação e
armazenadas no catálogo. É necessário que seja possível mudar estas restrições sem que
necessariamente tenha-se de modificar as aplicações.
▪ Regra 11 - Independência de Distribuição: a distribuição de partes do SGBD em
várias localidades deve ser transparente para os usuários do mesmo, isto é, os usuários
não são afetados pela localização dos dados.
▪ Regra 12 - A não-transposição das regras: se o SGBD dá suporte a acesso de baixo
nível aos dados, não deve haver um modo de negligenciar as regras de integridade
do mesmo.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
45
Em resumo, as regras são:
Esquema 15 – Doze (treze) regras de Codd para os bancos de dados relacionais.
5- (FGV - 2018 - MPE-AL - Técnico do Ministério Público - Geral) Em um banco
de dados relacional, um nome da tabela, uma chave primária e um nome de coluna garantem
o acesso a
a) um dado.
b) um SGBD.
c) uma linguagem de consulta.
d) uma partição.
e) uma visão.
Resolução:
Uma das doze (treze) regras de Codd para um banco relacional é a regra do acesso
garantido, segundo a qual 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. Esses valores nada mais são que os dados armazenados nos bancos de
dados.
Gabarito: Letra A.
D
o
ze
(
tr
ez
e)
r
eg
ra
s
d
e
C
o
d
d
p
ar
a
B
an
co
s
R
el
ac
io
n
ai
s Regra 0 - Regra fundamental ou regra base
Regra 1 - A regra da informação ou Princípio da Informação
Regra 2 - A regra de acesso garantido
Regra 3 - Tratamento sistemático de valores nulos
Regra 4 - Catálogo on-line baseado no modelo relacional
Regra 5 - Sublinguagem Ampla de Dados
Regra 6 - Atualização de visões
Regra 7 - Inserção, Atualização, e Exclusão de alto nível
Regra 8 - Independência Física de dados
Regra 9 - Independência Lógica de Dados
Regra 10 - Independência de Integridade
Regra 11 - Independência de Distribuição
Regra 12 - A não-transposição das regras
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
46
2.3 Tabelas
O modelo relacional consiste em uma coleção de tabelas (ou relações). Podemos dizer, então,
que a tabela ou relação é a estrutura chave deste modelo, servindo para representar os
dados e relacionamentos entre esses dados. A cada uma destas tabelas é atribuído um
nome único.
Em uma tabela, cada linha (tupla ou registro) representa uma coleção de valores de
dados relacionados. Uma linha representa um fato que normalmente corresponde a uma
entidade ou relacionamento do mundo real.
Uma tabela é organizada em colunas (atributos ou campos), que servem para ajudar a
interpretar o significado dos valores em cada linha. O número de colunas de uma
relação representa o grau (ou aridade) desta relação.
O tipo de dado que descreve os tipos de valores que podem aparecer em cada coluna é
representada por um domínio de valores possíveis. É importante destacar que um domínio
é um conjunto de valores atômicos, ou seja, é indivisível.
EXEMPLIFICANDO!!!
A tabela “Clientes” representa os dados referentes aos clientes de uma loja fictícia. “Clientes”
é um nome único para esta tabela.
Código do
cliente
Nome do cliente CPF Endereço
134512 João Aprovado dos Santos 123.123.123-12 Rua A, nº 123
251218 Maria Concursada
Fernandes
456.456.456-45 Rua B, nº 456
Esta tabela está estruturada em quatro colunas (código do cliente, nome do cliente, cpf e
endereço). Estas colunas (ou atributos) ajudam a entender os significados dos valores das
tabelas, assim, podemos perceber que os clientes são identificados por um código, pelo seu
nome, cpf e tem seu endereço cadastrado. Com base no número de colunas, podemos
perceber que o grau (ou aridade) desta tabela é quatro.
As linhas (ou tuplas) da tabela demonstram coleções de dados relacionados, por exemplo,
todos os dados da primeira linha são relacionados ao cliente João Aprovado dos Santos.
Vejamos, por fim, um exemplo de domínio. Podemos citar, por exemplo, que o domínio
para o cpf é um conjunto de números com onze dígitos e para o nome dos clientes é um
conjunto de caracteres.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
47
Esquema 16 – Conceitos do modelo relacional.
Agora que já vimos os componentes básicos de uma tabela, vamos estudar algumas
características importantes sobre as relações.
❖ Ordenação de tuplas em uma relação: uma relação é definida como um conjunto
de tuplas. Matematicamente, os elementos de um conjunto não possuem nenhuma
ordem em particular, isto é, uma relação não é sensível à ordenação de tuplas.
❖ Ordem dos valores dentro de uma tupla: uma tupla é uma lista ordenada de
valores, de modo que a ordem dos valores em uma tupla – e, portanto, dos atributos
em um esquema de relação – é importante. (Aqui há uma divergência, pois C.J.
Date considera que a tupla é um conjunto, também não importando os
valores).
Em resumo,
o A ordem das linhas não é relevante.
o A ordem das colunas é relevante, a não ser que a correspondência entre
elas e seus valores seja mantida.
❖ Valores e NULLs nas tuplas: cada valor em uma tupla é um valor atômico, isto é,
não é divisível em componentes dentro da estrutura do modelo relacional. Um
conceito importante é o dos valores NULL, que são usados para representar os
valores de atributos que podem ser desconhecidos ou não se aplicam a uma tupla.
❖ Interpretação (significado) de uma relação: o esquema da relação pode ser
interpretado como uma declaração ou um tipo de afirmação (ou asserção) e cada
tupla pode ser interpretada como um fato ou instância particular da afirmação.
Tabela (relação) – representa dados e relacionamentos.
Coluna (atributo ou campo) - ajuda a
interpretar o significado dos valores
das linhas.
Linha (tupla ou registro) -
coleção de valores de dados
relacionados.
Grau (aridade) - número
de colunas de uma
relação.
Domínio - tipo de dado que descreve
os tipos de valores que podem
aparecer em cada coluna.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
48
ATENÇÃO!!!
Sobre a questão da ordenação das colunas, temos uma polêmica. Quanto a ordenação das
linhas, está tudo tranquilo, pois não há preocupação com a ordem. Contudo,quando estamos
tratando das colunas, temos duas possibilidades:
▪ Para a maioria dos autores, uma tupla é uma lista ordenada de valores, logo a ordem
dos valores é importante.
▪ C.J. Date, contudo, diverge desse raciocínio ao definir uma tupla como um conjunto
de valores. Sendo assim, a ordem dos valores também não é importante.
E agora professor, o que faço? Primeiro vamos entender a visão geral da importância da
ordenação das colunas. Um modo mais claro de verificar a importância da ordem das
colunas é quando estamos usando a linguagem SQL para realizar inserções de dados na
tabela. Podemos usar a seguinte sintaxe:
INSERT INTO tabela VALUES (valor1, valor2, valor3,...)
Esse comando irá inserir os valores segundo a ordem das colunas na tabela. Caso não haja
correspondência entre os valores passados e os tipos dos campos, haverá falhas na inserção.
Por isso a ordem das colunas é importante. Logicamente, existem comandos mais
específicos para definir quais as colunas selecionar, mas esse exemplo mostra que a ordem
das colunas tem impacto nas operações realizadas no banco.
Logo, percebemos que a ordem é importante, pois precisamos segui-la ou declará-la. Esse
seria o raciocínio para levar para a prova. Contudo, se a questão cobrar a visão do Date e
não tiver outra opção mais correta ou menos errada, então marque a que afirma que a ordem
das colunas não importa.
Vejamos umas questões como exemplo:
(CESPE - 2014 - TJ-SE - Analista Judiciário - Banco de Dados) No modelo relacional,
sob o ponto de vista do usuário, a ordem em que as linhas estão armazenadas nas tabelas é
insignificante.
Gabarito: Certo. (Quanto às linhas não há dúvida, a ordem não importa).
(CESPE - 2017 - TCE-PE - Auditor de Controle Externo - Auditoria de Contas
Públicas) Em uma relação, os nomes das colunas são únicos, as linhas são distintas entre
si, e a ordem da disposição das linhas e colunas é irrelevante para o banco de dados.
Gabarito: Errado. (Visão da maioria dos autores sobre a ordenação das colunas ser
relevante)
(CESPE – 2018 – TCM-BA - - Auditor Estadual de Controle Externo)
c) Os componentes de uma tupla são ordenados da esquerda para a direita.
Gabarito: Errado. (Visão de Date, dando como errada a importância da ordenação)
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
49
2.4 Operações com relações (álgebra relacional)
A álgebra relacional define um conjunto de operações nas relações, em paralelo com as
operações algébricas usuais, como adição, subtração ou multiplicação, que operam em
números. Assim como as operações algébricas nos números tomam um ou mais números
como entrada e retornam um número como saída, as operações de álgebra relacional
geralmente tomam uma ou duas relações como entrada e retornam uma relação como
saída.
Na álgebra relacional, o termo predicado é utilizado para descrever a condição que deve
ser satisfeita na operação.
A seguir, vamos descrever as principais operações da álgebra relacional. Ressalto que vamos
verificá-las de forma individual, mas elas podem ser combinadas.
❖ Seleção (σ): seleciona tuplas que satisfazem um determinado predicado. Esta
operação, portanto, retorna um conjunto de tuplas (ou linhas) que cumprem
determinada condição nos valores dos atributos.
EXEMPLIFICANDO!!!
Tomemos como exemplo a relação Servidor a seguir:
matricula nome salario
134512 João Aprovado dos Santos 13.002,03
251218 Maria Concursada Fernandes 5.519,61
124578 Paulo Passou Batista 13.002,03
131820 Glória Nomeada Rodrigues 5.519,61
112035 Eduardo Posse Pordeus 13.002,03
Queremos selecionar somente aqueles servidores que ganham menos que 13000. Para isso
podemos utilizar a operação de Seleção da seguinte forma: σsalario<13000 (Servidor)
O resultado desta operação será:
matricula nome salario
251218 Maria Concursada Fernandes 5.519,61
131820 Glória Nomeada Rodrigues 5.519,61
Note que, nesta operação o predicado define uma condição nos valores dos atributos que
deve ser satisfeita pelo retorno da operação e, dessa forma, somente foram retornadas as
linhas com salário menor que 13000.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
50
❖ Projeção (П): seleciona os atributos especificados de todas as linhas da relação
de entrada, removendo as tuplas duplicadas da saída.
EXEMPLIFICANDO!!!
Tomemos como exemplo a relação Servidor dada no exemplo da seleção. Vamos supor
que não tenhamos interesse em divulgar os salários dos servidores, mas que tenha sido
solicitado a lista de todos os servidores. Poderemos realizar esta consulta com base em
uma operação de projeção: Пmatricula, nome (Servidor). O resultado desta operação será:
matricula nome
134512 João Aprovado dos Santos
251218 Maria Concursada Fernandes
124578 Paulo Passou Batista
131820 Glória Nomeada Rodrigues
112035 Eduardo Posse Pordeus
Observe que a operação de projeção retorna somente os dados referentes as colunas
escolhidas, reduzindo, assim, a quantidade de dados que precisam ser analisados.
❖ Junção ( ): seleciona os pares de linhas das duas relações de entrada que têm
o mesmo valor em todos os atributos que possuem o mesmo nome. Os atributos
repetidos só aparecem uma vez no resultado. Diferentemente da operação de
projeção, você seleciona as tabelas de entrada e não os atributos específicos de uma
tabela.
EXEMPLIFICANDO!!!
Para exemplificarmos o uso da junção, considere a tabela Servidor já utilizada nos
exemplos anteriores e a tabela Cargo a seguir:
nome_cargo salario
Auditor de Contas Públicas 13.002,03
Agente de Documentação 5.519,61
Ao realizarmos a operação de junção Servidor Cargo obteremos:
matricula nome salario nome_cargo
134512 João Aprovado dos Santos 13.002,03 Auditor de Contas Públicas
251218 Maria Concursada Fernandes 5.519,61 Agente de Documentação
124578 Paulo Passou Batista 13.002,03 Auditor de Contas Públicas
131820 Glória Nomeada Rodrigues 5.519,61 Agente de Documentação
112035 Eduardo Posse Pordeus 13.002,03 Auditor de Contas Públicas
A operação de junção seleciona linhas das duas tabelas, fazendo uma relação entre os
atributos de mesmo nome. No caso do exemplo, o resultado foi formado pela combinação
das tuplas da tabela Servidor e da tabela Cargo com base no atributo salario.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
51
❖ Produto cartesiano (X): seleciona todos os pares de linhas das duas relações de
entrada (independentemente de ter ou não os mesmos valores em atributos
comuns). A nova relação possui todos os atributos que compõem cada uma das
relações que fazem parte da operação.
EXEMPLIFICANDO!!!
Considerando as tabelas Servidores e Cargo já utilizadas em nossos exemplos, a operação
de produto cartesiano Servidor X Cargo retorna:
matricula nome salario nome_cargo salario
134512 João Aprovado dos Santos 13.002,03 Auditor de Contas Públicas 13.002,03
134512 João Aprovado dos Santos 13.002,03 Agente de Documentação 5.519,61
251218 Maria Concursada Fernandes 5.519,61 Auditor de Contas Públicas 13.002,03
251218 Maria Concursada Fernandes 5.519,61 Agente de Documentação 5.519,61
124578 Paulo Passou Batista 13.002,03 Auditor de Contas Públicas 13.002,03
124578 Paulo Passou Batista 13.002,03 Agente de Documentação 5.519,61
131820 Glória Nomeada Rodrigues 5.519,61 Auditor de Contas Públicas 13.002,03
131820 Glória Nomeada Rodrigues 5.519,61 Agente de Documentação 5.519,61
112035 Eduardo Posse Pordeus 13.002,03 Auditor de Contas Públicas 13.002,03
112035 Eduardo Posse Pordeus 13.002,03 Agentede Documentação 5.519,61
A operação de produto cartesiano faz um cruzamento das duas tabelas, retornando todas
as linhas da primeira tabela relacionadas com todas as linhas da segunda tabela. No
exemplo, são criadas duas linhas para cada servidor, pois eles serão relacionados com os
dois cargos existentes na segunda tabela.
Através da álgebra relacional é possível implementar as operações bem conhecidas dos
conjuntos como a União, Intersecção e Diferença. Preliminarmente, é importante destacar
que estas operações são realizadas sobre duas relações com a mesma estrutura, isto é,
com a mesma quantidade de atributos e cujos atributos possuem o mesmo domínio.
❖ União (Ս): seleciona a união de tuplas das duas relações de entrada, isto é, as tuplas
que estão na primeira relação, na segunda relação, ou em ambas.
EXEMPLIFICANDO!!!
Consideremos as duas tabelas a seguir, uma com os dados dos Auditores de Contas
Públicas e outra com os dados dos Agentes de Documentação:
matricula nome salario matricula nome salario
134512 João Aprovado dos Santos 13.002,03 251218 Maria Concursada Fernandes 5.519,61
124578 Paulo Passou Batista 13.002,03 131820 Glória Nomeada Rodrigues 5.519,61
112035 Eduardo Posse Pordeus 13.002,03
A operação de união nestas duas tabelas A Ս B terá como retorno uma tabela com todas
as tuplas presentes na primeira tabela, na segunda tabela ou em ambas.
matricula nome salario
134512 João Aprovado dos Santos 13.002,03
124578 Paulo Passou Batista 13.002,03
112035 Eduardo Posse Pordeus 13.002,03
251218 Maria Concursada Fernandes 5.519,61
131820 Glória Nomeada Rodrigues 5.519,61
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
52
❖ Intersecção (Ո): seleciona a intersecção de tuplas das duas relações de entrada, isto
é, as tuplas que aparecem tanto na primeira relação quanto na segunda.
❖ Diferença (-): seleciona as tuplas que aparecem na primeira relação, mas não
estão na segunda.
EXEMPLIFICANDO!!!
Tomemos como base as tabelas a seguir, sendo a primeira dos Auditores de Contas Públicas
e a segunda dos servidores que possuem chefia.
matricula nome salario matricula nome salario
134512 João Aprovado dos Santos 13.002,03 124578 Paulo Passou Batista 13.002,03
124578 Paulo Passou Batista 13.002,03 131820 Glória Nomeada Rodrigues 5.519,61
112035 Eduardo Posse Pordeus 13.002,03 112035 Eduardo Posse Pordeus 13.002,03
Se quisermos selecionar somente os Auditores que possuem chefia podemos fazer a
operação de Interseção (A Ո B) entre as duas tabelas:
matricula nome salario
124578 Paulo Passou Batista 13.002,03
112035 Eduardo Posse Pordeus 13.002,03
Caso contrário, se quisermos obter somente os Auditores que não possuem chefia, é
possível utilizar a operação Diferença (A - B):
matricula nome salario
134512 João Aprovado dos Santos 13.002,03
ATENÇÃO!!!
Dentre essas operações, vale ressaltar que são consideradas primitivas, as operações de
seleção, projeção, produto cartesiano, união e diferença.
As operações são esquematizadas no quadro a seguir.
Operações da álgebra relacional
Seleção (σ) Retorna as tuplas da relação que satisfazem um predicado. (PRIMITIVA)
Projeção (П) Retorna os atributos especificados de todas as linhas da relação de entrada,
removendo as tuplas duplicadas da saída. (PRIMITIVA)
Junção ( ) Retorna pares de linhas das duas relações de entrada que têm o mesmo valor
em todos os atributos que possuem o mesmo nome.
Produto cartesiano
(X)
Retorna todos os pares de linhas das duas relações de entrada
(independentemente de ter ou não os mesmos valores em atributos comuns).
(PRIMITIVA)
União (Ս) Retorna as tuplas que estão na primeira relação, na segunda relação, ou em
ambas. (PRIMITIVA)
Intersecção (Ո) Retorna as tuplas que aparecem tanto na primeira relação quanto na segunda.
Diferença (-) Retorna tuplas que aparecem na primeira relação, mas não estão na segunda.
(PRIMITIVA)
Esquema 17 – Operações com relações (álgebra relacional).
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
53
6- (FGV - 2018 - MPE-AL - Analista do Ministério Público - Administrador de
Banco de dados) No contexto da otimização de consultas para bancos de dados, a Álgebra
Relacional tem um papel importante, especialmente na construção das query trees para a
representação de planos de execução. As operações primitivas da AR são definidas como as
operações que não podem ser expressas por meio das demais operações. Assinale a opção
que apresenta a lista que contém as cinco operações primitivas da AR.
a) Diferença, divisão, projeção, seleção e união.
b) Diferença, produto, projeção, seleção e união.
c) Interseção, produto, projeção, seleção e união.
d) Divisão, interseção, junção, seleção e união.
e) Junção, produto, projeção, seleção e união.
Resolução:
As cinco operações primitivas da álgebra relacional são:
Seleção (σ) Retorna as tuplas da relação que satisfazem um predicado.
Projeção (П) Retorna os atributos especificados de todas as linhas da relação de entrada,
removendo as tuplas duplicadas da saída.
Produto cartesiano
(X)
Retorna todos os pares de linhas das duas relações de entrada
(independentemente de ter ou não os mesmos valores em atributos comuns).
União (Ս) Retorna as tuplas que estão na primeira relação, na segunda relação, ou em
ambas.
Diferença (-) Retorna tuplas que aparecem na primeira relação, mas não estão na segunda.
Gabarito: Letra B.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
54
2.5 Visões (views)
Uma tabela é o conceito básico do modelo relacional. Dependendo da modelagem do banco
de dados, as tabelas podem conter uma grande quantidade de dados que não precisam ou
que não podem ser visualizadas por um conjunto de usuários. Para disponibilizar somente
os dados necessários a um subconjunto de usuários, usam-se as views (ou visões).
Uma visão (ou view) é uma única tabela que é derivada de outras tabelas, que podem
ser tabelas de base ou mesmo outras visões previamente definidas. Podemos ainda entender
uma visão como uma maneira alternativa de visualização dos dados de uma ou mais
tabelas. Tecnicamente, uma visão é uma consulta predefinida ou armazenada, que é
executada sempre que referenciada. Ela é utilizada para que não seja necessário refazer a
consulta sempre que for necessário utilizá-la.
Uma visão não necessariamente existe em forma física; ela é considerada uma tabela
virtual, ao contrário das tabelas da base, cujas tuplas sempre estão armazenadas fisicamente
no banco de dados. Isso limita as possíveis operações de atualização que podem ser aplicadas
às visões, mas não oferece quaisquer limitações sobre a consulta de uma visão. Por isso, em
regra, as visões são não atualizáveis.
No entanto, é importante destacar que certos sistemas de bancos de dados permitem que as
visões sejam armazenadas. Essas visões armazenadas são chamadas de visões
materializadas. Os sistemas de bancos de dados garantem que a atualização dessas visões
quando ocorrer alterações em suas tabelas base. Em regra, essas visões são atualizáveis.
Podemos destacar as seguintes vantagens de se utilizar visões:
❖ Economizar tempo com retrabalho.
❖ Velocidade de acesso às informações.
❖ Mascarar a complexidade do banco de dados.
❖ Simplificar o gerenciamento de permissões de usuários.
❖ Organizar dados a serem exportados para outros aplicativos.
É importante destacar que todas as operações que podem ser realizadas em tabelas, também
podem ser realizadas em visões.
Vamos fixar os conceitos de visão com umesquema!
Esquema 18 – Visão (view).
• Tabela derivada de outras tabelas (tabelas base ou outras visões).
• Maneira alternativa de visualização dos dados de uma ou mais tabelas.
• Consulta pré-definida ou armazenada.
• Tabela virtual: não necessariamente existe em forma física.
• Em regra, não atualizáveis.
Visão (view)
• Visão armazenada.
• Em regra, atualizáveis.
Visão materializada (materialized view).
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
55
ESCLARECENDO!!!
Como uma View pode aumentar a velocidade de acesso às informações, visto que será
sempre executada a consulta?
Muito cuidado, pois uma View aumenta a velocidade do ACESSO as informações do ponto
de vista do usuário, pois ao invés de ter que definir uma consulta, basta acessá-la. Portanto,
não irá requerer tempo e esforço para montar a consulta, otimizando o tempo necessário
para visualizar os dados.
EXEMPLIFICANDO!!!
Tomemos como exemplo a relação Servidor a seguir:
matricula nome salario
134512 João Aprovado dos Santos 13.002,03
251218 Maria Concursada Fernandes 5.519,61
124578 Paulo Passou Batista 13.002,03
131820 Glória Nomeada Rodrigues 5.519,61
112035 Eduardo Posse Pordeus 13.002,03
Perceba que essa tabela informa o salário dos servidores. Suponha que o pessoal do setor
de comunicação desse órgão utilize informações básicas sobre os servidores. Se, por algum
motivo, não for interessante que o pessoal desse setor possua acesso ao salário, pode então
ser criada uma visão somente com as informações do interesse desse grupo de usuários.
Dessa forma, pode ser criada uma visão (view) que apresenta somente a matrícula e nome
dos funcionários. A partir daí, o acesso a esta visão pode ser fornecido ao pessoal da
comunicação e a o acesso direto a tabela Servidor pode ser retirado.
O fato é que agora, o pessoal da comunicação pode ter acesso à visão ao invés da tabela,
somente visualizando as informações que necessitam. Ao selecionar essa visão, será
apresentado:
matricula nome
134512 João Aprovado dos Santos
251218 Maria Concursada Fernandes
124578 Paulo Passou Batista
131820 Glória Nomeada Rodrigues
112035 Eduardo Posse Pordeus
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
56
7- (FGV - 2010 - BADESC - Analista de Sistemas - Banco de Dados) O conceito de
visão é muito útil e empregado na implementação de banco de dados.
O emprego do conceito visão tem as seguintes finalidades ou vantagens:
a) ocultar dados e fornecer o controle de redundâncias.
b) ocultar dados e fornecer independência de dados lógica.
c) fornecer controle de redundância e a restrição de integridade.
d) fornecer controle de redundância e independência de dados lógica.
e) fornecer a restrição de integridade e independência de dados lógica.
Resolução:
Uma visão (ou view) é uma única tabela que é derivada de outras tabelas, que podem
ser tabelas de base ou mesmo outras visões previamente definidas. Podemos ainda entender
uma visão como uma maneira alternativa de visualização dos dados de uma ou mais
tabelas. Tecnicamente, uma visão é uma consulta predefinida ou armazenada, que é
executada sempre que referenciada. Ela é utilizada para que não seja necessário refazer a
consulta sempre que for necessário utilizá-la.
Podemos destacar as seguintes vantagens de se utilizar visões:
❖ Economizar tempo com retrabalho.
❖ Velocidade de acesso às informações.
❖ Mascarar a complexidade do banco de dados. (vantagem descrita no item b)
❖ Simplificar o gerenciamento de permissões de usuários.
❖ Organizar dados a serem exportados para outros aplicativos.
Gabarito: Letra B.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
57
2.6 Índice (index)
Vamos supor que seja necessário realizar uma consulta em uma tabela de vendas de uma
grande multinacional com mais de um milhão de tuplas. Uma consulta que precise percorrer
linha por linha procurando um registro pode não ser a forma mais eficiente e, para isso,
foram criados os índices.
De maneira geral, um índice funciona com base no mesmo princípio aplicado aos índices de
livros ou desta aula. Se você está interessado em ler somente um determinado tópico, você
verifica no índice a localização específica deste tópico e vai até elas para ler o conteúdo que
deseja. Do mesmo modo, através de um índice adequado, o sistema de banco de dados pode
percorrer primeiro o índice para descobrir onde obter os dados e, em seguida, acessar
diretamente aos locais para obter os dados necessários.
Os índices são estruturas de acesso auxiliares associados a tabelas, que são utilizados
para agilizar a recuperação de registros em resposta a certas condições de pesquisa.
As estruturas de índice são arquivos adicionais no disco que oferecem caminhos de
acesso secundários, os quais oferecem formas alternativas de acessar os registros sem
afetar o posicionamento físico no arquivo de dados primário no disco.
Os índices permitem o acesso eficiente aos registros com base nos campos de indexação
que são usados para construir o índice. Basicamente, qualquer atributo de uma tabela pode
servir para criar um índice, e múltiplos índices em diferentes atributos podem ser
construídos na mesma tabela.
Um índice permite que o conjunto das linhas de uma tabela que satisfazem determinado
critério seja localizado rapidamente, através de ponteiros associados.
Apesar da importância dos índices para auxiliar na consulta, este não devem ser criados
de maneira ilimitada e sem nenhum cuidado, pois eles apresentam algumas
desvantagens:
▪ Piora a performance em escritas de dados no banco de dados: Toda vez que
uma informação chave for modificada (inserida, alterada, deletada) obrigará a escrita
no índice. E o índice pode ser interpretado como uma tabela adicional escondida no
banco de dados. E se a informação modificada está presente em várias chaves (vários
índices), todos eles deverão ser alterados (em inclusão e remoção, todos sempre são
afetados, ainda que seja possível otimizar para a remoção, sob pena de encarecer o
custo de leitura). A alteração do índice implica em acesso de leitura e escrita nele,
apesar de ser uma operação eficiente se comparada com o acesso direto à tabela, não
deixa de ter um custo adicional.
▪ Aumenta o consumo de espaço para armazenamento do banco de dados
(memória e disco): É claro que esta tabela adicional de chaves de índice vai ocupar
um espaço extra também. Costuma ser um espaço menor que a tabela de dados
original, mas existe um custo extra. Se houver muitos índices é possível que o espaço
seja até maior que a tabela original. Com muito índice fica difícil colocar tudo na
memória.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
58
▪ Aumenta a necessidade de manutenção interna no banco de dados: Isto é um
pouco dependente da implementação, mas é comum que páginas de chaves sejam
abandonadas conforme elas vão sendo alteradas. Além disto o administrador de
banco de dados pode ter mais elementos com que se preocupar.
▪ Pode diminuir a performance de consultas: Não há garantias que todas as
consultas serão mais rápidas com o uso de índices. Como há uma operação adicional
para acesso ao índice antes do acesso aos dados principais, é possível que a soma do
tempo gasto nas operações seja maior que o acesso só ao dado principal mesmo que
o acesso no principal sem índice seja teoricamente menos eficiente. Isto é mais
comum quando o volume de dados é pequeno,mas isto também é verdade em casos
de consultas complexas ou onde uma grande porção dos dados da tabela serão
retornados em qualquer ordem.
APROFUNDANDO!!!
Vamos entender como funciona uma consulta em uma tabela sem e com o uso de índice:
Quando temos uma tabela e executamos uma consulta sobre ela (operação SELECT em
SQL), o SGBD chama a ação “TABLE SCAN”. Essa ação consiste em percorrer toda a
tabela, avaliando cada registro. Caso o registro atenda às condições definidas no filtro, ele
é incluído no conjunto de retorno, senão, é apenas desconsiderado.
A figura a seguir ilustra uma pesquisa desse tipo, filtrando pelo campo “Codigo”, onde seu
valor seja “3”.
Imagina realizar essa busca em uma tabela com milhares ou milhões de linhas, será muito
dispendioso!
Para melhorar essas consultas, utilizamos ÍNDICES, objetos do banco de dados que
facilitam a organização e consulta de uma tabela, “indexando-a” por uma de suas colunas.
Quando criamos um índice em uma coluna, o gerenciador do banco ordena a tabela por essa
coluna e a partir de então os filtros (sobre essa coluna) são feitos através de uma busca
binária.
Na busca binária, a tabela sofre divisões sucessivas até que o registro desejado seja
localizado. Inicialmente a tabela é “dividida” na metade, onde os registros com os menores
valores no campo indexado ficam na parte superior, e os registros com os maiores valores
ficam na parte inferior. O gerenciador verifica então em que parte está contido o valor
pesquisado, se na primeira metade ou na segunda. Isso é facilmente feito comparando o
valor pesquisado com o do registro intermediário. Se o valor pesquisado for maior que o do
registro intermediário, o registro desejado encontra-se na segunda metade, caso contrário,
encontra-se na primeira metade.
CONTINUA...
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
59
CONTINUAÇÃO...
Na figura a seguir temos uma ilustração desse processo:
Por exemplo, se pesquisássemos pelo registro de Codigo = 3, seria avaliado se esse valor é
maior ou menor que 5. Como o valor é menor, indica que o registro procurado se encontra
na primeira metade.
Em seguida, o processo é repetido apenas na metade em que se encontra o registro
pesquisado, dividindo-a na metade e avaliando novamente em que parte se encontra o que
se deseja.
Note que na operação sem o índice, todos os registros seriam lidos e com a utilização de
índices, na primeira divisão já se descarta metade dos registros da tabela. É aí onde está o
segredo da otimização e da agilidade na consulta.
Para fixar o que é o índice!!!
Esquema 19 – Índices.
Ín
d
ic
e
Estrutura de acesso auxiliar.
Utilizados para agilizar a recuperação de registros
Oferecem caminhos de acesso secundários
Uso de ponteiros para a localização dos dados.
Não devem ser criados de maneira ilimitada e sem cuidados.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
60
2.7 Chaves
Uma tabela (ou relação) é constituída de linhas que representam dados relacionados. Essas
linhas devem ser distintas, ou seja, não devem existir duas linhas com os mesmos valores
para todos os seus atributos. Em um banco de dados relacional, as chaves são usadas para
essa distinção. Veremos a seguir, os principais conceitos relacionados as chaves.
Uma superchave é um conjunto de um ou mais atributos que, coletivamente, nos
permitem identificar de forma exclusiva uma tupla na relação. De outro modo, uma
superchave especifica uma restrição de exclusividade de que duas tuplas não podem ter
os mesmos valores para todos os seus atributos.
É importante destacar que cada relação tem pelo menos uma superchave padrão: o conjunto
de todos os seus atributos. Outra consideração importante é que uma superchave pode ter
atributos redundantes ou desnecessários para a identificação única de uma tupla.
Uma chave, por sua vez, é uma superchave com a propriedade adicional de que a
remoção de qualquer dos atributos a faz deixar de ser chave. Assim, uma chave é um
conjunto de um ou mais atributos que, coletivamente, nos permitem identificar de forma
exclusiva uma tupla na relação, sendo que a remoção de qualquer dos seus atributos a faz
deixar de identificar unicamente a tupla na relação.
Em resumo, uma chave apresenta duas propriedades:
❖ Duas tuplas distintas na relação não podem ter valores idênticos para os
atributos na chave;
❖ É uma superchave mínima, ou seja, uma superchave da qual não podemos
remover nenhum atributo sem acabar com a restrição de exclusividade.
Em geral, uma relação pode ter mais de uma chave. Nesse caso, cada uma dessas chaves
possíveis em uma relação é denominada chave candidata. É possível que diversos
conjuntos distintos e atributos possam servir como uma chave candidata, porém, devemos
ter em mente que uma chave candidata é uma superchave mínima e, portanto, não deve
conter atributos desnecessários. Assim, se um atributo matrícula é uma chave candidata, o
conjunto formado por matrícula e nome não é chave candidata, embora seja uma
superchave.
Devemos usar o termo chave primária para designar uma chave candidata que é
escolhida pelo designer de banco de dados como o principal meio de identificar tuplas
dentro de uma relação. As demais são chamadas chaves secundárias ou chaves únicas.
ESCLARECENDO!!!
Pessoal, chamo a atenção para o fato de que todos esses conceitos de chaves que foram
apresentados possuem a propriedade em comum de distinguir as tuplas de uma tabela.
Sendo assim, se a questão fizer a seguinte afirmação:
Uma _________ é um atributo ou conjunto de atributos que permite identificar uma tupla.
O espaço pode ser preenchido por superchave, chave, chave primária, chave candidata,
chave secundária ou chave única. Em qualquer das hipóteses, essa afirmação será correta.
Elas diferem por outras características e não pela capacidade de distinguir uma tupla.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
61
EXEMPLIFICANDO!!!
Para clarificar o entendimento dos diversos conceitos de chave, vejamos o seguinte
exemplo tomando como base a tabela Servidor a seguir.
matricula cpf nome salario
134512 65465465454 João Aprovado dos Santos 13.002,03
251218 12312312312 Maria Concursada Fernandes 5.519,61
124578 45645645645 Paulo Passou Batista 13.002,03
131820 78978978978 Glória Nomeada Rodrigues 5.519,61
112035 32132132132 Eduardo Posse Pordeus 13.002,03
O atributo matricula do servidor é suficiente para distinguir uma tupla de outra. Assim,
matricula é uma superchave. O atributo de salario do servidor, por outro lado, não é
uma superchave, porque vários servidores podem ter o mesmo salario. Outras superchaves
possíveis podem ser {cpf}, {matricula, cpf}, {matricula, nome}, {cpf, nome} ou mesmo o
conjunto formado por todos os atributos da tabela {matricula, cpf, nome, salario}. Dessa
forma, podemos ter superchave com atributos ambíguos ou em excesso.
No exemplo, considerando a propriedade de ser uma superchave mínima, chegamos as
chaves. Na tabela, podemos ter a chave matrícula ou a chave cpf, pois ambos os atributos
identificam unicamente as tuplas e como são únicos não podem ser removidos. Dessa
forma, matricula ou cpf são chaves candidatas da relação. Diferente é o caso de
{matrícula, nome}, pois apesar de servir para identificar exclusivamente as linhas da
tabela, podemos retirar o atributo nome e, ainda assim, a restrição de exclusividade será
mantida.
O designer de banco de dados pode optar, por exemplo, pela escolha de matricula para
ser a chave primária desta relação. Neste caso,cpf será chave secundária ou chave
única.
A escolha da chave primária dentre as chaves candidatas possíveis é um pouco arbitrária,
porém devem-se tomar uma série de cuidados:
❖ Normalmente é melhor escolher uma chave com um único atributo ou
pequeno número de atributos.
❖ A chave primária deve ser escolhida de tal forma que seus valores de atributo
nunca sejam, ou muito raramente, mudados.
❖ Os atributos das tuplas da chave devem possuir valores válidos, ou seja, não
devem permitir valor NULL. Este cuidado na verdade é uma restrição, a
chamada restrição de integridade da entidade.
Agora vamos entender o conceito de chave estrangeira.
Uma chave estrangeira (ou externa) é aquela que permite uma ligação lógica entre duas
tabelas: a chave estrangeira de uma tabela é um atributo ou conjunto de atributos que
se ligam logicamente à chave primária (ou candidata) de outra tabela. Logo, é através
da chave estrangeira que é feita a associação entre as tabelas.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
62
Uma relação (r1) pode incluir entre seus atributos a chave primária (ou candidata) de
outra relação (r2). Este atributo é chamado de chave estrangeira de r1, que referencia r2.
A relação r1 é chamada de relação que referencia, e r2 é chamada de relação referenciada
da chave estrangeira. É importante destacar que r1 e r2 podem ser a mesma relação e,
portanto, podemos ter um auto relacionamento.
A chave estrangeira é usada para manter a consistência das tuplas entre as relações.
Falamos em restrição de integridade referencial que afirma que uma tupla em uma
relação r1 que referencia outra relação r2, precisa se referir a uma tupla existente na relação
r2. De outro modo, uma chave estrangeira de uma relação deve existir como chave na
relação referenciada.
EXEMPLIFICANDO!!!
Vejamos a tabela de Departamento a seguir.
codigo nome_departamento qtd_servidores matricula_chefe
123 Departamento Especial de
Auditoria
10 134512
456 Grupo de Auditoria Operacional 5 251218
789 Gerência de Pregão 3 124578
Esta tabela possui como chave primária o atributo codigo que identifica unicamente cada
linha. Indica também os nomes dos departamentos, a quantidade de servidores e a
matricula do servidor chefe do setor.
Perceba que o atributo matricula do chefe é o mesmo presente na tabela de cadastro dos
servidores. Há aqui, portanto, um atributo que faz referência a uma chave primária (ou
candidata) de outra tabela. Esse atributo matricula_chefe é, por isso, chave estrangeira
da tabela Departamento, que referencia a tabela Servidor.
Vamos consolidar o nosso estudo sobre as chaves com um esquema!!!
Esquema 20 – Chaves.
C
h
a
v
e
c
a
n
d
id
a
ta
Superchave
Conjunto de um ou
mais atributos que,
coletivamente, permitem
identificar de forma
exclusiva uma tupla.
Chave
Superchave com a
propriedade adicional de
que a remoção de
qualquer dos atributos
a faz deixar de ser
chave.
Chave primária
Chave candidata que
é escolhida pelo
designer de banco de
dados como o principal
meio de identificar
tuplas.
Cada uma das chaves
possíveis em uma
relação.
Chave estrangeira
Atributo (s) que são chave
primária ou candidata de
outra relação.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
63
ATENÇÃO!!!
A chave estrangeira de uma tabela deve referenciar a chave primária ou qualquer
chave candidata da outra tabela?
Pessoal, essa é uma daquelas típicas divergências que costumam pegar na hora da prova e
infelizmente não temos uma conclusão bem definida, pois as bancas costumam adotar ambos
os posicionamentos.
Como a chave primária é uma escolha (mais ou menos arbitrária) dentre as chaves
candidatas, basta que a chave estrangeira referencie uma chave CANDIDATA de outra
tabela e não necessariamente uma chave primária. Porém, várias são as questões que dão
como correta a afirmação de que a chave candidata referencia ou deve referenciar a chave
PRIMÁRIA da outra tabela.
Vejamos uma questão que afirma a possibilidade de relacionamento com a chave candidata:
(CESPE - 2008 - STF - Analista Judiciário - Tecnologia da Informação) Chaves
estrangeiras podem ser definidas como sendo um conjunto de atributos pertencentes a um
esquema de relação que constituem chaves primárias ou candidatas em outros esquemas
independentes.
Gabarito: Certo.
E agora uma que fala apenas de chave primária:
(CESPE - 2015 - TJ-DFT - Analista Judiciário - Analista de Sistemas) Em um banco
de dados relacional, a chave estrangeira que existe em uma tabela deve ser chave primária
em outra tabela.
Gabarito: Certo.
E para finalizar, uma questão que restringe à chave primária:
(CESPE - 2010 - TRT - 21ª Região (RN) - Analista Judiciário - Tecnologia da
Informação) Uma chave estrangeira é um atributo ou uma combinação de atributos em
uma relação, cujos valores são necessários para equivaler somente à chave primária de outra
relação.
Gabarito: Errado.
Sugiro os seguintes posicionamentos:
▪ Se a questão afirmar que a chave estrangeira pode referenciar a chave candidata, aceite
como CORRETO.
▪ Se a questão afirmar que a chave estrangeira deve referenciar a chave primária ou
deve fazer parte da chave primária, aceite como CORRETO.
▪ Se a questão for mais explícita e afirmar que a chave estrangeira referencia somente
a chave primária ou indicar que não pode referenciar uma chave candidata, marque
ERRADO.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
64
8- (FGV - 2017 - SEPOG - RO - Analista em Tecnologia da Informação e
Comunicação) A figura a seguir mostra a estrutura das tabelas Produto, Venda e Cliente
pertencentes a um banco de dados de uma empresa comercial.
A tabela Venda contém um registro para cada venda efetuada pela companhia. A fim de
preservar a integridade referencial do banco de dados, assinale a opção que indica a coluna
ou colunas dessa tabela que deveria(m) ser chaves estrangeiras.
a) id_produto.
b) imposto e quantidade.
c) quantidade.
d) id_produto e quantidade.
e) id_cliente e id_produto.
Resolução:
A chave estrangeira de uma tabela é um atributo ou conjunto de atributos que se ligam
logicamente à chave primária (ou candidata) de outra tabela.
Sendo assim, a tabela Vendas possui duas chaves estrangeiras:
id_cliente que a associa com a tabela Cliente.
id_produto que a associa com a tabela Produto.
Gabarito: Letra E.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
65
2.8 Relacionamentos
Um relacionamento é uma associação entre as tabelas. O relacionamento existe quando
um ou mais dados de uma tabela estão relacionados de alguma forma com um ou mais dados
de outra tabela. Existe também relacionamento de dados de uma tabela com outros dados
desta mesma tabela, quando falamos em auto relacionamento.
A chave estrangeira é usada para promover os relacionamentos entre as tabelas. É
importante ressaltar que uma chave estrangeira faz a ligação lógica entre as tabelas,
portanto, o relacionamento entre tabelas não existe fisicamente.
Baseado na cardinalidade dos relacionamentos, isto é, no número de entidades que outra
entidade pode se associar via relacionamento, podemos ter os seguintes tipos de
relacionamento:
❖ Relacionamento um para um (1:1): neste tipo de relacionamento, cada elemento de
uma tabela se relaciona a um único elemento de outra tabela. Uma das tabelas
possui uma chave estrangeira que se liga logicamente achave primária da outra tabela
(modo mais comum, pois é possível criar uma tabela única mesclada ou mesmo criar
uma terceira tabela para fazer o cruzamento das chaves primárias). Este relacionamento
é pouco comum nos modelos de bancos de dados relacionais.
EXEMPLIFICANDO!!!
Vejamos um exemplo de relacionamento 1:1.
Imagine uma escola com um Cadastro de Alunos na tabela Alunos, destes apenas uma
pequena parte participa da Banda da Escola. Por questões de projeto do Banco de Dados,
podemos criar uma Segunda Tabela "Alunos da Banda", a qual se relaciona com a tabela
Alunos através de um relacionamento do tipo Um para Um. Cada aluno somente é
cadastrado uma vez na Tabela Alunos e uma única vez na tabela Alunos da Banda.
Poderíamos utilizar o Campo Matrícula do Aluno como o Campo que relaciona as duas
Tabelas.
Quando fosse necessário buscar as informações tais como nome, endereço, etc, estas
podem ser recuperadas através do relacionamento existente entre as duas tabelas,
evitando, com isso, que a mesma informação (Nome, Endereço, etc) tenha que ser
duplicada nas duas tabelas, inclusive aumentando a probabilidade de erros de digitação.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
66
❖ Relacionamento um para muitos (1:N): cada elemento de uma tabela r1 pode ser
relacionar com mais de um elemento da tabela r2, no entanto cada elemento da
tabela r2 está relacionado a apenas um elemento de r1. Uma das tabelas (o lado um
do relacionamento) possui um campo que é a Chave Primária e a outra tabela (o lado
muitos) se relaciona através de um campo cujos valores relacionados podem se repetir
várias vezes.
EXEMPLIFICANDO!!!
Vejamos um exemplo de relacionamento 1:N.
Nas tabelas apresentadas anteriormente, cada Cliente somente é cadastrado uma única vez
na tabela de Clientes (por isso o campo Código do Cliente, na tabela Clientes, é uma chave
primária, indicando que não podem ser cadastrados dois clientes com o mesmo código),
portanto a tabela Clientes será o lado um do relacionamento. Ao mesmo tempo cada
cliente pode fazer diversos pedidos, por isso que o mesmo Código de Cliente poderá
aparecer várias vezes na tabela Pedidos: tantas vezes quantos forem os pedidos que o
Cliente tiver feito. Por isso que temos um relacionamento do tipo Um para Muitos entre
a tabela Clientes e Pedidos, através do campo Código do Cliente, indicando que um mesmo
Cliente pode realizar diversos (muitos) pedidos.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
67
❖ Relacionamento muitos para muitos (N:M): neste tipo de relacionamento, para cada
valor do campo de uma tabela, pode haver N valores no campo da outra tabela e
vice-versa. O relacionamento N:M (muitos-para-muitos) possui uma característica
diferente dos outros, pois os dados estão diretamente relacionados ao fato (ou ao
relacionamento), e não as entidades (ou tabelas), como observamos nos outros tipos
de relacionamentos vistos anteriormente.
Em bancos de dados relacionais, esta relação consuma-se através de uma tabela de
ligação que faz a correspondência de ambos os lados com relacionamento 1 para N para
cada lado. A chave primária surge de forma natural, e é composta pela junção das chaves
primárias das tabelas interligadas.
EXEMPLIFICANDO!!!
Vejamos um exemplo de relacionamento N:M.
Neste exemplo, são relacionadas as tabelas Produtos e Pedidos através de uma terceira
tabela Detalhes do Pedido. Perceba que as chaves primárias das duas tabelas fazem parte
da tabela criada para o relacionamento. Note também que o próprio fato (ou
relacionamento) Detalhes do Pedido possui atributos próprios como PreçoUnitário,
Quantidade e Desconto.
Este relacionamento demonstra que um Produto pode estar relacionado a diversos Pedidos.
Por outro lado, um mesmo Pedido pode possuir mais de um Produto e, por isso, falamos em
relacionamento muitos para muitos.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
68
Vamos fixar os tipos e características dos relacionamentos com um esquema!!!
Esquema 21 – Relacionamentos.
R
e
la
c
io
n
a
m
e
n
to
s
(a
ss
o
c
ia
ç
ã
o
e
n
tr
e
a
s
ta
b
e
la
s)
(e
x
is
te
m
a
p
en
as
l
o
g
ic
am
en
te
, m
a
s
n
ã
o
f
is
ic
a
m
e
n
te
)
Um para Um
(1:1)
Cada elemento de uma tabela se relaciona
a um único elemento de outra tabela.
Em bancos relacionais, uma das tabelas
possui a chave estrangeira. Pode-se, porém,
mesclar as entidades em uma única tabela ou
criar uma terceira tabela para cruzar as
chaves primárias destas.
Um para Muitos
(1:N)
Cada elemento de uma tabela r1 pode ser
relacionar com mais de um elemento da
tabela r2, no entanto cada elemento da
tabela r2 está relacionado a apenas um
elemento de r1.
Em bancos relacionais, a tabela do lado N
da relação possui a chave estrangeira.
Muitos para
Muitos
(N:M)
Para cada valor do campo de uma tabela,
pode haver N valores no campo da outra
tabela e vice-versa.
Os dados estão diretamente relacionados
ao fato (ou ao relacionamento), e não as
entidades (ou tabelas).
Em bancos relacionais, esta relação consuma-
se através de uma tabela de ligação que
pode possuir atributos próprios.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
69
9- (FGV - 2018 - Prefeitura de Niterói - RJ - Analista de Políticas Públicas e
Gestão Governamental - Gestão de Tecnologia) Considere duas tabelas: T1, com
atributos A e B, e T2, com atributos C e D. Nas duas tabelas as chaves primárias foram
definidas pelos atributos A e C, respectivamente. Não há outras chaves nessas tabelas além
das chaves primárias.
Na tabela T2, o atributo D é uma chave estrangeira que referencia a tabela T1. Não há
outras chaves estrangeiras nessas tabelas. As tabelas T1 e T2 estão perfeitamente
normalizadas.
Sabe-se que agora deve haver um relacionamento 1:1 entre essas duas tabelas.
Assinale a opção que apresenta a providência necessária para que esse requisito seja
atendido, de forma que o grau de normalização da tabela seja mantido.
a) Criar uma terceira tabela, com atributos A e C como chaves estrangeiras para T1 e T2,
sem alterar T1 e T2.
b) Definir o atributo B como unique em T1.
c) Alterar T2, definindo o atributo D como chave primária no lugar de C.
d) Definir o atributo D como unique em T2.
e) Incluir o atributo D na chave primária de T2.
Resolução:
Vamos analisar as tabelas construídas:
T1 possui os atributos A e B, sendo A sua chave primária. Logo T1 {A, B}.
T2 possui os atributos C e D, sendo A sua chave primária. Logo T2 {C, D}.
Como o atributo D de T2 referencia a tabela T1, logo irá referenciar A que é a chave desta
tabela.
A grande questão é que se deseja um relacionamento 1:1 entre essas tabelas. Por isso, é
necessário garantir que não haverá valores iguais para o atributo D em mais de um registro
da tabela T2. Para isso, é possível definir o atributo D como único (UNIQUE).
Se o atributo D permitisse a repetição, não haveria nenhum problema lógico no modelo,
mas não se implementaria um relacionamento 1:1, mas sim 1:N.
Suponha uma tabela T1, com os seguintes valores {(1, 10), (2, 20), (3, 30)}. E uma tabela
T2 com os valores {(11, 1), (12, 2), (13, 3)}. Nesse caso, cada registro da tabela T2 só estaria
relacionado a um único registro da tabela T1 e, portanto, relacionamento 1:1. Por sua vez,
se existissem dois registros em T2 com valores iguais para D como em {(11, 1), (12, 2), (13,
2)}, teríamosum relacionamento 1:N, pois neste exemplo, os registros 12 e 13 da tabela t2
estariam sendo associados a um único registro da tabela T1 (aquele de chave 2).
Gabarito: Letra D.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
70
2.9 Normalização
Um dos objetivos da abordagem de banco de dados é reduzir a redundância dos dados,
evitando assim que dados duplicados sejam armazenados sem necessidade. Um dos modos
de controlar a redundância é aplicar a normalização das tabelas.
A normalização de dados pode ser considerada um processo de analisar os esquemas de
relação dados com base em suas dependências funcionais e chaves primárias para conseguir
as propriedades desejadas e a (1) minimização de redundância e (2) a minimização de
anomalias de inserção, exclusão e atualização.
Para normalizar o banco de dados, deve-se examinar as colunas (atributos) de uma entidade
e as relações entre entidades (tabelas), com o objetivo de se evitar anomalias observadas na
inclusão, exclusão e alteração de registros. Para adequar o banco de dados, é necessário
avaliar com base em cinco regras (seis com a de boyce-codd), que recebem o nome de
formas normais. Essas correspondem a um conjunto de regras de simplificação e
adequação de tabelas.
A forma normal de uma relação refere-se à condição de forma normal mais alta a que
ela atende e, portanto, indica o grau ao qual ela foi normalizada.
Vamos estudar a seguir as formas normais.
2.9.1 Primeira Forma Normal (1FN)
Uma tabela está na Primeira Forma Normal (1FN) se, e somente se, todos os valores
das colunas (todos os atributos) forem atômicos. Em outras palavras, uma tabela para
estar na 1FN não pode possuir atributos multivalorados nem compostos.
▪ Compostos: podem ser divididos em subpartes menores, que representam
atributos mais básicos. O valor é a concatenação de seus componentes atributos
simples. Podem formar hierarquia. Ex.: endereço completo com rua, número e
cep.
▪ Multivalorado: possui um conjunto de valores para a mesma entidade. Um
atributo multivalorado pode possuir um limite mínimo e máximo para restringir
o número de valores permitidos. Ex.: telefone que aceita mais de um número.
Vale ressaltar que a 1FN é considerada parte da definição formal de uma relação no
modelo relacional básico. Assim, só é considerado de fato um banco de dados
relacional se as tabelas estiverem ao menos na primeira forma normal.
Uma das consequências de um modelo não estar na 1FN é a existência de tabelas
aninhadas. Como uma tabela que não está na 1FN pode conter atributos compostos e
multivalorados, então esses atributos podem ser considerados verdadeiras tabelas dentro
da tabela principal. Por exemplo, um atributo composto endereço formado por cidade,
bairro, rua, número e cep pode ser facilmente compreendido como uma tabela aninhada
formada por vários atributos atômicos.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
71
EXEMPLIFICANDO!!!
Para os estudos das formas normais vamos utilizar exemplos de tabelas que não se
encontram nas formas normais estudadas e como elas podem ser transformadas para se
adaptar as regras.
Assim, vamos tomar como exemplo a Tabela DEPARTAMENTO a seguir que não está
em nenhuma forma normal, pois sequer está na 1FN.
A chave primária da tabela DEPARTAMENTO é Dnumero.
Note que o atributo Dlocal é multivalorado, pois possui uma lista de valores para a mesma
tupla. Perceba, por exemplo, que a primeira linha possui locais diversos como “Santo
André”, “Itu” e “São Paulo”. Assim, está ferindo a 1FN, pois como vimos, para uma tabela
está na 1FN, não pode ter atributos compostos nem multivalorados.
Para deixar essa tabela na 1FN, temos então que definir somente atributos atômicos.
Podemos nesse caso simplesmente desmembrar os atributos multivalorados de Dlocal em
mais de uma linha, repetindo as demais informações. Dessa forma teremos:
Perceba que agora todas as colunas contêm apenas valores atômicos e, portanto, essa tabela
está na 1FN.
Um conceito relevante para o entendimento das próximas formas normais é o de
dependência funcional, que é um relacionamento entre dois ou mais atributos de forma
que o valor de um atributo identifique o valor para cada um dos outros atributos, ou seja,
um atributo está relacionado a outro. A dependência funcional pode ser ilustrada por →.
Assim, em A → B, temos que “A determina B” ou “B é dependente (funcionalmente) de
A”, isto é, o valor de B pode ser descoberto sabendo o valor de A.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
72
2.9.2 Segunda Forma Normal (2FN)
Uma relação está na Segunda Forma Normal (2FN) se, e somente se, estiver na 1FN e
cada atributo não-chave for dependente da chave primária (ou candidata) inteira, isto
é, cada atributo não-chave não poderá ser dependente de apenas parte da chave.
Trata-se de uma dependência funcional total.
Chamo a atenção que não basta a dependência total para que uma tabela esteja na 2FN, pois
ela deve estar antes de tudo na 1FN. Além disso, caso a chave primária da tabela seja
formada por apenas um atributo, estando a tabela na 1FN, estará automaticamente na 2FN.
EXEMPLIFICANDO!!!
Vamos utilizar a Tabela FUNC_PROJ que já está na 1FN. Nestes exemplos, DF significa
Dependência Funcional.
A chave primária desta tabela é formada por {Cpf, Projnumero}.
Note, que embora essa tabela esteja na 1FN, os atributos Projnome e Projlocal dependem
apenas de Projnumero, isto é, apenas de parte da chave primária. Do mesmo modo, temos
o atributo Fnome que depende apenas do Cpf.
Para deixar essa tabela na 2FN, temos que fazer com que todos os atributos não chave
dependam da chave inteira. Para este caso, teremos que separar os atributos em três tabelas:
Agora, todos os atributos não chave dependem das chaves inteiras das respectivas tabelas.
Note que nesse caso, a tabela FP1 possui como chave os atributos {Cpf, Projnumero},
sendo que o atributo Horas depende da totalidade dessa chave. Do mesmo modo, na tabela
FP2, o atributo Fnome depende da totalidade da chave {Cpf} e na tabela FP3, os atributos
Projnome e Projlocal dependem da totalidade da chave Projnumero.
Ressalto que as tabelas FP2 e FP3 possuem somente um atributo como chave, logo, como
estão na 1FN, também estão na 2FN.
Essas tabelas estão na 2FN, pois todos os atributos não chave dependem totalmente de uma
chave primária (ou candidata).
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
73
2.9.3 Terceira Forma Normal (3FN)
Uma relação está na Terceira Forma Normal (3FN) se estiver na 2FN e cada atributo
não chave não possuir dependência transitiva, para cada chave candidata. Todos os
atributos dessa tabela devem ser independentes uns dos outros, ao mesmo tempo que
devem ser dependentes exclusivamente da chave primária da tabela.
EXEMPLIFICANDO!!!
Vamos agora utilizar a tabela FUNC_DEP que já está na 2FN (perceba que aqui não há
dúvida, pois a chave primária é formada por um único atributo {Cpf}.
Note que nesta tabela, temos uma dependência transitiva entre alguns atributos, pois
Dnome e Cpf_gerente dependem do atributo não chave Dnumero, que, por sua vez,
depende da chave {Cpf}. Esquematicamente temos (→ indica determina):
Se Cpf → Dnumero
E Dnumero → Dnome
Logo, Cpf → Dnome
Assim, Dnome depende transitivamente de Cpf e não somente diretamente, ferindo a 3FN.
Para passar para a 3FN, podemos dividir a tabela em duas outras:Agora, todos os atributos não chave dependem exclusivamente das chaves primárias das
respectivas tabelas, sem nenhuma dependência transitiva. Note que nesse caso, a tabela
DF1 possui a chave {Cpf} e todos os atributos dependem exclusivamente desta chave. O
mesmo ocorre para a tabela DF2, em que os atributos Dnome e Cpf_gerente dependem
diretamente de Dnumero.
Essas tabelas estão na 3FN, pois todos os atributos não chave dependem exclusivamente
de uma chave primária.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
74
As formas normais 1FN, 2FN e 3FN foram as definidas originalmente por Edgar F. Codd,
sendo as mais importantes para resolver as questões de prova. Contudo, hoje existem outras
formas normais aceitas como a FNBC, a 4FN e 5FN.
2.9.4 Forma Normal de Boyce-Codd (FNBC)
Uma tabela está na Forma Normal de Boyce-Codd (FNBC ou BCNF) se, e somente se,
estiver na 3FN e todo determinante é chave candidata. Dessa forma, não há
dependências entre atributos não chave. É considerada uma variação forte da 3FN.
EXEMPLIFICANDO!!!
Vamos ver o seguinte exemplo de passagem para a forma normal de boyce codd. Veja a
tabela Lotes1A a seguir:
Suponha que tenhamos milhares de lotes na relação, mas que eles sejam de apenas duas
cidades: Ribeirão Preto e Analândia. Suponha também que os tamanhos de lote em Ribeirão
Preto sejam de apenas 0,5, 0,6, 0,7, 0,8, 0,9 e 1,0 hectare, enquanto os tamanhos de lotes em
Analânda sejam restritos a 1,1, 1,2, ..., 1,9 e 2,0 hectares. Isso significa que Area determina
Nome_cidade. Como Area não é uma chave candidata, então esta tabela não está na FNBC.
Ao passar para a forma normal de boyce-codd, separamos a tabela LOTES1A em duas para
que agora a área, que é um determinante, seja chave de uma tabela.
Agora, temos somente chaves como determinantes. Esquematicamente:
Em LOTES1AX:
Propriedade_num → Area
Propriedade_num → Num_lote
Em LOTES1AY:
Area → Nome_cidade
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
75
2.9.5 Quarta Forma Normal (4FN)
Uma tabela está na Quarta Forma Normal (4FN) se, e somente se, está na 3FN e não
possui dependência multivalorada.
▪ Dependência multivalorada: dependência entre conjuntos de atributos.
EXEMPLIFICANDO!!!
Vamos ver o seguinte exemplo de passagem para quarta forma normal. Veja a tabela
Revendas a seguir preenchida com dados de representantes, clientes e produtos:
Conforme a figura acima, temos uma tabela relacionando representante, cliente e produto.
Um representante pode vender para vários clientes e vários produtos. Isso gera uma
grande redundância nas informações. Para evitar essa repetição de informações, devemos
dividir a tabela:
Agora, não há dependências entre conjuntos de atributos. Logo, as duas tabelas estão na
quarta forma normal.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
76
2.9.6 Quinta Forma Normal (5FN)
Uma tabela está na Quinta forma normal (5FN) se, e somente se, está na 4FN e não
possui dependência de junção. Na 5FN, o conteúdo de um registro não pode ser
reconstruído (junção) a partir de outros registros menores, extraídos do registro
principal.
▪ Dependência de junção: dependência entre conjuntos de atributos, com mais
de dois atributos.
EXEMPLIFICANDO!!!
Suponha que houve uma divisão de uma tabela em duas tabelas menores, da seguinte forma:
Se, por algum motivo, eu tiver que reconstruir a tabela Revendas sem ter todos os seus
dados, isso não será possível somente com os dados das tabelas menores, pois não há
representação de que vendas foram realizados a que clientes. Logo, há uma dependência de
junção.
Para resolver esse problema, eu preciso de uma terceira tabela para conseguir reconstruir
a tabela maior. Assim, eu precisarei de uma tabela auxiliar que me apresente que produtos
foram vendidos a que clientes.
Agora sim, como base nessas três tabelas menores, eu consigo reconstruir a tabela maior.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
77
2.9.7 Identificando as formas normais
Pessoal, muitas são as questões literais acerca das características das formas normais.
Contudo, algumas questões pedem para que você identifique a forma normal de uma tabela.
Para auxiliar nesse processo, vou apresentar a seguir alguns exemplos de como realizar
essa identificação.
EXEMPLIFICANDO!!!
Dada a tabela a seguir e sabendo que sua chave primária é composta por OAB_Advogado e
ID_Cliente, vamos avaliar sua forma normal:
Para avaliar em que forma normal essa tabela está, vamos analisar uma a uma das formas
normais, isto é, da primeira à quinta para verificar se ela descumpre alguma. Se ela
descumprir uma específica, então, a tabela está na forma normal imediatamente anterior.
Vamos lá então:
1ª Forma Normal: a tabela possui somente atributos atômicos, isto é, não possui nenhum
atributo multivalorado ou composto. Logo, está na 1FN.
2ª Forma Normal: dada a chave composta {OAB_Advogado, ID_Cliente}, nenhum dos
atributos não chave depende de apenas parte dessa chave, isto é, não há dependência parcial.
O valor da causa, o percentual de honorário e o valor total do honorário dependem de ambos
os atributos da chave, não sendo relacionado a somente um deles. Isto é, eles não são
atributos que dependem apenas do advogado e nem apenas do cliente, mas da junção desses
dois em um processo.
3ª Forma Normal: o fato de possuir um campo de cálculo fere a 3FN, pois teremos a
existência de um atributo que não depende exclusivamente da chave primária da tabela.
Nesse caso, Valor_Total_Honorário depende dos atributos Valor_da_Causa e
Percentual_do_Honorário, que não são chaves.
Dessa forma, ficamos com, no máximo, a Segunda Forma Normal para esta relação.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
78
EXEMPLIFICANDO!!!
Dada a tabela a seguir e sabendo que sua chave primária é composta por Aluno e Disciplina,
vamos avaliar sua forma normal:
Vamos analisar cada uma das formas normais:
1ª Forma Normal: a tabela possui somente atributos atômicos, isto é, não possui nenhum
atributo multivalorado ou composto. Logo, está na 1FN.
2ª Forma Normal: somente existe um atributo não chave: o atributo Professor. Este
atributo depende de todos os atributos da chave, isto é, de Aluno e de Disciplina. Logo, eu
não tenho dependência parcial e, portanto, a tabela está na 2FN.
3ª Forma Normal: se eu só tenho um atributo não chave, não é possível ter uma
dependência transitiva. O atributo Professor depende diretamente da chave {Aluno,
Disciplina}. Logo, a tabela está na 3FN.
FNBC: todo determinante deve ser chave, então vejamos quem são os determinantes da
tabela:
{Aluno, Disciplina} -> Professor
Professor -> Disciplina.
Logo, há um determinante que não é chave da tabela, pois Professor determina a Disciplina.
Logo, esta tabela não está na FNBC.
Dessa forma, ficamos com, no máximo, a Terceira Forma Normal para esta relação.
EXEMPLIFICANDO!!!
A tabela a seguir não está nem na primeira forma normal, pois possui atributos compostos
e multivalorados. Observe-a:
Perceba que “Telefone” é multivalorado, pois aceita mais de um valor. Além disso, Endereço
é composto, sendo claramente representando como um conjunto de vários componentes
menores (Rua, número, cidadee CEP).
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
79
2.9.8 Resumo das formas normais
Esquema 22 – Formas normais.
10- (FGV - 2021 - IMBEL - Supervisor - Tecnologia de Informação) Na teoria de
projetos de bancos de dados, o processo de normalização de uma tabela é feito a partir da
identificação
a) das chaves estrangeiras.
b) das dependências funcionais.
c) das junções que serão necessárias.
d) dos tipos de dados em cada coluna.
e) dos relacionamentos entre as tabelas.
Resolução:
Um conceito relevante para o entendimento formas normais é o de dependência funcional,
que é um relacionamento entre dois ou mais atributos de forma que o valor de um atributo
identifique o valor para cada um dos outros atributos, ou seja, um atributo está relacionado
a outro. A dependência funcional pode ser ilustrada por →. Assim, em A → B, temos que
“A determina B” ou “B é dependente (funcionalmente) de A”, isto é, o valor de B pode
ser descoberto sabendo o valor de A.
Gabarito: Letra B.
•Todos os atributos são atômicos.
•Não possui atributos multivalorados nem compostos.
1FN
•Está na 1FN.
•Cada atributo não-chave é dependente da chave primária (ou candidata) inteira.
(Dependência funcional total)
•Cada atributo não-chave não pode ser dependente de apenas parte da chave.
2FN
•Está na 2FN.
•Cada atributo não chave não possui dependência transitiva, para cada chave
candidata.
•Todos os atributos dependem exclusivamente da chave primária da tabela.
3FN
•Está na 3FN (variação forte da 3FN).
•Todo determinante é chave candidata.
•Não há dependências entre atributos não chave.
FNBC
•Está na 3FN.
•Não possui dependência multivalorada.
4FN
•Está na 4FN.
•Não possui dependência de junção.
5FN
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
80
11- (FGV - 2017 - IBGE - Analista Censitário - Análise de Sistemas - Suporte à
Produção) Uma empresa possui informações sobre suas vendas em uma tabela, contendo
as seguintes colunas:
cliente, vendedor, produto
Para cada produto, cada cliente tem contato apenas com um vendedor. Cada vendedor
vende apenas um produto. Um produto pode ser vendido por vários vendedores.
A chave primária é o conjunto (cliente, vendedor). Em termos de normalização de dados, e
considerando-se a maior normalização possível, é correto dizer que essa tabela encontra-se
na:
a) primeira forma normal;
b) segunda forma normal;
c) terceira forma normal;
d) forma normal de Boyce-Codd;
e) quarta forma normal.
Resolução:
Vamos analisar as formas normais para esta tabela:
1ª Forma Normal: a tabela não possui atributos compostos ou multivalorados. Ao menos,
não nos foi informado isso.
2ª Forma Normal: a chave primária é formada pelos atributos cliente e vendedor, contudo
produto depende apenas de vendedor. Sendo, assim temos uma dependência parcial e, logo,
a tabela não se encontra na 2FN.
Gabarito: Letra A.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
81
2.9.9 TEMA AVANÇADO: análise de dependências e formas normais
Pessoal, um tema um pouco menos comum em provas, mas que é abordado vez por outra é
o de análise de dependências funcionais, bem como a repercussão dessa análise na definição
de uma forma normal.
DICA DO PROFESSOR!!!
A Fundação Getúlio Vargas é, principalmente, a banca que costuma trazer questões sobre
esses temas. Sendo assim, vou trazer uma discussão sobre isso, mas se você não estiver
estudando para concurso dessa banca, sugiro deixar esse tópico de lado.
Uma dependência funcional é um relacionamento entre dois ou mais atributos de forma
que o valor de um atributo identifique o valor para cada um dos outros atributos, ou seja,
um atributo está relacionado a outro. A dependência funcional pode ser ilustrada por →.
Assim, em A → B, temos que “A determina B” ou “B é dependente (funcionalmente) de
A”, isto é, o valor de B pode ser descoberto sabendo o valor de A.
EXEMPLIFICANDO!!!
Em uma tabela com os atributos CPF, nome e salário, temos as seguintes dependências
funcionais:
CPF → nome; (a partir do CPF podemos facilmente descobrir o nome).
CPF → salário; (a partir do CPF podemos facilmente descobrir o salário).
CPF → nome, salário; (a partir do CPF podemos facilmente descobrir o nome e o salário).
Por outro lado:
salario → nome não é uma dependência válida. (não podemos descobrir o nome apenas com
o valor do salário, pois inclusive podemos ter vários nomes para um mesmo salário).
Sabendo-se o que é uma dependência funcional, temos que saber como identificar suas
influências nas principais formas normais, isto é, da 1FN a FNBC. Vejamos então:
▪ Primeira Forma Normal (1FN): não é baseada em dependência funcional. Essa
forma normal é baseada na presença somente de atributos atômicos, então devem
ser analisados os atributos em separado e não a relação entre eles.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
82
▪ Segunda Forma Normal (2FN): não podemos ter dependências parciais. Se A,
B forem a chave composta de uma tabela, então não podemos ter nenhum atributo
não chave que dependa somente de A ou somente de B.
EXEMPLIFICANDO!!!
Dada a seguinte estrutura de tabela, cuja chave seja {nro-pedido, nro-peça}:
pedido (nro-pedido, data, nro-peça, descrição, qtdade_comprada, preço_cotado)
E as seguintes dependências funcionais:
nro-pedido → data
nro-peça → descrição
{nro-pedido, nro-peça} → {qtdade_comprada, preço_cotado}
Perceba que, nesse exemplo, temos atributos que dependem apenas de parte da
chave. Data depende apenas do nro-pedido e descrição apenas do nro-peça. Assim,
essa relação não está na 2FN.
A solução para resolver isso é separar as partes da chave em tabelas diferentes:
pedido (nro-pedido, data)
peça (nro_peça, descrição)
pedido_peça (nro_pedido, nro_peça, qtdade_comprada, preço_cotado)
▪ Terceira Forma Normal (3FN): não podemos ter dependências transitivas. Não
podemos então ter A → B, B → C e A → C, desde que C não seja chave candidata
ou subconjunto de qualquer chave.
EXEMPLIFICANDO!!!
Dada a seguinte estrutura de tabelas, que tem como chave primária SSN (Social
Security Number):
emp_dept (enome, ssn, datanasc, endereco, dnumero, dnome, degerssn
E as seguintes dependências funcionais:
ssn → {enome, datanasc, endereco, dnumero}
dnumero → {dnome, dgerssn}
CONTINUA...
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
83
CONTINUAÇÃO...
Perceba que temos uma dependência transitiva, pois dnumero não é chave, mas
determina dnome e dgerssn. Como dnumero depende de ssn, então dnome e dgerssn
também dependem de ssn, mas indiretamente.
A solução para resolver isso é remover da tabela os atributos que dependem de um
determinante não chave. Assim:
ED1 (enome, ssn, datanasc, endereco, dnumero)
ED2 (dnumero, dnome, dgerssn)
▪ Forma Normal de Boyce-Codd: todo determinante deve ser chave. Para cada
dependência funcional X → A, X é uma superchave.
EXEMPLIFICANDO!!!
Dada a estrutura de tabela, sendo num_propriedade a chave primária e
{municipio_nome, num_lote} uma chave candidata.
LOTES1A (num_propriedade, município_nome, num_lote, area)
Supondo que há milhares de lotes, mas apenas nos municípios de Uberlândia e
Araguari, sendo que:
– em Uberlândia só existem lotes com 100, 200 e 300 m2
– em Araguari só existem lotes com150, 250 e 350 m2
Nesse caso, temos uma dependência em que area → municipio_nome, pois sabendo a
área, podemos descobrir do município. Temos um determinante que não é chave.
Para resolver isso, precisamos colocar esse determinante como chave, logo,
desmembrar a tabela:
LOTES1AX (num_propriedade, area, num_lote)
LOTES1AY (area, municipio_nome)
DICA DO PROFESSOR!!!
A questão costuma listar um conjunto de dependências funcionais e perguntar se essas
dependências estão respeitando determinada forma normal ou pedir para você definir uma
estrutura de tabela que respeite uma forma normal, então fique atento as regras que define
cada das FNs.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
84
12- (FGV - 2018 - AL-RO - Analista Legislativo - Banco de Dados) Considere uma
tabela relacional R com atributos A, B, C, D, e as seguintes dependências funcionais.
A → B
B → C
A → D
B → A
Estabelecendo-se que os atributos sublinhados identificam chaves, primárias ou candidatas,
o esquema correto para que se obtenha um projeto normalizado até a forma normal Boyce-
Codd, é
a) R (A, B, C, D)
b) R (A, B, C, D)
c) R (A, B, C, D)
d) R1 (A, C, D)
R2 (A, B)
e) R1 (A, B, D)
R2 (B, C)
Resolução:
Uma tabela está na Forma Normal de Boyce-Codd (FNBC ou BCNF) se, e somente se,
estiver na 3FN e todo determinante é chave candidata. Dessa forma, não há
dependências entre atributos não chave. É considerada uma variação forte da 3FN.
Logo, dadas as dependências funcionais:
A → B
B → C
A → D
B → A
Temos que A e B são determinantes e, portanto, devem ser chaves da tabela. Logo,
a) Correto: R (A, B, C, D) A e B são determinantes e chaves.
b) Incorreto: R (A, B, C, D) B é um determinante e, portanto, deveria ser chave.
c) Incorreto: (A, B, C, D) A é um determinante e, portanto, deveria ser chave.
d) Incorreto: R1 (A, C, D)
R2 (A, B) B é um determinante e, portanto, deveria ser chave.
e) Incorreto: R1 (A, B, D)
R2 (B, C) B é determinante de C e A e não somente de C.
Gabarito: Letra A.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
85
13- (FGV - 2017 - IBGE - Analista Censitário - Análise de Sistemas -
Desenvolvimento de Aplicações) Em projetos de Banco de Dados Relacional, a
dependência funcional representada por
A→B e B→C, então A→C
é a base para caracterizar que uma relação está na:
a) primeira, mas não na segunda forma normal;
b) primeira e na segunda forma normal;
c) segunda e na terceira forma normal;
d) terceira forma normal, mas não na forma normal de Boyce/Codd;
e) terceira forma normal e na forma normal de Boyce/Codd.
Resolução:
Vamos avaliar quais as formas normais são cumpridas:
1ª Forma Normal: não temos nenhuma informação sobre a presença de atributos
multivalorados ou compostos, então partimos do pressuposto que cumpre a 1FN, pois esta
faz parte da própria definição do modelo relacional.
2ª Forma Normal: A determina todos os outros atributos e, portanto, é a nossa chave
primária. Sendo assim, não há dependência parcial, pois a chave é formada por um único
atributo. B e C dependem da totalidade da chave (A).
3ª Forma Normal: a representação é justamente de uma dependência transitiva, o que fere
a 3FN. Logo, a tabela não está na 3FN.
Gabarito: Letra B.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
86
2.9.10 TEMA AVANÇADO: axiomas das dependências funcionais
Um assunto que costuma ser cobrado pouco, mas que pode aparecer na sua prova, é o de
axiomas ou regras de inferência das dependências funcionais.
DICA DO PROFESSOR!!!
A Fundação Getúlio Vargas é, principalmente, a banca que costuma trazer questões sobre
esses temas. Sendo assim, vou trazer uma discussão sobre isso, mas se você não estiver
estudando para concurso dessa banca, sugiro deixar esse tópico de lado.
Vamos verificar quais são as regras de inferência ou axiomas das dependências funcionais.
As três regras básicas, chamadas Axiomas de Armstrong, são:
▪ Reflexibilidade: se X contém Y, então X → Y. (dependência funcional trivial)
o Exemplo:
Se X é tipo_embarcacao, modelo e Y é tipo_embarcacao,
Então tipo_embarcacao, modelo → tipo_embarcacao.
▪ Expansibilidade ou aumentativa: se X → Y, então XZ → YZ para qualquer Z.
o Exemplo:
Se CPF → endereço,
Então CPF, nome → endereço, nome.
▪ Transitividade: se X → Y, e Y → Z então X → Z.
o Exemplo:
Se CPF → código-cidade e código-cidade → nome-cidade
Então CPF → nome-cidade.
Como consequências desses axiomas, temos as seguintes regras adicionais:
▪ União ao aditiva: se X → Y, X → Z então X → YZ.
o Exemplo:
Se CPF → nome e CPF → endereco
Então CPF → nome, endereco
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
87
▪ Decomposição ou separação: Se X → YZ, então X → Y e X → Z.
o Exemplo:
Se CPF → nome, endereço
Então CPF → nome e CPF → endereço
Podemos citar ainda outras regras básicas ou axiomas:
▪ Pseudo-Transitividade: se X → Y e YZ → W, então XZ → W.
o Exemplo:
Se CPF → código-funcionário e código-funcionário, mês → salário-
funcionário
Então CPF, mês → salário-funcionário.
▪ Acumulação: Se X → Y, então XZ → Y.
o Exemplo:
Se CPF → endereco,
Então CPF, nome → endereco.
▪ Unicidade: Se a: X → Y e b: X →Y; a=b.
Em resumo:
Axioma Descrição
Reflexibilidade Se X contém Y, então X → Y.
Expansibilidade ou aumentativa Se X → Y, então XZ → YZ para qualquer Z.
Transitividade Se X → Y, e Y → Z então X → Z.
União ao aditiva Se X → Y, X → Z então X → YZ.
Decomposição ou separação Se X → YZ, então X → Y e X → Z.
Pseudo-Transitividade X → Y e YZ → W, então XZ → W
Acumulação Se X → Y, então XZ → Y
Unicidade Se a: X → Y e b: X →Y; a=b
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
88
14- (FGV - 2018 - AL-RO - Analista Legislativo - Banco de Dados) No âmbito da
teoria de projeto de bancos de dados relacionais, considere as seguintes dependências
funcionais para os atributos A, B, C, D.
A → B
B → C
C → D
Nesse caso, a dependência A → C poderia ser deduzida pelo axioma da
a) aumentabilidade.
b) completude.
c) reflexividade.
d) transitividade.
e) união.
Resolução:
A regra descrita é o axioma da transitividade.
Os axiomas ou regras de inferência de dependências funcionais são:
Axioma Descrição
Reflexibilidade Se X contém Y, então X → Y.
Expansibilidade ou aumentativa Se X → Y, então XZ → YZ para qualquer Z.
Transitividade Se X → Y, e Y → Z então X → Z.
União ao aditiva Se X → Y, X → Z então X → YZ.
Decomposição ou separação Se X → YZ, então X → Y e X → Z.
Pseudo-Transitividade X → Y e YZ → W, então XZ → W
Acumulação Se X → Y, então XZ → Y
Unicidade Se a: X → Y e b: X →Y; a=b
Gabarito: Letra D.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
89
15- (FGV - 2014 - TJ-GO - Analista Judiciário - Análise de Sistemas -
Desenvolvimento) No âmbito do projeto de bancos de dados, os Axiomas de Armstrong
têm um importante papel porque permitem a derivação de dependências funcionais. Uma
derivação que NÃO é válida é:
a) se X → Y e Y → Z então X→Z
b) se X → Y então XZ →YZ
c) se Y⊆ X então X → Y
d) se X→Y e X→Z então X →YZ
e) se X → Y e Z → Y então X →YZResolução:
Vejamos a qual axioma se referem os itens:
a) Correto: axioma da transitividade.
b) Correto: axioma da expansibilidade.
c) Correto: axioma da reflexibilidade.
d) Correto: axioma da união.
e) Incorreto: não há regra nesse sentido.
Os axiomas ou regras de inferência de dependências funcionais são:
Axioma Descrição
Reflexibilidade Se X contém Y, então X → Y.
Expansibilidade ou aumentativa Se X → Y, então XZ → YZ para qualquer Z.
Transitividade Se X → Y, e Y → Z então X → Z.
União ao aditiva Se X → Y, X → Z então X → YZ.
Decomposição ou separação Se X → YZ, então X → Y e X → Z.
Pseudo-Transitividade X → Y e YZ → W, então XZ → W
Acumulação Se X → Y, então XZ → Y
Unicidade Se a: X → Y e b: X →Y; a=b
Gabarito: Letra E.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
90
2.9.11 TEMA AVANÇADO: modelos matemáticos para as formas normais
Galera, um tema avançado em provas, mas que pode cair em algumas questões é o que trata
dos modelos ou descrições matemáticas para as formas normais.
DICA DO PROFESSOR!!!
A Fundação Getúlio Vargas é, principalmente, a banca que costuma trazer questões sobre
esses temas. Nesse caso, eu sugiro que se você for fazer prova dessa banca, então dê uma
olhada nas descrições matemáticas. Eu não vou explicar o seu funcionamento, pois isso é
totalmente improdutivo e isso não cai nesse nível, mas vou citar as descrições.
A seguir apresento as descrições matemáticas ou formais para as formas normais:
▪ Primeira Forma Normal (1FN): não possui uma definição formal ou matemática
específica. Sabemos que o domínio dos atributos deve incluir apenas valores atômicos.
▪ Segunda Forma Normal (2FN): um esquema de relação R está na segunda forma
normal (2FN) se cada atributo não principal A em R não for parcialmente dependente
de qualquer chave de R.
▪ Terceira Forma Normal (3FN): um esquema de relação R está na terceira forma
normal (3FN) se toda vez que uma dependência funcional não trivial X → A se
mantiver em R, ou (a) X for uma superchave de R ou (b) A for um atributo principal
de R.
▪ Forma Normal de Boyce Codd (FNBC): um esquema de relação R está na FNBC se
toda vez que uma dependência funcional não trivial X → A se mantiver em R, então
X é uma superchave de R.
▪ Quarta Forma Normal (4FN): Um esquema de relação R está na 4FN com relação
a um conjunto de dependências F (que inclui dependências funcionais e dependências
multivaloradas) se, para cada dependência multivalorada não trivial X --> Y em F, X
é uma superchave para R.
▪ Quinta Forma Normal (5FN): Um esquema de relação R está na quinta forma
normal (5FN) com relação a um conjunto F de dependências funcionais,
multivaloradas e de junção se, para cada, dependência de junção não trivial DJ (R1,
R2, ..., Rn) em F (ou seja, implicada por F), cada Ri é uma superchave de R.
ATENÇÃO!!!
Coisa de louco né? Pois é. Por isso falo que não vale a pena entender isso. Seriam páginas
para explicar isso e, bem provável, que ainda assim você não entendesse. O bom é que não
precisa entender, nas poucas vezes que isso cai, é de forma literal.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
91
16- (FGV - 2013 - AL-MT - Analista de Sistemas - Banco de Dados) Dependências
funcionais podem ser combinadas de modo que novas dependências sejam derivadas a partir
de um conjunto inicial de dependências. Essas regras de derivação são conhecidas como
Axiomas de Armstrong. Assim, a partir das dependências funcionais
Leia o fragmento a seguir:
“Um esquema de relação S está na _____ forma normal com relação a um conjunto de
dependências F (que inclui dependências funcionais e dependências multivaloradas) se, para
cada dependência multivalorada não trivial X -> -> Y em F, X é uma superchave para R.”
Assinale a alternativa cujo item completa corretamente a lacuna do fragmento acima.
a) primeira
b) segunda
c) terceira
d) quarta
e) Quinta
Resolução:
A definição é da quarta forma normal.
A seguir apresento as descrições matemáticas ou formais para as formas normais:
▪ Primeira Forma Normal (1FN): não possui uma definição formal ou matemática
específica. Sabemos que o domínio dos atributos deve incluir apenas valores atômicos.
▪ Segunda Forma Normal (2FN): um esquema de relação R está na segunda forma
normal (2FN) se cada atributo não principal A em R não for parcialmente dependente
de qualquer chave de R.
▪ Terceira Forma Normal (3FN): um esquema de relação R está na terceira forma
normal (3FN) se toda vez que uma dependência funcional não trivial X → A se
mantiver em R, ou (a) X for uma superchave de R ou (b) A for um atributo principal
de R.
▪ Forma Normal de Boyce Codd (FNBC): um esquema de relação R está na FNBC se
toda vez que uma dependência funcional não trivial X → A se mantiver em R, então
X é uma superchave de R.
▪ Quarta Forma Normal (4FN): Um esquema de relação R está na 4FN com relação
a um conjunto de dependências F (que inclui dependências funcionais e dependências
multivaloradas) se, para cada dependência multivalorada não trivial X --> Y em F, X
é uma superchave para R.
▪ Quinta Forma Normal (5FN): Um esquema de relação R está na quinta forma
normal (5FN) com relação a um conjunto F de dependências funcionais,
multivaloradas e de junção se, para cada, dependência de junção não trivial DJ (R1,
R2, ..., Rn) em F (ou seja, implicada por F), cada Ri é uma superchave de R.
Gabarito: Letra D.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
92
3. ESQUEMAS DE AULA
Banco de Dados (BD)
Sistema Gerenciador de Banco de Dados (SGBD)
Sistema de Banco de Dados (SBD)
Banco de Dados
(repositório, depósito ou base)
Representa algum aspecto
do mundo real
Coleção logicamente
coerente de dados com
algum significado inerente
Projetado, construído e
populado com dados para
uma finalidade específica
Pode ter qualquer tamanho
e complexidade
Pode ser manual ou
computadorizado
SGBD
(coleção de programas)
•Permite criar e manter um banco de
dados.
•Auxilia na:
▪Definição
▪Construção
▪Manipulação
▪Compartilhamento
▪Proteção
▪Manutenção
BD SGBD SBD
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
93
Características dos Banco de Dados
•Natureza de autodescrição dos dados.
•Isolamento entre programas e dados; abstração de dados.
•Suporte a múltiplas visões.
•Compartilhamento de dados e processamento de transação multiusuário.
Elsmari e Navathe
(quatro principais características dos bancos de dados)
▪Controle de redundância.
▪Restrição de acesso não autorizado.
▪Armazenamento persistente para objetos do programa.
▪Estruturas de armazenamento e técnicas de pesquisa para o processamento eficiente de
consulta.
▪Backup e recuperação.
▪Múltiplas interfaces do usuário.
▪Representação de relacionamentos complexos entre dados.
▪Restrições de integridade.
▪Dedução e ação usando regras.
▪Potencial para garantir padrões.
▪Tempo reduzido para o desenvolvimento de aplicações.
▪Flexibilidade.
▪Disponibilidade de informações atualizadas.
•Economias de escala.
Elsmari e Navathe
(vantagens de usar a abordagem SGBD)
▪O dado pode ser compartilhado.
▪A redundância pode ser reduzida.
▪Inconsistências podem ser evitadas.
▪Pode-se utilizar o suporte a transações.
▪A integridade pode ser mantida.
▪A segurança pode ser aperfeiçoada.
▪Requisitos conflitantes podem ser balanceados.
▪Padrões podem ser utilizados.
Date
(benefícios da abordagemde BD)
▪Redundância e inconsistência de dados.
▪Dificuldade de acesso a dados.
▪Isolamento dos dados.
▪Problemas de integridade.
▪Problemas de atomicidade.
▪Anomalias de acesso concorrente.
▪Problemas de segurança.
Sylberchatz, Korth e Sudarshan
(desvantagens de usar sistema de arquivo)
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
94
Desvantagens da abordagem de SGBD
Propriedades das transações
Catálogo ou dicionário de dados
Custos adicionais
Alto investimento inicial
em hardware, software e
treinamento
Generalidade para
definição e processamento
de dados
Esforço adicional para
funções de segurança,
concorrência, recuperação e
integridade
A
to
m
ic
id
ad
e
Conceito:
unidade de
processamento
atômica.
Transação deve
ser realizada em
sua totalidade
ou não deve ser
realizada de
forma alguma.
Responsável
Subsistema de
recuperação.
C
o
n
si
st
ên
ci
a
Conceito:
transação deve
levar o banco de
um estado
consistente
para outro.
Regras e
restrições
respeitadas.
Responsável
Programador
ou módulo de
restrições de
integridade.
Is
o
la
m
en
to
Conceito:
transação deve
parecer
executar
isolada das
demais.
Não
interferência
entre transações
paralelas.
Responsável
Subsistema de
controle de
concorrência.
D
u
ra
b
il
id
ad
e
Conceito:
mudanças
realizadas
devem ser
persistidas no
banco de
dados.
Mudanças não
devem ser
perdidas por
falhas
posteriores.
Responsável
Subsistema de
recuperação.
Catálogo ou
dicionário de dados
Metadados ou
informações de
descritor
Estrutura de cada
tipo de arquivo
Tipo
Formato de
armazenamento
Restrições sobre os
dados
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
95
Modelo de bancos de dados
Esquema x Instância
C
o
n
ce
it
u
al Facilmente comprendido.
Registra os dados.
Independente de
hardware e software
(SGBD).
Elaborados na
Modelagem Conceitual.
Ex.: Modelo Entidade
Relacionamento.
L
ó
g
ic
o Compreensão
intermediária.
Representação das
estruturas de BD.
Dependem do tipo de
SGBD (relacional,
objetos, etc).
Elaborados no Projeto
Lógico.
Ex.: Modelo Relacional.
F
ís
ic
o Difícil compreensão.
Descreve o
armazenamento dos
dados.
Dependentes do SGBD
específico (Oracle,
MySQL, etc.)
Elaborados no Projeto
Físico.
Esquema ou intenção
Estrutura do banco, sem os dados
Instância, estado ou extensão
Dados armazenados em um instante
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
96
Arquitetura de 3 esquemas
Independência lógica e física de dados
Modelos de Dados x Arquitetura de três esquemas
Independênci
a
Lógica
Capacidade de alterar o esquema
conceitual sem ter de alterar os
esquemas externos ou de programas
de aplicação.
Física
Capacidade de alterar o esquema
interno sem ter de alterar o esquema
conceitual e, por consequência, sem
ter que alterar os esquemas externos.
Modelos de
dados
Representar os conceitos usados para descrever a
estruturas dos bancos de dados.
Modelo conceitual ou de alto nível
(dados)
Dados
Modelo lógico, representativo ou de implementação
Estruturas de banco de dados
Modelo físico
Armazenamento
Arquitetura
de 3 esquemas
Representar as camadas de interação do usuário com o
banco de dados.
Nível externo ou de visão
Parte do banco de dados
(geralmente usa modelo lógico baseado em modelo
conceitual)
Nível conceitual
Banco de dados inteiro
(geralmente usa modelo lógico baseado em modelo
conceitual)
Nível interno
Estruturas de armazenamento
(usa modelo físico)
Descreve parte do banco de dados
geralmente com um modelo lógico.
Descreve o banco de dados inteiro
geralmente com um modelo lógico.
Descreve a estrutura de
armazenamento físico geralmente com
um modelo físico.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
97
Modelos de dados (modelos lógicos)
Modelos relacional: conceitos básicos
Modelo relacional
• Dados como uma coleção de
tabelas.
Modelo de objetos
• Dados como objetos,
propriedades (atributos) e
operações (métodos).
Modelo objeto-relacional
• SGBD relacional com
extensões para modelos de
objetos.
Modelo XML
• Estruturas de árvores
hierárquicas com uso de tags.
Modelo de rede
• Registros relacionados de
forma 1:N.
Modelo hierárquico
• Estruturas de árvores
hierárquicas de "pais" e
"filhos".
Modelo
Relacional
Conceitos
Conjuntos de relações ou tabelas que representam
dados e relacionamentos.
Relação matemática é o bloco de montagem básico.
Base teórica reside na teoria de conjunto e lógica de
predicado de primeira ordem.
Princípio da Informação
Todo o conteúdo de informação do banco de dados é
representado como valores explícitos em posições
de colunas em linhas de tabelas.
Aspectos de descrição
Aspecto estrutural: percebidos pelos usuários como
tabelas.
Aspecto de integridade: essas tabelas satisfazem a
certas restrições de integridade.
Aspecto manipulador: os operadores disponíveis
para que o usuário possa manipular essas tabelas
derivam tabelas a partir de outras tabelas.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
98
Doze (treze) regras de Codd para os bancos de dados relacionais
Conceitos do modelo relacional
D
o
ze
(
tr
ez
e)
r
eg
ra
s
d
e
C
o
d
d
p
ar
a
B
an
co
s
R
el
ac
io
n
ai
s Regra 0 - Regra fundamental ou regra base
Regra 1 - A regra da informação ou Princípio da Informação
Regra 2 - A regra de acesso garantido
Regra 3 - Tratamento sistemático de valores nulos
Regra 4 - Catálogo on-line baseado no modelo relacional
Regra 5 - Sublinguagem Ampla de Dados
Regra 6 - Atualização de visões
Regra 7 - Inserção, Atualização, e Exclusão de alto nível
Regra 8 - Independência Física de dados
Regra 9 - Independência Lógica de Dados
Regra 10 - Independência de Integridade
Regra 11 - Independência de Distribuição
Regra 12 - A não-transposição das regras
Tabela (relação) – representa dados e relacionamentos.
Coluna (atributo ou campo) - ajuda a
interpretar o significado dos valores
das linhas.
Linha (tupla ou registro) -
coleção de valores de dados
relacionados.
Grau (aridade) - número
de colunas de uma
relação.
Domínio - tipo de dado que descreve
os tipos de valores que podem
aparecer em cada coluna.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
99
Operações da álgebra relacional
Operações da álgebra relacional
Seleção (σ) Retorna as tuplas da relação que satisfazem um predicado. (PRIMITIVA)
Projeção (П) Retorna os atributos especificados de todas as linhas da relação de entrada,
removendo as tuplas duplicadas da saída. (PRIMITIVA)
Junção ( ) Retorna pares de linhas das duas relações de entrada que têm o mesmo valor
em todos os atributos que possuem o mesmo nome.
Produto cartesiano
(X)
Retorna todos os pares de linhas das duas relações de entrada
(independentemente de ter ou não os mesmos valores em atributos comuns).
(PRIMITIVA)
União (Ս) Retorna as tuplas que estão na primeira relação, na segunda relação, ou em
ambas. (PRIMITIVA)
Intersecção (Ո) Retorna as tuplas que aparecem tanto na primeira relação quanto na segunda.
Diferença (-) Retorna tuplas que aparecem na primeira relação, mas não estão na segunda.
(PRIMITIVA)
Visão(view)
Índice
• Tabela derivada de outras tabelas (tabelas base ou outras visões).
• Maneira alternativa de visualização dos dados de uma ou mais tabelas.
• Consulta pré-definida ou armazenada.
• Tabela virtual: não necessariamente existe em forma física.
• Em regra, não atualizáveis.
Visão (view)
• Visão armazenada.
• Em regra, atualizáveis.
Visão materializada (materialized view).
Ín
d
ic
e
Estrutura de acesso auxiliar.
Utilizados para agilizar a recuperação de registros
Oferecem caminhos de acesso secundários
Uso de ponteiros para a localização dos dados.
Não devem ser criados de maneira ilimitada e sem cuidados.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
100
Chaves
Relacionamentos
R
e
la
c
io
n
a
m
e
n
to
s
(a
ss
o
c
ia
çã
o
e
n
tr
e
a
s
ta
b
e
la
s)
(e
x
is
te
m
a
p
en
as
l
o
g
ic
am
en
te
, m
a
s
n
ã
o
f
is
ic
a
m
e
n
te
)
Um para Um
(1:1)
Cada elemento de uma tabela se
relaciona a um único elemento de
outra tabela.
Em bancos relacionais, uma das tabelas
possui a chave estrangeira. Pode-se,
porém, mesclar as entidades em uma
única tabela ou criar uma terceira tabela
para cruzar as chaves primárias destas.
Um para Muitos
(1:N)
Cada elemento de uma tabela r1 pode
ser relacionar com mais de um
elemento da tabela r2, no entanto cada
elemento da tabela r2 está relacionado
a apenas um elemento de r1.
Em bancos relacionais, a tabela do lado
N da relação possui a chave
estrangeira.
Muitos para
Muitos
(N:M)
Para cada valor do campo de uma
tabela, pode haver N valores no campo
da outra tabela e vice-versa.
Os dados estão diretamente
relacionados ao fato (ou ao
relacionamento), e não as entidades (ou
tabelas).
Em bancos relacionais, esta relação
consuma-se através de uma tabela de
ligação que pode possuir atributos
próprios.
C
h
a
v
e
c
a
n
d
id
a
ta
Superchave
Conjunto de um ou
mais atributos que,
coletivamente, permitem
identificar de forma
exclusiva uma tupla.
Chave
Superchave com a
propriedade adicional de
que a remoção de
qualquer dos atributos
a faz deixar de ser
chave.
Chave primária
Chave candidata que
é escolhida pelo
designer de banco de
dados como o principal
meio de identificar
tuplas.
Cada uma das chaves
possíveis em uma
relação.
Chave estrangeira
Atributo (s) que são chave
primária ou candidata de
outra relação.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
101
Formas normais
•Todos os atributos são atômicos.
•Não possui atributos multivalorados nem compostos.
1FN
•Está na 1FN.
•Cada atributo não-chave é dependente da chave primária (ou candidata) inteira.
(Dependência funcional total)
•Cada atributo não-chave não pode ser dependente de apenas parte da chave.
2FN
•Está na 2FN.
•Cada atributo não chave não possui dependência transitiva, para cada chave
candidata.
•Todos os atributos dependem exclusivamente da chave primária da tabela.
3FN
•Está na 3FN (variação forte da 3FN).
•Todo determinante é chave candidata.
•Não há dependências entre atributos não chave.
FNBC
•Está na 3FN.
•Não possui dependência multivalorada.
4FN
•Está na 4FN.
•Não possui dependência de junção.
5FN
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
102
4. REFERÊNCIAS
BATTISTI, Julio. O Modelo Relacional de Dados. Disponível em:
https://juliobattisti.com.br/artigos/office/modelorelacional_p2.asp. Acesso em: 14 nov.
2017.
DATE, Christopher J. Introdução a sistemas de bancos de dados. Rio de Janeiro:
Elsevier Brasil, 2003.
ELMASRI, Ramez; NAVATHE, Shamkant B. Sistema de Banco de Dados. 6ed. São
Paulo: Pearson Addison Wesley, 2011.
LINHA DE CÓDIGO. Índices MySQL: Otimização de consultas. Disponível em:
<http://www.linhadecodigo.com.br/artigo/3620/indices-mysql-otimizacao-de-
consultas.aspx>. Acesso em: 09 nov. 2020.
OLIVEIRA, Leornado; SENNA, Carlos. Refinamento de Esquemas e Formas Normais.
Disponível em: <https://www.ic.unicamp.br/~geovane/mo410-091/Ch19-Resumo.pdf>.
Acesso em: 29 out. 2021.
SYLBERCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Database System
Concepts. 6th. New York: McGraw-Hill, 2011.
SOFTBLUE. Curso de SQL Completo Gratuito. Disponível em:
<https://www.softblue.com.br/site/curso/id/3/CURSO+DE+SQL+COMPLETO+BA
SICO+AO+AVANCADO+ON+LINE+BD03+GRATIS>.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
https://juliobattisti.com.br/artigos/office/modelorelacional_p2.asp
http://www.linhadecodigo.com.br/artigo/3620/indices-mysql-otimizacao-de-consultas.aspx
http://www.linhadecodigo.com.br/artigo/3620/indices-mysql-otimizacao-de-consultas.aspx
https://www.ic.unicamp.br/~geovane/mo410-091/Ch19-Resumo.pdf
https://www.softblue.com.br/site/curso/id/3/CURSO+DE+SQL+COMPLETO+BASICO+AO+AVANCADO+ON+LINE+BD03+GRATIS
https://www.softblue.com.br/site/curso/id/3/CURSO+DE+SQL+COMPLETO+BASICO+AO+AVANCADO+ON+LINE+BD03+GRATIS
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
103
5. QUESTÕES COMENTADAS
1- (FGV - 2021 - IMBEL - Supervisor - Tecnologia de Informação) Na teoria de
projetos de bancos de dados, o processo de normalização de uma tabela é feito a partir da
identificação
a) das chaves estrangeiras.
b) das dependências funcionais.
c) das junções que serão necessárias.
d) dos tipos de dados em cada coluna.
e) dos relacionamentos entre as tabelas.
Resolução:
Um conceito relevante para o entendimento formas normais é o de dependência funcional,
que é um relacionamento entre dois ou mais atributos de forma que o valor de um atributo
identifique o valor para cada um dos outros atributos, ou seja, um atributo está relacionado
a outro. A dependência funcional pode ser ilustrada por →. Assim, em A → B, temos que
“A determina B” ou “B é dependente (funcionalmente) de A”, isto é, o valor de B pode
ser descoberto sabendo o valor de A.
Gabarito: Letra B.
2- (FGV - 2018 - Prefeitura de Niterói - RJ - Analista de Políticas Públicas e
Gestão Governamental - Gestão de Tecnologia) Considere duas tabelas: T1, com
atributos A e B, e T2, com atributos C e D. Nas duas tabelas as chaves primárias foram
definidas pelos atributos A e C, respectivamente. Não há outras chaves nessas tabelas além
das chaves primárias.
Na tabela T2, o atributo D é uma chave estrangeira que referencia a tabela T1. Não há
outras chaves estrangeiras nessas tabelas. As tabelas T1 e T2 estão perfeitamente
normalizadas.
Sabe-se que agora deve haver um relacionamento 1:1 entre essas duas tabelas.
Assinale a opção que apresenta a providência necessária para que esse requisito seja
atendido, de forma que o grau de normalização da tabela seja mantido.
a) Criar uma terceira tabela, com atributos A e C como chaves estrangeiras para T1 e T2,
sem alterar T1 e T2.
b) Definir o atributo B como unique em T1.
c) Alterar T2, definindo o atributo D como chave primária no lugar de C.
d) Definir o atributo D como unique em T2.
e) Incluir o atributo D na chave primária de T2.
Resolução:
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
104
Vamos analisar as tabelas construídas:
T1 possui os atributos A e B, sendo A sua chave primária. Logo T1 {A, B}.
T2 possui os atributos C e D, sendo A sua chave primária. Logo T2 {C, D}.
Como o atributo D de T2 referencia a tabela T1, logo irá referenciar A que é a chave desta
tabela.
A grande questão é que se deseja um relacionamento 1:1 entre essas tabelas. Por isso,é
necessário garantir que não haverá valores iguais para o atributo D em mais de um registro
da tabela T2. Para isso, é possível definir o atributo D como único (UNIQUE).
Se o atributo D permitisse a repetição, não haveria nenhum problema lógico no modelo,
mas não se implementaria um relacionamento 1:1, mas sim 1:N.
Suponha uma tabela T1, com os seguintes valores {(1, 10), (2, 20), (3, 30)}. E uma tabela
T2 com os valores {(11, 1), (12, 2), (13, 3)}. Nesse caso, cada registro da tabela T2 só estaria
relacionado a um único registro da tabela T1 e, portanto, relacionamento 1:1. Por sua vez,
se existissem dois registros em T2 com valores iguais para D como em {(11, 1), (12, 2), (13,
2)}, teríamos um relacionamento 1:N, pois neste exemplo, os registros 12 e 13 da tabela t2
estariam sendo associados a um único registro da tabela T1 (aquele de chave 2).
Gabarito: Letra D.
3- (FGV - 2018 - AL-RO - Analista Legislativo - Banco de Dados) Considere uma
tabela relacional R com atributos A, B, C, D, e as seguintes dependências funcionais.
A → B
B → C
A → D
B → A
Estabelecendo-se que os atributos sublinhados identificam chaves, primárias ou candidatas,
o esquema correto para que se obtenha um projeto normalizado até a forma normal Boyce-
Codd, é
a) R (A, B, C, D)
b) R (A, B, C, D)
c) R (A, B, C, D)
d) R1 (A, C, D)
R2 (A, B)
e) R1 (A, B, D)
R2 (B, C)
Resolução:
Uma tabela está na Forma Normal de Boyce-Codd (FNBC ou BCNF) se, e somente se,
estiver na 3FN e todo determinante é chave candidata. Dessa forma, não há
dependências entre atributos não chave. É considerada uma variação forte da 3FN.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
105
Logo, dadas as dependências funcionais:
A → B
B → C
A → D
B → A
Temos que A e B são determinantes e, portanto, devem ser chaves da tabela. Logo,
a) Correto: R (A, B, C, D) A e B são determinantes e chaves.
b) Incorreto: R (A, B, C, D) B é um determinante e, portanto, deveria ser chave.
c) Incorreto: (A, B, C, D) A é um determinante e, portanto, deveria ser chave.
d) Incorreto: R1 (A, C, D)
R2 (A, B) B é um determinante e, portanto, deveria ser chave.
e) Incorreto: R1 (A, B, D)
R2 (B, C) B é determinante de C e A e não somente de C.
Gabarito: Letra A.
4- (FGV - 2018 - AL-RO - Analista Legislativo - Banco de Dados) No âmbito da
teoria de projeto de bancos de dados relacionais, considere as seguintes dependências
funcionais para os atributos A, B, C, D.
A → B
B → C
C → D
Nesse caso, a dependência A → C poderia ser deduzida pelo axioma da
a) aumentabilidade.
b) completude.
c) reflexividade.
d) transitividade.
e) união.
Resolução:
As dependências funcionais podem ser encontradas com base em algumas regras:
1. Separação: se A -> BC, então A -> B e A -> C.
• Exemplo: CPF -> nome, endereço então CPF -> nome e CPF -> endereço
2. Acumulação: se A -> B, então AC -> B.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
106
• Exemplo: CPF -> endereço então CPF, idade -> endereço
3. Transitividade: se A -> B e B -> C, então A -> C.
• Exemplo: CPF -> código-cidade e código-cidade -> nome-cidade então CPF ->
nome-cidade
4. Pseudo-Transitividade: se A -> B e BC -> D, então AC -> D.
• Exemplo: CPF -> código-funcionário e código-funcionário, mês -> salário-
funcionário então CPF, mês -> salário-funcionário
Gabarito: Letra D.
5- (FGV - 2018 - AL-RO - Analista Legislativo - Análise e Desenvolvimento de
Sistemas) No contexto das propriedades desejadas para transações executadas em banco
de dados relacionais, é possível que, eventualmente, seja permitida ou forçada a leitura de
dados que foram modificados em operações ainda não confirmadas (comitted).
Assinale a principal propriedade que é flexibilizada na ocorrência de um dirty read.
a) Atomicidade.
b) Consistência.
c) Durabilidade.
d) Integridade referencial.
e) Isolamento.
Resolução:
Segundo a propriedade do isolamento, uma transação deve parecer executar
isoladamente das demais, embora centenas de transações possam ser executadas
concorrentemente. Este princípio funciona como um mecanismo de controle que visa
assegurar que nenhuma outra transação, operando no mesmo sistema, possa interferir no
funcionamento da transação corrente. Outras transações não podem visualizar os
resultados parciais das operações de uma transação em andamento. A responsabilidade por
esta propriedade é do subsistema de controle de concorrência do SGBD.
Elsmari e Navathe destacam os seguintes níveis de isolamento:
▪ Nível 0: não grava sobre as leituras sujas das transações de nível mais alto. Leitura
suja (dirty read) ocorre quando a transação lê dados escritos por uma transação
simultânea não efetivada.
▪ Nível 1: não tem atualizações perdidas.
▪ Nível 2: não tem atualizações perdidas ou leituras sujas.
▪ Nível 3: isolamento verdadeiro, permite leituras repetitivas.
Gabarito: Letra E.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
107
6- (FGV - 2018 - MPE-AL - Analista do Ministério Público - Administrador de
Banco de dados) No contexto da otimização de consultas para bancos de dados, a Álgebra
Relacional tem um papel importante, especialmente na construção das query trees para a
representação de planos de execução. As operações primitivas da AR são definidas como as
operações que não podem ser expressas por meio das demais operações. Assinale a opção
que apresenta a lista que contém as cinco operações primitivas da AR.
a) Diferença, divisão, projeção, seleção e união.
b) Diferença, produto, projeção, seleção e união.
c) Interseção, produto, projeção, seleção e união.
d) Divisão, interseção, junção, seleção e união.
e) Junção, produto, projeção, seleção e união.
Resolução:
As cinco operações primitivas da álgebra relacional são:
Seleção (σ) Retorna as tuplas da relação que satisfazem um predicado.
Projeção (П) Retorna os atributos especificados de todas as linhas da relação de entrada,
removendo as tuplas duplicadas da saída.
Produto cartesiano
(X)
Retorna todos os pares de linhas das duas relações de entrada
(independentemente de ter ou não os mesmos valores em atributos comuns).
União (Ս) Retorna as tuplas que estão na primeira relação, na segunda relação, ou em
ambas.
Diferença (-) Retorna tuplas que aparecem na primeira relação, mas não estão na segunda.
Gabarito: Letra B.
7- (FGV - 2018 - MPE-AL - Analista do Ministério Público - Administrador de
Banco de dados) Considere uma tabela relacional T, com atributos A, B, C, D, E, na qual
as seguintes dependências funcionais se verificam:
A → B
B → C
C → D
D → E
E → A
Para que essa tabela esteja normalizada até a forma Boyce-Codd,
a) T deve possuir apenas um identificador, composto pela justaposição dos atributos A, B,
C, D e E.
b) T deve possuir apenas um identificador, composto pela justaposição dos atributos A e E.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
108
c) T deve possuir três identificadores, cada um composto por um dos atributos A, D e E
individualmente.
d) T deve possuir cinco identificadores, cada um composto por um dos atributos A, B, C, D
e E individualmente.
e) nenhum identificador poderá ser estabelecido para T.
Resolução:
Uma tabela está na Forma Normal de Boyce-Codd (FNBC ou BCNF) se, e somente se,
estiver na 3FN e todo determinante é chave candidata. Dessa forma, não há
dependências entre atributos não chave. Éconsiderada uma variação forte da 3FN.
Assim, como temos os atributos A, B, C, D e E sendo determinantes na tabela T, então cada
um deles deve ser uma chave da tabela. Logo, item D.
Vale mencionar não cabe ter apenas uma chave com todos eles, pois as dependências não
representam isso. Por exemplo, A -> B, significa que A determina B e não que ABCDE
determinam B. Por isso, o item A não é válido como resposta.
Gabarito: Letra D.
8- (FGV - 2018 - MPE-AL - Analista do Ministério Público - Desenvolvimento de
Sistemas) Num banco de dados relacional, considere uma tabela T, não normalizada
contendo os atributos CPF, Matrícula, Nome, Endereço, Telefone. Sobre esses atributos,
foram apuradas as seguintes dependências funcionais:
Matrícula → CPF
CPF → Nome
Matrícula → Endereço
Telefone → Matrícula
Assinale o esquema (com as chaves primárias sublinhadas) que está normalizado e
produzido com decomposição sem perda.
a) T1 (CPF, Nome)
T2 (Matrícula, CPF)
T3 (Telefone, Matrícula, Endereço)
b) T1 (CPF, Matrícula, Nome, Endereço)
T2 (Telefone, Matrícula)
c) T1 (CPF, Nome)
T2 (Matrícula, CPF, Endereço)
T3 (Telefone, Matrícula)
d) T1 (CPF, Nome)
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
109
T2 (Matrícula, CPF, Endereço)
T3 (Telefone, Matrícula)
e) T1 (CPF, Nome)
T2 (Matrícula, CPF)
T3 (Nome, Endereço)
T4 (Telefone, Matrícula)
Resolução:
Primeiramente, ressalto que para resolver esse tipo de questão, deve-se ater as regras
informadas e não tentar fazer qualquer associação ao mundo real ou a outros modelos.
Assim, a questão apresentou uma tabela com 5 atributos e as dependências entre esses
atributos e nos pediu para normalizar a tabela.
Sendo assim, vamos analisar cada um dos itens:
a) Incorreto: problemas na tabela T3:
T1 (CPF, Nome): nenhum problema nesta tabela, pois CPF -> Nome.
T2 (Matrícula, CPF): nenhum problema nesta tabela, pois Matrícula -> CPF.
T3 (Telefone, Matrícula, Endereço): aqui temos um problema, pois telefone determina
apenas Matrícula. Essa tabela fere a 3FN, pois atributo endereço depende de um atributo
não chave e, portanto, temos uma dependência transitiva.
b) Incorreto: problemas na tabela T2.
T1 (CPF, Matrícula, Nome, Endereço): descumprimento da
T2 (Telefone, Matrícula): nenhum problema nesta tabela, pois Telefone -> Matrícula.
c) Incorreto: problemas na tabela T3.
T1 (CPF, Nome): nenhum problema nesta tabela, pois CPF -> Nome.
T2 (Matrícula, CPF, Endereço): nenhum problema nesta tabela, pois Matrícula -> Nome e
Matrícula -> Endereço.
T3 (Telefone, Matrícula): como Telefone é um determinante, deveria ser chave desta tabela.
d) Correto:
T1 (CPF, Nome): nenhum problema nesta tabela, pois CPF -> Nome.
T2 (Matrícula, CPF, Endereço): nenhum problema nesta tabela, pois Matrícula -> Nome e
Matrícula -> Endereço.
T3 (Telefone, Matrícula): nenhum problema nesta tabela, pois Telefone -> Matrícula.
e) Incorreto: problema na tabela T3.
T1 (CPF, Nome): nenhum problema nesta tabela, pois CPF -> Nome.
T2 (Matrícula, CPF): nenhum problema nesta tabela, pois Matrícula -> CPF.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
110
T3 (Nome, Endereço): nome não determina endereço.
T4 (Telefone, Matrícula): nenhum problema nesta tabela, pois Telefone -> Matrícula.
Gabarito: Letra D.
9- (FGV - 2018 - MPE-AL - Analista do Ministério Público - Desenvolvimento de
Sistemas) Teoricamente, um banco de dados relacional poderia ser construído em uma
única tabela, chamada universal, na qual estariam presentes todos os atributos. Na prática,
porém, isso causaria enormes transtornos. Uma técnica de projeto de bancos é a de
decomposição sucessiva das tabelas, à luz das dependências entre atributos, até que se
chegue a um projeto normalizado com um nível de decomposição aceitável. Nesse processo,
deve haver uma preocupação especial para que essa decomposição seja sem perda. Assinale
a opção que apresenta o significado técnico da “decomposição sem perda”, no presente
contexto.
a) Cada atributo deve aparecer em uma ou mais tabelas, após a decomposição.
b) Cada atributo deve aparecer em apenas uma das tabelas obtidas pela decomposição.
c) Todos os estados representáveis na tabela universal deveriam ser alcançáveis por meio
da combinação das tabelas obtidas pela decomposição.
d) Todos os valores dos atributos que compõem a tabela universal podem estar presentes
em um ou mais dos atributos que compõem as tabelas obtidas pela decomposição.
e) O número de atributos da tabela universal deve ser igual ao somatório do número de
atributos em cada uma das tabelas obtidas pela decomposição.
Resolução:
Vamos analisar cada um dos itens:
a) Incorreto: esta não é a definição de decomposição sem perdas.
b) Incorreto: um atributo pode aparecer em mais de uma tabela.
c) Correto: Uma decomposição é sem perdas se for sempre possível reconstruir a
instância da tabela original efetuando a junção das instâncias correspondentes das tabelas
decompostas.
d) Incorreto: esta não é a definição de decomposição sem perdas.
e) Incorreto: não há qualquer obrigação de o somatório de atributos das tabelas
decompostas ser igual ao da tabela original. Na verdade, provavelmente haverá um número
maior de atributos nas tabelas decompostas, pois serão necessários atributos para as chaves
estrangeiras.
Gabarito: Letra C.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
111
10- (FGV - 2018 - MPE-AL - Analista do Ministério Público - Desenvolvimento de
Sistemas) Considere uma tabela de banco de dados contendo informações de contato dos
clientes de uma empresa. Sabe-se que cada cliente pode ter um número variado de contatos,
da mesma natureza ou não. A seguir, um extrato da instância dessa tabela contendo os
dados completos de cinco clientes.
Sobre as dependências funcionais e multivaloradas para essa tabela, assinale a afirmativa
correta.
a) CódigoCliente → Natureza, Contato
b) CódigoCliente, Natureza → Contato
c) CódigoCliente →→ Natureza
d) Conta, Natureza → CódigoCliente
e) Além das dependências triviais, nenhuma outra dependência pode ser deduzida.
Resolução:
Vamos analisar cada um dos itens:
a) Incorreto: CódigoCliente não é capaz de determinar Natureza e Contato. Observe, por
exemplo, que o mesmo CódigoCliente 123 está em dois registros com naturezas e contatos
diferentes.
b) Incorreto: Os atributos CódigoCliente e Natureza não determinam Contato. Observe
que a combinação CódigoCliente 234 e Natureza e-mail estão associadas a contatos
diferentes (az@yyy.br e az@www.br).
c) Incorreto: CódigoCliente não é capaz de determinar Natureza. Observe que temos
naturezas diferentes para o mesmo CódigoCliente. Exemplo: CódigoCliente 123 está
associado a dois registros com naturezas diferentes (e-mail e celular).
d) Incorreto: não existe atributo Conta na tabela. Ainda que fosse Contato, os atributos
Contato e Natureza não determinam CódigoCliente. Observe que temos combinações de
Contato e Natureza diferentes para o mesmo código do cliente. Exemplo: tanto e-mail e
jo@xxx.br quanto celular e 987654321 apontam para um registro de CódigoCliente 123.
e) Correto: por eliminação chegamos a este item. Com as informações trazidas na questão,
não é possível deduzir dependências.
Gabarito: Letra E.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
112
11- (FGV - 2018 - MPE-AL - Técnico do Ministério Público - Geral)Em um banco
de dados relacional, um nome da tabela, uma chave primária e um nome de coluna garantem
o acesso a
a) um dado.
b) um SGBD.
c) uma linguagem de consulta.
d) uma partição.
e) uma visão.
Resolução:
Uma das doze (treze) regras de Codd para um banco relacional é a regra do acesso
garantido, segundo a qual 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. Esses valores nada mais são que os dados armazenados nos bancos de
dados.
Gabarito: Letra A.
12- (FGV - 2018 - MPE-AL - Técnico do Ministério Público - Geral) O conjunto de
programas responsável pelo gerenciamento de uma base de dados e que, entre outras
funções, suporta uma linguagem de consulta, gera relatórios e disponibiliza uma interface
para que os seus clientes possam incluir, alterar ou consultar dados, é chamado de
a) Banco de Dados Relacional (BDR).
b) Dicionário de Dados (DD).
c) Modelo Entidade Relacionamento (MER).
d) Sistema de Suporte à Decisão (SSD).
e) Sistema Gerenciador de Bancos de Dados (SGBD).
Resolução:
Um Sistema Gerenciador de Banco de Dados (SGBD) é uma coleção de programas
que permite aos usuários criar e manter um banco de dados. O SGBD é um sistema de
software de uso geral que facilita os seguintes processos:
▪ Definição: especificação de tipos, estruturas e restrições de dados.
▪ Construção: armazenamento dos dados em algum meio controlado.
▪ Manipulação: consulta, atualização e geração de relatórios.
▪ Compartilhamento: acesso simultâneo por usuários e sistemas.
▪ Proteção: proteção do sistema contra defeitos e proteção de segurança contra
acesso não autorizado ou malicioso.
▪ Manutenção: evolução do sistema ao longo do tempo.
Gabarito: Letra E.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
113
13- (FGV - 2018 - Banestes - Analista em Tecnologia da Informação - Suporte e
Infraestrutura) As propriedades usualmente requeridas para transações em bancos de
dados são identificadas pela sigla ACID.
Essas propriedades são:
a) assincronia, concorrência, integridade, durabilidade;
b) assincronia, consistência, isolamento, distribuição;
c) atomicidade, concorrência, integridade, durabilidade;
d) atomicidade, conformidade, independência, distribuição;
e) atomicidade, consistência, isolamento, durabilidade.
Resolução:
As propriedades das transações ou ACID são:
Gabarito: Letra E.
14- (FGV - 2018 - Banestes - Analista em Tecnologia da Informação -
Desenvolvimento de Sistemas) Considere as seguintes regras de derivação de
dependências funcionais no âmbito do projeto de banco de dados
I. Se X → Y então XY → Y
II. Se X → Y e X → Z então Y → Z
III. Se XY → Z então X → Z
Sobre essas afirmativas, conclui-se que:
a) nenhuma está correta;
b) somente I está correta;
c) somente II está correta;
d) somente III está correta;
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
114
e) todas estão corretas.
Resolução:
As dependências funcionais podem ser encontradas com base em algumas regras:
1. Separação: se A -> BC, então A -> B e A -> C.
• Exemplo: CPF -> nome, endereço então CPF -> nome e CPF -> endereço
2. Acumulação: se A -> B, então AC -> B.
• Exemplo: CPF -> endereço então CPF, idade -> endereço
3. Transitividade: se A -> B e B -> C, então A -> C.
• Exemplo: CPF -> código-cidade e código-cidade -> nome-cidade então CPF ->
nome-cidade
4. Pseudo-Transitividade: se A -> B e BC -> D, então AC -> D.
• Exemplo: CPF -> código-funcionário e código-funcionário, mês -> salário-
funcionário então CPF, mês -> salário-funcionário
Sendo assim, vejamos os itens:
I. Correto: Se X → Y então XY → Y (regra da Acumulação)
II. Incorreto: Se X → Y e X → Z então Y → Z (o correto seria X -> Z, daí teríamos a
regra da transitividade)
III. Incorreto: Se XY → Z então X → Z (não há garantia de que somente parte de um
grupo de atributos continue sendo capaz manter uma dependência)
Gabarito: Letra B.
15- (FGV - 2017 - SEPOG - RO - Analista em Tecnologia da Informação e
Comunicação) A figura a seguir mostra a estrutura das tabelas Produto, Venda e Cliente
pertencentes a um banco de dados de uma empresa comercial.
A tabela Venda contém um registro para cada venda efetuada pela companhia. A fim de
preservar a integridade referencial do banco de dados, assinale a opção que indica a coluna
ou colunas dessa tabela que deveria(m) ser chaves estrangeiras.
a) id_produto.
b) imposto e quantidade.
c) quantidade.
d) id_produto e quantidade.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
115
e) id_cliente e id_produto.
Resolução:
A chave estrangeira de uma tabela é um atributo ou conjunto de atributos que se ligam
logicamente à chave primária (ou candidata) de outra tabela.
Sendo assim, a tabela Vendas possui duas chaves estrangeiras:
id_cliente que a associa com a tabela Cliente.
id_produto que a associa com a tabela Produto.
Gabarito: Letra E.
16- (FGV - 2017 - IBGE - Analista Censitário - Análise de Sistemas - Suporte à
Produção) Em relação a banco de dados relacionais, analise as afirmativas abaixo:
I. Uma chave primária identifica um registro de forma única, não podendo eventualmente
assumir valor nulo.
II. Uma chave estrangeira não pode apontar para uma chave primária da mesma tabela.
III. Uma chave candidata é aquela que define uma combinação de atributos entre tabelas,
mas não pode ser uma chave primária.
Está correto o que se afirma em:
a) I;
b) II;
c) III;
d) I e II;
e) I, II e III.
Resolução:
Vamos analisar cada um dos itens:
I. Correto: Uma chave primária identifica um registro de forma única, não podendo
eventualmente assumir valor nulo.
Os atributos das tuplas da chave devem possuir valores válidos, ou seja, não devem
permitir valor NULL. Este cuidado na verdade é uma restrição, a chamada restrição de
integridade da entidade.
II. Incorreto: Uma chave estrangeira não pode apontar para uma chave primária da mesma
tabela. Nesse caso, teremos um autorrelacionamento.
III. Incorreto: Uma chave candidata é aquela que define uma combinação de atributos entre
tabelas, mas não pode ser uma das chaves candidatas será escolhida como uma chave
primária.
Gabarito: Letra A.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
116
17- (FGV - 2017 - IBGE - Analista Censitário - Análise de Sistemas - Suporte à
Produção) Uma empresa possui informações sobre suas vendas em uma tabela, contendo
as seguintes colunas:
cliente, vendedor, produto
Para cada produto, cada cliente tem contato apenas com um vendedor. Cada vendedor
vende apenas um produto. Um produto pode ser vendido por vários vendedores.
A chave primária é o conjunto (cliente, vendedor). Em termos de normalização de dados, e
considerando-se a maior normalização possível, é correto dizer que essa tabela encontra-se
na:
a) primeira forma normal;
b) segunda forma normal;
c) terceira forma normal;
d) forma normal de Boyce-Codd;
e) quarta forma normal.
Resolução:
Vamos analisar as formas normais para esta tabela:
1ª Forma Normal: a tabela não possui atributos compostos ou multivalorados. Ao menos,
não nos foi informado isso.
2ª Forma Normal: a chave primária é formada pelos atributos cliente e vendedor, contudo
produto depende apenas de vendedor. Sendo, assim temos uma dependência parcial e, logo,
a tabela não se encontra na 2FN.
Gabarito: Letra A.18- (FGV - 2017 - IBGE - Analista Censitário - Análise de Sistemas - Suporte à
Produção) Na década de 80, Edgar Frank Codd definiu um conjunto de regras para definir
o que são bancos de dados relacionais.
A opção que NÃO faz parte dessas regras, é:
a) qualquer visualização que teoricamente possa ser atualizada deve ser realizada através
do próprio sistema;
b) aplicativos e recursos ad hoc não devem ser afetados logicamente quando os métodos de
acesso ou as estruturas de armazenamento físico forem alterados;
c) restrições de integridade necessitam ser especificadas dentro dos programas de aplicação,
de modo que mudanças nessas restrições sejam observadas por essas aplicações;
d) todas as informações no banco devem ser representadas logicamente como valores de
coluna em linhas dentro das tabelas;
e) os usuários finais e aplicativos não devem conhecer nem serem afetados pela localização
dos dados.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
117
Resolução:
Vejamos quais são as doze (treze) regras de Codd:
▪ Regra 0 - Regra fundamental ou regra base: um SGBD relacional deve gerenciar
seus dados usando exclusivamente capacidades relacionais.
▪ Regra 1 - A regra da informação ou Princípio da Informação: todas as informações
no banco de dados necessitam estar representadas de apenas uma forma, nomeados por
valores em posições de colunas dentro de registros de tabelas. (alternativa d)
▪ Regra 2 - A regra de acesso garantido: deve-se garantir que todos os valores de
uma tabela possam ser acessados por meio de uma combinação de nome de tabela,
valor de chave primária e nome de coluna.
▪ Regra 3 - Tratamento sistemático de valores nulos: o SGBD deve permitir que
cada campo possa permanecer nulo (ou vazio). Especificamente, ele deve suportar
uma representação de "falta de informação e informações inaplicáveis" que é sistemática,
diferente de todos os valores regulares (por exemplo, "diferente de zero ou qualquer
outro número", no caso de valores numéricos), e independente de tipo de dados. É
também implícito que tais representações devem ser manipuladas pelo SGBD de
maneira sistemática.
▪ Regra 4 - Catálogo on-line baseado no modelo relacional: os metadados devem
ser armazenados e gerenciados como dados comuns, ou seja, em tabelas no interior
do Banco de Dados. Esses dados devem estar disponíveis aos usuários autorizados,
utilizando a linguagem de consulta padrão do Banco de Dados.
▪ Regra 5 - Sublinguagem Ampla de Dados: deve suportar uma linguagem
declarativa bem definida com suporte para definição de dados, definição de visões,
manipulação de dados (interativa ou por programa), restrições de integridade,
autorização e gerenciamento de transações (iniciar, enviar e desfazer).
▪ Regra 6 - Atualização de visões: todas as visões que são teoricamente atualizáveis
devem ser atualizáveis pelo sistema. (alternativa a)
▪ Regra 7 - Inserção, Atualização, e Exclusão de alto nível: o sistema necessita
fornecer suporte à configuração do nível de operações para inserir, atualizar e excluir.
Isto significa que os dados podem ser recuperados a partir de um banco de dados
relacional em conjuntos de dados construídos a partir de várias linhas e / ou
várias tabelas. Esta regra afirma que as operações de inserção, atualização, e exclusão
devem ser apoiadas para qualquer conjunto recuperável e não apenas para uma única
linha em uma única tabela.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
118
▪ Regra 8 - Independência Física de dados: aplicativos e recursos ad hoc não são
afetados logicamente quando os métodos de acesso ou as estruturas de
armazenamento físico são alterados.
▪ Regra 9 - Independência Lógica de Dados: aplicativos e recursos ad hoc não são
afetados logicamente quando de alterações de estruturas de tabela que preservem
os valores originais da tabela (alteração da ordem ou inserção de colunas). Alterações
nas relações e nas Visualizações causam pouco ou nenhum impacto nas aplicações.
(alternativa b)
▪ Regra 10 - Independência de Integridade: todas as restrições de integridade
necessitam ser especificadas separadamente dos programas de aplicação e
armazenadas no catálogo. É necessário que seja possível mudar estas restrições sem que
necessariamente tenha-se de modificar as aplicações. (alternativa c, as restrições
devem ser implementadas fora dos programas e não dentro deles)
▪ Regra 11 - Independência de Distribuição: a distribuição de partes do SGBD em
várias localidades deve ser transparente para os usuários do mesmo, isto é, os usuários
não são afetados pela localização dos dados. (alternativa e)
▪ Regra 12 - A não-transposição das regras: se o SGBD dá suporte a acesso de baixo
nível aos dados, não deve haver um modo de negligenciar as regras de integridade
do mesmo.
Gabarito: Letra C.
19- (FGV - 2017 - IBGE - Analista Censitário - Análise de Sistemas -
Desenvolvimento de Aplicações) Em projetos de Banco de Dados Relacional, a
dependência funcional representada por
A→B e B→C, então A→C
é a base para caracterizar que uma relação está na:
a) primeira, mas não na segunda forma normal;
b) primeira e na segunda forma normal;
c) segunda e na terceira forma normal;
d) terceira forma normal, mas não na forma normal de Boyce/Codd;
e) terceira forma normal e na forma normal de Boyce/Codd.
Resolução:
Vamos avaliar quais as formas normais são cumpridas:
1ª Forma Normal: não temos nenhuma informação sobre a presença de atributos
multivalorados ou compostos, então partimos do pressuposto que cumpre a 1FN, pois esta
faz parte da própria definição do modelo relacional.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
119
2ª Forma Normal: A determina todos os outros atributos e, portanto, é a nossa chave
primária. Sendo assim, não há dependência parcial, pois a chave é formada por um único
atributo. B e C dependem da totalidade da chave (A).
3ª Forma Normal: a representação é justamente de uma dependência transitiva, o que fere
a 3FN. Logo, a tabela não está na 3FN.
Gabarito: Letra B.
20- (FGV - 2016 - Prefeitura de Paulínia - SP - Analista de Sistemas) A execução de
transações de bancos de dados deve observar um conjunto de propriedades, cuja finalidade
é a manutenção da integridade dos dados armazenados nas tabelas.
Assinale a opção que apresenta as propriedades usualmente implementadas nos sistemas
gerenciadores de bancos de dados.
a) Independência de dados e integridade referencial.
b) Manutenção de logs e extração de backups.
c) Segurança, criptografia e sigilo.
d) Atomicidade, durabilidade, consistência e isolamento.
e) Performance, segurança e escalabilidade.
Resolução:
As propriedades das transações ou ACID são:
Gabarito: Letra D.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
120
21- (FGV - 2016 - COMPESA - Analista de Gestão - Administrador de Banco de
Dados) No contexto do projeto de bancos de dados, é possível derivar novas dependências
a partir de um conjunto inicial de dependências funcionais, o que é feito por meio da
aplicação de axiomas de derivação. Os axiomas que estabelecem essas regras de derivação
são
a) se X → Y e Y → Z então X→ Z se X contém Y então X →Y se X → Y então XW →
YW
b) se X → Y e Y → Z então X → Z se X contém Y então X →Y se X → Y então X → YW
c) se X → Y e W → Y então X → W se X contém Y então Y →X se X → Y então XW →
YW
d) se X → Y e Y → Zentão X → Z se Y contém X então X →Y se X → YW então Y →
XW
e) se X→ Y e Z → Y então X → Z se X contém Y então Y → X se X → Y então XW →
YW
Resolução:
As quatro propriedades básicas das dependências funcionais são:
- Unicidade: se a: X → Y e b: X →Y; a=b
- Reflexibilidade: Se X contém Y, então X → Y;
- Transitividade: se X → Y, e Y → Z então X → Z
- União: se X → Y, X → Z então X → YZ
Gabarito: Letra A.
22- (FGV - 2016 - COMPESA - Analista de Gestão - Administrador de Banco de
Dados) A teoria de consultas para bancos de dados relacionais supõe cinco operações
primitivas para a álgebra relacional, o que significa que o efeito de nenhuma dessas cinco
operações pode ser obtido pela combinação das demais. Assinale a opção que indica a lista
dessas operações.
a) Seleção, projeção, produto, união e junção.
b) Junção, projeção, produto, união e divisão.
c) Seleção, projeção, produto, junção e diferença.
d) Seleção, projeção, junção, interseção e diferença.
e) Seleção, projeção, produto, união e diferença.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
121
Resolução:
As cinco operações primitivas da álgebra relacional são:
Seleção (σ) Retorna as tuplas da relação que satisfazem um predicado.
Projeção (П) Retorna os atributos especificados de todas as linhas da relação de
entrada, removendo as tuplas duplicadas da saída.
Produto cartesiano
(X)
Retorna todos os pares de linhas das duas relações de entrada
(independentemente de ter ou não os mesmos valores em atributos
comuns).
União (Ս) Retorna as tuplas que estão na primeira relação, na segunda relação, ou
em ambas.
Diferença (-) Retorna tuplas que aparecem na primeira relação, mas não estão na
segunda.
Gabarito: Letra E.
23- (FGV - 2016 - IBGE - Analista - Análise de Sistemas - Desenvolvimento de
Aplicações - Web Mobile) Na derivação de dependências funcionais num projeto
relacional, está correto afirmar que se A,B → X,Y
então é certo que:
a) A → X
b) A → X,Y
c) X,Y → A
d) A,B → X
e) X,Y → A,B
Resolução:
As dependências funcionais podem ser encontradas com base em algumas regras:
1. Separação: se A -> BC, então A -> B e A -> C.
• Exemplo: CPF -> nome, endereço então CPF -> nome e CPF -> endereço
2. Acumulação: se A -> B, então AC -> B.
• Exemplo: CPF -> endereço então CPF, idade -> endereço
3. Transitividade: se A -> B e B -> C, então A -> C.
• Exemplo: CPF -> código-cidade e código-cidade -> nome-cidade então CPF ->
nome-cidade
4. Pseudo-Transitividade: se A -> B e BC -> D, então AC -> D.
• Exemplo: CPF -> código-funcionário e código-funcionário, mês -> salário-
funcionário então CPF, mês -> salário-funcionário
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
122
Com base no afirmado na questão, temos a presença da separação, pois se A,B → X,Y, então
A,B -> X e A,B -> Y.
Gabarito: Letra D.
24- (FGV - 2016 - IBGE - Analista - Análise de Sistemas - Desenvolvimento de
Aplicações - Web Mobile) Considere uma tabela relacional R(A1, A2, ... , An) que, depois
de normalizada, foi decomposta num esquema com três tabelas, R1, R2 e R3. Nesse caso,
diz-se que a decomposição ocorreu sem perda quando:
a) todas as dependências funcionais existentes para os atributos de R1, R2, R3 são
preservadas em R;
b) qualquer instância de R pode ser recuperada a partir de junções de R1, R2 e R3;
c) nenhuma das tabelas R1, R2 e R3 contém todos os atributos de R;
d) todas as tabelas R1, R2 e R3 possuem chaves primárias;
e) a soma do número de atributos de cada tabela R1, R2 e R3 é maior que o número de
atributos de R.
Resolução:
Uma decomposição é sem perdas se for sempre possível reconstruir a instância da tabela
original efetuando a junção das instâncias correspondentes das tabelas decompostas.
Gabarito: Letra B.
25- (FGV - 2015 - DPE-RO - Analista da Defensoria Pública - Analista
Programador) Observe a instância de uma tabela relacional R, mostrada a seguir.
A dependência funcional que certamente NÃO pode ser depreendida dessa instância é:
a) A1 → A2
b) A1,A2 → A2
c) A2 → A3
d) A1 → A3
e) A3 → A2
Resolução:
Analisando a tabela e seus dados temos:
a) Correto: A1 → A2, para cada valor de A1, não há mais de um valor em A2.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
123
b) Correto: A1,A2 → A2, para cada combinação de valores de A1 e A2, não há mais de um
valor em A3.
c) Correto: A2 → A3, para cada valor de A2, não há mais de um valor em A3.
d) Correto: A1 → A3, para cada valor de A1, não há mais de um valor em A3.
e) Incorreto: A3 → A2 não é válido, pois para dois valores iguais de A3, podemos encontrar
dois valores diferentes em A2. Exemplo: valor 3 de A3 nos leva a valores 6 e 4 de A2.
Gabarito: Letra E.
26- (FGV - 2015 - DPE-RO - Analista da Defensoria Pública - Analista
Programador) Considere um projeto de bancos de dados relacional onde as seguintes
dependências funcionais se verificam.
C1 → C2
C1 → C3
C3 → C4
Uma tabela T de atributos C1, C2, C3, C4, na qual C1 é um identificador, verifica a terceira
forma normal somente se:
a) C1 e C2 forem definidos como identificadores para T;
b) C4 determinar C3;
c) C3 determinar C1;
d) C1 e C3 forem definidos como identificadores para T;
e) C3 for definido como o único identificador para T.
Resolução:
Uma relação está na Terceira Forma Normal (3FN) se estiver na 2FN e cada atributo
não chave não possuir dependência transitiva, para cada chave candidata. Todos os
atributos dessa tabela devem ser independentes uns dos outros, ao mesmo tempo que devem
ser dependentes exclusivamente da chave primária da tabela.
No caso da questão, temos que C1 é determinante de todos os demais atributos. Contudo,
há uma dependência transitiva, pois C1 → C3 e C3 → C4, então C1 → C4.
A banca deu como gabarito o item C, definindo C3 como determinante de C1. Contudo,
somente com isso, teríamos a seguinte situação:
▪ C3 → C1 (gabarito dado)
▪ C3 → C2 (dependência transitiva, pois C3 → C1 e C1 → C2, então C3 → C2)
▪ C3 → C4 (já determina)
Assim, eliminaríamos uma dependência transitiva e criaríamos outra.
Gabarito: Letra C. Gabarito do Professor: ANULADA.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
124
27- (FGV - 2015 - TJ-PI - Analista Judiciário - Analista de Sistemas / Banco de
Dados) Das propriedades desejadas nas implementações de bancos de dados, designadas
pelo acrônimo ACID, o “D” de durabilidade é extremamente importante porque trata da
persistência dos dados mesmo no caso de falhas graves. Usualmente, a técnica empregada
para garantir essa propriedade baseia-se na utilização de:
a) algoritmos de controle de concorrência;
b) comandos de commit e rollback;
c) chaves estrangeiras e outras cláusulas que possam prevenir os erros mais comuns;
d) redundância de dados;
e) sistemas distribuídos.
Resolução:
Vamos verificar a qual propriedade os itens estão relacionados:
a) Isolamento: algoritmos de controle de concorrência;
b) Atomicidade: comandos de commit e rollback;
c) Consistência: chaves estrangeiras e outras cláusulas que possam prevenir os erros mais
comuns;
d) Durabilidade: redundância de dados;
e) Não tem relação com propriedades ACID: sistemas distribuídos.
Gabarito: Letra D.
28- (FGV - 2015 - TJ-PI - Analista Judiciário - Analista de Sistemas / Banco de
Dados) Considere uma tabela relacional T definida para osatributos A, B, C e D, todos
com valores atômicos. Considere também que o atributo A foi definido como chave primária
dessa tabela.
R (A, B, C, D)
As dependências funcionais definidas para os atributos dessa tabela são:
A → B
B → C
A → D
A → C
Como definida acima, a tabela T viola a forma normal conhecida como
a) 1FN;
b) 2FN;
c) 3FN;
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
125
d) FN Boyce-Codd;
e) 4FN.
Resolução:
Podemos notar rapidamente que há uma dependência transitiva na tabela, pois
A → B, B → C e A → C
Logo, há violação da 3ª Forma Normal.
Gabarito: Letra C.
29- (FGV - 2015 - TJ-PI - Analista Judiciário - Analista de Sistemas /
Desenvolvimento) No Brasil, cada pessoa possui apenas um CPF e cada pessoa pode
possuir apenas um nome. Quando numa tabela de um banco relacional há uma coluna com
o CPF de uma pessoa e seu respectivo nome, a coluna CPF deve ser uma chave, primária
ou candidata.
Essa exigência faz parte do processo de normalização do banco de dados, e é decorrente do
enunciado da:
a) primeira forma normal;
b) segunda forma normal;
c) terceira forma normal;
d) forma normal Boyce-Codd;
e) quarta forma normal.
Resolução:
Como a questão afirma que a coluna CPF que é determinante deve ser chave, então está se
referindo a forma normal de Boyce-Codd.
Gabarito: Letra D.
30- (FGV - 2014 - PROCEMPA - Analista em TI e Comunicação - Analista em
Infraestrutura e Redes Computacionais) Na implementação do controle de concorrência
na execução de transações concomitantes de bancos, o dirty read é um dos fenômenos a
evitar.
Essa situação caracteriza-se sempre que
a) uma transação lê dados gravados num dispositivo de armazenamento com defeito.
b) uma transação grava dados gravados por outra transação que já foi confirmada
(committed).
c) uma transação lê dados gravados por outra transação que ainda não foi confirmada
(committed).
d) uma operação de leitura falha porque a tabela ao qual pertence está bloqueada.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
126
e) uma operação de leitura falha por falta de permissão.
Resolução:
Leitura suja ocorre quando a transação lê dados escritos por uma transação simultânea não
efetivada.
Gabarito: Letra C.
31- (FGV - 2014 - PROCEMPA - Analista em TI e Comunicação - Analista em
Infraestrutura e Redes Computacionais) Considere uma transação de banco de dados que
transfere uma quantia X de uma conta A para outra, B. A transação consiste de uma leitura
e gravação de A, seguida da leitura e gravação de B. Admita que o programador construiu
seu programa corretamente.
Caso ocorra algum tipo de erro nas operações sobre B, interrompendo o curso normal da
transação, o sistema gerenciador do banco de dados deve agir para corrigir a situação e
garantir que as propriedades da transação sejam respeitadas.
A propriedade resguardada, nesse caso, é conhecida como
a) atomicidade.
b) consistência.
c) durabilidade.
d) isolamento.
e) independência de dados
Resolução:
A propriedade descrita é a da Atomicidade.
As propriedades das transações ou ACID são:
Gabarito: Letra A.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
127
32- (FGV - 2014 - Câmara Municipal do Recife-PE - Analista de Sistemas) Considere
uma tabela T num banco de dados relacional cujos atributos são C, D, E, N e as seguintes
dependências:
C → D
D → C
C → N
C → E
Para que a tabela T esteja normalizada na forma normal Boyce-Codd, é preciso que:
a) C seja definido como o único identificador;
b) D seja definido como o único identificador;
c) C e D, separadamente, sejam definidos como os dois únicos identificadores;
d) não haja identificadores;
e) C e D, em conjunto, sejam definidos como o único identificador.
Resolução:
Para cumprir a forma normal de Boyce-Codd, todo atributo determinante deve ser chave.
Logo, das dependências trazidas na questão, C e D devem ser chaves. Dito isto, vejamos os
itens:
a) Incorreto: D também é um identificador ou chave.
b) Incorreto: C também é um identificador ou chave.
c) Correto: perfeitamente. Perceba que C é determinante para os atributos D, N e E. Da
mesma forma, D é determinante para C. Logo, eles devem ser chave.
d) Incorreto: os identificadores serão C e D.
e) Incorreto: C e D serão identificadores separados. Eles não determinam o mesmo
conjunto de atributos, mas sim atributos diferentes: C determina D, N e E; D determina C.
Gabarito: Letra C.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
128
33- (FGV - 2014 - Câmara Municipal do Recife-PE - Analista de Sistemas) Observe
a instância da tabela de um banco de dados relacional mostrada a seguir.
A dependência funcional que NÃO é válida nessa tabela é:
a) Y → Z
b) UV → V
c) W → X
d) UX → YX
e) Z → U
Resolução:
Um conceito relevante para o entendimento das próximas formas normais é o de
dependência funcional, que é um relacionamento entre dois ou mais atributos de forma
que o valor de um atributo identifique o valor para cada um dos outros atributos, ou seja,
um atributo está relacionado a outro. A dependência funcional pode ser ilustrada por →.
Assim, em A → B, temos que “A determina B” ou “B é dependente (funcionalmente) de
A”, isto é, o valor de B pode ser descoberto sabendo o valor de A.
Vamos verificar os itens:
a) Incorreto: Y → Z não é válida. Note que para um mesmo valor de Y = 1, temos valores
diferentes de Z, isto é, não é possível descobrir o valor de Z, a partir do valor de Y.
b) Correto: UV → V é válida. Para uma mesma combinação de valores U e V, não temos
mais de um valor V. Exemplo: (1,23) -> 23; (2;25) -> 25. Isto é, não existem dois valores
possíveis de V para uma mesma combinação de valores UV.
c) Correto: W → X é válida. Para cada valor de W, não temos valores diferentes em X.
Exemplo: (A) -> (PP); (B) -> (DF).
d) Correto: UX → YX é válida. Observe que nenhum valor diferente da combinação YX é
obtido a partir da mesma combinação UX.
e) Correto: Z → U é válida. Não há dois valores de U que decorrem de um mesmo valor
em Z.
Gabarito: Letra A.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
129
34- (FGV - 2014 - TJ-GO - Analista Judiciário - Análise de Sistemas -
Desenvolvimento) Considere a tabela de um banco de dados relacional
R(A, B, C, D)
onde os atributos A e B, separadamente, são identificadores. Nesse caso, o processo de
normalização da tabela R requer que, entre outras, seja preservada a dependência funcional:
a) B→ A
b) C→ D
c) D → A
d) C → A
e) C → B
Resolução:
C e D não devem ser determinantes, pois não são identificadores, logo, eliminamos os itens
b), c), d) e e).
Se A e B são identificadores, eles devem ser determinantes. Sendo assim, a única opção
válida é B -> A.
Gabarito: Letra A.
35- (FGV - 2014 - TJ-GO - Analista Judiciário - Análise de Sistemas -
Desenvolvimento) No âmbito do projeto de bancos de dados, os Axiomas de Armstrong
têm um importante papel porque permitem a derivação de dependências funcionais. Uma
derivação que NÃO é válida é:
a) se X → Y e Y → Z então X→Z
b) se X → Y então XZ →YZ
c) se Y⊆ X então X → Y
d) se X→Y e X→Z então X →YZ
e) se X → Y e Z → Y então X →YZ
Resolução:
Vejamos a qual axioma se referem os itens:
a) Correto: axioma da transitividade.b) Correto: axioma da expansibilidade.
c) Correto: axioma da reflexibilidade.
d) Correto: axioma da união.
e) Incorreto: não há regra nesse sentido.
Gabarito: Letra E.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
130
36- (FGV - 2014 - DPE-RJ - Técnico Superior Especializado - Administração de
Dados) Dependências funcionais podem ser combinadas de modo que novas dependências
sejam derivadas a partir de um conjunto inicial de dependências. Essas regras de derivação
são conhecidas como Axiomas de Armstrong. Assim, a partir das dependências funcionais
F -> G
G -> H
I -> J
é possível, por meio desses axiomas, derivar
a) G,H -> F
b) H -> J
c) H -> F
d) F,G -> H,J
e) F -> H
Resolução:
Galera, percebam que temos aqui uma transitividade, pois:
Como F -> G e G -> H, então F -> H.
Gabarito: Letra E.
37- (FGV - 2013 - AL-MT - Analista de Sistemas - Banco de Dados) Dependências
funcionais podem ser combinadas de modo que novas dependências sejam derivadas a partir
de um conjunto inicial de dependências. Essas regras de derivação são conhecidas como
Axiomas de Armstrong. Assim, a partir das dependências funcionais
Leia o fragmento a seguir:
“Um esquema de relação S está na _____ forma normal com relação a um conjunto de
dependências F (que inclui dependências funcionais e dependências multivaloradas) se, para
cada dependência multivalorada não trivial X -> -> Y em F, X é uma superchave para R.”
Assinale a alternativa cujo item completa corretamente a lacuna do fragmento acima.
a) primeira
b) segunda
c) terceira
d) quarta
e) Quinta
Resolução:
A definição é da quarta forma normal. Uma tabela está na Quarta Forma Normal (4FN)
se, e somente se, está na 3FN e não possui dependência multivalorada.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
131
Gabarito: Letra D.
38- (FGV - 2013 - AL-MT - Analista de Sistemas - Banco de Dados) Com relação às
definições dos diferentes tipos de chaves em um projeto de Banco de Dados, analise as
afirmativas a seguir.
I. Em alguns casos, mais de uma coluna ou combinações de colunas podem servir para
distinguir uma linha das demais. Se uma das colunas (ou combinação de colunas) é escolhida
como chave primária, as demais são denominadas chaves estrangeiras.
II. Uma chave estrangeira é uma coluna ou uma combinação de colunas cujos valores
aparecem necessariamente na chave primária de uma tabela. A chave estrangeira é o
mecanismo que permite a implementação de relacionamentos em um banco de dados
relacional.
III. Uma chave primária é uma coluna ou uma combinação de colunas cujos valores não
distinguem uma linha das demais dentro de uma tabela.
Assinale:
a) se somente a afirmativa I estiver correta.
b) se somente a afirmativa II estiver correta.
c) se somente a afirmativa III estiver correta.
d) se somente as afirmativas I e II estiverem corretas.
e) se todas as afirmativas estiverem corretas.
• Todos os atributos são atômicos.
• Não possui atributos multivalorados nem compostos.
1FN
• Está na 1FN.
• Cada atributo não-chave é dependente da chave primária (ou candidata) inteira. (Dependência
funcional total)
• Cada atributo não-chave não pode ser dependente de apenas parte da chave.
2FN
• Está na 2FN.
• Cada atributo não chave não possui dependência transitiva, para cada chave candidata.
• Todos os atributos dependem exclusivamente da chave primária da tabela.
3FN
• Está na 3FN (variação forte da 3FN).
• Todo determinante é chave candidata.
• Não há dependências entre atributos não chave.
BCFN
• Está na 3FN.
• Não possui dependência multivalorada.
4FN
• Está na 4FN.
• Não possui dependência de junção.
5FN
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
132
Resolução:
Vamos analisar cada um dos itens:
I. Incorreto: Em alguns casos, mais de uma coluna ou combinações de colunas podem servir
para distinguir uma linha das demais. Se uma das colunas (ou combinação de colunas) é
escolhida como chave primária, as demais são denominadas chaves estrangeiras
secundárias.
II. Correto: Uma chave estrangeira é uma coluna ou uma combinação de colunas cujos
valores aparecem necessariamente na chave primária de uma tabela. A chave estrangeira é
o mecanismo que permite a implementação de relacionamentos em um banco de dados
relacional.
III. Incorreto: Uma chave primária é uma coluna ou uma combinação de colunas cujos
valores não distinguem uma linha das demais dentro de uma tabela.
Gabarito: Letra B.
39- (FGV - 2013 - AL-MT - Analista de Sistemas - Banco de Dados) A capacidade de
alterar o esquema conceitual, sem que seja necessário alterar os esquemas externos ou os
programas de aplicação, é denominada
a) independência lógica de dados.
b) independência física de dados.
c) independência interna de dados.
d) fragmentação de dados.
e) transparência de dados.
Resolução:
Temos dois tipos de independência de dados:
Gabarito: Letra A.
Independência
Lógica
Capacidade de alterar o esquema conceitual
sem ter de alterar os esquemas externos ou
de programas de aplicação.
Física
Capacidade de alterar o esquema interno sem
ter de alterar o esquema conceitual e, por
consequência, sem ter que alterar os esquemas
externos.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
133
40- (FGV - 2013 - AL-MT - Analista de Sistemas - Programador) Sobre o uso do
valor null em relações em um SGBD relacional, analise as afirmativas a seguir.
I. Sua representação interna é igual a zero em campos numéricos ou espaço em branco em
campos do tipo varchar2.
II. São usados para representar valores de atributos que podem ser desconhecidos ou não
aplicáveis a uma tupla em particular.
III. São normalmente utilizados para representar valores desconhecidos em chaves-
primárias.
Assinale:
a) se somente a afirmativa I estiver correta.
b) se somente a afirmativa II estiver correta.
c) se somente a afirmativa III estiver correta.
d) se somente as afirmativas I e II estiverem corretas.
e) se todas as afirmativas estiverem corretas.
Resolução:
Vamos analisar cada um dos itens:
I. Incorreto: NULL não é igual a zero nem a espaço em branco.
II. Correto: Um conceito importante é o dos valores NULL, que são usados para
representar os valores de atributos que podem ser desconhecidos ou não se aplicam a
uma tupla.
III. Incorreto: chaves-primárias não podem ser NULL.
Gabarito: Letra B.
41- (FGV - 2012 - Senado Federal - Analista Legislativo - Análise de Suporte de
Sistemas - Reaplicação) Fabricantes de armas são obrigados a imprimir um número de
série em cada uma de suas armas, identificando assim, unicamente, cada arma produzida.
No modelo de dados para um certo fabricante de armas, existe uma entidade chamada
"arma" com um atributo chamado "num_serie".
Com referência a este cenário, para a entidade "arma", "num_serie" é um atributo do tipo:
a) Chave alternativa (alternate key).
b) Chave composta (composite key).
c) Chave primária (primary key).
d) Chave estrangeira (foreign key).
e) Chave migrada (migrated key).
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
134
Resolução:
Se o atributo identifica unicamente cada uma das armas, então ele é chave primária.
Lembrando que chave primária é uma escolha dentre várias chaves candidatas possíveis,
mas como na questão não temos outrasopções, então ficamos com chave primária sem
nenhuma dúvida.
Gabarito: Letra C.
42- (FGV - 2010 - FIOCRUZ - Tecnologista em Saúde - Geoprocessamento) Sobre
banco de dados orientado a objeto, pode-se dizer que:
a) é um banco de dados no qual os dados são guardados como propriedades de objetos, e os
objetos são valores definidos segundo classes, ou tipos de dados complexos.
b) é formado por tabelas e registros de dados inseridos nas tabelas que estão diretamente
vinculados ao dado primário.
c) é um banco de dados que opera em rede e permite que várias tabelas sejam usadas
simultaneamente por meio do uso de referências.
d) diferencia-se de outros modelos de bancos de dados no sentido em que especifica a forma
do resultado e não o caminho para chegar a ele.
e) é um conjunto de bancos de dados logicamente inter-relacionados, distribuídos em rede.
Resolução:
O modelo de dados de objeto define um banco de dados em termos de objetos, suas
propriedades e operações. Objetos com a mesma estrutura e comportamento pertencem
a uma classe, e as classes são organizadas em hierarquias. As operações de cada classe são
especificadas com procedimentos predefinidos, chamados métodos.
Gabarito: Letra A.
43- (FGV - 2010 - FIOCRUZ - Tecnologista em Saúde - Geoprocessamento) Sobre
os Metadados, assinale a afirmativa correta.
a) São um conjunto de informações estruturadas que descrevem os dados (bases) que
representam, facilitando ao usuário o gerenciamento desses dados.
b) São o conjunto total de dados que integram um projeto de geoprocessamento.
c) São dados preliminares que necessitam de averiguação e eventuais correções para,
posteriormente, serem utilizados.
d) São o conjunto de dados que já passaram por todas as averiguações e já estão prontos
para utilização.
e) São dados que não foram utilizados e são arquivados para futuros trabalhos.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
135
Resolução:
Metadados (informações do descritor) são dados estruturados que descrevem,
identificam, explicam, localizam e, portanto, facilitam a recuperação, uso e gestão de
recursos de informação. São os chamados dados sobre outros dados.
Gabarito: Letra A.
44- (FGV - 2010 - DETRAN-RN - Programador de computador) Assinale a
alternativa que corresponde ao recurso do modelo de entidade-relacionamento, cuja
definição é “ser um conjunto de um ou mais atributos que, tomados coletivamente, permite-
se identificar de maneira unívoca uma entidade em um conjunto de entidades”:
a) Chave primária.
b) Superchave.
c) Especialização.
d) Generalização.
e) Herança de atributo.
Resolução:
Pessoal, pra mim temos duas respostas corretas.
Uma superchave é um conjunto de um ou mais atributos que, coletivamente, nos
permitem identificar de forma exclusiva uma tupla na relação. De outro modo, uma
superchave especifica uma restrição de exclusividade de que duas tuplas não podem ter
os mesmos valores para todos os seus atributos.
Uma chave primária também serve para identificar unicamente os registros, constituindo-
se de um atributo ou conjunto de atributos. A diferença é que uma chave primária é uma
escolha dentre as possíveis chaves candidatas de uma tabela. E uma chave candidata é uma
superchave mínima.
Ou seja, todas essas chaves servem para distinguir as entidades ou registros.
Para fixar os conceitos de chave, trago um esquema.
Portanto, considero que esta questão deveria ter sido ANULADA, mas a banca deu como
correto o item B, talvez por ser o mais genérico dos conceitos e ter definição literal da forma
trazida na questão.
Gabarito: Letra B. Gabarito do Professor: ANULADA.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
136
45- (FGV - 2010 - DETRAN-RN - Assessor Técnico - Administração de Banco de
Dados) Sobre Bancos de Dados Relacionais, analise:
I. A abordagem relacional está baseada no princípio de que as informações em uma base de
dados podem ser consideradas relações matemáticas e que estão representadas de maneira
uniforme com o uso de tabelas bidimensionais.
II. A teoria relacional enxerga o banco de dados como um conjunto de tabelas, e as
operações que as utilizam são feitas por linguagem que o manipula, não sendo procedurais,
ou seja, manipulando conjuntos de uma só vez.
III. É indispensável aos usuários saber como e onde os dados estão armazenados. Está(ão)
correta(s) apenas a(s) afirmativa(s):
a) I, II
b) I, III
c) I
d) II
e) II, III
Resolução:
Vamos analisar cada um dos itens:
I. Correto: o modelo relacional usa o conceito de relação matemática como seu bloco de
montagem básico, e sua base teórica reside na teoria de conjunto e lógica de predicado
de primeira ordem. Com base neste modelo, um banco de dados relacional utiliza as
relações para representar tanto os dados quanto os relacionamentos entre estes dados.
II. Correto: a arquitetura ANSI/SPARC em três níveis considera que os Bancos de dados
relacionais consistem de três componentes:
❖ Uma coleção de estruturas de dados, formalmente chamadas de relações, ou
informalmente tabelas, compondo o nível conceitual;
❖ Uma coleção dos operadores, a álgebra e o cálculo relacionais, que constituem a
base da linguagem SQL;
❖ Uma coleção de restrições da integridade, definindo o conjunto consistente de
estados de base de dados e de alterações de estados.
III. Incorreto: os usuários não precisam saber onde e como os dados estão armazenados.
Gabarito: Letra A.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
137
46- (FGV - 2010 - BADESC - Analista de Sistemas - Banco de Dados) Com relação
à especificação e à manipulação de um atributo multivalorado pelos SGBDs, analise as
afirmativas a seguir.
I. O modelo de dados relacional (especificado por Codd), não aceita este tipo de atributo,
multivalorado. O modelo de dados relacional preconiza que este atributo deve ser
processado pela implementação de uma tabela que possa contê-lo.
II. O modelo de dados relacional (especificado por Codd) especifica que para processar um
atributo multivalorado deve antes normalizar a tabela onde o mesmo se encontra.
III. O modelo de objetos determina que todos os atributos de um objeto, inclusive os
multivalorados, sejam encapsulados no objeto, permitindo, desta forma, a sua
implementação e processamento.
a) se somente a afirmativa I estiver correta.
b) se somente a afirmativa II estiver correta.
c) se somente a afirmativa III estiver correta.
d) se somente as afirmativas I e II estiverem corretas.
e) se todas as afirmativas estiverem corretas.
Resolução:
Vamos analisar cada um dos itens:
I. Correto: para ser considerado relacional, um banco de dados deve possui tabelas somente
com atributos atômicos. Não são aceitos atributos compostos ou multivalorados.
▪ Compostos: podem ser divididos em subpartes menores, que representam
atributos mais básicos. O valor é a concatenação de seus componentes atributos
simples. Podem formar hierarquia. Ex.: endereço completo com rua, número e
cep.
▪ Multivalorado: possui um conjunto de valores para a mesma entidade. Um
atributo multivalorado pode possuir um limite mínimo e máximo para restringir
o número de valores permitidos. Ex.: telefone que aceita mais de um número.
II. Correto: exatamente. Se existe um atributo multivalorado, então deve se proceder com
a normalização da tabela para deixá-la somente com atributos atômicos. Isto é o objetivo
da primeira forma normal (1FN).
III. Correto: o modelo de objetos não restringe a presença de atributos multivalorados,logo é permitido sim colocar estes atributos nos objetos deste modelo.
Gabarito: Letra E.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
138
47- (FGV - 2010 - BADESC - Analista de Sistemas - Banco de Dados) O conceito de
visão é muito útil e empregado na implementação de banco de dados.
O emprego do conceito visão tem as seguintes finalidades ou vantagens:
a) ocultar dados e fornecer o controle de redundâncias.
b) ocultar dados e fornecer independência de dados lógica.
c) fornecer controle de redundância e a restrição de integridade.
d) fornecer controle de redundância e independência de dados lógica.
e) fornecer a restrição de integridade e independência de dados lógica.
Resolução:
Uma visão (ou view) é uma única tabela que é derivada de outras tabelas, que podem
ser tabelas de base ou mesmo outras visões previamente definidas. Podemos ainda entender
uma visão como uma maneira alternativa de visualização dos dados de uma ou mais
tabelas. Tecnicamente, uma visão é uma consulta predefinida ou armazenada, que é
executada sempre que referenciada. Ela é utilizada para que não seja necessário refazer a
consulta sempre que for necessário utilizá-la.
Podemos destacar as seguintes vantagens de se utilizar visões:
❖ Economizar tempo com retrabalho.
❖ Velocidade de acesso às informações.
❖ Mascarar a complexidade do banco de dados. (vantagem descrita no item b)
❖ Simplificar o gerenciamento de permissões de usuários.
❖ Organizar dados a serem exportados para outros aplicativos.
Gabarito: Letra B.
48- (FGV - 2010 - BADESC - Analista de Sistemas - Banco de Dados) Os conceitos
que envolvem os termos restrição de integridade de entidade e restrição de integridade
referencial são, respectivamente:
a) nenhum atributo pertencente à chave primária poderá receber valor NULL / os valores
dos atributos que formam a chave estrangeira deverá existir na tabela onde a chave
estrangeira é chave primária, quando for diferente de NULL.
b) os valores dos atributos que formam a chave estrangeira deverá existir na tabela onde a
chave estrangeira é chave primária, quando for diferente de NULL / nenhum atributo
pertencente à chave primária poderá receber valor NULL.
c) nenhum atributo pertencente à chave primária poderá receber valor NULL / os valores
dos atributos que formam a chave estrangeira deverá existir na tabela onde a chave
estrangeira é chave primária, somente quando for igual a NULL.
d) os valores dos atributos que formam a chave estrangeira deverá existir na tabela onde a
chave estrangeira é chave primária, somente quando for igual a NULL / nenhum atributo
pertencente à chave primária poderá receber valor NULL.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
139
e) os atributos pertencentes à chave primária deverão conter sempre valores diferentes de
NULL / os valores dos atributos que formam a chave estrangeira deverá existir na tabela
onde a chave estrangeira é chave primária, somente quando for igual a NULL.
Resolução:
Os atributos das tuplas da chave devem possuir valores válidos, ou seja, não devem
permitir valor NULL. Este cuidado na verdade é uma restrição, a chamada restrição de
integridade da entidade.
A chave estrangeira é usada para manter a consistência das tuplas entre as relações.
Falamos em restrição de integridade referencial que afirma que uma tupla em uma
relação r1 que referencia outra relação r2, precisa se referir a uma tupla existente na
relação r2. De outro modo, uma chave estrangeira de uma relação deve existir como chave
na relação referenciada.
Gabarito: Letra A.
49- (FGV - 2010 - BADESC - Analista de Sistemas - Banco de Dados) A propriedade
de uma transação denominada de ACID envolve os seguintes conceitos:
a) Atômico, Concorrente, Isolamento e Durabilidade.
b) Atomicidade, Consistência, Isolamento e Durabilidade.
c) Atomicidade, Concorrente, Inconsistente e Durabilidade.
d) Atomicidade, Consistência, Integridade e Dependência de dados.
e) Atomicidade, Consistência, Isolamento e Dependência de dados.
Resolução:
As propriedades das transações são:
Gabarito: Letra B.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
140
50- (FGV - 2010 - BADESC - Analista de Sistemas - Desenvolvimento de Sistemas)
Acerca das transações realizadas em um Banco de Dados, assinale a afirmativa incorreta.
a) As transações controlam melhor apenas a concorrência.
b) As transações são unidades lógicas de trabalho numa aplicação.
c) A base de dados está em um estado consistente antes e depois de uma transação.
d) As transações de diferentes usuários que envolvem dados compartilhados são executadas
em sequência.
e) Um mecanismo de transação garante que toda transação iniciada termine com sucesso
ou é desfeita.
Resolução:
Vamos analisar cada um dos itens:
a) Incorreto: As transações controlam melhor apenas a concorrência, isolamento,
atomicidade e durabilidade.
b) Correto: Uma transação é um programa em execução ou processo que inclui um ou
mais acessos ou operações de banco de dados, como fazer a leitura do banco de dados
ou inserir, excluir e atualizar dados. Dito de outro modo, uma transação é uma unidade
lógica de trabalho que executa um conjunto de operações em um banco de dados.
c) Correto: uma transação deve, se for completamente executada do início ao fim sem
interferência de outras transações, levar o banco de dados de um estado consistente
para outro. Um estado consistente do banco de dados é aquele que satisfaz todas as suas
regras e restrições. Esta é a propriedade da consistência.
d) Correto: sinceramente não encontrei uma referência para este item, mas como o item a)
está incorreto, então consideremos isso como correto.
e) Correto: uma transação é uma unidade de processamento atômica; ela deve ser
realizada em sua totalidade ou não deve ser realizada de forma alguma. Esta é a
propriedade da atomicidade.
Gabarito: Letra A.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
141
51- (FGV - 2010 - BADESC - Analista de Sistemas - Desenvolvimento de Sistemas)
Diz-se que um agrupamento está na terceira forma normal se já estiver na segunda forma
normal e atender à seguinte condição:
a) se todo atributo não chave depende funcionalmente diretamente da chave primária.
b) se nenhum dos seus atributos depender funcionalmente de atributos não chave.
c) se cada atributo não chave depender funcionalmente da totalidade da chave.
d) se não houver a existência de grupos de valores repetidos.
e) se não existirem dependências multivaloradas.
Resolução:
Uma relação está na Terceira Forma Normal (3FN) se estiver na 2FN e cada atributo
não chave não possuir dependência transitiva, para cada chave candidata. Todos os
atributos dessa tabela devem ser independentes uns dos outros, ao mesmo tempo que devem
ser dependentes exclusivamente da chave primária da tabela.
Gabarito: Letra B.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
142
6. LISTA DE QUESTÕES
1- (FGV - 2021 - IMBEL - Supervisor - Tecnologia de Informação) Na teoria de
projetos de bancos de dados, o processo de normalização de uma tabela é feito a partir da
identificação
a) das chaves estrangeiras.
b) das dependências funcionais.
c) das junções que serão necessárias.
d) dos tipos de dados em cada coluna.
e) dos relacionamentosentre as tabelas.
2- (FGV - 2018 - Prefeitura de Niterói - RJ - Analista de Políticas Públicas e
Gestão Governamental - Gestão de Tecnologia) Considere duas tabelas: T1, com
atributos A e B, e T2, com atributos C e D. Nas duas tabelas as chaves primárias foram
definidas pelos atributos A e C, respectivamente. Não há outras chaves nessas tabelas além
das chaves primárias.
Na tabela T2, o atributo D é uma chave estrangeira que referencia a tabela T1. Não há
outras chaves estrangeiras nessas tabelas. As tabelas T1 e T2 estão perfeitamente
normalizadas.
Sabe-se que agora deve haver um relacionamento 1:1 entre essas duas tabelas.
Assinale a opção que apresenta a providência necessária para que esse requisito seja
atendido, de forma que o grau de normalização da tabela seja mantido.
a) Criar uma terceira tabela, com atributos A e C como chaves estrangeiras para T1 e T2,
sem alterar T1 e T2.
b) Definir o atributo B como unique em T1.
c) Alterar T2, definindo o atributo D como chave primária no lugar de C.
d) Definir o atributo D como unique em T2.
e) Incluir o atributo D na chave primária de T2.
3- (FGV - 2018 - AL-RO - Analista Legislativo - Banco de Dados) Considere uma
tabela relacional R com atributos A, B, C, D, e as seguintes dependências funcionais.
A → B
B → C
A → D
B → A
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
143
Estabelecendo-se que os atributos sublinhados identificam chaves, primárias ou candidatas,
o esquema correto para que se obtenha um projeto normalizado até a forma normal Boyce-
Codd, é
a) R (A, B, C, D)
b) R (A, B, C, D)
c) R (A, B, C, D)
d) R1 (A, C, D)
R2 (A, B)
e) R1 (A, B, D)
R2 (B, C)
4- (FGV - 2018 - AL-RO - Analista Legislativo - Banco de Dados) No âmbito da
teoria de projeto de bancos de dados relacionais, considere as seguintes dependências
funcionais para os atributos A, B, C, D.
A → B
B → C
C → D
Nesse caso, a dependência A → C poderia ser deduzida pelo axioma da
a) aumentabilidade.
b) completude.
c) reflexividade.
d) transitividade.
e) união.
5- (FGV - 2018 - AL-RO - Analista Legislativo - Análise e Desenvolvimento de
Sistemas) No contexto das propriedades desejadas para transações executadas em banco
de dados relacionais, é possível que, eventualmente, seja permitida ou forçada a leitura de
dados que foram modificados em operações ainda não confirmadas (comitted).
Assinale a principal propriedade que é flexibilizada na ocorrência de um dirty read.
a) Atomicidade.
b) Consistência.
c) Durabilidade.
d) Integridade referencial.
e) Isolamento.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
144
6- (FGV - 2018 - MPE-AL - Analista do Ministério Público - Administrador de
Banco de dados) No contexto da otimização de consultas para bancos de dados, a Álgebra
Relacional tem um papel importante, especialmente na construção das query trees para a
representação de planos de execução. As operações primitivas da AR são definidas como as
operações que não podem ser expressas por meio das demais operações. Assinale a opção
que apresenta a lista que contém as cinco operações primitivas da AR.
a) Diferença, divisão, projeção, seleção e união.
b) Diferença, produto, projeção, seleção e união.
c) Interseção, produto, projeção, seleção e união.
d) Divisão, interseção, junção, seleção e união.
e) Junção, produto, projeção, seleção e união.
7- (FGV - 2018 - MPE-AL - Analista do Ministério Público - Administrador de
Banco de dados) Considere uma tabela relacional T, com atributos A, B, C, D, E, na qual
as seguintes dependências funcionais se verificam:
A → B
B → C
C → D
D → E
E → A
Para que essa tabela esteja normalizada até a forma Boyce-Codd,
a) T deve possuir apenas um identificador, composto pela justaposição dos atributos A, B,
C, D e E.
b) T deve possuir apenas um identificador, composto pela justaposição dos atributos A e E.
c) T deve possuir três identificadores, cada um composto por um dos atributos A, D e E
individualmente.
d) T deve possuir cinco identificadores, cada um composto por um dos atributos A, B, C, D
e E individualmente.
e) nenhum identificador poderá ser estabelecido para T.
8- (FGV - 2018 - MPE-AL - Analista do Ministério Público - Desenvolvimento de
Sistemas) Num banco de dados relacional, considere uma tabela T, não normalizada
contendo os atributos CPF, Matrícula, Nome, Endereço, Telefone. Sobre esses atributos,
foram apuradas as seguintes dependências funcionais:
Matrícula → CPF
CPF → Nome
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
145
Matrícula → Endereço
Telefone → Matrícula
Assinale o esquema (com as chaves primárias sublinhadas) que está normalizado e
produzido com decomposição sem perda.
a) T1 (CPF, Nome)
T2 (Matrícula, CPF)
T3 (Telefone, Matrícula, Endereço)
b) T1 (CPF, Matrícula, Nome, Endereço)
T2 (Telefone, Matrícula)
c) T1 (CPF, Nome)
T2 (Matrícula, CPF, Endereço)
T3 (Telefone, Matrícula)
d) T1 (CPF, Nome)
T2 (Matrícula, CPF, Endereço)
T3 (Telefone, Matrícula)
e) T1 (CPF, Nome)
T2 (Matrícula, CPF)
T3 (Nome, Endereço)
T4 (Telefone, Matrícula)
9- (FGV - 2018 - MPE-AL - Analista do Ministério Público - Desenvolvimento de
Sistemas) Teoricamente, um banco de dados relacional poderia ser construído em uma
única tabela, chamada universal, na qual estariam presentes todos os atributos. Na prática,
porém, isso causaria enormes transtornos. Uma técnica de projeto de bancos é a de
decomposição sucessiva das tabelas, à luz das dependências entre atributos, até que se
chegue a um projeto normalizado com um nível de decomposição aceitável. Nesse processo,
deve haver uma preocupação especial para que essa decomposição seja sem perda. Assinale
a opção que apresenta o significado técnico da “decomposição sem perda”, no presente
contexto.
a) Cada atributo deve aparecer em uma ou mais tabelas, após a decomposição.
b) Cada atributo deve aparecer em apenas uma das tabelas obtidas pela decomposição.
c) Todos os estados representáveis na tabela universal deveriam ser alcançáveis por meio
da combinação das tabelas obtidas pela decomposição.
d) Todos os valores dos atributos que compõem a tabela universal podem estar presentes
em um ou mais dos atributos que compõem as tabelas obtidas pela decomposição.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
146
e) O número de atributos da tabela universal deve ser igual ao somatório do número de
atributos em cada uma das tabelas obtidas pela decomposição.
10- (FGV - 2018 - MPE-AL - Analista do Ministério Público - Desenvolvimento de
Sistemas) Considere uma tabela de banco de dados contendo informações de contato dos
clientes de uma empresa. Sabe-se que cada cliente pode ter um número variado de contatos,
da mesma natureza ou não. A seguir, um extrato da instância dessa tabela contendo os
dados completos de cinco clientes.
Sobre as dependências funcionais e multivaloradas para essa tabela, assinale a afirmativa
correta.
a) CódigoCliente → Natureza, Contato
b) CódigoCliente, Natureza → Contato
c) CódigoCliente →→ Natureza
d) Conta, Natureza → CódigoCliente
e) Além das dependências triviais, nenhuma outra dependência pode ser deduzida.
11- (FGV - 2018 - MPE-AL - Técnico do Ministério Público - Geral) Em um banco
de dados relacional, um nome da tabela, uma chave primária e um nome de coluna garantem
o acesso aa) um dado.
b) um SGBD.
c) uma linguagem de consulta.
d) uma partição.
e) uma visão.
12- (FGV - 2018 - MPE-AL - Técnico do Ministério Público - Geral) O conjunto de
programas responsável pelo gerenciamento de uma base de dados e que, entre outras
funções, suporta uma linguagem de consulta, gera relatórios e disponibiliza uma interface
para que os seus clientes possam incluir, alterar ou consultar dados, é chamado de
a) Banco de Dados Relacional (BDR).
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
147
b) Dicionário de Dados (DD).
c) Modelo Entidade Relacionamento (MER).
d) Sistema de Suporte à Decisão (SSD).
e) Sistema Gerenciador de Bancos de Dados (SGBD).
13- (FGV - 2018 - Banestes - Analista em Tecnologia da Informação - Suporte e
Infraestrutura) As propriedades usualmente requeridas para transações em bancos de
dados são identificadas pela sigla ACID.
Essas propriedades são:
a) assincronia, concorrência, integridade, durabilidade;
b) assincronia, consistência, isolamento, distribuição;
c) atomicidade, concorrência, integridade, durabilidade;
d) atomicidade, conformidade, independência, distribuição;
e) atomicidade, consistência, isolamento, durabilidade.
14- (FGV - 2018 - Banestes - Analista em Tecnologia da Informação -
Desenvolvimento de Sistemas) Considere as seguintes regras de derivação de
dependências funcionais no âmbito do projeto de banco de dados
I. Se X → Y então XY → Y
II. Se X → Y e X → Z então Y → Z
III. Se XY → Z então X → Z
Sobre essas afirmativas, conclui-se que:
a) nenhuma está correta;
b) somente I está correta;
c) somente II está correta;
d) somente III está correta;
e) todas estão corretas.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
148
15- (FGV - 2017 - SEPOG - RO - Analista em Tecnologia da Informação e
Comunicação) A figura a seguir mostra a estrutura das tabelas Produto, Venda e Cliente
pertencentes a um banco de dados de uma empresa comercial.
A tabela Venda contém um registro para cada venda efetuada pela companhia. A fim de
preservar a integridade referencial do banco de dados, assinale a opção que indica a coluna
ou colunas dessa tabela que deveria(m) ser chaves estrangeiras.
a) id_produto.
b) imposto e quantidade.
c) quantidade.
d) id_produto e quantidade.
e) id_cliente e id_produto.
16- (FGV - 2017 - IBGE - Analista Censitário - Análise de Sistemas - Suporte à
Produção) Em relação a banco de dados relacionais, analise as afirmativas abaixo:
I. Uma chave primária identifica um registro de forma única, não podendo eventualmente
assumir valor nulo.
II. Uma chave estrangeira não pode apontar para uma chave primária da mesma tabela.
III. Uma chave candidata é aquela que define uma combinação de atributos entre tabelas,
mas não pode ser uma chave primária.
Está correto o que se afirma em:
a) I;
b) II;
c) III;
d) I e II;
e) I, II e III.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
149
17- (FGV - 2017 - IBGE - Analista Censitário - Análise de Sistemas - Suporte à
Produção) Uma empresa possui informações sobre suas vendas em uma tabela, contendo
as seguintes colunas:
cliente, vendedor, produto
Para cada produto, cada cliente tem contato apenas com um vendedor. Cada vendedor
vende apenas um produto. Um produto pode ser vendido por vários vendedores.
A chave primária é o conjunto (cliente, vendedor). Em termos de normalização de dados, e
considerando-se a maior normalização possível, é correto dizer que essa tabela encontra-se
na:
a) primeira forma normal;
b) segunda forma normal;
c) terceira forma normal;
d) forma normal de Boyce-Codd;
e) quarta forma normal.
18- (FGV - 2017 - IBGE - Analista Censitário - Análise de Sistemas - Suporte à
Produção) Na década de 80, Edgar Frank Codd definiu um conjunto de regras para definir
o que são bancos de dados relacionais.
A opção que NÃO faz parte dessas regras, é:
a) qualquer visualização que teoricamente possa ser atualizada deve ser realizada através
do próprio sistema;
b) aplicativos e recursos ad hoc não devem ser afetados logicamente quando os métodos de
acesso ou as estruturas de armazenamento físico forem alterados;
c) restrições de integridade necessitam ser especificadas dentro dos programas de aplicação,
de modo que mudanças nessas restrições sejam observadas por essas aplicações;
d) todas as informações no banco devem ser representadas logicamente como valores de
coluna em linhas dentro das tabelas;
e) os usuários finais e aplicativos não devem conhecer nem serem afetados pela localização
dos dados.
19- (FGV - 2017 - IBGE - Analista Censitário - Análise de Sistemas -
Desenvolvimento de Aplicações) Em projetos de Banco de Dados Relacional, a
dependência funcional representada por
A→B e B→C, então A→C
é a base para caracterizar que uma relação está na:
a) primeira, mas não na segunda forma normal;
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
150
b) primeira e na segunda forma normal;
c) segunda e na terceira forma normal;
d) terceira forma normal, mas não na forma normal de Boyce/Codd;
e) terceira forma normal e na forma normal de Boyce/Codd.
20- (FGV - 2016 - Prefeitura de Paulínia - SP - Analista de Sistemas) A execução de
transações de bancos de dados deve observar um conjunto de propriedades, cuja finalidade
é a manutenção da integridade dos dados armazenados nas tabelas.
Assinale a opção que apresenta as propriedades usualmente implementadas nos sistemas
gerenciadores de bancos de dados.
a) Independência de dados e integridade referencial.
b) Manutenção de logs e extração de backups.
c) Segurança, criptografia e sigilo.
d) Atomicidade, durabilidade, consistência e isolamento.
e) Performance, segurança e escalabilidade.
21- (FGV - 2016 - COMPESA - Analista de Gestão - Administrador de Banco de
Dados) No contexto do projeto de bancos de dados, é possível derivar novas dependências
a partir de um conjunto inicial de dependências funcionais, o que é feito por meio da
aplicação de axiomas de derivação. Os axiomas que estabelecem essas regras de derivação
são
a) se X → Y e Y → Z então X→ Z se X contém Y então X →Y se X → Y então XW →
YW
b) se X → Y e Y → Z então X → Z se X contém Y então X →Y se X → Y então X → YW
c) se X → Y e W → Y então X → W se X contém Y então Y →X se X → Y então XW →
YW
d) se X → Y e Y → Z então X → Z se Y contém X então X →Y se X → YW então Y →
XW
e) se X→ Y e Z → Y então X → Z se X contém Y então Y → X se X → Y então XW →
YW
22- (FGV - 2016 - COMPESA - Analista de Gestão - Administrador de Banco de
Dados) A teoria de consultas para bancos de dados relacionais supõe cinco operações
primitivas para a álgebra relacional, o que significa que o efeito de nenhuma dessas cinco
operações pode ser obtido pela combinação das demais. Assinale a opção que indica a lista
dessas operações.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
151
a) Seleção, projeção, produto, união e junção.
b) Junção, projeção, produto, união e divisão.
c) Seleção, projeção, produto, junção e diferença.
d) Seleção, projeção, junção, interseção e diferença.
e) Seleção, projeção, produto, união e diferença.
23- (FGV - 2016 - IBGE - Analista - Análise de Sistemas - Desenvolvimento de
Aplicações - Web Mobile) Na derivaçãode dependências funcionais num projeto
relacional, está correto afirmar que se A,B → X,Y
então é certo que:
a) A → X
b) A → X,Y
c) X,Y → A
d) A,B → X
e) X,Y → A,B
24- (FGV - 2016 - IBGE - Analista - Análise de Sistemas - Desenvolvimento de
Aplicações - Web Mobile) Considere uma tabela relacional R(A1, A2, ... , An) que, depois
de normalizada, foi decomposta num esquema com três tabelas, R1, R2 e R3. Nesse caso,
diz-se que a decomposição ocorreu sem perda quando:
a) todas as dependências funcionais existentes para os atributos de R1, R2, R3 são
preservadas em R;
b) qualquer instância de R pode ser recuperada a partir de junções de R1, R2 e R3;
c) nenhuma das tabelas R1, R2 e R3 contém todos os atributos de R;
d) todas as tabelas R1, R2 e R3 possuem chaves primárias;
e) a soma do número de atributos de cada tabela R1, R2 e R3 é maior que o número de
atributos de R.
25- (FGV - 2015 - DPE-RO - Analista da Defensoria Pública - Analista
Programador) Observe a instância de uma tabela relacional R, mostrada a seguir.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
152
A dependência funcional que certamente NÃO pode ser depreendida dessa instância é:
a) A1 → A2
b) A1,A2 → A2
c) A2 → A3
d) A1 → A3
e) A3 → A2
26- (FGV - 2015 - DPE-RO - Analista da Defensoria Pública - Analista
Programador) Considere um projeto de bancos de dados relacional onde as seguintes
dependências funcionais se verificam.
C1 → C2
C1 → C3
C3 → C4
Uma tabela T de atributos C1, C2, C3, C4, na qual C1 é um identificador, verifica a terceira
forma normal somente se:
a) C1 e C2 forem definidos como identificadores para T;
b) C4 determinar C3;
c) C3 determinar C1;
d) C1 e C3 forem definidos como identificadores para T;
e) C3 for definido como o único identificador para T.
27- (FGV - 2015 - TJ-PI - Analista Judiciário - Analista de Sistemas / Banco de
Dados) Das propriedades desejadas nas implementações de bancos de dados, designadas
pelo acrônimo ACID, o “D” de durabilidade é extremamente importante porque trata da
persistência dos dados mesmo no caso de falhas graves. Usualmente, a técnica empregada
para garantir essa propriedade baseia-se na utilização de:
a) algoritmos de controle de concorrência;
b) comandos de commit e rollback;
c) chaves estrangeiras e outras cláusulas que possam prevenir os erros mais comuns;
d) redundância de dados;
e) sistemas distribuídos.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
153
28- (FGV - 2015 - TJ-PI - Analista Judiciário - Analista de Sistemas / Banco de
Dados) Considere uma tabela relacional T definida para os atributos A, B, C e D, todos
com valores atômicos. Considere também que o atributo A foi definido como chave primária
dessa tabela.
R (A, B, C, D)
As dependências funcionais definidas para os atributos dessa tabela são:
A → B
B → C
A → D
A → C
Como definida acima, a tabela T viola a forma normal conhecida como
a) 1FN;
b) 2FN;
c) 3FN;
d) FN Boyce-Codd;
e) 4FN.
29- (FGV - 2015 - TJ-PI - Analista Judiciário - Analista de Sistemas /
Desenvolvimento) No Brasil, cada pessoa possui apenas um CPF e cada pessoa pode
possuir apenas um nome. Quando numa tabela de um banco relacional há uma coluna com
o CPF de uma pessoa e seu respectivo nome, a coluna CPF deve ser uma chave, primária
ou candidata.
Essa exigência faz parte do processo de normalização do banco de dados, e é decorrente do
enunciado da:
a) primeira forma normal;
b) segunda forma normal;
c) terceira forma normal;
d) forma normal Boyce-Codd;
e) quarta forma normal.
30- (FGV - 2014 - PROCEMPA - Analista em TI e Comunicação - Analista em
Infraestrutura e Redes Computacionais) Na implementação do controle de concorrência
na execução de transações concomitantes de bancos, o dirty read é um dos fenômenos a
evitar.
Essa situação caracteriza-se sempre que
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
154
a) uma transação lê dados gravados num dispositivo de armazenamento com defeito.
b) uma transação grava dados gravados por outra transação que já foi confirmada
(committed).
c) uma transação lê dados gravados por outra transação que ainda não foi confirmada
(committed).
d) uma operação de leitura falha porque a tabela ao qual pertence está bloqueada.
e) uma operação de leitura falha por falta de permissão.
31- (FGV - 2014 - PROCEMPA - Analista em TI e Comunicação - Analista em
Infraestrutura e Redes Computacionais) Considere uma transação de banco de dados que
transfere uma quantia X de uma conta A para outra, B. A transação consiste de uma leitura
e gravação de A, seguida da leitura e gravação de B. Admita que o programador construiu
seu programa corretamente.
Caso ocorra algum tipo de erro nas operações sobre B, interrompendo o curso normal da
transação, o sistema gerenciador do banco de dados deve agir para corrigir a situação e
garantir que as propriedades da transação sejam respeitadas.
A propriedade resguardada, nesse caso, é conhecida como
a) atomicidade. b) consistência. c) durabilidade.
d) isolamento. e) independência de dados.
32- (FGV - 2014 - Câmara Municipal do Recife-PE - Analista de Sistemas) Considere
uma tabela T num banco de dados relacional cujos atributos são C, D, E, N e as seguintes
dependências:
C → D
D → C
C → N
C → E
Para que a tabela T esteja normalizada na forma normal Boyce-Codd, é preciso que:
a) C seja definido como o único identificador;
b) D seja definido como o único identificador;
c) C e D, separadamente, sejam definidos como os dois únicos identificadores;
d) não haja identificadores;
e) C e D, em conjunto, sejam definidos como o único identificador.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
155
33- (FGV - 2014 - Câmara Municipal do Recife-PE - Analista de Sistemas) Observe
a instância da tabela de um banco de dados relacional mostrada a seguir.
A dependência funcional que NÃO é válida nessa tabela é:
a) Y → Z
b) UV → V
c) W → X
d) UX → YX
e) Z → U
34- (FGV - 2014 - TJ-GO - Analista Judiciário - Análise de Sistemas -
Desenvolvimento) Considere a tabela de um banco de dados relacional
R(A, B, C, D)
onde os atributos A e B, separadamente, são identificadores. Nesse caso, o processo de
normalização da tabela R requer que, entre outras, seja preservada a dependência funcional:
a) B→ A
b) C→ D
c) D → A
d) C → A
e) C → B
35- (FGV - 2014 - TJ-GO - Analista Judiciário - Análise de Sistemas -
Desenvolvimento) No âmbito do projeto de bancos de dados, os Axiomas de Armstrong
têm um importante papel porque permitem a derivação de dependências funcionais. Uma
derivação que NÃO é válida é:
a) se X → Y e Y → Z então X→Z
b) se X → Y então XZ →YZ
c) se Y⊆ X então X → Y
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
156
d) se X→Y e X→Z então X →YZ
e) se X → Y e Z → Y então X →YZ
36- (FGV - 2014 - DPE-RJ - Técnico Superior Especializado - Administração de
Dados) Dependências funcionais podem ser combinadas de modo que novas dependências
sejam derivadas a partir de um conjunto inicial de dependências. Essas regras de derivação
são conhecidas como Axiomas de Armstrong. Assim, a partir das dependências funcionais
F -> G
G -> H
I -> J
é possível, por meio desses axiomas, derivar
a) G,H -> F
b) H -> Jc) H -> F
d) F,G -> H,J
e) F -> H
37- (FGV - 2013 - AL-MT - Analista de Sistemas - Banco de Dados) Dependências
funcionais podem ser combinadas de modo que novas dependências sejam derivadas a partir
de um conjunto inicial de dependências. Essas regras de derivação são conhecidas como
Axiomas de Armstrong. Assim, a partir das dependências funcionais
Leia o fragmento a seguir:
“Um esquema de relação S está na _____ forma normal com relação a um conjunto de
dependências F (que inclui dependências funcionais e dependências multivaloradas) se, para
cada dependência multivalorada não trivial X -> -> Y em F, X é uma superchave para R.”
Assinale a alternativa cujo item completa corretamente a lacuna do fragmento acima.
a) primeira
b) segunda
c) terceira
d) quarta
e) Quinta
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
157
38- (FGV - 2013 - AL-MT - Analista de Sistemas - Banco de Dados) Com relação às
definições dos diferentes tipos de chaves em um projeto de Banco de Dados, analise as
afirmativas a seguir.
I. Em alguns casos, mais de uma coluna ou combinações de colunas podem servir para
distinguir uma linha das demais. Se uma das colunas (ou combinação de colunas) é escolhida
como chave primária, as demais são denominadas chaves estrangeiras.
II. Uma chave estrangeira é uma coluna ou uma combinação de colunas cujos valores
aparecem necessariamente na chave primária de uma tabela. A chave estrangeira é o
mecanismo que permite a implementação de relacionamentos em um banco de dados
relacional.
III. Uma chave primária é uma coluna ou uma combinação de colunas cujos valores não
distinguem uma linha das demais dentro de uma tabela.
Assinale:
a) se somente a afirmativa I estiver correta.
b) se somente a afirmativa II estiver correta.
c) se somente a afirmativa III estiver correta.
d) se somente as afirmativas I e II estiverem corretas.
e) se todas as afirmativas estiverem corretas.
39- (FGV - 2013 - AL-MT - Analista de Sistemas - Banco de Dados) A capacidade de
alterar o esquema conceitual, sem que seja necessário alterar os esquemas externos ou os
programas de aplicação, é denominada
a) independência lógica de dados.
b) independência física de dados.
c) independência interna de dados.
d) fragmentação de dados.
e) transparência de dados.
40- (FGV - 2013 - AL-MT - Analista de Sistemas - Programador) Sobre o uso do
valor null em relações em um SGBD relacional, analise as afirmativas a seguir.
I. Sua representação interna é igual a zero em campos numéricos ou espaço em branco em
campos do tipo varchar2.
II. São usados para representar valores de atributos que podem ser desconhecidos ou não
aplicáveis a uma tupla em particular.
III. São normalmente utilizados para representar valores desconhecidos em chaves-
primárias.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
158
Assinale:
a) se somente a afirmativa I estiver correta.
b) se somente a afirmativa II estiver correta.
c) se somente a afirmativa III estiver correta.
d) se somente as afirmativas I e II estiverem corretas.
e) se todas as afirmativas estiverem corretas.
41- (FGV - 2012 - Senado Federal - Analista Legislativo - Análise de Suporte de
Sistemas - Reaplicação) Fabricantes de armas são obrigados a imprimir um número de
série em cada uma de suas armas, identificando assim, unicamente, cada arma produzida.
No modelo de dados para um certo fabricante de armas, existe uma entidade chamada
"arma" com um atributo chamado "num_serie".
Com referência a este cenário, para a entidade "arma", "num_serie" é um atributo do tipo:
a) Chave alternativa (alternate key).
b) Chave composta (composite key).
c) Chave primária (primary key).
d) Chave estrangeira (foreign key).
e) Chave migrada (migrated key).
42- (FGV - 2010 - FIOCRUZ - Tecnologista em Saúde - Geoprocessamento) Sobre
banco de dados orientado a objeto, pode-se dizer que:
a) é um banco de dados no qual os dados são guardados como propriedades de objetos, e os
objetos são valores definidos segundo classes, ou tipos de dados complexos.
b) é formado por tabelas e registros de dados inseridos nas tabelas que estão diretamente
vinculados ao dado primário.
c) é um banco de dados que opera em rede e permite que várias tabelas sejam usadas
simultaneamente por meio do uso de referências.
d) diferencia-se de outros modelos de bancos de dados no sentido em que especifica a forma
do resultado e não o caminho para chegar a ele.
e) é um conjunto de bancos de dados logicamente inter-relacionados, distribuídos em rede.
43- (FGV - 2010 - FIOCRUZ - Tecnologista em Saúde - Geoprocessamento) Sobre
os Metadados, assinale a afirmativa correta.
a) São um conjunto de informações estruturadas que descrevem os dados (bases) que
representam, facilitando ao usuário o gerenciamento desses dados.
b) São o conjunto total de dados que integram um projeto de geoprocessamento.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
159
c) São dados preliminares que necessitam de averiguação e eventuais correções para,
posteriormente, serem utilizados.
d) São o conjunto de dados que já passaram por todas as averiguações e já estão prontos
para utilização.
e) São dados que não foram utilizados e são arquivados para futuros trabalhos.
44- (FGV - 2010 - DETRAN-RN - Programador de computador) Assinale a
alternativa que corresponde ao recurso do modelo de entidade-relacionamento, cuja
definição é “ser um conjunto de um ou mais atributos que, tomados coletivamente, permite-
se identificar de maneira unívoca uma entidade em um conjunto de entidades”:
a) Chave primária.
b) Superchave.
c) Especialização.
d) Generalização.
e) Herança de atributo.
45- (FGV - 2010 - DETRAN-RN - Assessor Técnico - Administração de Banco de
Dados) Sobre Bancos de Dados Relacionais, analise:
I. A abordagem relacional está baseada no princípio de que as informações em uma base de
dados podem ser consideradas relações matemáticas e que estão representadas de maneira
uniforme com o uso de tabelas bidimensionais.
II. A teoria relacional enxerga o banco de dados como um conjunto de tabelas, e as
operações que as utilizam são feitas por linguagem que o manipula, não sendo procedurais,
ou seja, manipulando conjuntos de uma só vez.
III. É indispensável aos usuários saber como e onde os dados estão armazenados. Está(ão)
correta(s) apenas a(s) afirmativa(s):
a) I, II
b) I, III
c) I
d) II
e) II, III
46- (FGV - 2010 - BADESC - Analista de Sistemas - Banco de Dados) Com relação
à especificação e à manipulação de um atributo multivalorado pelos SGBDs, analise as
afirmativas a seguir.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
160
I. O modelo de dados relacional (especificado por Codd), não aceita este tipo de atributo,
multivalorado. O modelo de dados relacional preconiza que este atributo deve ser
processado pela implementação de uma tabela que possa contê-lo.
II. O modelo de dados relacional (especificado por Codd) especifica que para processar um
atributo multivalorado deve antes normalizar a tabela onde o mesmo se encontra.
III. O modelo de objetos determina que todos os atributos de um objeto, inclusive os
multivalorados, sejam encapsulados no objeto, permitindo, desta forma, a sua
implementação e processamento.
a) se somente a afirmativa I estiver correta.
b) se somente a afirmativa II estiver correta.
c) se somente a afirmativa IIIestiver correta.
d) se somente as afirmativas I e II estiverem corretas.
e) se todas as afirmativas estiverem corretas.
47- (FGV - 2010 - BADESC - Analista de Sistemas - Banco de Dados) O conceito de
visão é muito útil e empregado na implementação de banco de dados.
O emprego do conceito visão tem as seguintes finalidades ou vantagens:
a) ocultar dados e fornecer o controle de redundâncias.
b) ocultar dados e fornecer independência de dados lógica.
c) fornecer controle de redundância e a restrição de integridade.
d) fornecer controle de redundância e independência de dados lógica.
e) fornecer a restrição de integridade e independência de dados lógica.
48- (FGV - 2010 - BADESC - Analista de Sistemas - Banco de Dados) Os conceitos
que envolvem os termos restrição de integridade de entidade e restrição de integridade
referencial são, respectivamente:
a) nenhum atributo pertencente à chave primária poderá receber valor NULL / os valores
dos atributos que formam a chave estrangeira deverá existir na tabela onde a chave
estrangeira é chave primária, quando for diferente de NULL.
b) os valores dos atributos que formam a chave estrangeira deverá existir na tabela onde a
chave estrangeira é chave primária, quando for diferente de NULL / nenhum atributo
pertencente à chave primária poderá receber valor NULL.
c) nenhum atributo pertencente à chave primária poderá receber valor NULL / os valores
dos atributos que formam a chave estrangeira deverá existir na tabela onde a chave
estrangeira é chave primária, somente quando for igual a NULL.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
161
d) os valores dos atributos que formam a chave estrangeira deverá existir na tabela onde a
chave estrangeira é chave primária, somente quando for igual a NULL / nenhum atributo
pertencente à chave primária poderá receber valor NULL.
e) os atributos pertencentes à chave primária deverão conter sempre valores diferentes de
NULL / os valores dos atributos que formam a chave estrangeira deverá existir na tabela
onde a chave estrangeira é chave primária, somente quando for igual a NULL.
49- (FGV - 2010 - BADESC - Analista de Sistemas - Banco de Dados) A propriedade
de uma transação denominada de ACID envolve os seguintes conceitos:
a) Atômico, Concorrente, Isolamento e Durabilidade.
b) Atomicidade, Consistência, Isolamento e Durabilidade.
c) Atomicidade, Concorrente, Inconsistente e Durabilidade.
d) Atomicidade, Consistência, Integridade e Dependência de dados.
e) Atomicidade, Consistência, Isolamento e Dependência de dados.
50- (FGV - 2010 - BADESC - Analista de Sistemas - Desenvolvimento de Sistemas)
Acerca das transações realizadas em um Banco de Dados, assinale a afirmativa incorreta.
a) As transações controlam melhor apenas a concorrência.
b) As transações são unidades lógicas de trabalho numa aplicação.
c) A base de dados está em um estado consistente antes e depois de uma transação.
d) As transações de diferentes usuários que envolvem dados compartilhados são executadas
em sequência.
e) Um mecanismo de transação garante que toda transação iniciada termine com sucesso
ou é desfeita.
51- (FGV - 2010 - BADESC - Analista de Sistemas - Desenvolvimento de Sistemas)
Diz-se que um agrupamento está na terceira forma normal se já estiver na segunda forma
normal e atender à seguinte condição:
a) se todo atributo não chave depende funcionalmente diretamente da chave primária.
b) se nenhum dos seus atributos depender funcionalmente de atributos não chave.
c) se cada atributo não chave depender funcionalmente da totalidade da chave.
d) se não houver a existência de grupos de valores repetidos.
e) se não existirem dependências multivaloradas.
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29
____________________________________
Análise de Dados para o TCU
Professor Ramon Souza
162
7. GABARITO
1- B
2- D
3- A
4- D
5- E
6- B
7- D
8- D
9- C
10- E
11- A
12- E
13- E
14- B
15- E
16- A
17- A
18- C
19- B
20- D
21- A
22- E
23- D
24- B
25- E
26- C*
27- D
28- C
29- D
30- C
31- A
32- C
33- A
34- A
35- E
36- E
37- D
38- B
39- A
40- B
41- C
42- A
43- A
44- B*
45- A
46- E
47- B
48- A
49- B
50- A
51- B
Licensed to kelton choma - kelton_kk@hotmail.com - 015.110.662-29