Bancos de Dados - Aula 08 – Mapeamento MER → Relacional - Parte III

Bancos de Dados - Aula 08 – Mapeamento MER → Relacional - Parte III

Mapeamento de Relacionamentos Nários e Especializações

Introdução ao Mapeamento Entidade-Relacionamento

  • A apresentação é conduzida por Sara, que discute conceitos de mapeamento entidade-relacionamento no contexto de bancos de dados.
  • O foco da aula são os relacionamentos nários, especializações e agregações, com ênfase na importância das cardinalidades.

Relacionamentos Nários

  • Para mapear um relacionamento nário (n > 2), cria-se uma nova relação S que inclui as chaves primárias das entidades participantes como chaves estrangeiras.
  • A chave primária da nova relação S é a combinação de todas as chaves estrangeiras. Se uma entidade tem cardinalidade "um", sua chave não entra na chave primária.

Exemplo Prático: Relacionamento "Fornece"

  • Um exemplo prático envolve três entidades: fornecedor, projeto e peça, onde cada fornecedor pode fornecer várias peças para vários projetos.
  • As chaves primárias das três entidades são usadas como chaves estrangeiras na nova relação "fornece", que também inclui o atributo quantidade.

Cadastro de Dados

  • São apresentados dados hipotéticos nas tabelas para ilustrar o relacionamento entre fornecedores, projetos e peças.
  • Destaca-se a flexibilidade do mapeamento, permitindo múltiplos fornecedores para o mesmo projeto e peça.

Cardinalidade em Relacionamentos

  • Uma situação diferente surge quando um fornecedor participa com cardinalidade "um", exigindo que cada projeto/peça seja fornecido por exatamente um fornecedor.
  • Neste caso, a chave primária da relação "fornece" é composta apenas pelas chaves primárias das entidades projeto e peça.

Restrições Impostas pelos Dados

  • Com essa configuração, não se pode ter o mesmo projeto recebendo a mesma peça de fornecedores diferentes; isso impõe restrições importantes nos dados cadastrados.
  • A combinação do número do projeto com o número da peça deve ser única para evitar duplicações indesejadas.

Importância das Restrições no Modelo Relacional

  • As restrições definidas no modelo conceitual devem ser bem estudadas para garantir que o sistema gerenciador de banco de dados (SGBD) possa aplicá-las corretamente.
  • Essas restrições são levantadas durante a coleta de requisitos no início do desenvolvimento do sistema.

Mapeamento de Especializações e Generalizações

Mapeamento de Superclasse e Subclasses em Tabelas

Estratégias de Mapeamento Relacional

  • O mapeamento das subclasses e superclasse deve incluir todos os atributos relevantes, com a chave primária da superclasse estabelecida.
  • Existem quatro opções para realizar esse mapeamento, cada uma adequada a diferentes situações.

Primeira Opção: Múltiplas Relações para Superclasse e Subclasses

  • Criação de uma relação para a superclasse que inclui todos os seus atributos, com a chave primária definida como a chave da superclasse.
  • Para cada subclasse, é criada uma relação separada (L1, L2, L3), incluindo o atributo da subclasse e a chave da superclasse.
  • Exemplo prático: Funcionário especializado em Secretário, Técnico e Engenheiro. A especialização é disjunta e parcial.

Mapeamento Alternativo

  • Uma modelagem alternativa pode incluir um atributo "F tipo" que especifica qual subclasse uma entidade pertence.

Segunda Estratégia: Relações Apenas para Subclasses

  • Nesta abordagem, não há relação exclusiva para a superclasse; apenas relações para as subclasses são criadas.
  • Essa opção é válida apenas para especializações de participação total e restrição de disjunção.

Exemplo Prático

  • Um veículo deve ser necessariamente um carro ou um caminhão. Se não for nenhum dos dois, não pode ser cadastrado no modelo relacional.

Problemas com Restrições de Sobreposição

  • Se houver sobreposição (um veículo podendo ser tanto carro quanto caminhão), informações da superclasse teriam que ser cadastradas duas vezes.

Abordagem de Mapeamento Único

Mapeamento de Especializações e Agregações

Estratégias de Especialização

  • A especialização de subclasses disjuntas pode levar ao uso excessivo de valores nulos nas tabelas, o que é uma desvantagem.
  • Ao cadastrar um funcionário, todos os atributos da superclasse e das subclasses são incluídos, mas apenas os atributos relevantes para o tipo específico do funcionário são preenchidos; os demais ficam nulos.
  • Uma abordagem alternativa envolve criar uma relação única com todos os atributos da superclasse e das subclasses, além de atributos booleanos que indicam a participação em cada subclasse.

Uso de Flags para Subclasses

  • Os atributos booleanos (flags) indicam se um dado pertence ou não a uma subclasse específica; se sim, recebe valor 1, caso contrário, 0.
  • Exemplo prático: na especialização "peça", ela pode ser tanto manufaturada quanto comprada. Cada tipo possui seus próprios atributos e flags correspondentes.

Inserção de Dados em Peças

  • Durante a inserção dos dados, se a peça for comprada ou manufaturada, o respectivo flag deve estar marcado como 1 e os valores dos atributos dessa subclasse devem ser fornecidos.
  • É possível ter peças que sejam simultaneamente manufaturadas e compradas; nesse caso, ambos os flags estarão marcados como 1.

Mapeamento de Agregações

  • As agregações devem ser mapeadas considerando o relacionamento entre entidades; isso requer a criação de relações adequadas para representar esses vínculos.
  • A escolha dos atributos para chave primária depende da semântica representada na agregação.

Conclusão do Mapeamento

Video description

Bancos de Dados - Aula 08 – Mapeamento MER → Relacional - Parte III: relacionamentos n-ários, especialização-generalização, agregação Engenharia de Computação – Bancos de Dados Disciplina EID - 002 - Bancos de Dados Professora responsável: Sarajane Peres