Prévia do material em texto
Pergunta 1
1 em 1 pontos
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.
Resposta
Selecionada:
Granularidade,
subtipos,
identidade,
associação e
navegação de
dados.
Resposta Correta:
Granularidade,
subtipos,
identidade,
associação e
navegação de
dados.
Comentário da
resposta:
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 2
1 em 1 pontos
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.
Resposta
Selecionada:
É 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:
É 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.
Comentário da
resposta:
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 3
1 em 1 pontos
No desenvolvimento de aplicações
Java, é comum a utilização do
framework Hibernate para fazer o
mapeamento objeto-relacional, ou seja,
converter dados representados como
objetos para registros em tabelas.
Depois de instalar o framework,
precisamos configurar o funcionamento
do Hibernate. Para isso, utilizamos o
hibernate.cfg.xml. Uma das
configurações nesse arquivo é o
hbm2ddl.auto. Assim, essa
configuração define:
Resposta
Selecionada:
se toda vez que
a aplicação for
salvar um dado,
a tabela deverá
ser criada
automaticament
e ou não.
Resposta Correta:
se toda vez que a
aplicação for
salvar um dado, a
tabela deverá ser
criada
automaticamente
ou não.
Comentário da
resposta:
Resposta
correta. A
alternativa está
correta. A tag
hbm2ddl.auto
define que, se
toda vez que a
aplicação for
salvar um dado,
a tabela deverá
ser criada
automaticament
e ou não. Há
dois valores:
create (cria as
tabelas toda vez
que a aplicação
roda) ou update
(apenas atualiza
as tabelas, sem
criá-las).
Pergunta 4
1 em 1 pontos
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:
Resposta
Selecionada:
II e IV, apenas.
Resposta Correta:
II e IV, apenas.
Comentário da
resposta:
Resposta
correta. A
alternativa está
correta. No
relacionamento
um para muitos,
um registro
pode ser
compartilhado
por muitos
outros registros
da outra tabela
que há a
associação. Por
sua vez, a chave
primária da
tabela que
possui seus
recursos
compartilhados
se torna a chave
estrangeira da
outra tabela.
Além disso,
como um objeto
pode se
relacionar com
muitos outros
objetos da outra
classe, esse
relacionamento
é feito utilizando
a classe List do
Java.
Pergunta 5
1 em 1 pontos
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");
final StandardServiceRegistry registry = new
StandardServiceRegistryBuilder().configure().
build();
SessionFactory sessionFactory = new
MetadataSources( registry
).addAnnotatedClass(Teste.class).buil
dMetadata().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 >.
Resposta
Selecionada:
session.save(test
e);
Resposta Correta:
session.save(test
e);
Comentário da
resposta:
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 6
1 em 1 pontos
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:
Resposta
Selecionada:
a configuração
para o dialeto
que deve ser
utilizado na
linguagem SQL,
já que há ligeiras
mudanças na
linguagemSQL
de cada SGBD.
Resposta Correta:
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.
Comentário da
resposta:
Resposta
correta. A
alternativa está
correta, pois a
configuraçã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
configuração
deve ser feita no
arquivo
hibernate.cfg.xm
l.
Pergunta 7
1 em 1 pontos
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:
Resposta
Selecionada:
I, II e III, apenas.
Resposta Correta:
I, II e III, apenas.
Comentário da
resposta:
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 8
1 em 1 pontos
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.
public class Professor {
private int id;
private String cpf;
private String nome;
private String telefone;
[métodos getters e setters]
}
Resposta
Selecionada:
create table
Professor (id
integer not null,
cpf varchar(255),
nome
varchar(255),
telefone
varchar(255),
primary key (id));
Resposta Correta:
create table
Professor (id
integer not null,
cpf varchar(255),
nome
varchar(255),
telefone
varchar(255),
primary key (id));
Comentário da
resposta:
Resposta
correta. A
alternativa está
correta, sendo
que todos os
atributos da
classe foram
corretamente
transformados
em tabelas no
banco de dados,
visto que os
atributos de tipo
String foram
transformados
em
varchar(tamanh
o) e o atributo
int foi
transformado
em integer.
Pergunta 9
1 em 1 pontos
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.
Resposta
Selecionada:
@OneToOne.
Resposta Correta:
@OneToOne.
Comentário da
resposta:
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 10
1 em 1 pontos
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 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:
Resposta
Selecionada:
II e III, apenas.
Resposta Correta:
II e III, apenas.
Comentário da
resposta:
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.
Sábado, 4 de Dezembro de 2021 17h38min47s BRT
Pergunta 1
Pergunta 2
Pergunta 3
Pergunta 4
Pergunta 5
Pergunta 6
Pergunta 7
Pergunta 8
Pergunta 9
Pergunta 10