Foco HL suportado. Primeiro avaliação 2027 meta; PDF oficial retorna 403; breve antigo adquirido é avaliação final 2026. Guia restante, avaliação e requisitos práticos mantêm seus retenções registradas.
Pré-requisitos: leia as quantidades e unidades declaradas, use aritmética e as condições do modelo abaixo. Cada lição desenvolve seu próprio método antes da transferência independente.
Estes são exemplos didáticos originais ou explicitamente fictícios, não medições reais ou investigações avaliadas concluídas por aprendizes.
3.2
Bases de dados relacionais: uma chave e um relacionamento
O que explicaria esta observação?
Duplicationar o endereço de um usuário em cada pedido pode gerar registros conflitantes quando o endereço muda.
Comece com uma previsão. Especifique as quantidades ou características que você compararia, depois decida quais evidências poderiam distinguir duas explicações.
Construa o modelo
Uma tabela relacional contém linhas e atributos. Uma chave primária identifica uma linha; uma chave estrangeira se liga a uma chave referenciada em outra tabela. A normalização pode reduzir duplicações evitáveis e anomalias de atualização, preservando relações significativas.
chave primária: Conjunto de atributos que identifica unicamente uma linha de tabela; chave estrangeira: Conjunto de atributos que referencia uma chave em outra tabela.
Escolha evidências que possam testá-lo
Um join combina linhas conforme uma condição especificada. A contagem de resultados depende da cardinalidade do relacionamento e dos filtros. Uma restrição de chave estrangeira impõe uma regra de relacionamento; ela não criptografa automaticamente dados pessoais.
Projetar um pequeno conjunto de dados sintético de usuário-pedido sem informações pessoais reais. Declarar chaves, testar inserções duplicadas e de referência ausente, depois verificar o resultado de uma consulta contra uma tabela esperada trabalhada manualmente.
Trabalhe a partir de quantidades conhecidas
Indique os valores conhecidos e suas unidades. Escolha a relação porque suas premissas se adequam a este caso, então reorganize antes de substituir.
Conhecido: quatro clientes têm respectivamente 2, 0, 3 e 1 pedidos. Um inner join de cliente para pedido retorna 2+0+3+1 = 6 linhas. Um left join também retém o cliente sem pedido como uma linha combinada nula, resultando em 7 aqui.
Exemplo:
Três clientes têm 1, 3 e 2 pedidos. Quantas linhas a junção interna de cliente-pedido retorna? Use a mesma sequência: quantidades conhecidas → modelo → relação → substituição → unidade e interpretação.
Verifique a conclusão e seus limites
Uma chave primária não precisa ser um nome de pessoa. Uma junção não é uma simples concatenação de tabelas. Use consultas parametrizadas para dados não confiáveis em vez de construir SQL a partir de strings brutas.
Retorne à observação original. Explique o que o resultado apoia, quais condições ele assume e uma maneira de testar uma explicação concorrente.
Atenção:
Uma chave estrangeira criptografa automaticamente cada linha. Esta afirmação é falsa: Uma chave primária não precisa ser um nome de pessoa. Uma junção não é uma simples concatenação de tabelas. Use consultas parametrizadas para dados não confiáveis em vez de construir SQL a partir de strings brutas.
Chave:
Bancos de dados relacionais: uma chave e um relacionamento: Uma junção combina linhas conforme uma condição especificada. A contagem do resultado depende da cardinalidade do relacionamento e dos filtros. Uma restrição de chave estrangeira aplica uma regra de relacionamento; ela não criptografa automaticamente dados pessoais.
Rastreio executável e limite
import sqlite3
db = sqlite3.connect(":memory:")
db.executescript("""CREATE TABLE c(id INTEGER PRIMARY KEY);
CREATE TABLE o(id INTEGER PRIMARY KEY, cid INTEGER);
INSERT INTO c VALUES(1),(2),(3);
INSERT INTO o VALUES(10,1),(11,1),(12,3);""")
for kind in ["INNER", "LEFT"]:
sql = f"SELECT COUNT(*),COUNT(o.id) FROM c {kind} JOIN o ON c.id=o.cid"
print(kind, db.execute(sql).fetchone())
db.close()
Saída esperada:
INNER (3, 3)
LEFT (4, 3)
O left join retém cliente 2 com campos de pedido nulos. COUNT(*) inclui essa linha, enquanto COUNT(o.id) exclui nulo. Chaves primárias distinguem registros; contagem de clientes não é contagem de pedidos. A palavra-chave de junção interpolada vem de uma lista interna fixa, não de entrada do usuário.