Vous êtes sur la page 1sur 8

Tópicos

Modelo Entidade-Relacionamento (MER) Original:


– Fases do Projeto de Bases de Dados
– Definição e Objetivo do Modelo ER
O Modelo – Entidades e Conjuntos-Entidade
Entidade-Relacionamento – Atributos e Domínio de um Atributo
– Relacionamentos e Conjuntos-Relacionamento
– Projeto de Chaves
– Grau de um Relacionamento
– Restrições de Cardinalidade e Integridade Referencial
Renato Fileto
Unicamp - Instituto Computação Extensões e Variações do MER :
Embrapa Informática Agropecuária – Agregação
– Generalização/Especialização
– Notação, Variações e Exemplos
– Dicas para Elaboração de Modelos E-R
O Modelo Entidade-Relacionamento Pag.: 2

Fases do Projeto de O Modelo Entidade-Relacionamento (MER)


Bases de Dados (EN94)
Definição: modelo baseado na percepção do mundo real, que
consiste em um conjunto de objetos básicos chamados entidades e
nos relacionamentos entre esses objetos.

Objetivo: facilitar o projeto de banco de dados, possibilitando


especificar a estrutura lógica geral do banco de dados.

Diagrama Entidade-Relacionamento (DER)

■ No contexto da análise estruturada, define os dados mantidos pelo


sistema, isto é, os depósitos de dados do diagrama de fluxo de dados

■ Considera os dados independentemente do processamento que os


transformma.

O Modelo Entidade-Relacionamento Pag.: 3 O Modelo Entidade-Relacionamento Pag.: 4

Diagrama Entidade-Relacionamento Entidades e Conjuntos-Entidade


■ Entidade: é uma representação abstrata de um objeto do mundo real
Descreve a estrutura lógica geral de um banco de dados
Exs: O fornecedor Pedro, com código F1
■ Componentes do Diagrama E-R (Peter Chen):
■ Conjunto-Entidade: grupo de entidades referindo-se a objetos
- Retângulos: representam conjuntos-entidade concretos ou abstratos com características semelhantes

Exs.: Fornecedor, Pessoa, Imóvel, Curso


- Elipses: representam atributos

- Losangos: representam conjuntos-relacionamento


Fornecedor
- Linhas: ligam atributos a conjuntos-entidade e conjuntos-entidade a
conjuntos-relacionamento
Cod-Forn
Estado
Nome Cidade

O Modelo Entidade-Relacionamento Pag.: 5 O Modelo Entidade-Relacionamento Pag.: 6


Instância (estado) de uma Entidade Atributo (campo)
■ Representa o estado de uma entidade em deteminado instante Elemento de dado que contém o valor de uma propriedade de uma
entidade
■ O estado de cada entidade do conjunto é determinado pelos valores
das características (atributos) da entidade Ex.:

Ex.: Instâncias de “Fornecedor”


Funcionário
Cod_Forn Nome Cidade Estado
F01 Pedro Porto Alegre RS Cod-Func Endereço
F02 Eliana Botucatu SP Nome
*
Dependentes
F03 Olacyr Curitiba PR
Cidade Estado
F04 João Pelotas RS
F05 Ernesto Anápolis GO

O Modelo Entidade-Relacionamento Pag.: 7 O Modelo Entidade-Relacionamento Pag.: 8

Classificação de Atributos
Atributo Simples: não tem outros atributos aninhados, apenas o valor
Projeto de Chaves
Ex.: Nome
Atributo Composto: tem outros atributos aninhados (sub-atributos)
Ex.: Endereço ■ Chave: é um conjunto de um ou mais atributos que, tomados
coletivamente, permite-nos identificar unicamente uma entidade no
Atributo Monovalorado: um único valor para cada instância
Ex.: Nome conjunto-entidade
Atributo Multivalorado: mais de um valor para cada entidade
Ex.: Dependentes ■ Integridade de Entidade: Nenhum atributo que participe da chave de
um conjunto-entidade deve aceitar valores nulos
Atributo(s) Determinante(s) ou Chave: identifica unicamente cada entidade de um
conjunto-entidade
Ex.: Cod_Func
Aspectos Relevantes
Tipo de um Atributo: determina a natureza dos valores permitidos para um atributo
Ex.: inteiro, real, string, etc. ■ A questão fundamental do projeto de chaves é reduzir ao máximo os
Domínio de um Atributo: refina o conjunto de valores permitidos para o atributo efeitos de redundância
Ex.: Sexo {M, F}
■ A alteração dos valores de campos constituintes da chave primária ou
Atributo Derivado: o seu valor pode ser calculado a partir do valor de outro(s)
atributo(s) a remoção de uma entidade de um conjunto-entidade pode ocasionar
Ex.: idade (pode ser calculada a partir da data de nascimento) problemas de integridade referencial

O Modelo Entidade-Relacionamento Pag.: 9 O Modelo Entidade-Relacionamento Pag.: 10

Exemplo de chaves no modelo ER Relacionamentos


■ As entidades são contectadas umas às outras através de
relacionamentos
N N
Fornecedor Pedido Produto
■ Para determinar os relacionamentos deve-se considerar as entidades
dentro do contexto do software a ser construído e do domínio de
aplicação a que se destina
Cod-Forn Cod-Forn Cod-Prod
Quantidade

Cod-Prod Preço
a1 d1

a2 d2
■ Entidade Fornecedor: Cod_Forn a3 d3
■ Entidade Produto: Cod_Prod
Aluno Disciplina
■ Relacionamento Pedido: Cod_Forn e Cod_Prod Matrícula

O Modelo Entidade-Relacionamento Pag.: 11 O Modelo Entidade-Relacionamento Pag.: 12


Relacionamento Grau de um Relacionamento
Estrutura que indica uma associação entre instâncias de duas ou Indica o número de conjuntos-entidade (classes distintas de objetos)
mais entidades cujas instâncias podem estar associadas umas as outras através de
um relacionamento
Ex.:

N N Projeto d1
Fornecedor d1
Pedido Produto
d2 d2

d3
Atributos de Relacionamento:
Peça
N N a1
Fornecedor Pedido Produto
a2

a3
Cod-Forn Cod-Forn Quantidade Cod-Prod Fornecedor Fornece

Cod-Prod Preço Qual o grau deste relacionamento?


O Modelo Entidade-Relacionamento Pag.: 13 O Modelo Entidade-Relacionamento Pag.: 14

Auto-relacionamento (grau 1) Relacionamento Binário (grau 2)


Relaciona instâncias de um conjunto-entidade E a Instâncias desse Relaciona dos conjuntos-entidade distintos
mesmo conjunto-entidade
Ex.:
Ex.:

F1 P1
Funcionário
Funcionário F2
F1
F3 P2
F2
É Gerente É Gerenciado
F3 Funcionário Trabalha Projeto
1 N

N N
Gerencia Funcionário Trabalha Projeto
Gerencia

O Modelo Entidade-Relacionamento Pag.: 15 O Modelo Entidade-Relacionamento Pag.: 16

Relacionamento Ternário (grau 3) Cardinalidade de um Relacionamento


Relaciona três conjuntos-entidade distintos Indica o número de instâncias de entidades que podem estar
associadas umas as outras através de um relacionamento
Ex.:

Quantidade
nome Cod-Proj nome
cod-forn
ender a1 d1

a2 d2
N N
Fornecedor Fornece Projeto a3 d3

Fornecedor Peça
Fornecer
Cod-Peça
N

Peça nome Qual a cardinalidade deste relacionamento?

O Modelo Entidade-Relacionamento Pag.: 17 O Modelo Entidade-Relacionamento Pag.: 18


b) Um-para-muitos: uma entidade em A está associada a
a) Um-para-um: uma entidade em A está associada no qualquer número de entidades em B, enquanto uma
máximo a uma entidade em B e uma entidade em B está entidade em B está associada no máximo a uma entidade
associada no máximo a uma entidade em A em A

a1 b1 b1
a1
a2 b2 b2

a3 b3 a2 b3
b4
Conjunto-Entidade A Conjunto-Entidade B
Conjunto-Entidade A Conjunto-Entidade B

1 1 1 N
Funcionário Gerencia Departamento Departamento Lotação Funcionário

Obs.: Chave estrangeira em uma das entidades. Obs.: Chave estrangeira na direção muitos.
O Modelo Entidade-Relacionamento Pag.: 19 O Modelo Entidade-Relacionamento Pag.: 20

c) Muitos-para-muitos: Uma entidade em A está associada a Participação Parcial: quando há um relacionamento entre
qualquer número de entidades em B, e uma entidade em B dois conjuntos-entidade A e B e alguma instância de
está associada a qualquer número de entidades em A. entidade de A pode existir sem se relacionar com nenhuma
instância de entidade de B.

a1 b1
a2 b2 F1
D1
a3 F2
b3
D2
F3
Conjunto-Entidade A Conjunto-Entidade B
Funcionário gerencia
Departamento

N N
Funcionário Trabalha Projeto
1 1
Funcionário Gerencia Departamento
(0,1) (0,1)
Obs.: Requer tabela extra para representa-lo.
O Modelo Entidade-Relacionamento Pag.: 21 O Modelo Entidade-Relacionamento Pag.: 22

Participação Total: quando todas as instâncias de uma Dependência Existencial e Entidades Fracas
entidade precisam estar associadas a alguma instância de
outra entidade através de um relacionamento. ■ Dependência existencial (ou de participação total) ocorre quando a
existência de uma determinada entidade está condicionada à existência
de uma outra entidade a ela relacionada.

D1
F1 1 N
F2 D2 Departamento trabalha Funcionário

F3 D3

Funcionário mantém Dependente ■ Uma entidade fraca não possui sequer identidade própria, sendo
sua chave primária composta pela chave estrangeira proveniente da
entidade “dona” concatenada a um identificador de si própria (que
pode repetir para diferentes instâncias da entidade dona).
1 N
Funcionário mantém Dependente 1
(1,1) (0,N) N
Funcionário mantém Dependente

O Modelo Entidade-Relacionamento Pag.: 23 O Modelo Entidade-Relacionamento Pag.: 24


Categorias de reestrições em Relacionamentos de Grau superior a 2
Relacionamentos

Cod-Forn Quantidade Cod-Proj


■ Grau de um Relacionamento

■ Restrições Estruturais (integridade referencial)


N1 N3
Fornecedor Fornece Projeto
■ Restrições Cardinalidade

■ Restrições de Participação Cod-Peça

■ Dependência Existencial N2

Peça

O Modelo Entidade-Relacionamento Pag.: 25 O Modelo Entidade-Relacionamento Pag.: 26

Este diagrama é equivalente ao anterior? E este diagrama? Em quais restrições difere dos anteriores?

Cod-Forn Cod-Proj
Cod-Forn Cod-Proj
Quantidade

N1’ N3
Fornecedor Fornece Projeto

N1 N3’ Fornecedor Fornece Projeto

pode
fornecer Cod-Peça usa
Cod-Peça

Peça
N2 N2’ Peça

O Modelo Entidade-Relacionamento Pag.: 27 O Modelo Entidade-Relacionamento Pag.: 28

Síntese da notação de Peter Chen (EN94)

O Modelo Entidade-Relacionamento Pag.: 29 O Modelo Entidade-Relacionamento Pag.: 30


Agregação
■ Uma limitação do modelo E-R é que não é possível expressar
relacionamentos entre relacionamentos.
■ Agregação é uma abstração através da qual relacionamentos são
tratados como entidades de nível superior.
Extensões e Variações do Modelo
Entidade-Relacionamento N
Trabalha
N
Funcionário Projeto
N N

Utiliza

N
Máquina

O Modelo Entidade-Relacionamento Pag.: 32

Generalização e Especialização
■ Usando Agregação
■ Existem casos em que um conjunto-entidade pode ser dividido em
categorias, cada qual com atributos específicos.

N Trabalha N Ex.:
Funcionário Projeto
Código

N Filial atende Cliente


Nome
Utiliza

CIC
N

Máquina Pessoa Pessoa


Sexo CGC
Física Jurídica

O Modelo Entidade-Relacionamento Pag.: 33 O Modelo Entidade-Relacionamento Pag.: 34

Por que definir sub-classes especializadas? ■ Gereralização/Especialização Total e Parcial

■ Certos atributos aparecem somente em alguma(s) sub-classe(s) Cargo


■ Alguns relacionamentos se aplicam apenas a determinadas sub-classes Cliente Funcionário

atributos e
Super-Classe relacionamentos total
genéricos parcial

Pessoa Pessoa
Motorista Secretária
Física Jurídica

atributos e Toda instância da super-classe Pode haver instância da super-


Sub-Classe 1 ... Sub-Classe N relacionamentos precisa estar associada a uma classe sem instância
específicos instância correspondente de correspondente em nenhuma
alguma sub-classe sub-classe
O Modelo Entidade-Relacionamento Pag.: 35 O Modelo Entidade-Relacionamento Pag.: 36
■ Generalização/Especialização Exclusiva e Não-exclusiva ■ Herança Múltipla

Veículo
Pessoa Pessoa

exclusiva não-
d exclusiva
Terrestre Aquático

Homem Mulher Professor Funcionário Aluno

Cada instância da super- Uma instância da super-classe pode


classe pode estar associada a, estar associada a até uma instância de
no máximo, uma instância de cada uma das sub-classes Veículo
uma sub-classe Automóvel Barco
Anfíbio

O Modelo Entidade-Relacionamento Pag.: 37 O Modelo Entidade-Relacionamento Pag.: 38


   

   "!#$   

%&
 ')(*
+,   .-""'/ 0+$
Funcionário Departamento
trabalha_para
cod_func nro_depto
nome_func nome_depto
sexo_func gerencia nro_func_depto
dta_nasc_func eh_gerente dta_ini_ger eh_gerenciado
salario_func
ender_func
controla
cidade_func
uf_func
supervisiona
Local
Projeto
eh_dependente cod_loc
nro_proj
nome_loc utiliza
nome_proj
cidade_loc
descr_proj
Dependente uf_loc
nro_depend
nome_depend
sexo_depend
dta_nasc_depend
parent_depend

O Modelo Entidade-Relacionamento Pag.: 39 O Modelo Entidade-Relacionamento Pag.: 40

  

12 12 ,
3)  .-""'2,0+$   

3 4.0 1/ 5 6&7 '/ 12 8  .-9:"'/ 0&$
Funcionário Departamento
trabalha_para FUNCIONARIO
cod_func nro_depto DEPARTAMENTO
COD_FUNC LongInteger
nome_func eh_gerente eh_gerenciado nome_depto NRO_DEPTO LongInteger
NRO_DEPTO = NRO_DEPTO NRO_DEPTO LongInteger
sexo_func nro_func_depto NOME_FUNC Text(25) NOME_DEPTO Text(20)
COD_FUNC = COD_FUNC NRO_DEPTO = NRO_DEPTO
NRO_FUNC_DEPTO LongInteger
dta_nasc_func SEXO_FUNC Text(1)
DTA_NASC_FUNC DateTime
salario_func SALARIO_FUNC Currency
ender_func ENDER_FUNC Text(35) GERENCIA
cidade_func CIDADE_FUNC Text(25) NRO_DEPTO LongInteger
gerencia UF_FUNC Text(2) COD_FUNC LongInteger
uf_func SUPERVISOR LongInteger DTA_INI_GER DateTime
supervisiona dta_ini_ger NRO_DEPTO = NRO_DEPTO

controla
eh_dependente SUPERVISOR = COD_FUNC

COD_FUNC = COD_FUNC
LOCAL PROJETO
COD_LOC Text(3) NRO_PROJ LongInteger
NOME_LOC Text(25) NRO_DEPTO LongInteger
Dependente CIDADE_LOC Text(25) NOME_PROJ Text(25)
nro_depend Local DEPENDENTE UF_LOC Text(2) DESCR_PROJ Memo
Projeto COD_FUNC LongInteger
nome_depend cod_loc NRO_DEPEND LongInteger
sexo_depend nome_loc nro_proj NOME_DEPEND Text(25)
utiliza SEXO_DEPEND Text(1)
UTILIZA
dta_nasc_depend cidade_loc nome_proj
DTA_NASC_DEPEND DateTime COD_LOC Text(3)
parent_depend uf_loc descr_proj PARENT_DEPEND Text(1)
COD_LOC = COD_LOC NRO_PROJ LongInteger NRO_PROJ = NRO_PROJ

O Modelo Entidade-Relacionamento Pag.: 41 O Modelo Entidade-Relacionamento Pag.: 42


  

;+"<=>? @A-",$   

9  B7 , ')CD,&,E '
enquadra Cargo
cod_cargo: Integer ■ Parentesco
Funcionário nome: Text(20) Departamento
cod_func: Long Integer descricao: Memo nro_depto: Long Integer
C Conjuge
nome: Text(25)
sexo: Sexo trabalha_para
nome: Text(20) F Filho(a)
nro_func: Integer
dta_nasc: Date/Time
salario: Currency
gerente: Long Integer
dta_inic_ger: Date/Time
I Irmao/Irma
trabalha_no
ender: Text(35)
cidade: Text(25) P Pai/Mae
uf: UF controla
supervisor: Long Integer (FK)
nro_depto: Long Integer (FK) ■ Sexo
cod_cargo: Integer (FK)
Projeto M Masculino
nro_proj: Long Integer
nro_depto: Long Integer (FK) F Feminino
mantém nome: Text(25)
descricao: Memo
■ UF (Unidade da Federação)
supervisiona
AC Acre
Dependente
cod_func: Long Integer (FK) AL Alagoas
nro_depend: Long Integer
nome: Text(25)
Trabalha AM Amazonas
cod_func: Long Integer (FK)
sexo: Sexo
dta_nasc: Date/Time
nro_proj: Long Integer (FK) tem_alocado : :
parentesco: Parentesco horas_trab: Integer

O Modelo Entidade-Relacionamento Pag.: 43 O Modelo Entidade-Relacionamento Pag.: 44

Dicas para a elaboração de Diagramas E-R

Dado um texto descrevendo o banco de dados a ser projetado:


F A presença de um substantivo usualmente indica uma entidade,
G A presença de um verbo é uma forte indicação de um
relacionamento,
H Um adjetivo, que é uma qualidade, é uma forte indicação de um
atributo,
I Um advérbio temporal, qualificando o verbo, é uma indicação de um
atributo do relacionamento.

O Modelo Entidade-Relacionamento Pag.: 45

Vous aimerez peut-être aussi