Engenharia Múltipla Escolha

Uma empresa de tecnologia está desenvolvendo um sistema de gestão de clientes usando Python e SQLite. Eles precisam inserir informações de novos clientes no banco de dados. Para isso, criaram uma classe Cliente com atributos como nome, idade e email. Qual é a maneira mais eficiente de inserir dados de um objeto da classe Cliente no banco de dados, considerando a estrutura apresentada?

Uma empresa de tecnologia está desenvolvendo um sistema de gestão de clientes usando Python e SQLite. Eles precisam inserir informações de novos clientes no banco de dados. Para isso, criaram uma classe Cliente com atributos como nome, idade e email.

Qual é a maneira mais eficiente de inserir dados de um objeto da classe Cliente no banco de dados, considerando a estrutura apresentada?

  1. Usar um loop para inserir atributo individualmente.
  2. Converter o objeto Cliente em um dicionário e inserir usando INSERT INTO.
  3. Inserir os dados individualmente no banco de dados sem usar o Python.
  4. Utilizar um comando UPDATE para adicionar novos clientes.
  5. Criar uma função separada para cada atributo do cliente.

Resolução completa

Explicação passo a passo

B
Alternativa B

Alternativa B - Converter o objeto Cliente em um dicionário e inserir usando INSERT INTO.

Introdução à Solução

Para resolver este problema, precisamos entender como interagir com bancos de dados relacionais (como SQLite) através de uma linguagem orientada a objetos (Python). O objetivo principal é transferir dados de um objeto da memória para o armazenamento persistente de forma segura e performática.

Desenvolvimento da Resposta

A alternativa B é a correta porque alinha a estrutura de dados do Python com a sintaxe padrão do SQL. Veja os motivos principais:

  • Mapeamento Objeto-Relacional Simplificado: Converter o objeto em um dicionário permite acessar facilmente os atributos (nome, idade, email) e passá-los como parâmetros para a consulta SQL.
  • Segurança contra Injeção de SQL: Ao usar comandos parametrizados (comuns quando se passa um dicionário ou tupla), evita-se vulnerabilidades de segurança.
  • Eficiência: Uma única chamada INSERT INTO insere todos os campos do registro de uma vez, minimizando a comunicação com o banco de dados.

Por que as outras alternativas estão incorretas?

AlternativaMotivo da Incorretude
AUsar loops para inserir atributos individuais tornaria o processo lento e exigiria múltiplas queries ou lógica complexa.
CInserir manualmente ignora a automação criada em Python, tornando o sistema inviável para produção.
DO comando UPDATE serve para modificar dados existentes, não para criar novos registros (que exige INSERT).
ECriar funções separadas viola o princípio DRY (Don't Repeat Yourself), gerando código desnecessariamente extenso.

Conclusão

A prática recomendada em desenvolvimento Python-SQLite envolve encapsular a lógica de inserção dentro de um método ou função que receba o objeto Cliente, extraia seus dados (via vars() ou dict) e execute uma instrução INSERT parametrizada. Isso garante integridade dos dados e eficiência.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Engenharia

Ver mais Engenharia resolvidas

Tem outra questão de Engenharia?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.