Baixe o app para aproveitar ainda mais
Prévia do material em texto
Curso GRA0813 JAVA WEB E FRAMEWORKS GR1771202 - 202020.ead-11354.01 Teste ATIVIDADE 4 (A4) Iniciado 26/08/20 01:29 Enviado 04/10/20 12:24 Status Completada Resultado da tentativa 6 em 10 pontos Tempo decorrido 946 horas, 54 minutos Resultados exibidos Respostas enviadas, Respostas corretas, Comentários Pergunta 1 Resposta Selecionada: Resposta Correta: Feedback da resposta: Apesar de as ferramentas de ORM facilitarem o processo de conversão de dados do paradigma de orientação de objetos para o relacional, as diferenças entre os dois paradigmas não permitem uma conversão total. Isso é o que se denomina impedância objeto-relacional (mais popular pelo termo em inglês object-relational impedance mismatch ), que trata, principalmente, de cinco problemas na conversão entre as maneiras de representar os dados. Um desses problemas é a granularidade. Nesse sentido, assinale a alternativa que apresenta corretamente a definição desse problema. É comum que uma aplicação orientada a objetos possua muitas classes, sendo que não é ideal, do ponto de vista do paradigma relacional, que todas essas classes se tornem tabelas no banco de dados. É comum que uma aplicação orientada a objetos possua muitas classes, sendo que não é ideal, do ponto de vista do paradigma relacional, que todas essas classes se tornem tabelas no banco de dados. Resposta correta. A alternativa está correta, pois o paradigma orientado a objeto possui maior granularidade do que o paradigma relacional. Assim, nem todas as classes de uma aplicação Java, idealmente, devem se tornar entidades (tabelas) de um banco de dados relacional. Pergunta 2 Resposta Selecionada: Resposta Correta: Feedback da resposta: O mapeamento objeto-relacional é uma técnica que converte os dados do paradigma orientado a objetos para o paradigma relacional. O paradigma relacional possui, de fato, relacionamentos entre entidades que podemos adicionar às classes Java utilizando anotações do Hibernate. Sobre o relacionamento um para um, analise as afirmativas a seguir: I. É uma relação de unicidade, na qual cada registro somente pode se relacionar com um outro registro da outra tabela. II. Para representar um relacionamento um para um no banco de dados, a chave primária de uma tabela se torna a chave estrangeira da outra tabela. III. Para definir o relacionamento entre duas classes Java como um para um, é necessário adicionar o objeto como atributo de outra classe e marcá-lo com a anotação @OneToOne. IV. O Hibernate não consegue mapear o relacionamento um para um, sendo que esses relacionamentos fazem parte das incompatibilidades entre os dois paradigmas. Está correto o que se afirma em: I, II e III, apenas. I, II e III, apenas. Resposta correta. A alternativa está correta. O relacionamento um para um é um relacionamento de unicidade, sendo que cada registro pode se relacionar com apenas um registro da outra tabela. Desse modo, sua representação é feita adicionando a chave primária de uma tabela como chave estrangeira da outra tabela. No Java, esse relacionamento precisa ser definido utilizando a anotação @OneToOne. Pergunta 3 O Hibernate é um framework Java que facilita o mapeamento de objetos para o paradigma relacional. Ele é responsável por mapear classes java para tabelas no banco de dados e de converter tipos de dados Java para tipos de dados do SQL. Além disso, ele diminui significativamente o tempo de programação que seria dedicado ao gerenciamento manual dos dados utilizando apenas SQL e JDBC. 1 em 1 pontos 1 em 1 pontos 0 em 1 pontos Resposta Selecionada: Resposta Correta: Feedback da resposta: Considerando as principais características do Hibernate, analise as afirmativas a seguir: I. O Hibernate implementa diversas características, funcionalidades e otimizações que o torna uma ferramenta de alta performance, como inicialização preguiçosa. II. O Hibernate é conhecido por sua estabilidade e qualidade, tanto que possui muitos adeptos, dentre eles, destacam-se os programadores Java. III. O Hibernate é conhecido por possuir uma ótima equipe de suporte e manutenção 24h, oferecendo apoio ao desenvolvimento de aplicações. IV. O Hibernate permite que o usuário o configure e customize para que se atente às suas necessidades específicas. Está correto o que se afirma em: I, II e III, apenas. I, II e IV, apenas. Sua resposta está incorreta. A alternativa está incorreta. O Hibernate é um software gratuito e open source, portanto, não possui uma equipe dedicada (gratuita) para realizar o suporte e a manutenção de aplicações que utilizam o Hibernate. Essas operações possuem diversos custos e o Hibernate é um software gratuito. Pergunta 4 Resposta Selecionada: Resposta Correta: Feedback da resposta: O mapeamento objeto-relacional é uma técnica que converte os dados do paradigma orientado a objetos para o paradigma relacional. Ainda há, no entanto, certas incompatibilidades entre os dois paradigmas. Esse conceito é denominado impedância objeto-relacional (mais popular pelo termo em inglês object-relational impedance mismatch ), que trata, principalmente, de cinco problemas na conversão entre as maneiras de representar os dados. Considerando o exposto, assinale a alternativa que apresenta corretamente os cinco problemas na conversão entre os paradigmas. Granularidade, subtipos, identidade, associação e navegação de dados. Granularidade, subtipos, identidade, associação e navegação de dados. Resposta correta. A alternativa está correta. O problema subtipos é que alguns dos principais conceitos intrínsecos à orientação a objetos (OO) não possuem um equivalente no paradigma relacional, como herança, polimorfismo e interfaces. A granularidade significa que, muitas vezes, uma aplicação OO irá possuir muitas classes, sendo que não é ideal que todas essas classes se tornem tabelas. A noção da identidade é que o modelo relacional implementa apenas a igualdade, enquanto o OO possui igualdade e identidade. A associação consiste no fato de que ambos os paradigmas possuem maneiras diferentes de associar os dados. Por fim, o modo de acesso a dados (navegação dos dados), nos dois paradigmas, é conflitante. Pergunta 5 Resposta Selecionada: Resposta Correta: Feedback da resposta: O Hibernate é um framework ORM que facilita o mapeamento de dados representados na forma de objetos em aplicações Java para dados representados na forma tabular, no paradigma relacional, tendo funcionalidades para definir relacionamentos SQL em aplicações Java. No que tange ao relacionamento muitos para muitos, analise as afirmativas a seguir: I. Cada um dos registros de cada uma das tabelas pode se relacionar com muitos outros registros da outra tabela. II. No relacionamento muitos para muitos, cria-se uma nova tabela para representar o relacionamento. III. Para definir o relacionamento entre duas classes como muitos para muitos, é preciso somente adicionar o objeto como atributo da outra classe e com a anotação @OneToMany. IV. No relacionamento muitos para muitos, somente uma das classes do relacionamento precisa possuir, como atributo, uma lista de objetos da classe que está se relacionando. Está correto o que se afirma em: I, II e IV, apenas. I e II, apenas. Sua resposta está incorreta. A alternativa está incorreta. Para definir o relacionamento entre duas classes como muitos para muitos, é preciso adicionar em cada uma das classes, como atributo, uma lista de objetos da outra classe e marcar essa lista com a anotação @ManyToMany. 1 em 1 pontos 0 em 1 pontos Pergunta 6 Resposta Selecionada: Resposta Correta: Feedback da resposta: A programação em Java, para aplicações web ou não, envolve manipular dados encapsulados como objetos e construir relações entre eles, seja por herança, interface, seja adicionando um objeto como atributo de uma classe. No entanto, para fazer a persistência dos dados, é possível armazená-los em um banco que se utiliza de outro modelo de representação de dados. A respeitoda conversão de um paradigma para o outro, analise as afirmativas a seguir: I. Devido a incompatibilidades entre os dois paradigmas, não é possível fazer a conversão do paradigma relacional para o orientado a objetos e vice-versa. II. Existem frameworks ORM ( object-relational mapping ) que convertem os dados do paradigma orientado a objetos para o paradigma relacional. III. De modo superficial, ao se converter dados do paradigma orientado a objetos para o relacional, as classes se tornam tabelas e os objetos se tornam registros dessas tabelas. IV. Uma alternativa para evitar a incompatibilidade de representação dos dois paradigmas é utilizar diretamente a API do JDBC do Java ao invés de utilizar um framework ORM. Está correto o que se afirma em: II, III e IV, apenas. II e III, apenas. Sua resposta está incorreta. A alternativa está incorreta, pois, apesar de existirem certas incompatibilidades entre ambos os modelos de representação de dados, ainda é possível fazer a conversão de um modelo para o outro. Essa é justamente a função de certos frameworks, como o Hibernate. Além disso, caso se opte por não utilizar algum framework ORM ( object-relational mapping) e utilizar apenas a API do JDBC, o trabalho de conversão existirá e será muito maior, uma vez que não existirão as facilidades já implementadas pelos frameworks ORM. Pergunta 7 Resposta Selecionada: Resposta Correta: Feedback da resposta: O mapeamento objeto-relacional é normalmente implementado pelo framework Hibernate em aplicações Java, sendo ele o responsável por converter dados representados no paradigma orientado a objetos para o paradigma relacional. Para que uma classe seja mapeada pelo Hibernate, é necessário utilizar anotações Java. Considerando o exposto, analise o código a seguir e assinale a alternativa que apresenta, respectivamente, as anotações 1 e 2. @anotação_1 public class Professor { @anotação_2 private int id; private String cpf; private String nome; private String telefone; [métodos getters e setters] } @Entity e @Id. @Entity e @Id. Resposta correta. A alternativa está correta. O Hibernate utiliza anotações Java para que o framework saiba qual classe ele deve fazer a persistência e qual é a chave primária da classe que será convertida em tabela. Para isso, são utilizadas, respectivamente, as anotações @Entity e @Id. Pergunta 8 O Hibernate é um framework Java que faz o mapeamento objeto-relacional. Ele permite mapear relações entre tabelas SQL do banco de dados em aplicações Java, por meio de anotações feitas na classe, definindo se o relacionamento é um para um, um para muitos ou muitos para muitos. A seguir, tem-se o código da classe Empresa que possui como atributo o objeto da classe Endereco: @Entity public class Empresa { 0 em 1 pontos 1 em 1 pontos 1 em 1 pontos Resposta Selecionada: Resposta Correta: Feedback da resposta: @Id private int id; private String nome; private String telefone; private int numero_de_funcionarios; < anotação > private Endereco endereco; [métodos getters e setters ] } A respeito do exposto, assinale a alternativa que apresenta a anotação que determina o relacionamento entre as duas classes. @OneToOne. @OneToOne. Resposta correta. A alternativa está correta. No caso apresentado, cada empresa somente possui um endereço e, por definição, o endereço deve servir para identificar um lugar unicamente. Assim, a relação entre as duas classes é @OneToOne. Nesse caso, a tabela Empresa possuirá como chave estrangeira a chave primária da tabela Endereco. Pergunta 9 Resposta Selecionada: Resposta Correta: Feedback da resposta: O Hibernate é um framework ORM que faz o mapeamento objeto-relacional entre aplicações Java para banco de dados relacional. O paradigma relacional possui, de fato, relacionamentos entre entidades que podemos adicionar às classes Java utilizando anotações do Hibernate. Quanto ao relacionamento um para muitos, analise as afirmativas a seguir: I. Cada um dos registros de cada uma das tabelas pode se relacionar com muitos outros registros da outra tabela. II. No relacionamento um para muitos, a chave primária da tabela que possui seus recursos compartilhados se torna a chave estrangeira da outra tabela. III. Para definir o relacionamento entre duas classes como um para muitos, é preciso somente adicionar o objeto como atributo da outra classe e com a anotação @OneToMany. IV. No mapeamento um para muitos, a entidade “muitos” é representada como uma Lista Java. Está correto o que se afirma em: I, II e III, apenas. II e IV, apenas. Sua resposta está incorreta. A alternativa está incorreta. Para definir o relacionamento entre duas classes como um para muitos, é preciso adicionar o objeto como atributo da outra classe e com a anotação @OneToMany(mappedBy=”Nome do atributo na outra classe”). Além disso, é preciso adicionar na outra classe o atributo e marcá-lo como @ManyToOne. Destaca-se, também, que um registro pode ser compartilhado por muitos outros registros da outra tabela que há a associação, mas não vice-versa. Pergunta 10 Resposta Selecionada: O Hibernate é um framework ORM que faz o mapeamento objeto-relacional entre aplicações desenvolvidas na linguagem Java para banco de dados relacional. Depois de instalar o framework, precisamos configurar o funcionamento do Hibernate. Para isso, utilizamos o hibernate.cfg.xml. A respeito desse arquivo de configuração, analise as afirmativas a seguir: I. No arquivo de configuração do Hibernate, é necessário configurar o SGBD utilizado, além do banco de dados, do usuário e da senha de acesso desse banco de dados. II. É necessário mapear as classes que se tornaram entidades (tabelas) no paradigma relacional no banco de dados nesse arquivo. III. Na tag hbm2ddl.auto, define-se que, toda vez que a aplicação for salvar um dado, a tabela deverá ser criada automaticamente ou não. IV. É necessário definir qual é o dialeto SQL utilizado com o banco de dados, já que há ligeiras mudanças na linguagem SQL de cada SGBD. Está correto o que se afirma em: I, III e IV, apenas. 0 em 1 pontos 1 em 1 pontos Resposta Correta: Feedback da resposta: I, III e IV, apenas. Resposta correta. A alternativa está correta, pois, no arquivo de configuração do HIbernate, é necessário definir: o SGDB utilizado, o banco de dados utilizado, o usuário, a senha de acesso e o dialeto SQL do banco de dados. Além disso, a tag hbm2ddl.auto define se a tabelas devem ser sempre criadas ao rodar a aplicação ou somente atualizadas por meio do uso de create ou update.
Compartilhar