6
respostas

[Dúvida] JUNÇÃO

"Preenche as tuplas da entidade da esquerda que não encontram par na entidade da direita, assim como também preenche as tuplas da entidade da direita que não encontraram par na entidade da esquerda" Como assim?

6 respostas

Olá Bruno, tudo bem?

A junção total consiste em que mesmo que não tenham entidades com todos atributos, todas as entidades aparecem neste resultado, permanecendo com valores nulos onde a entidade não possua valor.

Exemplo: clientes que compram filmes e jogos


Tabela de filmes, com clientes e filmes que comprou na plataforma:

ClientIDFilme
1Alura Filme
2Data Science Filme
3Devops Filme
4Front-end Filme

Tabela de jogos:

ClientIDJogo
5Alura Jogo
2Data Science Jogo
6Devops Jogo
7Front-end Jogo

Perceba que o cliente cujo ID é 2 aparece tanto em filmes quanto em jogos.

Junção Total:

Ao realizar a junção total usando o ClientId, as colunas resultantes serão: ClientID, Filme e Jogo, onde os aparecerão todos os clientes que compraram filmes ou jogos, e se ele comprou um filme e não comprou o jogo, o jogo será nulo, porém a entidade irá estar presente.

ClientIDFilmeJogos
1Alura Filme
2Data Science FilmeData Science Jogo
3Devops Filme
4Front-end Filme
5Alura Jogo
6Devops Jogo
7Front-end Jogo

Todos os clientes estão presentes. Se realizássemos um Outer Join, a única entidade presente seria o cliente 2, pois está presente em ambas tabelas.

Espero ter ajudado.

ClientID, Filme e Jogos são entidades? O ID é chave primária e embaixo do Filme e dos Jogos eu tenho os atributos?

Não entendi.

Neste exemplo, a entidade é o cliente em si, possuindo três atributos: ClientID, Jogos e Filmes, onde jogos e filmes são os produtos os quais esse cliente comprou. Entidade e Atributos Exemplo

Todos os clientes possuem o atributo ClientID visto que é uma chave primária como você observou, mas os outros atributos Jogos e Filmes que ele comprou são opcionais, ou seja, o valor deles pode ser nulo. Na tabela de jogos, se encontram os clientes que compraram jogos, o mesmo para a tabela filmes. Quando realizamos o FULL JOIN usando a chave primária ClientID como chave para a conexão, todas as entidades presentes nas tabelas que irão ser agrupadas estarão presentes no output. Os clientes que o atributo Filme é nulo, irá aparecer na tabela com o valor Filme nulo, pois o atributo que ele possui é o Jogos, como na última tabela como exemplo.

Espero ter ajudado com o desenho e com exemplos.

Filmes e jogos não deveriam ser outra entidade? Como assim atributo? Atributo não são características da entidade? Os jogos ou filmes podem ter nome, categoria, sei lá...entre outros. Aqui você está trabalhando com o atributo nome? Continuo sem entender.

Não consigo raciocinar a lógica de certas questões.