Title: Banco de Dados Cap
1Banco de DadosCapítulo 2 Modelo Conceitual
Entidades e Relacionamentos
- UFCG/CCT/DSC
- Cláudio Baptista
2Motivação
- Modelagem semântica permite aproximar o modelo
obtido do mundo real - Exemplo de modelos
- MER
- UML (linguagem de modelagem universal)
3Fases de um projeto de BD
Mini-mundo
Coleta e Análise de Requisitos
Requisitos de BD
Projeto Conceitual
Esquema conceitual
Projeto Lógico
Esquema lógico
Projeto Físico
Esquema interno
4Modelo 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)
5Entidades
- Uma entidade é tudo aquilo sobre o qual se deseja
manter informações. - Podendo representar
- objetos concretos pessoas, livros, carros,
- conceitos abstratos empresas, eventos,
embarques,
6Entidade
- 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)
7Entidades
- 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
8Entidades
- Entidades devem ser descritas num Dicionário de
Dados
9Entidades
- Entidades devem ser descritas num Dicionário de
Dados
10Entidades
11Atributos
- 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.
12Atributos
- 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
13Atributos
Atributos devem também ser descritos no
Dicionário de Dados
14Atributos
- 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, )
15Atributos
- 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. PESSOATitulaçãoSuperio
r(nenhum, Bel. MSc., PhD) - Atributos derivados podem ser determinados a
partir de outros atributos/entidades. Ex. Idade e
dataAniversário
16Relacionamentos
- 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
17Relacionamentos
1..N
1..N
horas
matricula
nome
salário
18Relacionamentos
0..N
0..1
19Relacionamentos
Empregado
Departamento
trabalha
possui
20Relacionamentos
21Restriçõ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
22Restriçõ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.
23Restrições de Integridade
- Tipos de Cardinalidade
- Um_para_Um (11) 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 (1N) 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.
24Restrições de Integridade
- Tipos de Cardinalidade
- Muitos_para_Um (N1) 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(MN) 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 (01) ou (0N) indica a
totalidade do relaciomento.
25Restrições de Integridade
A
B
B
A
a1 a2 a3 a4 a5
b1 b2 b3 b4 b5
b1 b2 b3 b4 b5
a1 a2 a3
11
1N
A
A
B
B
a1 a2 a3 a4 a5
b1 b2 b3
a1 a2 a3 a4 a5
b1 b2 b3 b4 b5
N1
NM
26Representação clássica Chen
1
N
A
B
A
B
1
1
N
A
B
1
A
B
M
N
27Representação UML
0..1
A
B
0..1
0..1
A
B
1..N
0..N
A
B
0..1
0..N
A
B
0..M
28Observaçã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.
29Entidades 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á.
30Entidades Fracas
- Ex. Relacionamento entre Empregados e
Dependentes
1
Empregado
Dependente
tem
0..N
31Chaves
- 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.
32Chaves
- 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.
33Chaves
- 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
34Chaves
- 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.
35Chaves
36Chaves
- 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
37Chaves
- 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)
38Chaves
- 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)
39Chaves
- Surrogates
- Entidade Identidade Propriedades
- Identidade chave de identificação própria
- Propriedades
- chaves de identificação definidas pelo usuário
- outras propriedades
40Chaves
- 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!!!
41MER 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
42MER 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).
43MER 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.
44MER Estendido
45Especializaçã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.
46Especializaçã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
47Generalizaçã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.
48MER 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.
49MER 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.