modelagem entidade relacionamento
DESCRIPTION
Banco de dadosTRANSCRIPT
Modelagem Conceitual de Banco de Dados
Banco de Dados I
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
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
Diagrama Entidade-Relacionamento (ER)
• Proposto por Peter Chen
• Mais popular forma de modelagem conceitual
• Construtores (componentes)– Entidades– Atributos– Relacionamentos
4
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
• Exemplo: Para uma loja, temos:
Diagrama E-R: Entidades
6
Produto
Vendedor
CamisaCamisa CalçaCalça
CamisetaCamiseta
PedroPedro
LuizaLuiza
instâncias
instâncias
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
• 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
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
• 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
Diagrama E-R: Atributos
• Atributo composto
11
Nome
Cliente
CPF
CEP
endereco
codigo
bairro
rua
Não possuem equivalentes no modelo relacional deverão virar entidades
Nome
Cliente
CPF
enderecorua
Bairro
CEP
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
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
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
Diagrama E-R: Relacionamentos
• Auto relacionamento– Caso particular de relacionamento binário– As duas extremidades estão ligadas à mesma
entidade
• Exemplo
CPF
gerenciaFuncionário
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
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)
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
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
Diagrama E-R: Equivalência de relacionamentos
EQUIVALE A
Funcionario FuncProj1 N
CPF
codProjparticipaFuncionario Projeto
N N
CPF
Projeto
CodProj
N 1
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
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
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
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
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
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
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
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
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?
Entidade Associativa
• Só fazer isso em caso de manutenção!
30
consultaMedico PacienteN
CREMERS CPF
nome
nome
N
MedicamentocodAnvisa
nome
prescreve
N
NEntidade associativa
Entidade Associativa
• Equivalente
31
atendeMedico PacienteN
CREMERS
CPF
nome
nome
N
MedicamentocodAnvisa
nome
prescreve
N
N
fazconsulta1 1
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
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
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
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
Generalização / Especialização
Pessoa
Professor
Qual a diferença?
Aluno
Pessoa
JurídicaFísica
Especialização não-exclusiva Especialização exclusiva
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).
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.