Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduo
Aplicaes de banco de dados que dependem de algoritmos complexos e bem
elaborados, geralmente, executam estes algoritmos fora da camada do servidor de banco de
dados. A justificativa pode ser a consonncia com a grande oferta de recursos que as linguagens
de programao oferecem ou mesmo porque o desenvolvedor no se atenta para esta
possibilidade.
A recursividade um algoritmo que segundo (WIRTH, 1999) consiste parcialmente ou
definido em termos de si prprio. Ou ainda conforme (PEREIRA, 2000) que atribui este
conceito ao algoritmo que para resolver um problema divide-o em subproblemas mais simples,
cujas solues requerem a aplicao dele mesmo.
DESCPLANO
CRDITOS
DBITOS
Recebimento de servios prestados
Pagamento de fornecedores
Pagamento de impostos
Venda de mercadorias
Impostos Federais
Impostos Estaduais
Imposto de Renda
ICMS
COFINS
IPI
Despesas Operacionais
Servios bancrios
Impostos municipais
ISSQN
IPVA
IPTU
TIPO
C
D
C
D
D
C
D
D
D
D
D
D
D
D
D
D
D
D
PAI
1
2
1
2
2
1
5
5
7
8
7
7
2
14
5
16
8
16
DESCPLANO
TIPO
IDPAI
2
4
5
7
10
12
13
8
11
14
15
DBITOS
...Pagamento de fornecedores
...Pagamento de impostos
......Impostos Federais
.........Imposto de Renda
.........COFINS
.........IPI
......Impostos Estaduais
.........ICMS
...Despesas Operacionais
......Servios bancrios
D
D
D
D
D
D
D
D
D
D
D
2
2
2
5
7
7
7
5
8
2
14
PAGO
500
123
300
Pode-se dizer que utilizao de Stored Procedures recursivas apresenta tanto pontos
positivos quanto negativos. Segundo (WIRTH, 1999, p. 112) h situaes onde no se deve
utilizar recurso, o que pode levar a resultados ineficientes. O principal ponto a ser considerado
a necessidade de utilizao da recurso para resolver o problema ou obter os dados necessrios.
Neste exemplo, a recursividade tem sua importncia para garantir que os itens do plano de contas
sejam hierarquizados independentes do nmero de nveis encontrados.
De acordo com (BORRIE, 2006, p. 558), rotinas e regras de negcio complexas so
centralizadas no servidor. A autora justifica que como vantagem tem-se a economia em horas
de programao e testes e a execuo no lado servidor elimina os riscos de integridade inerentes
repetio e manuteno das mesmas operaes complexas em mltiplos ambientes de
linguagem cliente. Portanto, a utilizao de procedures recursivas que necessitam realizar a
leitura repetitiva dos dados poder resultar em um ganho ainda mais significativo por no
depender de diversas requisies de dados pelo sistema cliente.
Para (WIRTH, 1999, p. 114) existem situaes onde a recurso deve ser evitada.
Assim, conclui-se que se deve evitar o uso de recurso sempre que for conhecida uma soluo
bvia que utilize a tcnica de iterao.
Pereira (2000) afirma que Um algoritmo claro, simples e conciso vale mais que
qualquer algoritmo envenenado que rode um pouquinho mais rpido! Conclui-se, portanto
que a utilizao de recurso, embora no seja a melhor soluo em todos os casos, poder tornar
o cdigo mais agradvel a ponto de ser mais interessante que utilizar estruturas de repetio e
comandos de desvio de fluxo para obter um resultado mais apurado de processamento.
A utilizao de Stored Procedores recursivas no Firebird no muito diferente da
recurso em qualquer linguagem de programa. De acordo com (BORRIE, 2006), cada chamada
de um procedimento referida como uma instncia, como se fosse chamada vrias vezes de uma
aplicao, reservando espao de memria e para pilha conforme necessrio. Portanto,
recomenda-se que o algoritmo da Procedure recursiva seja bem elaborado e econmico quanto
ao uso de variveis e leitura dos dados.
Concluso
Referncias
BORRIE, H. Dominando Firebird: Uma referncia para desenvolvedores de banco de dados.
Rio de janeiro: Cincia Moderna, 2006.
CANTU, C. H. Firebird o banco de dados do novo milnio. So Paulo: Cincia Moderna,
2006.
CHAGAS, O. B. et al. Sistemas gerenciadores de banco de dados para micro e pequenas
empresas. In: Seminrio de Iniciao Cientfica e Tecnolgica da UTFPR, Pato Branco,
2009. Disponvel em. Acesso em: 01 abr. 2012.
CUERVO, M. C. Performance assesment of MySQL and Firebird Database Management
Systems. Revista Universidad EAFIT, Medellin, 43, n. 48, 25 out. 2007. 78-90.
DATE, C. J. Introduo a sistemas de banco de dados. 4. ed. So Paulo: Campus, 2003.
ELMASRI, R. E.; S., N. Sistemas de Banco de Dados. 6. ed. So Paulo: Pearson, 2010.
KORTH, H. F.; SILBERSCHATZ, A.; SUDARSHAN, S. Sistemas de Banco de Banco de
Dados. 3. ed. So Paulo: Makron Books, 1998.
PEREIRA, S. D. L. Estruturas de dados fundamentais: conceitos e aplicaes. 4. ed. So
Paulo: rika, 2000.
SOUZA, M. D. O.; MATIOSKI, M. E.; NEVES, A. P. Anlise de desempenho dos bancos de
dados mysql, postgresql e firebird: um estudo de caso. Revista Cientfica de Administrao e
Sistemas de Informao, Curitiba, v. 11, 2008. ISSN 1679-236X.
WIRTH, N. Algoritmos e estruturas de dados. Rio de Janeiro: LTC, 1999.