Projeto de BD Relacional

33 

Full text

(1)

Projeto de BD Relacional

(2)

Roteiro

Algoritmo de Mapeamento de ER para

Relacional

7 passos para conversão dos construtores

básicos do modelo ER em relações

2 passos para conversão dos construtores

(3)

Algoritmo de Mapeamento

Passo 1: Mapeamento de Entidades

Regulares

Para cada tipo entidade regular (forte) E

de um esquema ER, criar uma relação R

que inclua todos os atributos simples de E.

Incluir somente os componentes simples

(4)

Algoritmo de Mapeamento

Passo 1: Exemplo:

Candidato

Inscrição Nome RG

Número UF Expedidor

Entidade

Relação

(5)

Algoritmo de Mapeamento

Passo 2: Mapeamento de Entidades Fracas

Para cada tipo entidade fraca W de um esquema ER, que

contém sua respectiva entidade forte, criar uma relação R

que inclua todos os atributos simples (ou componentes dos

atributos compostos) de W.

Inserir como chave estrangeira de R os atributos que são

chaves primárias da(s) relação(ões) que corresponde(m) ao

mapeamento do tipo entidade forte correspondente.

A chave primária de R é a combinação da(s) chave(s)

(6)

Algoritmo de Mapeamento

Passo 2: Exemplo:

Relações

Curso (Código: Inteiro, Nome: string[50])

Disciplina (Curso: Inteiro FK(Curso), Sigla: string[6], Nome: string[50])

Curso

1 possui N

Disciplina

Código

Nome

Sigla

(7)

Algoritmo de Mapeamento

Passo 3: Mapeamento dos Relacionamentos

Binários 1:1

Para cada relacionamento R binário 1:1 em um

esquema ER, identificar as relações S e T que

correspondam aos tipos entidades participantes

de R.

Três escolhas possíveis:

1.

Chave Estrangeira

2.

Relacionamento Incorporado

(8)

Algoritmo de Mapeamento

Passo 3: Exemplo:

Escolha 1:

Curso (Código: Inteiro, Nome: string[50] , Coordenador: Inteiro FK(Coordenador))

Coordenador (Matrícula: Inteiro, Nome: string[50])

Curso

1 possui 1

Coordenador

Código

Nome

Matrícula

Nome

Curso (Código: Inteiro, Nome: string[50])

Coordenador (Matrícula: Inteiro, Nome: string[50], Curso: Inteiro not null FK(Curso))

OU

(9)

Algoritmo de Mapeamento

Passo 3: Exemplo:

Escolha 2:

Curso (Código: Inteiro, Nome: string[50] , Coordenador_Matrícula: Inteiro, Coordenador_Nome: string[50])

Curso

1 possui 1

Coordenador

Código

Nome

Matrícula

Nome

Coordenador (Matrícula: Inteiro, Nome: string[50], Curso_Código: Inteiro, Curso_Nome: string[50])

(10)

Algoritmo de Mapeamento

Passo 3: Exemplo:

Escolha 3:

Curso (Código: Inteiro, Nome: string[50])

Coordenador (Matrícula: Inteiro, Nome: string[50])

Coordenador_Curso (Coordenador: inteiro FK1(Coordenador), Curso: inteiro FK2(Curso))

Curso

1 possui 1

Coordenador

Código

Nome

Matrícula

(11)

Algoritmo de Mapeamento

Passo 4: Mapeamento dos Relacionamentos

Binários 1:N

Para cada relacionamento R binário 1:N regular

em um esquema ER, identificar a relação S que

representa a entidade participante do lado “N”

no relacionamento.

Inserir em S, como chave estrangeira, a chave

primária da relação T, que representa a entidade

(12)

Algoritmo de Mapeamento

Passo 4: Exemplo:

Relações

Professor (Matrícula: Inteiro, Nome: string[50])

Disciplina (Sigla: Inteiro, Nome: string[50], professor: inteiro FK(Professor))

Professor

1 ministra N

Disciplina

Matrícula

Nome

Sigla

(13)

Algoritmo de Mapeamento

Passo 5: Mapeamento dos Relacionamentos

Binários N:M

Para cada relacionamento R binário N:M, criar

uma nova relação S para representar o

relacionamento R.

Inserir em S, como chave estrangeira, as chaves

primárias das relações participantes do

relacionamento. A combinação delas formará a

chave primária de S.

Também incluir em S os atributos simples (ou

(14)

Algoritmo de Mapeamento

Passo 5: Exemplo:

Relações

Professor (Matrícula: Inteiro, Nome: string[50])

Curso (Código: Inteiro, Nome: string[50])

Professor_Curso (Professor: inteiro FK1(Professor), Curso: inteiro FK2(Curso))

Curso

N possui N

Professor

Código

Nome

Matrícula

(15)

Algoritmo de Mapeamento

Passo 6: Mapeamento de Atributos

Multivalorados

Para cada atributo multivalorado A, criar uma

nova relação R, que deverá conter um atributo

correspondente à A, mais a chave primária K -

como chave estrangeira em R

da relação que

representa a entidade ou relacionamento que

tem A como atributo.

A chave primária de R é formada pela

(16)

Algoritmo de Mapeamento

Passo 6: Exemplo:

Relações

Aluno (Matrícula: Inteiro, Nome: string[50])

Aluno_Telefones (Matrícula: Inteiro FK(Aluno), Telefone: string[20])

Aluno

Matrícula

Nome

(17)

Algoritmo de Mapeamento

Passo 7: Mapeamento dos Relacionamentos N-ários

Para cada relacionamento N-ário R, em que n > 2, criar uma

nova relação S para representar R.

Incluir como chave estrangeira de S as chaves primárias das

relações que representam as entidades participantes do

relacionamento.

Incluir qualquer atributo simples (ou componentes simples de

atributos compostos) do relacionamento N-ário em S.

A chave primária de S é formada, normalmente, pela

combinação de todas as chaves estrangeiras que fazem

referência às relações representantes das entidades envolvidas

no relacionamento.

Se qualquer entidade possuir grau de participação 1 no

(18)

Algoritmo de Mapeamento

Passo 7: Exemplo:

Relações

Aluno (Matrícula: Inteiro, Nome: string[50])

Curso (Código: Inteiro, Nome: string[50])

Disciplina (Sigla: inteiro, Nome: string[50])

Matriculados (Aluno: Inteiro FK1(Aluno), Disciplina: Inteiro FK2(Disciplina), Curso: Inteiro FK3(Curso))

Curso

1 Matriculado N

Aluno

Código

Nome

Matrícula

Nome

Disciplina

N

Sigla

(19)

Algoritmo de Mapeamento

Passo 8: Mapeamento da Especialização ou

Generalização

Sejam:

{S

1

, S

2

, …, S

n

} as classes especializadas

C a classe generalizada

{k, a

1

, a

2

, …, a

n

} os atributos de C e k sua chave

primária

Há quatro opções (duas de relações-múltiplas e

(20)

Algoritmo de Mapeamento

Passo 8: Primeira Opção (Relações

Múltiplas

Superclasse e Subclasse)

Criar uma relação L para C com os todos

os seus atributos e chave.

Criar uma relação L

i

para cada subclasse

S

i

, 1

≤i≤n, com todos os atributos de

cada uma das subclasses mais o atributo

chave de C, que será também chave

(21)

Algoritmo de Mapeamento

Passo 8: Exemplo utilizando a primeira

opção

Relações

Professor (Matrícula: Inteiro, Nome: string[50])

Professor_Concursado (Matrícula: Inteiro FK(Professor), Carga: Inteiro, IniContrato: data)

Professor_Temporário (Matrícula: Inteiro FK(Professor), FimContrato: data)

Professor

Matrícula

Nome

Professor

Concursado

Carga

IniContrato

Professor

Temporário

FimContrato

(22)

Algoritmo de Mapeamento

Passo 8: Segunda Opção (Relações

Múltiplas

Somente relações de

Subclasses)

Criar uma relação L

i

para cada subclasse S

i

,

1

≤i≤n, com todos os atributos de cada uma das

subclasses mais os atributos da superclasse C,

incluindo sua chave primária, que será também

chave primária de cada relação L

i

.

Funciona somente para especializações cujas

subclasses são totais (toda entidade da

(23)

Algoritmo de Mapeamento

Passo 8: Exemplo utilizando a segunda

opção

Relações

Professor_Concursado (Matrícula: Inteiro, Nome: string[50], Carga: Inteiro, IniContrato: data)

Professor_Temporário (Matrícula: Inteiro, Nome: string[50], FimContrato: data)

Professor

Matrícula

Nome

Professor

Concursado

Carga

IniContrato

Professor

Temporário

FimContrato

(24)

Algoritmo de Mapeamento

Passo 8: Terceira Opção (Relação Única

com Atributo “Tipo”)

Criar uma relação L com todos os atributos da

superclasse C, mais os atributos de cada uma

das subclasses S

i

, 1

≤i≤n, mais um atributo

“Tipo”, discriminativo, que indica a subclasse à

qual cada tupla pertence (se pertencer à

alguma).

A chave primária de L é composta pela chave

primária de C.

Funciona para especializações cujas subclasses

(25)

Algoritmo de Mapeamento

Passo 8: Exemplo utilizando a terceira

opção

Relação

Professor (Matrícula: Inteiro, Nome: string[50], Carga: Inteiro, IniContrato: data, FimContrato: data, Tipo: string[10])

Professor

Matrícula

Nome

Professor

Concursado

Carga

IniContrato

Professor

Temporário

FimContrato

(26)

Algoritmo de Mapeamento

Passo 8: Quarta Opção (Relação Única com

Atributos “Tipo” Múltiplos)

Criar uma relação L com todos os atributos da

superclasse C, mais os atributos de cada uma

das subclasses S

i

, 1

≤i≤n, mais um atributo

“Tipo” (booleano) para a mesma quantidade de

subclasses, discriminativo, que indica se a tupla

pertence ou não àquela subclasse.

A chave primária de L é composta pela chave

primária de C.

Funciona para especializações cujas subclasses

(27)

Algoritmo de Mapeamento

Passo 8: Exemplo utilizando a quarta

opção

Relação

Membro_Faculdade (Matrícula: Inteiro, Nome: string[50], Carga: Inteiro, IniContrato: data, Curso: string[30], professor: booleano, aluno: booleano)

Membro

Faculdade

Matrícula

Nome

Professor

Carga

IniContrato

(28)

Algoritmo de Mapeamento

Subclasses Compartilhadas (Herança

Múltipla)

Pode-se utilizar quaisquer opções do

Passo 8.

Atributo da Classe Compartilhada

(29)

Algoritmo de Mapeamento

Passo 8: Exemplo (Subclasse

Compartilhada)

Relação

Membro_Faculdade (Matrícula: Inteiro, Nome: string[50], Carga: Inteiro, IniContrato: data, Curso: string[30], professor: booleano, aluno: booleano)

Membro

Faculdade

Nome

Professor

Carga

IniContrato

Aluno

Curso Matrícula

Matrícula

(30)

Algoritmo de Mapeamento

Passo 9: Mapeamento das Uniões

(Categorias)

Categoria que define superclasses que têm

chaves diferentes, costuma-se especificar um

novo atributo-chave, ou chave substituta.

A chave substituta da classe categoria é

(31)

Algoritmo de Mapeamento

Passo 9: Exemplo (Subclasse de União)

Relações

Professor (RG: Inteiro, Nome: string[50], Carga: Inteiro, IniContrato, ID_Membro_Faculdade: Inteiro FK(Membro_Faculdade))

Aluno (Matrícula: Inteiro, Curso: string[30], Nome: string[50], ID_Membro_Faculdade: Inteiro

Membro

Faculdade

Nome

Professor

Carga

IniContrato

Aluno

Curso Matrícula

RG

Nome

(32)

Algoritmo de Mapeamento

Exercício: Mapear o diagrama ER do banco de dados “Faculdade” para um

diagrama Relacional

Aluno Curso

responsável possui pré-requisito 1 1 N N Sigla Nome Matrícula Nome

(33)

Algoritmo de Mapeamento

Exercício: Mapear o diagrama ER do banco de dados “Empresa” para um

diagrama Relacional

Empregado Departamento

Projeto possui Trabalha_em Faz_parte_de gerencia supervisiona supervisor supervisionado

1 1

Figure

Updating...

References

Updating...

Download now (33 página)