ATENÇÃO!Na próxima questão, considere as tabelas de banco de...

Próximas questões
Com base no mesmo assunto
Q1902419 Banco de Dados


- T1, com uma única coluna A1, onde A1 é a chave primária;

- T2, com uma única coluna A2, onde A2 é a chave primária, e A2 é também uma chave estrangeira que referencia T1.

As instâncias de T1 e T2 contêm, respectivamente, 12 e 10 linhas. 

ATENÇÃO!

Na próxima questão, considere as tabelas de banco de dados:


Com referência às tabelas T1 e T2, o comando SQL

select t1.A1, t2.A2

from T1,T2

    where t1.A1 <> t2.A2

order by 1


produzirá um resultado com



Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Resposta Correta: B - 110 linhas.

Para resolver essa questão, é necessário compreender a natureza das operações com jointuras (joins) em SQL e o impacto das restrições de chave primária (PRIMARY KEY) e chave estrangeira (FOREIGN KEY). Além disso, é essencial entender o operador de desigualdade (<>) usado na cláusula WHERE e o que ele implica em termos dos resultados retornados.

A consulta SQL apresentada realiza uma jointura cartesiana (também conhecida como produto cartesiano) entre as tabelas T1 e T2. Dado que T1 tem 12 linhas e T2 tem 10 linhas, a jointura cartesiana resulta inicialmente em 12 * 10 = 120 combinações possíveis de linhas.

Contudo, a consulta especifica um filtro com a cláusula WHERE que exclui as linhas onde os valores de A1 e A2 são iguais (t1.A1 <> t2.A2). Uma vez que A2 é uma chave estrangeira que referencia a chave primária A1 de T1, sabemos que existem 10 valores em T2 que correspondem exatamente a 10 valores em T1.

Essas 10 combinações de linhas onde A1 é igual a A2 serão excluídas do resultado final. Portanto, das 120 combinações iniciais, subtraímos essas 10 combinações diretas, resultando em:

120 - 10 = 110 linhas no resultado final.

Entender que uma chave estrangeira estabelece uma relação de correspondência direta a linhas específicas em outra tabela é fundamental para determinar o número exato de linhas em conjuntos de resultados envolvendo estas chaves.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

GAB B

O produto cartesiano vai gerar 120 linhas (12x10)

Desses, 10 serão iguais já que os 10 registros T2 apontam para T1

120 - 10 = 110

2 chaves de T1 serão diferentes das 10 de T2

10 chaves de T1 serão diferentes das 9 de T2

20 + 90 = 110

b-

essa query faz um cross join de todos os valores de T1 e T2 usando como criterio T1.a1 <> T2.a2, q significa not equal to. como os valores A2 de T2 sao Fks de T1.A1 e nao ha valores repetidos por A1 ser PK, a query ira prosuzir 110 linhas usando a combinacao de T1 com 12 tuplas e T2 com 10

http://sqlfiddle.com/#!9/0a2131/1

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo