1
resposta

Chave Estrangeira herdada

Estou com uma dúvida com relação à FK.

Há três entidades (imagem abaixo) PESSOA, PESSOA_FISICA e APELIDO.

Na entidade PESSOA há um PK idPessoa. A entidade PESSOA_FISICA recebe essa PK (idPessoa) como chave estrangeira, sendo nomeada como fk_PESSOA_idPessoa.

Já a entidade APELIDO, recebe, além da chave estrangeira fk_PESSOA_FISICA_idPessoaFisica (oriunda da entidade PESSOA_FISICA) recebe também a chave estrangeira da entidade PESSOA: fk_PESSOA_FISICA_fk_PESSOA_idPessoa

Não entendi o motivo de haver essa segunda FK (fk_PESSOA_FISICA_fk_PESSOA_idPessoa) na entidade APELIDO.

Usei o brModelo para fazer o modelo conceitual e o próprio sistema quem criou as relações no modelo lógico.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Oi, Gilbert! Tudo bem?

Peço desculpas pela demora em te responder.

Durante a modelagem de banco de dados, nem sempre o sistema utilizado irá criar as relações corretamente; é necessário que nós, enquanto administradores do banco de dados, tenhamos a expertise para corrigir e não confiar por completo na relação que o sistema cria. A criação automática pode nos ajudar tornando o processo mais ágil, contudo, é importante termos um cuidado a mais e sempre analisar o que foi construído (e corrigir, se necessário).

Com relação às chaves estrangeiras de APELIDO, apenas fk_PESSOA_FISICA_idPessoaFisica já é válida para o APELIDO, o que significa dizer que fk_PESSOA_FISICA_fk_PESSOA_idPessoa pode ser apagada! O brModelo adicionou as duas chaves estrangeiras (FK) em APELIDO como forma de "herança" dos valores principais que temos em PESSOA_FISICA.

Todavia, a entidade APELIDO não precisa necessariamente existir. Uma outra maneira de adicionar o apelido de uma pessoa no diagrama é criando um novo atributo na entidade PESSOA_FISICA, desta maneira:

Início da transcrição. Recorte de captura de tela de um modelo lógico do programa brModelo. Imagem de fundo branco e quadriculado composta por um retângulo de coloração cinza. Na parte superior do retângulo, há um título em negrito com o texto “PESSOA_FISICA”. Abaixo deste título, há uma sequência de seis campos, que são: “id_PessoaFisica: INTEGER”, “NumCpf: CHAR”, “DataNascimento: CHAR”, “Apelido: CHAR” e “fk_PESSOA_idPessoa: INTEGER”. Na parte inferior do retângulo, há um quadrado com o desenho de duas chaves, uma preta e uma verde e outro quadrado com o desenho de uma chave preta. O quinto campo do retângulo, referente à “Apelido”, está destacado por uma borda e uma seta vermelhas. Fim da transcrição.

Com esta alteração, diminuímos a complexidade do nosso sistema.

Gilbert, espero ter ajudado! Caso surja alguma dúvida após minha explicação ou durante os seus estudos, fico à disposição!

Abraços e até mais.

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

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software