38
Universidade Federal de Uberlândia Faculdade de Engenharia Mecânica Engenharia Mecatrônica Banco de dados Prof. Hiran Nonato Transformações entre modelos (ER Relacional) Parte 1

8 Mapeamento MER-Rel

Embed Size (px)

Citation preview

Universidade Federal de UberlândiaFaculdade de Engenharia Mecânica

Engenharia Mecatrônica

Banco de dadosProf. Hiran Nonato

Transformações entre modelos (ER Relacional)

Parte 1

Até agora na disciplina

• Introdução a Banco de Dados

• Arquitetura de Banco de Dados

• Modelo Entidade-Relacionamento

• Modelo Entidade-Relacionamento Estendido

• Modelo Relacional

2Banco de Dados - 2012-2

Até agora na disciplina

• Introdução a Banco de Dados

• Arquitetura de Banco de Dados

• Modelo Entidade-Relacionamento

• Modelo Entidade-Relacionamento Estendido

• Modelo Relacional

3Banco de Dados - 2012-2

7 Passos

Até agora na disciplina

• Introdução a Banco de Dados

• Arquitetura de Banco de Dados

• Modelo Entidade-Relacionamento

• Modelo Entidade-Relacionamento Estendido

• Modelo Relacional

Gerar relações a partir das entidades

4Banco de Dados - 2012-2

7 Passos

Passo 1: Tipo-entidade forte

• Modelo Entidade-Relacionamento– Tipo-entidade E

– Atributos a1, a2, a3, ..., na

• Modelo Relacional

– Tabela de n colunas distintas, correspondendo aos n atributos de E

5Banco de Dados - 2012-2

Empregado

cpf

nome

idade

Passo 1: Tipo-entidade forte

• Modelo Entidade-Relacionamento– Tipo-entidade E

– Atributos a1, a2, a3, ..., na

• Modelo Relacional

– Tabela de n colunas distintas, correspondendo aos n atributos de E

6Banco de Dados - 2012-2

Empregado

cpf

nome

idade

Empregado (cpf, nome, idade)

Passo 1: Tipo-entidade forte

• Modelo Entidade-Relacionamento– Tipo-entidade E

– Atributos a1, a2, a3, ..., na

• Modelo Relacional

– Tabela de n colunas distintas, correspondendo aos n atributos de E

7Banco de Dados - 2012-2

Empregado

cpf

Nome

Idade

Empregado (cpf, nome, idade)

Atributo Composto

Atributo derivado

Passo 2: Tipo-entidade fraca

• Modelo Entidade-Relacionamento– Tipo-entidade forte E

– Tipo-entidade fraca A

– Atributos a1, a2, a3, ..., na

• Modelo Relacional– Tabelas de n atributos de A e E, mais chave de E em A

8Banco de Dados - 2012-2

Empregado Tem Dependentes

cpf_emp

nome_emp

nome

sexo

Passo 2: Tipo-entidade fraca

• Modelo Entidade-Relacionamento– Tipo-entidade forte E

– Tipo-entidade fraca A

– Atributos a1, a2, a3, ..., na

• Modelo Relacional– Tabelas de n atributos de A e E, mais chave de E em A

9Banco de Dados - 2012-2

Empregado (cpf_emp, nome_emp)Dependentes(cpf_emp, nome, sexo)

Empregado Tem Dependentes

cpf_emp

nome_emp

nome

sexo

Passo 2: Tipo-entidade fraca

• Modelo Entidade-Relacionamento– Tipo-entidade forte E

– Tipo-entidade fraca A

– Atributos a1, a2, a3, ..., na

• Modelo Relacional– Tabelas de n atributos de A e E, mais chave de E em A

10Banco de Dados - 2012-2

Empregado (cpf_emp, nome_emp)Dependentes(cpf_emp, nome, sexo)

Empregado Tem Dependentes

cpf_emp

nome_emp

nome

sexo

Passo 3: Tipo-relacionamento (1:1)

• Modelo Entidade-Relacionamento– Tipo-relacionamento binário: E1 relacionando com E2

• Modelo Relacional (3 opções para a FK)– Repete-se a PK de E1 em E2 e vice-versa

– Repete-se a PK de E1 em E2

– Repete-se a PK de E2 em E1

11Banco de Dados - 2012-2

Passo 3: Tipo-relacionamento (1:1)

• Modelo Entidade-Relacionamento– Tipo-relacionamento binário: E1 relacionando com E2

• Modelo Relacional (3 opções para a FK)– Repete-se a PK de E1 em E2 e vice-versa

– Repete-se a PK de E1 em E2

– Repete-se a PK de E2 em E1

12Banco de Dados - 2012-2

Chave primária de uma relação que é inserida em outra

relação

Passo 3: Tipo-relacionamento (1:1)

13Banco de Dados - 2012-2

Empregado Gerencia Departamento

cpf_emp

nome_emp

cod_dep

nome_dep

1 1

Passo 3: Tipo-relacionamento (1:1)

14Banco de Dados - 2012-2

Empregado Gerencia Departamento

cpf_emp

nome_emp

cod_dep

nome_dep

1 1

Empregado (cpf_emp, nome_emp, cod_dep)Departamento(cod_dep, nome_dep, cpf_emp)

Passo 3: Tipo-relacionamento (1:1)

15Banco de Dados - 2012-2

Empregado Gerencia Departamento

cpf_emp

nome_emp

cod_dep

nome_dep

1 1

Empregado (cpf_emp, nome_emp, cod_dep)Departamento (cod_dep, nome_dep, cpf_emp)

Empregado (cpf_emp, nome_emp)Departamento (cod_dep, nome_dep, cpf_emp)

Passo 3: Tipo-relacionamento (1:1)

16Banco de Dados - 2012-2

Empregado Gerencia Departamento

cpf_emp

nome_emp

cod_dep

nome_dep

1 1

Empregado (cpf_emp, nome_emp, cod_dep)Departamento(cod_dep, nome_dep, cpf_emp)

Empregado (cpf_emp, nome_emp)Departamento (cod_dep, nome_dep, cpf_emp)

Empregado (cpf_emp, nome_emp,cod_dep)Departamento (cod_dep, nome_dep)

Passo 3: Tipo-relacionamento (1:1)

17Banco de Dados - 2012-2

Empregado Gerencia Departamento

cpf_emp

nome_emp

cod_dep

nome_dep

1 1

Empregado (cpf_emp, nome_emp)Departamento (cod_dep, nome_dep, cpf_emp)

Não pode existir Departamento sem gerentePode existir Empregado que não gerencia um Departamento

Passo 3: Tipo-relacionamento (1:1)

• Outra forma de mapeamento

18Banco de Dados - 2012-2

Homem Namora Mulher

nome

idade

nome

idadeTempo

Passo 3: Tipo-relacionamento (1:1)

• Outra forma de mapeamento

19Banco de Dados - 2012-2

Homem(nome, idade)Mulher(nome, idade, nomeH, Tempo)

Homem Namora Mulher

nome

idade

nome

idadeTempo

Homem(nome, idade)Mulher(nome, idade)

Namoro (nomeH, nomeM, tempo)

Passo 4: Tipo-relacionamento (1:N)

• Modelo Entidade-Relacionamento– Tipo-relacionamento binário: E1 relacionando com E2

• Modelo Relacional

– Repete-se a PK de E1 em E2

• A tabela de E1 terá somente os atributos de E1

• A tabela de E2 terá – os atributos de E2

– a chave de E1 (Chave estrangeira)

– Os atributos do relacionamento

20Banco de Dados - 2012-2

Passo 4: Tipo-relacionamento (1:N)

21Banco de Dados - 2012-2

Empregado Trabalha Departamento

cpf_emp

nome_emp

cod_dep

nome_dep

N 1

Passo 4: Tipo-relacionamento (1:N)

22Banco de Dados - 2012-2

Empregado Trabalha Departamento

cpf_emp

nome_emp

cod_dep

nome_dep

N 1

Empregado (cpf_emp, nome_emp, cod_dep)Departamento (cod_dep, nome_dep)

Passo 4: Tipo-relacionamento (1:N)

• Outra forma de mapeamento

23Banco de Dados - 2012-2

Empregado Trabalha Departamento

cpf_emp

nome_emp

cod_dep

nome_dep

N 1

Empregado (cpf_emp, nome_emp, cod_dep)Departamento (cod_dep, nome_dep)

Trabalha(cpf_emp, cod_dep)

A chave primária do lado N vai para a tabela Trabalha.

Passo 4: Tipo-relacionamento (1:N)

• Outra forma de mapeamento

24Banco de Dados - 2012-2

Empregado Trabalha Departamento

cpf_emp

nome_emp

cod_dep

nome_dep

N 1

Empregado (cpf_emp, nome_emp, cod_dep)Departamento (cod_dep, nome_dep)

Trabalha(cpf_emp, cod_dep)

A chave primária do lado N vai para a tabela Trabalha.

Evita valores null

Passo 5: Tipo-relacionamento (N:M)

• Modelo Entidade-Relacionamento– Tipo-relacionamento binário: E1 relacionando com E2

• Modelo Relacional

– A tabela de E1 terá somente os atributos de E1

– A tabela de E2 terá somente os atributos de E2

– A tabela R (relacionamento) terá:

• A chave primária de E1

• A chave primária de E2

• Os atributos do tipo-relacionamento

– Chave primária de R (PK de E1 + PK de E2)

25Banco de Dados - 2012-2

26Banco de Dados - 2012-2

Empregado Desenvolve Projeto

cpf_emp

nome_emp

cod_proj

nome_proj

N N

Passo 5: Tipo-relacionamento (N:M)

qtd_horas

27Banco de Dados - 2012-2

Empregado Desenvolve Projeto

cpf_emp

nome_emp

cod_proj

nome_proj

N N

Empregado (cpf_emp, nome_emp)Projeto (cod_proj, nome_proj)

Desenvolve (cpf_emp, cod_proj, qtd_horas)

Passo 5: Tipo-relacionamento (N:M)

qtd_horas

28Banco de Dados - 2012-2

Empregado

Supervisiona

cpf_emp

nome_emp

Tipo-relacionamento Unário

Supervisor

Supervisionado

1

N

29Banco de Dados - 2012-2

Empregado

Supervisiona

cpf_emp

nome_emp

1

Empregado (cpf_emp, nome_emp, supervisor)

Tipo-relacionamento Unário

Supervisor

SupervisionadoN

Passo 6: Atributos multivalorados

• Duas opções de mapeamento

– Para cada atributo multivalorado cria-se uma nova relação

– Para cada valor possível do atributo multivalorado cria-se um atributo monovalorado na mesma relação

30Banco de Dados - 2012-2

Empregado

cpf_emp

nome_emp

telefones

Passo 6: Atributos multivalorados

• Para cada atributo multivalorado cria-se uma nova relação

31Banco de Dados - 2012-2

Empregado

cpf_emp

nome_emp

telefones

Empregado (cpf_emp, nome_emp, supervisor)Telefones (cpf_emp, telefone)

Passo 6: Atributos multivalorados

• Para cada valor possível do atributo multivalorado cria-se um atributo monovalorado na mesma relação

32Banco de Dados - 2012-2

Empregado

cpf_emp

nome_emp

telefones

Empregado (cpf_emp, nome_emp, telefoneRes, telefoneCel)

Passo 7: Tipo-relacionamento ternário

• Modelo Entidade-Relacionamento– Tipo-relacionamento ternário: E1 relacionando com E2 e E3

• Modelo Relacional– A tabela de E1 terá somente os atributos de E1

– A tabela de E2 terá somente os atributos de E2

– A tabela de E3 terá somente os atributos de E3

– A tabela R (relacionamento) terá:• A chave primária de E1

• A chave primária de E2

• A chave primária de E3

• Os atributos do tipo-relacionamento

33Banco de Dados - 2012-2

Mapeamento MER MR

1. Mapear todos os tipos-entidade forte

2. Mapear todos os tipos-entidade fraca

3. Mapear todos os tipos-relacionamento 1:1

4. Mapear todos os tipos-relacionamento 1:N

5. Mapear todos os tipos-relacionamento N:M

6. Mapear todos os atributos multivalorados

7. Mapear todos os tipos-relacionamento de grau > 2

34Banco de Dados - 2012-2

35Banco de Dados - 2012-2

Exemplo

• Empregado (cpf, nome, sigla, inicio, supervisor)

• Departamento (sigla, nome, cpf)

• Dependente (cpf, nome, sexo)

• Projeto (numero, nome)

• Desenvolve (cpf, numero, horas)

• Controla (sigla, numero)

36Banco de Dados - 2012-2

Exercício

• Prática 1 – Exercício 3

37Banco de Dados - 2012-2

Bibliografia

• Elmasri, Ramez; Navathe, Shamkant B. Sistemas de banco de dados. 4 ed. São Paulo: Addison Wesley, 2005, 724 p.

• Slides das Professoras Maria Camila – FACOM/UFU

38Banco de Dados - 2012-2