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

Post on 02-Jan-2016

22 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

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

Banco de DadosCapítulo 2: Modelo Conceitual:

Entidades e Relacionamentos

UFCG/CCT/DSCClá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

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

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)

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, …

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)

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

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

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.

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”

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.

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

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:

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, )

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

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”

Relacionamentos

Empregado Projetotrabalha

matricula nome saláriohoras

1..N

1..N

Relacionamentos

Empregado supervisiona0..N

0..1

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

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

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”

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.

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.

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.

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

Representação clássica Chen

A B1

1

A B1

N

A BN

1

A BN

M

Representação UML

A B0..1

0..1

A B0..1

1..N

A B0..N

0..1

A B0..N

0..M

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.

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á.

Entidades Fracas

– Ex.: Relacionamento entre Empregados e Dependentes

Empregado Dependentetem

1

0..N

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.

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.

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

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”.

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!

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

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)

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)

Chaves

• Surrogates:– Entidade=

Identidade + Propriedades

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

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

usuário• outras propriedades

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

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

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).

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.

MER Estendido

Empregado

É_um

TécnicoEngenheiroSecretária

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.

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

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.

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.

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.

top related