Escolar Documentos
Profissional Documentos
Cultura Documentos
03 Mer2 (Bom)
03 Mer2 (Bom)
O Modelo
E ntidade-R elacionamento
Bancos de Dados
Tópicos
■ Fases do Projeto de Bases de Dados
■ Definição e Objetivo do Modelo E-R
■ Entidades e Conjuntos-Entidade
■ Atributos e Domínio de um Atributo
■ Relacionamentos e Conjuntos-Relacionamento
■ Restrições de Mapeamento
■ Projeto de Chaves
■ Auto-Relacionamentos
■ Agregação
■ Generalização ou Particionamento
■ Dependência Existencial e Entidades Fracas
■ Relacionamentos de Grau Superior a 2
■ Notação, Variações e Exemplos
■ Dicas para Elaboração de Modelos E-R
Parte 3: O Modelo Entidade-Relacionamento Pag.: 2
Bancos de Dados
Fases do Projeto de
Bases de Dados (EN94)
O Modelo Entidade-Relacionamento
Diagrama Entidade-Relacionamento
A estrutura lógica geral de um banco de dados pode ser
expressa graficamente por um Diagrama Entidade-
Relacionamento
Entidades e Conjuntos-Entidade
■ Entidade: é uma representação abstrata de um objeto do
mundo real
Ex.: O fornecedor Pedro, com código F1
■ Conjuntos-Entidade: grupo de entidades que possui
características semelhantes
Ex.: Conjunto-entidade Fornecedor
Fornecedor
Cod-Forn
Estado
Nome Cidade
Atributos (campos)
■ Atributo: Elemento de dado que contém informação que
descreve uma entidade
Ex.: Funcionário
Cod-Func Endereço
Nome
*
Dependentes
Cidade Estado
Ex.: Dependentes
Ex.: Cod_Func
Relacionamentos
■ Relacionamento: estrutura que indica a associação de
elementos de duas ou mais entidades
Ex.: N N
Fornecedor Pedido Produto
Cod-Prod Preço
a1 b1
a2 b2
a3 b3
Conjunto-Entidade A Conjunto-Entidade B
1 1
Funcionário Gerencia Departamento
a2 b3
b4
Conjunto-Entidade A Conjunto-Entidade B
1 N
Departamento Lotação Funcionário
a1 b1
a2 b2
a3 b3
Conjunto-Entidade A Conjunto-Entidade B
N N
Funcionário Trabalha Projeto
Projeto de Chaves
■ Chave: é um conjunto de um ou mais atributos que,
tomados coletivamente, permite-nos identificar unicamente
uma entidade no conjunto-entidade
■ Integridade de Entidade: Nenhum atributo que participe da
chave de um conjunto-entidade deve aceitar valores nulos
Aspectos Relevantes
■ A questão fundamental do projeto de chaves é reduzir ao
máximo os efeitos de redundância
■ A alteração dos valores de campos constituintes da chave
primária ou a remoção de uma entidade de um conjunto-
entidade pode ocasionar problemas de integridade
referencial
Parte 3: O Modelo Entidade-Relacionamento Pag.: 13
Bancos de Dados
N N
Fornecedor Pedido Produto
Cod-Prod Preço
Auto-Relacionamento
Relaciona elementos de um conjunto-entidade E a
elementos desse mesmo conjunto-entidade
Ex.:
Funcionário
1 N
Gerencia É Gerenciado
Gerenciamento
de Pessoal
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.
N Trabalha N
Funcionário Projeto
N N
Utiliza
N
Máquina
Parte 3: O Modelo Entidade-Relacionamento Pag.: 16
Bancos de Dados
■ Usando Agregação
N Trabalha N
Funcionário Projeto
Utiliza
Máquina
Generalização e Especialização
■ Existem casos em que um conjunto-entidade pode ser
dividido em categorias, cada qual com atributos específicos.
Ex.: Código
CIC
Pessoa Pessoa
Sexo CGC
Física Jurídica
Cargo
Cliente Funcionário
t p
Pessoa Pessoa
Motorista Secretária
Física Jurídica
■ Generalização/Especialização não-Exclusiva
Pessoa
■ Herança Múltipla
Veículo
Terrestre Aquático
Veículo
Automóvel Barco
Anfíbio
1 N
Departamento trabalha Funcionário
Cod-Peça
Peça
M N
Fornecedor Fornece Projeto
M M
pode
fornecer Cod-Peça usa
N N
Peça
Cod-Forn Cod-Proj
Quantidade
Cod-Peça
Peça
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
Dependente
nro_depend Local
cod_loc Projeto
nome_depend
sexo_depend nome_loc nro_proj
utiliza
dta_nasc_depend cidade_loc nome_proj
parent_depend uf_loc descr_proj
FUNCIONARIO DEPARTAMENTO
COD_FUNC LongInteger NRO_DEPTO = NRO_DEPTO NRO_DEPTO LongInteger
NRO_DEPTO LongInteger NOME_DEPTO Text(20)
NRO_DEPTO = NRO_DEPTO
NOME_FUNC Text(25) COD_FUNC = COD_FUNC NRO_FUNC_DEPTO LongInteger
SEXO_FUNC Text(1)
DTA_NASC_FUNC DateTime
SALARIO_FUNC Currency GERENCIA
ENDER_FUNC Text(35)
NRO_DEPTO LongInteger
CIDADE_FUNC Text(25)
COD_FUNC LongInteger
UF_FUNC Text(2)
DTA_INI_GER DateTime NRO_DEPTO = NRO_DEPTO
COD_FUNC = COD_FUNC
LOCAL PROJETO
COD_LOC Text(3) NRO_PROJ LongInteger
NOME_LOC Text(25) NRO_DEPTO LongInteger
CIDADE_LOC Text(25) NOME_PROJ Text(25)
DEPENDENTE UF_LOC Text(2) DESCR_PROJ Memo
COD_FUNC LongInteger
NRO_DEPEND LongInteger
NOME_DEPEND Text(25)
UTILIZA
SEXO_DEPEND Text(1)
DTA_NASC_DEPEND DateTime COD_LOC Text(3)
COD_LOC = COD_LOC NRO_PROJ LongInteger NRO_PROJ = NRO_PROJ
PARENT_DEPEND Text(1)
supervisiona
Dependente
cod_func: Long Integer (FK)
nro_depend: Long Integer
Trabalha
nome: Text(25) cod_func: Long Integer (FK)
sexo: Sexo nro_proj: Long Integer (FK)
dta_nasc: Date/Time tem_alocado
parentesco: Parentesco horas_trab: Integer
■ Parentesco
C Conjuge
F Filho(a)
I Irmao/Irma
P Pai/Mae
■ Sexo
M Masculino
F Feminino
■ UF (Unidade da Federação)
AC Acre
AL Alagoas
AM Amazonas
: :
Parte 3: O Modelo Entidade-Relacionamento Pag.: 33
Bancos de Dados
Exercícios:
1. Construa um diagrama E-R para um hospital com
um conjunto de pacientes e um conjunto de
médicos. Registros de diversos testes realizados
são associados a cada paciente.
Funcionário Peça
componente
supervisionado
supervisor
(a) (b)
Cidade Distribuidor
N 1
distribuição
Produto
Empregado Mesa
aloca
(0,1) (1,1)
Empregado alocação Mesa
Parte 3: O Modelo Entidade-Relacionamento Pag.: 38
Bancos de Dados
Empregado Dependente
possui
Departamento Disciplina
é_responsável
inclui
Aluno Curso
está_inscrito
Cliente
Código
Nome
*
Telefone