Vous êtes sur la page 1sur 11

Universidade Federal de Alagoas – UFAL

Campus Arapiraca

Banco de Dados I
Professor Mário Hozano

Jayane Vieira Silva Fernandes


José Rodrigo Oliveira Lima
Merkianny Almeida de Melo
Walysson Vital Barbosa
Yana Kellen Dioclécio Mendes

Lista de Exercícios - Normalização

Arapiraca – Alagoas,

Março de 2013.
Lista de Exercícios

1. O que é normalização?

Resposta: Normalização é o processo de associar atributos à relações de


forma a eliminar redundância de dados quando executada propriamente, assim
eliminando as anomalias e problemas de integridade de dados causados por
tais redundâncias e facilitando o desenvolvimento de um banco de dados bem
formulado.

2. Trata-se de uma regra que, se observada no processo de normalização de


dados, considera o banco de dados na terceira forma normal:

a) Identificar cada conjunto de dados relacionados com uma chave primária.


b) Eliminar os grupos de repetição transformando-os em tabelas individuais.
c) Eliminar os campos que não dependem da chave.
d) Criar uma tabela separada para cada conjunto de dados relacionados.
e) Relacionar as tabelas separadas com uma chave externa.

3. Considere um banco de dados com as relações R1, R2 e R3 e as


respectivas dependências funcionais abaixo, onde valor_pago é o valor pago
de imposto de renda no ano e atributos sublinhados formam a chave primária.

R1 = {cpf, nome, cpf_conjuge, nome_conjuge}

R2 = {cpf, nome, cidade, numero_dependentes}

R3 = {cpf, ano, nome, valor_pago}

Dependências funcionais:
R1
cpf → nome, cpf_conjuge
cpf_conjuge → nome_conjuge

R2
cpf → nome, cidade, numero_dependentes

R3
cpf → nome
cpf, ano → valor_pago

R1, R2 e R3 estão, respectivamente, na:

a) primeira, terceira e segundaformas normais.


b) primeira, segunda e terceira formas normais.
c) segunda, terceira e primeira formas normais.
d) segunda, primeira e terceira formas normais.
e) terceira, primeira e segunda formas normais.
4. Analisando a tabela a seguir é possível aplicar quais Formas Normais.
Venda(Codvenda, Codproduto, Codcliente, Codcidade, Quantidade, Valortotal)

Dependências funcionais:
Codvenda → Codcliente
Codcliente → Codcidade
Codvenda, Codproduto → Quantidade, Valortotal

a) A 1FN apenas.
b) A 2FN apenas.
c) A 3FN apenas.
d) A 2FN e a 3FN.
e) Todas as FN.

5. Considere a tabela a seguir:

- Verifique se a tabela está na 1º Forma Normal, caso não esteja normalize.

Resolução: Todos os clientes possuem Rua, CEP e Bairro, e essas


informações estão na mesma célula da tabela (atributo composto), logo ela não
está na primeira forma normal. Para normalizar, deveremos colocar os
atributos que compõem o atributo composto em uma colunas diferentes.

Mesmo com o ajuste acima, a tabela ainda não está na primeira forma
normal, pois há clientes com mais de um telefone e os valores estão em uma
mesma célula (atributo multivalorado). Para normalizar será necessário criar
uma nova tabela para armazenar os números dos telefones e o campo-chave
da tabela cliente.
6. De acordo com a normalização, se necessário, transforme para 1FN a tabela
baixo, onde idCliente é chave primária:

Cliente
idCliente nomeCliente endereco telefones
1 João da Silva Rua Justiniano, 3300 2342-2342 / 2242-2210
2 Emanuel Bezerra Travessa Quinze, 200 2345-3344
3 João dos Santos Av. Brasil, 220 2422-9878 / 2445-3322 / 2444-9755
4 Maria Mariana Av. Bandeirantes, 2980 2355-9875

Devemos observar se temos atributos compostos ou multivalorados. Neste


caso, percebemos a presença de um atributo multivalorado na coluna
Telefones, logo obedecemos a regra: criaremos uma tabela a parte para
organizá-lo da melhor maneira.

Cliente
idCliente nomeCliente endereco
1 João da Silva Rua Justiniano, 3300
2 Emanuel Bezerra Travessa Quinze, 200
3 João dos Santos Av. Brasil, 220
4 Maria Mariana Av. Bandeirantes, 2980

TelefoneCliente
idCliente telefone
1 2342-2342
1 2242-2210
2 2345-3344
3 2422-9878
3 2445-3322
3 2444-9755
4 2355-9875
7. Normalize a tabela abaixo para a 3FN, onde idPedido e CodProduto formam
a chave da tabela:

Pedido
idPedido dataPeddo codProduto nomeProduto qtde valorUnitario valorTotal
1 01/07/09 1234 HD 250GB 2 R$ 100 R$ 200
2 01/07/09 1235 HD 180GB 1 R$ 80 R$ 80
3 03/07/09 1235 HD 180GB 4 R$ 80 R$ 320
4 05/07/09 1234 HD 250GB 6 R$ 100 R$ 600

Resolução:

Dependências funcionais:
idPedido → dataPedido
idPedido, codProduto → qtde, valorTotal
codProduto → nomeProduto, valorUnitário

Passo 1: 1ª Forma Normal


Já se encontra na 1FN por não possuir atributos multivalorados ou compostos.

Passo 2: 2ª Forma Normal


O enunciado da questão nos confirma que possui uma chave composta e pelas
dependências funcionais observamos que alguns atributos dependem
parcialmente da chave primária. Assim, podemos aplicar a 2FN, devemos
deixar cada atributo juntamente com sua chave em uma tabela, logo:

Pedido
idPedido codProduto qtde valorTotal
1 1234 2 R$ 200
2 1235 1 R$ 80
3 1235 4 R$ 320
4 1234 6 R$ 600

DataPedido
idPedido dataPeddo
1 01/07/09
2 01/07/09
3 03/07/09
4 05/07/09

Produto
codProduto nomeProduto valorUnitario
1234 HD 250GB R$ 100
1235 HD 180GB R$ 80
1235 HD 180GB R$ 80
1234 HD 250GB R$ 100

Passo 3: 3ª Forma Normal


Já se encontra na 3FN por não possuir transitividade nas dependências
funcionais.
8. (POSCOMP-2010) O processo de normalização baseia-se no conceito de
forma normal, que é uma regra que deve ser obedecida por uma relação para
que seja considerada bem projetada.Com base nos conhecimentos sobre
normalização, considere as afirmativas a seguir.

I. A Primeira Forma Normal (1FN) define que a relação não deve conter
atributos não atômicos ou as relações aninhadas. A ação que deve ser
tomada para deixar uma relação na 1FN é formar uma nova relação para
cada atributo não atômico ou para cada relação aninhada.
II. A Segunda Forma Normal (2FN) define que, além de estar na 1FN, para as
relações que possuam chaves primárias com vários atributos, nenhum
atributo externo à chave deve ser funcionalmente dependente de parte da
chave primária. A ação que deve ser tomada é decompor e montar uma
nova relação para cada chave parcial com seu(s) atributo(s)
dependente(s).
III. A Terceira Forma Normal (3FN) define que, além de estar na 2FN, as
relações não devem ter atributos que não pertençam a uma chave,
funcionalmente determinados por outro atributo que também não pertença
a uma chave (ou por um conjunto de atributos não chave). A ação que
deve ser tomada é decompor e montar uma relação que contenha o(s)
atributo(s) não chave que determina(m) funcionalmente o(s) outro(s)
atributo(s).
IV. Uma dependência parcial ocorre quando um atributo, além de depender da
chave primária, depende de outro atributo ou conjunto de atributos da
relação. Uma dependência transitiva ocorre quando um atributo depende
apenas de parte de uma chave primária composta.

Assinale a alternativa correta.


a) Somente as afirmativas I e IV são corretas.
b) Somente as afirmativas II e III são corretas.
c) Somente as afirmativas III e IV são corretas.
d) Somente as afirmativas I, II e III são corretas.
e) Somente as afirmativas I, II e IV são corretas.

9. Normalize a ficha médica abaixo seguindo os conceitos de normalização de


dados.
Resolução:

- Passo 1 - Criando a tupla apartir da ficha.

PACIENTE (nuPaciente, noPaciente, dtNascimento, sexo, convenio,


estadoCivil, rg, telefone, endereco, (nuConsulta, data, medico, diagnostico,
(exame, data)))

- Passo 2 – Eliminando tabelas aninhadas, assim fazendo a 1FN.

PACIENTE (nuPaciente, noPaciente, dtNascimento, sexo, convenio,


estadoCivil, rg, telefone, endereco)
CONSULTA (nuPaciente, nuConsulta, data, medico, diagnostico)
EXAME (nuPaciente, nuConsulta, nuExame, noExame, data)

- Passo 3 – Verificando se existe dependência parcial na relação, assim


aplicando a 2Fn.

PACIENTE (nuPaciente, noPaciente, dtNascimento, sexo, convenio,


estadoCivil, rg, telefone, endereco)
CONSULTA (nuPaciente, nuConsulta, crm, data, diagnostico)
CONSULTA_EXAME (nuPaciente, nuConsulta, nuExame, data)
MEDICO (crm, nome)
EXAME (nuExame, noExame)

- Passo 4 – Eliminando as dependências transitivas, aplicando a 3FN.

PACIENTE (nuPaciente, noPaciente, dtNascimento, sexo, rg, telefone,


endereco, nuConvenio, nuEstadoCivil)
CONSULTA (nuPaciente, nuConsulta, crm, data, diagnostico)
CONSULTA_EXAME (nuPaciente, nuConsulta, nuExame, data)
MEDICO (crm, nome)
EXAME (nuExame, noExame)
CONVENIO (nuConvenio, nome)
ESTADO_CIVIL (nuEstadoCivil, nome)
10. Examine a relação abaixo:

Filial
numFilial enderecoFilial telefones numGerente nomeGerente
B001 Rua Jefferson 503-555-3618, 503- 1 Tomas
555-2727, 503-555-
6534
B002 City Center 206-555-6756, 206- 2 Ana
Plaza 555-8836
B003 8th Avenue 212-371-3000 3 Maria
B004 14th Avenue 206-555-3131, 206- 4 Carlos
555-4112

Dependências funcionais:
numFilial -> enderecoFilial, telefones, numGerente, nomeGerente
numGerente -> nomeGerente

a) Porque a relação não está na 3FN?

Resposta: Pois não está na 1FN que não permite atributos multivalorados
(telefones). Como não está na 1FN, também não se encontra na 2FN,
consequentemente não está na 3FN, que também não admite transitividade
entre dependências.

b) Demonstre o processo de normalização dos dados mostrados na relação


para a 3FN.

Resolução:

A tabela não se encontra na 1FN, pois possui o atributo telefones que é


multivalorado que não pode estar presente na 1FN. Assim seguimos os
seguintes passos:

Passo 1: 1º Forma Normal


Extrair atributo multivalorado telefones da tabela Filial, criando uma nova tabela
TelefoneFilial com chave primária composta pelos atributos numFilial da tabela
Filial e telefone, sendo assim possível armazenar todos os telefones de cada
filial:

Filial
numFilial enderecoFilial numGerente nomeGerente
B001 Rua Jefferson 1 Tomas
B002 City Center Plaza 2 Ana
B003 8th Avenue 3 Maria
B004 14th Avenue 4 Carlos

TelefoneFilial
numFilial telefone
B001 503-555-3618
B001 503-555-2727
B001 503-555-6534
B002 206-555-6756
B002 206-555-8836
B003 212-371-3000
B004 206-555-3131
B004 206-555-4112

Passo 2: 2º Forma Normal


A tabela já se encontra na 2FN.

Passo 3: 3º Forma Normal


Existe transitividade de dependência na tabela Filial (numFilial → numGerente
→ NomeGerente), então criaremos a tabela Gerente, extraindo o atributo
nomeGerente da tabela Filial e o colocando na nova tabela criada juntamente
com o atributo numGerente que passa a ser a chave primária da tabela
Gerente.

Filial
numFilial enderecoFilial numGerente
B001 Rua Jefferson 1
B002 City Center Plaza 2
B003 8th Avenue 3
B004 14th Avenue 4

TelefoneFilial
numFilial telefone
B001 503-555-3618
B001 503-555-2727
B001 503-555-6534
B002 206-555-6756
B002 206-555-8836
B003 212-371-3000
B004 206-555-3131
B004 206-555-4112
Gerente
numGerente nomeGerente
1 Tomas Santos
2 Ana Maria
3 Maria José
4 Carlos André

c) Identifique as chaves primárias e estrangeiras nas relações na 3FN.


chave primária:
Filial: numFilial
TelefoneFilial: numFilial, telefone
Gerente: numGerente
chave estrangeira:
Fiilial: numGerente
TelefoneFIlial: numFilial
REFERÊNCIAS

Normalização de dados e as formas normais. [online] Disponível em:


<http://www.luis.blog.br/normalizacao-de-dados-e-as-formas-normais.aspx>

Normalização em Banco de Dados. [online] Disponível em:


<http://www.blogdati.com.br/index.php/2010/03/normalizacao-em-banco-de-
dados>

PIVETTA, Elisa Maria. Modelagem de Dados – Normalização . [online]


Disponível em: <http://www.cafw.ufsm.br/~elisa/bd/normalizacao1.pdf>

Database Design: Normalization note & exercises (Up to 3NF). [online]


Disponível em: <http://www.javaguicodexample.com/normalizationnotes.pdf>

Vous aimerez peut-être aussi