BD1 - O Modelo Conceitual
Banco de Dados O Modelo Conceitual O Modelo Conceitual 24/10/2019 1
- Page 2 and 3: Modelo Entidade Relacionamento •
- Page 4 and 5: Modelo Entidade Relacionamento •
- Page 6 and 7: Entidades • São elementos que:
- Page 8 and 9: Entidades • Entidade CLIENTE: atr
- Page 10 and 11: Exemplos de Entidades • Sistema d
- Page 12 and 13: Relacionamentos • São associaç
- Page 14 and 15: Relacionamentos • São representa
- Page 16 and 17: Identificando Relacionamentos • D
- Page 18 and 19: Cardinalidade de Relacionamentos
- Page 20 and 21: Cardinalidade de Relacionamentos CL
- Page 22 and 23: Relacionamento Obrigatório • Pos
- Page 24 and 25: Cardinalidade Máxima • Relaciona
- Page 26 and 27: Cardinalidade Máxima • Relaciona
- Page 28 and 29: Paralelismo de Relacionamentos •
- Page 30 and 31: Grau de um Relacionamento • Repre
- Page 32 and 33: Auto-relacionamento • Ocorre quan
- Page 34 and 35: Auto-relacionamento • Auto-relaci
- Page 36 and 37: Relacionamento Ternário • Em um
- Page 38 and 39: Relacionamento Ternário ENGENHEIRO
- Page 40 and 41: Exemplo • Deseja-se manter inform
- Page 42 and 43: Atributos • São representados gr
- Page 44 and 45: Tipos de Atributos • Atributo Com
- Page 46 and 47: Tipos de Atributos • Atributo Des
- Page 48 and 49: Tipos de Atributos • Atributo Ref
- Page 50 and 51: Cardinalidade Mínima de Atributos
Banco de Dados<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 1
<strong>Modelo</strong> Entidade Relacionamento<br />
• É o primeiro modelo a ser construído no projeto do banco de<br />
dados.<br />
<strong>Modelo</strong> <strong>Conceitual</strong><br />
Representação abstrata<br />
dos dados observados<br />
<strong>Modelo</strong> Lógico<br />
Representação dos dados<br />
sob a forma de tabelas<br />
<strong>Modelo</strong> Físico<br />
Representação dos dados<br />
de acordo com o SGBD<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 2
<strong>Modelo</strong> Entidade Relacionamento<br />
• Foi criado por Peter Chen em 1976 e<br />
posteriormente, na década de 80, sofreu<br />
algumas extensões (especialização e<br />
agregação)<br />
• O modelo E-R é baseado na teoria relacional<br />
criada em 1970 por Edgar F. Codd.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 3
<strong>Modelo</strong> Entidade Relacionamento<br />
• É um modelo semântico representado por uma linguagem<br />
gráfica para construir modelos conceituais de bancos de dados.<br />
• É considerada um padrão para modelagem conceitual de BD.<br />
• Consiste em um conjunto de objetos básicos:<br />
• Entidades: são as “coisas” do negócio que representam os<br />
dados genéricos do sistema.<br />
• Relacionamentos: são as associações que existem entre as<br />
entidades.<br />
• Atributos: são as características individuais que descrevem<br />
cada entidade ou relacionamento.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 4
<strong>Modelo</strong> Entidade-Relacionamento<br />
• Permite a especificação do esquema do banco de dados, através<br />
do Diagrama Entidade-Relacionamento.<br />
Diagrama E-R = Esquema E-R<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 5
Entidades<br />
• São elementos que:<br />
• Existem no mundo real e necessitam ser representados;<br />
• Podem ser concretos ou abstratos;<br />
• Representam os dados genéricos do sistema.<br />
• É um conjunto de dados que representam objetos da realidade a<br />
ser modelada e sobre os quais deseja manter informações.<br />
• Cada elemento particular de uma entidade, formado por um<br />
conjunto de valores, é denominado de ocorrência ou instância<br />
da entidade.<br />
• As ocorrências devem ser identificadas de forma única através<br />
dos valores armazenados nos seus atributos.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 6
Entidades<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 7
Entidades<br />
• Entidade CLIENTE:<br />
atributos<br />
ocorrências<br />
Código Nome Fone<br />
1123 José Ferreira 3224.2345<br />
1124 Maria Tavares 3225.1234<br />
1125 Tânia de Souza 3226.9879<br />
1126 Pedro da Silva 3227.8495<br />
• Pode ser representada sob a forma de uma tabela.<br />
• Deve possuir várias ocorrências e vários atributos.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 8
Entidades<br />
• São representadas graficamente por um retângulo com o nome<br />
da entidade no seu interior em letras maiúsculas.<br />
PRODUTO ALUNO PEDIDO<br />
• Podem representar:<br />
• Objetos concretos (uma pessoa, um produto).<br />
• Objetos abstratos (um setor, um curso).<br />
• Papéis desempenhados (um médico, um cliente)<br />
• Eventos que acontecem (um pedido, uma locação).<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 9
Exemplos de Entidades<br />
• Sistema de Controle Acadêmico.<br />
PROFESSOR ALUNO DISCIPLINA CURSO<br />
• Sistema de Controle de Pedidos.<br />
CLIENTE PEDIDO PRODUTO VENDEDOR<br />
• Sistema de Consultas Médicas<br />
MÉDICO PACIENTE CONSULTA EXAME<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 10
Identificando Entidades<br />
• Deseja-se construir um banco de dados para um sistema de<br />
controle de pedidos. Cada cliente faz os pedidos desejados,<br />
sendo cada um deles atendido por um funcionário. Cada pedido<br />
pode possuir de um a vários produtos e um produto pode<br />
aparecer em diversos pedidos.<br />
• Entidades identificadas:<br />
? PEDIDO<br />
CLIENTE<br />
FUNCIONÁRIO<br />
PRODUTO<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 11
Relacionamentos<br />
• São associações entre entidades.<br />
• Representam as ações dos processos sobre os dados.<br />
• É um fato que liga ocorrências entre duas entidades.<br />
CLIENTE<br />
PEDIDO<br />
DIAGRAMA DE OCORRÊNCIAS<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 12
Relacionamentos<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 13
Relacionamentos<br />
• São representadas graficamente por um losango com o nome do<br />
relacionamento no seu interior em letras maiúsculas.<br />
CLIENTE<br />
FAZ<br />
PEDIDO<br />
• Em uma sentença que expressa um acontecimento do mundo<br />
real:<br />
• o sujeito e o objeto são entidades;<br />
• o verbo é um relacionamento.<br />
• CLIENTE FAZ PEDIDO<br />
• ALUNO CURSA DISCIPLINA<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 14
Relacionamentos<br />
CLIENTE<br />
FAZ<br />
PEDIDO<br />
• No exemplo acima temos:<br />
• Entidade CLIENTE - um conjunto de dados classificados como<br />
clientes;<br />
• Entidade PEDIDO - um conjunto de dados classificados como<br />
departamentos;<br />
• Relacionamento FAZ - um conjunto de associações entre<br />
clientes e pedidos, cada uma ligando um cliente a um pedido.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 15
Identificando Relacionamentos<br />
• Deseja-se construir um banco de dados para um sistema de<br />
controle de pedidos. Cada cliente faz os pedidos desejados,<br />
sendo cada um deles atendido por um funcionário. Cada pedido<br />
pode possuir de um a vários produtos e um produto pode<br />
aparecer em diversos pedidos.<br />
• Entidades e relacionamentos identificados:<br />
?<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 16
Identificando Relacionamentos<br />
Diagrama Entidade-Relacionamento<br />
FUNCIONÁRIO<br />
ATENDE<br />
CLIENTE<br />
FAZ<br />
PEDIDO<br />
CONTÉM<br />
PRODUTO<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 17
Cardinalidade de Relacionamentos<br />
• É o número (mínimo e máximo) de ocorrências de uma entidade<br />
que podem estar associadas a uma ocorrência de entidade,<br />
através de um relacionamento.<br />
• Cardinalidade mínima:<br />
• Indica o número mínimo de ocorrências de uma entidade que<br />
podem estar relacionadas a uma ocorrência de entidade.<br />
• Pode assumir os valores de:<br />
• 0 – podem existir ocorrências da entidade que não<br />
participam do relacionamento.<br />
• 1 – sempre vai existir uma ocorrência da entidade<br />
participando do relacionamento.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 18
Cardinalidade de Relacionamentos<br />
• Cardinalidade máxima:<br />
• Indica o número máximo de ocorrências de uma entidade que<br />
podem estar relacionadas a uma ocorrência de entidade.<br />
• Pode assumir os valores de:<br />
• 1 – no máximo uma ocorrência da entidade está<br />
participando do relacionamento.<br />
• n – muitas ocorrências da entidade podem estar<br />
participando do relacionamento.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 19
Cardinalidade de Relacionamentos<br />
CLIENTE<br />
(1,1) (0,n)<br />
FAZ<br />
PEDIDO<br />
• Um cliente pode fazer:<br />
• No mínimo, nenhum pedido (cardinalidade mínima = 0).<br />
• No máximo, vários pedidos (cardinalidade máxima = n).<br />
• Um pedido pode ser feito:<br />
• No mínimo, por um cliente (cardinalidade mínima = 1).<br />
• No máximo, por um cliente (cardinalidade máxima = 1).<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 20
Cardinalidade de Relacionamentos<br />
CLIENTE<br />
(1,1) (0,n)<br />
FAZ<br />
PEDIDO<br />
CLIENTE<br />
PEDIDO<br />
DIAGRAMA DE OCORRÊNCIAS<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 21
Relacionamento Obrigatório<br />
• Possui cardinalidade mínima igual a 1.<br />
• Sempre existe uma ocorrência da entidade que participa do<br />
relacionamento.<br />
• Exemplo: em um relacionamento entre as entidades CLIENTE e<br />
PEDIDO, sempre existe um cliente para cada pedido.<br />
Cada pedido tem um cliente<br />
Cardinalidade mínima = 1<br />
CLIENTE<br />
(1,1) 1<br />
(0,n)<br />
FAZ<br />
PEDIDO<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 22
Relacionamento Opcional<br />
• Possui cardinalidade mínima igual a zero.<br />
• Podem existir ocorrências da entidade que não participam do<br />
relacionamento.<br />
• Exemplo: em um relacionamento entre as entidades CLIENTE e<br />
PEDIDO, podem existir clientes que nunca fizeram pedido.<br />
Cliente sem fazer pedido<br />
Cardinalidade mínima = 0<br />
CLIENTE<br />
(1,1) (0,n) 0<br />
FAZ<br />
PEDIDO<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 23
Cardinalidade Máxima<br />
• Relacionamento de Um para Um – 1:1:<br />
• Uma ocorrência da entidade A relaciona-se com somente uma<br />
ocorrência da entidade B e vice-versa.<br />
CURSO<br />
Curso 1<br />
Curso 2<br />
Curso 3<br />
Curso 4<br />
COORDENADOR<br />
Coordenador A<br />
Coordenador B<br />
Coordenador C<br />
Coordenador D<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 24
Cardinalidade Máxima<br />
• Relacionamento de Um para Muitos – 1:N:<br />
• Uma ocorrência da entidade A relaciona-se com muitas<br />
ocorrências da entidade B, mas cada ocorrência da entidade B<br />
somente pode estar relacionada a uma ocorrência da<br />
entidade A.<br />
PROFESSOR<br />
Professor 1<br />
Professor 2<br />
Professor 3<br />
DISCIPLINA<br />
Disciplina A<br />
Disciplina B<br />
Disciplina C<br />
Disciplina D<br />
Disciplina E<br />
Disciplina F<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 25
Cardinalidade Máxima<br />
• Relacionamento de Muitos para Muitos – N:N:<br />
• Uma ocorrência da entidade A relaciona-se com muitas<br />
ocorrências da entidade B e vice versa.<br />
ALUNO<br />
Aluno 1<br />
Aluno 2<br />
Aluno 3<br />
Aluno 4<br />
DISCIPLINA<br />
Disciplina A<br />
Disciplina B<br />
Disciplina C<br />
Disciplina D<br />
Disciplina E<br />
Disciplina F<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 26
Cardinalidade Máxima<br />
CURSO<br />
1 1<br />
POSSUI<br />
1 1<br />
1 1<br />
COORDENADOR<br />
PROFESSOR<br />
1 N<br />
ENSINA<br />
1 N<br />
1 1<br />
DISCIPLINA<br />
ALUNO<br />
N<br />
CURSA<br />
N<br />
DISCIPLINA<br />
1 N<br />
N 1<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 27
Paralelismo de Relacionamentos<br />
• Ocorre quando uma entidade possui mais de um relacionamento<br />
com outra entidade.<br />
• Cada um dos relacionamentos representa uma associação<br />
descrita nas regras de negócio do sistema.<br />
(0,n) (1,1)<br />
RESIDE<br />
FUNCIONÁRIO<br />
CIDADE<br />
NASCEU<br />
(0,n) (1,1)<br />
• Um relacionamento informa a cidade em que reside e o outro<br />
informa a cidade em que nasceu cada funcionário.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 28
Redundância de Relacionamentos<br />
• Ocorre quando a informação descrita por um relacionamento<br />
pode ser obtida através de outros relacionamentos.<br />
CLIENTE<br />
(1,1) (0,n)<br />
FAZ<br />
PEDIDO<br />
Relacionamento redundante<br />
(0,n)<br />
VENDIDO<br />
(1,1)<br />
(0,n)<br />
ATENDE<br />
(1,n)<br />
FUNCIONARIO<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 29
Grau de um Relacionamento<br />
• Representa a quantidade de entidades que participam em um<br />
relacionamento.<br />
• Relacionamento Unário (auto-relacionamento): 1 entidade<br />
FUNCIONÁRIO<br />
(1,1) (0,n)<br />
CHEFIA<br />
• Relacionamento Binário: 2 entidades.<br />
CLIENTE<br />
(1,1) (0,n)<br />
FAZ<br />
PEDIDO<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 30
Grau de um Relacionamento<br />
• Relacionamento Ternário: 3 entidades<br />
ENGENHEIRO<br />
(1,n)<br />
PARTICIPA<br />
(1,n)<br />
PROJETO<br />
(1,n)<br />
FUNÇÃO<br />
• A cardinalidade mínima igual a 1 indica a obrigatoriedade de uma<br />
ocorrência de cada entidade para cada ocorrência do<br />
relacionamento.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 31
Auto-relacionamento<br />
• Ocorre quando uma ocorrência de uma entidade relaciona-se<br />
com outra(s) ocorrência(s) da mesma entidade.<br />
• Auto-relacionamento de Um para Um - 1:1:<br />
PESSOA<br />
(0,1) (0,1)<br />
REPRESENTA<br />
• Uma pessoa pode representar nenhuma ou apenas uma outra<br />
pessoa.<br />
• Uma pessoa pode ser representada por nenhuma ou por apenas<br />
uma outra pessoa.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 32
Auto-relacionamento<br />
• Auto-relacionamento de Um para Muitos - 1:N:<br />
FUNCIONÁRIO<br />
(0,1) (0,n)<br />
CHEFIA<br />
• Um funcionário chefia nenhum ou vários funcionários.<br />
• Um funcionário pode ter nenhum ou apenas um chefe.<br />
• Geralmente está associado à hierarquia de ocorrências.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 33
Auto-relacionamento<br />
• Auto-relacionamento de Muitos para Muitos - N:N:<br />
PRODUTO<br />
(0,n)<br />
COMPÕE<br />
(0,n)<br />
• Um produto compõe nenhum ou vários produtos.<br />
• Um produto pode ser composto por nenhum ou por vários<br />
produtos.<br />
• Geralmente está associado à composição de ocorrências.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 34
Relacionamento Ternário<br />
• Ocorre quando as ocorrências de três entidades participam<br />
obrigatoriamente do mesmo relacionamento.<br />
ENGENHEIRO<br />
(1,n)<br />
PARTICIPA<br />
(1,n)<br />
PROJETO<br />
(1,n)<br />
FUNÇÃO<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 35
Relacionamento Ternário<br />
• Em um relacionamento ternário deve haver pelo menos um<br />
relacionamento de cardinalidade N:N.<br />
ENGENHEIRO<br />
(1,n)<br />
PARTICIPA<br />
(1,n)<br />
PROJETO<br />
(1,n)<br />
FUNÇÃO<br />
• A cardinalidade de uma entidade indica sempre quantas<br />
ocorrências dessa entidade estão associadas a um par de<br />
ocorrências das duas outras entidades.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 36
Relacionamento Ternário<br />
ENGENHEIRO<br />
PARTICIPA<br />
PROJETO<br />
(1,n)<br />
FUNÇÃO<br />
• A cardinalidade de FUNÇÃO indica quantas ocorrências dessa<br />
entidade estão associadas a um par de ocorrências de<br />
ENGENHEIRO e PROJETO.<br />
• Um ENGENHEIRO em um PROJETO exerce uma ou várias funções.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 37
Relacionamento Ternário<br />
ENGENHEIRO<br />
(1,n)<br />
PARTICIPA<br />
PROJETO<br />
FUNÇÃO<br />
• A cardinalidade de ENGENHEIRO indica quantas ocorrências<br />
dessa entidade estão associadas a um par de ocorrências de<br />
FUNÇÃO e PROJETO.<br />
• Uma FUNÇÃO em um PROJETO é exercida por um ou por vários<br />
ENGENHEIROS.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 38
Relacionamento Ternário<br />
ENGENHEIRO<br />
PARTICIPA<br />
(1,n)<br />
PROJETO<br />
FUNÇÃO<br />
• A cardinalidade de PROJETO indica quantas ocorrências dessa<br />
entidade estão associadas a um par de ocorrências de<br />
ENGENHEIRO e FUNÇÃO.<br />
• Um ENGENHEIRO exerce uma FUNÇÃO em um ou em vários<br />
PROJETOS.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 39
Exemplo<br />
• Deseja-se manter informações sobre alunos, cursos, disciplinas e<br />
departamentos de um sistema de controle acadêmico e as<br />
associações de alunos a cursos, de disciplinas a cursos, de<br />
disciplinas a departamentos e de disciplinas a suas disciplinas<br />
pré-requisitos.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 40
Atributos<br />
• São dados associados às ocorrências de uma entidade ou de um<br />
relacionamento.<br />
• São valores que fornecem a descrição de uma entidade ou de um<br />
relacionamento.<br />
• Cada ocorrência de uma entidade é identificada de forma única<br />
pelos seus atributos.<br />
• Exemplo:<br />
• Entidade CLIENTE: (codcliente, nome, cpf, telefone)<br />
• Entidade PRODUTO: (codproduto, nome, preço, quant)<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 41
Atributos<br />
• São representados graficamente por um círculo ou elipse ligado à<br />
entidade ou ao relacionamento.<br />
cpf<br />
fone<br />
cargahoraria<br />
periodo<br />
ALUNO<br />
(0,n)<br />
CURSA<br />
(0,n)<br />
DISCIPLINA<br />
matrícula<br />
nome<br />
media<br />
frequencia<br />
coddisc<br />
nome<br />
cpf<br />
fone<br />
matrícula<br />
ALUNO<br />
nome<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 42
Tipos de Atributos<br />
• Atributo Simples: é aquele que não pode ser dividido. É também<br />
chamado de atômico.<br />
• Entidade: CLIENTE<br />
• Atributos: bairro, fone<br />
fone<br />
CLIENTE<br />
bairro<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 43
Tipos de Atributos<br />
• Atributo Composto: é aquele formado pela junção de vários<br />
valores.<br />
• Entidade: CLIENTE<br />
• Atributo: endereço (rua, número, complemento, bairro,<br />
cidade, estado, cep).<br />
CLIENTE<br />
endereço<br />
rua<br />
número<br />
complemento<br />
bairro<br />
cidade<br />
estado<br />
cep<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 44
Tipos de Atributos<br />
• Atributo Identificador: é aquele que identifica cada ocorrência<br />
de uma entidade de forma única.<br />
• Entidade: CLIENTE<br />
• Atributo: codcliente<br />
CLIENTE<br />
codcliente<br />
• O atributo identificador não admite repetição de valores nem<br />
pode ser deixado em branco.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 45
Tipos de Atributos<br />
• Atributo Descritivo: é aquele que representa uma característica<br />
de uma entidade ou de um relacionamento, podendo armazenar<br />
valores repetidos. Não deve ser usado como identificador.<br />
• Entidade: CLIENTE<br />
• Atributos: nome, fone, endereço<br />
fone<br />
endereco<br />
CLIENTE<br />
nome<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 46
Tipos de Atributos<br />
• Atributo Derivado: é aquele cujo valor pode ser obtido a partir<br />
do valor de outro atributo.<br />
• Entidade: FUNCIONARIO<br />
• Atributos: idade (derivado a partir da data de nascimento)<br />
idade<br />
FUNCIONARIO<br />
• Os atributos derivados não devem ser colocados no diagrama<br />
Entidade-Relacionamento.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 47
Tipos de Atributos<br />
• Atributo Referencial: é aquele que estabelece um<br />
relacionamento entre duas entidades.<br />
• Entidade: PEDIDO<br />
• Atributo: codcliente<br />
codcliente<br />
CLIENTE<br />
(1,1) (0,n)<br />
FAZ<br />
PEDIDO<br />
codcliente<br />
codpedido<br />
• Os atributos referenciais não devem ser colocados no diagrama<br />
Entidade-Relacionamento.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 48
Cardinalidade de Atributos<br />
• É o número (mínimo e máximo) de valores que pode ser definido<br />
para um atributo em cada ocorrência da entidade.<br />
• Cardinalidade mínima:<br />
• Indica o número mínimo de valores que pode ser definido<br />
para um atributo.<br />
• Pode assumir os valores de 0 (nenhum) ou 1 (um).<br />
• Cardinalidade máxima:<br />
• Indica o número máximo de valores que pode ser definido<br />
para um atributo.<br />
• Pode assumir os valores de 1 (um) ou n (muitos).<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 49
Cardinalidade Mínima de Atributos<br />
• Atributo obrigatório (cardinalidade mínima = 1):<br />
• Sempre existe um valor definido para o atributo.<br />
• Exemplo: nome do cliente na entidade CLIENTE (sempre<br />
obrigatório, não existe cliente sem nome).<br />
• Atributo opcional (cardinalidade mínima = 0):<br />
• Pode não haver um valor definido para o atributo.<br />
• Exemplo: fone do cliente na entidade CLIENTE (não é um valor<br />
obrigatório, pode existir cliente sem telefone).<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 50
Cardinalidade Máxima de Atributos<br />
• Atributo monovalorado (cardinalidade máxima = 1):<br />
• Sempre existe no máximo um valor definido para o atributo<br />
em cada ocorrência.<br />
• Exemplo: nome do sócio na entidade SÓCIO (todo sócio tem,<br />
no máximo, um nome) .<br />
• Atributo multivalorado (cardinalidade máxima = n):<br />
• Pode haver mais de um valor definido para o atributo em cada<br />
ocorrência.<br />
• Exemplo: nome do dependente na entidade SÓCIO (pode<br />
existir mais de um dependente para o mesmo sócio).<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 51
Cardinalidade de Atributos<br />
endereco<br />
dep(0,n)<br />
atributo opcional<br />
e multivalorado<br />
SÓCIO<br />
codsocio<br />
nome(1,1)<br />
atributo obrigatório<br />
e monovalorado<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 52
Atributos Multivalorados<br />
• Representam vários valores para um atributo na mesma<br />
ocorrência.<br />
codcli<br />
nome<br />
CLIENTE<br />
endereco<br />
fone<br />
fone<br />
• Como cada atributo só pode armazenar um único valor a cada<br />
instante, os atributos multivalorados não possuem<br />
implementação direta em bancos de dados relacionais.<br />
• Na passagem para o modelo relacional os atributos<br />
multivalorados deverão ser transformados em tabelas<br />
específicas.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 53
Atributos Multivalorados<br />
• Exemplo:<br />
• Um funcionário possui os seguintes dados: código, nome,<br />
endereço, cpf, nenhum ou vários dependentes e salário.<br />
• Deseja-se armazenar o valor dos salários recebidos pelo<br />
funcionário ao longo do tempo.<br />
codfunc<br />
nome<br />
endereco<br />
cpf<br />
FUNCIONARIO<br />
data (1,n)<br />
dependente (0,n)<br />
salario (1,n)<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 54
Entidade Fraca<br />
• Possui dependência de existência e de identificação.<br />
• As ocorrências só existem se existir outra entidade forte<br />
relacionada (dependência de existência).<br />
• A identificação das ocorrências depende de atributos de outra<br />
entidade forte (dependência de identificação).<br />
• Exemplo:<br />
• Relacionamento entre SÓCIO e DEPENDENTE<br />
• Só existe um dependente se existir um sócio responsável por<br />
ele (dependência de existência).<br />
• O dependente é identificado por um número sequencial para<br />
cada sócio. Logo para identificar o dependente será<br />
necessário o código do sócio (dependência de identificação).<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 55
Entidade Fraca<br />
codsócio codsocio<br />
SOCIO<br />
nome<br />
endereco<br />
fone<br />
codsócio codsocio<br />
DEPENDENTE<br />
coddep numero nome<br />
celular<br />
• A entidade DEPENDENTE só existe se a entidade SOCIO também<br />
existir (dependência de existência).<br />
• Parte da identificação da entidade DEPENDENTE vem da<br />
entidade SOCIO (dependência de identificação).<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 56
Relacionamento Identificador<br />
• Ocorre quando um relacionamento é utilizado para dar<br />
identificação a uma entidade fraca.<br />
fone<br />
endereco<br />
celular<br />
SOCIO<br />
(1,1) (0,n)<br />
POSSUI<br />
DEPENDENTE<br />
codsocio<br />
nome<br />
numero<br />
nome<br />
Relacionamento<br />
obrigatório<br />
Entidade<br />
fraca<br />
• O número do dependente é sequencial para cada sócio. Qual o<br />
identificador de dependente?<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 57
Relacionamento Identificador<br />
• O identificador da entidade fraca será formado por atributo(s) da<br />
própria entidade, concatenado(s) com um atributo referencial<br />
oriundo da entidade forte do relacionamento.<br />
• Esse atributo oriundo da entidade forte, por ser referencial, não<br />
deverá ser expresso nos esquemas E-R.<br />
• No exemplo entre as entidades SOCIO e DEPENDENTE, o<br />
identificador de DEPENDENTE será formado pelo código do sócio<br />
(atributo referencial) concatenado com o número sequencial de<br />
cada dependente (atributo próprio da entidade fraca).<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 58
Relacionamento Identificador<br />
GRUPO<br />
(1,1)<br />
R1<br />
(0,n)<br />
EMPRESA<br />
(1,1)<br />
R2<br />
(0,n)<br />
FILIAL<br />
codgrupo<br />
codempresa<br />
codfilial<br />
IDENTIFICADORES:<br />
GRUPO<br />
• codgrupo<br />
EMPRESA<br />
• codgrupo<br />
• codempresa<br />
FILIAL<br />
• codgrupo<br />
• codempresa<br />
• codfilial<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 59
Atributos em Relacionamentos<br />
• Ocorre quando o atributo depende simultaneamente das duas<br />
entidades que participam do relacionamento.<br />
• Descreve uma característica que só existe quando o<br />
relacionamento passa a existir.<br />
fone<br />
endereco<br />
periodo<br />
duracao<br />
ALUNO<br />
(0,n)<br />
CURSA<br />
(0,n)<br />
DISCIPLINA<br />
codaluno<br />
nome<br />
media<br />
faltas<br />
coddisc<br />
nome<br />
• Média do aluno na disciplina?<br />
• Número de faltas do aluno na disciplina?<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 60
Especialização<br />
• É uma estrutura que representa uma hierarquia entre entidades<br />
do mesmo tipo.<br />
CLIENTE<br />
PESSOA<br />
FISICA<br />
ATRIBUTOS<br />
COMUNS<br />
PESSOA<br />
JURIDICA<br />
• A entidade genérica (CLIENTE) possui subconjuntos de dados que<br />
formam entidades diferentes (PESSOAFÍSICA e PESSOAJURÍDICA),<br />
mas que possuem características comuns que permitem colocálos<br />
como formando uma única entidade.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 61
Especialização<br />
Entidade genérica<br />
(atributos comuns)<br />
CLIENTE<br />
PESSOAFISICA<br />
PESSOAJURIDICA<br />
Entidades especializadas<br />
(atributos particulares)<br />
• Uma ocorrência pertencente a uma entidade especializada deve<br />
ser vista como pertencente tanto a entidade especializada<br />
quanto a entidade genérica.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 62
Especialização<br />
• Permite a herança de propriedades, onde cada entidade<br />
especializada possui, além dos seus atributos próprios, todos os<br />
atributos herdados da entidade genérica.<br />
• Os atributos herdados não são fisicamente incluídos nas<br />
entidades especializadas.<br />
• Atributos da entidade CLIENTE:<br />
• codcliente, nome, endereco, cidade, estado, cep<br />
• Atributos da entidade PESSOAFISICA<br />
• cpf, rg, sexo e todos os atributos de CLIENTE<br />
• Atributos da entidade PESSOAJURIDICA<br />
• cnpj, inscest, ramo e todos os atributos de CLIENTE<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 63
Generalização<br />
• É um processo reverso ao da especialização, no qual as entidades<br />
especializadas formam uma única entidade genérica.<br />
• As diferenças entre as entidades especializadas podem, em<br />
alguns casos, ser suprimidas.<br />
• Quando não são suprimidas, geram valores nulos inaplicáveis na<br />
entidade genérica.<br />
• Deve ser acrescentado um atributo adicional na entidade<br />
genérica para indicar o tipo de cada ocorrência nesta entidade.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 64
Generalização/Especialização<br />
• A generalização é a união do conteúdo de duas ou mais<br />
entidades de nível inferior, formando uma entidade de nível mais<br />
elevado.<br />
• A generalização cria, a partir de entidades mais específicas (nível<br />
inferior), uma entidade mais genérica (nível superior).<br />
• A especialização é a divisão de subconjuntos de dados de uma<br />
entidade de nível superior, formando entidades de nível inferior.<br />
• A especialização cria, a partir de uma entidade genérica (nível<br />
superior), novas entidades mais específicas (nível inferior).<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 65
Especialização Total<br />
• Ocorre quando para cada ocorrência da entidade genérica existe<br />
sempre uma ocorrência em uma das entidades especializadas.<br />
CLIENTE<br />
t<br />
Indica que todo<br />
cliente é pessoa<br />
física ou é<br />
pessoa jurídica<br />
PESSOAFISICA<br />
PESSOAJURIDICA<br />
• Na especialização total, existe a obrigatoriedade de uma<br />
ocorrência da entidade genérica corresponder a uma ocorrência<br />
em uma das entidades especializadas.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 66
Especialização Total<br />
Entidade CLIENTE - 15 atributos e 5 ocorrências<br />
1ª ocorrência – Pessoa física<br />
2ª ocorrência – Pessoa jurídica<br />
3ª ocorrência – Pessoa jurídica<br />
4ª ocorrência – Pessoa física<br />
5ª ocorrência – Pessoa física<br />
A B C D E F G H I J L M N O P<br />
X X X X X X X X X X X<br />
X X X X X X X X X X<br />
X X X X X X X X X X<br />
X X X X X X X X X X X<br />
X X X X X X X X X X X<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 67
Especialização Total<br />
CLIENTE<br />
DADOS COMUNS A PESSOA<br />
FÍSICA E PESSOA JURÍDICA<br />
DADOS APENAS DE<br />
PESSOA FÍSICA<br />
DADOS APENAS DE<br />
PESSOA JURÍDICA<br />
• Sempre existem valores que ficam nulos em cada ocorrência da<br />
entidade (nulos inaplicáveis).<br />
• A existência de valores nulos inaplicáveis indica que a entidade<br />
deve ser especializada.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 68
Especialização Total<br />
• A especialização é feita criando-se:<br />
• uma entidade para armazenar os dados comuns;<br />
• uma entidade para guardar cada grupo de dados particulares.<br />
A<br />
B<br />
CLIENTE<br />
C<br />
D<br />
E<br />
dados comuns<br />
F<br />
G<br />
P. FÍSICA<br />
X X X X X X X X X X X<br />
X X X X X X<br />
X X X X X X<br />
X X X X X X<br />
X X X X X X<br />
H<br />
I<br />
J<br />
dados de<br />
pessoa física<br />
L<br />
X X X X X<br />
X X X X X<br />
P. JURÍDICA<br />
M<br />
N<br />
O<br />
P<br />
X X X X<br />
X X X X<br />
dados de<br />
pessoa jurídica<br />
pessoa física, pessoa jurídica, pessoa<br />
jurídica, pessoa física, pessoa física<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 69
Especialização Parcial<br />
• Ocorre quando nem toda ocorrência da entidade genérica<br />
corresponde a uma ocorrência em uma das entidades<br />
especializadas.<br />
FUNCIONARIO<br />
p<br />
Indica que nem<br />
todo funcionário<br />
é motorista ou<br />
engenheiro<br />
MOTORISTA<br />
ENGENHEIRO<br />
• Na especialização parcial, não existe a obrigatoriedade de uma<br />
ocorrência da entidade genérica corresponder a uma ocorrência<br />
em uma das entidades especializadas.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 70
Especialização Parcial<br />
Entidade FUNCIONARIO - 15 atributos e 6 ocorrências<br />
1ª ocorrência – Motorista<br />
2ª ocorrência – Engenheiro<br />
3ª ocorrência – Secretária<br />
4ª ocorrência – Motorista<br />
5ª ocorrência – Digitador<br />
6ª ocorrência – Engenheiro<br />
A B C D E F G H I J L M N O P<br />
X X X X X X X X X X X<br />
X X X X X X X X X X<br />
X X X X X X<br />
X X X X X X X X X X X<br />
X X X X X X<br />
X X X X X X X X X X<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 71
Especialização Parcial<br />
FUNCIONARIO<br />
DADOS COMUNS A TODOS<br />
OS FUNCIONÁRIOS<br />
DADOS APENAS<br />
DE MOTORISTA<br />
DADOS APENAS<br />
DE ENGENHEIRO<br />
• A existência de valores nulos inaplicáveis em todas as ocorrências<br />
indica que a entidade deve ser especializada.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 72
Especialização Parcial<br />
• São criadas entidades apenas para as funções que têm atributos<br />
particulares.<br />
• Não existe a necessidade da criação de entidades para as funções<br />
de secretária e digitador.<br />
FUNCIONARIO<br />
MOTORISTA<br />
ENGENHEIRO<br />
A B C D E F<br />
X X X X X X<br />
X X X X X X<br />
X X X X X X<br />
X X X X X X<br />
X X X X X X<br />
X X X X X X<br />
dados comuns<br />
G<br />
H<br />
I<br />
J<br />
dados de<br />
motorista<br />
L<br />
X X X X X X X X X<br />
X X X X X X X X X<br />
M<br />
N<br />
O<br />
dados de<br />
engenheiro<br />
motorista, engenheiro, secretária,<br />
motorista, digitador, engenheiro<br />
P<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 73
Especialização Parcial<br />
• Quando há uma especialização parcial, na entidade genérica<br />
aparece um atributo que identifica o tipo de ocorrência desta<br />
entidade.<br />
FUNCIONARIO<br />
A B C D E F<br />
X X X X X X<br />
X X X X X X<br />
X X X X X X<br />
X X X X X X<br />
X X X X X X<br />
X X X X X X<br />
TIPO<br />
MOT<br />
ENG<br />
SEC<br />
MOT<br />
DIG<br />
ENG<br />
MOTORISTA<br />
G H I J L<br />
X X X X X<br />
X X X X X<br />
ENGENHEIRO<br />
M N O P<br />
X X X X<br />
X X X X<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 74
Especialização Exclusiva<br />
• Ocorre sempre que uma ocorrência da entidade genérica só<br />
puder pertencer a uma das entidades especializadas, não<br />
pertencendo, simultaneamente, à outra.<br />
CLIENTE<br />
x<br />
Indica que um<br />
cliente não pode<br />
ser pessoa física e<br />
pessoa jurídica ao<br />
mesmo tempo<br />
PESSOAFÍSICA<br />
PESSOAJURÍDICA<br />
• Uma ocorrência da entidade genérica aparece em apenas uma<br />
das entidades especializadas (categorias diferentes).<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 75
Especialização Compartilhada<br />
• Ocorre sempre que uma ocorrência da entidade genérica puder<br />
pertencer, simultaneamente, a mais de uma das entidades<br />
especializadas.<br />
PESSOA<br />
c<br />
Indica que uma<br />
pessoa pode ser<br />
aluno e professor ao<br />
mesmo tempo<br />
ALUNO<br />
PROFESSOR<br />
• Uma ocorrência da entidade genérica pode aparecer em mais de<br />
uma das entidades especializadas (papéis simultâneos).<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 76
Agregação - Entidade Associativa<br />
• Ocorre quando um relacionamento de cardinalidade máxima N:N<br />
é percebido como um objeto que se relaciona opcionalmente<br />
com uma terceira entidade.<br />
• Exemplo:<br />
• Em uma clínica médica existem vários médicos que consultam<br />
os pacientes e prescrevem medicamentos.<br />
MÉDICO<br />
(1,n)<br />
CONSULTA<br />
(0,n)<br />
PACIENTE<br />
• Devemos relacionar MEDICAMENTO a MÉDICO ou a PACIENTE?<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 77
Agregação<br />
• Características do modelo:<br />
• O relacionamento entre MÉDICO e PACIENTE tem cardinalidade<br />
máxima de N:N;<br />
• O MEDICAMENTO só será prescrito se o MÉDICO consultar o<br />
PACIENTE.<br />
ou seja:<br />
• Existe um relacionamento de cardinalidade máxima N:N;<br />
• Existe uma terceira entidade, opcional, cuja existência depende<br />
diretamente da existência desse relacionamento;<br />
• Logo, podemos fazer uma agregação.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 78
Agregação<br />
• Para realizar uma agregação devemos:<br />
• Transformar o relacionamento N:N em uma entidade associativa:<br />
• O relacionamento entre MÉDICO e PACIENTE se transforma<br />
em uma entidade associativa.<br />
• Relacionar esta entidade associativa com a terceira entidade do<br />
sistema:<br />
• Estabelecer o relacionamento entre a entidade associativa e<br />
MEDICAMENTO;<br />
• Definir as cardinalidades desse relacionamento.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 79
Agregação<br />
MÉDICO<br />
(1,n)<br />
CONSULTA<br />
(0,n)<br />
PACIENTE<br />
(0,n)<br />
PRESCREVE<br />
(0,n)<br />
MEDICAMENTO<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 80
Agregação<br />
• Entidade Associativa:<br />
• A entidade associativa não existe por si só;<br />
• Sua existência está condicionada à existência de duas outras<br />
entidades e resulta da associação entre elas;<br />
• Seu identificador é geralmente formado pela concatenação dos<br />
identificadores das duas entidades que lhe deram origem<br />
(atributos referenciais). Entretanto, em algumas situações, tornase<br />
necessário a concatenação com mais atributos para garantir a<br />
unicidade das ocorrências.<br />
• Lembrando que esses identificadores (atributos referenciais) não<br />
devem ser colocados no diagrama E-R.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 81
Agregação<br />
codmed<br />
data<br />
codpac<br />
MÉDICO<br />
(1,n)<br />
CONSULTA<br />
(0,n)<br />
PACIENTE<br />
codmed<br />
(0,n)<br />
codpac<br />
PRESCREVE<br />
(0,n)<br />
MEDICAMENTO<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 82
Agregação<br />
• Exercício 1:<br />
• Um engenheiro participa de um ou muitos projetos e em cada<br />
projeto um engenheiro pode exercer uma função. Os dados de<br />
engenheiro são: código, crea, nome, endereço, telefone, data de<br />
início em cada projeto, função exercida em cada projeto e data<br />
de início em cada função.<br />
• Em um projeto podem participar vários engenheiros. Os dados<br />
de projeto são: código, nome, duração e engenheiros que<br />
participam do projeto.<br />
• Uma função pode ser exercida por muitos engenheiros. Os dados<br />
de função são: código, nome, gratificação e engenheiros que<br />
exercem a função.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 83
Agregação<br />
• Exercício 2:<br />
• Refaça o exercício anterior, considerando agora que um<br />
engenheiro só pode participar de um projeto e que em um<br />
projeto cada engenheiro pode exercer várias funções.<br />
• Exercício 3:<br />
• Refaça o exercício anterior, considerando agora que um<br />
engenheiro só pode participar de um projeto e que em um<br />
projeto cada engenheiro só pode exercer uma função.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 84
Equivalência entre Esquemas<br />
• Dois esquemas E-R diferentes são equivalentes quando modelam<br />
a mesma realidade.<br />
• Para fins de projeto, dois esquema E-R diferentes são<br />
equivalentes quando geram o mesmo esquema lógico.<br />
• Esquemas equivalentes geram bancos de dados distintos que<br />
tem a mesma estrutura de tabelas e relacionamentos.<br />
• Nessa equivalência deve-se considerar o conjunto de regras de<br />
transposição entre os modelos conceitual e lógico.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 85
Equivalência entre Esquemas<br />
• Exemplo: O relacionamento N:N entre as entidades MÉDICO e<br />
PACIENTE, no qual a CONSULTA pode ser vista como um<br />
relacionamento entre essas entidades.<br />
MÉDICO<br />
(1,n)<br />
CONSULTA<br />
(0,n)<br />
PACIENTE<br />
codmed<br />
datahora<br />
codpac<br />
• Nesse caso, a CONSULTA é modelada como sendo um<br />
relacionamento porque ela é vista como sendo uma ação que<br />
ocorre entre as entidades MÉDICO e PACIENTE.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 86
Equivalência entre Esquemas<br />
• A CONSULTA também pode ser vista como uma entidade fraca<br />
que se relaciona com MÉDICO e PACIENTE.<br />
MÉDICO<br />
PACIENTE<br />
(1,1) (1,1)<br />
codmed<br />
codpac<br />
(0,n)<br />
(1,n)<br />
ATENDE CONSULTA<br />
TEM<br />
data_hora<br />
• Os dois esquemas E-R mostrados, embora diferentes, são<br />
equivalentes porque geram o mesmo esquema lógico.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 87
Determinando Construções E-R<br />
• A determinação da construção E-R usada para modelar um dado<br />
deve ser escolhida analisando-se o contexto no qual o dado está<br />
inserido.<br />
• Deve-se considerar a possibilidade de que a construção escolhida<br />
para modelar um dado pode sofrer modificações durante o<br />
processo de modelagem.<br />
• O conhecimento da realidade a ser modelada e a experiência<br />
acumulada em modelagens anteriores irão refinar e aperfeiçoar<br />
o desenvolvimento do esquema E-R.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 88
Atributo X Entidade Relacionada<br />
• Quando modelar um dado como sendo um atributo de uma<br />
entidade A e quando modelar esse mesmo dado como sendo<br />
uma outra entidade B relacionada a esta entidade A?<br />
PRODUTO<br />
tipo<br />
PRODUTO<br />
(0,n) (1,1)<br />
POSSUI<br />
TIPO<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 89
Atributo X Entidade Relacionada<br />
• Critérios:<br />
• O dado possui propriedades (atributos)?<br />
• Se sim, deve ser modelado como entidade.<br />
• Se não, pode ser modelado como atributo.<br />
• O dado está vinculado a outras entidades?<br />
• Se sim, deve ser modelado como entidade.<br />
• Se não, pode ser modelado como atributo.<br />
• O conjunto de valores que pode ser atribuído ao dado é fixo<br />
ou se altera com as transações do sistema?<br />
• Se é fixo, pode ser modelado como atributo.<br />
• Se é variável, deve ser modelado como entidade.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 90
Atributo X Entidade(s) Especializada(s)<br />
• Quando modelar um dado como sendo um atributo de uma<br />
entidade e quando modelar esse mesmo dado como sendo uma<br />
especialização dessa entidade?<br />
FUNCIONÁRIO<br />
categoria<br />
FUNCIONÁRIO<br />
VENDEDOR<br />
ENGENHEIRO<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 91
Atributo X Entidade(s) Especializada(s)<br />
• Critérios:<br />
• O dado possui conjuntos de atributos particulares que<br />
possibilitam a criação de entidades especializadas?<br />
• Se sim, deve ser modelado como entidade(s).<br />
• Se não, pode ser modelado como atributo.<br />
• O dado possui conjuntos de atributos que possuem<br />
relacionamentos próprios?<br />
• Se sim, deve ser modelado como entidade(s).<br />
• Se não, pode ser modelado como atributo.<br />
• Essa opção não é muito utilizada.<br />
• A especialização pode ser total ou parcial, exclusiva ou<br />
compartilhada.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 92
Mantendo o Histórico dos Atributos<br />
• Como manter o histórico dos valores de salário de um<br />
funcionário, considerando que o salário é um atributo da<br />
entidade FUNCIONÁRIO?<br />
FUNCIONÁRIO<br />
salário<br />
• Nesse caso, o banco de dados irá armazenar apenas o salário<br />
atual do funcionário. O que deve ser feito para armazenar os<br />
salários que o funcionário recebeu ao longo do tempo?<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 93
Mantendo o Histórico dos Atributos<br />
• Considerando que será necessário armazenar os diversos salários<br />
de cada funcionário ao longo do tempo, o atributo salário passou<br />
a ser multivalorado e essa indicação deverá ser adicionada ao<br />
esquema E-R, acrescido das informações das datas em que o<br />
funcionário começou e terminou de receber cada um dos<br />
salários, que também serão atributos multivalorados.<br />
FUNCIONÁRIO<br />
salário (1,n)<br />
dtinicio (1,n)<br />
dtfim (0,n)<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 94
Mantendo o Histórico dos Relacionamentos<br />
• Como manter o histórico do relacionamento entre as entidades<br />
FUNCIONÁRIO e FUNÇÃO, mostrado abaixo:<br />
FUNCIONÁRIO<br />
(0,n) (1,1)<br />
EXERCE<br />
FUNÇÃO<br />
• Nesse caso, cada funcionário só pode exercer uma função. O que<br />
deve ser feito para armazenar as funções que o funcionário já<br />
exerceu ao longo do tempo?<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 95
Mantendo o Histórico dos Atributos<br />
• Considerando que será necessário armazenar as diversas funções<br />
exercidas por cada funcionário ao longo do tempo, o<br />
relacionamento entre FUNCIONÁRIO e FUNÇÃO passa a ser de<br />
N:N, considerando que cada funcionário pode exercer várias<br />
funções, sendo apenas uma a cada instante. É necessário colocar<br />
no relacionamento as datas em que o funcionário começou e<br />
terminou de exercer cada função.<br />
FUNCIONÁRIO<br />
(0,n)<br />
EXERCE<br />
(1,n)<br />
FUNÇÃO<br />
dtinicio<br />
dtfim<br />
O <strong>Modelo</strong> <strong>Conceitual</strong><br />
24/10/2019 96
Copyright © 2019 Nilton Freire Santos.<br />
Todos os direitos reservados.<br />
O <strong>Modelo</strong> <strong>Conceitual</strong> 24/10/2019 97