Carregando...
Carregando...
Ajude a melhorar a plataforma
Quando se mapeia um objeto em uma tabela relacional, via de regra, os atributos do objeto são representados por intermédio de colunas na tabela. Contudo essa não é uma regra inflexível, porque há mais considerações a serem feitas no que diz respeito a alguns aspectos, como os tipos de dados e o tamanho de campos. Essas considerações podem fazer com que um atributo seja mapeado em várias colunas ou que diversos atributos sejam mapeados em somente uma coluna. No caso das associações do tipo um-para-um, é preciso decidir entre gerar uma única tabela no modelo relacional ou gerar duas tabelas (uma para cada classe envolvida).
Sobre a temática, analise as asserções a seguir e a relação proposta entre elas.
I.A escolha de uma única tabela conduz a um pior desempenho, implicando na necessidade de implementar triggers. PORQUE
II. Por sua vez, gerar duas tabelas resulta em uma estrutura de banco de dados menos flexível.
A respeito das asserções, assinale a alternativa correta:
Explique melhor esta questão
Abre o Tutor com o enunciado e as alternativas já no campo — você revisa e envia.
Esta questão foi verificada por um de nossos administradores.
🎓 Gabarito Comentado (AVA):
A asserção I é falsa, porque, quando é escolhida uma única tabela, o desempenho é melhor, e não pior. Afinal, os atributos da classe agregada são inseridos na mesma tabela da classe agregadora. O melhor desempenho decorre do fato de se precisar acessar não mais que uma única tabela. Além disso, o objeto agregado é excluído de forma automática, quando se elimina o objeto agregador. Isso dispensa qualquer necessidade de implementar triggers ou rotinas especiais na aplicação para a garantia da consistência do banco de dados. A técnica baseada na incorporação de atributos tem, como desvantagem, o aumento da quantidade de páginas que são recuperadas em cada acesso à tabela.
A asserção II também é falsa, uma vez que, quando se opta por gerar duas tabelas, a flexibilidade é aumentada (e não diminuída). A manutenção das tabelas se torna facilitada, já que uma delas precisa herdar, como um atributo normal (chave estrangeira), a chave primária da outra tabela. Todavia as consultas demandam uma operação de junção (join) ou, ao menos, dois acessos ao banco de dados. Na prática, caso o acesso aos dados de ambas as tabelas seja infrequente, a alternativa é até aceitável. Do contrário, a alternativa pode se revelar impertinente. Outra inconveniência de se produzir uma tabela para cada classe é que a consistência do banco de dados entre essas tabelas é mantida quando há a ocorrência de operações de exclusão de objetos, a implementação de triggers ou rotinas especiais na aplicação.