85
1 4 Projeto de Banco de Dados Carlos Alberto Heuser

4 Projeto de Banco de Dados Carlos Alberto Heuser

Embed Size (px)

Citation preview

1

4Projeto de

Banco de Dados

Carlos Alberto Heuser

2

Abordagem ER

Capítulo 2

©Carlos A. Heuser

3

Abordagem Entidade-Relacionamento

• Técnica para construir modelos conceituais de bases de dados.

• Técnica de modelagem de dados mais difundida e utilizada.

• Criada em 1976, por Peter Chen.

©Carlos A. Heuser 3

4

Abordagem Entidade-Relacionamento

• Padrão de fato para modelagem conceitual.

• Não é única:

– NIAM/ORM (técnica européia da década de 70)

– UML (técnica para modelos orientados a objeto)

• Técnicas de modelagem orientada a objeto (UML) baseiam-se nos

conceitos da abordagem ER

©Carlos A. Heuser 4

5

Abordagem Entidade-Relacionamento

• Modelo de dados é representado através de um

– modelo entidade-relacionamento (modelo ER)

• Modelo ER é representado graficamente

– diagrama entidade-relacionamento (DER)

©Carlos A. Heuser

6

Conceitos centrais da abordagem ER

• Entidade

• Relacionamento

• Atributo

• Generalização/especialização

• Entidade associativa

©Carlos A. Heuser 6

7

Entidade

Entidade

Conjunto de objetos da realidade modelada

sobre os quais deseja-se manter

informações no banco de dados

©Carlos A. Heuser 7

8

Entidade – exemplos

• Sistema de informações industrial:– produtos– tipos de produtos– vendas– compras

• Sistema de contas correntes:– clientes– contas correntes– cheques– agências

©Carlos A. Heuser 8

9

Entidade representa

• Uma entidade pode representar:

– objetos concretos da realidade

(uma pessoa, um automóvel)

– objetos abstratos

(um departamento, um endereço)

©Carlos A. Heuser 9

10

Entidade – representação diagramática

• Representada através de um retângulo.

©Carlos A. Heuser 10

PESSOA

11

Entidade – representação diagramática

• Representada através de um retângulo.

©Carlos A. Heuser 11

PESSOA

Nome da entidade

12

Entidade e instância

• Para referir um objeto particular fala-se em:

– instância ou

– ocorrência de entidade.

©Carlos A. Heuser 12

13

Entidade e instância - terminologias

©Carlos A. Heuser 13

conjunto elemento do conjuntoentidade instância

conjunto de entidades entidadeclasse instância

• Há terminologias conflitantes na literatura

14

Entidade e instância - terminologias

©Carlos A. Heuser 14

conjunto elemento do conjuntoentidade instância

conjunto de entidades entidadeclasse instância

• Há terminologias conflitantes na literatura

terminologia adotada no livro

15

Entidade e instância - terminologias

©Carlos A. Heuser 15

conjunto elemento do conjuntoentidade instância

conjunto de entidades entidadeclasse instância

• Há terminologias conflitantes na literatura

terminologia adotada em textos acadêmicos

em Inglês

16

Entidade e instância - terminologias

©Carlos A. Heuser 16

conjunto elemento do conjuntoentidade instância

conjunto de entidades entidadeclasse instância

• Há terminologias conflitantes na literatura

terminologia de orientação a objetos

17

Propriedades de entidades

• Entidade isoladamente pouco informa.

• É necessário atribuir propriedades às entidades

• Em um modelo ER, propriedades são especificadas através de:

– Relacionamentos

– Atributos

– Generalizações/especializações

©Carlos A. Heuser 17

18

Relacionamento - conceito

Relacionamento

Conjunto de associações entre entidades sobre as quais deseja-se

manter informações na base de dados

©Carlos A. Heuser 18

19

Relacionamento – representação gráfica

©Carlos A. Heuser 19

DEPARTAMENTO LOTAÇÃO EMPREGADO

20

Relacionamento e instância

• Relacionamento é um conjunto de associações entre instâncias de

entidades

• Uma instância (ocorrência) é uma associação específica entre

determinadas instâncias de entidade

• Exemplo (relacionamento LOTAÇÃO):

instância de LOTAÇÃO

=

par específico formado por uma ocorrência de PESSOA e uma

ocorrência de DEPARTAMENTO

©Carlos A. Heuser 20

21

Diagrama de ocorrências

©Carlos A. Heuser 21

p1 p8p7

p5p6p4

p3

p2

p1,d1 p2,d1 p4,d2 p5,d3

d1 d3d2

entidadeEMPREGADO

relacionamentoLOTAÇÃO

entidadeDEPARTAMENTO

22

Auto-relacionamento

©Carlos A. Heuser 22

PESSOA

CASAMENTO

23

Papel no relacionamento

• Função que uma ocorrência de uma entidade cumpre em uma

ocorrência de um relacionamento.

©Carlos A. Heuser 23

marido esposa

papel no relacionamento

PESSOA

CASAMENTO

24

Papel no relacionamento

• Relacionamentos entre entidades diferentes:

– não é usual indicar os papéis das entidades

©Carlos A. Heuser 24

DEPARTAMENTO LOTAÇÃO PESSOA

25

Auto-relacionamentodiagrama de ocorrências

©Carlos A. Heuser 25

p1 p8

p7

p5

p6

p4

p3

p2

p1,p3

p6,p8

maridoesposa

maridoesposa

PESSOA

CASAMENTO

marido esposa

26

Cardinalidade de relacionamentos

• Propriedade importante de um relacionamento:

– Número de ocorrências de uma entidade que podem estar associadas

a uma determinada ocorrência de entidade através do relacionamento

• Chamada de cardinalidade de uma entidade em um relacionamento.

• Há duas cardinalidades:

– máxima

– mínima

©Carlos A. Heuser 26

27

Cardinalidade máxima - valores

• Para projeto de BD relacional:

– não é necessário distinguir entre diferentes cardinalidades máximas

> 1

• Dois valores de cardinalidades máximas são usados:

– cardinalidade máxima: 1

– cardinalidade máxima não limitado (“muitos”),

referida pela letra n

©Carlos A. Heuser 27

28

Cardinalidade máxima no DER

©Carlos A. Heuser 28

LOTAÇÃODEPARTAMENTO EMPREGADOn1

29

Cardinalidade máxima - DER

©Carlos A. Heuser 29

expressa quea uma ocorrência de EMPREGADO (entidade do lado oposto da anotação) pode estar associada no máximo uma (“1”) ocorrência de DEPARTAMENTO

LOTAÇÃODEPARTAMENTO EMPREGADOn1

30

Cardinalidade máxima - DER

©Carlos A. Heuser 30

expressa que não há um limite superior

para o número de ocorrências de EMPREGADO associadas a uma ocorrência

de DEPARTAMENTO

LOTAÇÃODEPARTAMENTO EMPREGADOn1

31

Classificação de relacionamentos

• Cardinalidade máxima pode ser usada para classificar relacionamentos

binários.

• Relacionamento binário:

– é aquele cujas instâncias envolvem duas instâncias de entidades.

• Relacionamentos binários

– n:n (muitos-para-muitos)

– 1:n (um-para-muitos)

– 1:1 (um-para-um)

©Carlos A. Heuser 31

32

Relacionamentos 1:1

©Carlos A. Heuser 32

PESSOA

CASAMENTO

marido1 1

esposa

33

Relacionamentos 1:1

©Carlos A. Heuser 33

EMPREGADO

ALOCAÇÃO

1

1

MESA

34

Relacionamentos 1:n

©Carlos A. Heuser 34

ALUNO INSCRIÇÃO CURSO1n

35

Relacionamentos 1:n

©Carlos A. Heuser 35

EMPREGADO DEPENDENTE1 n

36

Relacionamentos 1:n

©Carlos A. Heuser 36

EMPREGADO DEPENDENTE1 n

Nomenclatura:• uso de verbos• entidades dão o nome

37

Relacionamentos 1:n

©Carlos A. Heuser 37

EMPREGADO

SUPERVISÃO1 n

supervisor supervisionado

38

Relacionamentos n:n

©Carlos A. Heuser 38

ENGENHEIRO ALOCAÇÃO PROJETOn n

39

Relacionamentos n:n

©Carlos A. Heuser 39

MÉDICO CONSULTA PACIENTEn n

40

Relacionamentos n:n

©Carlos A. Heuser 40

PEÇA CAPACIDADE FORNECEDORn n

41

Relacionamentos n:n

©Carlos A. Heuser 41

PRODUTO

COMPOSIÇÃO

n ncomposto componente

42

Relacionamento ternário

©Carlos A. Heuser 42

DISTRIBUIDORCIDADE

PRODUTO

DISTRIBUIÇÃO

43

Cardinalidade de relacionamento ternário

©Carlos A. Heuser 43

1n

n

DISTRIBUIDORCIDADE

PRODUTO

DISTRIBUIÇÃO

44

Cardinalidade de relacionamento ternário

©Carlos A. Heuser 44

1n

n

DISTRIBUIDORCIDADE

PRODUTO

DISTRIBUIÇÃOa cardinalidade “1” refere-se a um par (cidade, fornecedor)

45

Cardinalidade mínima

©Carlos A. Heuser 45

Cardinalidade mínima

Número mínimo de ocorrências de entidade que são associadas a uma ocorrência de uma entidade através

de um relacionamento.

46

Cardinalidade mínima

• Para fins de projeto de BD relacional, são consideradas apenas duas

cardinalidades mínimas:

– cardinalidade mínima 0

– cardinalidade mínima 1

• Denominação alternativa:

– cardinalidade mínima 0 = “associação opcional”

– cardinalidade mínima 1 = “associação obrigatória”

©Carlos A. Heuser 46

47

Cardinalidade mínima - DER

©Carlos A. Heuser 47

EMPREGADO

ALOCAÇÃO

e1e4

e3

e2

e1,m1

e2,m2

(0,1)

(1,1)

MESA

e4,m4

m1 m6m4m3

m2 m5

e3,m6

48

Cardinalidade mínima - DER

©Carlos A. Heuser 48

EMPREGADO

ALOCAÇÃO

e1e4

e3

e2

e1,m1

e2,m2

(0,1)

(1,1)

MESA

e4,m4

m1 m6m4m3

m2 m5

e3,m6cardinalidademínima

49

Exemplo - entidades e relacionamentos

©Carlos A. Heuser 49

DEPARTAMENTO RESPONSÁVEL DISCIPLINA(1,1) (0,n)

ALUNO INSCRIÇÃO CURSO(1,1)(0,n)

DISC-CURSO

(0,n)

(0,n)

PRÉ-REQUIS

(0,n) (0,n)liberadoraliberada

50

Atributo

©Carlos A. Heuser 50

Atributo

Dado ou informação que é associado a cada ocorrência de uma entidade ou de um

relacionamento

51

Atributo

©Carlos A. Heuser 51

PROJETO

tipocódigo

nome

Atributo

Dado ou informação que é associado a cada ocorrência de uma entidade ou de um

relacionamento

52

Atributos com cardinalidade

• Cardinalidade mínima:

– atributo obrigatório (cardinalidade mínima “1”)

• cada entidade possui no mínimo um valor associado

– atributo opcional (cardinalidade mínima “0”)

• Cardinalidade máxima:

– atributo monovalorado (cardinalidade máxima “1”)

• cada entidade possui no máximo um valor associado

– atributo multivalorado (cardinalidade máxima “n”)

©Carlos A. Heuser 52

53

Atributo com cardinalidade

©Carlos A. Heuser 53

CLIENTE

telefone (0,n)código

nome

atributo obrigatórioe monovalorado

-(1,1) é o default

54

Atributo com cardinalidade

©Carlos A. Heuser 54

CLIENTE

telefone (0,n)código

nomeatributo opcionale multivalorado

55

Atributo em relacionamento

©Carlos A. Heuser 55

ENGENHEIRO ATUAÇÃO PROJETO(1,n) (0,n)

Código Nome TítuloFunção Código

56

Atributo em relacionamento 1:n

©Carlos A. Heuser 56

FINANCEIRA FINANCIAMENTO VENDA(0,1)

taxa de juros

(0,n)

nº de parcelas

57

Identificador de entidade

• Cada entidade deve possuir um identificador

©Carlos A. Heuser 57

Identificador de entidade=

conjunto propriedades (atributos, relacionamentos) de uma entidade

cujos valores servem para distinguir uma ocorrência da entidade das demais ocorrências

da mesma entidade

58

Atributo identificador

©Carlos A. Heuser 58

PESSOAendereço

códigonome

PRATELEIRAnúmero da prateleira

capacidadenúmero do corredor

59

Relacionamento identificador

©Carlos A. Heuser 59

EMPREGADO DEPENDENTE(1,1) (0,n)

nomesequênciacódigonúmero de

nome

entidade fraca

60

Relacionamento identificador

©Carlos A. Heuser 60

EMPREGADO DEPENDENTE(1,1) (0,n)

nomesequênciacódigonúmero de

nome

Observar a linha mais

densa

61

Relacionamento identificador (recursão)

©Carlos A. Heuser 61

(1,1)

(0,n)

GRUPO

EMPRESA

código

FILIAL

(1,1)

(0,n)

número da filial

número da empresa

62

Identificador de relacionamento

• Uma ocorrência de relacionamento diferencia-se das demais do

mesmo relacionamento pelas ocorrências de entidades que dela

participam.

©Carlos A. Heuser 62

ENGENHEIRO ALOCAÇÃO PROJETOn n

63

Relacionamento com atributo identificador

©Carlos A. Heuser 63

MÉDICO CONSULTA PACIENTE(1,n) (0,n)

data/hora

64

Generalização/especialização

• Conceito permite:

– atribuir propriedades particulares

a um subconjunto das ocorrências (especializadas)

de uma entidade genérica.

©Carlos A. Heuser 64

65

Generalização/especialização

©Carlos A. Heuser 65

CLIENTE

PESSOAJURÍDICA

nomecódigo

CIC CGC

FILIAL(1,1) (0,n)

sexo tipo deorganização

PESSOAFÍSICA

66

Generalização/especialização

©Carlos A. Heuser 66

nomecódigo

CIC CGC

FILIAL(1,1) (0,n)

sexo tipo deorganização

Símbolo da generalização-especialização

CLIENTE

PESSOAFÍSICA

PESSOAJURÍDICA

67

Generalização/especialização

©Carlos A. Heuser 67

nomecódigo

CIC CGC

FILIAL(1,1) (0,n)

sexo tipo deorganização

CLIENTE

Entidadegenérica

PESSOAFÍSICA

PESSOAJURÍDICA

68

Generalização/especialização

©Carlos A. Heuser 68

nomecódigo

CIC CGC

FILIAL(1,1) (0,n)

sexo tipo deorganização

CLIENTE

PESSOAFÍSICA

Entidadeespecializada

PESSOAJURÍDICA

69

Generalização/especialização

©Carlos A. Heuser 69

nomecódigo

CIC CGC

FILIAL(1,1) (0,n)

sexo tipo deorganização

CLIENTE

PESSOAFÍSICA

Herda aspropriedades da entidade

genérica PESSOAJURÍDICA

70

Generalização/especialização

©Carlos A. Heuser 70

PESSOAFÍSICA

nomecódigo

CIC CGC

FILIAL(1,1) (0,n)

sexo tipo deorganização

Identificador somente na

entidade genérica

CLIENTE

PESSOAJURÍDICA

71

Generalização/especialização (recursão)

©Carlos A. Heuser 71

BARCOVEÍCULO ANFÍBIO

VEÍCULO

AUTOMÓVEL

VEÍCULOAQUÁTICO

VEÍCULOTERRESTRE

72

Generalização/especialização (recursão)

©Carlos A. Heuser 72

BARCOVEÍCULO ANFÍBIO

VEÍCULO

AUTOMÓVEL

VEÍCULOAQUÁTICO

VEÍCULOTERRESTRE

Herançamúltipla

73

Generalização/especialização (recursão)

©Carlos A. Heuser 73

BARCOVEÍCULO ANFÍBIO

VEÍCULO

AUTOMÓVEL

VEÍCULOAQUÁTICO

VEÍCULOTERRESTRE

A árvore de herança deve ter uma única entidade raiz, que define o identificador.

74

Generalização/especialização (recursão)

©Carlos A. Heuser 74

BARCOVEÍCULO ANFÍBIO

VEÍCULO

AUTOMÓVEL

VEÍCULOAQUÁTICO

VEÍCULOTERRESTRE

A árvore de herança deve ter uma única entidade, que define o identificador.

Identificador de veículo definido

aqui

75

Generalização/especialização (recursão)

©Carlos A. Heuser 75

BARCOVEÍCULO ANFÍBIOAUTOMÓVEL

VEÍCULOAQUÁTICO

VEÍCULOTERRESTRE

Caso proibido: • Herança de múltiplos identificadores.

76

Generalização/especialização (recursão)

©Carlos A. Heuser 76

BARCOVEÍCULO ANFÍBIOAUTOMÓVEL

VEÍCULOAQUÁTICO

VEÍCULOTERRESTRE

Caso proibido: • Herança de múltiplos identificadores.

Qual seria oidentificador

desta entidade?

77

Especialização total

©Carlos A. Heuser 77

nomecódigo

CIC CGCsexo tipo deorganização

CLIENTE

PESSOAFÍSICA

PESSOAJURÍDICA

t indica que todo CLIENTE éou PESSOA FÍSICAou PESSOA JURíDICA

78

Especialização parcial

©Carlos A. Heuser 78

FUNCIONÁRIO

MOTORISTA SECRETÁRIA

ptipo defuncionário indica que nem todo

FUNCIONÁRIO éMOTORISTA ouSECRETÁRIA

79

Especialização parcial

©Carlos A. Heuser 79

FUNCIONÁRIO

MOTORISTA SECRETÁRIA

ptipo defuncionário

necessário em especialização

parcial

80

Especialização não exclusiva (compartilhada)

©Carlos A. Heuser 80

ALUNOFUNCIONÁRIO

PESSOA

PROFESSOR

c

Uma instância de PESSOApode aparecer em mais deuma de suas especializações

81

Tipos de generalizações/especializações

81

82

Entidade associativa

• Modificar modelo:

– Adicionar a informação de que medicamentos foram prescritos em

uma consulta.

©Carlos A. Heuser 82

MÉDICO CONSULTA PACIENTEn n

83

Incluindo o relacionamento de PRESCRIÇÃO

©Carlos A. Heuser 83

MEDICAMENTO

PRESCRIÇÃO

n

n

MÉDICO PACIENTECONSULTAn n

PRESCRIÇÃO liga com?

84

Substituindo relacionamento por entidade

©Carlos A. Heuser 84

MEDICAMENTO

PRESCRIÇÃO

CONSULTA

(1,1)

n n

(1,1)

n

n

MÉDICO PACIENTE

85

Entidade associativa

©Carlos A. Heuser 85

MEDICAMENTO

PRESCRIÇÃO

n

n

MÉDICO PACIENTECONSULTAn n

entidade associativa