sábado, 14 de novembro de 2009

Sistemas hierárquicos

"A tecnologia imitou as instituições humanas nos pontos em que estas instituições estabeleceram sistemas"

Esta é a assertiva para os comentários deste "post".

Para quem está familiarizado com empresas, estas tem hierarquia: Presidente, diretores, superintendentes e gerentes mais baixos, até chegar aos pobres funcionários. Já falamos de família também.

Nos sistemas concebidos para gerenciar e fazer com que a tecnologia funcione, estas hierarquias tem um sentido tanto de estabelecer as linhas de processamento (a CPU/processador do computador é o "manda-chuva") quanto de acesso à informação ( pastas, arquivos, parágrafos, caracteres).

Isto fica muito claro principalmente nos bancos de dados. Vamos supor um sistema que vá gerenciar uma instituição financeira. A estrutura hierarquica pode ser:

  1. Banco (O grupo financeiro pode ter vários, cada um com uma finalidade)
  2. Agência
  3. Modalidade (Conta corrente ou poupança ou cartão de crédito ou carteira de descontos)
  4. Conta

Muita gente acha que nesta estrutura deve estar o cliente, mas esta forma é mais simples, pois se o cliente tiver várias contas, fica fácil para o sistema, pois pode tratar cada conta em separado. Se fosse tratar cada cliente, teria que fazer estruturas diferentes para cada um. A conta tem uma estrutura comum muito parecida. Em resumo, os analistas de sistema costumam dizer que o sujeito do assunto bancário é a conta, e não o cliente, e isto nos faz entender a frieza como os call-center de bancos nos tratam. Eles acham que somos uma conta bancária, e não uma pessoa.

Separando as coisas

A conta de banco é um repositório do dinheiro do banco, assim como o tipo de conta (poupança, carteira de descontos, cartão de crédito). Esta divisão torna os relatórios finais mais factíveis de serem feitos.

Por exemplo, o banco quer saber o total de dinheiro comprometido em cartões de crédito. Basta acessar as contas deste tipo. Se fossa listar todas, e tentar saber quanto de cada uma se refere à modalidade cartão, sem uma classificação clara, esta tarefa seria muito mais demorada. Veja a tabela (já que estamos gostando muito de tabelas):

Nome Tipo da
Conta
Número
da Conta
Valor
Ermenegildo Corrente 09231456 200,00
Ermenegildo Poupança 12738554 400,00
Parmegiano Corrente 09231434 100,00
Floriano Poupança 22748552 600,00
Ermenegildo Cartão 09231456 -270,00
Peixoto Poupança 12733558 400,00
Parmegiano Cartão 09231434 -150,00
Floriano Cartão 22748552 -400,00

Repare a engenhosidade na concepção desta tabela. As contas de cartão tem exatamente o mesmo número das contas correntes. No entanto, os valores são negativos, para mostrar que a conta está devedora. A separação aqui é uma sutileza engenhosa, em que duas coisas parecem a mesma, no entanto tem uma pequena diferença.

Quanto mais hierárquico, tipificado e dividido for um sistema, ou a infra-estrutura deste, mais preciso e maleável ele será. Se utilizarmos cores, uma dimensão visual, e portanto um novo critério de separação, melhor ainda:

NomeTipo da
Conta
Número
da Conta
Valor
ErmenegildoCorrente09231456200,00
ErmenegildoPoupança12738554400,00
ParmegianoCorrente09231434100,00
FlorianoPoupança22748552600,00
ErmenegildoCartão09231456-270,00
PeixotoPoupança12733558400,00
ParmegianoCartão09231434-150,00
FlorianoCartão22748552-400,00


Melhorou ?

Repare que, tendo a conta de poupança um número diverso, o cartão pode tornar a conta corrente bem negativa, que o banco nada fará para compensá-la. O cliente precisará autorizar o transporte de valores da poupança para a conta corrente.




Nenhum comentário: