Bancos de Dados - Aula 07 - Mapeamento MER → Relacional - Parte II: relacionamentos, cardinalidades
Mapeamento de Relacionamentos em Bancos de Dados
Introdução ao Mapeamento
- A aula é conduzida por Sara, que apresenta o tema do mapeamento do modelo entidade-relacionamento para o modelo relacional.
- O foco inicial é no mapeamento de relacionamentos binários com cardinalidade um para um.
Cardinalidade Um para Um
- Exemplo: Funcionário e Departamento, onde cada funcionário gerencia apenas um departamento e vice-versa.
- A participação total do departamento no relacionamento indica que ele deve ter um funcionário gerenciando-o, enquanto o contrário não é obrigatório.
Abordagens de Mapeamento
- Para mapeamentos com cardinalidade um para um, são identificadas as relações S e T correspondentes às entidades participantes.
- Três abordagens podem ser utilizadas: chave estrangeira, relação unificada e referência cruzada. A abordagem de chave estrangeira será a principal discutida.
Regras da Abordagem Chave Estrangeira
- Escolher uma das relações como S e incluir a chave primária da relação T como chave estrangeira na relação S.
- Todos os atributos simples devem ser incluídos na entidade escolhida como S. No exemplo, a entidade Departamento é escolhida como S.
Implementação do Mapeamento
- Na relação Departamento, insere-se um atributo que referencia a chave primária da tabela Funcionário (chave estrangeira).
- O atributo "data de início da gerência" também faz parte do relacionamento entre as entidades.
Outras Abordagens
- A abordagem de relação unificada e referência cruzada são mencionadas brevemente; mais detalhes serão abordados em exercícios futuros.
Mapeamento de Relacionamentos Um para N
Identificação das Relações
- Para relacionamentos com cardinalidade um para n ou n para um, identifica-se a relação S representando o tipo entidade que participa do relacionamento.
Exemplo Prático
- No exemplo "Funcionário trabalha para Departamento", cada funcionário está associado a apenas um departamento, mas cada departamento pode ter vários funcionários.
Construção do Relacionamento
- O tipo Funcionário representa a relação S e o Departamento representa a relação T no modelo relacional.
Modelo Relacional e Chaves Estrangeiras
Importância das Chaves Estrangeiras
- O atributo mencionado é uma chave estrangeira na relação "S", referindo-se à chave primária de outra relação, que é a relação "departamento". A integridade referencial é mantida pelo SGBD.
- Para um funcionário ser associado a um departamento, o valor da chave estrangeira deve corresponder a um departamento já cadastrado no sistema. Essa verificação é realizada pelo SGBD.
Mapeamento de Relações
- Se invertermos as relações, colocando "departamento" como relação "S" e "funcionário" como relação "T", surgiria um problema, pois um departamento pode ter vários funcionários. Isso exigiria um atributo multivalorado, que não é permitido no modelo relacional.
- Um exemplo adicional envolve o relacionamento entre departamentos e projetos. Cada departamento pode controlar vários projetos, sendo necessário incluir o atributo correspondente na tabela de projetos para identificar qual projeto pertence a qual departamento.
Relacionamentos Recursivos
- O relacionamento recursivo ocorre quando um funcionário supervisiona outros funcionários. Cada funcionário tem apenas um supervisor. Para modelar isso, adicionamos um novo atributo ao funcionário que referencia seu supervisor.
- Este novo atributo atua como uma chave estrangeira que se refere à própria tabela de funcionários, permitindo registrar tanto o funcionário quanto seu supervisor.
Relacionamentos Muitos para Muitos
- Para mapear relacionamentos muitos para muitos (m:n), criamos uma nova relação específica que representa esse relacionamento. As chaves primárias dessa nova relação são combinações das chaves estrangeiras das entidades envolvidas.
- No exemplo em questão, os funcionários podem trabalhar em vários projetos e vice-versa. O relacionamento inclui também o atributo "horas", que indica quantas horas cada funcionário dedicará a cada projeto.
Estrutura do Modelo Relacional Completo
- Ao criar uma nova relação para o mapeamento do trabalho em projetos, incluímos atributos como P número (chave estrangeira do projeto), F idente (chave estrangeira do funcionário), e horas (atributo do relacionamento).
- Quando lidamos com relacionamentos muitos para muitos, as chaves provenientes de duas tabelas são definidas como a chave primária da nova relação criada para representar essa associação.