63
Projeto de Banco de Dados Ceça Moraes Dezembro/ 09

Projeto de Banco de Dados Ceça Moraes Dezembro/09

Embed Size (px)

Citation preview

Page 1: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Projeto de Banco de Dados

Ceça Moraes Dezembro/09

Page 2: Projeto de Banco de Dados Ceça Moraes Dezembro/09

ConteúdoTransformação ER para relacional

04/2

7/23

2

Page 3: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Onde estamos??? 04/2

7/23

3

Page 4: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Transformações ER/Relacional

Page 5: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Transformações entre Modelos 04

/27/

23

5

Page 6: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Passos Transformação ER/Relacional

1. Tradução inicial de entidades e respectivos atributos

2. Tradução de relacionamentos e respectivos atributos

3. Tradução de generalizações/especializações

04/2

7/23

6

Page 7: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Passos Transformação ER/Relacional

1. Tradução inicial de entidades e respectivos atributos

2. Tradução de relacionamentos e respectivos atributos

3. Tradução de generalizações/especializações

04/2

7/23

7

Page 8: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Entidade 04/2

7/23

8

Page 9: Projeto de Banco de Dados Ceça Moraes Dezembro/09

EntidadeRelacionamento Identificador

04/2

7/23

9

Page 10: Projeto de Banco de Dados Ceça Moraes Dezembro/09

EntidadeRelacionamento Identificador

04/2

7/23

10

Page 11: Projeto de Banco de Dados Ceça Moraes Dezembro/09

EntidadeRelacionamento Identificador

04/2

7/23

11

Page 12: Projeto de Banco de Dados Ceça Moraes Dezembro/09

EntidadeRelacionamento Identificador

04/2

7/23

12

Page 13: Projeto de Banco de Dados Ceça Moraes Dezembro/09

EntidadeRelacionamento Identificador

04/2

7/23

13

Page 14: Projeto de Banco de Dados Ceça Moraes Dezembro/09

EntidadeRelacionamento Identificador

04/2

7/23

14

Page 15: Projeto de Banco de Dados Ceça Moraes Dezembro/09

EntidadeRelacionamento Identificador

04/2

7/23

15

Page 16: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Passos Transformação ER/Relacional

1. Tradução inicial de entidades e respectivos atributos

2. Tradução de relacionamentos e respectivos atributos

3. Tradução de generalizações/especializações

04/2

7/23

16

Page 17: Projeto de Banco de Dados Ceça Moraes Dezembro/09

RelacionamentosOpções de implementação:–Tabela própria–Adição de colunas a uma das

tabelas–Fusão de tabelasA alternativa usada depende da cardinalidade (máxima e mínima do relacionamento)

04/2

7/23

17

Page 18: Projeto de Banco de Dados Ceça Moraes Dezembro/09

RelacionamentosTabela Própria 04

/27/

23

18

Page 19: Projeto de Banco de Dados Ceça Moraes Dezembro/09

RelacionamentosAdição de Colunas 04

/27/

23

19

Page 20: Projeto de Banco de Dados Ceça Moraes Dezembro/09

RelacionamentosAdição de Colunas 04

/27/

23

20

Page 21: Projeto de Banco de Dados Ceça Moraes Dezembro/09

RelacionamentosFusão de Tabelas 04

/27/

23

21

Page 22: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Ceça

Mor

aes

22

Relacionamentos 1:1

OK

OK

OKOK

Não

Não

Não

Não +-

Page 23: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Ceça

Mor

aes

23

Relacionamentos 1:N

OKNão

OK NãoOKOKOK Não

NãoNão

NãoNão

NãoNão

Page 24: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Ceça

Mor

aes

24

Relacionamentos N:N

OK Não

OK NãoNãoNão

OKOK

NãoNãoNão

Page 25: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Passos Transformação ER/Relacional

1. Tradução inicial de entidades e respectivos atributos

2. Tradução de relacionamentos e respectivos atributos

3. Tradução de generalizações/especializações

04/2

7/23

25

Page 26: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Generalização/Especialização

Duas alternativas básicas:–uma tabela para cada entidade–uma única tabela para toda

hierarquia

Outra alternativa (exótica):–Subdivisão de entidade genérica

04/2

7/23

26

Page 27: Projeto de Banco de Dados Ceça Moraes Dezembro/09

04/2

7/23

27

Page 28: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Uma Única Tabela para Hierarquia

Todas tabelas referentes às especializações são fundidas em uma única tabela, contendo:– Chave primária correspondente ao identificador

da entidade mais genérica– Caso não exista, uma coluna Tipo– Uma coluna para cada atributo da entidade

genérica– Colunas referentes aos relacionamentos (1:N

ou 1:1) dos quais participa a entidade genérica– Uma coluna para cada atributo de cada

entidade especializada (opcional)– Colunas referentes aos relacionamentos (1:N

ou 1:1) dos quais participa cada entidade especializada (campo opcional)

04/2

7/23

28

Page 29: Projeto de Banco de Dados Ceça Moraes Dezembro/09

04/2

7/23

29Tabela Única da Hierarquia

Entidades Relacionadas

Page 30: Projeto de Banco de Dados Ceça Moraes Dezembro/09

04/2

7/23

30Tabela Única da Hierarquia

Relacionamentos

Page 31: Projeto de Banco de Dados Ceça Moraes Dezembro/09

04/2

7/23

31Tabela Única da Hierarquia

Tabela da Hierarquia

Page 32: Projeto de Banco de Dados Ceça Moraes Dezembro/09

04/2

7/23

32Tabela Única da Hierarquia

identificador da Tabela da Hierarquia

Page 33: Projeto de Banco de Dados Ceça Moraes Dezembro/09

04/2

7/23

33Tabela Única da Hierarquia

Coluna de Tipo

Page 34: Projeto de Banco de Dados Ceça Moraes Dezembro/09

04/2

7/23

34Tabela Única da Hierarquia

Atributos Entidade Genérica

Page 35: Projeto de Banco de Dados Ceça Moraes Dezembro/09

04/2

7/23

35Tabela Única da Hierarquia Relacionamento Entidade Genérica

Page 36: Projeto de Banco de Dados Ceça Moraes Dezembro/09

04/2

7/23

36Tabela Única da Hierarquia

Atributos Especializações

Page 37: Projeto de Banco de Dados Ceça Moraes Dezembro/09

04/2

7/23

37Tabela Única da Hierarquia

Atributos Especializações

Page 38: Projeto de Banco de Dados Ceça Moraes Dezembro/09

04/2

7/23

38Tabela Única da Hierarquia Relacionamentos Especializações

Page 39: Projeto de Banco de Dados Ceça Moraes Dezembro/09

04/2

7/23

39Tabela Única da Hierarquia

Resultado

Page 40: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Uma Tabela por Especialização

Criar uma tabela para cada entidade da hierarquia

Incluir a chave primária da tabela da entidade genérica, em cada tabela correspondente a uma entidade especializada

04/2

7/23

40

Page 41: Projeto de Banco de Dados Ceça Moraes Dezembro/09

04/2

7/23

41Uma Tabela por Especialização

Raiz da Hierarquia

Page 42: Projeto de Banco de Dados Ceça Moraes Dezembro/09

04/2

7/23

42Uma Tabela por Especialização

Entidades Especializadas

Page 43: Projeto de Banco de Dados Ceça Moraes Dezembro/09

04/2

7/23

43Uma Tabela por Especialização

Entidades Especializadas

Page 44: Projeto de Banco de Dados Ceça Moraes Dezembro/09

04/2

7/23

44Uma Tabela por Especialização

Entidades Especializadas

Page 45: Projeto de Banco de Dados Ceça Moraes Dezembro/09

04/2

7/23

45Uma Tabela por Especialização

Entidades Especializadas

Page 46: Projeto de Banco de Dados Ceça Moraes Dezembro/09

04/2

7/23

46Uma Tabela por EspecializaçãoRelacionamento Entidade Especializada

Page 47: Projeto de Banco de Dados Ceça Moraes Dezembro/09

04/2

7/23

47Uma Tabela por Especialização

Entidade Especializada

Page 48: Projeto de Banco de Dados Ceça Moraes Dezembro/09

04/2

7/23

48Uma Tabela por Especialização

Resultado

Page 49: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Tabela ÚnicaVantagens

Dados referentes à entidade genérica + dados referentes às especializações:–em uma única linha.Minimiza junções.Menor número de chaves.

04/2

7/23

49

Page 50: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Uma Tabela por EntidadeVantagens

Não tem colunas opcionais:–apenas aquelas referentes a

atributos opcionais

04/2

7/23

50

Page 51: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Subdivisão da Entidade Genérica

Uma tabela para cada entidade especializada

A tabela contém:–dados da entidade especializada– +–dados da entidade genérica.

04/2

7/23

51

Page 52: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Subdivisão da Entidade Genérica 04

/27/

23

52

Page 53: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Subdivisão da Entidade Genérica 04

/27/

23

53

Page 54: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Subdivisão da Entidade Genérica 04

/27/

23

54

Page 55: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Subdivisão da Entidade Genérica 04

/27/

23

55

Page 56: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Subdivisão da Entidade GenéricaDesvantagens

Unicidade do identificador de empregado:–não é garantida pelo SGBD;– deve ser garantida pela aplicação.Não há como especificar ao SGBD restrições de integridade referenciais, que façam referência ao conjunto de empregados como um todo

04/2

7/23

56

Page 57: Projeto de Banco de Dados Ceça Moraes Dezembro/09

ReferênciasProjeto de Banco de Dados – Carlos Alberto Heuser, Capítulos 3, 4 e 5

04/2

7/23

57

Page 58: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Exercícios

Page 59: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Lista de ExercíciosPara os exercícios 1 e 2 a seguir, pede-se:–Dado o DER e conjunto de

atributos de cada entidade e relacionamento no DER, construa o modelo lógico correspondente

04/2

7/23

59

Page 60: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Exercício 1 - DER 04/2

7/23

60

(0,n)

Page 61: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Exercício 1 - AtributosProduto– Número, NomeComercial, TipoEmbalagem, Quantidade,

PreçoUnitárioFabricante– CGC,Nome,Endereço

Medicamento– Tarja,Fórmula

Perfumaria– Tipo

Venda– Data, NúmeroNota, NomeCliente, CidadeCliente

PerfumariaVenda– Quantidade, Imposto

MedicamentoReceitaVenda– Quantidade, Imposto

ReceitaMédica – CRM,Número,Data

04/2

7/23

61

Page 62: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Exercício 2 - DER 04/2

7/23

62

Page 63: Projeto de Banco de Dados Ceça Moraes Dezembro/09

Exercício 2 - AtributosEscritório – Número, Local

Cliente – NúmeroCartMotorista, EstadoCartMotorista, Nome,

Endereço, TelefoneContrato aluguel – Número, Data, Duração

Veículo – Número, DataPróximaManutenção, Placa

Tipo de Veículo – Código, Nome, ArCondicionado

Automóvel – NúmeroPortas, DireçãoHidráulica, CâmbioAutomático, Rádio

Ônibus – NúmeroPassageiros, Leito, Sanitário

04/2

7/23

63