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.

ATIVIDADE DE FIXAÇÃO (TURMA 01)

ATIVIDADE DE FIXAÇÃO (TURMA 02)

Comentários

Postagens mais visitadas deste blog

Aula 14: MER: Atributos Simples, Compostos e Multivalorados

Aula 5: Níveis de Abstração de Dados: Visão, Lógico e Físico

Aula 3: Objetivos e Vantagens de um SGBD