410 likes | 487 Views
Sumário • entidades e atributos • associações • exemplo • comunicação com os gestores • modelos típicos. Modelo entidade-associação. Exemplos: arquitectura, aviação, engenharia hidráulica, esboços de pintura, planos de livros Utilidade
E N D
Sumário • entidades e atributos • associações • exemplo • comunicação com os gestores • modelos típicos Modelo entidade-associaçã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) Modelação Modelo - é uma abstracção de alguma coisa com o objectivo de a compreender antes de a construir
• 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 Ciclo de vida Abstracção - capacidade humana fundamental que nos habilita a lidar com a complexidade ESTRATÉGIA abstracto entidade-associação ANÁLISE detalhado PROJECTO esquema da BD CONSTRUÇÃO DOCUMENTAÇÃO reverse engineering conversão de dados TRANSIÇÃO análise de impacto manutenção PRODUÇÃO
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) Desenvolvimento de software
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 Modelos de dados
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
Entidades Atributos Pessoa bi nome data_nascimento Conta número saldo Agência designação telefone Exemplo do banco Pessoa Conta Agência 1327 23 000 1111 João 53-03-24 Braga 457638 6498 78 000 2222 Maria 54-09-11 Porto 855986 9135 127 000 5623 41 000 3333 Miguel 80-03-01 8998 5 000 4444 Pedro 83-05-29
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 Hierarquia isa Entidades Atributos Pessoa bi nome data_nascimento BeneficiárioCrédito rendimento entidadePatronal Pessoa( bi, nome, data_nascimento ) isa BeneficiárioCrédito( bi, nome, data_nascimento, rendimento, entidadePatronal )
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) Associações
Exemplo do Banco (cont.) Pessoa Agência Conta 1111 João 53-03-24 1327 23 000 Braga 457638 6498 78 000 2222 Maria 54-09-11 Porto 855986 9135 127 000 3333 Miguel 80-03-01 5623 41 000 8998 5 000 4444 Pedro 83-05-29 Associações Titular (Pessoa, Conta) Aberta (Conta, Agência)
associações - ligam apenas a entidades - arestas ou arcos Diagramas conjuntos de entidades • atributos • - chave sublinhada • - arestas bi nome número saldo designação telefone data_nascimento Pessoa Titular Conta Aberta Agência
R: (E1, E2) umum (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) muitosum (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 muitosmuitos • 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 Funcionalidade das associações
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 muitosum 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 muitosum (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 Comentários
o 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 Mais comentários • • outra hipótese • - isa caso especial de umum, só um arco bi nome 1 Pessoa Gerada bi nome 2 o data_nascimento Pessoa data_nascimento 1 Gerada isa • 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) m 2 nr_filhos Mãe
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)] Obrigatório ou optativo
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 Associações válidas { A B m o A B n 1 o o A B m m A B 1 1 m m { A B o o n m A B m m A { • impossível - ciclo infinito (ramo obrigatório!) • muito comum para hierarquias • rara - alternativa m o recursivas A o o A o 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 Simplificação inome f_nome Fornecedor Fornece Item item# morada Preço preço preço inome f_nome Fornecedor Fornece Item item# morada
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. BD Biblioteca 1ª tentativa ano editor nr nome requisitante de requisitado por Leitor Livro título morada autor3 autor2 autor1 data cod ano nr detentor de pedida por Revista título data volume número
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 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
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 Associações mutuamente exclusivas do objecto de Livro emissor de feita por Leitor Requisição da objecto de data nreq 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)
• 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 Hierarquia exclusiva título nr ano cod o m m o da objecto de emissor de feita por Leitor Requisição Publicação data nreq nome morada isa isa o o Escritor escrito por autor de Livro Revista nome país editor volume número
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 Convenções de escrita
Atem que serassoc1um e um só B. Bpode serassoc2um ou maisA(s). Requisiçãotem que serfeita porum e um só Leitor. Leitorpode seremissor deum ou maisRequisição(s). Todo e qualquer Leitorpode sersempre emissor deum ou maisRequisição(s), não é? Cada Requisiçãotem que ser sempre oudeum e um só Livro ou de um e um só Revista. Leitura em linguagem natural m o assoc1 assoc2 A B obrigatória tem que ser optativa pode ser muitos um ou mais um um e um só associações exclusivas ou ... ou • 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
Requisiçãotem que serfeita porum e um só Leitor. é equivalente a Isso significa que nunca pode ter umaRequisição que não sejafeita porum Leitor univocamente identificável, não é? Sintaxe invertida • detectar • excepções • dependências temporais • casos especiais
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 Observações
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 Atributos derivados Atributo - detalhe que sirva para qualificar, identificar, classificar, quantificar ou exprimir o estado de uma entidade
Conta número saldo agência 1327 23 000 Braga 6498 78 000 Porto 9135 127 000 Porto 5623 41 000 Porto 8998 5 000 Porto Representação tabular bi nome número saldo designação telefone data_nascimento Pessoa Titular Conta Aberta Agência Pessoa bi nome data_n. 1111 João 53-03-24 2222 Maria 54-09-11 3333 Miguel 80-03-01 4444 Pedro 83-05-29 Titular bi número 1111 1327 1111 6498 1111 9185 2222 9185 2222 5628 3333 8998 Agência designação telefone Braga 457638 Porto 855986 entidade entidade entidade associação n 1 associação n m
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. Cartões de crédito
Hipótese de solução data_exp assinatura limite esp tipo# do categoria m limite o data_emis Tipo Cartão prazo m ncar ncs nome m detido por detentor de o o parente de grau Pessoa o ligado a debitada por o morada telefone o aberta por titular de o m trabalhador na empregador de design ncc o aberta por titular_emp de o nr Conta Empresa m balcão morada telefone
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 Vista organizacional • vista de A • A a1, a2, a3 • C c1, c2, c3 • D d1, d2, d3 • F f1, f2, f3 • ou • A a1, a2, a3 • C c1, c2, c3 • D d1, d2, d3 • E e1, e2, e3 • E(R) e1, e2, e3, ... C D o o isa isa F o m B A E R m o o 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 Exemplos • vista organizacional de Requisição no esquema da biblioteca REQUISIÇÃO nreq data cod nome morada nr título ano 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
cada nível pode ter os seus atributos próprios mas, se se criasse o nível Grupo de Empresas? Ou secção? Estruturas típicas Empresa Magol com de Divisão Marketing Produção Vendas Departamento Manutenção Operação Armazém Divisão Modelo 1 (simples) Equipa Equipa A Equipa B com de Departamento com de Equipa
suporta tratamento diferenciado para o topo da hierarquia atributos comuns em Unidade é independente dos nomes usados para classificar cada nível Hierarquias Modelo 2 (genérico) Unidade • não distingue o topo da hierarquia dos outros níveis (mesmos atributos) • suporta qualquer número de níveis com de Modelo 3 (com topo) de clas Tipo de unidade Unidade isa isa com de Organização Subdivisão
suporta organizações constituídas por organizações mantém regras sobre a própria hierarquia (validação) Hierarquias elaboradas de clas Tipo de unidade Unidade Modelo 4 (com regras) isa isa com de sobre sub Organização Subdivisão agregado parte Unidade Tipo de unidade de clas Organização Subdivisão Magol Empresa Marketing sobre sub Produção com de Divisão Vendas Manutenção Departamento Equipa A isa Equipa B Operação Equipa Armazém
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 História de atributo valor de até bi apelido Apelido Pessoa de designada Pessoa bi
História de associação Residência Residência sujeito para de proprietário data Contrato terminus com parte Pessoa Pessoa • associação passa a entidade + 2 associações
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) Componentes • para saber a quantidade de componentes do mesmo tipo e as instruções de montagem código descrição Componente/Produto código descrição constituído por parte de Componente/Produto usado como para uso em constituído por na lista para entidade intersecção Constituinte quantidade instruções
Metamodelo em restrição Atributo Domínio m em restrição de descrita ligação referida m Associação Entidade subtipo supertipo • metamodelo = descrição do modelo usando elementos do próprio modelo
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 Exercício
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 Refinamentos ao modelo dos cursos
Exemplo dos Cursos letra codcurso ano segue Curso Turma designacur previstas plano ano_lectivo dadas atribuído coddis ano_lectivo lecciona Disciplina sigla BI designadis nome Pessoa inclui morada ano_lectivo telefone 1º período Inscrição isa isa 2º período resultado inscrito habilitação Professor Aluno assistidas data_nasc grupo