2.1.1database system concepts©silberschatz, korth and sudarshan (modificado) capítulo 2: modelo er...

22
2.1.1 Database System Concepts ©Silberschatz, Korth and Sudarshan (Modificad Capítulo 2: Modelo ER Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos do desenho Restrições Chaves Diagrama ER Extensões ao modelo ER Desenho dum Esquema de Base de Dados ER

Upload: tiago-pacheco-canela

Post on 07-Apr-2016

221 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 2.1.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos

2.1.1Database System Concepts ©Silberschatz, Korth and Sudarshan (Modificado)

Capítulo 2: Modelo ERCapítulo 2: Modelo ER

Conjuntos de entidades Conjuntos de relações Aspectos do desenho Restrições Chaves Diagrama ER Extensões ao modelo ER Desenho dum Esquema de Base de Dados ER

Page 2: 2.1.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos

2.1.2Database System Concepts ©Silberschatz, Korth and Sudarshan (Modificado)

Conjuntos de entidadesConjuntos de entidades

Uma base de dados pode ser modelada como: uma colecção de entidades, relações (ou associações) entre entidades.

Uma entidade é um objecto existente e que é distinguível de todos os outros objectos:

Exemplo: determinada pessoa, empresa, evento, planta As entidades possuem atributos

Exemplo: as pessoas têm nomes e endereços Um conjunto de entidades é um conjunto de entidades do

mesmo tipo e que partilham as mesmas propriedades.

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

Page 3: 2.1.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos

2.1.3Database System Concepts ©Silberschatz, Korth and Sudarshan (Modificado)

Conjuntos de Entidades Conjuntos de Entidades customercustomer e e loanloancustomer-id customer- customer- customer- loan- amount name street city number

Page 4: 2.1.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos

2.1.4Database System Concepts ©Silberschatz, Korth and Sudarshan (Modificado)

AtributosAtributos Uma entidade é representada por um conjunto de atributos, ou seja,

propriedades descritivas possuídas por todos os membros de um conjunto de entidades.Exemplo:

customer = (customer-id, customer-name, customer-street, customer-city)

loan = (loan-number, amount) Domínio – o conjunto de valores permitidos para cada atributo (e.g. o

domínio de customer-name pode ser o conjunto de todas as strings de no máximo 50 caracteres)

Tipos de atributos: Atributos simples e compostos. Atributos univalor e multivalor

E.g. atributo multivalor: números de telefone Atributos derivados

Pode ser calculado a partir de outros atributos E.g. idade, a partir da data de nascimento

Page 5: 2.1.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos

2.1.5Database System Concepts ©Silberschatz, Korth and Sudarshan (Modificado)

Atributos CompostosAtributos Compostos

Page 6: 2.1.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos

2.1.6Database System Concepts ©Silberschatz, Korth and Sudarshan (Modificado)

Conjuntos de RelaçõesConjuntos de Relações

Uma relação é uma associação entre várias entidadesExemplo: A associação entre o cliente Hayes e a conta A-102

Hayes depositante A-102entidade cliente relação entidade conta

Um conjunto de relações é uma relação matemática entre n 2 entidades, cada uma pertencente a um conj. de entidades

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

em que (e1, e2, …, en) é uma relação Exemplo:

(Hayes, A-102) depositante

Page 7: 2.1.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos

2.1.7Database System Concepts ©Silberschatz, Korth and Sudarshan (Modificado)

Conjunto de relações Conjunto de relações borrowerborrower

Page 8: 2.1.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos

2.1.8Database System Concepts ©Silberschatz, Korth and Sudarshan (Modificado)

Conjunto de Relações (Cont.)Conjunto de Relações (Cont.) Um atributo pode ser uma propriedade de um conjunto de relações. Por exemplo, o conj, de relações depositante entre os conjs. de

entidades customer e account pode ter um atributo access-date

Page 9: 2.1.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos

2.1.9Database System Concepts ©Silberschatz, Korth and Sudarshan (Modificado)

Restrições de Mapeamento (Cardinalidades)Restrições de Mapeamento (Cardinalidades)

Restringem o número de entidades com as quais pode estar associada uma outra entidade num determinado conjunto de relações.

Para um conjunto de relações binárias a restrição de mapeamento pode ser uma das seguintes: um para um (ou 1:1) um para muitos (ou um para vários, ou 1:N) muitos para um (ou vários para 1, ou N:1) muitos para muitos (ou vários para vários, N:M)

Page 10: 2.1.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos

2.1.10Database System Concepts ©Silberschatz, Korth and Sudarshan (Modificado)

Restrição 1:1Restrição 1:1

Nota: Alguns elementos de A ou B podem não estar relacionados com elementos do outro conjunto.

Proibe que uma entidade de A se relacione com mais do que uma entidade de B.

Proibe que uma entidade de B se relacione com mais do que uma entidade de B.

Exemplo: Numa empresa um empregado tem no máximo um carro, e um carro é atribuído a no máximo um empregado

Page 11: 2.1.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos

2.1.11Database System Concepts ©Silberschatz, Korth and Sudarshan (Modificado)

Restrição N:1 Restrição N:1

Nota: Alguns elementos de A ou B podem não estar relacionados com elementos do outro conjunto.

Proibe que uma entidade de A se relacione com mais do que uma entidade de B.

Permite que uma entidade de B se relacione com mais do que uma entidade de B.

Exemplo: Um aluno está associado a no máximo uma turma, mas uma turma pode estar associada a mais que um aluno

Page 12: 2.1.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos

2.1.12Database System Concepts ©Silberschatz, Korth and Sudarshan (Modificado)

““Restrição” N:M Restrição” N:M

Nota: Alguns elementos de A ou B podem não estar relacionados com elementos do outro conjunto.

Não impõe restrições Permite que uma entidade de A

se relacione com mais do que uma entidade de B.

Permite que uma entidade de B se relacione com mais do que uma entidade de B.

Exemplo: Uma conta pode estar associada a mais do que um cliente, e um cliente pode ter mais do que uma conta associada

Page 13: 2.1.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos

2.1.13Database System Concepts ©Silberschatz, Korth and Sudarshan (Modificado)

As cardinalidades afectam o desenhoAs cardinalidades afectam o desenho access-date pode ser atributo de account, em vez de um atributo

da relação, se cada conta tiver apenas um cliente I.e., a relação entre conta e cliente é muitos para um, ou

equivalentemente, entre cliente e conta é um para muitos.

Page 14: 2.1.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos

2.1.14Database System Concepts ©Silberschatz, Korth and Sudarshan (Modificado)

ChavesChaves

Uma super-chave de um conjunto de entidades é um conjunto de um ou mais atributos cujos valores determinam univocamente cada entidade.

A determinação unívoca, depende do contexto em causa, e é imposta como restrição.

Uma chave candidata de um conjunto de entidades é uma super-chave minimal Customer-id é uma chave candidata de customer account-number é uma chave candidata de account

Apesar de poderem existir várias chaves candidatas, uma das chaves candidatas é seleccionada para ser a chave primária.

Page 15: 2.1.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos

2.1.15Database System Concepts ©Silberschatz, Korth and Sudarshan (Modificado)

Diagramas ER (DER)Diagramas ER (DER)

Rectângulos representam conjuntos de entidades. Losangos representam conjuntos de associações. Linhas ligam atributos aos conjuntos de entidades e conjuntos de

entidades a conjuntos de associações. Elipses representam atributos

Elipses duplas representam atributos multivalor. Elipses tracejadas denotam atributos derivados.

Sublinhado representa atributos constituintes da chave primária

Page 16: 2.1.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos

2.1.16Database System Concepts ©Silberschatz, Korth and Sudarshan (Modificado)

DER com atributos compostos, multivalor e derivadosDER com atributos compostos, multivalor e derivados

Page 17: 2.1.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos

2.1.17Database System Concepts ©Silberschatz, Korth and Sudarshan (Modificado)

Conjs. de Relação com AtributosConjs. de Relação com Atributos

Page 18: 2.1.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos

2.1.18Database System Concepts ©Silberschatz, Korth and Sudarshan (Modificado)

Papéis Papéis Os conjuntos de entidades participantes numa relação não são

obrigatoriamente distintos: As etiquetas “manager” e “worker” são designadas papéis; especificam como as

entidades employee interagem por intermédio do conjunto de relações works-for. Os papéis são indicadas nos DERs anotando as linhas que ligam os losangos

aos rectângulos. Os papéis são opcionais, sendo utilizados para clarificar a semântica da relação.

Page 19: 2.1.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos

2.1.19Database System Concepts ©Silberschatz, Korth and Sudarshan (Modificado)

Restrições de MapeamentoRestrições de Mapeamento As restrições de mapeamento são expressas desenhando uma

seta (), significando “um,” ou uma linha (—), significando “muitos,” entre o conj. de relações e o conj. de entidades.

E.g.: relação um para um: Um cliente está associado no máximo com um empréstimo (loan)

através da relação mutuário (borrower). Um empréstimo está associado no máximo com um cliente.

Page 20: 2.1.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos

2.1.20Database System Concepts ©Silberschatz, Korth and Sudarshan (Modificado)

Associações um para muitosAssociações um para muitos

Na relação um para muitos, um empréstimo está associado no máximo com um cliente através de mutuário, enquanto que um cliente está associado com vários empréstimos (podendo ser 0) através de mutuário

Page 21: 2.1.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos

2.1.21Database System Concepts ©Silberschatz, Korth and Sudarshan (Modificado)

Associações muitos para muitosAssociações muitos para muitos

Um cliente está associado com vários empréstimos (possivelmente 0) através de mutuário

Um empréstimo está associado com vários clientes (possivelmente 0) através de mutuário

Page 22: 2.1.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos

2.1.22Database System Concepts ©Silberschatz, Korth and Sudarshan (Modificado)

Participação de um Conj. de Entidades num Participação de um Conj. de Entidades num Conj. de RelaçãoConj. de Relação

Participação total (indicado por uma linha dupla): toda a entidade do conjunto de entidades participa em pelo menos uma relação do conjunto de relações. E.g. a participação de loan em borrower é total

todo o empréstimo tem de ter um cliente associado Participação parcial: algumas entidades podem não participar em

qualquer relação do conjunto de relações. E.g. a participação de customer em borrower é parcial