OODBMSs Object-Oriented Multidabase Systems Eduardo Manuel de Freitas Jorge Campina Grande, Março de 2000 1 1 INTRODUÇÃO A evolução dos computadores vem criando muitas expectativas entre os usuários de sistemas de informação. Com os recursos atuais, os usuários esperam que o computador possa acessar informações de todo o mundo através de simples comandos. Para atender tais expectativas, os engenheiros e cientistas da computação vêem pesquisando algumas soluções para esse problema. Um dos principais direcionamentos para a solução desse problema está nos OOMDBSs (Object-Oriented Multidatabase Systems). Os sistemas “Multidatabase” (Federação de Banco de Dados ou heterogêneos Banco de Dados distribuídos) permitem integrar o acesso a BDs (Banco de Dados) heterogêneos pre-existentes, que estão num determinado sistema distribuído. Os sistemas “Multidatabase” são projetados de baixo para cima através dos BDs constituintes, que podem ter diferentes modelos de dados e diferentes implementações do mesmo modelo de dados. Cada “node” participante, neste sistema, continua com o controle local das fontes e do processamento dos dados. Assim, o termo federação é usado quando controle e as estruturas globais são derivadas através do consentimento e colaboração dos BDs locais. Como vimos acima, uma das soluções para sistemas “Multidatabase” esta no OOMDBSs que representa a confluência de várias tendências da tecnologia da ciência da computação. Como a Orientação-Objeto nasce a possibilita de flexibilidade e interfaces abstratas para os sistemas. Atualmente, a tecnologia OO está sendo usada em vários domínios de problemas, sendo os sistemas Multimídia e os sistemas de dados complexos os mais beneficiados. Sistemas “Multidatabase” devem prover uma interface uniforme para o acesso a fontes de informações distribuídas. Os usuários através desse sistema podem acessar informações que estão em fontes heterogêneas de forma transparente e fazer consultas de maneira relativamente simples. Assim, a utilização da Orientação-Objeto para sistemas “Multidatabase” possibilita prover os principais requisitos desse tipo de sistema. 2 Nos anos 80 os trabalhos relativos aos sistemas “Multidatabase” se concentravam no modelo relacional. A partir dos anos 90, com a popularização do modelo OrientadoObjetos de dados, os projetistas começaram a optar por essa tecnologia, pois o paradigma da Orientação-Objeto captura a semântica de outros modelos de dados e representa-os de modo a facilitar sua integração. A poderosa capacidade de abstração dos sistemas Orientado-Objetos e, a capacidade para adicionar naturalmente novas funcionalidades para objetos apropriados fazem do Orientação-Objetos uma ferramenta poderosa para criar interfaces para o usuário. Assim, OODBMSs é o ambiente que o usuário deseja para acessar e manipular informações de fontes heterogêneas, pois possui ferramentas poderosas para modelar e acessar fontes de dados heterogêneas e distribuídas. 3 2 TENDÊNCIAS TECNOLOGICAS QUE PERMITIRAM O SURGIMENTO DE OOMDBSs Para que os cientistas da computação começassem a pensar em OODMBSs algumas tecnologias ,que são usadas nesse sistema, antes tiveram que chegar num determinado ponto de evolução. Além disso, a existência de ambientes heterogêneos em muitas organizações criou a necessidade do desenvolvimento de uma solução para o problema gerencia das fontes de dados heterogêneas. Abaixo são descritos de forma resumida as tecnologias que permitiram o surgimento de sistemas OOMDBSs. 2.1 Redes A sofisticação dos protocolos e dos Sistemas Operacionais permitiram a interoperabilidade necessária para aplicações OOMDBSs. Conexões de “HightBandwith”, ”Low-Latency” (pequeno tempo de atraso fim a fim) permitem o compartilhamento de grandes pedaços de informação, gerando assim mudanças no que é processado local versus o que processado remotamente. Por exemplo, sistemas multimídia que processam e disponibilizam imagens, vídeo, e voz através da rede não poderiam existir sem as conexões “Hight-Bandwith”, pois os tipos de dados requisitados estão armazenados em grande quantidade, e assim, necessitam de um processamento especializado. 2.2 Processamento Distribuído Processamento Distribuído permite a utilização efetiva de recursos globais. Além disso, faz o balanceamento do processamento e armazenamento através do sistema como um todo. Para a utilização desse recurso é necessário a implantação de um “Middleware” que possibilite a facilidade na implementação de chamadas remotas das funções contidas nas aplicações. Atualmente, o padrão (CORBA) “Common Object Request Broker Architecture” vem sendo 4 considerado o padrão para o desenvolvimento de aplicações Clientes / Servidores heterogêneas. 2.3 Banco de Dados Sistemas Gerenciadores de Banco de Dados são responsáveis pela representação e armazenamento de grande quantidade de informações. Os SGBDSs provêem diversas funcionalidades como: proteger a integridade do dados, manutenção fácil dos dados, linguagem de consulta, etc. Os Sistemas de Banco de Dados no passado eram basicamente hierárquicos, sendo que, até hoje alguns produtos ainda usam modelos de dados hierárquicos, por exemplo IMS da IBM. Este modelo de dados trabalhava bem com alguns tipos de dados, mas era limitado em relação a relacionamentos complexos. Para suprir as deficiências do modelo hierárquico surge o modelo relacional. O modelo relacional baseou-se no artigo escrito por Ted Codd em 1970, que propunha que sistemas de Banco de Dados deveriam apresentar a visão dos dados organizados em tabelas, ou seja, relações. Juntamente com este modelo nasceu a mais importante linguagem de consulta chamada SQL (“Structured Query Language”) que tem na sua essência a equivalência com a álgebra relacional. 2.3 Sistemas Heterogêneos A principal complicação dos sistemas distribuídos é que as redes podem conectar qualquer sistema individual que usa diferentes hardwares, Sistemas Operacionais e aplicações. Entre essas heterogeneidades deve ser destacada os sistemas Gerenciadores de Banco de Dados. No contexto atual, muitas organizações possuem diversas fontes de dados heterogêneas, onde alguns dados permanecem no mainframe e outros em servidores de BDs. Esse ambiente 5 de BDs heterogêneos conduziram muitas organizações a terem “Ilhas de Informações”. 2.4 Sistemas Orientado-Objetos O termo Orientação Objeto se aplica à vários tipos de sistema e metodologias. Genericamente representa o modo particular para modelar coisas do mundo real como entidades distintas chamadas de objetos. Classes, objetos, atributos, métodos, herança, agregação, polimorfismo, etc são elementos da Orientação Objeto que permitem representar complexos modelos de dados de maneira natural para projetistas e usuários de sistemas. 6 3 REQUISITOS DOS USUÁRIOS QUE LEVAM A NECESSIDADE DE OOMBSs Em ambientes de sistemas heterogêneos os usuários têm muitas dificuldades em consultar e manipular informações que estão dispersas nos banco de dados. Nas seções abaixo serão apresentados os principais requisitos de sistema que devem ser atendidos com sistemas OOMDBSs. 3.1 Acesso Transparente Sistemas distribuídos oferecem a possibilidade do usuário acessar e processar diversas fontes de dados. Embora esses sistemas provenham essas facilidades os usuários mesmo assim tem dificuldades para utilizar esses tipos de sistemas. Sistemas distribuídos são mais intuitivos e simples para o usuário se o sistema como um todo parece ser um único sistema local e todos os procedimentos remotos são transparentes para o usuário. Para apresentar a imagem de um único sistema, o sistema distribuído deve possuir um serviço de nomes, tradutor de funções/dados, um navegador global e ser confiável. 3.2 Complexidade Os fatores que aumentam a complexidade dos sistemas distribuídos são a inclusão de novos “nodes”, funções sofisticadas, e múltiplo acesso/representação de modelos. 3.3 Escalabilidade Sistemas Distribuídos devem ser extensíveis e adaptáveis ao crescimento do tamanho do sistema. Uma maneira de conseguir escalabilidade é adicionando novos “nodes” ao sistema distribuído. Os “nodes” tem um certo nível de 7 performance que deve ser mantido quando este for incorporado ao sistema distribuído. 3.4 Semântica para interfaces de usuários O problema para definir uma semântica de interface é que para acessar informações globais os usuários têm que geralmente utilizar um modelo de dados e uma linguagem de acesso particulares. Os usuários gostariam de usar o sistema global como usam o sistema local onde eles estão familiarizados. 8 4 DEFINIÇÃO DE SISTEMAS “MULTIDATABASE” Sistema “Multidatabase” (também conhecidos com federação de Banco de Dado) é um sistema distribuído que prove uma interface global para pre-existentes Banco de Dados locais heterogêneos. O Sistema “Multidatabase” executa automaticamente as transformações na linguagem e modelo de dados entre as consultas globais e os Bancos de Dados locais. A característica chave de “Multidatabase” é que os Bancos de Dados locais continuam autônomos. Eles mantém total controle sobre os dados e processamento local. A figura 4 mostra a arquitetura genérica para “Multidatabase”. Global DBMS ... Processamento de Consulta Global Controle Global de Concorrência Esquema Global(parcial) ou Diretório Global Representação local dos Dados no Modelo Local Traduzir Código l Local DBMS Esquema Local Dados Locais ... Esquema Global(parcial) ou Diretório Global Representação local dos Dados no Modelo Local Traduzir Código ... Local DBMS Esquema Local Dados Locais Figura 4 Arquitetura genérica para “Multidatabase” 9 . Abaixo algumas das principais funcionalidades de sistemas “Multidatabase”: Integração de esquemas Funcionalidade que permite a visão lógica dos dados integrada aos dados distribuídos. Gerência de consultas globais Está relacionada com a análise, otimização e execução das consultas, que referenciam dados distribuídos. Gerência de transações globais Trata das propriedades de atomicidade, confiabilidade, isolamento e durabilidade das transações em um ambiente distribuído. Funções Administrativas Incluem autorização, autenticação, definição de restrições de integridade e gerência do dicionário de dados. Heterogeneidade Incluem diferenças de Hardware, Sistema Operacional, canais de comunicação, sistema de gerência de dados e modelos de dados. 10 Para o local Banco de Dados, o “Multidatabase” aparece como qualquer outro usuário do sistema. Não é necessário especificar especiais interfaces para o “Multidatabase” usar os recursos locais. Na figura 4.1 será explicado como é processada a consulta global. Interface global de Usuário Analisador Gramatical de Consulta Global Aplicar Consulta Global ao Esquema Global Quebrar a Consulta Global em Sub-Consultas Rotear as Sub-Consultas para Local “Node” Aplicar Sub-Consulta para o Esquema Local (Modelo Global) Aplicar Sub-Consulta para o Esquema Local (Modelo Global) Traduzir Sub-Consulta para Modelo Local Traduzir Sub-Consulta para Modelo Local Aplicar Sub-Consulta para Local DBMS Aplicar Sub-Consulta para Local DBMS ... Figura 4.1 Processo de consulta em “Multidatabase” 11 5 INTEGRAÇÃO DE SISTEMAS DE BANCO DE DADOS Atualmente, nas organizações, a informação geralmente está dispersa em diversas fontes de dados, o que dificulta o seu acesso integrado. Na década de 70, muitos sistemas foram desenvolvidos utilizando fontes de dados contidas no mainframe. Num segundo momento conhecido como dowsizing, as aplicações começaram a ser descentralizadas e a utilizar Banco de Dados que rodavam em máquinas PC. Apesar das tentativas de desativar o mainframe, na maioria das empresas, isso não foi possível, pois o número de sistemas legados era muito grande. O que se retrata, atualmente, nas organizações são ambientes com fontes de dados heterogêneos, onde alguns dados permanecem no mainframe e outros em servidores de Banco de Dados. Esse ambientes de sistemas heterogêneos de Banco de Dados conduziram as organizações a terem “ilhas de informações” . Para integrar diversas fontes de dados heterogêneas o modelo de dados deve capturar o significado de toda a informação nos sistemas de Banco de Dados componente. Assim, para representar um modelo heterogêneo o esquema global tem que ter um poder de representação que consiga representar as características específicas dos diversos modelos Desde que os sistemas de banco de dados componentes são projetados e implementados independentemente, é normal que existam incompatibilidade entre os dados. O importante é identificar as incompatibilidades para fazer algum determinado tratamento. Abaixo são citados alguns tipos de incompatibilidades que são comuns em sistemas “Multidatabase”. Mesmo atributo é armazenado em diferentes unidades de medida. Nível de abstração (diferentes níveis de detalhes). Nome (atributos diferentes com mesmo nome ou atributos iguais com nomes diferentes). Tipo, Tamanho etc. 12