Modelo entidade-associação
Sumário
• entidades e atributos
• associações
• exemplo
• comunicação com os gestores
• modelos típicos
Modelo entidade-associação
1
Modelação
Modelo - é uma abstracção de alguma coisa com o
objectivo de a compreender antes de a construir

Exemplos: arquitectura, aviação, engenharia hidráulica, esboços de pintura, planos de livros

Utilidade
•
testar um artefacto antes de o construir, para detectar falhas de forma barata
-
modelos físicos (reproduzir à escala os fenómenos essenciais do artefacto)
-
simulação computacional (cada vez mais barata do que modelos físicos, mas exige
uma descrição das leis que governam o artefacto)
•
comunicação com os clientes, para validar a especificação
•
visualização, para assentar as ideias gerais e começar a pormenorizar cada parte
•
redução da complexidade
-
abstracção dos aspectos irrelevantes (torna a realidade manuseável)
-
relativamente a um objectivo pretendido (determina a adequação; não há modelos
"correctos" em absoluto)
Modelo entidade-associação
2
Ciclo de vida
abstracto
ESTRATÉGIA
entidade-associação
detalhado
ANÁLISE
Abstracção - capacidade humana
fundamental que nos habilita a
lidar com a complexidade
• desenvolvimento de software
parte de uma situação do mundo real
esquema da BD
PROJECTO
• modelo inicial (estratégia e análise)
só conceitos do domínio da aplicação
DOCUMENTAÇÃO • projecto
adicionar objectos computacionais
relacionados com a solução escolhida
TRANSIÇÃO
• fases finais
CONSTRUÇÃO
reverse engineering
conversão de dados
análise de impacto
manutenção
PRODUÇÃO
detalhes da implementação na
linguagem escolhida
Modelo entidade-associação
3
Desenvolvimento de software
 estratégia: descrição do problema
 análise: compreender e modelizar a aplicação e o domínio em que opera
• independente da implementação
 projecto: definição da arquitectura do sistema e definição de subsistemas e de objectos
 codificação: passagem mais ou menos automática para uma linguagem concreta
• ferramentas de desenvolvimento de aplicações (CASE)(com gerador de código)
 documentação
• manual de desenvolvimento; manual de instalação; manual de utilização
• parcialmente automatizavel, a partir da especificação
 transição: reverse engineering; conversão de dados
 produção: uso e manutenção (recomeço)
Modelo entidade-associação
4
Modelos de dados
notação para descrever os dados + conjunto de operações para os manipular
exemplos:
• hierárquico
IMS
• reticulado
Adabas
• relacional
Oracle, DB2, Ingres, Access, Paradox
• objecto
Object Store, Objectivity, O2, Gemstone
modelo entidade-associação
• só para descrever os dados
• semanticamente mais rico
• simples mas preciso
• linguagem comum aos técnicos e gestores
• nível conceptual
• tradução automática
Modelo entidade-associação
5
Modelo entidade-associação
Entidade
• existe e é distinguível
 objecto
• entidades similares agrupam-se
em conjuntos de entidades
 instância
com um nome
 esquema
• exemplos: pessoa, funcionário, conta bancária, livro, formiga (?)
 Atributo
• caracteriza os conjuntos de entidades
• associa a cada entidade um só valor do respectivo domínio
• exemplos: nome, data de nascimento, bi do conjunto de pessoa
• chave
- atributo(s) que identifica univocamente uma entidade num conjunto
- existe sempre uma chave para cada conjunto de entidades
- os atributos da chave podem não pertencer todos aos atributos que
caracterizam esse conjunto de entidades
Modelo entidade-associação
6
Exemplo do banco
Pessoa
Conta
Agência
1111
1327
João
23 000
53-03-24
2222
78 000
9135
54-09-11
127 000
3333
5623
Miguel
41 000
4444
Pedro
457638
6498
Maria
80-03-01
Braga
Porto
855986
Entidades Atributos
Pessoa
bi
8998
nome
5 000
data_nascimento
Conta
número
saldo
83-05-29
Agência
designação
telefone
Modelo entidade-associação
7
Hierarquia isa
•
Algumas pessoas têm empréstimo; nesses casos é necessário saber
também o rendimento declarado no IRS e a entidade patronal
•
BeneficiárioCrédito isa Pessoa (A isa B)
–
cada entidade A também é uma entidade B, um caso especial
–
BeneficiárioCrédito é uma especialização de Pessoa
–
Pessoa é uma generalização de BeneficiárioCrédito
–
BeneficiárioCrédito herda os atributos de Pessoa; pode ter mais
atributos
–
chave de BeneficiárioCrédito é a chave de B
Entidades
Atributos
Pessoa
bi
isa
nome
data_nascimento
BeneficiárioCrédito rendimento
Pessoa( bi, nome, data_nascimento )
BeneficiárioCrédito( bi, nome, data_nascimento,
rendimento, entidadePatronal )
entidadePatronal
Modelo entidade-associação
8
Associações
 Associação entre entidades
 associa objectos
• tuplo de entidades
• (João, 1327) significa que o João é titular da conta 1327
 Conjunto de associações do mesmo tipo
 instância
• conjunto de tuplos (e1, ... ek) em que a entidade ei pertence ao conjunto de
entidades Ei
 Associação entre conjuntos de entidades
 esquema
• lista ordenada de conjuntos de entidades (E1, ..., Ek)
• associação Titular: (Pessoa, Conta)
• caso mais vulgar: associações binárias (k=2)
Modelo entidade-associação
9
Exemplo do Banco (cont.)
Pessoa
Agência
Conta
1111
1327
Braga
João
23 000
457638
53-03-24
6498
2222
Maria
54-09-11
78 000
Porto
9135
855986
127 000
3333
5623
Miguel
41 000
80-03-01
8998
4444
5 000
Associações
Pedro
Titular
(Pessoa, Conta)
83-05-29
Aberta
(Conta, Agência)
Modelo entidade-associação
10
Diagramas
conjuntos de entidades
atributos
- chave sublinhada
- arestas
associações
- ligam apenas a entidades
- arestas ou arcos
bi
nome
Pessoa
data_nascimento
Titular
número
Conta
saldo
designação
Aberta
telefone
Agência
Modelo entidade-associação
11
Funcionalidade das associações
R: (E1, E2)
 um  um (biunívoca)
• cada entidade em E1 está, no máximo, associada a uma entidade em E2 e vice-versa
• Titular seria um para um se cada pessoa só pudesse ter uma conta e cada conta só pudesse ter
um titular (pode haver pessoas sem contas)
 muitos  um (funcional) de E1 para E2
• cada entidade em E1 está no máximo associada a uma entidade em E2
• mas uma entidade em E2 pode estar associada a várias em E1
• arco no lado E2
• Aberta: cada conta aberta numa só agência, mas uma agência pode ter várias contas
 muitos  muitos
• associação sem restrições nos tuplos admissíveis
• Titular: cada pessoa pode ter várias contas, cada conta pode ter vários titulares
• forma de implementar varia muito de modelo para modelo
- reticulado: obriga a partir em várias muitos para um
- relacional: esconde o problema (de eficiência) na camada interna
Modelo entidade-associação
12
Comentários
 classificar as associações segundo a respectiva funcionalidade
• impõe restrições às instâncias legais
• dá maior semântica ao modelo de dados
 decisão cuidadosa do projectista
 chave emprestada
• associação R muitos  um de E1  E2
• E2 pode emprestar a chave a E1, através de R, uma vez que a cada entidade de E1
corresponde uma e uma só de E2 (traço no diagrama junto a E1)
• chave de Conta poderia incluir o atributo designação emprestado de Agência
• generaliza isa
 associação muitos  um (cardinalidade superior a binária)
• generaliza para arestas em E1, ..., Ek-1 e arco em Ek, se cada tuplo (e1, ..., ek-1) estiver
associado, no máximo, a uma entidade ek
• situações mais complicadas não se representam no diagrama
Modelo entidade-associação
13
Mais comentários
o mesmo conjunto de entidades pode aparecer mais que uma vez na mesma associação
• Gerada (Pessoa, Pessoa)
bi
• etiquetar as arestas para distinguir os respectivos papéis
• outra hipótese
nome
1
Pessoa
Gerada
- isa caso especial de um  um, só um arco
bi
nome
2
data_nascimento
data_nascimento
• nem todas as entidades de um conjunto têm
que estar nos tuplos de uma associação
que o envolva
• optativa (o) versus obrigatória (m)
Pessoa
o
Gerada
isa
m
nr_filhos
1
2
Mãe
Modelo entidade-associação
14
Obrigatório ou optativo
 Atributo
•
obrigatório  valor especificado em todas as entidades
•
optativo  valor pode não existir
•
atributos da chave  obrigatórios
[se bi puder ser desconhecido, criar atributo substituto (surrogate) para ser chave]
 Associação
•
ramo obrigatório ligado à entidade E  todas as entidades em E estão nos tuplos da
associação
[qualquer Mãe tem que ter pelo menos um filho registado]
•
ramo optativo  algumas entidades em E podem não estar na associação
[algumas Pessoas podem não ter Mãe registada (caso da Eva)]
Modelo entidade-associação
15
Associações válidas
n1
{
{
11
nm
recursivas
{
A
A
A
A
A
A
A
A
A
m
o
o
o
m
m
m
m
o
o
m
m
o
o
m
o
B
•
situação mais vulgar
B
•
A e B podem existir sem estarem na associação
B
•
A e B criados em simultâneo
B
•
rara - normalmente são sinónimos
B
•
comum - associação colectiva; posterior resolução
B
•
impossível - nenhum A pode existir sem um B e vice-versa
•
impossível - ciclo infinito (ramo obrigatório!)
•
muito comum para hierarquias
•
rara - alternativa
o
o
Modelo entidade-associação
16
Simplificação
 quando uma entidade tem um só atributo pode-se colapsar o conjunto só no atributo
• aparência de a associação ter o atributo
• associação Fornece (Fornecedor, Item, Preço) formalmente ternária, muitos um
• tuplo (f, i, p) significa que o fornecedor f vende o item i pelo preço p
f_nome
inome
Fornecedor
Fornece
Item
item#
morada
Preço
preço
f_nome
preço
inome
Fornecedor
Fornece
Item
item#
morada
Modelo entidade-associação
17
BD Biblioteca
Obter o modelo entidade-associação de uma BD que registe as datas das requisições numa
biblioteca. Os leitores têm um código, um nome e uma morada. As requisições referem-se a
livros ou a revistas. Todas as publicações são registadas com um número de entrada. Dos
livros, além do título e dos autores, interessa saber o editor e o ano de publicação. As revistas
têm também título e ano de publicação e, além disso, volume e número.
1ª tentativa
ano
editor
nr
nome
Leitor
requisitante de
requisitado por
morada
Livro
título
autor3
cod
autor2
data
autor1
ano
detentor de
pedida por
nr
Revista
título
data
volume
número
Modelo entidade-associação
18
Refinamentos sucessivos
 Observação 1: evitar usar atributos repetidos
falta uma entidade
ano
editor
nome
escrito por
autor de
Livro
Escritor
nr
título
país
 a associação escrito por/autor de é muitos para muitos
• um Livro pode ser escrito por vários Escritores
• um Escritor pode ser autor de vários Livros
Modelo entidade-associação
19
Associações mutuamente exclusivas
 Observação 2: se se encararem as requisições como entidades (têm um número próprio...)
resolve-se a associação muitos para muitos criando uma entidade de intersecção e
duas associações muitos para um
do
objecto de
Leitor
emissor de
feita por
Livro
Requisição
nreq
data
da
objecto de
Revista
• uma requisição ou é de um livro ou de uma revista as associações do e da são exclusivas
• mais expressividade (representa-se com uma linha a unir as arestas exclusivas)
Modelo entidade-associação
20
Hierarquia exclusiva
• forma alternativa de representaçao com isa
- especializações mutuamente exclusivas (Livro e Revista são disjuntos)
- Publicação é uma generalização quer de Livro quer de Revista
- outra hipótese: especializar Requisição em Requisição_de_livro e Requisição_de_revista
título
nr
cod
o
Leitor
nome
morada
emissor de
feita por
m
m
Requisição
da
objecto de
ano
o
Publicação
data
nreq
isa
Escritor
nome
o
país
escrito por
autor de
o
isa
Livro
editor
Revista
volume
número
Modelo entidade-associação
21
Convenções de escrita
 Objectivo: Rigor + Comunicabilidade
 Entidades
• maiúsculas
• singulares
• substantivos comuns
• sem abreviatura
 Atributos
• minúsculas
• nomes com significado no contexto da entidade e compreensíveis pelo gestor
Associações (binárias)
• nome duplo dependendo do sentido de leitura
• regra do verbo ser
Modelo entidade-associação
22
Leitura em linguagem natural
m
A
assoc1
assoc2
o
obrigatória  tem que ser
optativa
pode ser
B
muitos
 um ou mais
um
um e um só
A
tem que ser assoc1 um e um só B.
B
pode ser assoc2 um ou mais A(s).
Requisição tem
que ser feita por um e um só Leitor.
Leitor pode ser emissor de
um ou mais Requisição(s).
Todo e qualquer Leitor pode ser sempre emissor de um
ou mais Requisição(s), não é?
associações exclusivas  ou ... ou
Cada Requisição tem que ser sempre ou de um e um só Livro ou de um e um só Revista.
• associações correspondem muitas vezes a regras da organização
• linguagem natural facilita comunicação com gestores validação do modelo nos estágios iniciais
Modelo entidade-associação
23
Sintaxe invertida
Requisição tem
que ser feita por um e um só Leitor.
é equivalente a
Isso significa que nunca pode ter uma Requisição que não seja
feita por um Leitor univocamente identificável, não é?
 detectar
-
excepções
-
dependências temporais
-
casos especiais
Modelo entidade-associação
24
Observações
 associação: sempre entre entidades; não relaciona directamente outras associações
• expressividade diminuída
 combinação de chaves das entidades ligadas por uma associação corresponde a um só tuplo
• espécie de chave da associação
 casos particulares de associações: subtipo (isa); característica (chave emprestada)
• tratamento especial
 um mesmo objecto/facto do universo pode, num modelo, ser representado por uma entidade e,
noutro modelo, por uma associação (caso da Requisição)
• questões de ontologia decididas, em última análise, pelo modelizador
• idem para a declaração de chaves
 definição mínima: cada facto deve ser registado uma só vez
• baixar a redundância e consequente oportunidade para inconsistência
 regra de Pareto (modificada): interessa compreender 100% do sistema para implementar os
80% que valem a pena
Modelo entidade-associação
25
Atributos derivados
Atributo - detalhe que sirva para qualificar, identificar, classificar,
quantificar ou exprimir o estado de uma entidade
 Atributo derivado - aquele que pode ser calculado a partir de um conjunto bem definido de
outros atributos presentes na BD
-
cálculo do valor pode envolver só valores de uma entidade
[idade a partir da data_nascimento]
-
ou agregar várias entidades
[nr_filhos no exemplo das Mães das Pessoas, se representar o nº de filhos
registados na BD]
•
problema: consistência
•
em princípio, não se incluem no modelo EA atributos derivados
•
excepções:
-
atributo referido frequentemente e de cálculo custoso  recalcular quando?
-
manter informação agregada depois de se apagar a primária
Modelo entidade-associação
26
Representação tabular
bi
nome
data_nascimento
Pessoa
Titular
Pessoa
Titular
bi
bi
nome data_n.
número
saldo
Conta
designação
Aberta
Agência
Agência
Conta
número
telefone
número
saldo
agência
designação telefone
1111João
53-03-24
11111327
1327
23 000 Braga
Braga
457638
2222 Maria
54-09-11
11116498
6498
78 000 Porto
Porto
855986
3333 Miguel 80-03-01
11119185
9135
127 000 Porto
4444 Pedro 83-05-29
2222
9185
5623
41 000 Porto
2222
5628
8998
5 000
3333
8998
entidade
associação n  m
entidade
entidade
Porto
associação n  1
Modelo entidade-associação
27
Cartões de crédito
•
•
•
•
Pretende-se modelar o sistema de emissão de cartões de crédito num banco. O banco cria contas
quer para particulares quer para empresas, as quais podem, por sua vez, entregar cartões aos
seus empregados. O banco emite três tipos de cartão, com limites de crédito e condições de
pagamento diferentes. Em certos casos podem ser negociados limites especiais.
Podem ser autorizados vários cartões sobre a mesma conta, tanto de particulares como de
empresa. É contudo importante saber quem detém efectivamente cada cartão. Fisicamente,
imprime-se no cartão o nome do detentor, o número da conta e a data de expiração. Regista-se
ainda, no sistema, a data de emissão e a assinatura digitalizada.
Uma pessoa pode ter uma conta com um cartão para si próprio e outro para o cônjuge. A
empresa onde trabalha também pode ter uma conta com um cartão que lhe atribua. O cônjuge
pode ainda ser titular de uma terceira conta com cartões para ambos e para os filhos, estes com
limites reduzidos.
O banco precisa de saber quem são os titulares das contas e respectivas moradas, telefones e
números fiscais, quem tem cartões e quantos cartões de cada tipo estão associados a contas de
particulares ou de empresas.
Obtenha um modelo de dados, usando o formalismo entidade-associação, que capture a realidade
descrita. Para além do diagrama desse modelo, incluindo chaves das entidades e funcionalidade e
obrigatoriedade das associações, indique eventuais restrições de integridade que entender
verificarem-se.
Modelo entidade-associação
28
Hipótese de solução
data_exp
assinatura limite esp
tipo#
do
categoria
m
limite
o
data_emis
Tipo
Cartão
ncar
prazo
m
m
detido por
detentor de
ncs
nome
o
o
parente de
Pessoa
ligado a
debitada por
o
nr
balcão
Conta
o
m
m
morada
o
telefone
grau
o
aberta por
titular de
ncc
aberta por
titular_emp de
o
trabalhador na
empregador de
design
o
Empresa
morada
telefone
Modelo entidade-associação
29
Vista organizacional
 Vista organizacional de uma entidade E é uma tabela contendo os atributos
-
de E
-
os atributos de cada entidade univocamente associada com E (recursivamente)
-
se uma das entidades for uma especialização, para além das associações próprias,
considerar também as das suas generalizações
-
em associações recursivas, pôr reticências depois da segunda cópia
-
arcos exclusivos originam alternativas
C
isa
B
o
o
•
D
isa
A
m
m
o
o
ou
F
E
vista de A
A a1, a2, a3
C c1, c2, c3
D d1, d2, d3
F f1, f2, f3
o
R
o
A a1, a2, a3
C c1, c2, c3
D d1, d2, d3
E e1, e2, e3
E(R) e1, e2, e3, ...
Modelo entidade-associação
30
Exemplos
•
vista organizacional de Requisição no esquema da biblioteca
REQUISIÇÃO
nreq data cod nome morada nr título ano
•
facilitar a verificação da completude do esquema, por comparação com os formulários em
uso na organização e com os sistemas pre-existentes
•
vista de Cartão no esquema de cartões de crédito
CARTÃO
tipo
detentor
ncar data_emis data_exp assinatura limite_esp tipo# limite prazo ncsd
nomed moradad telefoned nr balcão ncst nomet moradat telefonet
conta
titular
Modelo entidade-associação
31
Estruturas típicas
Empresa
Magol
Divisão
Marketing
Departamento
Equipa
Produção
Manutenção
Equipa A
Operação
com
de
Vendas
Armazém
Equipa B
Divisão
Modelo 1
(simples)
com
de
Departamento
•
cada nível pode ter os seus atributos próprios
•
mas, se se criasse o nível Grupo de Empresas? Ou secção?
com
de
Equipa
Modelo entidade-associação
32
Hierarquias
Modelo 2
(genérico)
Unidade
com
de
•
não distingue o topo da hierarquia dos
outros níveis (mesmos atributos)
•
suporta qualquer número de níveis
Modelo 3
(com topo)
•
suporta tratamento diferenciado
para o topo da hierarquia
•
atributos comuns em Unidade
•
é independente dos nomes usados
para classificar cada nível
Unidade
isa
Organização
isa
de
clas
Tipo de
unidade
com
de
Subdivisão
Modelo entidade-associação
33
Hierarquias elaboradas
de
clas
Unidade
Modelo 4
(com regras)
isa
Organização
isa
com
de
Unidade
Organização
Magol
suporta organizações constituídas
por organizações
•
mantém regras sobre a própria
hierarquia (validação)
sobre
sub
Subdivisão
agregado
parte
•
Tipo de
unidade
com
de
isa
Subdivisão
Marketing
Produção
Vendas
Manutenção
Equipa A
Equipa B
Operação
Armazém
de
clas
Tipo de
unidade
Empresa
sobre
sub
Divisão
Departamento
Equipa
Modelo entidade-associação
34
História de atributo
valor
bi
de
até
apelido
Apelido
Pessoa
de
designada
•
atributo passa a entidade com um valor válido
num certo período
•
os períodos podem ser sobrepostos
•
não podem existir dois períodos diferentes para
o mesmo valor
•
chave de Apelido é (bi, valor) , parcialmente
herdada da entidade Pessoa, através da
associação designada
Pessoa
bi
Modelo entidade-associação
35
História de associação
Residência
Residência
de
proprietário
sujeito
para
data
Contrato
terminus
Pessoa
com
parte
Pessoa
•
associação passa a entidade + 2 associações
Modelo entidade-associação
36
Componentes
código
descrição
 para saber a quantidade de componentes do
mesmo tipo e as instruções de montagem
Componente/Produto
código
constituído por
parte de
 uma relação de componentes permite saber
•
em que produtos é usado um componente
•
que componentes constituem um produto
descrição
Componente/Produto
usado como
para uso em
constituído por
na lista para
Constituinte
(tipos; não objectos)
•chave de Constituinte (codigo_prod, codigo_comp)
quantidade
entidade
intersecção
instruções
Modelo entidade-associação
37
Metamodelo
em
restrição
Atributo
Domínio
m
em
restrição
de
descrita
Associação
m
ligação
referida
Entidade
subtipo
supertipo
•
metamodelo = descrição do modelo usando elementos do próprio modelo
Modelo entidade-associação
38
Exercício
 O objectivo é construir um modelo EA para um sistema que reúna a informação sobre as
publicações científicas dos professores da Faculdade. Este modelo servirá de base à
construção da aplicação respectiva por parte do serviço de informática.
•
considerar as várias situações mais comuns:
- artigos em revistas
- artigos em actas de conferência
- editor de colectânea ou de acta
- livro
- tese
- relatório técnico, etc.
•
não esquecer a importância de manter a ordem dos autores
•
um dos produtos derivados deste sistema é o fornecimento de bibliografias
organizadas por professor, por departamento ou por assunto
Modelo entidade-associação
39
Refinamentos ao modelo dos cursos
• Salientar os aspectos comuns entre professores e
alunos
• suportar a informação relativa a vários anos
• pormenorizar o registo académico com as
classificações nos períodos e as faltas
Modelo entidade-associação
40
Exemplo dos Cursos
letra
codcurso
designacur
ano
Curso
Turma
segue
previstas
plano
ano_lectivo
dadas
atribuído
coddis
sigla
Disciplina
lecciona
designadis
2º período
resultado
assistidas
Pessoa
morada
ano_lectivo
1º período
BI
nome
inclui
ano_lectivo
telefone
Inscrição
inscrito
isa
habilitação
grupo
Professor
isa
Aluno
data_nasc
Modelo entidade-associação
41
Download

Modelo entidade