Sei sulla pagina 1di 49

Banco de Dados Captulo 2: Modelo Conceitual: Entidades e Relacionamentos

UFCG/CCT/DSC Cludio Baptista

Motivao
Modelagem semntica 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 Coleta e Anlise de Requisitos Requisitos de BD Projeto Conceitual Esquema conceitual Projeto Lgico Esquema lgico Projeto Fsico Esquema interno

Modelo de Entidades e Relacionamentos (MER)


Representao semntica das estruturas de dados mantidas num banco de dados Foi proposto por Peter Chen em 1976 Possui vrias notaes:
- Relacionamentos (Chen) como objetos do Modelo

- Relacionamentos apenas como simples ligaes (Codd, Martin)

Entidades
Uma entidade tudo aquilo sobre o qual se deseja manter informaes. Podendo representar:
objetos concretos: pessoas, livros, carros, conceitos abstratos: empresas, eventos, embarques,

Entidade
Possui propriedades que a distingue de outras entidades. um subconjunto (instncias) que: de objetos

desempenha o mesmo papel semntico 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

Representao de entidades no diagrama E-R (entidades e relacionamentos):


Empregado Aluno Emprstimo

Entidades
Entidades devem ser Dicionrio de Dados descritas num

Entidade: EMPREGADO Descrio: Pessoa que mantm vnculo empregatcio com a Empresa atravs de um contrato de trabalho de acordo com a legislao trabalhista

Entidades
Entidades devem ser Dicionrio de Dados descritas num

Entidade: ENCOMENDA Descrio: Instrumento contratual de emisso unilateral pela empresa e aceitao, expressa ou tcita, pelo fornecedor do material.

Entidades
Instncia: objeto de uma entidade com suas respectivas propriedades que distinguvel dos outros objetos. Ex.: A entidade Empregado poderia ter a seguinte instncia: Maria dos Anjos, 31 anos, Secretria, Solteira, R$ 800,00

Atributos
So 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 fabricao, cor, preo O relaciomento TRABALHA entre EMPREGADO e PROJETO pode ter o atributo: horasTrabalhadas.

Atributos
Cada atributo possui um domnio que identifica o conjunto de valores permitidos para aquele atributo. Ex.: nome: domnio string(20) salrio: domnio numrico

Atributos
Atributos devem tambm ser descritos no Dicionrio de Dados:

Entidade: EMPREGADO Atributo: Data de Admisso Descrio: data na qual foi assinado o contrato de trabalho entre a empresa e o empregado Domnio: data posterior a 03/01/78 (data de criao da empresa) e a data de nascimento do empregado

Atributos

Simples: atmico. Ex. Idade: numrico Nome: cadeia de caracteres

Composto: contm sub-atributos que compem o atributo. Ex.: Endereo(rua, nmero, bairro, CEP, cidade, )

Atributos
Simplesmente valorados: tm um nico valor para uma instncia de uma entidade. Ex.: PESSOA: Idade Multivalorados: possuem vrios valores numa instncia de uma entidade. PESSOA:TitulaoSuperior(nenhum, Bel. MSc., PhD) Atributos derivados: podem ser determinados a partir de outros atributos/entidades. Ex. Idade e dataAniversrio

Relacionamentos
So funes que mapeiam um conjunto de instncias de uma entidade em um outro conjunto de instncias de outra entidade (ou da mesma entidade: auto relacionamento). Em outras palavras, so associaes entre diversas entidades.

Ex.: Um empregado trabalha num projeto Um cliente possui conta bancria Um filme possui vrios atores

Relacionamentos

1..N

Empregado

trabalha
1..N

Projeto

horas

matricula

nome

salrio

Relacionamentos

0..N

Empregado
0..1

supervisiona

Relacionamentos
OBS.1: No modelo UML, em que entidades so classes, os relacionamentos so implementados com o conceito de papel. Por exemplo, no diagrama de Empregado Trabalho em Departamento, trabalha o papel do relacionamento. Ex.

Empregado

trabalha possui

Departamento

Relacionamentos

OBS.2: No modelo UML se precisarmos modelar atributos do relacionamento, usamos uma notao especial que cria uma classe do relacionamento. Ex.:
Empregado
matricula nome salario

Departamento Trabalha
horas codigo nome gerente

Restries de Integridade
Caracterizam as restries nas quais os relacionamentos entre entidades esto submetidos (regras do negcio). Ex.: Todo empregado deve estar lotado num departamento Existe Cliente que no 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

Restries de Integridade
Podemos caracterizar relacionamento em termos de: um

1. Cardinalidade: quantidade de instncias que podem participar do relacionamento 2. Totalidade: obrigatoriedade da ocorrncia do relacionamento entre as entidades envolvidas.

Restries de Integridade
Tipos de Cardinalidade
Um_para_Um (1:1): uma instncia de uma entidade A est associada a no mximo a uma instncia de uma entidade B, e vice-versa.

Um_para_Muitos (1:N): uma instncia de uma entidade A est associada a qualquer nmero de instncias da entidade B. Porm, uma instncia da entidade B pode estar associada, no mximo, a uma instncia da entidade A.

Restries de Integridade
Tipos de Cardinalidade
Muitos_para_Um (N:1): uma instncia da entidade A est associada a uma instncia de B. Porm, uma instncia de B pode estar associada a qualquer nmero de instncias de A. Muitos_para_Muitos(M:N): uma instncia da entidade A est associada a qualquer nmero de instncias da entidade B, e vice-versa.

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

Restries de Integridade

A
a1 a2 a3 a4 a5

B
b1 b2 b3 b4 b5

A
a1 a2 a3 A a1 a2 a3 a4 a5

B
b1 b2 b3 b4 b5

1:1
A a1 a2 a3 a4 a5 B b1 b2 b3

1:N

B b1 b2 b3 b4 b5

N:1

N:M

Representao clssica Chen

1 1

N 1

1 N

N M

Representao UML
A 0..1 0..1 B

0..1
1..N 0..N 0..1

0..N
0..M

Observao
Obs.: Diagramas ER dizem quantas instncias fazem parte de um relacionamento, mas no dizem quais instncias.

Exerccio: Faa um modelo ER para modelar Notas Fiscais de uma empresa.

Entidades Fracas
So entidades que so dependentes de existncia ou de identificao de um outra entidade. outra classe de restrio. Se a existncia de uma instncia x depende da existncia de uma outra instncia y, ento x (instncia subordinada) dependente de existncia de y (instncia dominante), e, portanto, a entidade que contm x fraca com relao entidade que contm y. Ento, se y for removido, x tambm o ser.

Entidades Fracas
Ex.: Relacionamento Empregados e Dependentes entre

1 Empregado tem
0..N

Dependente

Chaves
Como distinguir as instncias de uma entidade? Num Banco de Dados, isto feito atravs dos atributos das entidades que formam as chamadas chaves de identificao. Toda instncia de uma entidade deve ter uma chave de identificao, que deve ter algum valor no nulo.

Chaves
Superchave
o conjunto de atributos que identificam uma instncia. Se K uma superchave ento todo superconjunto de K tambm ser uma superchave. Ex.: Seja o esquema Empregado(matricula, nome, endereco, funcao, salario) Ento: matricula uma superchave; (matricula, nome) um superchave; (matricula, nome, funcao) uma superchave.

Chaves
As superchaves mnimas (que no tm nenhum subconjuunto) so chamadas de chaves candidatas. Ex.: Empregado: matricula, (nome, endereco), cpf, identidade A chave candidata escolhida pelo projetista para identificar as instncias chamada de chave primria. Ex. Empregado: matricula

Chaves
Chave de identificao composta: uma chave formada por mais de um atributo. Ex.: Cenrio: sistema de controle de multas de trnsito. Premissas: toda multa est relacionada a um carro, carros devem ser de propriedades de pessoas que tenham carteira de habilitao, carteiras de habilitao so emitidas pelo DETRAN de cada estado.

Chaves
Entidade Chave Sigla do estado Estado Motorista Sigla do estado + nmero da carteira de habilitao Sigla do Estado Carro Nmero da carteira de motorista Placa do Carro Sigla do Estado Multa Nmero da carteira de motorista Placa do Carro Nmero de sequncia da multa
Obs.: Evitar usar chaves compostas sempre que possvel!

Chaves
Chaves de identificao definidas pelo usurio concorrem entre si como chaves candidatas e so sujeitas mudanas. Ex.: Entidade : Departamento Chaves candidatas: 1. Sigla do Departamento 2. Cdigo do Centro de Custo 3. Cdigo da Diretoria + Cdigo da Superintendncia + Cdigo do Departamento

Chaves
O que fazer quando: um departamento mudar de nome? - for modificada a estrutura de codificao de Centros de Custos? - um departamento mudar de diretoria? Soluo: chave de identificao prpria: surrogate ou object identification (object id)

Chaves
Surrogates:
- criados para cada entidade (chave primria) - identifica univocamente cada instncia da entidade - no precisa ser percebido pelos usurios - no controlado pelos usurios (gerado automaticamente pelo SGBD)

Chaves
Surrogates:
Entidade= Identidade + Propriedades Identidade: chave de identificao prpria Propriedades:
chaves de identificao definidas pelo usurio outras propriedades

Chaves
Integridade de Entidade:
Toda instncia de uma entidade possui um valor para chave de identificao prpria da entidade O valor da chave de identificao prpria para uma instncia nico e no nulo dentro da entidade O valor da chave de identificao prpria de uma instncia no pode ser modificado Obs.: Surrogates reutilizados!!! no devem ser

MER Estendido
Superclasses e Subclasses
Vimos que uma entidade usada para representar um conjunto de instncias do mesmo tipo (Ex. Empregado). Porm, muitas vezes uma entidade tem subentidades que necessitam ser representadas explicitamente.

Ex. Empregado pode ser agrupado em: Secretria, Engenheiro e Tcnico

MER Estendido
Superclasses e Subclasses
Estas subentidades so subconjuntos da entidade Empregado, ou seja, cada instncia de uma subentidade tambm uma instncia da entidade Empregado. Ento dizemos que Secretria _uma Empregada, Engenheiro _um Empregado e Tcnico _um Empregado. Este relacionamento _um caracteriza a herana. Ou seja, a subentidade (subclasse) herda todos os atributos e relacionamentos da superentidade (superclasse).

MER Estendido
Superclasses e Subclasses
importante notar, que nem toda instncia da superentidade membro de uma subentidade. Por exemplo, podemos ter empregados que no so nem secretria, nem engenheiro, nem tcnico.

MER Estendido
Empregado

_um

Secretria

Engenheiro

Tcnico

Especializao
o processo de definir um conjunto de subclasses de uma entidade (superentidade). Podem-se ter vrias especializaes de uma mesma entidade, baseado em caractersticas distintas. Por exemplo, a entidade Empregado pode tambm ser especializada nas subentidades Assalariado e Horista.

Especializao
Existem pelo menos duas razes para usar especializao num modelo de dados:
Certos atributos podem ser aplicados somente a algumas instncias de uma entidade (subclasse), mas no a todas. Ex.: Secretria: lnguas, velocidadeDigitao Engenheito: Especialidade, CREA Motorista: nmero da carteira de habilitao, categoria Alguns relacionamentos s se aplicam a algumas instncias que pertencem a uma subclasse. Ex.: Horistas pertencem_a Empreiteras

Generalizao
o processo inverso Especializao, isto , um processo de sntese em que suprimimos as diferenas entre vrias entidades (subclasses), identificamos suas caractersticas comuns e as generalizamos numa superclasse.

MER Estendido - Restries


Cobertura Total: cada instncia da superentidade deve ser uma instncia de alguma subentidade. Ex.: Todo Empregado deve ser Engenheiro, Secretria ou Motorista Cobertura Parcial: uma instncia de uma superentidade pode no ser membro de nenuma subclasse. Pode existir empregado que no seja Engenheiro, Secretria nem Motorista.

MER Estendido - Restries


Disjuno: uma dada instncia pode ser membro de no mximo uma subentidade. Ex. Empregado ou secretria, engenheiro ou tcnico.

Sobreposio: uma mesma instncia pode ser membro de mais de uma subentidade .Ex. Empregado pode ser engenheiro e tcnico.