banco de dados capítulo 2: modelo conceitual: entidades e relacionamentos

49
Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos UFCG/CCT/DSC Cláudio Baptista

Upload: charles-lang

Post on 02-Jan-2016

22 views

Category:

Documents


2 download

DESCRIPTION

Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos. UFCG/CCT/DSC Cláudio Baptista. Motivação. Modelagem semântica permite aproximar o modelo obtido do mundo real Exemplo de modelos: MER UML (linguagem de modelagem universal). Fases de um projeto de BD. Mini-mundo. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Banco de DadosCapítulo 2: Modelo Conceitual:

Entidades e Relacionamentos

UFCG/CCT/DSCCláudio Baptista

Page 2: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Motivação

• Modelagem semântica permite aproximar o modelo obtido do mundo real

• Exemplo de modelos:– MER– UML (linguagem de modelagem

universal)

Page 3: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Fases de um projeto de BD

Coleta e Análise de Requisitos

Projeto Conceitual

Projeto Lógico

Projeto Físico

Mini-mundo

Requisitos de BD

Esquema conceitual

Esquema lógico

Esquema interno

Page 4: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Modelo de Entidades e Relacionamentos (MER)

Representação semântica das estruturas de dados mantidas num banco de dados

Foi proposto por Peter Chen em 1976 Possui várias notações:

- Relacionamentos como objetos do Modelo (Chen)

- Relacionamentos apenas como simples ligações (Codd, Martin)

Page 5: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Entidades

– Uma entidade é tudo aquilo sobre o qual se deseja manter informações.

– Podendo representar:• objetos concretos: pessoas, livros, carros,

• conceitos abstratos: empresas, eventos, embarques, …

Page 6: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Entidade

– Possui propriedades que a distingue de outras entidades.

– É um subconjunto de objetos (instâncias) que:

• desempenha o mesmo papel semântico

• possui os mesmos tipos de propriedades (atributos)

Page 7: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Entidades

• Ex.:• Conjunto de todas as contas correntes de

um banco• Conjunto de todos os empregados de uma

empresa• Conjunto de todos os filmes de um

produtor

• Representação de entidades no diagrama E-R (entidades e relacionamentos):

Empregado Aluno Empréstimo

Page 8: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Entidades

– Entidades devem ser descritas num Dicionário de Dados

Entidade: EMPREGADODescrição: Pessoa que mantém vínculoempregatício com a Empresa através deum contrato de trabalho de acordo com alegislação trabalhista

Page 9: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Entidades

– Entidades devem ser descritas num Dicionário de Dados

Entidade: ENCOMENDADescrição: Instrumento contratual deemissão unilateral pela empresa eaceitação, expressa ou tácita, pelofornecedor do material.

Page 10: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Entidades

Instância: objeto de uma entidade comsuas respectivas propriedades que édistinguível dos outros objetos.

Ex.: A entidade Empregado poderia ter aseguinte instância: “Maria dos Anjos, 31anos, Secretária, Solteira, R$ 800,00”

Page 11: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Atributos

– São as propriedades que caracterizam ou descrevem uma entidade ou um relacionamento.

– Ex.: A entidade CARRO poderia ter os seguintes atributos:

– Placa, fabricante, modelo, ano de fabricação, cor, preço

– O relaciomento TRABALHA entre EMPREGADO e PROJETO pode ter o atributo: horasTrabalhadas.

Page 12: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Atributos

– Cada atributo possui um domínio que identifica o conjunto de valores permitidos para aquele atributo.

– Ex.: nome: domínio string(20) salário: domínio numérico

Page 13: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Atributos

Entidade: EMPREGADOAtributo: Data de AdmissãoDescrição: data na qual foi assinado ocontrato de trabalho entre a empresa e oempregadoDomínio: data posterior a 03/01/78 (data decriação da empresa) e a data de nascimentodo empregado

Atributos devem também ser descritos no Dicionário de Dados:

Page 14: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Atributos

– Simples: é atômico. Ex. Idade: numérico

Nome: cadeia de caracteres

– Composto: contém sub-atributos que compõem o atributo.

Ex.: Endereço(rua, número, bairro, CEP, cidade, )

Page 15: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Atributos

– Simplesmente valorados: têm um único valor para uma instância de uma entidade. Ex.: PESSOA: Idade

– Multivalorados: possuem vários valores numa instância de uma entidade. PESSOA:TitulaçãoSuperior(nenhum, Bel. MSc., PhD)

– Atributos derivados: podem ser determinados a partir de outros atributos/entidades. Ex. Idade e dataAniversário

Page 16: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Relacionamentos

– São funções que mapeiam um conjunto de instâncias de uma entidade em um outro conjunto de instâncias de outra entidade (ou da mesma entidade: “auto relacionamento”). Em outras palavras, são associações entre diversas entidades.

– Ex.: “Um empregado trabalha num projeto”“Um cliente possui conta bancária”“Um filme possui vários atores”

Page 17: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Relacionamentos

Empregado Projetotrabalha

matricula nome saláriohoras

1..N

1..N

Page 18: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Relacionamentos

Empregado supervisiona0..N

0..1

Page 19: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Relacionamentos

OBS.1: No modelo UML, em que entidadessão classes, os relacionamentos sãoimplementados com o conceito de papel.Por exemplo, no diagrama de EmpregadoTrabalho em Departamento, trabalha é opapel do relacionamento. Ex.

Empregado Departamentotrabalha

possui

Page 20: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Relacionamentos

OBS.2: No modelo UML se precisarmosmodelar atributos do relacionamento,usamos uma notação especial que cria umaclasse do relacionamento.Ex.:

Empregado Departamento

Trabalha

horas

matriculanomesalario

codigonomegerente

Page 21: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Restrições de Integridade

– Caracterizam as restrições nas quais os relacionamentos entre entidades estão submetidos (regras do negócio).

Ex.: “Todo empregado deve

estar lotado num departamento”“Existe Cliente que não foi

recomendado por Cliente” “Toda NotaFiscal deve ter pelo menos um item discriminado” “Toda multa deve estar associada a um carro”

“Existe carro sem multa asociada”

Page 22: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Restrições de Integridade

– Podemos caracterizar um relacionamento em termos de:

– 1. Cardinalidade: quantidade de instâncias que podem participar do relacionamento

– 2. Totalidade: obrigatoriedade da ocorrência do relacionamento entre as entidades envolvidas.

Page 23: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Restrições de Integridade

– Tipos de Cardinalidade• Um_para_Um (1:1): uma instância de uma

entidade A está associada a no máximo a uma instância de uma entidade B, e vice-versa.

• Um_para_Muitos (1:N): uma instância de uma entidade A está associada a qualquer número de instâncias da entidade B. Porém, uma instância da entidade B pode estar associada, no máximo, a uma instância da entidade A.

Page 24: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Restrições de Integridade

– Tipos de Cardinalidade• Muitos_para_Um (N:1): uma instância da

entidade A está associada a uma instância de B. Porém, uma instância de B pode estar associada a qualquer número de instâncias de A.

• Muitos_para_Muitos(M:N): uma instância da entidade A está associada a qualquer número de instâncias da entidade B, e vice-versa.

– OBS.: o uso de “zero” (0:1) ou (0:N) indica a totalidade do relaciomento.

Page 25: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Restrições de Integridade

a1a2a3a4a5

b1b2b3b4b5

A B

1:1

b1b2b3b4b5

a1

a2

a3

BA

1:N

a1a2a3a4a5

b1

b2

b3N:1

a1a2a3a4a5

b1b2b3b4b5

N:M

A AB B

Page 26: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Representação clássica Chen

A B1

1

A B1

N

A BN

1

A BN

M

Page 27: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Representação UML

A B0..1

0..1

A B0..1

1..N

A B0..N

0..1

A B0..N

0..M

Page 28: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Observação

– Obs.: Diagramas ER dizem quantas instâncias fazem parte de um relacionamento, mas não dizem quais instâncias.

– Exercício: Faça um modelo ER para modelar Notas Fiscais de uma empresa.

Page 29: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Entidades Fracas

– São entidades que são dependentes de existência ou de identificação de um outra entidade. É outra classe de restrição. Se a existência de uma instância x depende da existência de uma outra instância y, então x (instância subordinada) é dependente de existência de y (instância dominante), e, portanto, a entidade que contém x é fraca com relação à entidade que contém y. Então, se y for removido, x também o será.

Page 30: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Entidades Fracas

– Ex.: Relacionamento entre Empregados e Dependentes

Empregado Dependentetem

1

0..N

Page 31: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Chaves

– Como distinguir as instâncias de uma entidade? Num Banco de Dados, isto é feito através dos atributos das entidades que formam as chamadas chaves de identificação.

– Toda instância de uma entidade deve ter uma chave de identificação, que deve ter algum valor não nulo.

Page 32: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Chaves

• Superchave– é o conjunto de atributos que

identificam uma instância. Se K é uma superchave então todo superconjunto de K também será uma superchave.

– Ex.: Seja o esquema Empregado(matricula, nome, endereco, funcao, salario) Então: matricula é uma superchave; (matricula, nome) é um superchave; (matricula, nome, funcao) é uma superchave.

Page 33: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Chaves

– As superchaves mínimas (que não têm nenhum subconjuunto) são chamadas de chaves candidatas.

– Ex.: Empregado: matricula, (nome, endereco), cpf, identidade

– A chave candidata escolhida pelo projetista para identificar as instâncias é chamada de chave primária.

– Ex. Empregado: matricula

Page 34: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Chaves

– Chave de identificação composta: é uma chave formada por mais de um atributo.

– Ex.: Cenário: sistema de controle de multas de trânsito.

– Premissas: “toda multa está relacionada a um carro”, “carros devem ser de propriedades de pessoas que tenham carteira de habilitação”, “carteiras de habilitação são emitidas pelo DETRAN de cada estado”.

Page 35: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Chaves

Entidade ChaveEstado Sigla do estadoMotorista Sigla do estado +

número da carteira dehabilitação

Carro Sigla do EstadoNúmero da carteira de motoristaPlaca do Carro

Multa Sigla do EstadoNúmero da carteira de motoristaPlaca do CarroNúmero de sequência da multa

Obs.: Evitar usar chaves compostas sempre quepossível!

Page 36: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Chaves

– Chaves de identificação definidas pelo usuário concorrem entre si como chaves candidatas e são sujeitas à mudanças.

Ex.: Entidade : Departamento– Chaves candidatas:

1. Sigla do Departamento 2. Código do Centro de Custo 3. Código da Diretoria + Código

da Superintendência + Código do Departamento

Page 37: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Chaves

– O que fazer quando:

– um departamento mudar de nome?- for modificada a estrutura de

codificação de Centros de Custos?- um departamento mudar de

diretoria?

– Solução: chave de identificação própria: “surrogate” ou object identification (object id)

Page 38: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Chaves

• Surrogates:- criados para cada entidade (chave

primária)- identifica univocamente cada

instância da entidade- não precisa ser percebido pelos

usuários- não é controlado pelos usuários

(gerado automaticamente pelo SGBD)

Page 39: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Chaves

• Surrogates:– Entidade=

Identidade + Propriedades

– Identidade: chave de identificação própria

– Propriedades: • chaves de identificação definidas pelo

usuário• outras propriedades

Page 40: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Chaves

• Integridade de Entidade:– “Toda instância de uma entidade possui

um valor para chave de identificação própria da entidade”

– “O valor da chave de identificação própria para uma instância é único e não nulo dentro da entidade”

– “O valor da chave de identificação própria de uma instância não pode ser modificado”

– Obs.: Surrogates não devem ser reutilizados!!!

Page 41: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

MER Estendido

• Superclasses e Subclasses– Vimos que uma entidade é usada

para representar um conjunto de instâncias do mesmo tipo (Ex. Empregado). Porém, muitas vezes uma entidade tem subentidades que necessitam ser representadas explicitamente.

– Ex. Empregado pode ser agrupado em: Secretária, Engenheiro e Técnico

Page 42: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

MER Estendido

• Superclasses e Subclasses• Estas subentidades são subconjuntos da

entidade Empregado, ou seja, cada instância de uma subentidade é também uma instância da entidade Empregado. Então dizemos que Secretária é_uma Empregada, Engenheiro é_um Empregado e Técnico é_um Empregado.

• Este relacionamento é_um caracteriza a herança. Ou seja, a subentidade (subclasse) herda todos os atributos e relacionamentos da superentidade (superclasse).

Page 43: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

MER Estendido

• Superclasses e Subclasses– É importante notar, que nem toda

instância da superentidade é membro de uma subentidade. Por exemplo, podemos ter empregados que não são nem secretária, nem engenheiro, nem técnico.

Page 44: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

MER Estendido

Empregado

É_um

TécnicoEngenheiroSecretária

Page 45: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Especialização

– É o processo de definir um conjunto de subclasses de uma entidade (superentidade). Podem-se ter várias especializações de uma mesma entidade, baseado em características distintas. Por exemplo, a entidade Empregado pode também ser especializada nas subentidades Assalariado e Horista.

Page 46: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Especialização

– Existem pelo menos duas razões para usar especialização num modelo de dados:• Certos atributos podem ser aplicados

somente a algumas instâncias de uma entidade (subclasse), mas não a todas.Ex.: Secretária: línguas, velocidadeDigitação

Engenheito: Especialidade, CREA Motorista: número da carteira de habilitação, categoria

• Alguns relacionamentos só se aplicam a algumas instâncias que pertencem a uma subclasse. Ex.: Horistas pertencem_a Empreiteras

Page 47: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

Generalização

– É o processo inverso à Especialização, isto é, é um processo de síntese em que suprimimos as diferenças entre várias entidades (subclasses), identificamos suas características comuns e as generalizamos numa superclasse.

Page 48: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

MER Estendido - Restrições

Cobertura Total: cada instância da superentidade deve ser uma instância de alguma subentidade. Ex.: Todo Empregado deve ser Engenheiro, Secretária ou Motorista

Cobertura Parcial: uma instância de uma superentidade pode não ser membro de nenuma subclasse. Pode existir empregado que não seja Engenheiro, Secretária nem Motorista.

Page 49: Banco de Dados Capítulo 2: Modelo Conceitual: Entidades e Relacionamentos

MER Estendido - Restrições

Disjunção: uma dada instância pode ser membro de no máximo uma subentidade. Ex. Empregado ou é secretária, engenheiro ou técnico.

Sobreposição: uma mesma instância pode ser membro de mais de uma subentidade

– .Ex. Empregado pode ser engenheiro e técnico.