1
IN1008 – Projeto Conceitual de BD Mapeamento entre Esquema Conceitual UML e Esquema Lógico por: Erico Augusto C. Guedes eacg@cin.ufpe.br
Roteiro Motivação Conceitos Básicos Estado da Arte Mapeamento Objeto -> Relacional Abordagem Prática(Descrição) Conclusões
Motivação Por que mapear objetos para um banco de dados relacional ? Há uma discrepância entre: Modelo Orientado a Objetos Modelo Entidade-Relacionamento
Motivação Aplicações Existentes Muitas delas lidam com camadas de aplicação complexas, escritas em linguagens de programação OO Contudo, utilizam sistemas de banco de dados relacionais na camada de armazenamento
Objetivo Demonstrar os procedimentos de mapeamento entre: Estruturas do Esquema OO e Esquema ER Esquema Conceitual OO para Esquema Lógico ER Esquema Conceitual OO para Esquema Lógico OO
Conceitos Básicos O que é um Esquema de BD? Descrição de um BD segundo um modelo de dados Ou seja: o esquema é especificado segundo um modelo
Conceitos Básicos Modelo Representação simplificada daquilo que se deseja construir Exemplo:Planta Baixa
Conceitos Básicos Modelo Exemplo:Desenho em Perspectiva
Principais Conceitos Envolvidos UML – Unified Modeling Language Dentre os diversos tipos de diagramas Comporamentais Caso de Uso Estado Atividades Interação Seqüência Comunicação Estrutural Pacote Componente Objeto Classe Super-conjunto do Modelo ER [BOOCH, 1999]
Principais Conceitos Envolvidos Esquema Conceitual UML [BOOCH, 1999]
Principais Conceitos Envolvidos Esquema Lógico UML Apresentam detalhes em um nível suficiente para construir um banco de dados físico [BOOCH, 1999]
Mapeamento Objeto-Relacional Atributo -> Coluna Será mapeado para Zero ou uma coluna do banco de dados relacionais É importante recordar que nem todos os atributos são persistentes.
Mapeamento Objeto-Relacional Mapeando Classes para Tabelas O Mapeamento é direto Contudo, depende da complexidade do sistema Somente modelos muito simples terão um mapeamento 1:1 Como implementar herança? [IBM, 2000]
Mapeamento Objeto-Relacional Implementando Herança em DB Relacional Semelhante ao mapeamento especialização/generalização em MER Usar uma entidade para toda hierarquia de classe Usar uma entidade de dados por classe concreta Usar uma entidade de dados por classe
Mapeamento Objeto-Relacional Uma entidade para toda hierarquia de classe
Mapeamento Objeto-Relacional Uma entidade de dados por classe concreta
Mapeamento Objeto-Relacional Usar uma entidade de dados por classe
Mapeamento Objeto-Relacional Mapeando relacionamentos Há quatro tipos de relacionamentos com os quais um objeto pode estar envolvido Herança Associação
Mapeamento Objeto-Relacional Mapeando relacionamentos Agregação Representa uma relação estrutural entre o todo e suas partes Composição: Relacionamento forte e coincidência de tempo de vida
Mapeamento Objeto-Relacional Mapeando relacionamentos Agregação/Composição Do ponto de vista do banco de dados a diferença entre associação e agregação/composição Quão firmes os objetos estão amarrados Com agregação/composição, qualquer atividade realizada sobre o todo precisa ser feita sobre as partes.
Mapeamento Objeto-Relacional Mapeando relacionamentos Associação Mantidos através de chaves estrangeiras Permitem relacionar linhas de tabelas diferentes
Mapeamento Objeto-Relacional
Abordagem Prática ZOPE + Plone + Poseidon + ArchGenXML Plataforma para desenvolvimento de aplicações WEB Baseada em Geração de Código a partir de modelo Geração de Código a partir do Modelo Lógico Armazenamento Persistente no ZODB Zope Object DataBase Banco de Dados OO
Metodologia Fontes de busca Organização IEEExplore Portal CAPES - ACM Google Organização Arquivo de Metodologia Anotações Gerais
Estado da Arte Estado da arte A maioria dos trabalhos recentes para mapeamento Conceitual -> Lógico Ocorre através da utilização de XML [VARA, 2007] - Model Transformation for Object-Relational Database Development
Conclusões Contribuições Considerações Finais Exposição das diversas formas de mapeamento entre esquema conceitual e esquema lógico Conceitual[OO] -> Lógico[ER] Conceitual[OO] -> Lógico[OO] Considerações Finais O processo de mapeamento pode ser automático Geração via ferramenta Muitos dos sistemas a serem modelados possuirão objetos persistentes, o que significa que eles poderão ser armazenados em um banco de dados para posterior recuperação. Mais frequentemente, será utilizado um banco de dados relacional, um banco de dados orientado a objetos ou um banco de dados híbrido objeto/relacional para armazenamento persistente. UML é adequada para modelar esquemas lógicos de banco de dados, assim como o próprio banco de dados físico. O diagrama de classe UML é um superconjunto dos diagramas E-R. Enquanto que diagramas E-R clássicos são focados apenas nos dados, diagramas de classe vão um passo adiante, permitindo também a modelagem de comportamento. Para modelar um esquema: i. Identifique as classes presentes no modelo cujo estado deve transceder o tempo de vida da aplicação
Conclusões Trabalhos Futuros Explorar as transformações e mapeamentos com a utilização de XML (Projeto Final da Disciplina) Muitos dos sistemas a serem modelados possuirão objetos persistentes, o que significa que eles poderão ser armazenados em um banco de dados para posterior recuperação. Mais frequentemente, será utilizado um banco de dados relacional, um banco de dados orientado a objetos ou um banco de dados híbrido objeto/relacional para armazenamento persistente. UML é adequada para modelar esquemas lógicos de banco de dados, assim como o próprio banco de dados físico. O diagrama de classe UML é um superconjunto dos diagramas E-R. Enquanto que diagramas E-R clássicos são focados apenas nos dados, diagramas de classe vão um passo adiante, permitindo também a modelagem de comportamento. Para modelar um esquema: i. Identifique as classes presentes no modelo cujo estado deve transceder o tempo de vida da aplicação
Referências [BOOCH, 1999] G., RUMBOUGH J., JACOBSON, I. The Unified Modeling Language User Guide. Addison- Wesley. 482p. [SILBERSCHATZ, 2002] A., KORTH H, SUDARSHAN S. Database System Concepts. McGraw-Hill. 1064p. [IBM,2000] Mapping objects to relational databases. Disponível em <http://www- 128.ibm.com/developerworks/library/ws-mapping-to-rdb/>. Acessado em: novembro de 2007. [PLONE, 2007] ArchGenXML 1.x- Getting started. Disponível em: <http://plone.org/documentation/tutorial/archgenxml-getting-started>. Acessado em: dezembro de 2007. [ZOPE, 2007] Zope Project. Disponível em: <http://www.zope.org>. Acessado em: dezembro de 2007. [PLONE, 2007] Plone CMF. Disponível em: <http://www.plone.org>. Acessado em: dezembro de 2007. [VARA, 2007] J. M., et. al. Model Transformation for Object-Relational Database Development. SAC, 2007 Seul. Korea Muitos dos sistemas a serem modelados possuirão objetos persistentes, o que significa que eles poderão ser armazenados em um banco de dados para posterior recuperação. Mais frequentemente, será utilizado um banco de dados relacional, um banco de dados orientado a objetos ou um banco de dados híbrido objeto/relacional para armazenamento persistente. UML é adequada para modelar esquemas lógicos de banco de dados, assim como o próprio banco de dados físico. O diagrama de classe UML é um superconjunto dos diagramas E-R. Enquanto que diagramas E-R clássicos são focados apenas nos dados, diagramas de classe vão um passo adiante, permitindo também a modelagem de comportamento. Para modelar um esquema: i. Identifique as classes presentes no modelo cujo estado deve transceder o tempo de vida da aplicação
30