38
Modelagem Conceitual de Banco de Dados Banco de Dados I

Modelagem Entidade Relacionamento

Embed Size (px)

DESCRIPTION

Banco de dados

Citation preview

Page 1: Modelagem Entidade Relacionamento

Modelagem Conceitual de Banco de Dados

Banco de Dados I

Page 2: Modelagem Entidade Relacionamento

Projeto de Banco de Dados

• Modelo Conceitual

• Independente de modelo de dados

• Independente de SGBD

• Independente de plataforma de hardware ou sistema operacional

• Ex.: Diagrama entidade-relacionamento (E-R) e diagrama de classes

• Modelo Lógico• Independente de SGBD

dentro do modelo de dados

• Independente de plataforma de hardware ou sistema operacional

• Específico para cada modelo de dados.

• Ex.: Modelo relacional, XML, orientado a objetos, NoSQL

2

• Modelo Físico

• Scripts de geração do BD.

• Específico para cada SGBD

• Algumas dependências em função de sistema operacional e de hardware (centralizado x distribuido, cluster, grid, etc.)

• Ex.: SQL

Page 3: Modelagem Entidade Relacionamento

Modelagem conceitual

• Primeira etapa do projeto de banco de dados• Objetivo: Representar os elementos do mundo real que

são do interesse da aplicação para a qual o banco de dados está sendo gerado, com suas características e seus relacionamentos.

• Não considera nenhum aspecto de implementação.– Mais fácil de uma pessoa não técnica entender;

– Mais fácil de dar manutenção (acrescentar elementos ou corrigir erros);

– Não depende de modelo de dados (se hoje eu uso BD relacional e amanhã resolvo usar BD XML, o modelo conceitual é o mesmo)

3

Page 4: Modelagem Entidade Relacionamento

Diagrama Entidade-Relacionamento (ER)

• Proposto por Peter Chen

• Mais popular forma de modelagem conceitual

• Construtores (componentes)– Entidades– Atributos– Relacionamentos

4

Page 5: Modelagem Entidade Relacionamento

Diagrama E-R: Entidades

• Construtor principal do E-R: – Representa qualquer conjunto de elementos

semelhantes do mundo real que deve ter suas informações armazenadas para serem manipuladas pela aplicação.

• Notação gráfica:

5

Nome

Page 6: Modelagem Entidade Relacionamento

• Exemplo: Para uma loja, temos:

Diagrama E-R: Entidades

6

Produto

Vendedor

CamisaCamisa CalçaCalça

CamisetaCamiseta

PedroPedro

LuizaLuiza

instâncias

instâncias

Page 7: Modelagem Entidade Relacionamento

Diagrama E-R: Atributos

• Construtor auxiliar do E-R– Representa uma característica da entidade (ou

relacionamento) de interesse da aplicação sendo desenvolvida.

– É um dado que é associado a cada ocorrência (instância) de uma entidade (ou relacionamento)

– Somente existe se associado a uma entidade (ou relacionamento)

• Notação gráfica: 7

Page 8: Modelagem Entidade Relacionamento

• Exemplo: Para os produtos da loja, temos:

Diagrama E-R: Atributos

8

Camisa29,90Azul

Camisa29,90Azul

Calça39,50Preto

Calça39,50Preto

Camiseta15.90

Amarelo

Camiseta15.90

Amarelo

instâncias

item preco

Produto

cor

Page 9: Modelagem Entidade Relacionamento

Diagrama E-R: Atributos• Atributo identificador

– Identifica unicamente cada indivíduo (instância) de uma entidade.– Não pode ter seus valores repetidos

• CPF de uma entidade pessoa• Matricula de uma entidade aluno• Código de uma entidade produto

• Atributo identificador composto– Ocorre quando o identificador de uma entidade é compostos de mais de um

atributo.– Neste caso, o que não pode se repetir é a combinação dos valores dos

atributos que compõem o identificador.

• Importante: Cada entidade tem somente 1 identificador, que pode ser simples (1 atributo) ou composto (mais de 1 atributo)

9

Page 10: Modelagem Entidade Relacionamento

• Exemplos de atributos identificadores

Diagrama E-R: Atributos

item preco

Produto

codigo

Codigo Item Preco

Prod1 Camiseta 15,90

Prod2 Camisa 29,90

Prod3 Camisa 15,90

Prod3 Bermuda 25,90

Errado, pois repete o valor de código, que é identificador

RG orgao

Cliente

nome

RG Orgao Nome

123 SJS João

123 SSP Maria

357 SJS Pedro

123 SJS Carlos

468 SSP Maria

Errado, pois repete o valor do par (RG,orgao), que é o identificador de cliente

Page 11: Modelagem Entidade Relacionamento

Diagrama E-R: Atributos

• Atributo composto

11

Nome

Cliente

CPF

email

CEP

endereco

codigo

bairro

rua

Não possuem equivalentes no modelo relacional deverão virar entidades

Nome

Cliente

CPF

email

enderecorua

Bairro

CEP

Page 12: Modelagem Entidade Relacionamento

Diagrama E-R: Atributos

• Atributo multivalorado

12

Nome

Cliente

CPF

Email (N)

Telefone (0..N)

Não possuem equivalentes no modelo relacional deverão virar entidades

Nome

Cliente

CPF

Email (N)

codigonumero

Telefone

1

n

Page 13: Modelagem Entidade Relacionamento

Diagrama E-R: Relacionamentos

• Construtor auxiliar do E-R– Representa uma associação, ou relação, entre

entidades.• Venda TEM cliente• Vendedor FAZ venda

• Notação gráfica:

13

nome

Page 14: Modelagem Entidade Relacionamento

Diagrama E-R: Relacionamentos

• Relacionamento binário– Tipo mais comum de relacionamento, e único

implementado no modelo relacional– Tem sempre duas extremidades, cada uma ligada a

uma (ocorrência de) entidade

• Exemplos

14

Cliente

CPF

codigo

possui endereco

Cliente

codigo

NF Venda

Page 15: Modelagem Entidade Relacionamento

Diagrama E-R: Relacionamentos

• Auto relacionamento– Caso particular de relacionamento binário– As duas extremidades estão ligadas à mesma

entidade

• Exemplo

CPF

gerenciaFuncionário

Page 16: Modelagem Entidade Relacionamento

Diagrama E-R: Cardinalidades

• Quantificam os relacionamentos– Para cada instância da entidade A, quantas

instâncias da entidade B podem estar associadas e vice-versa

temA B1..1 0..N

mínimo máximo

Page 17: Modelagem Entidade Relacionamento

Diagrama E-R: Cardinalidades

• Mínimo– Número mínimo de

ocorrências de instâncias da entidade para cada ocorrência de instâncias da entidade associada

– 0 Opcional– 1 Obrigatório

• Máximo– Número máximo de

ocorrências de instâncias da entidade para cada ocorrência de instâncias da entidade associada

– 1 Único– N Múltiplo (vários)

Page 18: Modelagem Entidade Relacionamento

Diagrama E-R: Cardinalidades

• Nome das cardinalidades– Somente considerar cardinalidades máximas de cada lado

temA B1 1

temA B1 N

temA BN N

Um-para-um

Um-para-N

N-para-N

Page 19: Modelagem Entidade Relacionamento

Diagrama E-R: Relacionamento Identificador

• Ocorre somente em relacionamentos de cardinalidade 1-para-N– Usado quando, para identificar unicamente um

indivíduo da entidade do lado N, somente seu identificador não basta

– Nem todo 1-para-N é identificador

• Exemplo

temPredio Sala1 N

codPredio numSala

Page 20: Modelagem Entidade Relacionamento

Diagrama E-R: Equivalência de relacionamentos

EQUIVALE A

Funcionario FuncProj1 N

CPF

codProjparticipaFuncionario Projeto

N N

CPF

Projeto

CodProj

N 1

Page 21: Modelagem Entidade Relacionamento

Diagrama E-R: Atributos em relacionamentos

• Ocorre, em geral, em relacionamentos de cardinalidade N-para-N– Pode ocorrer em 1-para-N, mas não é usual

• Serve para caracterizar uma ocorrência de uma associação entre as entidades relacionadas– Muito usado para armazenar históricos

Page 22: Modelagem Entidade Relacionamento

Diagrama E-R: Atributos em relacionamentos

• Exemplo

– Como saber a nota que um determinado aluno tirou em uma determinada disciplina?

– Como fazer para que um aluno possa cursar uma disciplina mais de uma vez (por exemplo, se for reprovado?)

temAluno DisciplinaN N

Matricula codDisciplina

nomeDisciplinacreditos

nome

Page 23: Modelagem Entidade Relacionamento

Diagrama E-R: Atributos em relacionamentos

• Exemplo

– O atributo do relacionamento pode ser identificador ou não identificador

temAluno DisciplinaN N

Matricula codDisciplina

nomeDisciplinasemestre

nome nota

Page 24: Modelagem Entidade Relacionamento

Exercício 1• Um aeroporto deve modernizar seu sistema de controle de partidas

e chegadas e aeronaves. Devem estar cadastradas as companhias aéreas que nele operam, contendo as informações de nome da companhia, telefone de contato e nome do contato. Cada vôo pertence a uma companhia aérea, e possui um número de vôo, horário (chegada se o aeroporto for o destino, ou partida se o aeroporto for a origem) e a cidade de onde ele vem ou para onde ele vai. Para tanto, um simples campo na tabela vôo chamado “tipo” é suficiente. As cidades de destino/origem dos vôos devem estar cadastradas. Cada uma possui um nome e telefone de contato. Não esqueça que um vôo pode ter escalas. Para cada escala, é suficiente saber a cidade.

24

Page 25: Modelagem Entidade Relacionamento

Exercício 2• Um professor deseja criar um sistema para registro das notas dos

seus alunos, nas diferentes disciplinas que ele ministra. Para isso, pediu que você modele o banco de dados. Os alunos deste professor devem ser cadastrados, com numero de matricula, nome, email e curso que ele faz. Os alunos se matriculam em turmas de disciplinas. Cada turma é identificada pelo semestre em que ocorre, o turno (2N, 4T, 7M, etc.) e a disciplina a qual pertence. Uma disciplina possui um código, um nome e um número de créditos. No final do semestre, o professor registra a note que o aluno tirou na turma em que ele se matriculou.

25

Page 26: Modelagem Entidade Relacionamento

Relacionamentos de grau maior que 2

• Como ler as cardinalidades?– Sempre fixa-se uma entidade e confronta-se ela contra

todas as outras– Vale para relacionamentos de qualquer grau

26

temProduto DistribuidorN 1

codProd codDistribuidor

nome

descricao

Cidade

N

codCidade

nome

Page 27: Modelagem Entidade Relacionamento

Relacionamentos de grau maior que 2

• Para cada par (cidade, produto), tem-se 1 distribuidor• Para cada par (distribuidor, cidade), tem-se vários (N) produtos• Para cada par (distribuidor, produto) tem-se várias (N) cidades

27

temProduto DistribuidorN 1

codProd codDistribuidor

nome

descricao

Cidade

N

codCidade

nome

Page 28: Modelagem Entidade Relacionamento

Relacionamentos de grau maior que 2• Não representado no modelo relacional• Equivalente (+/-)

28

Produto Distribuidor1

codProd

codDistribuidor

nomedescricao

Cidade

N

codCidade

nome

vendaN

N

N

N

Page 29: Modelagem Entidade Relacionamento

Entidade Associativa

• Sistema funciona OK, mas agora é preciso guardar os medicamentos prescritos em uma consulta

29

consultaMedico PacienteN

CREMERS CPF

nome

nome

N

MedicamentocodAnvisa

nome

prescreve?

Page 30: Modelagem Entidade Relacionamento

Entidade Associativa

• Só fazer isso em caso de manutenção!

30

consultaMedico PacienteN

CREMERS CPF

nome

nome

N

MedicamentocodAnvisa

nome

prescreve

N

NEntidade associativa

Page 31: Modelagem Entidade Relacionamento

Entidade Associativa

• Equivalente

31

atendeMedico PacienteN

CREMERS

CPF

nome

nome

N

MedicamentocodAnvisa

nome

prescreve

N

N

fazconsulta1 1

Page 32: Modelagem Entidade Relacionamento

Generalização / especialização

• Útil quando – (a) Há 1 ou mais entidades que possuem

todos os atributos e relacionamentos de uma outra entidade e, adicionalmente, alguns atributos e/ou relacionamentos próprios

– (b) Há 2 ou mais entidades que têm grande parte dos atributos e relacionamentos iguais, e alguns diferentes

32

Page 33: Modelagem Entidade Relacionamento

Generalização / Especialização

Funcionariomatricula

nome

Professorhoras

titulacao

(a)Setor

email telefone

trabalha

N 1

codSetor

nome

nivel

disciplinaleciona

N N

nome

codDisc

creditos

especialização

Entidade especializada

Entidade genérica

Page 34: Modelagem Entidade Relacionamento

Generalização / Especialização

Pessoamatricula

nome

Professorhoras

titulacao

(b)email telefone

nivel

disciplina

leciona

N

N

nome

codDisc

creditosespecialização

Entidades especializada

s

Entidade genérica

Aluno

anoIngresso

curso

Page 35: Modelagem Entidade Relacionamento

Generalização / especialização

• Uma entidade especializada HERDA todos os atributos e relacionamentos da entidade genérica

• Uma entidade especializada NÃO tem atributo identificador próprio. É o mesmo da entidade genérica

35

Page 36: Modelagem Entidade Relacionamento

Generalização / Especialização

Pessoa

Professor

Qual a diferença?

Aluno

Pessoa

JurídicaFísica

Especialização não-exclusiva Especialização exclusiva

Page 37: Modelagem Entidade Relacionamento

Exercício 3

37

Deseja-se criar um banco de dados para uma pet shop.Cada animal recebe um código. Além disso, de cada animal é necessário saber seu nome, espécie, idade, dono e telefone. Cada espécie tem um código, um nome, informação de porte e temperamento (dócil, agressivo, etc.)Cada vez que um animal vai à pet shop ele faz um atendimento, do qual deve-se saber a data, hora e preço. No caso do atendimento ser estético, deve-se saber o shampoo a ser utilizado, o tipo de tosa (se for o caso) e alguma observação. Se o atendimento for veterinário, é necessário saber o motivo (descrição) e o encaminhamento (se houver), além do veterinário responsável.De cada veterinário é deve-se saber o nome e o CRV (número no conselho regional de veterinária).

Page 38: Modelagem Entidade Relacionamento

Exercício 4

38

Uma academia de musculação está criando um programa para controlar os exercícios e a evolução dos seus alunos. Desta forma, deve-se criar um banco de dados que armazene as informações a seguir: De cada aluno matriculado é necessário saber seu CPF, nome, data de nascimento, altura e sexo. Periodicamente, deve ser realizada uma avaliação nele para saber seu peso, percentual de massa magra e percentual de gordura. Obviamente, é necessário saber quando este exame foi realizado.Cada exame é supervisionado por um instrutor, do qual deseja-se saber o nome. Se o instrutor for um professor, então é necessário guardar seu número de registro no conselho regional de educação física e sua especialidade (se tiver). Se o instrutor for um estagiário, é necessário saber seu curso e em qual semestre está. No caso de um estagiário, é importante saber qual professor é seu supervisor. Um mesmo professor pode supervisionar diversos estagiários. Cada aluno faz um conjunto de exercícios em seu treino, e para cada um deles deve-se saber quantas séries e quantas repetições ele faz (por exemplo, 3 séries de 100 para abdominais, 3 séries de 15 para ‘elevação lateral’, etc.). Obviamente, um mesmo exercício é realizado por diversos alunos, e cada um possui sua própria série e número de repetições. De cada exercício é necessário guardar seu nome, o grupo muscular que ele trabalha e equipamento usado para realizá-lo. De cada equipamento é necessário saber seu nome e tipo (fixo, móvel). Um equipamento pode ser usado para mais de um exercício.