Modelagem Conceitual Orientada a Objetos Fernanda Baião UNIRIO Material parcialmente extraído a partir das notas de aula de Maria Luiza M. Campos, Arnaldo Vieira e Maria Cláudia Cavalcanti 1 Classes e Tipos Classe: conjunto de objetos descritos pelo mesmo conjunto de propriedades. Tipo: conjunto de propriedades que descreve os objetos de uma classe. Os objetos da classe Empregado podem ser representados por diferentes tipos, isto é, por diferentes conjuntos de propriedades: Tipo 1: (Matrícula, Nome, Endereço) Tipo 2: (CPF, Nome, Endereço, Telefone, Lotação) 2 Classe x Tipo x Instância ... A Classe Mulher Nome o tipo Mulher Idade Cidade duas instâncias da classe Mulher M. Esteves 20 S. Paulo L. Rocha 16 Rio de Janeiro 3 Mecanismo de Abstração Processo mental que seleciona algumas propriedades de um conjunto de objetos e exclui outras irrelevantes em um dado contexto. Def. do Michaelis: Velocípede de duas rodas iguais, movido a pedal . o conceito de bicicleta a figura de uma bibicleta é uma representação dessa abstração ! O texto com uma definição de dicionário também é. 4 Abstração por Classificação Define um conceito abstrato (CLASSE), a partir de uma coleção de OBJETOS do mundo real, caracterizados por propriedades comuns. Estabelece um relacionamento “é membro de”, entre a classe e seus objetos. oo conceito conceito de de bicicleta bicicleta define define aa classe classe cujos cujos membros membros compartilham compartilham uma uma série série de de propriedades propriedades comuns comuns aa todas todas as as bicicletas bicicletas do do universo. universo. 5 Abstração por Classificação BICICLETA É membro de Por exemplo: definida a classe BICICLETA através do mecanismo de abstração por classificação, pode-se dizer que a bicicleta vermelha da Bia, a bicicleta verde do Dudu e a bicicleta azul da Lulu são membros desta classe. 6 Diferentes Classificações de um Objeto MESA Mesa preta CADEIRA Mesa amarela Cadeira preta MOBÍLIA PRETA Cadeira amarela MOBÍLIA AMARELA 7 Abstração por Agregação Define uma nova classe a partir de um conjunto de outras classes que representam suas partes componentes. objetos são agregações de objetos de outras classes Os objetos incluídos em uma agregação representam as partes componentes do objeto da nova classe. Estabelece um relacionamento “é parte de” entre a nova classe e seus membros. aaclasse podeser serdefinida definidaatravés atravésdo doconjunto conjuntode de classebicicleta bicicletapode componentes pedal eeguidon guidon componentesroda roda,,pedal 8 Exemplo BICICLETA é_membro_de é_parte_de ... é_membro_de RODA PEDAL ... GUIDON 9 Abstração por Agregação BICICLETA é_parte_de RODA PEDAL GUIDON As classes RODA, PEDAL e GUIDON são partes da classe BICICLETA Os objetos das classes RODA, PEDAL e GUIDON podem ser compartilhados? Se um objeto bicicleta é formado por uma roda, um pedal e um guidon, podemos dizer que temos uma bicicleta? 10 Abstração por Generalização Define uma nova classe, a partir da abstração das diferenças entre os objetos de duas ou mais classes. cada classe participante é um subconjunto da nova classe. As propriedades da classe mais genérica são compartilhadas pelas classes mais específicas aaclasse umageneralização generalizaçãodas dasclasses classesbicicleta bicicleta eecarro. carro. classeveículo veículoéé uma .. aaclasse pessoa é uma generalização das classes homem e mulher. classe pessoa é uma generalização das classes homem e mulher. 11 Cobertura de Generalizações total, exclusiva (t,e) PESSOA parcial, exclusiva (p,e) VEÍCULO AUTOMÓVEL HOMEM MULHER BICICLETA total, inclusiva (t,i) ESTUDANTE MESTRADO GRADUAÇÃO parcial, inclusiva (p,i) ESPORTISTAS DO CLUBE JOGADOR DE TÊNIS JOGADOR DE FUTEBOL 12 Mais exemplos de Parcial inclusiva... PROFISSÕES ou PROFISSIONAIS? PROFESSOR ENGENHEIRO ALUNOS DA UNIVERSIDADE POR CURSO OU POR SEXO? ALUNOS COMP. ALUNOS HOMENS 13 Associação Binária ... estabelece um mapeamento entre os elementos de duas classes. z utiliza é uma associação binária entre as classes pessoa e apartamento. z possui é uma outra associação binária entre as classes pessoa e apartamento. z dirige é uma associação binária entre as classes pessoa e automóvel. 14 Associação Binária PESSOA UTILIZA POSSUI PESSOA APARTAMENTO APARTAMENTO PESSOA utiliza p1 p2 p3 APARTAMENTO possui a1 a2 a3 a4 p1 p2 p3 a1 a2 a3 a4 15 Cardinalidade Seja a associação binária A entre as classes C1 e C2: a cardinalidade mínima de C1/C2 em A é definida como o número mínimo de mapeamentos nos quais cada elemento de C1/C2 pode participar. a cardinalidade máxima de C1/C2 em A é definida como o número máximo de mapeamentos nos quais cada elemento de C1/C2 pode participar. 16 Cardinalidade Mínima PESSOA APARTAMENTO utiliza a1 p1 a2 p2 a3 p3 a4 PESSOA APARTAMENTO possui a1 p1 a2 p2 a3 p3 a4 se assumirmos que cada pessoa utiliza pelo menos um apartamento: min-card (pessoa, utiliza) = 1. se assumirmos que alguns apartamentos podem não ser habitados: min-card (apartamento, utiliza) = 0. se assumirmos que todo apartamento tem pelo menos um proprietário: min-card (apartamento, possui) = 1. se assumirmos que algumas pessoas não possuem apartamentos: min-card (pessoa, possui) = 0. 17 Cardinalidade Máxima PESSOA APARTAMENTO utiliza a1 p1 a2 p2 a3 p3 PESSOA a4 p2 p3 max-card (pessoa, utiliza) = n. se assumirmos que um apartamento pode ter vários habitantes: max-card (apartamento, utiliza) = n. APARTAMENTO se assumirmos que uma pessoa pode possuir vários apartamentos: possui p1 se assumirmos que uma pessoa pode utilizar vários apartamentos: a1 a2 a3 a4 max-card (pessoa, possui) = n. se assumirmos que um apartamento só pode ter um único proprietário: max-card (apartamento, possui) = 1. 18 Cardinalidade Máxima A C1 C2 C1 max-card (C1, A) = 1 max-card (C1, A) = n C2 max-card (C2, A) = 1 um-para-um um-para-muitos max-card (C2, A) = n muitos-para-um muitos-para-muitos 19 Cardinalidade C1 1:1 C2 um-para-um C1 C1 1:n C2 um-para-muitos C2 C1 C2 m:1 m:n muitos-para-um muitos-para-muitos 20 Associação n-ária ... estabelece um mapeamento entre os elementos de três ou mais classes. sessão é uma associação ternária entre as classes disciplina, dia e sala. SESSÃO DISCIPLINA DIA SALA 21 Cardinalidade Seja a associação n-ária A entre as classes C1, C2, …, Cn : a cardinalidade mínima de Ci em A é definida como o número mínimo de mapeamentos nos quais cada elemento de Ci pode participar. a cardinalidade máxima de Ci em A é definida como o número máximo de mapeamentos nos quais cada elemento de Ci pode participar. 22 Cardinalidade se assumirmos que cada dia da semana pode ter nenhuma ou muitas sessões de aula: min-card (dia, sessão) = 0 max-card (dia, sessão) = n card (dia, sessão) = (0, n) se assumirmos que cada disciplina pode ter de uma a três sessões por semana: se assumirmos que cada sala de aula comporta no máximo 40 sessões por semana: card (disciplina, sessão) = (1, 3) card (sala, sessão) = (0, 40) 23 Associação n-ária FEN110 (1,3) (0,40) FEN300 D501 D530 SALA DISCIPLINA DIA (0,n) SEG TER QUA QUI SEX 24 Modelagem Conceitual e a Representação de Conhecimento Objetivo das técnicas de RC Desenvolver conceitos para a modelagem mais precisa de um domínio de conhecimento • Classificação • Identificação • Especialização e Generalização • Agregação e Associação Criação de uma ontologia 25 Ontologia “Descrição das estruturas e dos relacionamentos que são possíveis na realidade, por meio de algum vocabulário comum” “Meio para descrever o conhecimento de uma certa comunidade sobre a realidade” 26 Ontologia “A especificação de uma conceitualização” Conceitualização Conjunto de conceitos utilizados para representar a realidade Especificação Linguagem e termos do vocabulário 27 Ontologia Técnicas possíveis para especificação [Elmasri, Navathe] Thesaurus Taxonomia Esquema de banco de dados Teoria lógica 28 Exercício Discuta qual o papel das ontologias na modelagem conceitual de dados 29 Projeto de Banco de Dados Mundo real COLETA E ANÁLISE DAS NECESSIDADES Independente do SGBD Requisitos do Banco de Dados PROJETO CONCEITUAL Esquema Conceitual PROJETO LÓGICO Dependente do SGBD Esquema Lógico PROJETO FÍSICO Esquema Interno 30 Projeto Conceitual Foco nos dados e em seus interrelacionamentos. Independente do SGBD utilizado. Produz um esquema mais estável do que o esquema lógico. Mais fácil de ser entendido pelos usuários. Livre de considerações de eficiência e armazenamento. 31 Projeto Lógico Foco nos dados e em seus interrelacionamentos, mas .... Sujeito às restrições do SGBD utilizado. Produz um esquema sujeito a eventuais reestruturações, para garantir a eficiência das consultas. Fácil de ser entendido pelos usuários. 32 Projeto Físico Foco nos requisitos de desempenho: tempo de resposta: p.ex., 95% das transações devem ser processadas em até 2 segundos. throughput: número médio de transações/segundo. utilização de espaço. Define estruturas de armazenamento e caminhos de acesso. 33 Refs Bibliográficas Conceptual Database Design Batini, Ceri e Navathe Benjamin/Cummings Pub. Co. 34 Artigo para discussão Gonzalo Génova, Juan Llorens, Paloma Martínez, “Semantics of the Minimum Multiplicity in Ternary Associations in UML”, Proceedings of the 4th International Conference on The Unified Modeling Language, Modeling Languages, Concepts, and Tools, 2001. Lecture Notes In Computer Science 2185, pp. 329 - 341 http://www.lsi.upc.edu/~xpi/material/Semantics OfMinimumMutiplicity.pdf 35