Prévia do material em texto
Usuário HELDER LIMA DE JESUS
Curso GRA0813 JAVA WEB E FRAMEWORKS GR1771-212-9 - 202120.ead-
17586.01
Teste ATIVIDADE 4 (A4)
Iniciado 29/11/21 19:16
Enviado 29/11/21 19:57
Status Completada
Resultado da
tentativa
8 em 10 pontos
Tempo decorrido 40 minutos
Resultados exibidos Respostas enviadas, Respostas corretas, Comentários
Pergunta 1
Resposta Selecionada:
Resposta Correta:
Comentário
da
resposta:
Quando desenvolvemos aplicações em Java, representamos os dados na forma de
objetos, no entanto, para fazer a persistência desse dados e armazená-los em um
banco de dados, utilizamos o paradigma relacional. Para isso, fazemos o
mapeamento objeto-relacional. Há, todavia, certas incompatibilidades entre a
conversão dos paradigmas. Com base no exposto, assinale a alternativa que
apresenta conceitos do paradigma Orientado a Objetos que não possuem uma
conversão direta para o paradigma relacional.
Herança, polimor�smo e interfaces.
Herança, polimorfismo e interfaces.
Resposta correta. A alternativa está correta, pois conceitos como herança,
polimor�smo e interfaces são intrínsecos do paradigma orientado a objetos e
não possuem uma equivalência no paradigma relacional. Existem algumas
estratégias para representar essas relações no paradigma relacional, como no
caso da herança, isto é, colocar todas as entidades em apenas uma tabela, a
ancestral comum. Essas estratégias, contudo, não são ideias e perdem muito em
relação ao seu uso e a funcionalidades no paradigma orientado a objetos.
Pergunta 2
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
1 em 1 pontos
1 em 1 pontos
Resposta
Selecionada:
Resposta Correta:
Comentário
da
resposta:
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, polimor�smo e
interfaces. A granularidade signi�ca 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 �m, o modo de acesso a dados (navegação dos dados), nos dois
paradigmas, é con�itante.
Pergunta 3
O desenvolvimento de aplicações em Java implica a manipulação dos dados
encapsulados como objetos. Os bancos de dados comumente empregados,
entretanto, utilizam outro modelo de representação dos dados: o modelo relacional.
Dessa forma, é necessário fazer a conversão de um paradigma para o outro. Para
isso, utilizam-se ferramentas que realizam o mapeamento objeto-relacional (ORM).
Sobre ORM, analise as afirmativas a seguir e assinale V para a(s) Verdadeira(s) e
F para a(s) Falsa(s).
I. ( ) Apesar de serem dois paradigmas diferentes de representação dos dados, não
existem incompatibilidades na conversão de um para o outro.
II. ( ) No mapeamento objeto-relacional, as classes são convertidas em entidades
no banco de dados, ou seja, uma tabela.
III. ( ) O Hibernate é uma ferramenta que faz o mapeamento objeto-relacional em
aplicações na linguagem Java.
IV. ( ) O paradigma orientado a objetos representa os dados de maneira tabular,
sendo que cada objeto é uma linha na tabela que é a classe.
Assinale a alternativa que apresenta a sequência correta.
1 em 1 pontos
Resposta Selecionada:
Resposta Correta:
Comentário
da
resposta:
F, V, V, F.
F, V, V, F.
Resposta correta. A alternativa está correta. No mapeamento objeto-relacional,
as classes da aplicação desenvolvida em Java são convertidas para tabelas no
banco de dados, sendo que os objetos se tornarão registros dessas tabelas.
Ademais, o Hibernate é o mais popular no mercado, sendo que é gratuito e open
source.
Pergunta 4
Resposta Selecionada:
Resposta Correta:
Comentário
da
resposta:
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 {
@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 de�nição, o endereço deve servir para
identi�car 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.
1 em 1 pontos
1 em 1 pontos
Pergunta 5
Resposta Selecionada:
Resposta Correta:
Comentário
da
resposta:
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.
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 IV, apenas.
I, II e IV, apenas.
Resposta correta. A alternativa está correta. O Hibernate é conhecido por
possuir alta performance. Ele oferece uma performance superior do que utilizar
diretamente a API JDBC, tanto em termos de desenvolvimentos (é mais rápido e
fácil programar o mapeamento da aplicação para o banco de dados utilizando
Hibernate) quanto de performance de execução. Uma das grandes razões de ser
adotado pelo mercado é sua alta con�abilidade. Além disso, o Hibernate possui
código aberto, portanto, é possível implementar novas funcionalidades
especí�cas dentro do código do framework.
Pergunta 6
O framework Hibernate faz o mapeamento objeto-relacional em aplicações Java,
sendo que uma das suas principais funções é converter classes Java em tabelas do
banco de dados relacional. Para isso, é necessário fazer a conversão dos tipos de
dados Java para os tipos de dados SQL.
Com base no exposto, analise a classe Professor a seguir e assinale a alternativa
que apresenta o código SQL para a criação da tabela equivalente.0 em 1 pontos
Resposta
Selecionada:
Resposta
Correta:
Comentário
da
resposta:
public class Professor {
private int id;
private String cpf;
private String nome;
private String telefone;
[métodos getters e setters]
}
create table Professor (id int not null, cpf varchar(255), nome varchar(255),
telefone varchar(255), primary key (id));
create table Professor (id integer not null, cpf varchar(255), nome
varchar(255), telefone varchar(255), primary key (id));
Sua resposta está incorreta. A alternativa está incorreta, já que o atributo do
tipo texto no SQL é varchar(tamanho) e o atributo SQL para números inteiros é
integer. Além disso, a chave primária da classe Professor deve ser id e não
nome, pois é possível que existam dois professores com o mesmo nome, mas
não com o mesmo id.
Pergunta 7
Resposta
Selecionada:
Resposta
Correta:
Comentário
da
resposta:
Comumente, o mapeamento objeto-relacional é implementado pelo Hibernate em
aplicações Java, sendo ele o responsável por converter dados representados no
paradigma orientado a objetos para o paradigma relacional. É necessário
configurar o framework por meio do arquivo hibernate.cfg.xml. Uma das
configurações necessárias nesse arquivo é definir o hibernate.dialect. Em relação
ao exposto, o hibernate.dialect define:
a con�guração para o dialeto que deve ser utilizado na linguagem SQL, já que
há ligeiras mudanças na linguagem SQL de cada SGBD.
a configuração para o dialeto que deve ser utilizado na linguagem
SQL, já que há ligeiras mudanças na linguagem SQL de cada
SGBD.
Resposta correta. A alternativa está correta, pois a con�guração determinada
pela tag hibernate.dialect é o dialeto que deve ser utilizado na linguagem SQL, já
que há ligeiras mudanças na linguagem SQL de cada sistema de gerenciamento
de banco de dados. Essa con�guração deve ser feita no arquivo
hibernate.cfg.xml.
1 em 1 pontos
Pergunta 8
Resposta Selecionada:
Resposta Correta:
Comentário
da
resposta:
O framework Hibernate faz o mapeamento objeto-relacional na linguagem de
programação Java. Dessa maneira, ele converte dados que estão mapeados no
paradigma orientado a objetos para o paradigma relacional, em que os dados são
representados de forma tabular. Para realizar esse processo, várias etapas são
necessárias, sendo que elas estão ilustradas no seguinte código:
public static void main(String[] args) {
Teste teste = new Teste();
teste.setDado("dado qualquer");
�nal StandardServiceRegistry registry = new
StandardServiceRegistryBuilder().configure().build();
SessionFactory sessionFactory = new MetadataSources( registry ).addAnn
otatedClass(Teste.class).buildMetadata().buildSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();
< linha removida >
session.getTransaction().commit();
session.close();
}
Acerca do exposto, assinale a alternativa que apresenta a instrução que deveria
estar no lugar de < linha removida >.
session.save(teste);
session.save(teste);
Resposta correta. A alternativa está correta. Para armazenar um objeto da
classe Teste, é necessário passá-lo como parâmetro de entrada do método save,
sendo chamado a partir de um objeto Session. Esse objeto é criado sob
demanda utilizando o SessionFactory, ou seja, a ligação entre sua aplicação e o
banco de dados.
Pergunta 9
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.
1 em 1 pontos
1 em 1 pontos
Resposta Selecionada:
Resposta Correta:
Comentário
da
resposta:
A respeito da 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 e III, apenas.
II e III, apenas.
Resposta correta. A alternativa está correta, pois realmente existem frameworks
ORM ( object-relational mapping) que convertem os dados do paradigma
orientado a objetos para o paradigma relacional, sendo que o maior exemplo é
o Hibernate, framework open-source, que faz o mapeamento objeto-relacional
na linguagem Java.
Pergunta 10
Resposta
O desenvolvimento de aplicações web implica manipular dados na forma de
objetos. Assim, como o armazenamento desses dados é feito em banco de dados
relacionais, precisamos fazer a conversão entre os dois paradigmas, sendo que as
classes Java são convertidas em tabelas SQL.
Diante do exposto, analise o código a seguir e assinale a alternativa que apresenta
o comando SQL que cria a tabela smartphone equivalente em um banco de dados.
public class Smartphone {
private int id;
private String marca;
private String modelo;
private int memoria_ram;
[métodos getters e setters]
}
0 em 1 pontos
Segunda-feira, 29 de Novembro de 2021 20h14min16s BRT
Selecionada:
Resposta
Correta:
Comentário
da
resposta:
create table Smartphone (id integer, marca text(255), modelo text(255),
memoria_ram integer);
create table Smartphone (id integer not null, marca varchar(255),
modelo varchar(255), memoria_ram varchar(255), primary key (id));
Sua resposta está incorreta. A alternativa está incorreta. Os bancos de dados
relacionais possuem tipos de dados, portanto, é necessário de�nir qual é o tipo
de dado de cada atributo, sendo que String é transformado em
varchar(tamanho). Além disso, para manter a unicidade dos dados, é necessário
de�nir a chave primária, que deve ser id, já que a marca pode se repetir, mas o
id não.