03 mer2
-
Upload
fabiano-sales -
Category
Technology
-
view
580 -
download
0
description
Transcript of 03 mer2
O ModeloE ntidade-R elacionamento
Bancos de Dados
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 2
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
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 3
Fases do Projeto deBases de Dados (EN94)
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 4
O Modelo Entidade-Relacionamento
■ Defini ção: modelo baseado na percepção domundo real, que consiste em um conjunto deobjetos básicos chamados entidades e nosrelacionamentos entre esses objetos
■ Objetivo : facilitar o projeto de banco de dados,possibilitando a especificação da estrutura lógicageral do banco de dados
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 5
Diagrama Entidade-Relacionamento
A estrutura lógica geral de um banco de dados pode serexpressa graficamente por um Diagrama Entidade-Relacionamento
■ Componentes do Diagrama E-R (Peter Chen) :
- Retângulos : representam conjuntos-entidade
- Elipses : representam atributos
- Losangos : representam conjuntos-relacionamento
- Linhas : ligam atributos a conjuntos-entidade econjuntos-entidade a conjuntos-relacionamento
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 6
Entidades e Conjuntos-Entidade
■ Entidade : é uma representação abstrata de um objeto domundo realEx.: O fornecedor Pedro, com código F1
■ Conjuntos-Entidade : grupo de entidades que possuicaracterísticas semelhantesEx.: Conjunto-entidade Fornecedor
Cidade
EstadoCod-Forn
Fornecedor
Nome
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 7
Atributos (campos)
■ Atributo : Elemento de dado que contém informação quedescreve uma entidade
Ex.:
■ Atributo Monovalorado : assume um único valor para cadaelemento do conjunto-entidadeEx.: Nome
■ Atributo Composto : formado por um ou mais sub-atributosEx.: Endereço
EstadoCidade
Endereço
Dependentes
Cod-Func
Funcionário
Nome*
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 8
Atributo Multivalorado : uma única entidade tem diversosvalores para este atributo (seu nome é sempre representadono plural)
Ex.: Dependentes
Atributo Determinante : identifica cada entidade de umconjunto-entidade (também conhecido com atributo chave)
Ex.: Cod_Func
Domínio de um Atributo : conjunto de valores permitidos parao atributo
Ex.: Sexo {M, F}
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 9
■ Relacionamento : estrutura que indica a associação deelementos de duas ou mais entidades
Ex.:ProdutoFornecedor Pedido
N N
Quantidade
PreçoCod-Prod
Cod-Forn Cod-ProdCod-Forn
ProdutoPedidoFornecedorN N
Relacionamentos
Atributo de Relacionamento: depende de todos os conjuntos-entidadeassociados entre si
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 10
a) Um-para-um : uma entidade em A está associada nomáximo a uma entidade em B e uma entidade em B estáassociada no máximo a uma entidade em A
Conjunto-Entidade A Conjunto-Entidade B
b3
b2
b1
a3
a2
a1
1 1Funcionário DepartamentoGerencia
Obs.: Chave estrangeira em uma das entidades.
Restri ções de Mapeamento (cardinalidade)
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 11
b) Um-para-muitos : uma entidade em A está associada aqualquer número de entidades em B, enquanto umaentidade em B está associada no máximo a uma entidadeem A
a1
a2
b4
b3
b2
b1
Conjunto-Entidade A Conjunto-Entidade B
LotaçãoN1
Departamento Funcionário
Obs.: Chave estrangeira na direção muitos.
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 12
c) Muitos-para-muitos : Uma entidade em A está associada aqualquer número de entidades em B, e uma entidade em Bestá associada a qualquer número de entidades em A.
a1
a2
a3 b3
b2
b1
Conjunto-Entidade BConjunto-Entidade A
TrabalhaFuncionário ProjetoNN
Obs.: Requer tabela extra para representa-lo.
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 13
Projeto de Chaves
■ Chave : é um conjunto de um ou mais atributos que,tomados coletivamente, permite-nos identificar unicamenteuma entidade no conjunto-entidade
■ Integridade de Entidade : Nenhum atributo que participe dachave 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 chaveprimária ou a remoção de uma entidade de um conjunto-entidade pode ocasionar problemas de integridadereferencial
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 14
Quantidade
PreçoCod-Prod
Cod-Forn Cod-ProdCod-Forn
ProdutoPedidoFornecedorN N
■ Entidade Fornecedor : Cod_Forn
■ Entidade Produto : Cod_Prod
■ Relacionamento Pedido : Cod_Forn e Cod_Prod
Exemplo de chaves no modelo ER
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 15
Auto-RelacionamentoRelaciona elementos de um conjunto-entidade E aelementos desse mesmo conjunto-entidade
Ex.:
Gerenciamento de Pessoal
Funcionário
Gerencia É GerenciadoN1
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 16
Agrega ção
■ Uma limitação do modelo E-R é que não é possívelexpressar relacionamentos entre relacionamentos.
■ Agregação é uma abstração através da qualrelacionamentos são tratados como entidades de nívelsuperior.
TrabalhaFuncionárioN N
Projeto
Máquina
N
Utiliza
N N
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 17
■ Usando Agrega ção
TrabalhaFuncionárioN N
Projeto
Máquina
N
Utiliza
N
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 18
Generaliza ção e Especializa ção■ Existem casos em que um conjunto-entidade pode ser
dividido em categorias, cada qual com atributos específicos.
Ex.:
Pessoa Física
Cliente
PessoaJurídica
Filial atende
Código
Nome
Sexo
CIC
CGC
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 19
■ Gereraliza ção/Especializa ção Total e Parcial
Pessoa Física
Cliente
PessoaJurídica
t
Motorista
Funcionário
Secretária
p
Cargo
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 20
■ Generaliza ção/Especializa ção não-Exclusiva
Professor
Pessoa
AlunoFuncionário
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 21
■ Herança Múltipla
Automóvel
Veículo
BarcoVeículoAnfíbio
Terrestre Aquático
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 22
Dependência Existencial e Entidades Fracas
■ Dependência existencial ocorre quando a existência deuma determinada entidade está condicionada à existênciade uma outra entidade a ela relacionada.
trabalhaN1
Departamento Funcionário
■ Uma entidade fraca não possui sequer identidadeprópria, sendo sua chave primária composta pela chaveestrangeira proveniente da entidade dona concatenada aum identificador de si própria (que pode repetir paradiferentes instâncias da entidade dona).
mantémN1
Funcionário Dependente
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 23
Relacionamentos de grau superior a 2
Quantidade
Cod-Peça
Cod-ProjCod-Forn
ProjetoForneceFornecedor
Peça
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 24
Relacionamentos de grau superior a 2 (cont. 1)
Cod-Peça
Cod-ProjCod-Forn
ProjetoForneceFornecedor
Peça
usapode
fornecer
M N
NN
MM
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 25
Relacionamentos de grau superior a 2 (cont. 2)
Cod-Peça
Cod-ProjCod-Forn
ProjetoForneceFornecedor
Peça
Quantidade
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 26
Síntese da nota ção de Peter Chen (EN94)
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 27
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 28
BD de uma Companhia - Peter Chen (EN94)
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 29
Companhia - James Martin (Power Designer)
utiliza
eh_gerente eh_gerenciado
controla
trabalha_para
eh_dependente
Funcionário
cod_funcnome_funcsexo_funcdta_nasc_funcsalario_funcender_funccidade_funcuf_func
Departamento
nro_deptonome_deptonro_func_depto
Projeto
nro_projnome_projdescr_proj
Dependente
nro_dependnome_dependsexo_dependdta_nasc_dependparent_depend
gerencia
dta_ini_ger
Local
cod_locnome_loccidade_locuf_loc
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 30
Companhia - conceitual (Power Designer)
eh_gerente eh_gerenciado
controla
trabalha_para
eh_dependente
utiliza
Funcionário
cod_funcnome_funcsexo_funcdta_nasc_funcsalario_funcender_funccidade_funcuf_func
Departamento
nro_deptonome_deptonro_func_depto
Projeto
nro_projnome_projdescr_proj
Dependente
nro_dependnome_dependsexo_dependdta_nasc_dependparent_depend
gerencia
dta_ini_ger
Local
cod_locnome_loccidade_locuf_loc
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 31
Companhia - lógico/físico (Power Designer)
NRO_PROJ = NRO_PROJCOD_LOC = COD_LOC
COD_FUNC = COD_FUNC NRO_DEPTO = NRO_DEPTO
NRO_DEPTO = NRO_DEPTO
NRO_DEPTO = NRO_DEPTO
COD_FUNC = COD_FUNC
FUNCIONARIO
COD_FUNC LongIntegerNRO_DEPTO LongIntegerNOME_FUNC Text(25)SEXO_FUNC Text(1)DTA_NASC_FUNC DateTimeSALARIO_FUNC CurrencyENDER_FUNC Text(35)CIDADE_FUNC Text(25)UF_FUNC Text(2)
DEPARTAMENTO
NRO_DEPTO LongIntegerNOME_DEPTO Text(20)NRO_FUNC_DEPTO LongInteger
PROJETO
NRO_PROJ LongIntegerNRO_DEPTO LongIntegerNOME_PROJ Text(25)DESCR_PROJ MemoDEPENDENTE
COD_FUNC LongIntegerNRO_DEPEND LongIntegerNOME_DEPEND Text(25)SEXO_DEPEND Text(1)DTA_NASC_DEPEND DateTimePARENT_DEPEND Text(1)
GERENCIA
NRO_DEPTO LongIntegerCOD_FUNC LongIntegerDTA_INI_GER DateTime
LOCAL
COD_LOC Text(3)NOME_LOC Text(25)CIDADE_LOC Text(25)UF_LOC Text(2)
UTILIZA
COD_LOC Text(3)NRO_PROJ LongInteger
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 32
Companhia - IDEF1X (ERwin)enquadra
supervisiona
tem_alocado
trabalha_no
trabalha_para
controla
mantém
Departamentonro_depto: Long Integer
nome: Text(20)nro_func: Integergerente: Long Integerdta_inic_ger: Date/Time
Funcionáriocod_func: Long Integer
nome: Text(25)sexo: Sexodta_nasc: Date/Timesalario: Currencyender: Text(35)cidade: Text(25)uf: UFsupervisor: Long Integer (FK)nro_depto: Long Integer (FK)cod_cargo: Integer (FK)
Projetonro_proj: Long Integer
nro_depto: Long Integer (FK)nome: Text(25)descricao: Memo
Dependentecod_func: Long Integer (FK)nro_depend: Long Integer
nome: Text(25)sexo: Sexodta_nasc: Date/Timeparentesco: Parentesco
Trabalhacod_func: Long Integer (FK)nro_proj: Long Integer (FK)
horas_trab: Integer
Cargocod_cargo: Integer
nome: Text(20)descricao: Memo
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 33
Companhia - Domínios de Atributos
■ ParentescoC ConjugeF Filho(a)I Irmao/IrmaP Pai/Mae
■ SexoM MasculinoF Feminino
■ UF (Unidade da Federação)AC AcreAL AlagoasAM Amazonas: :
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 34
- A presença de um substantivo usualmente indicauma entidade .
- A presença de um verbo é uma forte indicação deum relacionamento
- Um adjetivo , que é uma qualidade, é uma forteindicação de um atributo
- Um advérbio temporal, qualificando o verbo, éuma indicação de um atributo dorelacionamento
Dicas para a elabora ção de Diagramas E-R
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 35
Exercícios:
1.Construa um diagrama E-R para um hospital comum conjunto de pacientes e um conjunto demédicos. Registros de diversos testes realizadossão associados a cada paciente.
2. Construa um diagrama E-R para uma companhiade seguros de automóveis com um conjunto declientes, onde cada um possui um certo número decarros. Cada carro tem um número de acidentesassociados a ele.
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 36
3.Construa um possível diagrama de ocorrênciaspara cada um dos relacionamentos abaixo.
composta
componente
compõe
supervisorsupervisionado
supervisiona
Funcionário Peça
(a) (b)
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 37
4.Mostre como o diagrama abaixo pode serrepresentado apenas por relacionamentos binários.
Cidade Distribuidor
Produto
distribuição
N
1N
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 38
5. Para que a restrição de cardinalidade mínima dodiagrama a seguir seja obedecida, que ocorrênciasde entidade devem existir no banco de dadosquando for incluída uma ocorrência deEmpregado ? E quando for incluída umaocorrência de Mesa ?
Empregado Mesaalocação(0,1) (1,1)
alocaEmpregado Mesa
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 39
6. Construa um diagrama ER para modelar a mesmarealidade mostrada no diagrama do exercícioanterior, utilizando apenas relacionamentos 1:N.
7. Explique a diferença entre uma entidade (conjunto-entidade) e uma ocorrência (instância) de umaentidade.
8. O que é o papel de uma entidade em umrelacionamento ? Quando é necessárioespecificá-lo ?
9. Construa um diagrama ER em que o conceito deentidade associativa seja utilizado.
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 40
10. Considere, no projeto abaixo, que um dependentede um empregado possa ser também umempregado. Como o diagrama deve sermodificado para evitar o armazenamentoredundante de informações sobre pessoas quesejam tanto empregados quanto dependentes ?
possui
Empregado Dependente
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 41
11. Modifique o diagrama abaixo para especificar oseguinte:
liberadora liberada
pré_requisito
inclui
está_inscrito
é_responsável
Departamento Disciplina
Aluno Curso
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 42
a) Um curso não pode estar vazio, isto é, devepossuir alguma disciplina em seu currículo.
b) Um aluno, mesmo que não inscrito em nenhumcurso, deve permanecer por algum tempo nobanco de dados.
c) Um aluno pode fazer mais de um curso.
12. Esboce o diagrama do exercício anterior nanotação de Peter Chen, especificando ascardinalidades mínimas e máximas (min,max).
13. Escreva um esquema textual (em DDL/SQL)equivalente ao diagrama do exercício 11.
Bancos de Dados
Parte 3: O Modelo Entidade-Relacionamento Pag.: 43
14. Sem usar atributos opcionais, nem atributosmultivalorados, construa um diagrama ER com asmesmas informações do diagrama abaixo.
Telefone
Código
Cliente
Nome*