universidade do vale do paraíba

36
©Prof. Lineu Mialare Aula 8 - 1 Banco de Dados I Universidade do Vale do Paraíba Faculdade de Engenharias, Arquitetura e Urbanismo – FEAU Graduação em Engenharia de Computação 1 0 Semestre de 2008 Disciplina: Banco de Dados II Prof. Lineu Mialaret Aula 8: Modelo Entidade Relacionamento (4)

Upload: jara

Post on 21-Jan-2016

28 views

Category:

Documents


0 download

DESCRIPTION

Universidade do Vale do Paraíba Faculdade de Engenharias, Arquitetura e Urbanismo – FEAU Graduação em Engenharia de Computação 1 0 Semestre de 2008. Disciplina: Banco de Dados II Prof. Lineu Mialaret Aula 8 : Modelo Entidade Relacionamento (4). Recursos de Extensão do MER. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 1Banco de Dados I

Universidade do Vale do ParaíbaFaculdade de Engenharias, Arquitetura

e Urbanismo – FEAU

Graduação em Engenharia de Computação

10 Semestre de 2008

Disciplina: Banco de Dados IIProf. Lineu Mialaret

Aula 8: Modelo Entidade Relacionamento (4)

Page 2: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 2Banco de Dados I

Recursos de Extensão do MER

Apesar de ser possível modelar os domínios de conhecimento com os conceitos básicos do Modelo Entidade Relacionamento – MER já apresentados, alguns aspectos semânticos desses domínios podem ser expressos de modo mais adequado por meio de extensões do MER.

Há recursos de modelagem que estendem o MER, possibilitando modelos mais precisos e adequados desses domínios.

Tais recursos podem ser caracterizados como: Especialização e Generalização.

Agregação.

Page 3: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 3Banco de Dados I

Especialização (1)

Um conjunto de entidades pode conter subgrupos de entidades, que são, de alguma forma, diferentes das outras entidades do grupo.

Ou seja, um subconjunto de entidades pode possuir atributos específicos que não são compartilhados pelas demais entidades.

Considere o conjunto de entidades conta, com os atributos numero_conta e saldo. Uma entidade conta pode ser classificada como sendo de um dos seguintes subgrupos de entidades: conta_poupança conta_movimento

Cada um destes tipos de conta é descrito por um conjunto de atributos, que além de conter todos os atributos da entidade conta, possui outros atributos adicionais. Exemplo: a entidade conta_poupança pode conter o atributo adicional

taxa_juros, enquanto que a entidade conta_movimento pode conter o atributo adicional limite_cheque_especial.

Denomina-se de especialização esse processo de projetar subgrupos específicos dentro de um conjunto de entidades.

Page 4: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 4Banco de Dados I

A entidade conta pode ser especializada

em outras entidades

Especialização (2)

Page 5: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 5Banco de Dados I

Especialização (3)

O processo de especialização pode ser aplicado repetidamente, para se refinar o MER.

Por exemplo, um banco pode oferecer ainda três tipos de contas movimento: Uma conta movimento do tipo padrão, com uma taxa de 3 reais

mensais e 25 folhas de cheque gratuitas por mês.

Uma conta movimento do tipo especial, que exige um saldo mínimo de 1000 reais, paga taxa de juros de 2% e sem limite de emissão de folhas de cheques.

Uma conta movimento do tipo sênior, para clientes com mais de 65 anos de vida e sem limite de emissão de folhas de cheques.

A especialização do conjunto de entidades conta_movimento cria os seguintes subconjuntos de entidades: padrão, com o atributo numero_cheques.

especial, com os atributos saldo_minimo e taxa_juros.

sênior, com o atributo data_aniversario.

Page 6: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 6Banco de Dados I

Especialização (4)

A entidade conta_movimento pode ainda ser especializada

em outras entidades

Exemplo de Especialização no MER.

Page 7: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 7Banco de Dados I

Especialização (5)

Em termos de MER, a especialização é representada pelo triângulo rotulado de ISA.

Esse rótulo padrão ISA (do inglês “is a” – é um) indica que uma conta poupança é uma conta ou que uma conta movimento também é uma conta.

Esse relacionamento ISA também pode ser entendido como um relacionamento de superclasse e subclasse (lembrar da orientação a objetos).

Os conjunto de entidades em nível superior (a entidade mais genérica) e em nível inferior (a entidade mais especializada) são representados de mesmo modo que os conjunto de entidades normais, ou seja, com o uso de retângulos simples.

Page 8: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 8Banco de Dados I

PESSOAFÍSICA

cpf

PESSOAJURÍDICA

CLIENTE

cgcsexo

nome

código

Especialização (6)

ISA

entidade de nível superior

entidade de nível inferior

Outro Exemplo de Especialização no MER.

Page 9: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 9Banco de Dados I

Generalização (1)

O refinamento do conjunto de entidades em níveis sucessivos de subgrupos de entidades indica que ocorre um processo de refinamento top-down (de cima para baixo), no qual as diferenciações entre as entidades são realizadas de modo explícito.

Um outro modo de determinar subgrupos de entidades é realizar esse processo de maneira bottom-up (de baixo para cima), ou seja, no qual vários subgrupos de entidades são sintetizados em um conjunto de entidades de mais alto nível, com base em atributos comuns.

Baseado no exemplo anterior da especialização, poderia ser identificado numa primeira abordagem, a existência de um conjunto de entidades conta_movimento, com os atributos numero_conta, saldo e limite_cheque_especial e o conjunto de entidades conta_poupança, com os atributos numero_conta, saldo e taxa_juros.

Há similaridades entre o conjunto de entidades conta_movimento e o conjunto de entidades conta_poupança, já que ambos possuem atributos comuns.

Page 10: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 10Banco de Dados I

Generalização (2)

Esse compartilhamento de atributos pode ser expresso pela generalização, a qual exprime o relacionamento existente entre os conjuntos de entidades de nível superior e um ou mais conjunto de entidades de nível inferior.

No exemplo apresentado, conta é um conjunto de entidades de nível superior e conta_poupança e conta_movimento são conjuntos de entidades de nível inferior.

Na prática, a generalização é o inverso da especialização, e ambos os processos são aplicáveis no desenvolvimento de um MER.

A especialização parte de um único conjunto de entidades e enfatiza as diferenças entre as entidades pertencentes ao conjunto por meio do estabelecimento das diferenças expressas nos conjuntos de entidades de nível inferior.

A generalização reconhece a existência de um número de conjuntos de entidades que compartilham características comuns, e procede a sintetização dessas entidades num conjunto de entidades de nível superior.

Page 11: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 11Banco de Dados I

Exemplo de Especialização/GeneralizaçãoG

en

era

liza

çã

oE

sp

ec

ializaç

ão

Page 12: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 12Banco de Dados I

Herança de Atributos (1)

Um propriedade importante das entidades de nível superior e inferior criadas pelos processos de especialização e generalização é a herança de atributos.

Ou seja, os atributos dos conjuntos de entidades de nível superior são herdados pelos conjuntos de nível inferior. Exemplo: os conjuntos de entidades conta_poupança e

conta_movimento herdam os atributos do conjunto de entidades conta. Assim a entidade conta_poupança é identificada por seus atributos numero_conta, saldo e taxa_juros. A entidade conta_movimento é identificada pelos atributos numero_conta, saldo e limite_cheque_especial.

Os conjuntos de entidades de nível inferior também herdam a participação em conjuntos de relacionamentos. Exemplo: supondo que o conjunto de entidades conta participa (tem)

de um conjunto de relacionamentos depositante, os conjuntos de entidades conta_poupança e conta_movimento também participam desse conjunto de relacionamentos.

Page 13: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 13Banco de Dados I

Funcionario

ISA

Motorista Secretaria Engenheiro

Veiculo

dirige

Departamentolotado

Projeto

participa

Herança de Atributos (2)

A entidade especializada Motorista herda atributos e relacionamentos da entidade Funcionario e ainda tem um relacionamento dirige com Veiculo

A entidade genérica Funcionario tem um relacionamento lotado com Departamento

Page 14: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 14Banco de Dados I

Restrições de Herança (1)

Para a modelagem mais apurada da realidade, o projetista de Banco de Dados pode optar por definir algumas restrições em uma generalização/especialização em particular.

O primeiro tipo de restrição envolve a determinação das entidades que podem participar de um dado conjunto de entidades de nível inferior.

Tais escolhas podem ser: Definida por condição - um conjunto de entidades de nível inferior

definido por condição é selecionado com base na satisfação ou não de condições ou predicados preestabelecidos.

Exemplo - todos os clientes com idade acima de 65 anos são membros do conjunto de entidades cliente_senior, e cliente_senior ISA pessoa.

Definida pelo usuário - um conjunto de entidades de nível inferior definido pelo usuário não tem seus membros classificados por uma condição, ou seja, as entidades são designadas a um determinado conjunto de entidades especializado por usuários ou projetistas de BD.

Page 15: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 15Banco de Dados I

Restrições de Herança (2)

O segundo tipo de restrição determina se uma entidade pode ou não pertencer a mais de um conjunto de entidades de nível inferior dentro de uma generalização/especialização simples.

Os conjuntos de entidades de nível inferior podem ser um dos seguintes: Mutuamente exclusivos (disjunção) - restrições mutuamente

exclusivas exigem que uma entidade pertença a apenas um conjunto de entidades de nível inferior. Usa-se a palavra-chave disjunto (disjoint) próximo ao triângulo ISA para caracterizar esse tipo de herança. Exemplo - numa hierarquia de membro da universidade, estudante,

professor e técnico de laboratório, cada membro da universidade deve ser estudante, professor ou funcionário de laboratório.

Sobrepostos (sobreposição) - uma mesma entidade pode pertencer a mais de um conjunto de entidades de nível inferior. Exemplo - numa hierarquia de aluno, este pode ser aluno de

graduação e de aluno de pós-graduação ao mesmo tempo.

Page 16: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 16Banco de Dados I

Estudante Técnico

Membro daUniversidade

Professor

ISA

Graduação Pós-Graduação

Aluno

ISA

disjunto

Restrições de Herança (3)

Na herança com disjunção, cada Membro da Universidade da da universidade deve ser Estudante, Professor ou Técnico.

Na herança com sobreposição, um Aluno pode ser Aluno de Graduação e de Aluno de Pós-graduação ao mesmo tempo

Page 17: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 17Banco de Dados I

Restrições de Herança (3)

O terceiro tipo de restrição, a restrição de totalidade, determina se uma entidade de nível superior pertence ou não, a no mínimo, um dos conjuntos de entidades de nível inferior. Essa restrição pode ser uma das seguintes: Total - cada entidade do conjunto de entidades de nível superior deve

pertencer a um conjunto de entidades de nível inferior (representada pelo símbolo ||).

Exemplo: numa hierarquia de automóvel, automóvel de passeio e automóvel de trabalho, só há instâncias das entidades automóvel de passeio ou automóvel de trabalho (uma instância de automóvel é mapeada para automóvel de passeio ou automóvel de trabalho).

Parcial - uma entidade de nível superior pode não pertencer a nenhum dos conjuntos de entidades de nível inferior.

Exemplo: numa hierarquia de automóvel, automóvel de passeio e automóvel de trabalho, pode-se ter instâncias das entidades automóvel de passeio e automóvel de trabalho, e instâncias de automóvel.

Page 18: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 18Banco de Dados I

Automóvel dePasseio

Automóvel deTrabalho

Automóvel

ISA

Na herança total, só há instâncias das entidades Automóvel de Passeio ou Automóvel de Trabalho

Automóvel dePasseio

Automóvel deTrabalho

Automóvel

ISA

Na herança parcial, há instâncias das entidades Automóvel, Automóvel de Passeio ou Automóvel de Trabalho

Restrições de Herança (4)

Page 19: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 19Banco de Dados I

Agregação (1)

Uma das limitações do MER é que não é possível expressar diretamente relacionamentos de relacionamentos. Seja um BD que descreve informações sobre clientes e seus empréstimos. Suponha que cada par cliente e empréstimo (caracterizando o relacionamento devedor) deve possuir um empregado, que vai ser o responsável pelo acompanhamento de determinado empréstimo.

Page 20: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 20Banco de Dados I

Agregação (3)

O melhor modo de se modelar a situação descrita anteriormente é usar o conceito de agregação, que se constitui numa abstração por meio da qual relacionamentos são tratados como entidades.

A agregação permite:

Tratar o relacionamento como uma entidade.

Relacionamentos entre relacionamentos

Abstrair o relacionamento em nova entidade.

No exemplo apresentado, simboliza-se o conjunto de relacionamentos devedor como um conjunto de entidades denominado devedor.

Page 21: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 21Banco de Dados I

Agregação (4)

Exemplo do Uso de Agregação.

Na agregação, o relacionamento devedor se transforma numa entidade.

Page 22: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 22Banco de Dados I

Médico Paciente

Medicamento

consulta

Médico Paciente

Medicamento

prescreve

Consultaaplica recebe

Agregação (5)

Na agregação, o relacionamento consulta se transforma na entidade Consulta.

prescreve

Page 23: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 23Banco de Dados I

Atributo ou Entidade

Uma questão que surge no desenvolvimento de um MER é entre modelar algo como um atributo de uma entidade ou como uma entidade autônoma.

Critérios: Se o objeto da modelagem está vinculado a outras entidades ou

possui atributos importantes - modelar como entidade. Se há transações que alteram os valores do objeto - modelar como

entidade.

Exemplo:

Carro

cor

Carro tem Cor

dada

Fabricante

Neste contexto há um vínculo do atributo com uma entidade.

Page 24: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 24Banco de Dados I

Atributo ou Generalização/Especialização

Outra questão que surge no desenvolvimento de um MER é entre modelar algo como um atributo de uma entidade ou como uma especialização.

Critério: Só utilizar especialização quando as entidades especializadas

possuem propriedades particulares (atributos e relacionamentos com outras entidades, por exemplo).

Exemplo:

Empregado

categoriafuncional

Motorista Técnico

Empregado

Engenheiro

ISA

Veiculo

Page 25: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 25Banco de Dados I

Atributo Multivalorados

Uma questão que surge no desenvolvimento de um MER é quanto a modelagem de atributos multivalorados.

Critério: Depende do contexto.

Exemplo:

Empregado

dependente

Empregado tem Dependente

nomedata de

nascimento

Neste contexto só há necessidade do(s) nome(s) do(s) dependentes

Neste contexto há a necessidade da(s) data(s) de nascimento do(s) dependentes, além dos nome(s)

Page 26: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 26Banco de Dados I

Um atributo pertence a um relacionamento de cardinalidade M:M sempre que: Fixa-se um elemento da 1a entidade, e observa-se o valor do atributo

para cada mudança de elemento na 2a entidade.

Se o valor do atributo mudar, então o atributo não pertence a 1a entidade.

Fixa-se um elemento da 2a entidade, e observa-se o valor do atributo para cada mudança de elemento na 1a entidade.

Se o valor do atributo mudar, então ele não pertence a 1ª entidade.

Se o atributo não pertence as entidades envolvidas, e é relevante no contexto do relacionamento, então ele é atributo do relacionamento M:M.

Atributo de Relacionamentos M:M (1)

Page 27: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 27Banco de Dados I

A quem pertence os atributos preco, quantidade e prazo?

Produto FornecedorVende

preco

Atributo de Relacionamentos M:M (2)

quantidade prazo

Page 28: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 28Banco de Dados I

Os atributos preco, quantidade e prazo, não podem pertencer a entidade Produto, pois se fosse assim todos os fornecedores deveriam praticar o mesmo preço.

Atributo de Relacionamentos M:M (3)

Produto FornecedorVende

preco

quantidade

prazo

Produto Y

Fornecedor X

Fornecedor Z

Fornecedor W

Page 29: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 29Banco de Dados I

Os atributos preco, quantidade e prazo, não podem pertencer a entidade Fornecedor, pois se fosse assim todos os produtos de um fornecedor teriam o mesmo preço.

*Condições

Atributo de Relacionamentos M:M (4)

Produto FornecedorVende

preco

quantidade

prazo

Produto A

Produto B

Produto C

Fornecedor X

Page 30: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 30Banco de Dados I

Não pertencendo nem a entidade Produto ou a entidade Fornecedor, e sendo relevante no relacionamento Vende, são atributos do relacionamento.

Atributo de Relacionamentos M:M (5)

Produto FornecedorVende

preco

quantidade

prazo

Page 31: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 31Banco de Dados I

Em geral, qualquer relacionamento não binário pode ser representado por relacionamentos binários, por meio da criação de um conjunto artificial de entidades. Substitua o conjunto de relacionamentos R entre os conjuntos de

entidades A, B e C por um conjunto de entidades E e três conjuntos de relacionamentos:

1. RA, relacionando E e A 2. RB, relacionando E e B

3. RC, relacionando E e C

Opcionalmente, crie um atributo de identificação especial para E Adicione qualquer atributo de R para E

Para cada relacionamento (ai , bi , ci) in R, crie

1. uma nova entidade ei em E 2. adicione (ei , ai ) para RA

3. adicione (ei , bi ) para RB 4. adicione (ei , ci ) para RC

Conversão de Relacionamentos (1)

Page 32: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 32Banco de Dados I

Algumas ferramentas CASE, destinadas a modelagem, são

baseadas em variações do Modelo Entidade Relacionamento –

MER que admitem somente relacionamentos binários (ou seja, de

grau 2). Elas não permitem a modelagem de relacionamentos ternários (de

grau 3) ou maiores, por exemplo. Exemplo: a ferramenta PowerDesigner, da Sybase.

Neste caso, a solução é transformar o relacionamento ternário em

vários relacionamentos binários, conforme já foi apresentado. Exemplo: considere o seguinte contexto entre um fornecedor que

fornece peças para projetos, conforme apresentado na transparência a

seguir.

Conversão de Relacionamentos (2)

Page 33: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 33Banco de Dados I

Conversão de Relacionamentos (3)

Exemplo de um Relacionamento

Ternário.

Page 34: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 34Banco de Dados I

a1

a2

Fornecedor

b1

b2

b3

Peça

r1

r2

r3

r4

r5

r6

r7

Fornece

c1

c2

c3

Projeto

Conversão de Relacionamentos (4)

Grafo de Ocorrências de um Relacionamento

Ternário.

Page 35: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 35Banco de Dados I

Neste contexto, a solução para essa transformação é representar o

relacionamento fornece como um tipo de entidade fraca, sem

nenhuma ou alguma chave parcial (identificador) e com três

relacionamentos identificadores (lembrar do conceito de entidade

fraca e relacionamento identificador), conforme apresentado na

transparência a seguir. Os três tipos de entidades participantes Fornecedor, Peça e Projeto

são conjuntamente as entidades proprietárias. Dessa forma a entidade fraca Fornece é identificada por meio da

combinação de suas entidades proprietárias Fornecedor, Peça e

Projeto.

Conversão de Relacionamentos (5)

Page 36: Universidade do Vale do Paraíba

©Prof. Lineu MialaretAula 8 - 36Banco de Dados I

Relacionamento ternário transformado em vários

relacionamentos Binários.

Conversão de Relacionamentos (6)