MXCP(c)Bireme: Algumas aplicações úteis
Elysio Mira Soares de Oliveira
infoarte@elysio.com.br
Indicações: Manutenção de bases de dados CDS/ISIS(c)Unesco
Eliminar espaços desnecessários na base de dados;
Eliminar ponto no final de campos;
Recuperar registros eliminados logicamente;
Transformar campos de dados simples em campos repetitivos;
Transformar termos assinalados em ocorrências de campos repetitivos;
Sintaxe: mxcp <dbin> [create=]<dbout> [<opções> [...]]
Opções:
{from|to|loop|count|tell|offset}=<n> undelete gizmo=<dbgiz>[,<tag_list>] period=<char>[,<tag_list>] repeat=<char>[,<tag_list>] clean {mintag|maxtag}=<n> log=<arquivo>Uma das principais funções do MXCP é contribuir com o controle de qualidade de dados de uma base de dados CDS/ISIS. Ele possibilita, a partir de uma base de dados, a criação de outra, isenta de espaços em branco no início e final dos campos de dados. Além desta limpeza, o MXCP pode substituir todos os caracteres invisíveis, inseridos acidentalmente na base de dados (ASCII<32), por caracteres brancos.
Outra inconsistência muito comum em bases de dados CDS/ISIS é a existência do ponto no final de uma ocorrência ou de um campo de dado. O MXCP também permite a eliminação desta pontuação, com a geração de uma cópia da base de dados, isenta desta pontuação.
Além destas funções de extrema utilidade no processo de controle de qualidade do dado, o MXCP permite uma série de outras aplicações, tais como: tornar ativo os registros logicamente eliminados; converter campos de dados únicos em repetitivos; converter palavras assinaladas em ocorrência de campo repetitivo, etc.
O MXCP não produz saídas de registros vazios. Os registros de entrada ou processados que não tenham campos, são descartados. Os registros eliminados logicamente só serão processados quando o parâmetro undelete for utilizado. Pode-se usar o mesmo arquivo mestre tanto para a entrada como para a saída, mas o resultado da operação destruirá o arquivo de entrada original. A opção create=<dbout> garante que <dbout> seja criado ou reinicializado.
Eliminação de espaços em branco
Apresentamos a seguir um exemplo de utilização do mxcp no processo de eliminação de espaços em branco no inicio e final de campos de dados. Neste exemplo, o MXCP irá ler uma base de dados de entrada e criar uma segunda base de dados, cópia da primeira, isenta destas inconsistências.
mxcp \cisis\cds\cds create=x clean
Onde:
mxcp comando de execução do mxcp
\cisis\cds\cds caminho e nome da base de dados de entrada cds
create= parâmetro para indicar a criação de outra base de dados
x nome da base de dados de saída, argumento do parâmetro "create="
clean parâmetro que indica a eliminação de brancos no início e final dos campos de dados
Recuperação de registros eliminados logicamente
Na instrução abaixo, apresentamos um exemplo da utilidade do mxcp na recuperação de registros eliminados (deletados). Esta instrução, composta com o parâmetro undelete, criará uma cópia da base de dados cds tornando ativo os registros eliminados. A base de dados de saída x, produto desta operação, passará a ter como ativos, todos os registros provenientes da cds, inclusive aqueles que haviam sido eliminados logicamente.
mxcp \cisis\cds\cds create=x undelete
Onde:
mxcp comando de execução do mxcp
\cisis\cds\cds caminho e nome da base de dados de entrada cds
create= parâmetro para indicar a criação de outra base de dados
x nome da base de dados de saída, argumento do parâmetro "create="
undelete parâmetro que indica a recuperação dos registros eliminados logicamente da base de dados "cds"
Transformar campos de dados simples em campos repetitivos
A conversão será feita sempre que houver um delimitador. No exemplo a seguir, o MXCP irá converter o campo 70, em repetitivo, considerando o ponto e vírgula ; como um separador de ocorrências.
Exemplo de registros da base de dados de entrada cds:
MFN 1
70 "Magalhaes, A.C.; Franco, C.M."MFN 2
70 "Bosian, G."A instrução:
mxcp cds create=x repeat=;,70
criará uma base de dados x cujo campo 70 passará a ter característica de campo de dado repetitivo.
Exemplo:
MFN 1
70 "Magalhaes, A.C."
70 "Franco, C.M."MFN 2
70 "Bosian G."Quando o parâmetro repeat é usado, o MXCP também efetua um processo de limpeza. Quando um campo de dado não for especificado no parâmetro repeat, o processo será executado em todos os campos da base de dados.
Por exemplo:
mxcp cds create=cds2 repeat=%
Onde:
mxcp comando de execução do mxcp
\cisis\cds\cds caminho e nome da base de dados de entrada cds
create= parâmetro para indicar a criação de outra base de dados
cds2 nome da base de dados de saída, argumento do parâmetro "create=" Também é possível a especificação de uma lista de campos:
mxcp cds create=cds2 repeat=%,70,99,100,200
Uma sequência:
mxcp cds create=cds2 repeat=%,99/105
Uma combinação de ambos:
mxcp cds create=cds2 repeat=%,70,99/105,110
Eliminar ponto no final de campos
Na instrução seguinte veremos a utilização do MXCP no processo de eliminação de pontos no final de campos de dados.
mxcp cds create=cds2 period=.,70
Esta instrução cria a base de dados cds2 a partir da base de dados de entrada cds, eliminando todos os pontos finais do campo 70. Por exemplo, supondo uma base de dados de entrada com os seguintes registros:
MFN 1
70 "Magalhaes, A.C."
70 "Franco, C.M."MFN 2
70 "Bosian G."
71 "Instituto de Ciências."Na base de dados resultante teríamos o seguinte:
MFN 1
70 "Magalhaes, A.C"
70 "Franco, C.M"MFN 2
70 "Bosian G"
71 "Instituto de Ciências."
Transformar termos assinalados em ocorrências de campos repetitivos
Outra facilidade bastante útil do mxcp é sua capacidade de efetuar operações através de uma tabela de conversão gizmo. Este procedimento permite que palavras assinaladas possam ser convertidas em ocorrências de um campo de dado repetitivo. A seguir apresentamos um exemplo desta utilização, a partir da criação da tabela de conversão, criada com o utilitário mx, que também será uma base de dados CDS/ISIS:
Digitando exatamente o que é apresentado abaixo (finalizando cada linha com <enter>) será criada uma tabela de conversão para substituir os colchetes angulares (<>), pelo sinal de porcentagem. (%):
mx seq=con create=xtable -all now
<|
>|
><|%
> <|%
> <|%
Paper on: <|
<Ctrl>ZEsta tabela de conversão, quando executada pelo MXCP sobre uma base de dados com os seguintes registros contidos no campo 69:
MFN 1
69 "Paper on: <plants><water><plant transpiration>"MFN 2
69 "Paper on: <plant physiology><plant transpiration><measurement and instruments"Quando executamos:
mxcp cds create=cds2 gizmo=xtable repeat=%,69
Teremos como resultado em cds2 os registros no seguinte formato:
MFN 1
69 "plants"
69 "water"
69 "plant transpiration"MFN 2
69 "plant physiology"
69 "plant transpiration"
69 "measurement and instruments"
Parâmetros do MXCP
mxcp <dbin> [create=]<dbout> [<opções> [...]]
Onde:
Opções:
{from|to|loop|count|tell|offset}=<n> undelete gizmo=<dbgiz>[,<tag_list>] period=<char>[,<tag_list>] repeat=<char>[,<tag_list>] clean {mintag|maxtag}=<n> log=<filename>
Os parâmetros from, to, loop, count, tell e offset são descritos no Manual do MX.