Prévia do material em texto
Prof. Camilo de Lelis Disc.Banco de Dados 1 Prof. Camilo de Lelis Normalização Análise de Desenvolvimento de Sistemas Prof. Camilo de Lelis Disc.Banco de Dados 2 NORMALIZAÇÃO Codd 1970 DATE 3FN ( aperfeiçoada ) FAGIN 4FN e 5FN surgiram em 1977. Normalização •Normalização de dados é o processo formal passo a passo que examina os atributos de uma entidade, com o objetivo de evitar anomalias observadas na inclusão, exclusão e alteração de registros. Disc.Banco de Dados Prof. Camilo de Lelis 3 Regra de Ouro • “Não misturar assuntos em uma mesma Tabela". Por exemplo: na Tabela Clientes devemos colocar somente campos relacionados com o assunto Clientes. Não devemos misturar campos relacionados com outros assuntos, tais como Pedidos, Produtos, etc. Essa "Mistura de Assuntos" em uma mesma tabela acaba por gerar repetição desnecessária dos dados bem como inconsistência dos dados. Prof. Camilo de Lelis Disc.Banco de Dados 4 Objetivos Prof. Camilo de Lelis Disc.Banco de Dados 5 MINIMIZAÇÃO DE REDUNDÂNCIAS E INCONSISTÊNCIAS; FACILIDADE DE MANIPULAÇÕES DO BANCO DE DADOS; FACILIDADE DE MANUTENÇÃO DO SISTEMA DE INFORMAÇÃO. INCONSISTÊNCIA DE DADOS • é qualquer imprecisão nas informações que circulam pela empresa. Esse conteúdo inverídico pode ocorrer pelas mais diversas razões, como: • falhas humanas decorrentes de sucessivas digitações manuais; • necessidade de transposição constante das informações em papel para sistemas eletrônicos; • extravio de documentos físicos; • coexistência de diversos sistemas de gestão sem integração; • uso de ERP local, cujas informações não podem ser acessadas de qualquer lugar — ou seja, ausência de mobilidade; • erros de cálculo (gap muito comum na prestação de informações contábeis); • falhas de segurança de dados, acarretando invasões, alterações ou apagamento de dados. Prof. Camilo de Lelis Disc.Banco de Dados 6 REFINAMENTO DE ESQUEMA • Armazenamento redundante • Algumas informações são armazenadas repetidamente • Anomalias de atualização • Se uma cópia dos dados redundantes é atualizada, é gerada uma inconsistência • Anomalias de inserção • Pode não ser possível armazenar certas informações, a não ser que outras informações não relacionadas sejam armazenadas • Anomalias de exclusão • Pode não ser possível excluir certas informações sem perder também algumas informações não relacionadas Prof. Camilo de Lelis Disc.Banco de Dados 7 REFINAMENTO DE ESQUEMA • Problemas causados pela redundância • Ex: Funcao_Horista (cpf, nome, vaga, avaliacao, salario_hora, horas_trabalhadas) • RI: salario_hora é determinado pela avaliação → é uma dependência funcional • Essa dependência funcional gera redundância Prof. Camilo de Lelis Disc.Banco de Dados 8 Cpf nome vaga avaliação salario_hora horas_trabalhadas 123456 Artur 48 8 10 40 234567 Sandro 22 8 10 30 345678 Saulo 35 5 7 30 456789 Gustavo 35 8 7 32 567890 Manoel 35 8 10 40 Prof. Camilo de Lelis Disc.Banco de Dados 9 • Se o mesmo valor aparece na coluna avaliação de duas tuplas, a RI nos informa que o mesmo valor deve aparecer na coluna salario_hora. • Consequências negativas • Armazenamento redundante • Anomalias de atualização • Anomalias de inserção • Anomalias de exclusão Instância da relação Funcao_Horistas Prof. Camilo de Lelis Disc.Banco de Dados 10 Cpf nome vaga avaliação salario_hora horas_trabalhadas 123456 Artur 48 8 10 40 234567 Sandro 22 8 10 30 345678 Saulo 35 5 7 30 456789 Gustavo 35 8 7 32 567890 Manoel 35 8 10 40 Avaliacao salario_hora 8 5 10 7 É possível: • Registrar o salario_hora para qualquer avaliação • Mudar o salario_hora associado a uma avaliacao apenas atualizando uma única tupla As formas normais D isc.B an co d e D ad o s • O Processo de normalização aplica uma série de regras sobre as tabelas de um banco de dados, para verificar se estas estão corretamente projetadas. Embora existam cinco formas normais (ou regras de normalização), na prática usamos um conjunto de três Formas Normais. Prof. Camilo de Lelis 11 Prof. Camilo de Lelis Disc.Banco de Dados 12 NORMALIZAÇÃO Primeira Forma Normal (1FN)) Segunda Forma Normal (2FN) Terceira Forma Normal (3FN) PROPOSTA DE CODD Normalização D isc.B an co d e D ad o s O conceito de normalização foi introduzido por E. F. Codd em 1972. Inicialmente Codd criou as três primeiras formas de normalização chamando-as de: Primeira forma normal (1NF), Segunda forma normal (2NF) e Terceira forma normal (3NF). Uma definição mais forte da 3NF foi proposta depois por Boyce-Codd, e é conhecida como forma normal de Boyce-Codd (FNBC). Prof. Camilo de Lelis 13 Prof. Camilo de Lelis Disc.Banco de Dados 14 • Através do processo de normalização pode-se, gradativamente, substituir um conjunto de entidades e relacionamentos por um outro, o qual se apresenta "purificado" em relação às anomalias de atualização (inclusão, alteração e exclusão) as quais podem causar certos problemas, tais como: • Grupos repetitivos (atributos multivalorados) de dados; • Redundâncias de dados desnecessárias; • Perdas acidentais de informação; • Dificuldade na representação de fatos da realidade observada; • Dependências transitivas entre atributos. Normalização Prof. Camilo de Lelis Disc.Banco de Dados 15 • Normalização de relações é portanto uma técnica que permite depurar um projeto de banco de dados, através da identificação de inconsistências (informações em duplicidade, dependências funcionais mal resolvidas, etc). • À medida que um conjunto de relações passa para uma forma normal, vamos construindo um banco de dados mais confiável. • O objetivo da normalização não é eliminar todos as inconsistências, e sim controlá-las. Normalização Primeira Forma Normal (1FN)) D isc.B an co d e D ad o s • Uma relação está na primeira forma normal se todos os seus atributos são monovalorados e atômicos. • Quando encontrarmos um atributo multivalorado, deve-se criar um novo atributo que individualize a informação que esta multivalorada: • BOLETIM {matricula-aluno, materia, notas} • No caso acima, cada nota seria individualizada identificando a prova a qual aquela nota se refere: • BOLETIM {matricula-aluno, materia, numero-prova, nota} Prof. Camilo de Lelis 16 Prof. Camilo de Lelis Disc.Banco de Dados 17 • Quando encontrarmos um atributo não atômico, deve-se dividi-lo em outros atributos que sejam atômicos: • PESSOA {CPF, nome-completo} • Vamos supor que, para a aplicação que utilizará esta relação, o atributo nome-completo não é atômico, a solução então será: • PESSOA {CPF, nome, sobrenome} Primeira Forma Normal (1FN)) Primeira Forma Normal (1FN)) Prof. Camilo de Lelis Disc.Banco de Dados 18 • Identificar os elementos repetitivos e, com eles, criar uma nova tabela. A chave desta tabela será a concatenação da chave primária da tabela original com a chave primária do grupo repetitivo. Separar o Grupo Repetitivo Pr o ce d im en to s: P ro f. C am ilo d e Lelis 19 D isc.B an co d e D ad o s Criar uma nova entidade com a chave primária da entidade anterior e o grupo repetitivo. A chave primária da nova entidade será obtida pela concatenação da chave primária da entidade inicial e a do grupo repetitivo. Identificar o grupo repetitivo e removê-lo da entidade; Identificar a chave primária da entidade; Considere a tabela cliente abaixo: •Cliente Código_cliente Nome * Telefone **Endereço Prof. Camilo de Lelis Disc.Banco de Dados 20 Tabela desnormalizada, ou seja, não está na 1ª forma normal Todos os clientes possuem Rua, CEP e Bairro, estão na mesma célula da tabela colocar cada informação em uma coluna diferente, como no exemplo a seguir: Prof. Camilo de Lelis Disc.Banco de Dados 21 Tabela ainda não está na primeira forma normal Existem clientes com dois telefones no mesmo campo Vamos criar uma nova tabelapara armazenar os números dos telefones e o campo-chave da tabela cliente. Veja o resultado a seguir: Prof. Camilo de Lelis Disc.Banco de Dados 22 Tabela na primeira forma normal Tabela na 1ª forma normal Prof. Camilo de Lelis Disc.Banco de Dados 23 Normalização Exemplo de tabela que viola a 1º NF: Empregado {emp_num, emp_nome, depend_num} emp_num emp_nome dependentes 1052 Bob Jones D213 1053 Liz Moore 1107 Ted Smith D240 D241 Prof. Camilo de Lelis Disc.Banco de Dados 24 Normalização Exemplo de tabela que obedece a 1º NF: Empregado {emp_num, emp_nome, depend_num} emp_num emp_nome depend_num 1052 Bob Jones D213 1053 Liz Moore 1107 Ted Smith D240 1107 Ted Smith D241 Segunda Forma Normal (2FN) P ro f. C am ilo d e Lelis 25 D isc.B an co d e D ad o s É aplicada somente nas tabelas criadas na primeira forma normal. Nestas tabelas concatenadas, procurar se existe alguns atributos que dependem somente de um dos atributos da chave primária concatenada. Os atributos que forem dependentes de somente um dos atributos da chave concatenada formarão nova tabela. Todos os atributos não chave forem totalmente dependentes da chave primária (dependente de toda a chave e não apenas de parte dela). Segunda Forma Normal (2FN) Uma relação está na segunda forma normal quando duas condições são satisfeitas: 1 - A relação estiver na primeira forma normal; 2 - Todos os atributos primos dependerem funcionalmente de toda a chave primária. Procedimentos: Prof. Camilo de Lelis Disc.Banco de Dados 27 Identificar os atributos que não são funcionalmente dependentes de toda a chave primária; Remover da entidade todos esses atributos identificados e criar uma nova entidade com eles. A chave primária da nova entidade será o atributo do qual os atributos removidos são funcionalmente dependentes. Observe a relação abaixo BOLETIM = {matricula-aluno, codigo-materia, numero-prova, nota, data-da-prova, nome-aluno, endereço-aluno, nome-materia} Fazendo a análise da dependência funcional de cada atributo primo, chegamos às seguintes dependências funcionais: • matricula-aluno, codigo-materia, numero-prova -> nota • codigo-materia, numero-prova -> data-da-prova • matricula-aluno -> nome-aluno, endereço-aluno • codigo-materia -> nome-materia Prof. Camilo de Lelis Disc.Banco de Dados 28 Conclusão • Apenas o atributo primo nota depende totalmente de toda chave primária. Para que toda a relação seja passada para a segunda forma normal, deve-se criar novas relações, agrupando os atributos de acordo com suas dependências funcionais: • BOLETIM {matricula-aluno, codigo-materia, numero-prova, nota} • PROVA {codigo-materia, numero-prova, data-da-prova} • ALUNO {matricula-aluno, nome-aluno, endereço-aluno} • MATERIA {codigo-materia, nome-materia} Prof. Camilo de Lelis Disc.Banco de Dados 29 Exemplo de segunda forma normal • Considere a tabela vendas abaixo: Vendas N_pedido Código_produto Produto Quant Valor_unit Subtotal Prof. Camilo de Lelis Disc.Banco de Dados 30 OBSERVAÇÃO • Se o nome do produto já existe na tabela produtos, então não é necessário que ele exista na tabela de Vendas. A segunda forma normal trata destas anomalias e evita que valores fiquem em redundância no banco de dados. Disc.Banco de Dados Prof. Camilo de Lelis 31 Agora a tabela com os dados: O nome do produto depende do código do produto, porém não depende de N_pedido que é a chave primária da tabela, portanto não está na segunda forma normal. Isto gera problemas com a manutenção dos dados, pois se houver alteração no nome do produto teremos que alterar em todos os registros da tabela venda. Prof. Camilo de Lelis Disc.Banco de Dados 32 Tabela não está na segunda forma normal Temos de criar a tabela Produto que ficará com os atributos Código_produto e produto e na tabela Venda manteremos somente os atributos N_pedido, código_produto, quant, valor_unit e subtotal. Prof. Camilo de Lelis Disc.Banco de Dados 33 Tabela na segunda forma normal Tabela na 2ª forma normal Exemplo de tabela que viola a 2º NF: chave primária (s#, p#) decomposição funcional: p# ---> pnome p# ---> cdcor p# ---> cor p# ---> peso (s#,p#) ---> quantidade * a única dependência total é a da quantidade Entregas s# p# pnome cdcor cor peso quantidade Prof. Camilo de Lelis Disc.Banco de Dados 34 Entregas s# p# pnome cdcor cor peso quant -- -- ----- ----- ----- ---- ----- s1 p1 prego A1 cinza 13 300 s1 p2 porca A2 preta 15 200 s2 p1 prego A1 cinza 13 750 s2 p3 chave A3 azul 10 650 s2 p4 roda A2 preta 23 400 s4 p5 jante A1 cinza 25 200 Exemplo de tabela que viola a 2º NF: Prof. Camilo de Lelis Disc.Banco de Dados 35 entregas peças s# p# p# pnome quantidade cdcor cor peso chave primária: (s#, p#) chave primária: p# Exemplo de tabela que obedecem a 2º NF: Prof. Camilo de Lelis Disc.Banco de Dados 36 Terceira Forma Normal (3FN) • A tabela original não pode conter atributos que dependam de outro atributo que não seja a chave primária. Então deve-se localizar, na tabela original, os atributos que possuem uma chave própria e separá-los em outra tabela. • Deve-se eliminar os atributos que são o resultado de algum cálculo matemático sobre outro atributo, pois torna-se redundante armazenar um dado que é o resultado de outro Disc.Banco de Dados Prof. Camilo de Lelis 37 Condições Uma relação está na terceira forma normal quando duas condições forem satisfeitas: 1 - A relação estiver na segunda forma normal; 2 - Todos os atributos primos dependerem NÃO transitivamente de toda a chave primária. Prof. Camilo de Lelis Disc.Banco de Dados 38 Observe a relação abaixo: PEDIDO {numero-pedido, codigo-cliente, data- pedido, nome-cliente,codigo-cidade-cliente, nome- cidade-cliente} Fazendo a análise da dependência funcional de cada atributo primo, chegamos às seguintes dependências funcionais: numero-pedido -> codigo-cliente numero-pedido -> data-pedido codigo-cliente -> nome-cliente codigo-cliente -> codigo-cidade-cliente codigo-cidade-cliente -> nome-cidade-cliente Prof. Camilo de Lelis Disc.Banco de Dados 39 Conclusão Apenas os atributos primos codigo-cliente e data-pedido dependem não transitivamente totalmente de toda chave primária. Observe que: numero-pedido -> codigo-cliente -> nome-cliente numero-pedido -> codigo-cliente -> codigo-cidade-cliente numero-pedido -> codigo-cliente -> codigo-cidade-cliente -> nome-cidade- cliente Isto é dependência transitiva, devemos resolver inicialmente as dependências mais simples, criando uma nova relação onde codigo- cliente é a chave, o codigo-cliente continuará na relação PEDIDO como atributo primo, porém, os atributos que dependem dele devem ser transferidos para a nova relação: PEDIDO {numero-pedido, codigo-cliente, data-pedido} CLIENTE {codigo-cliente, nome-cliente, codigo-cidade-cliente, nome- cidade-cliente} Prof. Camilo de Lelis Disc.Banco de Dados 40 As dependências transitivas da relação PEDIDO foram eliminadas, porém ainda devemos analisar a nova relação CLIENTE: codigo-cliente -> codigo-cidade-cliente -> nome-cidade-cliente Observe que o nome-cidade-cliente continua com uma dependência transitiva, vamos resolvê-la da mesma maneira : PEDIDO {numero-pedido, codigo-cliente, data-pedido} CLIENTE {codigo-cliente, nome-cliente, codigo-cidade-cliente} CIDADE {codigo-cidade-cliente, nome-cidade-cliente} Prof. Camilo de Lelis Disc.Banco de Dados 41 Considere a tabela abaixo: O subtotal é o resultado da multiplicação Quant X Valor_unit, desta forma a coluna subtotal depende de outras colunas não-chave. Prof. Camilo de Lelis Disc.Banco de Dados 42 Tabela não está na terceira forma normal Para normalizar esta tabela na terceira forma normal teremos de eliminar a coluna subtotal, como no exemplo a seguir: •A normalização torna a tabela mais otimizada esem anomalias, Prof. Camilo de Lelis Disc.Banco de Dados 43 Tabela na terceira forma normal peças p# pnome cdcor cor peso cidade p# pnome cd_cor cor peso cidade ----------------------------------- 01 prego A1 cinza 13 Paris 02 porca A2 preta 15 Londres 03 chave A3 azul 10 Londres 04 roda A2 preta 23 Paris 05 jante A1 cinza 25 Athenas Exemplo de tabela que viola a 3º NF: Prof. Camilo de Lelis Disc.Banco de Dados 44 peças p# pnome cor peso cidade p# pnome cor peso cidade -- ----- --- ---- ------ 01 prego cinza 13 Paris 02 porca preta 15 Londres 03 chave azul 10 Londres 04 roda preta 23 Paris 05 jante cinza 25 Athenas Exemplo de tabela que obedece a 3º NF (1º opção): Prof. Camilo de Lelis Disc.Banco de Dados 45 peças p# pnome cd_cor peso cidade p# pnome cd_cor peso cidade -- ----- ------ ---- ------- 01 prego A1 13 Paris 02 porca A2 15 Londres 03 chave A3 10 Londres 04 roda A2 23 Paris 05 jante A1 25 Athenas Exemplo de tabela que obedece a 3º NF (2º opção): Prof. Camilo de Lelis Disc.Banco de Dados 46 Prof. Camilo de Lelis Disc.Banco de Dados 47 NORMALIZAÇÃO Os três principais casos de anomalias : Grupo Repetitivo Dependência Funcional Parcial O Atributo só depende de parte da chave- primária e não dela como um todo Dependência Transitiva Quando um atributo A depende de outro atributo B que não pertence à chave primária, mas é dependente funcional desta. Valor total 450,00 Imposto 13,00 Total Geral 437,00 Cód-item Descrição Qtd embal. Preço Valor 2346 parafuso 10 Cx 3,00 30,00 1345 porcas 5 Cx 4,00 20,00 2664 óleo ind. 100 L 4,00 400,00 Prof. Camilo de Lelis Disc.Banco de Dados 48 EMPRESA XYZ Ordem de Pedido NÚMERO DA ORDEM : 1234 CÓDIGO DO CLIENTE : 001 NOME DO CLIENTE :Carlos Eduardo ENDEREÇO : Av. Colares Moreira,999 CIDADE : São Luís UF : MA CEP : 65000 DATA DE DESPACHO : 31/01/99 OBSERVAÇÃO : Não enviar no horário da tarde. Prof. Camilo de Lelis Disc.Banco de Dados 49 Reforçando Anomalias Inclusão não podemos cadastrar um equipamento sem que tenhamos um contrato. Exclusão se removermos um contrato temos que remover todos os dados do equipamento. Alteração redundância nos dados do equipamento. Tabela completa • Pedido = {Número da ordem, Código do cliente, Nome do cliente, Endereço, Cidade, UF, CEP, Data de Despacho, Observações, Código Item, Descrição, Quantidade, Embalagem, Preço Unitário, Valor Total, Impostos, Total Geral} Prof. Camilo de Lelis Disc.Banco de Dados 50 Prof. Camilo de Lelis Disc.Banco de Dados 51 NORMALIZAÇÃO Considere uma relação não normalizada : Número da ordem Código do cliente Nome do cliente Endereço Cidade UF CEP Data de Despacho Observações Código Item Descrição Quantidade Embalagem Preço Unitário Valor Total Impostos Total Geral Prof. Camilo de Lelis Disc.Banco de Dados 52 Primeira Forma Normal (1FN)) Número da ordem Código do cliente Nome do cliente Endereço Cidade UF CEP Data de Despacho Observações Código Item Descrição Quantidade Embalagem Preço Unitário Valor Total Impostos Total Geral tirar as repetições1 Prof. Camilo de Lelis Disc.Banco de Dados 53 Número da ordem Código do cliente Nome do cliente Endereço Cidade UF CEP Data de Despacho Observações Impostos Total Geral Código Item Descrição Quantidade Embalagem Preço Unitário Valor Total tirar as repetições1 Prof. Camilo de Lelis Disc.Banco de Dados 54 2 Identificar o atributo que permita uma dependência funcional direta ou indireta dos outros atributos em relação a ele. Número da ordem Código do cliente Nome do cliente Endereço Cidade UF CEP Data de Despacho Observações Impostos Total Geral Código Item Descrição Quantidade Embalagem Preço Unitário Valor Total Prof. Camilo de Lelis Disc.Banco de Dados 55 3 Conservar a propriedade reversível desta projeção Número da ordem Código do cliente Nome do cliente Endereço Cidade UF CEP Data de Despacho Observações Impostos Total Geral Número da ordem Código Item Descrição Quantidade Embalagem Preço Unitário Valor Total Prof. Camilo de Lelis Disc.Banco de Dados 56 Segunda Forma Normal (2FN)) 1 verificar dependência entre identificador Número da ordem Código do cliente Nome do cliente Endereço Cidade UF CEP Data de Despacho Observações Impostos Total Geral Número da ordem Código Item Descrição Quantidade Embalagem Preço Unitário Valor Total Prof. Camilo de Lelis Disc.Banco de Dados 57 Segunda Forma Normal (2FN)) 2 verificar dependência entre identificador Número da ordem Código Item Descrição Quantidade Valor Total Embalagem Preço Unitário Código Item Descrição Embalagem Preço Unitário Prof. Camilo de Lelis Disc.Banco de Dados 58 Segunda Forma Normal (2FN)) 3 verificar dependência entre identificador Número da ordem Código Item Valor Total Quantidade Código Item Descrição Embalagem Preço Unitário Prof. Camilo de Lelis Disc.Banco de Dados 59 Terceira Forma Normal (3FN)) 1 verificar dependência entre atributos Código Item Descrição Embalagem Preço Unitário Número da ordem Código do cliente Nome do cliente Endereço Cidade UF CEP Data de Despacho Observações Impostos Total Geral Prof. Camilo de Lelis Disc.Banco de Dados 60 Terceira Forma Normal (3FN)) 1 verificar dependência entre atributos Código do cliente Nome do cliente Endereço Cidade UF CEP Número da ordem Código do cliente Nome do cliente Endereço Cidade UF CEP Data de Despacho Observações Impostos Total Geral Prof. Camilo de Lelis Disc.Banco de Dados 61 Terceira Forma Normal (3FN)) 2 Separar a dependência transitiva Código do cliente Nome do cliente Endereço Cidade UF CEP Número da ordem Código do cliente Data de Despacho Observações Impostos Total Geral Prof. Camilo de Lelis Disc.Banco de Dados 62 TABELAS NORMALIZADAS Número da ordem Código do cliente Data de Despacho Observações Impostos Código do cliente Nome do cliente Endereço Cidade UF CEP CADASTRO DE CLIENTECADASTRO DE ORDEM Número da ordem Código Item Valor Quantidade CADASTRO DE PEDIDO Código Item Descrição Embalagem Preço Unitário CADASTRO DE PEÇA Prof. Camilo de Lelis Disc.Banco de Dados 63 Prof. Camilo de Lelis Disc.Banco de Dados 64 Estudo de caso 1 Considerando as entidades da Vídeo Locadora, analise as entidades , abaixo relacionadas , quanto a normalização. FICHA_EMPRÉSTIMO = núm_ficha + cód_cli + nome_cli + tel_cli + data_emprest + valor_total_emprést FITA_EMPRESTADA = cód_filme + nome_filme + autor-filme + preço_unit + quant_emprest + valor_pagar Prof. Camilo de Lelis Disc.Banco de Dados 65 Como não existe repetição podemos dizer que ambas Entidades estão na 1FN. FICHA_EMPRÉSTIMO = núm_ficha + cód_cli + nome_cli + tel_cli + data_emprest + valor_total_emprést FITA_EMPRESTADA = núm_ficha + cód_filme + nome_filme + autor-filme + preço_unit + quant_emprest + valor_pagar Prof. Camilo de Lelis Disc.Banco de Dados 66 Como não existe repetição podemos dizer que ambas Entidades estão na 1FN. FICHA_EMPRÉSTIMO = núm_ficha + cód_cli + nome_cli + tel_cli + data_emprest + valor_total_emprést FITA_EMPRESTADA = núm_ficha + cód_filme + nome_filme + autor- filme + preço_unit + quant_emprest + valor_pagar Prof. Camilo de Lelis Disc.Banco de Dados 67 Verificando a dependência funcional. FITA_EMPRESTADA = núm_ficha + cód_filme + nome_filme + autor- filme + preço_unit + quant_emprest + valor_pagar FITA_EMPRESTADA = núm_ficha + cód_filme + quant_emprest + valor_pagar FILME = cód_filme + nome_filme + autor-filme + preço_unit Prof. Camilo de Lelis Disc.Banco de Dados 68 Verificando a dependência transitiva. FICHA_EMPRÉSTIMO = núm_ficha + cód_cli+ nome_cli + tel_cli + endereço + data_emprest + valor_total_emprést FICHA_EMPRÉSTIMO = núm_ficha + cód_cli + data_emprest + valor_total_emprést CLIENTE = cód_cli + nome_cli + endereço + tel_cli Prof. Camilo de Lelis Disc.Banco de Dados 69 Resumindo FICHA_EMPRÉSTIMO = núm_ficha + cód_cli + nome_cli + tel_cli + data_emprest + valor_total_emprést FITA_EMPRESTADA = cód_filme + nome_filme + autor-filme + preço_unit + quant_emprest + valor_pagar Prof. Camilo de Lelis Disc.Banco de Dados 70 FICHA_EMPRÉSTIMO = núm_ficha + cód_cli + data_emprest + valor_total_emprést CLIENTE = cód_cli + nome_cli + endereço + tel_cli Entidades após a Normalização FITA_EMPRESTADA = núm_ficha + cód_filme + quant_emprest + valor_pagar FILME = cód_filme + nome_filme + autor-filme + preço_unit Prof. Camilo de Lelis Disc.Banco de Dados 71 Considere uma relação não normalizada : Mat_funcionário nome_funcionário data_admissão código_cargo valor_salário nome_dependente data_nascimento_dep código_setor nome_setor código_habilidade nome_habilidade data_formação_hab Estudo de Caso 2 Prof. Camilo de Lelis Disc.Banco de Dados 72 Primeira Forma Normal (1FN)) tirar as repetições Mat_funcionário nome_funcionário data_admissão código_cargo valor_salário código_setor nome_setor Mat_funcionário nome_dependente data_nascimento_dep 1 Mat_funcionário código_habilidade nome_habilidade data_formação_hab Prof. Camilo de Lelis Disc.Banco de Dados 73 Segunda Forma Normal (2FN)) dependência funcional Mat_funcionário código_habilidade nome_habilidade data_formação_hab código_habilidade nome_habilidade Mat_funcionário código_habilidade data_formação_hab Prof. Camilo de Lelis Disc.Banco de Dados 74 Terceira Forma Normal (3FN)) dependência transitiva Mat_funcionário nome_funcionário data_admissão código_cargo valor_salário código_setor nome_setor Prof. Camilo de Lelis Disc.Banco de Dados 75 Terceira Forma Normal (3FN)) dependência transitiva código_setor nome_setor Mat_funcionário nome_funcionário data_admissão código_cargo código_setor código_cargo valor_salário Prof. Camilo de Lelis Disc.Banco de Dados 76 Mat_funcionário nome_funcionário data_admissão código_cargo código_setor FUNCIONÁRIO código_setor nome_setor SETOR Mat_funcionário nome_dependente data_nascimento_dep DEPENDENTES código_habilidade nome_habilidade HABILIDADE Mat_funcionário código_habilidade data_formação_hab FUNC/HABIL código_cargo valor_salário CARGO