BDTec - O Modelo Entidade-Relacionamento
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Banco de Dados<br />
O <strong>Modelo</strong><br />
<strong>Entidade</strong>-<strong>Relacionamento</strong><br />
Curso Técnico em Informática 27/05/2019<br />
1
O <strong>Modelo</strong> <strong>Entidade</strong>-<strong>Relacionamento</strong><br />
• É um modelo conceitual de dados, criado por Peter Chen, em<br />
1976.<br />
• É um modelo usado para representar de forma<br />
abstrata a estrutura dos elementos que irão<br />
constituir um banco de dados.<br />
• A representação gráfica desse modelo é denominada de<br />
Diagrama <strong>Entidade</strong>-<strong>Relacionamento</strong> (DER), que representa os<br />
dados do sistema e as associações que existem entre eles.<br />
• Permite separar os dados que serão armazenados no banco de<br />
dados das atividades que serão realizadas utilizando esses dados,<br />
representadas pelas associações entre eles.<br />
Modelagem de Dados<br />
27/05/2019<br />
2
O Diagrama <strong>Entidade</strong>-<strong>Relacionamento</strong><br />
• Exemplo:<br />
• Vamos considerar a necessidade de armazenar os dados dos<br />
clientes, funcionários, produtos e pedidos feitos pelos<br />
clientes.<br />
• É necessário armazenar os valores para cada um desses itens<br />
(dados) e também definir como eles se relacionam (atividades<br />
entre eles).<br />
• O Diagrama <strong>Entidade</strong>-<strong>Relacionamento</strong> possibilita, portanto, a<br />
representação gráfica tanto dos dados como das associações<br />
que existem entre eles.<br />
Modelagem de Dados<br />
27/05/2019<br />
3
O <strong>Modelo</strong> <strong>Entidade</strong>-<strong>Relacionamento</strong><br />
• É formado por três elementos básicos:<br />
✓ <strong>Entidade</strong>s: são as “coisas” significativas, sobre as quais se<br />
deseja obter informações. São os dados genéricos do sistema.<br />
Exemplo: clientes, funcionários, pedidos e produtos.<br />
✓ <strong>Relacionamento</strong>s: são as associações que existem entre as<br />
entidades.<br />
Exemplo: clientes estão associados e pedidos.<br />
✓ Atributos: são os dados que descrevem as características de<br />
cada entidade ou relacionamento.<br />
Exemplo: <strong>Entidade</strong> CLIENTE. Atributos: nome do cliente,<br />
cpf, rg, endereço e telefone.<br />
Modelagem de Dados<br />
27/05/2019<br />
4
<strong>Entidade</strong>s<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> Conceitual 27/05/2019 5
<strong>Entidade</strong>s<br />
CLIENTE<br />
CONTA<br />
4 ocorrências 5 ocorrências<br />
Modelagem de Dados<br />
27/05/2019<br />
6
<strong>Entidade</strong>s<br />
• <strong>Entidade</strong> CLIENTE:<br />
atributos<br />
ocorrências<br />
codigo 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 />
Modelagem de Dados 27/05/2019 7
<strong>Entidade</strong>s<br />
• São representadas graficamente por um retângulo com um nome<br />
único, singular e em caixa alta.<br />
• Exemplo:<br />
✓ Um cliente pode fazer vários pedidos, sendo cada um deles<br />
atendido por um funcionário. Cada pedido pode possuir de<br />
um a vários produtos e um produto pode aparecer em<br />
diversos pedidos.<br />
CLIENTE<br />
FUNCIONÁRIO<br />
PEDIDO<br />
PRODUTO<br />
Modelagem de Dados 27/05/2019 8
<strong>Relacionamento</strong>s<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 />
Modelagem de Dados 27/05/2019 9
<strong>Relacionamento</strong>s<br />
CLIENTE<br />
CONTA<br />
• Um cliente possui uma ou mais contas<br />
• Uma conta pertence a um ou mais clientes<br />
Modelagem de Dados 27/05/2019 10
<strong>Relacionamento</strong>s<br />
• São representadas graficamente por um losango com um nome<br />
singular em caixa alta.<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 />
Modelagem de Dados 27/05/2019 11
Identificando <strong>Relacionamento</strong>s<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 />
• <strong>Entidade</strong>s e relacionamentos identificados:<br />
?<br />
Modelagem de Dados 27/05/2019 12
Identificando <strong>Relacionamento</strong>s<br />
Diagrama <strong>Entidade</strong>-<strong>Relacionamento</strong><br />
FUNCIONÁRIO<br />
ATENDE<br />
CLIENTE<br />
FAZ<br />
PEDIDO<br />
CONTÉM<br />
PRODUTO<br />
Modelagem de Dados 27/05/2019 13
Cardinalidade de <strong>Relacionamento</strong>s<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 uma 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 - pode existir ocorrências da entidade que não participam<br />
do relacionamento (opcional).<br />
• 1 - sempre vai existir ocorrências da entidade participando<br />
do relacionamento (obrigatório).<br />
Modelagem de Dados 27/05/2019 14
Cardinalidade de <strong>Relacionamento</strong>s<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 uma entidade.<br />
• Pode assumir os valores de:<br />
• 1 - no máximo uma ocorrência da entidade participa do<br />
relacionamento.<br />
• n - no máximo, muitas ocorrências da entidade participam<br />
do relacionamento.<br />
Modelagem de Dados 27/05/2019 15
Cardinalidade de <strong>Relacionamento</strong>s<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 />
Modelagem de Dados 27/05/2019 16
Cardinalidade de <strong>Relacionamento</strong>s<br />
CLIENTE<br />
(1,1) (0,n)<br />
FAZ<br />
PEDIDO<br />
CLIENTE<br />
PEDIDO<br />
DIAGRAMA DE OCORRÊNCIAS<br />
Modelagem de Dados 27/05/2019 17
<strong>Relacionamento</strong> 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 />
Modelagem de Dados 27/05/2019 18
<strong>Relacionamento</strong> 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 />
Modelagem de Dados 27/05/2019 19
Cardinalidade Máxima<br />
• <strong>Relacionamento</strong> de Um para Um – 1:1:<br />
• Uma ocorrência da entidade A relaciona-se, no máximo, com<br />
somente uma ocorrência da entidade B e vice-versa.<br />
CURSO<br />
Curso 1<br />
Curso 2<br />
Curso 3<br />
Curso 4<br />
Curso 5<br />
Curso 6<br />
COORDENADOR<br />
Coordenador A<br />
Coordenador B<br />
Coordenador C<br />
Coordenador D<br />
Coordenador E<br />
Modelagem de Dados 27/05/2019 20
Cardinalidade Máxima<br />
• <strong>Relacionamento</strong> de Um para Muitos – 1:N:<br />
• Uma ocorrência da entidade A relaciona-se, no máximo, com<br />
muitas ocorrências da entidade B, mas cada ocorrência da<br />
entidade B somente pode estar relacionada a uma ocorrência<br />
da entidade A.<br />
PROFESSOR<br />
Professor 1<br />
Professor 2<br />
Professor 3<br />
Professor 4<br />
Professor 5<br />
DISCIPLINA<br />
Disciplina A<br />
Disciplina B<br />
Disciplina C<br />
Disciplina D<br />
Disciplina E<br />
Disciplina F<br />
Modelagem de Dados 27/05/2019 21
Cardinalidade Máxima<br />
• <strong>Relacionamento</strong> de Muitos para Muitos – N:N:<br />
• Uma ocorrência da entidade A relaciona-se, no máximo, com<br />
muitas ocorrências da entidade B e vice versa.<br />
ALUNO<br />
Aluno 1<br />
Aluno 2<br />
Aluno 3<br />
Aluno 4<br />
Aluno 5<br />
DISCIPLINA<br />
Disciplina A<br />
Disciplina B<br />
Disciplina C<br />
Disciplina D<br />
Disciplina E<br />
Disciplina F<br />
Disciplina G<br />
Modelagem de Dados 27/05/2019 22
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 />
Modelagem de Dados 27/05/2019 23
Atributos<br />
• Descrevem as características de uma entidade ou relacionamento.<br />
• São representados graficamente por um círculo ou elipse.<br />
endereço<br />
fone<br />
duracao<br />
periodo<br />
ALUNO<br />
(0,n)<br />
CURSA<br />
(0,n)<br />
DISCIPLINA<br />
matricula<br />
nome<br />
media<br />
frequencia<br />
iddisc<br />
nome<br />
fone<br />
endereco<br />
matricula<br />
ALUNO<br />
nome<br />
O <strong>Modelo</strong> Conceitual 27/05/2019 24
Tipos de Atributos<br />
• Atributo Simples: é aquele que não pode ser dividido. É também<br />
chamado de atômico. Representa uma característica de uma<br />
entidade ou de um relacionamento, podendo armazenar valores<br />
repetidos.<br />
• <strong>Entidade</strong>: CLIENTE<br />
• Atributos: bairro, fone<br />
fone<br />
CLIENTE<br />
bairro<br />
O <strong>Modelo</strong> Conceitual 27/05/2019 25
Tipos de Atributos<br />
• Atributo Composto: é aquele formado pela junção de vários<br />
valores.<br />
• <strong>Entidade</strong>: CLIENTE<br />
• Atributos: endereco (rua, numero, complemento, bairro,<br />
cidade, estado, cep).<br />
CLIENTE<br />
endereco<br />
rua<br />
numero<br />
complemento<br />
bairro<br />
cidade<br />
estado<br />
cep<br />
O <strong>Modelo</strong> Conceitual 27/05/2019 26
Tipos de Atributos<br />
• Atributo Identificador: é aquele que identifica cada ocorrência<br />
de uma entidade de forma única.<br />
• <strong>Entidade</strong>: 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> Conceitual 27/05/2019 27
Tipos de Atributos<br />
• Atributo Derivado: é aquele cujo valor pode ser obtido a partir<br />
do valor de outro atributo.<br />
• <strong>Entidade</strong>: FUNCIONARIO<br />
• Atributos: idade (derivado a partir da data de nascimento)<br />
x<br />
idade<br />
FUNCIONARIO<br />
• Os atributos derivados não devem ser colocados no diagrama<br />
<strong>Entidade</strong>-<strong>Relacionamento</strong>.<br />
O <strong>Modelo</strong> Conceitual 27/05/2019 28
Tipos de Atributos<br />
• Atributo Referencial: é aquele que estabelece um relacionamento<br />
entre duas entidades.<br />
• <strong>Entidade</strong>: PEDIDO<br />
• Atributo: codcliente<br />
idcliente<br />
CLIENTE<br />
(1,1) (0,n)<br />
FAZ<br />
PEDIDO<br />
idcliente<br />
idpedido<br />
• Os atributos referenciais não devem ser colocados no diagrama<br />
<strong>Entidade</strong>-<strong>Relacionamento</strong>.<br />
O <strong>Modelo</strong> Conceitual 27/05/2019 29
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> Conceitual 27/05/2019 30
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> Conceitual 27/05/2019 31
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> Conceitual 27/05/2019 32
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> Conceitual 27/05/2019 33
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 />
• 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> Conceitual 27/05/2019 34
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> Conceitual 27/05/2019 35
Copyright © 2019 Nilton Freire Santos.<br />
Todos os direitos reservados.<br />
O <strong>Modelo</strong> Lógico 27/05/2019 36