>

capaSQL16.JPG

Clique aqui para ler todos os artigos desta edição

 

Distribuição e fragmentação de bases de dados

por Pablo Vieira Florentino

Projeto de distribuição de bases de dados

Com o advento de sistemas em rede voltados para internet ou sistemas distribuídos de natureza comercial - principalmente Sistemas Gerenciadores de Banco de Dados (SGBD) – grandes organizações passaram a necessitar de melhor estrutura para tratar da distribuição de seus dados. Sistemas distribuídos e/ou baseados em rede correspondem melhor às necessidades da estrutura organizacional de instituições geograficamente e amplamente distribuídas, uma vez que eles provêem melhor desempenho e são mais confiáveis e disponíveis em relação a sistemas centralizados. Mesmo assim, instituições geograficamente centralizadas podem se beneficiar da distribuição de seus sistemas, balanceando o processamento entre diversos sites internos à sua estrutura. É cada vez mais simples e fácil a implantação de um sistema de banco de dados distribuído, em face do constante declínio no custo de elementos de processamento e memória, popularização dos computadores pessoais e aumento da escalabilidade dos sistemas, através de maior facilidade para expansões e integração de recursos diferenciados, permitindo a montagem de diferentes sites. Aplicações para bancos e grandes lojas de departamentos são exemplos clássicos beneficiados com a tecnologia de sistemas distribuídos, em especial “SGBD Distribuídos” (SGBDD). O Projeto de Distribuição de Bases de Dados (PDBD) visa definir esquemas de fragmentação e alocação de bases de dados de acordo com os acessos feitos pelas aplicações, de forma a otimizar tais acessos.

Existem duas estratégias para a distribuição de bases de dados: ascendente e descendente. A abordagem ascendente é comumente aplicada sobre bases de dados legados, em que a tarefa de modelagem objetiva integrar as bases existentes. Este tipo de ambiente é geralmente caracterizado por sistemas heterogêneos.

No caso da estratégia descendente, o processo envolve atividades básicas para desenvolvimento de sistemas como análise de requisitos e captura de informações - gerando um esquema global - até a implementação do projeto físico de distribuição em projetos locais. Esta abordagem é aconselhável para sistemas de bases de dados projetados no início da modelagem da aplicação. No entanto, a distribuição de bases de dados é um processo dinâmico e evolutivo, devendo ser sempre revisado a partir de histogramas coletados no SGBD.

Neste artigo, detalharemos a estratégia descendente, na qual o projeto de distribuição possui duas etapas principais: a etapa de fragmentação e a etapa de alocação. A primeira define o esquema de fragmentação de uma base de dados, onde para cada tabela é definida a técnica de fragmentação que será aplicada. Para esta etapa, podem ser utilizadas técnicas básicas de fragmentação, como a fragmentação horizontal (FH) e a fragmentação vertical (FV). Estas duas técnicas podem ser combinadas e utilizadas de forma conjunta na mesma tabela (fragmentação híbrida (FHib)), ou em tabelas distintas (fragmentação mista). Escolher qual é a técnica mais apropriada para fragmentar cada tabela que compõe a base de dados é atualmente um grande problema, que possui apenas algumas propostas de solução. Para realizar a fragmentação das tabelas é necessário analisar diversas informações relativas à aplicação, como: as consultas mais solicitadas e suas respectivas freqüências; características das tabelas que formam a base de dados, seus relacionamentos com outras tabelas e suas cardinalidades (quantidade de registros existentes em uma tabela).

A etapa de alocação indica como os fragmentos gerados devem ser alocados nos diferentes sites do sistema, baseando-se em informações como a localização das aplicações e tamanho das tabelas, freqüências e padrões de acesso, etc.

Etapa de fragmentação

Na estratégia descendente, a fragmentação é a primeira etapa no PDBD. Seu objetivo é definir fragmentos ou partições de dados que servirão de subsídio para a etapa posterior (alocação). Nessa etapa, para cada tabela da base de dados, deve ser definida a técnica de fragmentação mais adequada, onde os fragmentos (ou partições) da tabela são especificados de acordo com a técnica escolhida.

Fragmentação horizontal

Os fragmentos de uma tabela podem ser determinados através de funções de fragmentação definidas de acordo com as características da aplicação. Por exemplo, uma tabela de Empregados poderia ser fragmentada em duas partições: aqueles que possuem salário acima de 5.000 e aqueles com salário menor ou igual a 5.000. Temos então a definição das duas partições de Empregado, especificadas por duas funções de fragmentação distintas:

Empregado1 = F [salário > 5000] (Empregado)

Empregado2 = F [salário <= 5000] (Empregado)

A fragmentação horizontal pode ser classificada em dois tipos: horizontal primária (FHP) e horizontal derivada (FHD). A primeira aplica-se criando agrupamentos de acordo com as características dos registros da própria tabela analisada. O exemplo anterior de fragmentação da tabela Empregado ilustra a aplicação da FHP. No segundo caso, da FHD, os fragmentos derivados são definidos de acordo com características da FHP de uma outra tabela relacionada. Por exemplo, supondo-se uma tabela Dependente relacionada com a tabela Empregado, já fragmentada com as partições primárias apresentadas acima, teríamos a tabela Dependente sendo fragmentada de forma derivada em relação a Empregado originando os seguintes fragmentos:

·         Depend1 = Dependente ...

Quer ler esse conteúdo completo? Tenha acesso completo