Prévia do material em texto
ORM (Object-Relational Mapping) 1. O que e ORM (Object-Relational Mapping)? A) Uma tecnica usada para transformar dados relacionais em objetos no codigo B) Uma tecnologia de banco de dados NoSQL C) Uma ferramenta para gerar consultas SQL automaticamente D) Um tipo de banco de dados que utiliza objetos como unidades de armazenamento Resposta correta: A) Uma tecnica usada para transformar dados relacionais em objetos no codigo Explicacao: ORM e uma tecnica de mapeamento que permite que dados armazenados em bancos de dados relacionais sejam representados como objetos em linguagens de programacao orientadas a objetos, facilitando a manipulacao de dados sem a necessidade de escrever SQL manualmente. 2. Qual e o principal beneficio do uso de ORM? A) Eliminar completamente a necessidade de bancos de dados relacionais B) Facilitar a manipulacao de dados e aumentar a produtividade, sem a necessidade de escrever SQL manualmente C) Aumentar a performance de consultas SQL D) Eliminar a necessidade de uso de qualquer linguagem de programacao Resposta correta: B) Facilitar a manipulacao de dados e aumentar a produtividade, sem a necessidade de escrever SQL manualmente Explicacao: O ORM facilita a interacao com o banco de dados ao mapear automaticamente as tabelas e registros para objetos, permitindo que o desenvolvedor trabalhe com a logica de negocios sem precisar escrever SQL repetidamente, melhorando a produtividade. 3. Qual e um exemplo de framework ORM amplamente utilizado em Python? A) Hibernate B) Entity Framework C) SQLAlchemy D) Dapper Resposta correta: C) SQLAlchemy Explicacao: SQLAlchemy e uma biblioteca ORM popular em Python. Ele fornece uma interface robusta e flexivel para trabalhar com bancos de dados relacionais, permitindo que voce manipule dados como objetos Python. 4. O que e um "Model" em um sistema ORM? A) Uma tabela no banco de dados B) Uma classe no codigo que representa uma tabela do banco de dados C) Um tipo de consulta SQL D) Um comando para salvar dados no banco de dados Resposta correta: B) Uma classe no codigo que representa uma tabela do banco de dados Explicacao: No contexto de ORM, um "Model" e uma classe de codigo que corresponde a uma tabela no banco de dados. Cada instancia da classe Model representa uma linha dessa tabela, e os atributos da classe representam as colunas da tabela. 5. Como o ORM mapeia um objeto para o banco de dados? A) Usando uma estrutura de dados como uma lista de objetos B) Convertendo o objeto diretamente em SQL C) Atraves de um mapeamento entre os atributos do objeto e as colunas da tabela D) Criando uma tabela temporaria para cada objeto Resposta correta: C) Atraves de um mapeamento entre os atributos do objeto e as colunas da tabela Explicacao: O ORM realiza o mapeamento entre as propriedades dos objetos e as colunas das tabelas do banco de dados, facilitando o armazenamento e recuperacao de dados sem a necessidade de escrever consultas SQL diretamente. 6. O que e o conceito de "Lazy Loading" no contexto de ORM? A) A carga completa de todos os dados relacionados de uma vez B) A estrategia de carregar dados relacionados somente quando necessario C) A tecnica de carregar dados de todas as tabelas em paralelo D) A execucao automatica de consultas SQL ao inicializar o aplicativo Resposta correta: B) A estrategia de carregar dados relacionados somente quando necessario Explicacao: "Lazy Loading" e uma tecnica onde dados relacionados sao carregados sob demanda, ou seja, somente quando sao acessados pela aplicacao, evitando o carregamento desnecessario de grandes volumes de dados. 7. Qual a principal desvantagem do uso de ORM? A) A complexidade no gerenciamento de dados B) A alta sobrecarga de performance em operacoes de leitura e escrita simples C) A impossibilidade de realizar consultas complexas D) A reducao da produtividade do desenvolvedor Resposta correta: B) A alta sobrecarga de performance em operacoes de leitura e escrita simples Explicacao: Uma das principais desvantagens do uso de ORM e a sobrecarga de performance que pode ocorrer em operacoes simples, pois o ORM precisa realizar transformacoes entre objetos e dados relacionais. Em sistemas com grandes volumes de dados ou consultas complexas, isso pode ser um problema. 8. Em qual situacao o uso de ORM pode ser ineficiente? A) Quando ha poucos dados para serem manipulados B) Quando a aplicacao exige consultas SQL extremamente complexas e otimizadas C) Quando o banco de dados e do tipo NoSQL D) Quando o banco de dados esta armazenando dados pequenos e simples Resposta correta: B) Quando a aplicacao exige consultas SQL extremamente complexas e otimizadas Explicacao: ORM pode ser ineficiente quando a aplicacao exige consultas SQL muito complexas ou altamente otimizadas. O ORM abstrai o SQL e pode gerar consultas menos eficientes, o que pode afetar o desempenho em casos de consultas muito especificas ou complexas. 9. Qual e a principal diferenca entre "Eager Loading" e "Lazy Loading" no contexto de ORM? A) Eager Loading carrega dados sob demanda, enquanto Lazy Loading carrega todos os dados de uma vez B) Eager Loading carrega os dados relacionados imediatamente, enquanto Lazy Loading carrega os dados quando necessario C) Eager Loading e mais eficiente para dados relacionados simples, enquanto Lazy Loading e melhor para dados complexos D) Eager Loading nao carrega nenhum dado, enquanto Lazy Loading carrega todos os dados Resposta correta: B) Eager Loading carrega os dados relacionados imediatamente, enquanto Lazy Loading carrega os dados quando necessario Explicacao: "Eager Loading" e uma tecnica onde os dados relacionados sao carregados de uma vez, juntamente com os dados principais, enquanto "Lazy Loading" carrega os dados relacionados somente quando realmente necessario, ao acessar as propriedades desses dados. 10. O que e "Mapping" em ORM? A) O processo de mapeamento de dados entre diferentes bancos de dados B) A transformacao dos dados de um banco de dados relacional para um banco de dados NoSQL C) O processo de associar objetos em codigo com tabelas no banco de dados D) A criacao de novos objetos a partir de consultas SQL Resposta correta: C) O processo de associar objetos em codigo com tabelas no banco de dados Explicacao: O "Mapping" em ORM e o processo de associar os objetos que representam as entidades do codigo as tabelas do banco de dados. Esse mapeamento permite que o ORM transforme dados entre o formato relacional e o formato orientado a objetos. 11. O que o "Session" faz em um framework ORM? A) Armazena todas as consultas SQL executadas B) Gerencia a comunicacao entre o codigo da aplicacao e o banco de dados, armazenando objetos temporarios C) Armazena o historico de transacoes feitas no banco de dados D) Executa as consultas SQL no banco de dados Resposta correta: B) Gerencia a comunicacao entre o codigo da aplicacao e o banco de dados, armazenando objetos temporarios Explicacao: No contexto do ORM, a "Session" e uma interface que gerencia a comunicacao entre o codigo da aplicacao e o banco de dados. Ela armazena temporariamente objetos que representam registros de banco de dados e permite realizar operacoes como insercoes, atualizacoes e exclusoes de forma eficiente. 12. O que significa o termo "transacao" em ORM? A) O processo de realizar multiplas consultas ao banco de dados B) A realizacao de uma sequencia de operacoes de leitura e escrita de forma atomica e consistente C) O envio de uma consulta SQL ao banco de dados D) A conversao de um modelo de dados em codigo Resposta correta: B) A realizacao de uma sequencia de operacoes de leitura e escrita de forma atomica e consistente Explicacao: Em ORM, uma "transacao" refere-se a um conjunto de operacoes de leitura ou escrita que sao realizadas de forma atomica, ou seja, todas as operacoes sao completadas com sucesso ou, caso contrario, nenhuma alteracao e aplicada, garantindo consistencia no banco de dados. 13.Quais sao os problemas que podem surgir ao usar ORM com bancos de dados muito grandes? A) O ORM nao consegue mapear objetos B) O desempenho pode ser comprometido devido ao overhead causado pela abstracao de dados C) Nao ha problema algum ao usar ORM com grandes bancos de dados D) O ORM pode impedir a execucao de transacoes de larga escala Resposta correta: B) O desempenho pode ser comprometido devido ao overhead causado pela abstracao de dados Explicacao: Quando se trabalha com bancos de dados muito grandes, o uso de ORM pode causar um overhead devido a abstracao de dados. Isso pode resultar em um desempenho inferior em comparacao com consultas SQL diretamente otimizadas, especialmente em operacoes simples e em larga escala. 14. Em um sistema ORM, como voce pode realizar uma consulta a partir de um modelo? A) Usando a funcao de busca diretamente no banco de dados B) Usando metodos do ORM que retornam objetos mapeados C) Executando um script SQL fora da aplicacao D) Somente atraves de SQL puro Resposta correta: B) Usando metodos do ORM que retornam objetos mapeados Explicacao: Em sistemas ORM, consultas sao feitas