View
215
Download
0
Category
Preview:
Citation preview
NormalizaçãoNormalizaçãoProf. Rogério Gonçalves Bittencourt, M.Sc.Prof. Rogério Gonçalves Bittencourt, M.Sc.
IntroduçãoIntrodução
Processo sistemático e matemático através do qual uma Processo sistemático e matemático através do qual uma tabela relacional não normalizada é transformada em um tabela relacional não normalizada é transformada em um conjunto de tabelas normalizadasconjunto de tabelas normalizadas
Introduzido por Dr. E. F. Codd, em 1970 (1Introduzido por Dr. E. F. Codd, em 1970 (1aa Forma Normal) Forma Normal) Técnica para a retirada de anomalias do modelo relacionalTécnica para a retirada de anomalias do modelo relacional O processo de normalização baseia-se no conceito de Forma O processo de normalização baseia-se no conceito de Forma
Normal, que é uma regra que deve ser obedecida por uma Normal, que é uma regra que deve ser obedecida por uma tabela para que esta seja considerada bem projetada.tabela para que esta seja considerada bem projetada.
Existem diversas regras (1FN, 2FN, 3FN, FNBC, 4FN e 5FN) Existem diversas regras (1FN, 2FN, 3FN, FNBC, 4FN e 5FN)
MotivaçãoMotivação
Vem das características de um mau Vem das características de um mau projeto de banco de dadosprojeto de banco de dados
Repetição de informaçõesRepetição de informações Inabilidade de representar certas informaçõesInabilidade de representar certas informações Perda de informaçãoPerda de informação
Anomalias!!!!Anomalias!!!!
PACIENTES (ID, NOME, END, TEL, SEXO, DT_NASC, SIGLA_CONV, NM_CONVENIO, END_CONV, TEL_CONV)
MAU PROJETO DE BD!!!
AnomaliasAnomalias
Anomalia de InserçãoAnomalia de Inserção Quando se inserir um paciente, é preciso inserir Quando se inserir um paciente, é preciso inserir
também os dados do convênio, mesmo que já também os dados do convênio, mesmo que já estejam cadastrados;estejam cadastrados;
Não é possível inserir um convênio sem inserir Não é possível inserir um convênio sem inserir também um convênio.também um convênio.
PACIENTES (ID, NOME, END, TEL, SEXO, DT_NASC, SIGLA_CONV, NM_CONVENIO, END_CONV, TEL_CONV)
MAU PROJETO DE BD!!!
AnomaliasAnomalias
Anomalia de ExclusãoAnomalia de Exclusão Ao se excluir um paciente, se este for o único Ao se excluir um paciente, se este for o único
associado de um convênio, então os dados do associado de um convênio, então os dados do convênio serão perdidosconvênio serão perdidos
PACIENTES (ID, NOME, END, TEL, SEXO, DT_NASC, SIGLA_CONV, NM_CONVENIO, END_CONV, TEL_CONV)
MAU PROJETO DE BD!!!
AnomaliasAnomalias
Anomalia de AlteraçãoAnomalia de Alteração Para se modificar os dados de um convênio, é Para se modificar os dados de um convênio, é
preciso atualizar os mesmos dados em todas as preciso atualizar os mesmos dados em todas as tuplas de pacientes que estejam associados àquele tuplas de pacientes que estejam associados àquele convênio.convênio.
PACIENTES (ID, NOME, END, TEL, SEXO, DT_NASC, SIGLA_CONV, NM_CONVENIO, END_CONV, TEL_CONV)
MAU PROJETO DE BD!!!
RedundânciaRedundância
O termo redundância vem do latin redundantia que na Língua Portuguesa é definido como algo em excesso e em desperdício.
Em uma tabela relacional, redundância significa informação desnecessária ou em excesso.
ExemploExemplo
Muitas de suas informações estão sendo repetidas. Por exemplo: Nome do estudante, endereço, nome do curso, nome do instrutor e sala.
102Ana PriceEng. SoftwareCP304Av. das flores, 25Filipe85001
1024CiranoBanco de DadosCP302Av. das plantas, 35Lucinéia86005
500NettoComunicaçõesCP303Av. das flores, 25Filipe85001
102CiranoBanco de DadosCP302Av. das flores, 25Filipe85001
SalaInstrutorDescriçãoDisciplinaEndereçoNomeMatric
ExemploExemplo Inserção - considerando-se que a chave primária da tabela curso seja
Matric e Disciplina, e que a chave primária não pode conter valores nulos, para inserção de uma disciplina seria necessário incluir também os dados referentes ao aluno e vice-versa;
Atualização - caso tenha que ser atualizado o endereço do aluno 'Filipe', todas as ocorrências do aluno 'Filipe' terão que ser atualizadas também, existindo assim uma maior perda de tempo, um maior 'custo' para efetuar a transação e também a possibilidade de inconsistência;
Exclusão - podem ser perdidos dados importantes. No caso de ser deletado o aluno 'Filipe' da tupla que contém a disciplina 'CP303' todas as informações referentes a disciplina serão perdidas também.
Processo de NormalizaçãoProcesso de Normalização
Esquema Relacional Normalizado
Esquema de Arquivo ou Documento
Representação como tabela
ÑN
Passagem à 1FN
Passagem à 2FN
Passagem à 4FN
Passagem à 3FN
Passagem à 5FN
Esquema não normalizado
Esquema na 1FN
Esquema na 2FN
Esquema na 3FN
Esquema na 4FN
Esquema na 5FN
Passagem à FNBC
Dependências FuncionaisDependências Funcionais
Um conceito básico usado para normalizar Um conceito básico usado para normalizar relaçõesrelações
Teoria de ConjuntosTeoria de Conjuntos Dependências Funcionais (DF’s) são Dependências Funcionais (DF’s) são
restrições de integridade mais gerais que restrições de integridade mais gerais que as restrições de chaveas restrições de chave
“Dada uma relação (FORNECEDOR, por exemplo), um conjunto de atributos Y (por exemplo NOMEF) é dito funcionalmente dependente de um outro conjunto de atributos X (por exemplo CODF) se, e somente se, cada ocorrência de valores de X está associada sempre com a mesma ocorrência de valores de Y.”
Dependências FuncionaisDependências Funcionais
Leia-se:Leia-se: SIGLA_CONV determina funcionalmente SIGLA_CONV determina funcionalmente NM_CONV, END_CONV e TEL_CONVNM_CONV, END_CONV e TEL_CONV
Significa:Significa: “Se duas linhas da tabela PACIENTES tiverem “Se duas linhas da tabela PACIENTES tiverem o mesmo valor de SIGLA_CONV, então elas possuem o o mesmo valor de SIGLA_CONV, então elas possuem o mesmo valor de NM_CONV, END_CONV e TEL_CONV”mesmo valor de NM_CONV, END_CONV e TEL_CONV”
Em outras palavras:Em outras palavras: “Não é valida uma tabela que tenha “Não é valida uma tabela que tenha duas linhas que coincidem na(s) coluna(s) listadas antes duas linhas que coincidem na(s) coluna(s) listadas antes da seta (da seta (), mas são diferentes em alguma coluna ), mas são diferentes em alguma coluna listada depois da seta”listada depois da seta”
PACIENTES (ID, NOME, END, TEL, SEXO, DT_NASC, SIGLA_CONV, NM_CONVENIO, END_CONV, TEL_CONV)
{SIGLA_CONV} {NM_CONV, END_CONV, TEL_CONV}
Dependências FuncionaisDependências Funcionais
Como toda restrição de integridade, DF’s são Como toda restrição de integridade, DF’s são baseadas na semântica da aplicação.baseadas na semântica da aplicação.
Podemos checar uma instância de tabela e ver se uma DF é Podemos checar uma instância de tabela e ver se uma DF é violada ou não. Mas examinando uma instância NUNCA violada ou não. Mas examinando uma instância NUNCA podemos concluir se uma DF deve ser imposta ou não;podemos concluir se uma DF deve ser imposta ou não;
Uma DF diz respeito a Uma DF diz respeito a todas as possíveistodas as possíveis instâncias! instâncias!
Uma restrição de chave é um caso especial de DFUma restrição de chave é um caso especial de DF A chave (ou superchave) determina funcionalmente todos os A chave (ou superchave) determina funcionalmente todos os
outros atributos da tabelaoutros atributos da tabela Como ID é chave da tabela PACIENTES, temos que:Como ID é chave da tabela PACIENTES, temos que:
{ID} {NOME, END, TEL, SEXO, DT_NASC, SIGLA_CONV, NM_CONV, END_CONV, TEL_CONV}
Regras de InferênciaRegras de Inferência
Dadas algumas DF’s, podemos geralmente Dadas algumas DF’s, podemos geralmente inferir outras DF’sinferir outras DF’s– Dadas as DF’sDadas as DF’s
– Podemos inferir quePodemos inferir que
{ID} {SIGLA_CONV}{SIGLA_CONV} {END_CONV}
{ID} {END_CONV}
Regras de InferênciaRegras de InferênciaAxiomas de ArmstrongAxiomas de Armstrong
ReflexivaReflexiva
IncrementoIncremento
TransitivaTransitiva
União ou AditivaUnião ou Aditiva
Decomposição ou ProjetivaDecomposição ou Projetiva
PseudotransitividadePseudotransitividade
Se Y ⊇ X ∴ X Y
Se X Y ∴ XZ YZ
Se X Y ∧ Y Z ∴ X Z
Se X Y ∧ X Z ∴ X YZ
Se X YZ ∴ X Y ∧ X Z
Se X Y ∧ WY Z ∴ WX Z
Fechamento de um Conjunto de DF’sFechamento de um Conjunto de DF’s
Representamos por Representamos por FF o conjunto de DF’s de uma o conjunto de DF’s de uma relação.relação.
O O FechamentoFechamento ( (FF++) de um conjunto de DF’s ) de um conjunto de DF’s FF é o conjunto de todas as DF’s que podem ser é o conjunto de todas as DF’s que podem ser inferidas a partir de inferidas a partir de FF..
Não é preciso listar todas as DF’s impostas sobre Não é preciso listar todas as DF’s impostas sobre um esquema. Normalmente especificamos um um esquema. Normalmente especificamos um subconjunto dessas DF’s e consideramos o subconjunto dessas DF’s e consideramos o fechamentofechamento desse subconjunto desse subconjunto
Dependência Funcional TotalDependência Funcional Total
A seguinte DFA seguinte DF
é dita é dita DF TotalDF Total se a remoção de qualquer se a remoção de qualquer atributo atributo AA de de XX significar que a dependência significar que a dependência não mais se mantém.não mais se mantém.
X Y
∀ A ⊇ X, (X – {A}) → Y
Dependência Funcional ParcialDependência Funcional Parcial
A seguinte DFA seguinte DF
é dita é dita DF ParcialDF Parcial se algum atributo se algum atributo AA ⊇⊇ XX puder ser removido de puder ser removido de XX e a dependência e a dependência ainda se mantiver.ainda se mantiver.
X Y
∀ A ⊇ X, (X – {A}) → Y
NormalizaçãoNormalizaçãoNúmero do Pedido:_____________________Prazo de Entrega:____________dias
Código do Vendedor:_______________________Nome do Vendedor:______________________
Cliente:_________________________________________________________________________Endereço:____________________________ Cidade:_______________________ Estado:_______CGC:______________________________ Inscrição Estadual:_____________________________
UnidadesCod. Produto Descrição
...... ...... ......
Quantidade
......
Total do ProdutoValor Unitário
......
Total do Pedido
......
Pedido Pedido ((Num_PedidoNum_Pedido, Prazo, Cliente, Endereço, Cidade, UF, , Prazo, Cliente, Endereço, Cidade, UF, Insc_Est, Insc_Est, ((Cod_Prod, Unid, Qtde, Descr, Val_Unit, Total_ProdCod_Prod, Unid, Qtde, Descr, Val_Unit, Total_Prod)), ,
Total_Pedido, Cod_Vendedor, Nome_VendedorTotal_Pedido, Cod_Vendedor, Nome_Vendedor))
Primeira Forma NormalPrimeira Forma Normal1FN1FN
A 1FN trata de informações que se repetem (atributos A 1FN trata de informações que se repetem (atributos multi-valorados) e define que multi-valorados) e define que cada ocorrência da cada ocorrência da chave primária deve corresponder a uma e chave primária deve corresponder a uma e somente uma informação de cada atributo, ou somente uma informação de cada atributo, ou seja, a entidade não deve conter grupos seja, a entidade não deve conter grupos repetitivosrepetitivos..
Para um esquema com relações não normalizadas Para um esquema com relações não normalizadas (como a relação Pedido acima), a solução é decompor (como a relação Pedido acima), a solução é decompor cada relação não normalizada em tantas entidades cada relação não normalizada em tantas entidades quanto for o número de grupos repetitivos.quanto for o número de grupos repetitivos.
A B E F
C D
CONVERTER PARA
A B E F
A C D
Primeira Forma NormalPrimeira Forma Normal1FN1FN
• Aplicando 1FN na relação Aplicando 1FN na relação PEDIDOPEDIDO, , observa-se que existe um grupo repetitivo observa-se que existe um grupo repetitivo dentro da relação, que trata dos vários dentro da relação, que trata dos vários produtos que podem constar num pedido.produtos que podem constar num pedido.
• Isto se deve ao fato de que este grupo Isto se deve ao fato de que este grupo forma uma coluna não atômica. Este grupo forma uma coluna não atômica. Este grupo é composto dos atributos é composto dos atributos Cod_ProdCod_Prod, , UnidUnid, , QtdeQtde, , DescrDescr, , Val_UnitVal_Unit.. Portanto, cria-se Portanto, cria-se uma nova relação, a ser chamada de uma nova relação, a ser chamada de ITEM_PEDIDOITEM_PEDIDO, ficando o esquema da , ficando o esquema da seguinte forma:seguinte forma:
Primeira Forma NormalPrimeira Forma Normal1FN1FN
PrazoClienteEndereçoCidadeUF Insc_EstNum_Pedido Total_PedidoCod_VendedorNome_Vendedor
Cod_ProdUnid QtdeDescrVal_UnitCod_ProdUnid QtdeDescrVal_UnitTotal_Prod
CONVERTER PARA
PrazoClienteEndereçoCidadeUF Insc_EstNum_Pedido Total_PedidoCod_VendedorNome_Vendedor
Cod_ProdUnid DescrVal_UnitTotal_ProdPrazoClienteNum_Pedido QtdeCod_ProdUnid QtdeDescrVal_UnitTotal_Prod
Dependência FuncionalDependência FuncionalExemploExemplo
Dada uma relação qualquer, dizemos que um atributo ou Dada uma relação qualquer, dizemos que um atributo ou conjunto de atributos conjunto de atributos AA é dependente funcional de um é dependente funcional de um outro atributo outro atributo BB contido na mesma entidade, se a cada contido na mesma entidade, se a cada valor de valor de BB existir nas linhas da relação em que aparece, existir nas linhas da relação em que aparece, um único valor de um único valor de AA. .
AA depende funcionalmente de depende funcionalmente de BB.. ( (B B →→ A A)) BB é determinante de é determinante de AA.. ((B B →→ A A))
Exemplo:Exemplo:
Prazo de entrega depende funcionalmente do número do Prazo de entrega depende funcionalmente do número do pedido: Num_Pedido pedido: Num_Pedido →→ Prazo Prazo
Nome do vendedor depende funcionalmente do código do Nome do vendedor depende funcionalmente do código do vendedor: Cod_Vendedor vendedor: Cod_Vendedor →→ Nome_Vendedor Nome_Vendedor
Segunda Forma NormalSegunda Forma NormalDF Parcial e TotalDF Parcial e Total
Dependência Funcional Total Dependência Funcional Total Um atributo ou Um atributo ou conjunto de atributos depende de forma total da conjunto de atributos depende de forma total da chave chave primária concatenadaprimária concatenada se se a cada valor da chave (toda)a cada valor da chave (toda) está associado a um único valor para este atributoestá associado a um único valor para este atributo..
Dependência Funcional Parcial Dependência Funcional Parcial OO atributo só atributo só depende de parte da chave primária.depende de parte da chave primária.
A B C D CONVERTER PARA
A B E
A D
C
Segunda Forma NormalSegunda Forma Normal2FN2FN
Uma relação está em 2FN se estiver em 1FN e não Uma relação está em 2FN se estiver em 1FN e não tiver atributos com tiver atributos com dependência parcial dependência parcial em em relação à chave primária.relação à chave primária.
Para uma relação na 1FN, observar se ela possui Para uma relação na 1FN, observar se ela possui chave primária concatenada. Se possuir, verificar se chave primária concatenada. Se possuir, verificar se existe atributo (fora da chave) que dependa existe atributo (fora da chave) que dependa parcialmente da chave, ou seja, que não dependa parcialmente da chave, ou seja, que não dependa da chave toda. Se sim, decompor a relação para da chave toda. Se sim, decompor a relação para que não existam dependências parciais.que não existam dependências parciais.
Segunda Forma NormalSegunda Forma Normal2FN2FN
ITEM_PEDIDO ( ITEM_PEDIDO ( Num_Pedido, Cod_ProdNum_Pedido, Cod_Prod, Un id, Qtde, , Un id, Qtde, Descr, Val_Unit, Total_Prod )Descr, Val_Unit, Total_Prod )
• O atributo O atributo QtdeQtde depende de forma total da chave depende de forma total da chave primária primária ((Num_PedidoNum_Pedido + + Cod_Prod Cod_Prod))
• O atributo O atributo DescrDescr (descrição do produto) depende de (descrição do produto) depende de forma parcial da chave primária pois só depende do forma parcial da chave primária pois só depende do Cod_ProdCod_Prod e não do e não do Num_PedidoNum_Pedido + + Cod_ProdCod_Prod..
– Observação:Observação: Dependência funcional total e parcial Dependência funcional total e parcial só ocorre quando a chave primária for composta de só ocorre quando a chave primária for composta de vários atributos (concatenada).vários atributos (concatenada).
Segunda Forma NormalSegunda Forma Normal2FN2FN
Exemplo:Exemplo: (a única relação no nosso esquema com chave (a única relação no nosso esquema com chave concatenada)concatenada)
ITEM_PEDIDO ( ITEM_PEDIDO ( Num_Pedido, Cod_ProdNum_Pedido, Cod_Prod, Unid, , Unid, Qtde, Descr, Val_Unit, Total_Prod )Qtde, Descr, Val_Unit, Total_Prod )
• Os atributos Os atributos Unid, Descr, Val_Unit Unid, Descr, Val_Unit dependem dedependem de Cod_Prod Cod_Prod o qual faz parte da chave primária.o qual faz parte da chave primária.
• Cria-se a relação Cria-se a relação PRODUTO (PRODUTO (Cod_ProdCod_Prod, , Unid, Descr, Unid, Descr, Val_Unit)Val_Unit), com a chave primária , com a chave primária Cod_Prod Cod_Prod e eme em ITEM_PEDIDOITEM_PEDIDO, a chave primária permanece , a chave primária permanece Num_Pedido + Cod_Prod.Num_Pedido + Cod_Prod.
Segunda Forma NormalSegunda Forma Normal2FN2FN
Cod_Prod Unid Descr Val_Unit Total_ProdPrazo ClienteNum_Pedido QtdeCod_Prod Unid Qtde Descr Val_Unit Total_Prod
CONVERTER PARA
Num_Pedido Cod_Prod Qtde Total_Prod
Cod_Prod Unid Descr Val_Unit
Terceira Forma NormalTerceira Forma NormalDF TransitivaDF Transitiva
Quando um atributo ou conjunto de atributos Quando um atributo ou conjunto de atributos AAdepende de outro atributo depende de outro atributo BB que não pertence à que não pertence à chave primáriachave primária, mas é dependente funcional , mas é dependente funcional desta, dizemos que desta, dizemos que AA é dependente transitivo de é dependente transitivo de BB..
A B C CONVERTER PARA
A B
A DCB
Terceira Forma NormalTerceira Forma Normal3FN3FN
Uma relação está na 3FN se está em 2FN e se Uma relação está na 3FN se está em 2FN e se nenhum de seus atributos possui nenhum de seus atributos possui dependência dependência transitiva transitiva em relação a outro atributo que não em relação a outro atributo que não esteja na chave primária.esteja na chave primária.
Ao retirar a dependência transitiva, criamos novas Ao retirar a dependência transitiva, criamos novas relações com os atributos que dependem relações com os atributos que dependem transitivamente do outro e a sua chave primária é o transitivamente do outro e a sua chave primária é o atributo que causou essa dependência.atributo que causou essa dependência.
Uma relação na 3FN, além de não ter dependência Uma relação na 3FN, além de não ter dependência transitiva, não pode ter atributos que sejam transitiva, não pode ter atributos que sejam resultado de algum cálculo sobre outro atributo, o resultado de algum cálculo sobre outro atributo, o que, de certa forma, pode ser encarado como que, de certa forma, pode ser encarado como dependência funcional.dependência funcional.
Terceira Forma NormalTerceira Forma Normal3FN3FN
PEDIDO ( PEDIDO ( Num_PedidoNum_Pedido, Prazo, Cliente, , Prazo, Cliente, Endereço, Cidade, UF, Insc_Est, Total_Pedido, Endereço, Cidade, UF, Insc_Est, Total_Pedido, Cod_Vendedor, Nome_Vendedor )Cod_Vendedor, Nome_Vendedor )
• Os atributos Os atributos Endereço, Cidade, UF, CGC e Endereço, Cidade, UF, CGC e Insc_Est Insc_Est são dependentes transitivos do são dependentes transitivos do atributo atributo Cliente.Cliente.
• Nome_Vendedor é Nome_Vendedor é dependente transitivo dedependente transitivo deCod_VendedorCod_Vendedor
Terceira Forma NormalTerceira Forma Normal3FN3FN
Prazo Cliente Endereço Cidade UF Insc_EstNum_Pedido Total_PedidoCod_VendedorNome_Vendedor
CONVERTER PARA
Prazo Cod_CliNum_Pedido Total_PedidoCod_Vendedor
Cod_VendedorNome_Vendedor
Cod_Cli Endereço Cidade UF Insc_EstNome
Terceira Forma NormalTerceira Forma Normal3FN3FN
PEDIDO ( PEDIDO ( Num_PedidoNum_Pedido, Prazo, Cliente, Endereço, , Prazo, Cliente, Endereço, Cidade, UF, Insc_Est, Total_Pedido, Cidade, UF, Insc_Est, Total_Pedido, Cod_Vendedor, Nome_Vendedor )Cod_Vendedor, Nome_Vendedor )
• O atributo O atributo nome vendedor nome vendedor depende transitivamente depende transitivamente de de Cod_Vendedor, Cod_Vendedor, o qual não pertence à chave o qual não pertence à chave primária, mas depende desta.primária, mas depende desta.
• Cria-se a relaçãoCria-se a relação VENDEDOR ( VENDEDOR (Cod_VendedorCod_Vendedor, , Nome_Vendedor)Nome_Vendedor)
• Os atributos Os atributos Endereço, Cidade, UF, CGC Endereço, Cidade, UF, CGC ee Insc_Est Insc_Est dependem transitivamente de dependem transitivamente de Cliente Cliente que não está que não está na chave primária (mas depende desta).na chave primária (mas depende desta).
• Cria-se a relação Cria-se a relação CLIENTE CLIENTE ((ClienteCliente, , Nome, Nome, Endereço, Cidade, UF, CGC, Insc_Est)Endereço, Cidade, UF, CGC, Insc_Est)..
Quarta Forma NormalQuarta Forma NormalDF MultivaloradaDF Multivalorada
Dependência Funcional Multivalorada Dependência Funcional Multivalorada Dada uma Dada uma relação qualquer com três atributos relação qualquer com três atributos AA, , BB e e CC. Diz-se que . Diz-se que BB depende de forma multivaloradadepende de forma multivalorada de de AA se, e somente se, e somente se, sempre que existirem duas tuplas se, sempre que existirem duas tuplas (A(A11, B, B11, C, C11)) e e (A(A11, , BB22, C, C22)) existirão também duas tuplas existirão também duas tuplas (A(A11, B, B11, C, C22)) e e (A(A11, , BB22, C, C11))..
Isso quer dizer que Isso quer dizer que AA, na verdade, relaciona-se com , na verdade, relaciona-se com BB e e com com CC de forma independente. de forma independente.
Quarta Forma NormalQuarta Forma NormalDF MultivaloradaDF Multivalorada
Quarta Forma NormalQuarta Forma NormalDF MultivaloradaDF Multivalorada
10248963INF003
10248963INF003
10241787MA001
10248963MA001
10245645MA001
1021787MA001
1028963MA001
1025645MA001
SalaCodAlCodPesq
8963INF003
1787MA001
8963MA001
5645MA001
CodAlCodPesq
1024INF003
1024MA001
102MA001
SalaCodPesq
Quarta Forma NormalQuarta Forma Normal4FN4FN
Uma relação está na Uma relação está na 4FN se está na 3FN e 4FN se está na 3FN e se não existirem se não existirem dependências dependências multivaloradas.multivaloradas.
Há redundâncias para Há redundâncias para representar todas as representar todas as combinações.combinações.
AS4AU32
AS3AU32
AS1AU32
AS2AU32
AS1AU12
AS4AU12
AS3AU12
AS2AU21
AS1AU21
AS2AU11
AS1AU11
CodAssuntoCodAutorCodLivro
AutAssLiv (AutAssLiv (CodLivro, CodAutor, CodAssuntoCodLivro, CodAutor, CodAssunto))
Quinta Forma NormalQuinta Forma NormalDependência de JunçãoDependência de Junção
Dependência de Junção Dependência de Junção Dada uma relação R Dada uma relação R qualquer com três atributos qualquer com três atributos AA, , BB e e CC, compondo uma , compondo uma chave primária composta (típica em relacionamentos n-chave primária composta (típica em relacionamentos n-ários). Diz-se que a relação R satisfaz à DJ se, e ários). Diz-se que a relação R satisfaz à DJ se, e somente se, todo o valor válido possível de R é igual à somente se, todo o valor válido possível de R é igual à junção de suas projeções sobre A, B, e C.junção de suas projeções sobre A, B, e C.
Isso quer dizer que o conteúdo de R pode ser Isso quer dizer que o conteúdo de R pode ser reconstruído a partir da junção de tabelas menores reconstruído a partir da junção de tabelas menores (projeções).(projeções).
Quinta Forma NormalQuinta Forma Normal5FN5FN
Uma relação está na 5FN se está na 4FN e se o Uma relação está na 5FN se está na 4FN e se o seu conteúdo seu conteúdo não pudernão puder ser reconstruído a ser reconstruído a partir de tabelas menores.partir de tabelas menores.
““... Se o resultado de junções de projeções de R ... Se o resultado de junções de projeções de R for diferentefor diferente de R.” de R.”
Quinta Forma NormalQuinta Forma Normal 5FN5FN
Quinta Forma NormalQuinta Forma Normal5FN5FN
CarroFordCarlos
CaminhãoGMJoão
CarroGMJoão
CaminhãoFordJoão
CarroFordJoão
ProdutoCompanhiaAgente
FordCarlos
GMJoão
FordJoão
CompanhiaAgente
CarroCarlos
CaminhãoJoão
CarroJoão
ProdutoAgente
CaminhãoGM
CarroGM
CaminhãoFord
CarroFord
ProdutoCompanhiaπ(agente, companhia)(R) π(agente, produto)(R)
π(companhia, produto)(R)
Relação (R)
Quinta Forma NormalQuinta Forma Normal5FN5FN
Recommended