Uma Metodologia de Distribuição estendida para modelo Relacional e Objeto-Relacional Autor: Pablo Vieira Florentino <[email protected]> Orientador (a): Marta Mattoso <[email protected]> Co-Orientador (a): Fernanda Baião <[email protected]> Programa de Engenharia de Sistemas e Computação, COPPE/UFRJ Cidade Universitária, Centro de Tecnologia, Bloco H - Sala 319 Caixa Postal: 68511 CEP: 21945-970 Rio de Janeiro, RJ, Brasil Resumo: O intuito deste trabalho é prover uma nova metodologia para distribuição de dados como extensão a um modelo já existente e voltado ao nível conceitual na modelagem de aplicações. Esta nova metodologia irá contemplar o modelo Relacional e Objeto-Relacional, permitindo que a expressividade semântica de aplicações seja mantida. Entre as atividades descritas, estão a utilização de um benchmark para avaliação, além da identificação e definição de formas de mapeamento entre os modelos. Palavras-Chave: Distribuição de Dados, Orientação a Objeto, Metodologia, modelo Relacional, Objeto-Relacional 1. Introdução Projetos de Distribuição de Base de Dados (PDBD) têm se mostrado cada vez mais importantes no cenário atual de gerenciamento e armazenamento de dados. Com o advento da Internet e a popularização das redes de computadores de maior alcance e velocidade, a distribuição dos dados entre diversos sítios tornou-se cada vez mais importante para otimizar o desempenho das aplicações. O suporte à distribuição mostrou-se uma característica relevante, já evidenciada em muitos trabalhos como [4] e [5]. Um PDBD deve decidir sobre a fragmentação e alocação de bases de dados de acordo com números estatísticos que informam, entre outras coisas, sobre a freqüência de acesso a classes e atributos. Desta forma, é possível fragmentar e alocar os dados de forma adequada por diferentes sítios e alcançar paralelismo, racionalizando o acesso aos dados e otimizando o desempenho de aplicações com grande volume de dados. No entanto, para chegarmos a um PDBD eficaz, faz-se necessária uma metodologia que forneça ao desenvolvedor um conjunto de passos a serem seguidos no decorrer do processo de fragmentação. Esta metodologia pode estar dividida em fases e deve garantir um balanceamento vantajoso de acordo com os dados presentes no histograma das aplicações. Neste ponto, é importante salientar que algoritmos que realizam a fragmentação vertical e/ou horizontal de uma classe, freqüentemente propostos na literatura, não podem ser considerados metodologias, mas sim, parte delas. De acordo com Ozsu e Valduriez [2], existe uma carência de metodologias para PDBD. Até onde foi pesquisado, o único trabalho a propor uma metodologia abrangendo os diversos tipos possíveis de fragmentação é aquele apresentado por Baião [1], que se baseia no modelo Orientado a Objeto (OO), gerando projetos de distribuição no nível conceitual. Entretanto, muitos sistemas ainda são desenvolvidos seguindo os paradigmas Relacional e ObjetoRelacional (OR). Diante deste cenário, percebe-se a inexistência de uma metodologia de distribuição de bases de dados que contemple o modelo Relacional e OR. O objetivo deste trabalho é propor uma metodologia de PDBD que contemple tais modelos, estendendo a proposta de Baião [1]. Esta escolha é feita devido ao fato de acreditar-se ser mais vantajoso realizar o projeto de distribuição no nível conceitual e depois partir para o projeto de distribuição no nível lógico, do que aplicar a fragmentação diretamente em tabelas. Desta forma, estar-se-ia mantendo a semântica da aplicação com maior veracidade, ao tratar da distribuição já no nível conceitual. Por fim, pretende-se chegar a uma conciliação de mapeamento entre a modelagem de aplicações no nível semântico, segundo o paradigma da Orientação a Objeto, e a implementação em SGBDs Relacionais e OR. Além disso, será possível avaliar o impacto desta metodologia no modelo físico e comparar esta metodologia com o modelo de distribuição proposto em [2], aplicada diretamente ao modelo físico dos dados. Pretende-se, assim, ter uma comparação entre a distribuição aplicada ao modelo semântico e a distribuição aplicada ao modelo físico. O presente trabalho está organizado da seguinte forma: A segunda seção explana a metodologia a ser proposta. A terceira seção cita as atividades planejadas para o desenvolvimento do trabalho. A quarta seção descreve os resultados esperados. 2. Metodologia Proposta Pretende-se apresentar uma metodologia de PDBD que una as vantagens da metodologia proposta por Baião em [1], aplicada ao modelo Relacional e OR. Para isto está em desenvolvimento uma metodologia de três fases. A primeira fase da metodologia proposta é a aplicação da metodologia de Baião estendida. A segunda fase da metodologia é realizar o mapeamento conceitual, ou para o modelo OR ou para o modelo Relacional, a depender do caso. A última fase é responsável por aplicar o mapeamento distribuído, tanto para o OR como para o Relacional. A proposta de metodologia para Distribuição de Base de Dados do presente trabalho parte, em sua primeira fase, como uma extensão daquela proposta em [1]. Nesta, modelos OO (UML) de aplicações, ainda no nível conceitual, servem como entrada para a metodologia e são analisados em função da freqüência de acesso de suas classes e respectivos atributos. Uma classificação preliminar é feita no que se refere à cardinalidade de cada uma das classes presente no modelo (cardinalidade pequena, média, grande). Após isto, baseando-se nas freqüências das consultas que fazem acesso a estas classes, é definida uma lista de operações que podem ser classificadas de três formas: Seleção, Projeção e Navegação. Baião [1] define listas de classes candidatas à fragmentação vertical (FV) e horizontal primária (FHP), além de definir, com base nos relacionamentos, uma lista de pares Dono-Membro. Esta última lista irá determinar como a fragmentação horizontal derivada (FHD) deverá ser executada. A partir de então, inicia-se a fase da fragmentação propriamente dita. Baião [1] utiliza uma extensão do algoritmo proposto em [7] para gerar os fragmentos. Para a segunda fase, são definidos dois caminhos que realizam o mapeamento conceitual para o nível lógico tanto no modelo OR como no Relacional, atendendo algumas especificidades. Para realizar o mapeamento de forma a otimizar a distribuição, alguns ajustes e decisões precisam ser tomados, sendo a metodologia responsável por indicar e definir os melhores caminhos neste sentido. Heurísticas voltadas para cada um dos modelos (Relacional e OR) devem ser assumidas para tornar possível o mapeamento voltado ao PDBD. No caso de mapeamento para o modelo OR, acredita-se fortemente que o mapeamento é trivial, podendo ser feito de forma direta. No caso do modelo Relacional, é necessário atentar para as características como herança, presentes na modelagem conceitual, que precisam ser mapeadas no modelo lógico e físico. Entre as alternativas encontradas em [9] para realizar este mapeamento, pode-se citar: • utilizar simplesmente uma abordagem relacional, • mapear múltiplas classes para uma única tabela, contendo vários atributos opcionais, • efetuar o mapeamento um-para-um entre as classes e as tabelas. Neste momento, torna-se fundamental decidir sobre a abordagem de mapeamento mais adequada ao propósito da metodologia de distribuição. Modelo Conceitual + Histograma Metodologia Baião 2001 estendida PDBD Conceitual Relacional Mapeamento Conceitual + Mapeamento Distribuído PDBD Lógico Rel. OR Mapeamento Conceitual + Mapeamento Distribuído PDBD Lógico OR Fig. 1 – Fluxo das informações dentro da metodologia proposta Na terceira fase, é realizado o mapeamento distribuído, onde ajustes são feitos especificamente sobre as funções de fragmentação aplicados sobres tabelas. Nesta fase, ajustes sobre os fragmentos definidos no nível conceitual são aplicados. Um exemplo de ajuste a ser citado é aquele relativo a FHD. Assim, com os ajustes (que viriam a ser extensões para o modelo original) e as novas heurísticas, estar-se-ia partindo para a definição de uma nova metodologia, voltada para o modelo Relacional e OR. 3. Atividades 3.1. Avaliação da Metodologia de Baião 2001 [1] Como primeira atividade, tem-se a consolidação do conhecimento e uso da metodologia proposta em [1], aplicando a mesma sobre uma modelagem OO de um benchmark de conhecimento geral da comunidade de Banco de Dados: BUCKY [3]. Este benchmark é voltado para a avaliação de SGBDs objetos-relacionais e serão utilizados o seu modelo UML conjuntamente com um subconjunto das consultas consideradas mais relevantes para as aplicações definidas para os experimentos. Nesta tarefa foram identificadas e formalizadas extensões para a metodologia apresentada em [1]. Entre as possíveis extensões identificadas, pode-se citar a definição de um novo tipo de operação que trate dos casos de atualizações dos dados. Operações de atualização podem ter desempenhos diferentes, pois podem implicar na execução de procedimentos e tarefas internas ao sistema como: triggers, log, restrições de integridade. Outras extensões sugeridas são: a) fornecer um tratamento diferenciado para consultas muito freqüentes que fazem acesso exclusivo a somente uma tupla (predicados que referem-se a comparações exatas, utilizando os operadores = ou ≠), o que poderia vir a gerar uma fragmentação desbalanceada, sendo uma possível solução adotar fragmentação circular para este caso; b) no caso de consultas que realizam projeção exclusivamente sobre um campo, considerar este fato como um indicativo de um novo fragmento à parte: c) definir uma nova fórmula para agrupar as classes quanto à cardinalidade. 3.2. Proposta de Metodologia para PDBD OO Relacional Esta atividade visa o desenvolvimento da Proposta de Metodologia, considerando as extensões identificadas e seguindo as três fases apresentadas na seção 2. Os pontos de diferença entre os modelos são analisados a fim de definir a melhor forma de mapeamento. Nesta atividade, são desenvolvidas as duas fases propostas para o mapeamento: Conceitual e Distribuído. Os novos procedimentos, heurísticas e ajustes, referentes às fases de mapeamento, são aqui pesquisados e definidos, compondo a nova metodologia. Como já mencionado, para o modelo OR, o mapeamento sugere uma abordagem praticamente direta. No caso do modelo Relacional, são investigadas as estratégias de mapeamento entre o modelo OO e o Relacional, como as apresentadas em [9], sendo escolhida aquela que mais beneficie o PDBD. 3.3. Avaliação da Metodologia Proposta Após a avaliação da metodologia apresentada em [1] e a proposta de uma metodologia OO Relacional (OR), faz-se necessária uma avaliação qualitativa do PDBD resultante. Neste ponto, são analisados alguns aspectos como o número de fragmentos gerados e balanceamento de carga dos dados. Uma segunda avaliação a ser feita seria a comparação frente a um modelo de distribuição previamente definido, consolidado e comumente adotado para a geração de PDBD, como o definido em [2]. Assim, seria possível gerar um segundo projeto, seguindo uma idéia já conhecida, e realizar uma comparação com o modelo gerado a partir da metodologia proposta no presente trabalho. O próximo passo é aplicar algoritmos de FHP, FHD e FV, segundo o algoritmo de distribuição, proposto em [2]. Com o objetivo de assegurar os resultados obtidos, uma terceira atividade é aplicar a metodologia proposta em um sistema que esteja em pleno funcionamento e produção. Será definido um modelo da aplicação e um modelo distribuído será gerado, levando-se em conta as consultas mais freqüentes com base nas estatísticas levantadas durante o funcionamento diário da aplicação. 4. Resultados Esperados Espera-se conseguir identificar e propor soluções para alguns pontos deficientes dos modelos de distribuição existentes. Entre estes, pode-se citar que, no nível lógico, relacionamentos bi-direcionais entre tabelas podem vir a ser analisados somente em uma das direções ao passo que, no nível semântico, tais relacionamentos são analisados em ambas as direções, escolhendo assim o caminho do relacionamento que tem o maior valor de afinidade dentro da metodologia em questão. Assim, uma melhor distribuição pode ser gerada. Outros pontos de divergência para o mapeamento entre os modelos a serem avaliados e que também se pretende contemplar dizem respeito a : atributos implícitos existentes no modelo OO no nível semântico (no modelo Relacional, os atributos são todos explicitados, o que pode vir a causar diferentes fragmentações); chaves candidatas que, no modelo Relacional, estão relacionadas com o domínio da aplicação, no modelo OO usam OIDs artificiais, sem valor semântico para a aplicação; utilização de Sets e Bags no modelo OO para representar relacionamentos N:M, versus a criação tabelas artificiais no modelo Relacional, sem valor semântico para a aplicação. Como resultados finais, espera-se conseguir adicionar as extensões propostas no presente trabalho, entre outras, à metodologia que serve como ponto de partida, e avaliar a eficiência da metodologia num ambiente misto de modelagem, aproveitando a expressividade do modelo OO. Será, assim, avaliado o projeto de distribuição gerado a partir do modelo semântico e como o mesmo é absorvido pelo modelo Relacional ou OR e os produtos que se baseiam nestes. 5. Referências Bibliográficas [1] Baião, F., A Methodology and Algorithms for the Design of Distributed Databases using Theory Revision , Tese de Doutorado, COPPE/UFRJ, Rio de Janeiro, Dezembro de 2001 [2] Özsu, M., Valduriez, P., Principles of Distributed Database Systems, 2ª edição, Prentice-Hall, New Jersey,EUA, 1999 [3] Carey, M., DeWitt, D., Naughton, J., Asgarian, M., Brown, P., Gehrke, J., Shah, D., The BUCKY Object-Relational Benchmark, SIGMOD Conferecence, Arizona, EUA, 1997 [4] Atkinson, M., Bancilhon, F., DeWitt, D., Dittrich, K., Maier, D., Zdonik, S., The Object-Oriented Database System Manifesto, International Conference on Deductive and Object-Oriented Databases, Kyoto, Japão, 1989. [5] Stonebraker, M., Rowe, L., Lindsay, B., Gray, J., Carey, M., Brodie, M., Bernstein, Ph., Beech, D., Third-Generation Database System Manifesto, SIGMOD, Setembro, 1990 [6] Stonebraker, M., Moore, D., Object-Relational DBMSs: The Next Great Wave, Editora Morgan Kaufmann, 1995 [7] Navathe, S., Ceri, S., Wiederhold, G., Dou, J., “Vertical Partitioning Algorithms for Database Design”, ACM Trans. Database Systems, 1984 [8] Navathe, S., Ra, M., “Vertical Partitioning for Database Design: A Graphical Algorithm”. In Proceedings of the ACM SIGMOD, Portland, EUA, 1989 [9] Ambler, S., “The Object Primer”, 2ª edição, Cambridge University Press, Nova York, EUA, 2001