Вы находитесь на странице: 1из 120

Estrutura de Dados e

Sistemas de Integração
Eng. Controle Automação
2°/2013
Modelo
Entidade/Relacionamento
Prof. Alexandre Wagner C. Faria
Material adaptado do Livro: Sistema de Banco de Dados (Silberschatz, Korth, Sudarshan), Prof. Ronaldo C.M. Correia,
Vania Bogorny UFSC, Prof. (Me.) Eduardo Tieppo Dom Bosco
Sistema de Banco de Dados, 5/E

Modelo entidade-relacionamento

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Modelo entidade-relacionamento

Processo de projeto
Modelagem
Restrições
Diagrama ER
Aspectos de projeto

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Modelo Entidade-Relacionamento

Modelo desenvolvido por Chen em 1976


Diversas extensões e notações foram definidas ao longo do tempo
Provê ao usuário um alto nível de abstração, e por conseguinte facilita
a construção de um esquema de BD
A estrutura lógica do BD pode ser expressa graficamente pelo
diagrama E-R
Popular
Simplicidade e Expressividade
Um banco de dados representado por um modelo E-R, pode ser
representado por uma coleção de tabelas
O mapeamento entre os modelos E-R e Relacional é relativamente
simples.
Existem várias ferramentas destinadas a mapear o Modelo E-R para
Relacional
É também chamado de esquema E-R ou diagrama E-R
Sistema de Banco de Dados, 5/E

Modelo Entidade-Relacionamento
Os dados do mundo real são representados por meio de conjuntos de
entidades, relacionamentos entre esses e atributos que os caracterizam
Conjunto de Entidades: representa um conjunto de elementos do
mundo real que têm a mesma “estrutura” e o mesmo “significado”
Estrutural e semanticamente iguais
Ex: Pessoas
Entidade: elemento do conjunto de entidades identificado por
características individuais definidas por meio do conceito de atributos
Ex: “coisas”, objetos, pessoas (Murilo)
Atributos: Propriedades que descrevem a entidade ou o relacionamento
entre entidades
Relacionamento: conjunto de associações entre conjunto de entidades;
podem ser caracterizados por atributos
Sistema de Banco de Dados, 5/E

Modelagem

Um banco de dados pode ser modelado como:


Uma coleção de entidades,
Relacionamento entre entidades.
Uma entidade é um objeto que existe e é distinguível de outros objetos.
Exemplo: pessoa, empresa, evento e planta específicos
Entidades possuem atributos
Exemplo: pessoas têm nomes e endereços
Um conjunto de entidades é um grupo de entidades do mesmo tipo que
compartilham as mesmas propriedades.
Exemplo: conjunto de todas as pessoas, empresas, árvores, feriados

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Conjuntos de entidades cliente


e empréstimo

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Conjuntos de relacionamento
Um relacionamento é uma associação entre várias entidades
Exemplo:

Hayes depositante A-102


entidade cliente conjunto de relacionamento entidade conta
Um conjunto de relacionamento é uma relação matemática entre n ≥ 2
entidades, cada uma tomada de conjuntos de entidades
{(e1, e2, … en) | e1 ∈ E1, e2 ∈ E2, …, en ∈ En}
onde (e1, e2, …, en) é um relacionamento

Exemplo:
(Hayes, A-102) ∈ depositante

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Conjunto de relacionamento tomador

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Conjuntos de relacionamento (cont.)


Um atributo também pode ser uma propriedade de um conjunto de
relacionamento.

Por exemplo, o relacionamento depositante entre os conjuntos


de entidades cliente e conta pode ter o atributo data-acesso

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Grau de um conjunto de relacionamento


Refere-se ao número de conjuntos de entidades que participam em
um conjunto de relacionamento.
Os conjuntos de relacionamento que envolvem dois conjuntos de
entidades são binários (ou de grau 2). Geralmente, a maioria dos
conjuntos de relacionamento em um sistema de banco de dados são
binários.
Os conjuntos de relacionamento podem envolver mais de dois
conjuntos de entidades.
Exemplo: Suponha que os funcionários de um banco possam ter
atividades (responsabilidades) em várias agências, com
diferentes cargos em diferentes agências. Então, existe um
conjunto de relacionamento ternário entre os conjuntos de
entidades funcionário, cargo e ag
Os relacionamentos entre mais de dois conjuntos de entidades são
rados. A maioria dos relacionamentos é binária. (Mais sobre isso
posteriormente.)

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Atributos

Uma entidade é representada por um conjunto de atributos, que são


propriedades descritivas processadas por todos os membros de um conjunto
de entidades.
– Exemplo:
cliente = id_cliente, nome_cliente ,
rua_cliente, cidade_cliente)
empréstimo = (número_empréstimo, conta)

Domínio – o conjunto de valores permitidos para cada atributo


Tipos de atributo:
Atributos simples e compostos.
Atributos de valor único e de valores múltiplos
Exemplo: atributo de valores múltiplos: números_telefone
Atributos derivados
Podem ser calculados a partir de outros atributos
Exemplo: idade, dado data_nascimento

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Atributos compostos

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Resumo dos símbolos usados na notação ER

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Atributos
Valores que representam propriedades das entidades e relacionamentos
no mundo real
Tipos:
Atributo Monovalorado: possui um valor para cada entidade que
caracteriza
Idade
Atributo Multivalorado: possui mais de um valor para cada entidade que
caracteriza

Telefones
Atributo Composto: quando o atributo tem vários subcampos
Cidade
Rua Estado

Endereço

Atributo Derivado: quando o valor de um atributo é obtido por meio de


valores de outros atributos. Ex: tempo_de_casa pode ser derivado do valor
da data_contratação
Tempo_de_casa
Sistema de Banco de Dados, 5/E

Atributos

Chave = Atributo ou um conjunto de atributos que, com seus


valores, consiga identificar uma única entidade dentro do conjunto
de entidades
Uma chave deve ser mínima no sentido de que se a chave for
composta, nenhum atributo que a compõe poderá ser retirado, e
ainda sim, a composição resultante continuar sendo chave
É o principal meio de acesso a uma entidade
Outras possíveis chaves não são indicadas no diagrama, e não
são contempladas pelo MER, mas podem ser anotadas
separadamente, para efeito de documentação
Chave Composta: mais de um atributo compõe a chave de um
conjunto de entidades. A concatenação de todos eles indica a
chave única
Notação DER: grifar atributo chave

RA
Sistema de Banco de Dados, 5/E
Banco de Dados: Modelo Entidade-Relacionamento

Tipos de atributos:
Simples Indivisível, atômico (p.ex. peso, altura, valor, etc.)
Composto Divisível (p.ex. endereço, que pode ser divisível em logradouro, cep, etc.)
Monovalorado Permite unicamente um conteúdo (p.ex. nome, data de nascimento, etc.)
Multivalorado Permite vários conteúdos simultaneamente (p.ex. dependentes de
funcionário, telefone, etc.).
Pode-se solucionar isto, tratando-o como uma entidade fraca, a qual
depende de outra, chamada dominante (forte).
Nulo Permite conteúdo inexistente (o não preenchimento com algum valor)
Derivado Resultante de algum cálculo ou decisão evitar! (p.ex. idade, tempo de
casa, etc.)
Descritivo Especifica uma determinada situação em um determinado momento
(p.ex. a situação de uma conta corrente em uma determinada data), e
que não faz parte do conjunto de atributos de uma entidade, e, sim, de
um relacionamento.
Identificador Identifica uma entidade em seu conjunto de entidades. Se em um
conjunto fraco, pode-se repetir, visto que é dependente do conjunto de
entidades dominante...
BD – Modelagem
Sistema de Banco de Dados, 5/E

A abordagem Entidade-Relacionamento

• Modelo E-R

1,1 1,N
Entidade 1 Relacionamento Entidade 2

Atributo
1 Atributo
2

– Entidades
– Atributos
– Relacionamentos
– Cardinalidade

18 / 43
Sistema de Banco de Dados, 5/E

Tipos de Atributos

• Exemplo de tipos de atributos

CPF
PESSOA RG
Nome Todos esses
Data de Nascimento atributos têm o
Idade mesmo tipo?
Endereço
Telefone
Sexo
Estado Civil
Profissão
E-mail

19 / 43
Sistema de Banco de Dados, 5/E

Tipos de Atributos

• Tipos de atributos

– Simples ou compostos
– Monovalorados ou Multivalorados
– Nulos
– Derivados
– Chaves

20 / 43
Sistema de Banco de Dados, 5/E

Tipos de Atributos

• Exemplo de tipos de atributos

CPF Simples
PESSOA RG
Nome Qualquer atributo
Data de Nascimento representado por um
Idade dado simples.
Endereço
Telefone
Sexo CPF
Estado Civil
Profissão
E-mail

21 / 43
Sistema de Banco de Dados, 5/E

Tipos de Atributos

• Exemplo de tipos de atributos

CPF Composto
PESSOA RG
Nome Um atributo divisível
Data de Nascimento em outros atributos.
Idade
Endereço N.º
CE
Telefone Rua
P
Sexo
Estado Civil
Profissão Endereço

E-mail

22 / 43
Sistema de Banco de Dados, 5/E

Tipos de Atributos

• Exemplo de tipos de atributos

CPF Monovalorado
PESSOA RG
Nome Atributos que
Data de Nascimento possuem um único
Idade valor quando
Endereço instanciados.
Telefone
Sexo Data de
Estado Civil Nascimento

Profissão
E-mail

23 / 43
Sistema de Banco de Dados, 5/E

Tipos de Atributos

• Exemplo de tipos de atributos

CPF Multivalorado
PESSOA RG
Nome Atributos que
Data de Nascimento possuem um
Idade conjunto de valores
Endereço para uma mesma
Telefone instância.
Sexo
Estado Civil Telefone
Profissão
E-mail

24 / 43
Sistema de Banco de Dados, 5/E

Tipos de Atributos

• Exemplo de tipos de atributos

CPF Nulo
PESSOA RG
Nome Atributos que não
Data de Nascimento possuem um valor para
Idade uma Entidade
Endereço instanciada.
Telefone
Sexo
E-mail
Estado Civil
Profissão
E-mail

25 / 43
Sistema de Banco de Dados, 5/E

Tipos de Atributos

• Exemplo de tipos de atributos

CPF Derivado
PESSOA RG
Nome Atributos que podem ser
Data de Nascimento obtidos através da
Idade relação com outros
Endereço atributos.
Telefone
Sexo
Idade
Estado Civil
Profissão
E-mail

26 / 43
Sistema de Banco de Dados, 5/E

Tipos de Atributos

• Exemplo de tipos de atributos

CPF Chave
PESSOA RG
Nome Atributos que identificam
Data de Nascimento uma instância da
Idade Entidade de maneira
Endereço ÚNICA.
Telefone
Sexo
CPF
Estado Civil
Profissão
E-mail

27 / 43
Sistema de Banco de Dados, 5/E

Restrições de cardinalidade
de mapeamento
Expressam o número de entidades ao qual outra entidade pode
ser associada através de um conjunto de relacionamento.
Normalmente são úteis em descrever conjuntos de relacionamento
binários.
Para um conjunto de relacionamento binário, a cardinalidade de
mapeamento precisa ser de um dos seguintes tipos:
Um-para-um
Um-para-muitos
Muitos-para-um
Muitos-para-muitos

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Cardinalidades de mapeamento

• Um-para-um
• Um-para-muitos
• Nota: Alguns elementos em A e B podem não ser mapeados para
quaisquer elementos no outro conjunto.

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Cardinalidades de mapeamento

• Muitos-para-um
• Muitos-para-muitos
• Nota: Alguns elementos em A e B podem não ser mapeados para
quaisquer elementos no outro conjunto.

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Relacionamento Um para Um – 1:1


Uma ocorrência de A está associada a no máximo uma ocorrência
de B, e uma ocorrência em B está associada a no máximo uma
ocorrência em A.

João Contabilidade

Pedro Financeiro
Conjunto A
(Empregado)
Jurídico
Paulo

Maria Conjunto B
(Departamento)

Empregado Gerencia 1 Departamento


1

Modelo Entidade-Relacionamento 31
(ER)
Sistema de Banco de Dados, 5/E

Relacionamento Um para Muitos –


1:N
Uma ocorrência de A está associada a várias ocorrências de B, porém
uma ocorrência de B deve estar associada a no máximo uma
ocorrência em A

João

Contabilidade
Sandro
Conjunto A
(Departamento)
Financeiro Pedro

Ana Conjunto B
(Empregado)

Departamento Lotação N Empregado


1

Modelo Entidade-Relacionamento 32
(ER)
Sistema de Banco de Dados, 5/E
Relacionamento Muitos para Muitos – M:N ou N:N

Uma ocorrência de A está associada a qualquer número de ocorrências


de B, e uma ocorrência em B está associada a qualquer número de
ocorrências em A

João Sinpli

Pedro AATOM Conjunto B


Conjunto A (Projeto)
(Empregado)
MM-TOM
Paulo

Sigmoda
Maria

Empregado N Atua N Projeto

Modelo Entidade-Relacionamento 33
(ER)
Sistema de Banco de Dados, 5/E

Chaves
Uma superchave de um conjunto de entidades é um conjunto de um ou mais
atributos cujos valores determinam unicamente cada entidade.

Uma chave candidata de um conjunto de entidades é uma superchave mínima

Id_cliente é uma chave candidata de cliente


número_conta é uma chave candidata de conta

Embora possam existir várias chaves candidatas, uma das chaves candidatas
é selecionada para ser a chave primária.

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Chaves para conjuntos de relacionamento


A combinação de chaves primárias dos conjuntos de entidades
participantes forma uma superchave de um conjunto de
relacionamento.
(id_cliente, número_conta) é a superchave de depositante
NOTA: isso significa que um par de conjuntos de entidades pode
ter no máximo um relacionamento em um determinado conjunto
de relacionamento.

Exemplo: Se desejarmos acompanhar todas as datas de acesso a


cada conta por cada cliente, não podemos considerar um
relacionamento para cada acesso. Entretanto, podemos usar um
atributo de valores múltiplos.
Precisam considerar a cardinalidade de mapeamento do conjunto de
relacionamento quando decidir quais são as chaves candidatas
Precisam considerar a semântica do conjunto de relacionamento ao
selecionar a chave primária no caso de mais de uma chave candidata

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Diagramas ER

Retângulos representam conjuntos de entidades.


Losangos representam conjuntos de relacionamento.
Linhas vinculam atributos a conjuntos de entidades e estes a conjuntos de
relacionamento.
Elipses representam atributos
Elipses duplas representam atributos de valores múltiplos.
Elipses tracejadas indicam atributos derivados.
Sublinhados indicam atributos de chave primária (que veremos mais tarde)

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Relacionamentos com Atributos

Carga
Horária
Nom Nota para
Endereç Nome
CP e aprovaçã
F o
o
0,M 1,N
ALUNO frequenta CURSO

?
Quantidad Data de
e de faltas Média inscrição
final

37 / 43
Sistema de Banco de Dados, 5/E

Relacionamentos com Atributos

Carga
Horária
Nom Nota para
Endereç Nome
CP e aprovaçã
F o
o
0,M 1,N
ALUNO frequenta CURSO

Quantidad Data de
e de faltas Média inscrição
final

38 / 43
Sistema de Banco de Dados, 5/E

Relacionamentos com Atributos

Carga
Horária
Nome Nota para
aprovaçã
o
ALUNO
0,M 1,N
CPF frequenta CURSO
Nome
Endereço

Quantidad Data de
e de faltas Média inscrição
final

39 / 43
Sistema de Banco de Dados, 5/E

Relacionamentos com Atributos

ALUNO CURSO
0,M 1,N
CPF frequenta Nome
Nome Carga Horária
Endereço Nota para
aprovação

Quantidad Data de
e de faltas Média inscrição
final

40 / 43
Sistema de Banco de Dados, 5/E

Relacionamentos com Atributos

ALUNO ALUNO_CURSO CURSO


CPF Quantidade de Nome
Nome faltas Carga Horária
Endereço Média final Nota para
Data de inscrição aprovação

41 / 43
Sistema de Banco de Dados, 5/E

Relacionamentos com Atributos

ALUNO ALUNO_CURSO
CPF ALUNO_CPF CURSO
Nome CURSO_Nome Nome
Endereço Quantidade de Carga Horária
faltas Nota para
Média final aprovação
Data de inscrição

42 / 43
Sistema de Banco de Dados, 5/E

Relacionamentos com Atributos

Tipo de Atributo:
Chave Estrangeira

ALUNO ALUNO_CURSO
CPF ALUNO_CPF CURSO
Nome CURSO_Nome Nome
Endereço Quantidade de Carga Horária
faltas Nota para
Média final aprovação
Data de inscrição

43 / 43
Sistema de Banco de Dados, 5/E

Relacionamentos com Atributos

ALUNO ALUNO_CURSO
CPF ALUNO_CPF CURSO
Nome CURSO_Nome Nome
Endereço Quantidade de Carga Horária
faltas Nota para
Média final aprovação
Data de inscrição

44 / 43
Sistema de Banco de Dados, 5/E

Relacionamentos com Atributos

ALUNO ALUNO_CURSO
012.333.470- ALUNO_CPF CURSO
90 CURSO_Nome Nome
Jimmy Five Quantidade de Carga Horária
Av. Paraná faltas Nota para
Média final aprovação
Data de inscrição

45 / 43
Sistema de Banco de Dados, 5/E

Relacionamentos com Atributos

ALUNO ALUNO_CURSO
012.333.470- ALUNO_CPF CURSO
90 CURSO_Nome Informática
Jimmy Five Quantidade de 40
Av. Paraná faltas 8.0
Média final
Data de inscrição

46 / 43
Sistema de Banco de Dados, 5/E

Relacionamentos com Atributos

Qual a nota de Jimmy Five no curso de Informática?

ALUNO ALUNO_CURSO
012.333.470- ALUNO_CPF CURSO
90 CURSO_Nome Informática
Jimmy Five Quantidade de 40
Av. Paraná faltas 8.0
Média final
Data de inscrição

47 / 43
Sistema de Banco de Dados, 5/E

Relacionamentos com Atributos

Qual a nota de Jimmy Five no curso de Informática?

ALUNO ALUNO_CURSO
012.333.470- 012.333.470-90 CURSO
90 Informática Informática
Jimmy Five Quantidade de 40
Av. Paraná faltas 8.0
Média final
Data de inscrição

48 / 43
Sistema de Banco de Dados, 5/E

Relacionamentos com Atributos

Qual a nota de Jimmy Five no curso de Informática?


8.5 pontos.

ALUNO ALUNO_CURSO
012.333.470- 012.333.470-90 CURSO
90 Informática Informática
Jimmy Five 2 40
Av. Paraná 8.5 8.0
06/02/2012

49 / 43
Sistema de Banco de Dados, 5/E

Resumo dos símbolos usados na notação ER

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Diagrama ER com atributos compostos,


derivados e de valores múltiplos

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Conjuntos de relacionamento
com atributos

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Funções
Conjuntos de entidades de um relacionamento não precisam ser distintos

Os rótulos “gerente” e “funcionário” são chamados funções; eles especificam como as


entidades de funcionário interagem através do conjunto de relacionamento trabalha_para.

As funções são indicadas nos diagramas ER rotulando as linhas que conectam os


losangos aos retângulos.

Os rótulos de função são opcionais e são usados para esclarecer a semântica do


relacionamento

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Restrições de cardinalidade

Expressamos as restrições de cardinalidade desenhando uma linha


→), significando “um”, ou uma linha não direcionada (—),
direcionada (→
significando “muitos”, entre o conjunto de relacionamento e o conjunto
de entidades.

Relacionamento um-para-um:
Um cliente está associado, no máximo, a um empréstimo através do
relacionamento tomador
Um empréstimo está associado, no máximo, a um cliente através de
tomador

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Relacionamento um-para-muitos
No relacionamento um-para-muitos, um empréstimo está associado,
no máximo, a um cliente através de tomador, um cliente está
associado a vários (inclusive 0) empréstimos através de tomador

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Relacionamento muitos-para-um
Em um relacionamento muitos-para-um, um empréstimo está associado a
vários (inclusive 0) clientes através de tomador, um cliente está associado,
no máximo, a um empréstimo através de tomador

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Relacionamento muitos-para-muitos
Um cliente está associado a vários (possivelmente 0)
empréstimos através de tomador

Um empréstimo está associado a vários (possivelmente 0)


clientes através de tomador

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Participação de um conjunto de entidades


em um conjunto de relacionamento
Participação total (indicada por uma linha dupla): cada entidade no conjunto de
entidades participa no mínimo em um relacionamento no conjunto de
relacionamento
Por exemplo, a participação de empréstimo em tomador é total
Cada empréstimo precisa ter um cliente associado através de tomador
Participação parcial: algumas entidades podem não participar em
relacionamento algum no conjunto de relacionamento
Exemplo: a participação de cliente em tomador é parcial

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Notação alternativa para limites


de cardinalidade
Os limites de cardinalidade também podem expressar restrições de
participação

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Auto-Relacionamento (Relacionamento
Unário)
• Relacionamento entre ocorrências da mesma
entidade
Empregado Pessoa

supervisionado supervisor Marido Esposa

(1,1) (0,1) (0,1)


(0,N)
supervisiona casadoCom

supervisionada esposa
João Roberto
Pedro Pedro
supervisor marido
Paulo Felipe
Maria Ana
Modelo Entidade-Relacionamento 60
(ER)
Sistema de Banco de Dados, 5/E

Relacionamento Binário e Ternário


Binário

Empregado (1,N )
trabalha
(1,1 )
Departamento

Ternário Cidade Distribuidor

(1,N) (1,1)
distribuição

(1,N)

Produto

61
Sistema de Banco de Dados, 5/E

Diagrama ER com um relacionamento


ternário

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Conjuntos de entidades fracos


Um conjunto de entidades que não possui uma chave primária
é chamado de conjunto de entidades fraco.
A existência de um conjunto de entidades fraco depende da
existência de um conjunto de entidades identificador
Ele precisa se relacionar com o conjunto de entidades identificador
através de um conjunto de relacionamento um-para-muitos total, do
identificador para o conjunto de entidades fraco
Relacionamento identificador descrito usando um losango duplo
O discriminador (ou chave parcial) de um conjunto de entidades
fraco é o conjunto de atributos que distingue entre todas as
entidades de um conjunto de entidades fraco.
A chave primária de um conjunto de entidades fraco é formada
pela chave primária do conjunto de entidades forte em que o
conjunto de entidades fraco é dependente de existência, mais o
discriminador do conjunto de entidades fraco.

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Conjuntos de entidades fracos (cont.)

Representamos um conjunto de entidades fraco por retângulos duplos.


Sublinhamos o discriminador de um conjunto de entidades fraco com uma
linha tracejada.
número_pagamento — discriminador do conjunto de entidades pagamento.
Chave primária para pagamento — (número_empréstimo, número_pagamento)

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Mais exemplos de conjunto de entidades


fraco
Em uma universidade, um curso é uma entidade forte e uma
oferta_curso pode ser modelada como uma entidade fraca

O discriminador de oferta_curso seria semestre (incluindo ano) e


número_seção (se houver mais de uma seção)

Se modelarmos oferta_curso como uma entidade forte,


modelaríamos número_curso como um atributo.

Então, o relacionamento com curso estaria implícito no atributo


número_curso

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Diagrama ER para uma instituição Ex: 100


bancária
-Faça o preenchimento
de pelo menos 2
instancias (completo)
para o modelo
apresentado
-Liste, em forma de
tabelas, os conjuntos
de entidades e seus
atributos e chaves
primárias;
-Descreva cada
relacionamento,
relatando quem está
associado a ele;
-Formule o problema a
partir deste diagrama.
Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E

Resumo dos símbolos usados na notação ER

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Resumo dos símbolos (cont.)

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Diagrama ER - Ex: 101

-Faça o preenchimento
de pelo menos 2
instancias (completo)
para o modelo
apresentado
-Liste, em forma de
tabelas, os conjuntos
de entidades e seus
atributos e chaves
primárias;
-Descreva cada
relacionamento,
relatando quem está
associado a ele;
-Formule o problema a
partir deste diagrama.
Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E

Figura 6.8
Um para muitos

Muitos para um

Um para um

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Figura 6.16 Empréstimo como um


conjunto de relacionamento

Korth • Silberschatz • Sundarshan


Sistema de Banco de Dados, 5/E

Conjunto de Relacionamentos

Relacionamento é uma associação entre uma ou várias


entidades
Conjunto de Relacionamentos é um conjunto de
relacionamentos de mesmo tipo
Expressam uma rica semântica entre os conjuntos de
entidades por meio dos conceitos como:
Cardinalidade
Restrição de participação (total ou parcial)
Grau de Relacionamento
Esses conceitos impõem restrições aos dados que
alimentarão o banco de dados
Notação DER: losango
Trabalha
Sistema de Banco de Dados, 5/E

Conjunto de Relacionamentos

O grau de relacionamento: é o número de entidades


participantes
Binário, ternário, etc.
Dependendo do conjunto de entidades associadas entre si,
é necessário adicionar atributos em um relacionamento
Ex: Horas em Trabalha_Em entre Funcionário e Projeto
Exemplo MER:
Sistema de Banco de Dados, 5/E

Cardinalidade

A cardinalidade expressa o número de entidades as quais outra


entidade pode estar associada em um relacionamento
Para um
Um para um (1 para 1)
Uma entidade em A está associada no máximo a uma entidade em B, e
uma entidade em B está associada a no máximo uma entidade em A
Um para muitos (1 para N)
Uma entidade em A está associada a várias entidades em B. Uma
entidade em B, entretanto, deve estar associada no máximo a uma
entidade em A
Muitos para um (N para 1)
Uma entidade em A está associada a no máximo uma entidade em B.
Uma entidade em B, entretanto, pode estar associada a um número
qualquer de entidades em A
Muitos para muitos (N para N) - pode ser substituido por qualquer
outra letra, como M, P, Q)
Uma entidade em A está associada a qualquer número de entidades em B
e uma entidade em B está associada a um número qualquer de entidades
em A
Sistema de Banco de Dados, 5/E

Cardinalidade 1 para 1

Exemplos:
Um funcionário gerencia no máximo 1 departamento. Um
departamento é gerenciado por no máximo um
funcionário

1 1
Funcionário Gerencia Departamento

f1 d1

f2 d2

f3 d3
Sistema de Banco de Dados, 5/E

Cardinalidade 1 para muitos

Exemplos:
Um funcionário está lotado no máximo em 1
departamento. Um departamento tem até N funcionários
lotados nele

N 1
Funcionário Lotados Departamento

1 Sentido da leitura 1
f1 d1
N Sentido da leitura 1
f2
d2
f3
f4 d3
f5
Sistema de Banco de Dados, 5/E

Cardinalidade muitos para muitos

Exemplos:
Um funcionário participa de vários projetos. Um projeto
pode ter a participação de até N funcionários
f1 p1

f2 p2

f3 p3

N N
Funcionário Participação Projetos
Sistema de Banco de Dados, 5/E

Cardinalidade máxima e mínima

Indica se a participação das ocorrências de entidades


no relacionamento é obrigatória ou opcional

notação de par de cardinalidades:


(mínima, máxima)

(1,N) (0,1)
Funcionário Lotados Departamento

Um funcionário pode estar lotado no máximo em 1 departamento. Um departamento obrigatoriamente


tem até N empregados lotados nele
Sistema de Banco de Dados, 5/E

Cardinalidade máxima e mínima

(0,1) (0,1)
Funcionário Gerencia Departamento

(0,N) (0,N)
Funcionário Participação Projetos

(1,1) (0,2)
Funcionário Coordenação Projetos
Sistema de Banco de Dados, 5/E

Exercício
• Desenhe o DER para uma Locadora de DVDs,
usando os símbolos apresentados e as informações
abaixo:
Entidade Atributos
Cliente Nome, CPF, Endereço, Telefone, Data de Nascimento
DVD Código, Título, Duração, Gênero

Relacionamento Entidades Envolvidas Atributos


Aluga Cliente-DVD Data de Saída, Data de
Devolução, Preço
Sistema de Banco de Dados, 5/E

Exercício: Solução
Sistema de Banco de Dados, 5/E

Exercício 01
• Elaborar um diagrama E-R para uma seguradora de automóveis
• Entidades: Cliente, Apólice, Carro e Acidentes.
• Requisitos:
– a) Um cliente pode ter várias apólices (no mínimo uma);
– b) Cada apólice somente dá cobertura a um carro;
– c) Um carro pode ter zero ou n registros de acidentes a ele.
• Atributos:
– a) Cliente: Número, Nome e Endereço;
– b) Apólice: Número e Valor;
– c) Carro: Registro e Marca;
– d) Acidente: Data, Hora e Local;

Exercicios extraídos da UNIP – Universidade Paulista


Sistema de Banco de Dados, 5/E

Exercício 02
• Elaborar um diagrama E-R de um consultório clínico
• Entidades: Médico, Paciente e Exame.
• Requisitos:
– O banco de dados deverá armazenar informações
sobre os vários exames de um
– determinado paciente, com o resultado e o valor
pago (pode-se dar desconto para
– determinados pacientes);
• Atributos:
– a) Médico: Número, Nome e Especialidade;
– b) Paciente: Número, Nome, Endereço;
– c) Tipo Exame, Aceita Convênio, Requisitos, Valor
exame. Exercicios extraídos da UNIP – Universidade Paulista
Sistema de Banco de Dados, 5/E

Exercício 03
• Elaborar um diagrama para uma Indústria.
• Entidades: Peças, Depósitos, Fornecedor, Projeto, Funcionário e Departamento.
• Requisitos:
– a) Cada Funcionário pode estar alocado a somente um Departamento;
– b) Cada Funcionário pode pertencer a mais de um Projeto;
– c) Um projeto pode utilizar-se de vários Fornecedores e de várias Peças;
– d) Uma Peça pode ser fornecida por vários Fornecedores e atender a vários Projetos;
– e) Um Fornecedor pode atender a vários Projetos e fornecer várias Peças;
– f) Um Depósito pode conter várias Peças;
– g) Deseja-se ter um controle do material utilizado por cada Projeto, identificando inclusive
– o seu Fornecedor. Gravar as informações de data de Início e Horas Trabalhadas no
Projeto.
• Atributos:
– a) Peças: Número, Peso e Cor;
– b) Depósito: Número e Endereço;
– c) Fornecedor: Número e Endereço;
– d) Projeto: Número e Orçamento;
– e) Funcionário: Número, Salário e Telefone;
– f) Departamento: Número e Setor.

Exercicios extraídos da UNIP – Universidade Paulista


Sistema de Banco de Dados, 5/E

Exercício 04
Projetar um Banco de Dados satisfazendo as seguintes restrições e requisitos:
• a) Para um Vendedor, armazenar seu código, nome, endereço e comissão;
• b) Para um cliente, armazenar o seu código, nome, endereço, faturamento
acumulado e limite de crédito. Além disso, armazenar o código e o nome do
vendedor que o atende. Um vendedor pode atender muitos clientes, porém
um cliente deve ter exatamente um vendedor;
• c) Para uma peça, armazenar seu código, descrição, preço quantidade em
estoque e o número do armazém onde a peça está estocada. Uma peça
somente pode estar estocada num único armazém. Para um armazém,
armazenar seu código e endereço;
• d) Para um pedido, armazenar seu número, data, código, nome e endereço do
cliente, que fez o pedido e o código do vendedor para cálculo da comissão.
Além disso, para cada item do pedido armazenar o código da peça,
quantidade e preço cotado. Há somente um cliente por pedido e um vendedor;
• e) O preço cotado no pedido pode ser mesmo que o preço corrente no arquivo
de peças, mas não necessariamente.
Sistema de Banco de Dados, 5/E
Sistema de Banco de Dados, 5/E
Sistema de Banco de Dados, 5/E
Sistema de Banco de Dados, 5/E
Sistema de Banco de Dados, 5/E

Exercício – Formule o problema a


partir do diagrama ER
CPF (1,1)
Nome Professor regência
Salario
(1,1)

atuação

(0,N) (0,N)
(1,N) (1,N) (1,1)
(0,N)
Aluno Matrícula Turma da Disciplina

CPF Matricula nome Numero Sala horario Codigo nome numeroCreditos

90
Sistema de Banco de Dados, 5/E

Identificando Entidades
• Cada entidade deve ter um identificador
• Identificador (também conhecido como chave):
– É o conjunto de um ou mais atributos ou
relacionamentos cujos valores servem para distinguir
uma ocorrência da entidade das demais ocorrências da
mesma entidade

– Exemplo: os atributos CPF ou Carteira de Identidade


identificam UNICAMENTE um cidadão brasileiro
• Representação no Modelo
CPF NumeroCorredor
Nome NumeroPrateleira
Endereco Cliente Prateleira

91
Sistema de Banco de Dados, 5/E

Exercícios – Modelo E-R (Fixação De Conteúdo)

Hollywood possui diversos estúdios cinematográficos, cada estúdio


caracterizado por um nome único, um dono, data de fundação e o
faturamento do ano anterior.
Estes estúdios produzem filmes que possuem um nome único, o número
de meses que levou sendo feito, o ano de lançamento, o número do
copyright e o custo total do filme.
Em cada filme atuam atores, que possuem um nome artístico único, um
número de seguro social (também único), uma nacionalidade, idade,
sexo, e um conjunto de tipos de papéis para o qual seu tipo físico é
aconselhável (ex: avó, mocinha jovem, galã com idade avançada,
adolescente). Estes tipos de papéis não são pré-definidos, constituindo
uma lista preenchida a critério de cada ator.
Estúdios podem existir mesmo que ainda não tenham produzido um
filme, mas só são considerados atores os que já atuaram em pelo menos
um filme.
92 / 32
Sistema de Banco de Dados, 5/E

Exercício proposto - Resolução

.. .. .. ..
. . . .

ESTÚDIO

1,1

produz

.. .. ..
..
0,N . . .
1,N tem 1,N ..
. FILME atuaçã ATOR .
.. o
. . .
..
.. .. .. Tipo de
Papel

93 / 32
Sistema de Banco de Dados, 5/E

Exercício proposto - Resolução

94 / 32
Sistema de Banco de Dados, 5/E

Exercício proposto - Resolução

95 / 32
Sistema de Banco de Dados, 5/E

Exercício proposto - Resolução


Quais atores interpretam o papel de “Bruxo”?

96 / 32
Sistema de Banco de Dados, 5/E

Exercício proposto - Resolução


Quais atores interpretam o papel de “Bruxo”?

97 / 32
Sistema de Banco de Dados, 5/E

Exercício proposto - Resolução

• Duas soluções:

– Modelar o ambiente respeitando o fluxo de dados.

– Representar a situação no diagrama através de um símbolo


diferente.

98 / 92
Sistema de Banco de Dados, 5/E

Exercício proposto - Resolução


.. .. .. ..
. . . .
Solução 1
ESTÚDIO

1,1
.. .. ..
..
. . .
produz tem 1,N ..
atuaçã ATOR .
0,N o
1,N 1,N

. FILME
.. prefere
. . .
..
.. .. ..
1,N

Tipo de TIPO DE
Papel PAPEL

99 / 32
Sistema de Banco de Dados, 5/E

Exercício proposto - Resolução


.. .. .. ..
. . . .
Solução 1
ESTÚDIO
Daniel
1,1
Radcliff
e .. ..
..
. .
produz tem 1,N ..
atuaçã ATOR .
0,N o
1,N 1,N

. FILME
.. prefere
. . .
..
.. .. ..
1,N

TIPO DE
Bruxo
PAPEL

100 / 32
Sistema de Banco de Dados, 5/E

Exercício proposto - Resolução


.. .. .. ..
. . . .
Solução 1
ESTÚDIO
Daniel
1,1
Radcliff
e .. ..
..
. .
produz tem 1,N ..
atuaçã ATOR .
0,N o
1,N 1,N

. FILME
.. prefere
. . .
..
.. .. ..
1,N

TIPO DE
Amigo
PAPEL

101 / 32
Sistema de Banco de Dados, 5/E

Exercício proposto - Resolução


.. .. .. ..
. . . .
Solução 1
ESTÚDIO
Daniel
1,1
Radcliff
e .. ..
..
. .
produz tem 1,N ..
atuaçã ATOR .
0,N o
1,N 1,N

. FILME
.. prefere
. . .
..
.. .. ..
1,N

TIPO DE
Mocinho
PAPEL

102 / 32
Sistema de Banco de Dados, 5/E

Exercício proposto - Resolução

.. .. .. .. Solução 2
. . . .

ESTÚDIO

1,1

produz

.. .. ..
..
0,N . . .
1,N tem 1,N ..
. FILME atuaçã ATOR .
.. o
. . .
..
.. .. .. Tipo de
Papel

103 / 32
Sistema de Banco de Dados, 5/E

Exercícios – Modelo E-R (Fixação De Conteúdo)

Uma firma vende produtos de limpeza e deseja controlar melhor os


produtos que vende, seus clientes e os pedidos.
Cada produto é caracterizado por um código único, nome do produto,
categoria (ex. detergente, sabão em pó, sabonete, etc), e seu preço. A
categoria é uma classificação criada pela própria firma.
A firma possui informações sobre todos os seus clientes. Cada cliente
é identificado por um código único (interno à firma), o nome do cliente,
endereço (rua, número, cidade, CEP, UF), telefone, status do cliente
(bom, médio, ruim), e o seu limite de crédito.
Guarda-se igualmente a informação dos pedidos feitos pelos clientes.
Cada pedido possui um número (único), e guarda-se a data de
elaboração do pedido. Cada pedido pode envolver de um a vários
produtos, e para cada produto, indica-se a quantidade pedida.
(...)

104 / 92
Sistema de Banco de Dados, 5/E

Exercício proposto - Resolução

.. .. ..
... . . .

PRODUTO

105 / 32
Sistema de Banco de Dados, 5/E

Exercícios – Modelo E-R (Fixação De Conteúdo)

Uma firma vende produtos de limpeza e deseja controlar melhor os


produtos que vende, seus clientes e os pedidos.
Cada produto é caracterizado por um código único, nome do produto,
categoria (ex. detergente, sabão em pó, sabonete, etc), e seu preço. A
categoria é uma classificação criada pela própria firma.
A firma possui informações sobre todos os seus clientes. Cada cliente
é identificado por um código único (interno à firma), o nome do cliente,
endereço (rua, número, cidade, CEP, UF), telefone, status do cliente
(bom, médio, ruim), e o seu limite de crédito.
Guarda-se igualmente a informação dos pedidos feitos pelos clientes.
Cada pedido possui um número (único), e guarda-se a data de
elaboração do pedido. Cada pedido pode envolver de um a vários
produtos, e para cada produto, indica-se a quantidade pedida.
(...)

106 / 92
Sistema de Banco de Dados, 5/E

Exercício proposto - Resolução

.. .. .. ..
. . . .
..
. CLIENTE
..
.

.. .. ..
... . . .

PRODUTO

107 / 32
Sistema de Banco de Dados, 5/E

Exercícios – Modelo E-R (Fixação De Conteúdo)

Uma firma vende produtos de limpeza e deseja controlar melhor os


produtos que vende, seus clientes e os pedidos.
Cada produto é caracterizado por um código único, nome do produto,
categoria (ex. detergente, sabão em pó, sabonete, etc), e seu preço. A
categoria é uma classificação criada pela própria firma.
A firma possui informações sobre todos os seus clientes. Cada cliente
é identificado por um código único (interno à firma), o nome do cliente,
endereço (rua, número, cidade, CEP, UF), telefone, status do cliente
(bom, médio, ruim), e o seu limite de crédito.
Guarda-se igualmente a informação dos pedidos feitos pelos clientes.
Cada pedido possui um número (único), e guarda-se a data de
elaboração do pedido. Cada pedido pode envolver de um a vários
produtos, e para cada produto, indica-se a quantidade pedida.
(...)

108 / 92
Sistema de Banco de Dados, 5/E

Exercício proposto - Resolução

.. .. .. ..
. . . .
..
. CLIENTE
..
.

.. .. ..
... . . .

. PEDIDO PRODUTO
..
.
..

109 / 32
Sistema de Banco de Dados, 5/E

Exercícios – Modelo E-R (Fixação De Conteúdo)

Uma firma vende produtos de limpeza e deseja controlar melhor os


produtos que vende, seus clientes e os pedidos.
Cada produto é caracterizado por um código único, nome do produto,
categoria (ex. detergente, sabão em pó, sabonete, etc), e seu preço. A
categoria é uma classificação criada pela própria firma.
A firma possui informações sobre todos os seus clientes. Cada cliente
é identificado por um código único (interno à firma), o nome do cliente,
endereço (rua, número, cidade, CEP, UF), telefone, status do cliente
(bom, médio, ruim), e o seu limite de crédito.
Guarda-se igualmente a informação dos pedidos feitos pelos
clientes. Cada pedido possui um número (único), e guarda-se a data
de elaboração do pedido. Cada pedido pode envolver de um a vários
produtos, e para cada produto, indica-se a quantidade pedida.
(...)

110 / 92
Sistema de Banco de Dados, 5/E

Exercício proposto - Resolução

.. .. .. ..
. . . .
..
. CLIENTE
..
.

.. .. ..
... . . .
..
PEDIDO PRODUTO .
.
..
.
..

111 / 32
Sistema de Banco de Dados, 5/E

Exercício proposto - Resolução

.. .. .. ..
. . . .
..
. CLIENTE
..
.

faz
.. .. ..
... . . .
..
PEDIDO tem PRODUTO .
.
..
.
..

112 / 32
Sistema de Banco de Dados, 5/E

Exercício proposto - Resolução

.. .. .. ..
. . . .
..
. CLIENTE
..
. 1,1

faz
.. .. ..
1,N ... . . .
0,N 1,N ..
PEDIDO tem PRODUTO .
.
..
.
..

113 / 32
Sistema de Banco de Dados, 5/E

Exercício proposto - Resolução


.. .. ..
... . . .
.. Telefon
Endereç Telefone
. e
o
Status
Nome CLIENTE
Crédito
Cod 1,1

faz Categori
Nome
a
Cod Preço
1,N
0,N 1,N
PEDIDO tem PRODUTO Qtde

N.º

Data

114 / 32
Sistema de Banco de Dados, 5/E

Exercício proposto - Resolução


.. .. ..
... . . .
.. Telefon
Endereç Telefone
. e
o
Status
Nome CLIENTE
Crédito
Cod 1,1

faz Limpa
Solvente
Tudo
11 10,00
1,N
0,N 1,N
PEDIDO tem PRODUTO 1

1032

20/08/2012

115 / 32
Sistema de Banco de Dados, 5/E

Exercício proposto - Resolução


.. .. ..
... . . .
.. Telefon
Endereç Telefone
. e
o
Status
Nome CLIENTE
Crédito
Cod 1,1

faz Detergente Detergent


x e
37 2,00
1,N
0,N 1,N
PEDIDO tem PRODUTO 2

1032

20/08/2012

116 / 32
Sistema de Banco de Dados, 5/E

Exercício proposto - Resolução


.. .. ..
... . . .
.. Telefon
Endereç Telefone
. e
o
Status
Nome CLIENTE
Crédito
Cod 1,1

faz Escovex Escova

23 1,00
1,N
0,N 1,N
PEDIDO tem PRODUTO 3

1032

20/08/2012

117 / 32
Sistema de Banco de Dados, 5/E

Exercício proposto - Resolução


.. .. ..
... . . .
.. Telefon
Endereç Telefone
. e
o
Status
Nome CLIENTE
Crédito
Cod 1,1

faz Escovex Escova

23 1,00
1,N
0,N 1,N
PEDIDO tem PRODUTO 3
1032
20/08/2012

118 / 32
Sistema de Banco de Dados, 5/E

Exercício proposto - Resolução


.. .. ..
... . . .
.. Telefon
Endereç Telefone
. e
o
Status
Nome CLIENTE
Crédito
Cod 1,1

faz Escovex Escova

23 1,00
1,N
0,N 1,N
PEDIDO tem PRODUTO 3
956
20/08/2012

119 / 32
Estrutura de Dados e
Sistemas de Integração
Eng. Controle Automação
2°/2013
Modelo
Entidade/Relacionamento
Prof. Alexandre Wagner C. Faria
Material adaptado do Livro: Sistema de Banco de Dados (Silberschatz, Korth, Sudarshan), Prof. Ronaldo C.M. Correia,
Vania Bogorny UFSC, Prof. (Me.) Eduardo Tieppo Dom Bosco