Modelo entidade-associação
-
Upload
sylvester-elliott -
Category
Documents
-
view
24 -
download
0
description
Transcript of Modelo entidade-associação
Modelo entidade-associação1
Modelo entidade-associação
Sumário
• entidades e atributos
• associações
• exemplo
• comunicação com os gestores
• modelos típicos
Modelo entidade-associação2
Modelação
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 - é uma abstracção de alguma coisa com o objectivo de a compreender antes de a construir
Modelo - é uma abstracção de alguma coisa com o objectivo de a compreender antes de a construir
Modelo entidade-associação3
Ciclo de vida
ESTRATÉGIA
ANÁLISE
PROJECTO
CONSTRUÇÃO DOCUMENTAÇÃO
TRANSIÇÃO
PRODUÇÃO
entidade-associação
esquema da BD
reverse engineeringconversão de dados
análise de impactomanutenção
abstracto
detalhado
Abstracção - capacidade humana fundamental que nos habilita a lidar com a complexidade
Abstracção - capacidade humana fundamental que nos habilita a lidar com a complexidade
• desenvolvimento de software
parte de uma situação do mundo real
• modelo inicial (estratégia e análise)
só conceitos do domínio da aplicação
• projecto
adicionar objectos computacionais relacionados com a solução escolhida
• fases finais
detalhes da implementação na linguagem escolhida
Modelo entidade-associação4
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ção5
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ção6
Modelo entidade-associaçãoEntidade
• 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ção7
Exemplo do banco
1111
João
53-03-24
2222
Maria
54-09-11
3333
Miguel
80-03-01
4444
Pedro
83-05-29
1327
23 000
6498
78 000
9135
127 000
5623
41 000
8998
5 000
Braga
457638
Porto
855986
Entidades AtributosPessoa bi
nome
data_nascimento
Conta número
saldo
Agência designação
telefone
Pessoa Conta Agência
Modelo entidade-associação8
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 AtributosPessoa bi
nome
data_nascimento
BeneficiárioCrédito rendimento
entidadePatronal
Pessoa( bi, nome, data_nascimento )
BeneficiárioCrédito( bi, nome, data_nascimento, rendimento, entidadePatronal )
isa
Modelo entidade-associação9
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ção10
Exemplo do Banco (cont.)
1111
João
53-03-24
2222
Maria
54-09-11
3333
Miguel
80-03-01
4444
Pedro
83-05-29
1327
23 000
6498
78 000
9135
127 000
5623
41 000
8998
5 000
Braga
457638
Porto
855986
AssociaçõesTitular (Pessoa,
Conta)
Aberta (Conta, Agência)
Pessoa Conta Agência
Modelo entidade-associação11
Diagramas
conjuntos de entidades
atributos- chave sublinhada- arestas
associações
- ligam apenas a entidades
- arestas ou arcos
Pessoa Conta Agência
bi nome data_nascimento número saldo designação telefone
Titular Aberta
Modelo entidade-associação12
Funcionalidade das associaçõesR: (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ção13
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ção14
Mais comentárioso mesmo conjunto de entidades pode aparecer mais que uma vez na mesma associação
• Gerada (Pessoa, Pessoa)
• etiquetar as arestas para distinguir os respectivos papéis
Pessoa
bi nome
data_nascimento
Gerada
1
2
• outra hipótese
- isa caso especial de um um, só um arco
Pessoa
bi nome
data_nascimento
Gerada
2Mãe
isa
1
• 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) nr_filhos
o
m
Modelo entidade-associação15
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ção16
Associações válidasA B
A B
A B
A B
A B
A B
A
A
A
{n 1
1 1
{n m
{recursivas
m o
o o
m m
m m
o o
m m
mo
oo
oo
• situação mais vulgar
• A e B podem existir sem estarem na associação
• A e B criados em simultâneo
• rara - normalmente são sinónimos
• comum - associação colectiva; posterior resolução
• 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
Modelo entidade-associação17
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
Fornecedor
morada
f_nomeFornece Item
Preço
inome
item#
preço
Fornecedor
morada
f_nomeFornece Item
inome
item#
preço
Modelo entidade-associação18
BD BibliotecaObter 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
Leitor
morada
nome requisitante derequisitado por
Livro
nr
título
data
data
cod
editorano
autor1autor2autor3
detentor depedida por Revista
nr
título
ano
númerovolume
Modelo entidade-associação19
Refinamentos sucessivos
Observação 1: evitar usar atributos repetidos
falta uma entidade
Livro
nr
editorano
título
escrito porautor de
Escritor
nome
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ção20
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
Leitor emissor de feita por
Requisição
data
do objecto de Livro
nreq 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ção21
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
Leitor emissor de feita por
Requisição
data
da objecto de Publicação
nreq
RevistaLivro
isa isa
nr
número
ano
título
volumeeditor
escrito por autor de
Escritor
nome país
moradanome
cod
o
m m oo
o
Modelo entidade-associação22
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ção23
Leitura em linguagem natural
A assoc1 assoc2
B
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 é?
Cada Requisição tem que ser sempre ou de um e um só Livro ou de um e um só Revista.
m o
• 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
obrigatória tem que ser
optativa pode ser
muitos um ou mais
um um e um só
associações exclusivas ou ... ou
Modelo entidade-associação24
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ção25
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ção26
Atributos derivados
Atributo - detalhe que sirva para qualificar, identificar, classificar, quantificar ou exprimir o estado de uma entidade
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ção27
Representação tabular
Pessoa Conta Agência
bi nome data_nascimento número saldo designação telefone
Titular Aberta
Titularbi
número
11111327
11116498
11119185
22229185
22225628
33338998
Titularbi
número
11111327
11116498
11119185
22229185
22225628
33338998
Pessoabi nome
data_n.
1111 João 53-03-24
2222 Maria 54-09-11
3333 Miguel 80-03-01
4444 Pedro 83-05-29
Pessoabi nome
data_n.
1111 João 53-03-24
2222 Maria 54-09-11
3333 Miguel 80-03-01
4444 Pedro 83-05-29
Contanúmero saldo
agência
1327 23 000Braga
6498 78 000Porto
9135 127 000Porto
5623 41 000Porto
8998 5 000Porto
Contanúmero saldo
agência
1327 23 000Braga
6498 78 000Porto
9135 127 000Porto
5623 41 000Porto
8998 5 000Porto
Agênciadesignação
telefone
Braga457638
Porto855986
Agênciadesignação
telefone
Braga457638
Porto855986
entidade
associação n mentidade
entidade
associação n 1
Modelo entidade-associação28
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ção29
Hipótese de solução
aberta por titular_emp de Empresa
morada
trabalhador naempregador dencc
Conta
aberta por titular de
Pessoa
morada
ncs
parente de grau
telefone
balcão
nr
Cartão
do categoria
Tipolimite
tipo#
prazo
detido pordetentor de
ligado a debitada por
telefone
ncar
limite espassinatura
data_emis
data_exp
m
m
m
m
o
o
o o
o
o
o
design
nome
o
m
o
Modelo entidade-associação30
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 D
F
B A
E
o o
m o
oo
isa isa
m oR
• vista de AA a1, a2, a3C c1, c2, c3D d1, d2, d3F f1, f2, f3
ouA a1, a2, a3C c1, c2, c3D d1, d2, d3E e1, e2, e3E(R) e1, e2, e3, ...
Modelo entidade-associação31
Exemplos• vista organizacional de Requisição no esquema da biblioteca
nreq data cod nome morada nr título ano
REQUISIÇÃO
• 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
ncar data_emis data_exp assinatura limite_esp tipo# limite prazo ncsd nomed moradad telefoned nr balcão ncst nomet moradat telefonet
CARTÃO tipo detentor
conta titular
Modelo entidade-associação32
Estruturas típicas
Magol
Marketing Produção Vendas
Manutenção Operação Armazém
Equipa A Equipa B
Divisão
Departamento
Equipa
Empresa
Departamento
comde
Divisão
comde
Equipa
comde
• cada nível pode ter os seus atributos próprios
• mas, se se criasse o nível Grupo de Empresas? Ou secção?
Modelo 1(simples)
Modelo entidade-associação33
Hierarquias
Unidade
comde
Modelo 2(genérico)
• não distingue o topo da hierarquia dos outros níveis (mesmos atributos)
• suporta qualquer número de níveis
Modelo 3(com topo) Unidade
comde
Tipo deunidade
declas
Organização Subdivisão
isa isa• suporta tratamento diferenciado para o topo da hierarquia
• atributos comuns em Unidade
• é independente dos nomes usados para classificar cada nível
Modelo entidade-associação34
Hierarquias elaboradas
Modelo 4(com regras)
Unidade
comde
Tipo deunidade
declas
Organização Subdivisão
isa isa
• suporta organizações constituídas por organizações
• mantém regras sobre a própria hierarquia (validação)
agregadoparte
sobresub
Divisão
Departamento
Equipa
EmpresaOrganização Subdivisão
UnidadeTipo deunidade
sobresub
comde
declas
isa
MagolMarketingProduçãoVendasManutenção
OperaçãoArmazém
Equipa AEquipa B
Modelo entidade-associação35
História de atributo
Pessoa
bi apelido
Apelido
valor de
Pessoa
bi
até
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
Modelo entidade-associação36
História de associação
data
Contratoterminus
sujeito para
• associação passa a entidade + 2 associações
Residência
Pessoa
de proprietário
Pessoa
com parte
Residência
Modelo entidade-associação37
Componentes
uma relação de componentes permite saber
• em que produtos é usado um componente
• que componentes constituem um produto
(tipos; não objectos)
•chave de Constituinte (codigo_prod, codigo_comp)
Componente/Produto
constituído porparte de
descriçãocódigo
Componente/Produto
usado comopara uso em
descriçãocódigo
Constituinte
constituído porna lista para
instruçõesquantidade
entidadeintersecção
para saber a quantidade de componentes do mesmo tipo e as instruções de montagem
Modelo entidade-associação38
Metamodelo
Atributo
Entidade
Domínio em restrição
Associação
de descrita
ligaçãoreferida
em restrição
subtipo supertipo
m
m
• metamodelo = descrição do modelo usando elementos do próprio modelo
Modelo entidade-associação39
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ção40
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ção41
Exemplo dos Cursos
Curso
Disciplina
Professor Aluno
Turma
plano
segue
inscrito
atribuído
lecciona
codcurso
designacur
sigla
coddis
designadis
habilitação
grupodata_nasc
ano
letra
resultado
PessoaBI
nome
morada
telefone
isaisa
previstas
ano_lectivo
ano_lectivo
Inscrição
inclui
1º período
ano_lectivo
2º período
assistidas
dadas