Aula 37: Mapeamento de Hierarquias para o Modelo Relacional
O mapeamento de estruturas de Generalização e Especialização (herança) do MER para o modelo relacional apresenta diferentes alternativas de projeto. Como o modelo relacional não possui o conceito nativo de "herança" de forma idêntica à Programação Orientada a Objetos, o projetista deve escolher a estratégia de conversão que melhor equilibre a performance de consulta e a preservação da integridade (evitando campos nulos e redundância).
Existem três estratégias clássicas de mapeamento de herança:
1- Estratégia de Tabela Única (Single Table Strategy): Mapeia toda a hierarquia (superclasse e todas as subclasses) para uma única tabela. Todos os atributos de todas as subclasse são reunidos nessa tabela, juntamente com uma coluna discriminadora (ou atributo do tipo/categoria) que indica a qual subclasse a linha pertence.Vantagem: Consultas extremamente rápidas, pois não exigem junções (JOIN).
Desvantagem: Gera muitos valores nulos (NULL) para os atributos específicos de subclasses às quais a linha não pertence.
2- Estratégia de Tabela por Classe (Joined / Class Table Strategy): Cria uma tabela para a superclasse e uma tabela para cada subclasse. A tabela da superclasse contém os atributos comuns e a Chave Primária (PK). As tabelas das subclasses contêm apenas seus atributos específicos, e usam como Chave Primária a mesma PK da superclasse, que atua simultaneamente como Chave Estrangeira (FK) referenciando o pai.
Vantagem: Totalmente normalizada, sem desperdício de espaço com campos nulos.
Desvantagem: Consultas sobre dados completos das subclasses exigem operações de JOIN, o que pode impactar o desempenho em bancos volumosos.
3- Estratégia de Tabelas Concretas (Concrete Table Strategy): Cria tabelas apenas para as subclasses, eliminando a tabela da superclasse. Os atributos herdados da superclasse são duplicados dentro da estrutura de cada tabela de subclasse.
Vantagem: Evita valores nulos e não exige junções para consultar uma subclasse específica.Desvantagem: Dificulta consultas globais que englobem todas as instâncias da superclasse (exige operações de UNION).
A escolha da estratégia depende diretamente das restrições de disjunção (Exclusiva vs. Sobreposta) e de participação (Total vs. Parcial) definidas no modelo conceitual, bem como do volume de dados e do perfil de acesso da aplicação.

Comentários
Postar um comentário