Roteiro
Mapeamento dos Modelos ER e EER
Posicionamento
Luiz Henrique de Campos Merschmann
Departamento de Computação
Universidade Federal de Ouro Preto
[email protected]
www.decom.ufop.br/luiz
Introdução
Algoritmo de Mapeamento do ER para o Relacional
Algoritmo de Mapeamento do EER para o Relacional
BCC321 - Banco de Dados I
Ementa
1. Conceitos básicos em sistemas de banco de dados.
2. Conceitos e arquitetura de sistemas de banco de dados.
3. Modelagem conceitual de dados.
4. Modelo Relacional: conceitos básicos e restrições de
integridade.
5. Linguagens: álgebra e cálculo relacional.
6. A linguagem SQL e o uso de APIs.
7. Projeto de banco de dados.
8. Normalização de banco de dados.
9. Noções de processamento de transações, concorrência e
recuperação de falhas.
10. Aspectos de implementação de banco de dados.
Processo de Projeto de Banco de Dados
Introdução
I
Projeto lógico do banco de dados = mapeamento do
modelo ER (ou EER).
I
Mostraremos um algoritmo com os passos para conversão
dos construtores do modelo ER e EER em relações.
Passo 1: Mapeamento dos Tipos de Entidade
Regulares
I
Para cada tipo de entidade regular (forte) E, criar uma
relação R que inclua todos os atributos simples de E.
I
Incluir somente os componentes simples dos atributos
compostos.
I
Escolher um dos atributos-chave de E como chave primária
de R.
I
Se múltiplas chaves forem identificadas para E ⇒ chaves
secundárias (unique keys) da relação R.
Algoritmo de Mapeamento do ER para o
Relacional
I
Passo 1: Mapeamento dos Tipos de Entidade Regulares.
I
Passo 2: Mapeamento dos Tipos de Entidade Fracas.
I
Passo 3: Mapeamento dos Tipos de Relacionamento
Binários 1:1.
I
Passo 4: Mapeamento dos Tipos de Relacionamento
Binários 1:N.
I
Passo 5: Mapeamento dos Tipos de Relacionamento
Binários N:M.
I
Passo 6: Mapeamento de Atributos Multivalorados.
I
Passo 7: Mapeamento dos Tipos de Relacionamento N-ário.
Esquema Conceitual ER para o Banco de Dados
EMPRESA
Passo 2: Mapeamento dos Tipos de Entidade
Fracas
I
Para cada tipo de entidade fraca W (que contém sua
respectiva entidade proprietária E), criar uma relação R
que inclua todos os atributos simples de W .
I
Incluir somente os componentes simples dos atributos
compostos.
I
Inserir como chave estrangeira de R os atributos que são
chave(s) primária(s) da(s) relação(ões) que corresponde(m)
aos tipos de entidade(s) proprietária(s).
I
A chave primária de R: chave(s) primária(s) do(s) tipo(s)
de entidade proprietária(s) de R + chave parcial do tipo de
entidade fraca (se houver).
I
Se existir um tipo de entidade fraca E2 cuja entidade
proprietária é também uma entidade fraca E1 , então E1
deve ser mapeada antes de E2 .
Passo 3: Mapeamento dos Tipos de
Relacionamento Binários 1:1
I
Identificar as relações S e T que correspondem aos tipos de
entidades participantes do relacionamento R.
Esquema Conceitual ER para o Banco de Dados
EMPRESA
Passo 3: Mapeamento dos Tipos de
Relacionamento Binários 1:1
Chave estrangeira
I
Escolher uma das relações – p.ex. S – e nela inserir, como
chave estrangeira, a chave primária de T .
I
Recomenda-se escolher o tipo de entidade com a
participação total em R para exercer o papel de S.
I
Incluir todos os atributos do tipo de relacionamento R
como atributos de S.
Há três escolhas possíveis:
I
Chave estrangeira – recomendada.
I
Relação mesclada (unificada).
I
Referência cruzada (ou relação de relacionamento).
Esquema Conceitual ER para o Banco de Dados
EMPRESA
Passo 3: Mapeamento dos Tipos de
Relacionamento Binários 1:1
Relação mesclada
I
Incorporar o tipo de relacionamento e os tipos de entidade
envolvidos a uma única relação.
I
Opção apropriada quando ambas as participações
são totais.
Referência cruzada (ou relação de relacionamento)
Passo 4: Mapeamento dos Tipos de
Relacionamento Binários 1:N
I
Identificar a relação S que representa o tipo de entidade
participante do lado N do tipo de relacionamento.
I
Inserir como chave estrangeira de S a chave primária da
relação T (que representa o outro tipo de entidade
participante em R).
I
Incluir qualquer atributo simples (ou componentes dos
atributos compostos) do tipo de relacionamento R como
atributo de S.
Alternativa: criar uma relação de relacionamento, cujos
atributos seriam as chaves de S e T , e cuja chave primária
seria a mesma de S.
I
I
Essa escolha pode ser usada se poucas tuplas de S
participarem do relacionamento. Assim, evitaríamos o
excesso de valores null na chave estrangeira.
I
Definir uma terceira relação R com a finalidade de servir de
referência cruzada às chaves primárias das duas relações S e
T que mapeiam os tipos de entidade.
I
Essa terceira relação R é chamada relação de
relacionamento ou, algumas vezes, tabela de pesquisa.
Esquema Conceitual ER para o Banco de Dados
EMPRESA
Passo 5: Mapeamento dos Tipos de
Relacionamento Binários M:N
I
Para cada tipo de relacionamento R M:N, criar uma nova
relaçao S para representar R.
I
Inserir como chave estrangeira em S as chaves primárias
das relações que representam os tipos de entidade
participantes do relacionamento R.
I
A combinação das chaves (citadas no item anterior)
formará a chave primária de S.
I
Incluir quaisquer atributos simples (ou os componentes dos
compostos) do tipo de relacionamento R como atributos de
S.
I
Observe que não podemos representar um relacionamento
M:N por meio de uma simples chave estrangeira em uma
das relações participantes.
Passo 6: Mapeamento de Atributos
Multivalorados
I
Para cada atributo multivalorado A, criar uma nova relação
R.
I
R deverá conter um atributo correspondente a A, mais
chave primária K (como chave estrangeira em R) da
relação que representa o tipo de entidade ou de
relacionamento que tem A como atributo.
I
A chave primária de R será a combinação de A e K.
I
Se o atributo multivalorado for composto, incluiremos seus
componentes simples.
Esquema Conceitual ER para o Banco de Dados
EMPRESA
Esquema Conceitual ER para o Banco de Dados
EMPRESA
Resultado do Mapeamento
Passo 7: Mapeamento dos Tipos de
Relacionamento N-ário
I
Para cada tipo de relacionamento R n-ário (n > 2), criar
nova relação S.
I
Incluir como chave estrangeira em S, as chaves primárias
das relações que representam os tipos de entidade
participantes.
I
Incluir qualquer tipo de atributo do relacionamento n-ário
como atributo de S.
A chave primária de S é, normalmente, a combinação de
todas as chaves estrangeiras que fazem referência às
relações representantes dos tipos de entidade participantes.
I
I
Passo 7: Mapeamento dos Tipos de
Relacionamento N-ário
Se a restrição de cardinalidade em algum tipo de entidade
participante E for 1, então a chave primária de S não deve
incluir a chave estrangeira que faz referência à relação
correspondente à E.
Mapeamento dos Construtores EER para as
Relações
Passo 8: Opções para mapeamento de
especialização/generalização
I
A) Relações múltiplas (superclasse e subclasse).
I
B) Relações múltiplas (somente subclasses).
I
C) Relação única com um atributo tipo.
I
D) Relação única com múltiplos atributos tipo.
Mapeamento dos Construtores EER para as
Relações
Relações Múltiplas (Superclasse e Subclasses)
Exemplo
Considerações
I
Subclasses = {S1 , S2 , . . . , Sm }
I
Superclasse C, com atributos Atr(C) = {k, a1 , a2 , . . . , an } e
chave primária P K(C) = k
Relações múltiplas (superclasse e subclasses)
I
Criar uma relação L para C com
Atr(L) = {k, a1 , a2 , . . . , an } e P K(L) = k.
I
Criar uma relação Li para cada subclasse Si com
Atr(Li ) = {k} ∪ Atr(Si ) e P K(Li ) = k.
I
Essa opção funciona para qualquer situação, ou seja,
especialização total, parcial, disjunta ou sobreposta.
Mapeamento dos Construtores EER para as
Relações
Relações Múltiplas (Somente Relações de
Subclasses)
Exemplo
Relações múltiplas (somente relações de subclasses)
I
Criar uma relação Li para cada subclasse Si com
Atr(Li ) = {k, a1 , a2 , . . . , an } ∪ Atr(Si ) e P K(Li ) = k.
I
Essa opção funciona somente para especializações totais.
I
Só é recomendado se a especialização tiver a restrição de
disjunção.
Mapeamento dos Construtores EER para as
Relações
Relação Única com um Atributo Tipo
Exemplo
Relação única com um atributo tipo
I
Criar uma única relação L com
Atr(L) = {k, a1 , a2 , . . . , an } ∪ Atr(Si ) ∪ . . . ∪ Atr(Sm ) ∪ {t}
e P K(L) = k.
I
O atributo t é chamado de atributo tipo e serve para
indicar a subclasse à qual cada tupla pertence.
I
Essa opção funciona para quaisquer especializações cujas
subclasses sejam disjuntas.
Mapeamento dos Construtores EER para as
Relações
Relação Única com Múltiplos Atributos Tipo
Exemplo
Relação única com múltiplos atributos tipo
I
Criar uma única relação L com Atr(L) =
{k, a1 , a2 , . . . , an } ∪ Atr(Si ) ∪ . . . ∪ Atr(Sm ) ∪ {t1 , t2 , . . . , tm }
e P K(L) = k.
I
Cada atributo ti é um atributo do tipo booleano que serve
para indicar se a tuplas pertence ou não àquela subclasse Si .
I
Essa opção funciona para quaisquer especializações cujas
subclasses sejam sobrepostas (ou disjuntas).
Mapeamento dos Construtores EER para as
Relações
Exemplo de Mapeamento de Reticulado
Exemplo:
Para hierarquia ou reticulado de especialização/generalização:
I
Não temos que seguir a mesma opção de mapeamento para
todas as especializações.
I
Ou seja, podemos usar uma opção para uma parte da
hierarquia ou reticulado e outras opções para outras partes.
Exemplo de Mapeamento de Reticulado
I
Opção relações múltiplas – superclasse e subclasse para
PESSOA/{FUNCIONARIO, EX_ALUNO, ALUNO}.
I
Opção relação única com um atributo tipo para
FUNCIONARIO/{ADMINISTRATIVO, DOCENTE,
ALUNO_COLABORADOR}.
I
Opção relação única com vários atributos tipo para
ALUNO_COLABORADOR/{COLABORADOR_PESQUISA,
COLABORADOR_ENSINO},
ALUNO/ALUNO_COLABORADOR e
ALUNO/{ALUNO_POSGRADUACAO,
ALUNO_GRADUACAO}.
Exemplo de Mapeamento de Reticulado
Mapeamento dos Construtores EER para as
Relações
Exemplo de Mapeamento dos Tipos União
Mapeamento dos Tipos União
I
Para o mapeamento de uma categoria que define as
superclasses que têm chaves diferentes, especificar um novo
atributo-chave (chave substituta).
I
Motivo: as superclasses têm chaves diferentes, de modo que
não podemos usar nenhuma delas em particular para a
identificação de todas as entidades da categoria.
Perguntas?
FIM
Download

Material 6 - Decom