Adequando transações e o modelo físico de dados por meio da análise dos caminhos de acesso


por João Marcelo Borovina Josko

O crescimento na utilização de sistemas de informação – SI – para apoiar uma vasta gama de processos de negócio organizacionais, vem requerendo das equipes de TI um grande jogo de cintura para adequá-los a um público com características e complexidades distintas, mas com a exigência comum de bom desempenho.


Esses SI utilizam intensivamente à persistência de dados oferecidos pelos Sistemas de Gerenciamento de Banco de Dados – SGBD – de mercado, bem como realizam uma grande variedade de operações – transações e consultas – que são ponto nevrálgico para atender o negócio.

A despeito dessa importância, de forma geral, a construção das operações que interagem com os bancos de dados não são precedidas por uma atividade de análise de suas características. Esse trabalho revela um conjunto de informações que contribuem para o desempenho de um banco de dados, à medida que proporciona a melhor estruturação dessas operações e subsídios valiosos para a modelagem física de dados. Tal conhecimento é fruto da aplicação da técnica de Análise dos Caminhos de Acesso das operações.

Os propósitos

Nos momentos iniciais da fase de Projeto de um SI, a posse do modelo lógico de dados possibilita a uma equipe de desenvolvimento identificar os possíveis caminhos de acesso às estruturas de banco de dados – tabelas, views, views materializadas – requeridas para atender as operações. Na manutenção, por sua vez, a análise das operações e seus caminhos podem revelar pontos de ajuste do banco de dados.

A Análise dos Caminhos de Acesso é uma técnica que auxilia na determinação do caminho mais adequado para uma operação, por meio da quantificação dos acessos realizados às estruturas do banco de dados. Pode ser aplicada em qualquer método de trabalho junto ao banco de dados, inclusive os ágeis.

Os propósitos centrais desta técnica são:

 

§   Adequar à estrutura de uma operação à do banco de dados, tendo em vista não só a questão de desempenho, mas também a concorrência;

 

§   Fornecer subsídios aos processos de projeção e sintonização do modelo físico de dados, auxiliando na determinação das estratégias de indexação, de particionamento de dados horizontal e vertical, de desnormalização, entre outros.

O processo

A técnica apresenta um conjunto de passos cujo produto final é um mapa – chamado de Mapa de Acesso – que caracteriza cada caminho identificado para uma operação. Seus passos constituintes são:

 

1.       Seleção das Operações a serem analisadas

 

Analisar todas as operações em um sistema de informação, apesar de ideal, é reconhecidamente impraticável por restrições de tempo e custo. Dentro da totalidade das operações, a equipe de desenvolvimento deve então selecionar seu “publico alvo” empregando critérios como:

 

§          Nível de Complexidade;

§          Nível de Criticidade ou Restritividade para o negócio;

§          Freqüência de execução.

As operações selecionadas são descritas quanto ao tipo de processamento – batch ou online – e a freqüência por período – por dia, por mês, etc. – no Mapa de Acesso, conforme ilustrado na parte superior da figura 1.

 

2.       Identificação das Alternativas de Caminho de Acesso

 

A identificação das alternativas de caminhos ocorre a partir do modelo lógico de dados – modelo físico para o caso de manutenção – tendo como base a função – ou funções – a ser desempenhada por uma operação selecionada. Cumpre ressaltar que deve ser considerando somente os caminhos visivelmente praticáveis.

 

3.       Caracterização dos Caminhos de Acesso

 

Como cada caminho perpassa por várias tabelas, para facilitar a quantificação, este é segmentado em cada um dos nós que o constituem, ou seja, a passagem ou junção entre uma tabela de origem para uma de destino. A título de exemplo, para uma operação que deseja consultar o “Nome do Gerente” que atende a um “Cliente” de uma “Conta Corrente” específica, o Mapa de Acesso a seguir ilustra o seguinte caminho possível:

 Tabela CLIENTE à Tabela CONTA CORRENTE à Tabela GERENTE


SQL-11-02-2008pic01.JPG
Figura 1 –
Trecho do Mapa de Acesso parcialmente preenchido

De posse dos nós, o total de acessos requer a quantificação dos itens a seguir:

 

a.       A quantidade de linhas a serem acessadas na tabela de origem;

b.      A quantidade média de linhas a serem acessadas na tabela de destino para cada uma das linhas na tabela de origem;

c.      A relação entre a quantidade de linhas utilizadas e acessadas pela operação, denominada de Fator de Seleção. Cumpre lembrar que essas podem ser diferentes quando houver condições de restrição;

d.      A quantidade de linhas efetivamente selecionadas, empregando a expressão abaixo:

SQL-11-02-2008pic02.JPG 

 

e.       O total de acessos no período da operação, obtido quando os passos anteriores forem realizados para todos os nós.

SQL-11-02-2008pic03.JPG 

 

4.       Seleção dos Caminhos de Acesso

 

Com os Mapas de Acesso completos para uma operação, o melhor caminho é aquele que apresentar a menor quantidade total de acessos no período. Contudo, em algumas situações, todas alternativas podem se mostrar inviáveis no quesito desempenho ou concorrência. Nessa situação, a estruturação da operação passa pela utilização de recursos como:

 

§          Tabelas intermediárias para manter informações consolidadas, reduzindo a carga sobre a tabela original;

§          Tabelas particionadas para isolar as colunas utilizadas pela transação das demais colunas, elevando a concorrência.

Exemplificando a Análise

No intuito de apresentar a técnica em ação, tomamos como exemplo uma função simples – “Quais itens pedidos por um dado Cliente foram parcialmente entregues?” – selecionada pela sua criticidade de atendimento ao Cliente de uma organização de varejo. Partindo do modelo lógico de dados lógico, ilustrado na figura 2, podemos identificar os seguintes caminhos:

Caminho A: CLIENTE à PEDIDO à ITEM PEDIDO à ITEM NOTA FISCAL

Caminho B: CLIENTE à PEDIDO à NOTA FISCAL à ITEM NOTA FISCAL

SQL-11-02-2008pic04.JPG
Figura 2 –
Trecho de Modelo de Dados Lógico de Pedido e Faturamento

Para o caminho A, segue a análise de acesso e o Mapa de Acesso resultante:

 

§      Leitura da tabela CLIENTE com o número de seu CPF;

§      Leitura da tabela PEDIDO, acessando 4 linhas em média para cada cliente;

§      Leitura da tabela ITEM PEDIDO, acessando 3 linhas em média para cada pedido;

§      Leitura da tabela ITEM NOTA FISCAL, acessando 2 linhas por item de pedido. Porém, os itens de interesse são aqueles cuja quantidade entregue são diferentes da quantidade pedida correspondendo para o negócio, por exemplo, a ½ dos casos. Logo temos o fator de seleção 50%.


SQL-11-02-2008pic05.JPG
Figura 3 –
Mapa de Acesso para o Caminho A da operação em análise

Para o caminho B, segue a análise de acesso e o Mapa de Acesso resultante:

 

§      Leitura da tabela CLIENTE com o número de seu CPF;

§      Leitura da tabela PEDIDO, acessando 4 linhas em média para cada cliente;

§      Leitura da tabela NOTA FISCAL, acessando 2 linhas em média para cada pedido;

§      Leitura da tabela ITEM NOTA FISCAL, acessando 3 linhas por nota fiscal. Os itens de interesse correspondem a 50% dos casos, como indicado no Caminho A.

 
SQL-11-02-2008pic06.JPG
Figura 4 – Mapa de Acesso para o Caminho B da operação em análise

Neste ponto, contrapondo os Mapas, verifica-se que o Caminho B apresenta a melhor opção quanto a desempenho.

Conclusão

A Análise dos Caminhos de Acesso gera importantes benefícios ao projeto ou sintonia do modelo físico de dados, bem como na estruturação das operações de interação ao banco de dados em troca de um pequeno esforço para sua aplicação.

Porém, seu uso efetivo dessa técnica requer o conhecimento maior da arquitetura de SI de uma organização, com o intuito de considerar todos os SI que possuam relação ao banco de dados das operações foco de análise. Essa contextualização mais ampla leva a adoção de decisões e soluções considerando o ambiente em que as operações serão executadas e não como entes isolados.

Bibliografia

JOSKO, João Marcelo B. “Pensando o desempenho no data warehouse”, em //www.devmedia.com.br/articles/viewcomp.asp?comp=6940, visitado em 10/02/2008.


NAVATHE, Shamkant B., ELMASRI, Ramez E. “Sistemas de banco de dados”. Addison Wesley Brasil, 2005