Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa...

34
Projeto de Bancos de Dados Compreende três etapas: 1) Modelagem Conceitual (Projeto Conceitual): - Modelo de dados abstrato - Define os dados do domínio - Independente do SGBD 2) Projeto Lógico - Define como o modelo conceitual será implementado no SGBD específico - Tabelas, Campos.. 3) Projeto Físico - Detalhes que influenciam no desempenho do BD, mas não interferem em suas funcionalidades - É um processo contínuo e bem específico de cada SGBD - Índices, stored procedures...

Transcript of Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa...

Page 1: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Projeto de Bancos de Dados

• Compreende três etapas:1) Modelagem Conceitual (Projeto Conceitual):

- Modelo de dados abstrato - Define os dados do domínio- Independente do SGBD

2) Projeto Lógico- Define como o modelo conceitual será implementado no

SGBD específico - Tabelas, Campos..

3) Projeto Físico- Detalhes que influenciam no desempenho do BD, mas

não interferem em suas funcionalidades- É um processo contínuo e bem específico de cada SGBD- Índices, stored procedures...

Page 2: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Modelagem Conceitual

• Descrição abstrata dos dados do domínio que serão armazenados no BD

• É independente de SGBD

• Representação visual de fácil Compreensão

Page 3: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Modelo Entidade-Relacionamento

• Criado em 1976 por Peter Chen• É a técnica de modelagem de dados

mais difundida e aceita (padrão)• Representação gráfica de fácil

compreensão: diagrama entidade-relacionamento (DER)– Usa conceitos simples para definir

domínio

Page 4: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Exemplo Diagrama ER

Page 5: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Conceitos do Modelo ER

• Entidade– Representa um Conjunto de objetos do

mundo real que deseja-se armazenar no BD

– Símbolo: Retângulo com o nome da entidade

Autores João

(representação gráfica) (interpretação)

Maria

Pedro

Felipe

Page 6: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Conceitos do Modelo ER

• Relacionamento– Conjunto de associações entre

ocorrências de entidades– Símbolo: losango nomeado interligando

as entidades do relacionamento

Autores

(representação gráfica)

Livrosautoria

Page 7: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

João

Maria

Pedro

Felipe

Conceitos do Modelo ER

(interpretação)

João, BD Pedro,MCFelipe, MC

BDMC

entidadeAutores

relacionamentoautoria

entidadeLivros

MER

Page 8: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Conceitos do Modelo ER

• Auto-Relacionamento– Relacionamento entre ocorrências de uma mesma

entidade– Exige que papéis sejam definidos

Bibliotecárias

supervisãoSupervisionada Supervisora

Page 9: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Conceitos do Modelo ER

Rita Ana

Carla

Paula

Maria

Rita,Maria

Paula,Ana

supervisorsupervisionado

supervisor

supervisionado

(interpretação)

entidadeBibliotecárias

relacionamentoSUPERVISÃO

Page 10: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Conceitos do Modelo ER

• No relacionamento deve-se definir:– Cardinalidade máxima: número

máximo de entidades associadas a uma ocorrência da entidade em questão, através do relacionamento (1 ou N)

Editoras Livrospublicacao1 N

“Uma editora pode publicar N livros. Um livro é publicado por no máximo 1 editora.”

Page 11: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Conceitos do Modelo ER

• Exemplos de Cardinalidades Máximas:

Autores LivrosautoriaN N

Bibliotecárias Áreascontrole1 1

Bibliotecárias

supervisãoSupervisionada Supervisora

(0,N)(1,1)

Page 12: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Conceitos do Modelo ER

• No relacionamento deve-se definir:– Cardinalidade mínima: número mínimo de entidades

associadas a uma ocorrência da entidade em questão, através do relacionamento (0 ou 1)

– Indica a participação opcional (0) ou obrigatória (1) das ocorrências no relacionamento

– Notação de cardinalidades: (mínima, máxima)

Editoras Livrospublicacao(1,1) (0,N)

“Uma editora pode publicar N livros. Um livro é obrigatoriamente publicado por no máximo 1 editora.”

Page 13: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Conceitos do Modelo ER

• Exemplos de cardinalidades mínimas e máximas

Editoras Livrospublicacao(1,1) (0,N)

Autores Livrosautoria(1,N) (0,N)

Bibliotecárias Áreascontrole(1,1) (0,1)

Page 14: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Conceitos do Modelo ER• Relacionamentos entre duas entidades é

chamado Relacionamento Binário• Relacionamento “N”-ário: relacionamento

entre “N” entidades– Exemplo: Relacionamento Ternário (a cardinalidade é

dada aos pares)

Cidades Distribuidoresdistribuição

Produtos

(0,1)

(0,N)

(0,N)

“Um produto em uma cidade pode ser entregue por no máximo 1 distribuidor.”

Page 15: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Conceitos do Modelo ER

• Atributo– Dado associado as ocorrências de uma

entidade ou relacionamento

Livros PedidosItemPedido(0,N) (0,N)

Titulo

ISBN Numero

Quantidade

Page 16: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Conceitos do Modelo ER

• Os Atributos podem ser– obrigatórios ou opcionais – monovalorados ou multivalorados– simples ou compostos

Clientes

Nome CNH (0,1)

Email (1,N)Endereço

Rua

CEP

Bairro

Page 17: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Conceitos do Modelo ER

• Identificação de Entidades– Um ou mais atributos cujos valores

distinguem uma ocorrência da entidade ou relacionamento das demais ocorrências.

Bibliotecárias

Salário

Nome Código

Estantes

NúmeroEstante

Capacidade NúmeroCorredor

Page 18: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Conceitos do Modelo ER• Entidades Fracas

– Depende da existência de ocorrências de outra(s) entidade(s)

– A identificação de suas ocorrências também depende da identificação de outra(s) entidade(s)

Pedidos Itenscomposição(1,1) (1,N)

Data

Número NúmeroSeqüência

Quantidade

Produtos

referência

Código

Descrição

(1,1)

(0,N)

Page 19: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Conceitos do Modelo ER

• Identificação de Relacionamentos– Um relacionamento é identificado implicitamente

pelo conjunto de identificadores das ocorrências de entidades que participam dele

Autores Livrosautoria(1,N) (0,N)

Nome Título

DataPublicacao

Código ISBN

(a1, l1,12/02/04)(a1, l2, 18/11/03)(a2, l1, 02/03/04). . .

Page 20: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Conceitos do Modelo ER

• Identificação de Relacionamentos– atributos identificadores adicionais

podem ser necessários para definir a identificação de um relacionamento

Médicos Pacientesconsulta(0,N) (0,N)

Nome Data

CRM Código

(m1, p1,12/06/04, 13:30)(m1, p2, 28/05/04, 10:00)(m2, p1, 02/06/04, 16:30). . .

Hora

Nome

Page 21: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Restrições do Domínio• O modelo ER, em geral, não consegue expressar

todas as RIs de um domínio de aplicação– uma documentação em anexo pode ser

necessária

RI: - uma bibliotecária não pode ser supervisora dela mesma

Bibliotecárias

supervisãosupervisionada supervisora

Page 22: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Restrições do Domínio

Alunos Disciplinascurso(0,N) (0,N)

Matrícula

Nome

Código

Tipo

- o Tipo de um aluno deve ser graduação (G) ou pós-graduação (PG) - o Tipo de uma disciplina deve ser graduação (G) ou pós-graduação (PG) - um aluno de G não pode estar cursando uma disciplina de PG - um aluno de PG não pode estar cursando uma disciplina de G

Ris:

NomeTipo

Page 23: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Exercício de Fixação I

ClubeEm uma entrevista a um clube esportivo levantou-se as seguintes informações:• O clube possui diversos sócios que utilizam as diversas quadras esportivas do clube• Uma quadra pode ser utilizada por diversos sócios, mas nela só pode ser praticado um tipo de esporte• Um esporte pode ser praticado em diversas quadras

Defina os atributos que julgares necessário.

Page 24: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Conceitos do Modelo ER• Generalização/Especialização

– Permite atribuir propriedades particulares a um subconjunto das ocorrências (especializadas) de uma entidade genérica.

– As entidades especializadas herdam o identificador da entidade genérica

– Símbolo: triângulo isósceles

Pessoas

Nome

Jurídica

CNPJ

Física

CPF

Endereço

Page 25: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Conceitos do Modelo ER• Tipos de Especialização

– Total ou Parcial

Pessoas

JurídicasFísicas

t (default)

Total: Toda Pessoa é ou Pessoa Física ou Pessoa

Jurídica

Funcionários

EnfermeirosMédicos

p

Parcial: Nem todo

funcionário é Médico ou Enfermeiro

Page 26: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Conceitos do Modelo ER• Tipos de Especialização

– Exclusiva ou Não-Exclusiva (compartilhada)

Pessoas

JurídicasFísicas

Exclusiva: A entidade genérica é especializada por uma das

suas folhas, no máximo

Pessoas

AlunosProfessor

Não-Exclusiva: A entidade

genérica pode ser

especializada por várias entidades

folha

Page 27: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Conceitos do Modelo ER

• Uma entidade pode ser especializada em qualquer número de entidades

Animais

InvertebradosVertebrados

AvesMamíferos MoluscosInsetos

Page 28: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Conceitos do Modelo ER

• Deve existir apenas uma entidade genérica (herança múltipla é proibida)

Mestiços

BrancosNegros

Page 29: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Conceitos do Modelo ER

• Entidade Associativa: Permite associar entidades a relacionamentos

• Exemplo: Como associar Medicamentos prescritos em uma Consulta?

Médicos Pacientesconsulta(0,N) (0,N)

Medicamentos

? Como associar?

Page 30: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Conceitos do Modelo ER

• Entidade Associativa– Solução: tornar consulta uma entidade associativa– Uma entidade associativa encapsula uma associação

entre entidades

Médicos Pacientesconsulta(0,N) (0,N)

Medicamentosprescrição

Consultas

(0,N)

(0,N)

Page 31: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Conceitos do Modelo ER

• Entidade Associativa– Outra forma de representar

Médicos Pacientesconsulta(0,N) (0,N)

Medicamentosprescrição(0,N)

(0,N)

Page 32: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Conceitos do Modelo ER

• Entidade Associativa– Outra forma de modelar

Médicos Pacientes

(0,N) (0,N)

Medicamentos

prescrição

(0,N)

(0,N)

Consultas

(1,1) (1,1)

Page 33: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

Exercício de Fixação IIClínica

Em uma clínica trabalham médicos e existem pacientes internados. Cada médico é identificado pelo seu CRM, possui um nome e recebe um salário na clínica. Um médico tem formação em diversas especialidades (ortopedia, traumatologia, etc), mas só exerce uma delas na clínica. Para todo paciente internado na clínica são cadastrados alguns dados pessoais: nome, RG, CPF, endereço, telefone(s) para contato e data do nascimento. Um paciente tem sempre um determinado médico como responsável (com um horário de visita diário predeterminado), porém vários outros médicos podem participar do seu tratamento. Pacientes estão sempre internados em quartos individuais, que são identificados por um número e ficam em um andar da clínica.

Page 34: Projeto de Banco de Dados - inf.ufpr.br · – Solução: tornar consulta uma entidade associativa – Uma entidade associativa encapsula uma associação entre entidades Médicos

RU

Em um restaurante universitário, cada dia da semana possui um cardápio específico. Para cada cardápio existe um funcionário responsável e um grupo de funcionários que participam de seu preparo.

Os funcionários são classificados em efetivos e estagiários. Somente funcionários efetivos podem se responsabilizar por um cardápio.

Cada cardápio possui uma lista de alimentos que são oferecidos. Deseja-se armazenar as quantidades de cada alimento que são

oferecidos em cada um dos cardápios. Cada alimento pode ser fornecido por diversos fornecedores e diversas vezes.

Para cada fornecimento, deve-se armazenar o preço de cada fornecedor para determinado alimento em determinada data.

Nos casos em que o fornecimento passa por uma distribuidora, os dados da distribuidora deverão ser mantidos.

Defina os atributos que julgares necessário.