Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo...

82
Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Capítulo 6: Modelo entidade- relacionamento

Transcript of Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo...

Page 1: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Capítulo 6: Modelo entidade-relacionamento

Page 2: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Capítulo 6: Modelo entidade-relacionamento

Processo de projeto

Modelagem

Restrições

Diagrama ER

Aspectos de projeto

Conjuntos de entidades fracos

Recursos de ER estendidos

Projeto de banco de dados para instituição bancária

Redução aos esquemas relacionais

Projeto de banco de dados

UML

Page 3: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Modelagem

Um banco de dados pode ser modelado como:

Uma coleção de entidades,

Relacionamento entre entidades.

Uma entidade é um objeto que existe e é distinguível de outros objetos.

Exemplo: pessoa, empresa, evento e planta específicos

Entidades possuem atributos

Exemplo: pessoas têm nomes e endereços

Um conjunto de entidades é um grupo de entidades do mesmo tipo que compartilham as mesmas propriedades.

Exemplo: conjunto de todas as pessoas, empresas, árvores, feriados

Page 4: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Conjuntos de entidades clientee empréstimo

Page 5: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Conjuntos de relacionamento Um relacionamento é uma associação entre várias entidades

Exemplo:

Hayes depositante A-102entidade cliente conjunto de relacionamento entidade

conta

Um conjunto de relacionamento é uma relação matemática entre n 2 entidades, cada uma tomada de conjuntos de entidades

{(e1, e2, … en) | e1 E1, e2 E2, …, en En}

onde (e1, e2, …, en) é um relacionamento

Exemplo:

(Hayes, A-102) depositante

Page 6: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Conjunto de relacionamento tomador

Page 7: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Conjuntos de relacionamento (cont.) Um atributo também pode ser uma propriedade de um conjunto de

relacionamento.

Por exemplo, o relacionamento depositante entre os conjuntos de entidades cliente e conta pode ter o atributo data-acesso

Page 8: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Grau de um conjunto de relacionamento

Refere-se ao número de conjuntos de entidades que participam em um conjunto de relacionamento.

Os conjuntos de relacionamento que envolvem dois conjuntos de entidades são binários (ou de grau 2). Geralmente, a maioria dos conjuntos de relacionamento em um sistema de banco de dados são binários.

Os conjuntos de relacionamento podem envolver mais de dois conjuntos de entidades.

Exemplo: Suponha que os funcionários de um banco possam ter atividades (responsabilidades) em várias agências, com diferentes cargos em diferentes agências. Então, existe um conjunto de relacionamento ternário entre os conjuntos de entidades funcionário, cargo e ag

Os relacionamentos entre mais de dois conjuntos de entidades são rados. A maioria dos relacionamentos é binária. (Mais sobre isso posteriormente.)

Page 9: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Atributos

Uma entidade é representada por um conjunto de atributos, que são propriedades descritivas processadas por todos os membros de um conjunto de entidades.

– Exemplo:cliente = id_cliente, nome_cliente , rua_cliente, cidade_cliente)empréstimo = (número_empréstimo, conta)

Domínio – o conjunto de valores permitidos para cada atributo Tipos de atributo:

Atributos simples e compostos. Atributos de valor único e de valores múltiplos

Exemplo: atributo de valores múltiplos: números_telefone Atributos derivados

Podem ser calculados a partir de outros atributos Exemplo: idade, dado data_nascimento

Page 10: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Atributos compostos

Page 11: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Restrições de cardinalidadede mapeamento

Expressam o número de entidades ao qual outra entidade pode ser associada através de um conjunto de relacionamento.

Normalmente são úteis em descrever conjuntos de relacionamento binários.

Para um conjunto de relacionamento binário, a cardinalidade de mapeamento precisa ser de um dos seguintes tipos:

Um-para-um Um-para-muitos Muitos-para-um Muitos-para-muitos

Page 12: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Cardinalidades de mapeamento

• Um-para-um

• Um-para-muitos

• Nota: Alguns elementos em A e B podem não ser mapeados para quaisquer elementos no outro conjunto.

Page 13: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Cardinalidades de mapeamento

• Muitos-para-um

• Muitos-para-muitos

• Nota: Alguns elementos em A e B podem não ser mapeados para quaisquer elementos no outro conjunto.

Page 14: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Chaves Uma superchave de um conjunto de entidades é um conjunto de um ou mais

atributos cujos valores determinam unicamente cada entidade.

Uma chave candidata de um conjunto de entidades é uma superchave mínima

Id_cliente é uma chave candidata de cliente

número_conta é uma chave candidata de conta

Embora possam existir várias chaves candidatas, uma das chaves candidatas é selecionada para ser a chave primária.

Page 15: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Chaves para conjuntos de relacionamento

A combinação de chaves primárias dos conjuntos de entidades participantes forma uma superchave de um conjunto de relacionamento.

(id_cliente, número_conta) é a superchave de depositante

NOTA: isso significa que um par de conjuntos de entidades pode ter no máximo um relacionamento em um determinado conjunto de relacionamento.

Exemplo: Se desejarmos acompanhar todas as datas de acesso a cada conta por cada cliente, não podemos considerar um relacionamento para cada acesso. Entretanto, podemos usar um atributo de valores múltiplos.

Precisam considerar a cardinalidade de mapeamento do conjunto de relacionamento quando decidir quais são as chaves candidatas

Precisam considerar a semântica do conjunto de relacionamento ao selecionar a chave primária no caso de mais de uma chave candidata

Page 16: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Diagramas ER

Retângulos representam conjuntos de entidades. Losangos representam conjuntos de relacionamento. Linhas vinculam atributos a conjuntos de entidades e estes a conjuntos de

relacionamento. Elipses representam atributos

Elipses duplas representam atributos de valores múltiplos. Elipses tracejadas indicam atributos derivados.

Sublinhados indicam atributos de chave primária (que veremos mais tarde)

Page 17: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Diagrama ER com atributos compostos, derivados e de valores

múltiplos

Page 18: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Conjuntos de relacionamentocom atributos

Page 19: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Funções Conjuntos de entidades de um relacionamento não precisam ser distintos

Os rótulos “gerente” e “funcionário” são chamados funções; eles especificam como as entidades de funcionário interagem através do conjunto de relacionamento trabalha_para.

As funções são indicadas nos diagramas ER rotulando as linhas que conectam os losangos aos retângulos.

Os rótulos de função são opcionais e são usados para esclarecer a semântica do relacionamento

Page 20: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Restrições de cardinalidade

Expressamos as restrições de cardinalidade desenhando uma linha direcionada (), significando “um”, ou uma linha não direcionada (—), significando “muitos”, entre o conjunto de relacionamento e o conjunto de entidades.

Relacionamento um-para-um:

Um cliente está associado, no máximo, a um empréstimo através do relacionamento tomador

Um empréstimo está associado, no máximo, a um cliente através de tomador

Page 21: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Relacionamento um-para-muitos

No relacionamento um-para-muitos, um empréstimo está associado, no máximo, a um cliente através de tomador, um cliente está associado a vários (inclusive 0) empréstimos através de tomador

Page 22: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Relacionamento muitos-para-um Em um relacionamento muitos-para-um, um empréstimo está associado a

vários (inclusive 0) clientes através de tomador, um cliente está associado, no máximo, a um empréstimo através de tomador

Page 23: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Relacionamento muitos-para-muitos

Um cliente está associado a vários (possivelmente 0) empréstimos através de tomador

Um empréstimo está associado a vários (possivelmente 0) clientes através de tomador

Page 24: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Participação de um conjunto de entidades em um conjunto de

relacionamento Participação total (indicada por uma linha dupla): cada entidade no conjunto de entidades participa no mínimo em um relacionamento no conjunto de relacionamento

Por exemplo, a participação de empréstimo em tomador é total

Cada empréstimo precisa ter um cliente associado através de tomador

Participação parcial: algumas entidades podem não participar em relacionamento algum no conjunto de relacionamento

Exemplo: a participação de cliente em tomador é parcial

Page 25: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Notação alternativa para limitesde cardinalidade

Os limites de cardinalidade também podem expressar restrições de participação

Page 26: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Diagrama ER com um relacionamento ternário

Page 27: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Restrições de cardinalidadeno relacionamento ternário

Permitimos no máximo uma seta saindo de um relacionamento ternário (ou grau maior) para indicar uma restrição de cardinalidade

Por exemplo, uma seta de trabalha_em indica que cada funcionário trabalha no máximo em um cargo em qualquer agência.

Se houver mais de uma seta, haverá duas maneiras de definir o significado.

Por exemplo, um relacionamento ternário R entre A, B e C com setas para B e C poderia significar:

1. Cada entidade A está associada a uma única entidade de B e C ou

2. Cada par de entidades de (A, B) está associado a uma única entidade C, e cada par (A, C) está associado a um único B

Cada alternativa foi usada em diferentes formalismos

Para evitar confusão, proibimos mais de uma seta

Page 28: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Aspectos de projeto

Uso de conjuntos de entidades versus atributosA escolha depende principalmente da estrutura da empresa sendo modelada e da semântica associada ao atributo em questão.

Uso de conjuntos de entidades versus conjuntos de relacionamentoUma possível regra é designar um conjunto de relacionamento para descrever uma ação que ocorre entre entidades.

Conjuntos de relacionamento binários versus enáriosEmbora seja possível substituir um conjunto de relacionamento não binário (enário, para n > 2) por diversos conjuntos de relacionamento binários distintos, um conjunto de relacionamento enário mostra mais claramente que várias atributos participam em um único relacionamento.

Posicionamento dos atributos de relacionamento

Page 29: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Relacionamentos binários versusnão binários

Alguns relacionamentos que parecem ser não binários podem ser mais bem representados por vários relacionamentos binários.

Por exemplo, um relacionamento ternário pais, relacionando um filho ao seu pai e mãe, é melhor representado por dois relacionamentos binários, mãe e pai

Usar dois relacionamentos binários permite informações parciais (por exemplo, se apenas a mãe for conhecida)

Mas existem relacionamentos que são naturalmente não binários

Exemplo: trabalha_em

Page 30: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Convertendo relacionamentos não binários para a forma binária

Em geral, qualquer relacionamento não binário pode ser representado usando relacionamentos binários criando um conjunto de entidades artificial.

Substitua R entre os conjuntos de entidades A, B e C por um conjunto de entidades E três conjuntos de relacionamento:

1. RA, relacionando E e A2. RB, relacionando E e B3. RC, relacionando E e C

Crie um atributo identificador especial para E Inclua quaisquer atributos de R em E Para cada relacionamento (ai , bi , ci) em R,

1. crie uma nova entidade ei no conjunto de entidades E 2. inclua (ei , ai ) em RA

3. inclua (ei , bi ) em RB

4. inclua (ei , ci ) em RC

Page 31: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Convertendo relacionamentos não binários para a forma binária

(cont.) Também precisamos traduzir as restrições

Talvez não seja possível traduzir todas as restrições

Pode haver instâncias no esquema traduzido que não pode corresponder a instância alguma de R

Exercício: acrescente restrições aos relacionamentos RA, RB e RC para

garantir que uma entidade recém-criada corresponda a exatamente uma entidade em cada um dos conjuntos de entidades A, B e C

Podemos evitar a criação de um atributo identificador tornando E um conjunto de entidades fraco (descrito brevemente) identificado pelos três conjuntos de relacionamento.

Page 32: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Cardinalidades de mapeamento afetam

o projeto ER Podemos tornar a data de acesso um atributo de conta, em vez de um atributo de relacionamento, se cada conta puder ter apenas um cliente Ou seja, o relacionamento de conta para cliente é muitos-para-um ou,

equivalentemente, cliente para conta é um-para-muitos

Page 33: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Que tal criar um projeto ER interativamente no quadro?Sugira uma aplicação a ser

modelada.

Page 34: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Conjuntos de entidades fracos Um conjunto de entidades que não possui uma chave primária

é chamado de conjunto de entidades fraco.

A existência de um conjunto de entidades fraco depende da existência de um conjunto de entidades identificador

Ele precisa se relacionar com o conjunto de entidades identificador através de um conjunto de relacionamento um-para-muitos total, do identificador para o conjunto de entidades fraco

Relacionamento identificador descrito usando um losango duplo

O discriminador (ou chave parcial) de um conjunto de entidades fraco é o conjunto de atributos que distingue entre todas as entidades de um conjunto de entidades fraco.

A chave primária de um conjunto de entidades fraco é formada pela chave primária do conjunto de entidades forte em que o conjunto de entidades fraco é dependente de existência, mais o discriminador do conjunto de entidades fraco.

Page 35: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Conjuntos de entidades fracos (cont.)

Representamos um conjunto de entidades fraco por retângulos duplos.

Sublinhamos o discriminador de um conjunto de entidades fraco com uma linha tracejada.

número_pagamento — discriminador do conjunto de entidades pagamento.

Chave primária para pagamento — (número_empréstimo, número_pagamento)

Page 36: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Conjuntos de entidades fracos (cont.)

Nota: A chave primária do conjunto de entidades forte não é

explicitamente armazenada com o conjunto de entidades fraco, já que

ela está implícita no relacionamento identificador.

Se número_empréstimo fosse explicitamente armazenado, pagamento

poderia se tornar uma entidade forte, mas, então, o relacionamento

entre pagamento e empréstimo seria duplicado por um

relacionamento implícito definido pelo atributo número_empréstimo

comum a pagamento e empréstimo.

Page 37: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Mais exemplos de conjunto de entidades fraco

Em uma universidade, um curso é uma entidade forte e uma oferta_curso pode ser modelada como uma entidade fraca

O discriminador de oferta_curso seria semestre (incluindo ano) e número_seção (se houver mais de uma seção)

Se modelarmos oferta_curso como uma entidade forte, modelaríamos número_curso como um atributo.

Então, o relacionamento com curso estaria implícito no atributo número_curso

Page 38: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Recursos de ER estendidos: Especialização

Processo de projeto de cima para baixo: Designamos subagrupamentos dentro de um conjunto de entidades que são distintivos de outras entidades no conjunto.

Esses subagrupamentos se tornam conjuntos de entidades de nível inferior que possuem atributos ou participam em relacionamentos que não se aplicam ao conjunto de entidades de nível superior.

Representada por um componente triângulo rotulado ISA (por exemplo, cliente “é uma” pessoa).

• Herança de atributo — Um conjunto de entidades de nível inferior herda todos os atributos e a participação de relacionamento do conjunto de entidades de nível superior ao qual está vinculado.

Page 39: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Exemplo de especialização

Page 40: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Recursos de ER estendidos: Generalização

Um processo de projeto de baixo para cima – Combine vários conjuntos de entidades que compartilham os mesmos recursos em um conjunto de entidades de nível superior.

A especialização e a generalização são simples inversões uma da outra; são representadas em um diagrama ER da mesma maneira.

Os termos especialização e generalização são usados indistintamente.

Page 41: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Especialização e generalização (cont.)

Pode ter múltiplas especializações de um conjunto de entidades com base em diferentes recursos.

Por exemplo, funcionário_permanente versus funcionário_temporário, além de gerente versus escriturário versus caixa.

Cada funcionário específico seria

um membro de funcionário_permanente ou funcionário_temporário

e também um membro de gerente, escriturário ou caixa.

O relacionamento ISA também é chamado de relacionamento superclasse-subclasse.

Page 42: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Restrições de projeto em uma especialização/generalização

A restrição sobre que entidades podem ser membros de um determinado conjunto de entidades de nível inferior. Definido por condição

Exemplo: Todos os clientes com mais de 65 anos são membros do conjunto de entidades cidadão_senior; cidadão_senior ISA pessoa.

Definido pelo usuário

Restringe sobre se ou não as entidades podem pertencer a mais de um conjunto de entidades de nível inferior dentro de uma única generalização. Disjuntos

uma entidade pode pertencer a não mais que um conjunto de entidades de nível inferior

Indicados no diagrama ER pela inscrição de disjunto ao lado do triângulo ISA

Superpostos um conjunto de entidades pode pertencer a mais de um conjunto de

entidades de nível inferior

Page 43: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Restrições de projeto em uma especialização/generalização (cont.)

Restrição de integralidade — Especifica se ou não uma entidade no conjunto de entidades de nível superior precisa pertencer a pelo menos um dos conjuntos de entidades de nível inferior dentro de uma generalização

total : Uma entidade precisa pertencer a um conjunto de entidades de nível inferior

parcial: Uma entidade não precisa pertencer a um conjunto de entidades de nível inferior

Page 44: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Agregação

Considere o relacionamento ternário trabalha_em, que vimos anteriormente

Suponha que queremos registrar gerentes para tarefas realizadas por um funcionário em uma agência

Page 45: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Agregação (cont.) Os conjuntos de relacionamento trabalha_em e gerencia representam informações

superpostas

Cada relacionamento gerencia corresponde a um relacionamento trabalha_em

Entretanto, alguns relacionamentos trabalha_em podem não corresponder a nenhum relacionamentos gerencia

Portanto, não podemos descartar o relacionamento trabalha_em

Elimine essa redundância através da agregação

Trate relacionamento como uma entidade abstrata

Permite relacionamentos entre relacionamentos

Abstração de relacionamento em nova entidade

Sem introduzir redundância, o diagrama a seguir representa:

Um funcionário trabalha em um cargo específico em uma agência específica

Um funcionário, agência ou combinação de cargos pode ter um gerente associado

Page 46: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Diagrama ER com agregação

Page 47: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Decisões de projeto ER Usar um atributo ou um conjunto de entidades para

representar um objeto.

Se um conceito do mundo real é expresso mais precisamente por um conjunto de entidades ou por um conjunto de relacionamento.

Usar um relacionamento ternário ou um par de relacionamentos binários.

Usar um conjunto de entidades forte ou fraco.

O uso de especialização/generalização — contribui para a modularidade do projeto.

O uso de agregação — pode tratar o conjunto de entidades agregado como uma única unidade sem preocupação com os detalhes de sua estrutura interna.

Page 48: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Diagrama ER para uma instituição bancária

Page 49: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Que tal criar outro projeto ER interativamente no quadro?

Page 50: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Resumo dos símbolos usados na notação ER

Page 51: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Resumo dos símbolos (cont.)

Page 52: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Redução aos esquemas de relação

As chaves primárias permitem que conjuntos de entidades e conjuntos de

relacionamento sejam expressos uniformemente como esquemas de relação

que representam o conteúdo do banco de dados.

Um banco de dados que se conforma a um esquema de banco de dados ER

pode ser representado por uma coleção de esquemas de relação.

Para cada conjunto de entidades e para cada conjunto de relacionamento,

existe um esquema único ao qual atribuímos o nome do conjunto de entidades

ou conjunto de relacionamento correspondente.

Cada esquema tem um número de colunas (geralmente correspondente aos

atributos), que possuem nomes únicos.

Page 53: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Representando conjuntos de entidades como esquemas

Um conjunto de entidades forte é reduzido para um esquema com os mesmos atributos.

Um conjunto de entidades fraco se torna uma tabela que inclui uma coluna para a chave primária do conjunto de entidades forte identificador.

pagamento =

( número_empréstimo, número_pagamento, data_pagamento, quantia_pagamento )

Page 54: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Representando conjuntosde relacionamento como esquemas

Um conjunto de relacionamento muitos-para-muitos é representado como um esquema com atributos para as chaves primárias dos dois conjuntos de entidades participantes e quaisquer atributos descritivos do conjunto de relacionamento.

Exemplo: Esquema para o conjunto de relacionamento tomador:

Exemplo: schema for relationship set borrower

tomador = (id_cliente, número_empréstimo )

Page 55: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Redundância de esquemas

Conjuntos de relacionamento muitos-para-um e muitos-para-muitos que são completos no lado “muitos” podem ser representados acrescentando um atributo extra no lado “muitos”, contendo a chave primária do lado “um”.

Exemplo: Em vez de criar um esquema para o conjunto de relacionamento agência_conta, acrescente um atributo nome_agência ao esquema surgindo do conjunto de entidades conta.

Page 56: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Redundância de esquemas (cont.) Para conjuntos de relacionamento um-para-um, qualquer lado pode ser

escolhido como o lado “muitos”.

Ou seja, o atributo extra pode ser acrescentado a qualquer uma das tabelas correspondentes aos dois conjuntos de entidades.

Se a participação for parcial no lado “muitos”, a substituição de um esquema por um atributo extra no esquema correspondente ao lado “muitos” poderia resultar em valores nulos.

O esquema correspondente a um conjunto de relacionamento vinculando um conjunto de entidades fraco ao seu conjunto de entidades forte identificador é redundante.

Exemplo: O esquema pagamento já contém os atributos que apareceriam no esquema pagamento_empréstimo (isto é, número_empréstimo e número_pagamento).

Page 57: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Atributos compostos e de valores múltiplos

Os atributos compostos são manipulados criando um atributo separado para cada um dos atributos componentes. Exemplo: Sejam dados o conjunto de entidades cliente com o

atributo composto nome com atributos componentes primeiro_nome e último_nome, o esquema correspondente ao conjunto de entidades possui dois atributos, nome.primeiro_nome e nome.último_nome

Um atributo de valores múltiplos M de uma entidade E é representado por um esquema separado EM. O esquema EM tem atributos correspondentes à chave primária de

E e um atributo correspondente ao atributo de valores múltiplos M. Exemplo: O atributo de valores múltiplos nomes_dependentes de

funcionário é representado por um esquema:nomes_dependentes_funcionário = (id_funcionário, nomedep)

Cada valor do atributo de valores múltiplos é mapeado para uma tupla separada da relação no esquema EM.

Por exemplo, uma entidade funcionário com chave primária 123-45-6789 e dependentes Jack e Jane mapeia para duas tuplas: (123-45-6789 , Jack) e (123-45-6789 , Jane)

Page 58: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Representando especialização através

de esquemas Método 1:

Forme um esquema para a entidade de nível mais alto

Forme um esquema para cada conjunto de entidades de nível inferior, inclua a chave primária do conjunto de entidades de nível superior e atributos locais

esquema atributos

pessoa nome, rua, cidade

cliente nome, avaliação_crédito

funcionário nome, salário

Desvantagem: Para obter informações sobre um funcionário, é necessário acessar duas relações, a relação correspondente ao esquema de baixo nível e a correspondente ao esquema de alto nível.

Page 59: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Representando especialização através

de esquemas (cont.) Método 2:

Forme um esquema para cada conjunto de entidades com todos os atributos locais e herdados

esquema atributos

pessoa nome, rua, cidade

cliente nome, rua, cidade, avaliação_crédito

funcionário nome, rua, cidade, salário

Se a especialização for total, o esquema para o conjunto de entidades generalizado (pessoa) não exige armazenar informações.

Pode ser definido como uma relação de “view” contendo a união das relações de especialização

Mas o esquema explícito ainda pode ser necessário para restrições de chave estrangeira

Desvantagem: rua e cidade podem ser armazenados redundantemente para pessoas que são, ao mesmo tempo, clientes e funcionários

Page 60: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Esquemas correspondentes à agregação

Para representar agregação, crie um esquema contendo

Chave primária do relacionamento agregado

A chave primária do conjunto de entidades associado

Quaisquer atributos descritivos

Page 61: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Esquemas correspondentes à agregação (cont.)

Por exemplo, para representar a agência gerencia entre o relacionamento trabalha_em e o conjunto de entidades gerente, crie um esquema

gerencia (id_funcionário, nome_agência, título, nome_gerente)

O esquema trabalha_em é redundante, desde que estejamos dispostos a armazenar valores nulos para o atributo nome_gerente na relação no esquema gerencia

Page 62: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

UML

UML: Unified Modeling Language

A UML possui muitos componentes para modelar graficamente diferentes aspectos de um sistema de software inteiro

O diagrama de classe UML corresponde ao diagrama ER, mas com várias diferenças.

Page 63: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Resumo da notação do diagramade classe UML

Page 64: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Notação do diagrama de classe UML (cont.)

Os conjuntos de entidades são mostrados como retângulos e, diferente do diagrama ER, os atributos são mostrados dentro do retângulo e não como elipses separadas.

Os conjuntos de relacionamento binários são representados na UML simplesmente desenhando uma linha conectando os conjuntos de entidades. O nome do conjunto de relacionamento é escrito adjacente à linha.

A função desempenhada por um conjunto de entidades em um conjunto de relacionamento também pode ser especificada escrevendo o nome da função na linha, adjacente ao conjunto de entidades.

Alternativamente, o nome do conjunto de relacionamento pode ser escrito em um retângulo, juntamente com atributos do conjunto de relacionamento, e o retângulo é conectado usando uma linha pontilhada até a linha representando o conjunto de relacionamento.

Os relacionamentos não binários são desenhados usando losangos, exatamente como nos diagramas ER

Page 65: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Notação do diagrama de classe UML (cont.)

• * Note a inversão de posições na representação da restrição de cardinalidade

• * A generalização pode usar setas mescladas ou separadas independentes de disjunção/superposição

Page 66: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Diagrama de classe UML (cont.)

As restrições de cardinalidade são especificadas na forma l..h, onde l indica o mínimo e h, o número máximo de relacionamentos em que um conjunto de entidades pode participar.

Atenção: O posicionamento das restrições é exatamente o inverso do posicionamento das restrições nos diagramas ER.

A restrição 0..* no lado E2 e a restrição 0..1 no lado E1 significam que cada entidade E1 pode participar em muitos relacionamentos; ou seja, o relacionamento é muitos-para-um de E2 para E1.

Valores únicos como 1 ou * podem ser escritos nas bordas; o valor único 1 em uma borda é tratado como equivalente a 1..1, enquanto * é equivalente a 0..*.

Page 67: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Fim do Capítulo 2

Page 68: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Diagrama ER para o Exercício 6.21

Page 69: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Diagrama ER para o Exercício 6.9

Page 70: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Diagrama ER para o Exercício 2.11

Page 71: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Diagrama ER para o Exercício 6.22

Page 72: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Dependências de existência Se a existência da entidade x depende da existência da entidade y,

então, diz-se que x é dependente de existência de y.

y é uma entidade dominante (no exemplo abaixo, empréstimo)

x é uma entidade subordinada (no exemplo abaixo, pagamento)

Se um empréstimo for excluído, então, todas as suas entidades pagamento associadas também precisarão ser excluídas.

Empréstimo-pagamento pagamentoempréstimo

Page 73: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Figura 6.8

Page 74: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Figura 6.15

Page 75: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Figura 6.16

Page 76: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Figura 6.26

Page 77: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Figura 6.27

Page 78: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Figura 6.28

Page 79: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Figura 6.29

Page 80: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Figura 6.30

Page 81: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Figura 6.31

Page 82: Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Capítulo 6: Modelo entidade-relacionamento.

Korth • Silberschatz • Sundarshan

Sistema de Banco de Dados, 5/E

Notações ER alternativasFigura 6.24