43
O Modelo E ntidade-R elacionamento Bancos de Dados

03 mer2

Embed Size (px)

DESCRIPTION

Banco de Dados - Apostila completa - parte 2

Citation preview

Page 1: 03 mer2

O ModeloE ntidade-R elacionamento

Bancos de Dados

Page 2: 03 mer2

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

Page 3: 03 mer2

Bancos de Dados

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

Fases do Projeto deBases de Dados (EN94)

Page 4: 03 mer2

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

Page 5: 03 mer2

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

Page 6: 03 mer2

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

Page 7: 03 mer2

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*

Page 8: 03 mer2

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}

Page 9: 03 mer2

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

Page 10: 03 mer2

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)

Page 11: 03 mer2

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.

Page 12: 03 mer2

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.

Page 13: 03 mer2

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

Page 14: 03 mer2

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

Page 15: 03 mer2

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

Page 16: 03 mer2

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

Page 17: 03 mer2

Bancos de Dados

Parte 3: O Modelo Entidade-Relacionamento Pag.: 17

■ Usando Agrega ção

TrabalhaFuncionárioN N

Projeto

Máquina

N

Utiliza

N

Page 18: 03 mer2

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

Page 19: 03 mer2

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

Page 20: 03 mer2

Bancos de Dados

Parte 3: O Modelo Entidade-Relacionamento Pag.: 20

■ Generaliza ção/Especializa ção não-Exclusiva

Professor

Pessoa

AlunoFuncionário

Page 21: 03 mer2

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

Page 22: 03 mer2

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

Page 23: 03 mer2

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

Page 24: 03 mer2

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

Page 25: 03 mer2

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

Page 26: 03 mer2

Bancos de Dados

Parte 3: O Modelo Entidade-Relacionamento Pag.: 26

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

Page 27: 03 mer2

Bancos de Dados

Parte 3: O Modelo Entidade-Relacionamento Pag.: 27

Page 28: 03 mer2

Bancos de Dados

Parte 3: O Modelo Entidade-Relacionamento Pag.: 28

BD de uma Companhia - Peter Chen (EN94)

Page 29: 03 mer2

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

Page 30: 03 mer2

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

Page 31: 03 mer2

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

Page 32: 03 mer2

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

Page 33: 03 mer2

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: :

Page 34: 03 mer2

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

Page 35: 03 mer2

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.

Page 36: 03 mer2

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)

Page 37: 03 mer2

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

Page 38: 03 mer2

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

Page 39: 03 mer2

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.

Page 40: 03 mer2

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

Page 41: 03 mer2

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

Page 42: 03 mer2

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.

Page 43: 03 mer2

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*