SóProvas


ID
2354803
Banca
UFMT
Órgão
UFSBA
Ano
2017
Provas
Disciplina
Engenharia de Software
Assuntos

Sobre mapeamento objeto-relacional do conceito de herança, considere:

I - É possível utilizar uma única tabela para toda a hierarquia.
II - Pode-se utilizar uma tabela para cada classe concreta da hierarquia.
III - O modelo relacional que apresenta maior conformidade com a orientação a objetos é aquele em que se mapeia uma tabela para cada classe (concreta ou abstrata).

Está correto o que se afirma em

Alternativas
Comentários
  • Se uma classe abstrata não pode ser instânciada, por qual razão eu teria uma tabela para ela?

  • Marvin A tabela pode ter atributos específicos dela que não serao utilizados pelas subclasse. Por exemplo atributos privados. Então ter uma tabela própria para ela facilita esse tipo de implementação. Existem tres formas de criacao das tabelas: tabela unica, uma tabela para cada classe e tabelas somente para classes concretas
  • A razão de criar uma tabela para cada Classe ( mesmo sendo abstrata ) pode ser definido como a vontade de separar competências.

    Vamos supor que você tem a classe abstrata Animal, e 3 classes Concretas : Cachorro, Gato, Hamster.

    dentro da tabela Animal, é possível ter apenas dois atributos, um atributo com "nome" e outro "tipoAnimal", que apenas identifica quantas "instâncias" de cada subclasse existem, sem misturar com aquelas classes concretas que serão instanciadas.
    nome: "rex"; tipoAnimal:1

    nome: "felix"; tipoAnimal:2

    nome:"pink"; tipoAnimal:3

    Perceba que a afirmação é "O modelo relacional que apresenta maior conformidade com a orientação a objetos é aquele em que se mapeia uma tabela para cada classe", como a Orientação a Objetos prega também S.O.L.I.D acredito que o Single Responsability Principle pode ser aplicado como justificativa em "separar as tabelas".

  • não faz sentido essa resposta, se criar uma super tabela contendo todas as informações das classes concretas, vai fica muito ruim de fazer a manutenção do Banco.