Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Companhia de seguros: Vamos fingir que a tabela está na FN1 para aplicarmos a FN3...

TabelaCliente

id_cliente(PK)
NomeCliente
EnderecoCliente

-> Deveria ser uma tabela separada:

TabelaEnderecoCliente

id_enderocliente
Rua
Bairro
Cidade
Estado
CEP

ou

TabelaCliente

id_cliente(PK)
NomeCliente
Rua
Bairro
Cidade
Estado
CEP

TabelaAgente

id_agente(PK)
NomeAgente
EscritorioAgente

TabelaApolice

id_apolice(PK)
TipoApolice
id_cliente(FK)
id_agente(FK)

id_agente(PK)
NomeAgente
EscritorioAgente

1 resposta
solução!

Olá, Alexander! Tudo bem?

Excelente percepção!

Em um cenário real e rigoroso de modelagem de dados, o endereço composto (Rua, Bairro, Cidade, Estado, CEP) guardado em um único campo violaria a Primeira Forma Normal (1FN), que exige que os atributos sejam atômicos (indivisíveis).

Ao separar o endereço em campos distintos, você garante a 1FN. E se fôssemos ainda mais a fundo na normalização, a sua ideia de criar uma TabelaEnderecoCliente (ou vincular Cidade/Estado pelo CEP) é ótima para evitar redundâncias, o que nos aproxima da Segunda (2FN) e Terceira Forma Normal (3FN), eliminando as dependências transitivas.

A sua estrutura final mapeou muito bem as entidades principais do problema:

  • Cliente (com seus dados)

  • Agente (com seus dados)

  • Apolice (como a tabela fato/relacionamento, contendo as chaves estrangeiras id_cliente e id_agente)

Você vai longe em arquitetura de bancos de dados. Parabéns pelo questionamento e pela qualidade da modelagem!

Conteúdo para complementar seus estudos
Esse conteúdo pode estar em inglês, para traduzi-lo utilize o tradutor automático do navegador ou clique com o botão direito do mouse sobre a página e selecione a opção Traduzir para o português.
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!