28.05.2019 Views

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!