Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 1/30 IN1008 – Projeto Conceitual de BD Mapeamento entre Esquema Conceitual UML e Esquema Lógico por: Erico Augusto C. Guedes [email protected] Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 2/30 Roteiro • Motivação • Conceitos Básicos • Estado da Arte • Mapeamento Objeto -> Relacional • Abordagem Prática(Descrição) • Conclusões Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 3/30 Motivação • Por que mapear objetos para um banco de dados relacional ? Há uma discrepância entre: • Modelo Orientado a Objetos • Modelo Entidade-Relacionamento Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 4/30 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 Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 5/30 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 Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 6/30 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 Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 7/30 Conceitos Básicos • Modelo Representação simplificada daquilo que se deseja construir • Exemplo:Planta Baixa Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 8/30 Conceitos Básicos • Modelo • Exemplo:Desenho em Perspectiva Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 9/30 Principais Conceitos Envolvidos • UML – Unified Modeling Language Dentre os diversos tipos de diagramas • Comporamentais Caso de Uso Estado Atividades • Interação Seqüência Interação Comunicação • Estrutural Pacote Componente Objeto Classe Super-conjunto do Modelo ER [BOOCH, 1999] Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 10/30 Principais Conceitos Envolvidos • Esquema Conceitual UML [BOOCH, 1999] Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 11/30 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 entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 12/30 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 entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 13/30 Mapeamento Objeto-Relacional • Mapeando Classes para Tabelas O Mapeamento é direto [IBM, 2000] • Contudo, depende da complexidade do sistema • Somente modelos muito simples terão um mapeamento 1:1 Como implementar herança? Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 14/30 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 entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 15/30 Mapeamento Objeto-Relacional • Uma entidade para toda hierarquia de classe Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 16/30 Mapeamento Objeto-Relacional • Uma entidade de dados por classe concreta Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 17/30 Mapeamento Objeto-Relacional • Usar uma entidade de dados por classe Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 18/30 Mapeamento Objeto-Relacional • Mapeando relacionamentos Há quatro tipos de relacionamentos com os quais um objeto pode estar envolvido • Herança • Associação Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 19/30 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 entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 20/30 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 entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 21/30 Mapeamento Objeto-Relacional • Mapeando relacionamentos Associação • Mantidos através de chaves estrangeiras Permitem relacionar linhas de tabelas diferentes Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 22/30 Mapeamento Objeto-Relacional Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 23/30 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 Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 24/30 Metodologia • Fontes de busca IEEExplore Portal CAPES - ACM Google • Organização Arquivo de Metodologia • Anotações Gerais Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 25/30 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 Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 26/30 Conclusões • Contribuições 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 Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 27/30 Conclusões • Trabalhos Futuros Explorar as transformações e mapeamentos com a utilização de XML • (Projeto Final da Disciplina) Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 28/30 Referências • [BOOCH, 1999] G., RUMBOUGH J., JACOBSON, I. The Unified Modeling Language User Guide. AddisonWesley. 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://www128.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 Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 29/30 Mapeamento entre Esquema Conceitual UML e Esquema Lógico – Erico Augusto 30/30