"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?
"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?
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.
ClientID | Filme |
---|---|
1 | Alura Filme |
2 | Data Science Filme |
3 | Devops Filme |
4 | Front-end Filme |
ClientID | Jogo |
---|---|
5 | Alura Jogo |
2 | Data Science Jogo |
6 | Devops Jogo |
7 | Front-end Jogo |
Perceba que o cliente cujo ID é 2 aparece tanto em filmes quanto em jogos.
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.
ClientID | Filme | Jogos |
---|---|---|
1 | Alura Filme | |
2 | Data Science Filme | Data Science Jogo |
3 | Devops Filme | |
4 | Front-end Filme | |
5 | Alura Jogo | |
6 | Devops Jogo | |
7 | Front-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.
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.