Autor: Luís Santos

Legacy Systems

Na sua forma clássica, o COBOL acede e trata ficheiros através da norma RLA (Record Level Access), que consiste em apontar, descrever e manipular a base de dados DB2 através de ficheiros físicos e lógicos e das suas descrições DDS, chaves, índices e tudo aquilo que é sobejamente conhecido e praticado. O SQL embebido surge precisamente quando queremos agilizar e simplificar o acesso a dados, trazendo para o primeiro plano as potencialidades da linguagem SQL em termos de rapidez, manipulação e apresentação de dados, e associando-as às potencialidades da linguagem de programação em causa (neste caso, COBOL).

Um programa de COBOL que pretenda ler os dados de um ficheiro costuma fazê-lo, essencialmente, de duas formas: sequencialmente, lendo todos os registos do ficheiro, ou por acesso direto, indo, através de uma chave, ao registo pretendido. No primeiro caso existirá um ciclo que se vai repetindo para cada registo lido e que vai considerar se esse registo deve ser lido ou tratado, e como. Consoante o tipo de processamento (se atualiza outros ficheiros, se tem que ler novos ficheiros para cada registo processado, etc.), o programa pode ficar consideravelmente mais pesado e mais complexo. No segundo caso basta uma instrução de leitura para aceder ao registo, mas não sem antes declarar o ficheiro, abri-lo e, no final, fechá-lo.

Já o SQL embebido, por seu lado, permite aceder a vários registos ao mesmo tempo, manipulando-os simultaneamente e sem a preocupação dos lógicos. Aliás, o SQL pode funcionar como um lógico, restringindo as colunas, a quantidade de registos e a própria ordenação, bem como agregar vários ficheiros numa única instrução. Podemos usá-lo para manipular um único registo ou um bloco deles, carregado num cursor, o que nos possibilita trabalhar apenas com os registos relevantes de um (ou vários) ficheiro (s). Outra característica poderosa do SQL é permitir agir sobre todo um ficheiro ou uma parte dos seus registos simultaneamente, como para apagá-lo ou atualizá-lo. Além disso, temos ainda o benefício das funções intrínsecas do SQL disponíveis dentro do COBOL.

Fica, então, a dúvida sobre qual a melhor solução. E, na verdade, não existe uma resposta. Depende do que se pretende fazer e com que tipo de desempenho o pretendemos. Assim, é importante ter em mente o fim a que se destina o programa para melhor escolher a ferramenta adequada. E a escolha não é exclusiva, uma vez que o mesmo programa pode fazer uso de ambas as filosofias, podendo ambas coexistir. O importante é conhecer as vantagens e desvantagens de cada uma para melhor tirarmos partido delas.

Publicado a 22-02-2016 em Empresas Hoje

https://empresashoje.pt/opiniao/opiniao-sql-embebido-no-cobol/