MODELAGEM CONCEITUAL DE SISTEMAS DE INFORMAÇÃO Tipos de Entidades e Relacionamentos Estado do domínio Descrito pelos conjuntos: de entidades (objetos), de relacionamentos (associações) de conceitos nos quais os objetos e relacionamentos são classificados TIPOS DE ENTIDADE Tipos de Entidade Tipo de entidade: é um conceito cujas instâncias são objetos Instâncias do conceito: entidades Entidade é um objeto individual é um objeto identificável existente no domínio num dado período de tempo Exemplos de tipos de entidade departamento pessoa requisição (de aumento de salário) coleção de selos equipe de projeto falha de software metal Nomes Nome de um tipo de entidade: substantivo comum no singular, possivelmente seguido de adjetivos. se N é o nome de um tipo de entidade a seguinte frase deve estar bem formada: Uma instância deste tipo de entidade é um N. População conjunto de entidades num dado tempo t. Tipo de entidade: constante: população é sempre a mesma Ex.: Metal, Rio permanente: após criadas as instâncias se tornam permanentes. Ex.: Nota fiscal (constante → permanente) Inclusão (subsumption) Sejam E1 e E2 tipos de entidade. E2 inclui (subsumes) E1 se todas instâncias de E1 são também instâncias de E2. E1 é um subtipo de E2. E2 é um supertipo de E1. Ex.: Pessoa inclui Mulher. E2 inclui E1 “propriedades definidoras de E2” “propriedades definidoras de E1”. Representação num SI Entidades do domínio: símbolos na BI. Tipos de entidade: nomes no MC. Fato: classificação de uma entidade em um tipo de entidade é um tipo de fato. Representação num SI Domínio BI Conceito Pessoa representado por Tipo de Entidade Pessoa instância de instância de representado por Charlotte Estado da Base de Informação Estado da BI em t = conjunto de fatos em t Base de Informação: estado corrente (atual) em tatual fatos válidos em tatual temporal em tatual fatos válidos em t ≤ tatual Representação Lógica Tipo de entidade: predicado unário cujo argumento denota uma entidade. E(.) Classificação de uma entidade A: Fórmula E(A) leia-se A é um(a) E Fato: fórmula com um predicado com argumento constante. Representação Lógica inclusão (subsumption) Sejam os tipos de entidade E1 e E2: E2 inclui (subsumes) E1 ⇔ E1 é um subtipo de E2 ⇔ E2 é um supertipo de E1 ⇔ ∀e, E1(e) → E2(e) Exemplo: ∀p, Mulher(p) → Pessoa(p) Representação em UML tipos de entidade são representados por retângulos com o nome do tipo de entidade. Aluno Representação em UML A inclusão é representada por uma linha entre os respectivos tipos de entidade com um triângulo na extremidade do tipo que inclui Pessoa Mulher Representação em UML As propriedades constante e permanente são representadas em UML através de estereótipos. Livro Rio {«permanente»} {«constante»} Estereótipo é um mecanismo para definir restrições predefinidas. {C} posto junto ao nome de um tipo de entidade significa que a população do tipo de entidade deve atender a restrição C Representação em UML Entidades, usualmente, não são representadas em UML, quando o são, usam a mesma notação dos tipos. No lugar dos nomes, uma concatenação sublinhada entre o símbolo da entidade, dois pontos (“:”), e o(s) nome(s) do(s) tipo(s) de entidade. Maria:Mulher Charlotte:Mulher,Aluno Classificação Simples ou Múltipla Classificação Múltipla: permite que uma entidade seja instância de dois tipos de entidade E1 e E2 tais que: E1 não inclui E2 E2 não inclui E1 não existe E3 incluído em E1 e E2 Classificação Simples: não permite a classificação múltipla LOP e UML são linguagens de classificação múltipla. Classificação Estática ou Dinâmica Classificação Dinâmica: entidades podem ser instâncias de tipos de entidade diferentes em tempos diferentes. Classificação Estática: a classificação da entidade não pode mudar. LOP e UML permitem classificação dinâmica TIPOS DE RELACIONAMENTO Definição: Tipo de Relacionamento um tipo de relacionamento é um conceito cujas instâncias são relacionamentos individuais e identificáveis que são considerados existir no domínio num dado período de tempo Uma pessoa lê um livro participantes: objetos que participam do relacionamento; cada participante desempenha um papel Definição: Tipo de Relacionamento conjunto de n participantes (n ≥ 2); cada participante é um tipo de entidade que desempenha um papel. notação: R(p1:E1,…,pn:En) esquema e participantes pi pode ser omitido; Ex: Lê(leitor: Pessoa, Livro) pode haver mais de um participante do mesmo tipo de entidade não pode haver mais de um participante com o mesmo papel Definição: Tipo de Relacionamento um tipo de relacionamento R(p1:E1,…,pn:En) é um conceito cujas instâncias são conjuntos distintos {<p1:e1>,…,<pn:en>} formados por n entidades e1,…,en que são instâncias dos correspondentes tipos E1,…,En e que são consideradas ter, no domínio num dado período de tempo, um relacionamento R desempenhando os respectivos papéis p1,…,pn. As instâncias do tipo de relacionamento são chamadas de relacionamentos. n é o grau do relacionamento (n-ário) Definição: Tipo de Relacionamento tipo de relacionamento é um conceitos relacionamento: par <pi:ei> para cada participante Ex: Fornece(Fornecedor, Parte, Cliente:Projeto) Existência do relacionamento Reside (residente: Pessoa, localDeResidência: Cidade) Se a Pessoa p e a Cidade c são participantes de uma instância de Reside em algum período, ou seja se Reside (p, c) é um fato, é porque p reside em c neste período Existência do relacionamento ÉMãeDe (mãe: Mulher, criança: Pessoa) sejam a mulher m e a pessoa p. Quando diremos que m é mãe de p? Sejam a mulher Alice e a pessoa Alan. o relacionamento existe apenas enquanto Alan estiver vivo? o relacionamento existe apenas quando tanto Alice quanto Alan estiverem vivos? Após o nascimento de Alan, o relacionamento dura para sempre.? Existência do relacionamento Mulher (Alice) Pessoa (Alan) (a) ÉmãeDe (Alice, Alan) (b) (c) T1 T2 T3 T4 Existência das entidades participantes Reside (residente: Pessoa, localDeResidência: Cidade) Reside (p, c) num dado tempo, então (provavelmente) p é uma pessoa e c uma cidade neste tempo. ÉMãeDe (mãe: Mulher, criança: Pessoa) ÉMãeDe (m, p) num dado tempo não garante que m seja uma Pessoa neste tempo Tipos síncronos e assíncronos R(p1:E1,…,pn:En): é síncrono se para cada uma de suas instâncias {<p1:e1>,…,<pn:en>} num dado tempo, as entidades participantes e1,…,en são instâncias de seus respectivos tipo neste tempo. caso contrário: é assíncrono. Reside é síncrono, ÉMãeDe é assíncrono Padrões de Sentença relacionamento é um fato que pode ser expresso numa sentença padrão de sentença: sentença com uma lacuna para cada participante. Ex.: relacionamentos do tipo Lê (Pessoa, Livro), poderiam ser expressos como <Pessoa> lê <Livro> ou Laura lê Alice no País das Maravilhas Pessoa <Pessoa> lê livro <Livro> A pessoa Laura lê o livro Alice no País das Maravilhas Padrões de Sentença implícitos baseados nos nomes dos papéis. substantivos verbos Nome do papel: substantivo Lê(leitor: Pessoa, materialDeLeitura: Livro) A pessoa <Pessoa> lê o livro <Livro>. A pessoa Pedro lê o livro O Caçador de Pipas. A pessoa <Pessoa> é (o|um) leitor do livro <Livro>. A pessoa Pedro é um leitor do livro O Caçador de Pipas. O livro <Livro> é (o|um) materialDeLeitura da pessoa <Pessoa>. O livro O Caçador de Pipas é um materialDeLeitura da pessoa Pedro. Nome do papel: verbo Lê(lê: Pessoa, é lido por: Livro) A pessoa <Pessoa> lê o livro <Livro> A pessoa Pedro lê o livro O Caçador de Pipas. O Livro <Livro> é lido por a pessoa <Pessoa>. O livro O Caçador de Pipas é lido pela (por a) pessoa Pedro. Padrões de Sentença explícitos em alguns casos binários pode ser difícil achar nomes adequados. Clientes que compram o livro <Livro> também compram o livro <Livro>. tipos n-ários Fornece (Fornecedor, Parte, usuário: Projeto) Fornecedor <Fornecedor> fornece parte <Parte> para ser usada no projeto <Projeto>. População conjunto de instâncias num dado tempo t Tipo de Relacionamento: R(p1:E1,…,pn:En) constante com relação a pi se as instâncias de R nas quais ei participa não se alteram durante a existência de ei. permanente com relação a pi se as instâncias de R nas quais ei participa uma vez criadas não se alteram durante a existência de ei. Exemplos Nasceu (nativo: Pessoa, localDeNascimento: Cidade) Visitou (visitante: Pessoa, Cidade) Inclusão (subsumption) Sejam R1 e R2 tipos de relacionamento. R2 inclui (subsumes) R1 se todas instâncias de R1 são também instâncias de R2. R1 é um subtipo de R2. R2 é um supertipo de R1. Sejam Trabalha (empregado:Pessoa, Empresa) Gerencia (gerente: Pessoa, Empresa) Ex.: Se os gerentes forem empregados então: Gerencia é um subtipo de Trabalha. Representação num SI Os tipos de relacionamento são representados pelos seus nomes no Modelo Conceitual Os relacionamentos e suas classificações em tipos de relacionamento são representados na Base de Informação. Base de Informação (em LPO) seja um Modelo com dois tipos de entidade Pessoa e Livro e um tipo de relacionamento Lê, respectivamente associados aos predicados Pessoa(), Livro() e Lê(). suponha que o domínio contenha uma pessoa e um livro, e que a pessoa esteja lendo o livro. A base de informação conterá: uma constante A representando a pessoa uma constante B representando o livro o fato Pessoa (A) representando que A é uma Pessoa o fato Livro (B) representando que B é um Livro o fato Lê (A, B) representando que a pessoa A lê o livro B Estado da Base de Informação Estado da BI em t = conjunto de fatos em t Base de Informação: estado corrente (atual) em tatual fatos válidos em tatual temporal em tatual fatos válidos em t ≤ tatual tipos de fato relacionados a entidade relacionados a relacionamentos Representação Lógica R(p1:E1,…,pn:En): representado por um predicado R n-ário cujos n argumentos denotam entidades ou valores. r = {<p1: e1>,…, <pn: en>} é instância de R(p1:E1,…,pn:En) é representado pela fórmula: R(e1…,en) R(e1…,en) - fato Restrição de Integridade Referencial Se R(p1:E1,…,pn:En) é um tipo de relacionamento síncrono: R(e1,…,en) → E1(e1) ˄ …˄ R(e1,…,en) → En(en) Inclusão (subsumption) R1(p1,1:E1,…, p1,n:En) é um subtipo de R2(p2,1:E1,…, p2,n:En) ↔ R1(e1,…,en) → R2 (e1,…, en) Sejam Trabalha (empregado:Pessoa, Empresa) Gerencia (gerente: Pessoa, Empresa) Ex.: Se os gerentes forem empregados então: Gerencia é um subtipo de Trabalha. Gerencia (p, e) → Trabalha (p, e) Representação em UML Tipos de relacionamento binário podem ser representados de duas formas: associações binárias atributos Associações binárias são representadas como uma linha conectando os dois tipos de entidade. O nome da associação (do tipo de relacionamento) é mostrado perto da linha O nome dos papéis é mostrado perto do respectivo tipo de entidade. Representação em UML Mora ► residente Pessoa {«permanente»} localDeResidência nativo localDeNascimento {«constante»} {«permanente»} Cidade {«permanente»} Trabalha Mora(residente: Pessoa, localDeResidência: Cidade) Nasceu(nativo: Pessoa, localDeNascimento: Cidade) Trabalha(Pessoa, Cidade) Navegação Mora ► residente Pessoa {«permanente»} localDeResidência nativo localDeNascimento {«constante»} {«permanente»} Cidade {«permanente»} (cidade) Trabalha Mora(residente: Pessoa, localDeResidência: Cidade) Nasceu(nativo: Pessoa, localDeNascimento: Cidade) Trabalha(Pessoa, Cidade) Visitou (Pessoa, Cidade) Visitou (visitante: Pessoa, cidadeVisitada: Cidade) Representação em UML Tipos de relacionamentos n-ários são representados como losangos Ex.: Fornece (Fornecedor, Parte, usuário: Projeto) Fornece Fornecedor Parte usuário Projeto Atributos Um atributo é um tipo de relacionamento binário R(p1:E1, p2:E2) cujo participante p2 é considerado como uma característica de E1, ou p1 uma característica de E2. esquema: Atributo P(E1, E2) equivalente ao tipo de relacionamento R(E1, p:E2) Ex.: atributo Saldo (Conta, Quantia) equivalente ao tipo de relacionamento Tem Saldo(Conta, saldo: Quantia) Atributos: padrões de sentenças Instâncias de atributos podem ser expressas em sentenças Ex.: Seja o atributo Saldo(Conta, Quantia) O saldo da conta <Conta> é a quantia <Quantia>. OU A quantia <Quantia> é o saldo da conta <Conta>. Estrutura Geral (O|Um) P de e1 <E1> é e2 <E2>. e2 <E2> é (o|um) P de e1 <E1>. Atributos: Representação em UML Os atributos são representados no compartimento médio do correspondente tipo de entidade. Nesse compartimento, o atributo P (E1, E2) é representado pela expressão p: E2 O atributo P (E1, E2) pode ser representado por E1::p Os valores dos atributos de uma entidade podem ser representados na mesma notação Rio Cliente nome: String aniversário: Data saldo: Quantia {«constante»} umCliente: Cliente comprimento: Comprimento {«constante»} nome = Marco aniversário = 04/05/1974 saldo = R$ 100