forma normal de boyce-codd

Propaganda
BANCO DE DADOS
Universidade do Estado de Santa Catarina
Centro de Ciências Tecnológicas
Departamento de Ciência da Computação
Prof. Alexandre Veloso de Matos
[email protected]
OBJETIVOS
Orientações para Projetos de BD;
Dependências Funcionais (DFs):
Definição de DF;
Regras de inferência para DFs.
Formas Normais:
Primeira Forma Normal;
Segunda Forma Normal;
Terceira Forma Normal.
Outras Formas Normais.
NORMALIZAÇÃO DE PROJETOS DE BD
Na prática, a normalização é realizada para obter projetos de alta
qualidade e atender a propriedades que facilitem a execução de
operações de consulta
No entanto, os projetistas de bancos de dados, em geral, não precisam
normalizar na maior forma normal possível.
Pode-se lançar mão da Desnormalização
Processo de armazenar junções de relações que estejam em forma normal superior.
Servem como uma relação base para facilitar operações com outras relações que estão numa forma
normal inferior.
OUTRAS FORMAS NORMAIS
Originalmente, Edgar Codd definiu três formas normais:
1FN, 2FN e 3FN (Primeira, Segunda e Terceira Forma Normal),
Mas, hoje existem outras:
Forma Normal de Boyce-Codd, Quarta e Quinta Forma Normal
Entretanto, alguns autores sugerem que aplicando as três formas normais básicas
definidas por Codd, o projeto do BD já estará livre de redundâncias e
inconsistências.
FORMA NORMAL DE BOYCE-CODD (FNBC)
Uma relação está na FNBC se:
Estiver na 2FN e
Todos os seus atributos são dependentes não-transitivos de uma chave candidata
A diferença para 3FN é a inexistência da possibilidade de A ser parte
da chave.
Note-se que se:
Se uma tabela estiver na FNBC também estará na 3FN, mas não o inverso.
FORMA NORMAL DE BOYCE-CODD (FNBC)
A FNBC é considerada uma forma mais rígida da 3FN, pois trata de um
tipo de atributo não considerado em outras formas normais – a chave
candidata.
Portanto, é adequado pensar em FNBC quando:
Uma tabela tem várias chaves candidatas
Chaves candidatas são compostas
Chaves candidatas sobrepõem-se
FORMA NORMAL DE BOYCE-CODD (FNBC)
Exemplo:
nmAluno
nmCurso
nmDocente
João
Banco de Dados
Edgar Codd
Maria
Programação I
Naveen Gupta
José
Banco de Dados
Edgar Codd
Maria
Banco de Dados
Edgar Codd
João
Redes de Computadores
Douglas Comer
José
Redes de Computadores
Douglas Comer
{nmAluno, nmCurso}
nmDocente
nmDocente
nmCurso
Não há DF transitiva, mas, há uma DF em que
atributos da chave candidata {nmAluno, nmCurso} não
é o determinante !
FORMA NORMAL DE BOYCE-CODD (FNBC)
Algumas anomalias podem ser percebidas:
Por exemplo:
Como se dá a inserção de um novo docente na tabela anterior?
Se Naveen Gupta deixa de ser professor é provável que qualquer menção a
Programação I seja perdida.
FORMA NORMAL DE BOYCE-CODD (FNBC)
A solução é prover a decomposição tendo como base as DFs:
Tabela 1 {nmDocente, nmCurso}
Tabela 2 {nmAluno, nmCurso}
FORMA NORMAL DE BOYCE-CODD (FNBC)
No entanto, cuidado! É possível que se encontre soluções que não
preservam todas as DFs nas relações decompostas.
Por exemplo:
{nmAluno, nmDocente} e {nmAluno, nmCurso}
{nmCurso, nmDocente} e {nmCurso, nmAluno}
{nmDocente, nmCurso} e {nmDocente, nmAluno}
Todas as três decomposições perdem a primeira DF!
Entretanto, das três, apenas a terceira decomposição não gera tuplas
inconsistentes após um join!
QUARTA FORMA NORMAL (4FN)
Uma relação está na 4FN se não ocorrerem dependências
multivaloradas nesta tabela
Dependência Multivalorada
Um atributo B é multidependente de outro atributo A se um valor de A é
associado a uma coleção de valores de B.
Nesse caso, diz-se que B é multidepedente de A (A
B)
QUARTA FORMA NORMAL (4FN)
vendedorId
vendedorId
vendedorId
clienteId
nmCliente
nmParente parentesco
{clienteId, nmCliente}
{nmParente, grauParentesco}
Existe uma intrínseca incerteza em como manter as linhas.
Várias abordagens são possíveis e diferentes programadores
podem tomar diferentes caminhos!
QUARTA FORMA NORMAL (4FN)
Para que uma tabela atinja a 4FN, a abordagem deve seguir:
Para cada grupo de repetição separado, gera-se uma nova relação
correspondente contendo este grupo de repetição e a chave primária da
relação original
Determinar a chave primária da nova relação, a qual será a concatenação da
chave primária da relação original com a chave para o grupo de repetição
Vendedor {vendedorId, nmVendedor}
Vendedor_Cliente {vendedorId, clienteId, nmCliente}
Vendedor_Parente {vendedorId, nmParente, parentesco)
QUARTA FORMA NORMAL (4FN)
Se uma relação está na 4FN então necessariamente está na FNBC
É uma forma normal geralmente tratada como uma abordagem
excepcional (pois, depende de um projeto top-down)
QUINTA FORMA NORMAL (5FN)
É também conhecida como Forma Normal de Projeção /Junção – FNPJ
Definições:
X
Uma relação não estará na 5FN se for possível construir tuplas inconsistentes a
partir de tuplas menores
Uma relação está na 5FN se para toda a dependência que se verifique na
tabela, esta dependência é baseada em chaves
Uma relação está na 5FN se estiver na 4NF e as relações não puderem ser
decompostas em relações mais simples sem perda de informação
QUINTA FORMA NORMAL (5FN)
Exemplo:
nmVendedor
João
João
nmEmpresa
Samsumg
Apple
Produto
Galaxy Tab
Ipad
Nunca deveria ser possível que:
João venda Ipads da Samsumg
João venda Galaxy Tabs da Apple
Então, há combinações menores que podem ser inconsistentes!
QUINTA FORMA NORMAL (5FN)
Podemos reconstruir todos os fatos verdadeiros em 3 tabelas em vez de
1:
nmVendedor nmEmpresa
nmVendedor
Produto
nmEmpresa
Produto
João
Samsumg
João
Galaxy Tab
Samsumg
Galaxy Tab
João
Apple
João
Ipad
Apple
Ipad
QUINTA FORMA NORMAL (5FN)
Algumas conclusões:
Os fatos tendem a ser registrados várias vezes em uma tabela que não está na
5FN.
O tamanho de uma tabela que fere a 5FN aumenta em progressão geométrica,
enquanto as tabelas normalizadas crescem em progressão aritmética.
Logo, é mais fácil escrever as regras de negócio a partir da 5FN
BIBLIOGRAFIA
ELMASRI, R. E.; NAVATHE S. Sistemas de Banco de Dados. 4ª Ed., São
Paulo: Pearson Prentice Hall, 2005. Capítulo 10.
EXERCÍCIO DE FIXAÇÃO
Considere a seguinte tabela não normalizada. Proponha um conjunto de
tabelas que esteja na 3FN.
Notas_Fiscais (Num. NF, Série, Data emissão, Cod. do Cliente, Nome do cliente,
Endereço do cliente, CGC do cliente, Relação das mercadorias vendidas e Total
Geral da Nota)
* (considere que para cada mercadoria temos: Código da Mercadoria, Descrição da
Mercadoria, Quantidade vendida, Preço de venda e Total da venda desta mercadoria)
Download