2
respostas

[Dúvida] Exercício 'Faça como eu fiz' de quarta forma normal

Boa tarde

Fiquei com uma dúvida quanto a este desafio

https://caelum-online-public.s3.amazonaws.com/3142-modelagem-banco-dados/faca-como-fiz/Aula+04.zip

Na aba "4FN - Pacientes" não me parece que a tabela seja do tipo "multivalorada", ou seja: "quando dois atributos em uma tabela são independentes um do outro, mas ambos são determinados por um terceiro atributo."

  • 'Paciente' tem relação direta com 'Plano de saúde'
  • 'Paciente' tem relação direta com 'Exame' e
  • 'Plano de saúde' tem relação direta com 'Exame' pois um 'Exame' só pode ser disponibilizado se o 'Plano de saúde' permitir

Ou seja, todos os três campos estão acoplados (dependentes entre sí) e não vejo motivo para separa-los em tabelas intermediárias aplicando a 4° forma normal.

No máximo, para melhor organização, poderia criar três tabelas de cadastro:

'Paciente'
PacienteID
PacienteNome

'Plano'
PlanoID
PlanoNome

'Exame'
ExameID
ExameNome

Mas a quarta tabela de relacionamento não mudaria em nada sua organização original

'Atendimento'
AtendimentoID
PacienteID
PlanoID
ExameID
2 respostas

Olá, Daniel! Tudo certinho?

Entendo sua confusão. A quarta forma normal tem a fama de ser complicada de entender e aplicar. Vamos destrinchar o exemplo:

A dependência multivalorada aparece quando um atributo determina um grupo de outros atributos que não são relacionados entre si.

Você interpretou que 'Paciente', 'Plano de saúde' e 'Exame' estão todos inter-relacionados, e isso é verdade, mas a questão é como eles estão relacionados.

Observando o exemplo, temos que a paciente Danielle tem dois planos de saúde: 'Saúde +' e 'Cuidando de Você'. Danielle também fez dois exames: Endoscopia e Glicemia. Entretanto, 'Exame' e 'Plano de Saúde' não são dependentes entre si: a cada vez que Danielle faz um exame, são necessárias duas inserções. Logo, compreendemos que 'Paciente' determina 'Plano de saúde' e 'Exame', sendo que o grupo de determinados não está relacionado entre si, o que configura uma dependência multivalorada.

A 4NF sugere a remoção dessas dependências multivaloradas, dividindo a tabela em duas. Nesse caso, poderíamos ter uma tabela 'Paciente_Plano' que liga 'Paciente' e 'Plano de saúde' e uma segunda tabela 'Plano_Exame' que liga 'Plano de saúde' e 'Exame'.

Espero ter esclarecido sobre a aplicação da 4FN! Lembre-se, a normalização é uma ferramenta para nos ajudar a projetar um banco de dados que minimiza a duplicação de dados e as anomalias de inserção, atualização e exclusão. Mas nem sempre é necessário ou desejável aplicar todas as formas normais em todas as situações.

Fico à disposição, Daniel!

Abraço.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Muito obrigado pela resposta