CDS/ISIS: Entendendo a Tabela de Seleção de Campos (FST)
Elysio Mira Soares de Oliveira
infoarte@elysio.com.brUma tabela de seleção de campos contém os critérios para extração de um ou mais elementos de registros de uma base de dados CDS/ISIS. Dependendo do contexto, estes elementos podem ser utilizados para a criação do índice de chaves de acesso; para a ordenação de registros em uma determinada seqüência antes de produzir um relatório de saída ou para a reestruturação de registros durante um processo de importação ou exportação.
Um elemento pode ser definido como um fragmento de um registro resultante de um processo qualquer. Uma FST pode ser criada ou editada com qualquer editor de texto e consiste de uma ou mais linhas contendo cada uma delas 3 parâmetros:
1. Um identificador de campo
2. Uma técnica de extração
3. Uma instrução de formato para a extração do elementoExemplo de uma Tabela de Seleção de Campos:
24 4 mhl,v24
69 2 v69
70 0 mhl,v70|%|
26 0 “Lugar=”,v26^a
26 0 “Publ=”,v26^bQuando um processo é requisitado para extrair elementos utilizando uma FST ele passa a ler os registros contidos no banco de dados e executa as seguintes operações:
1. executa as instruções do formato para a extração do elemento;
2. aplica a técnica de extração especificada;
3. atribui a cada elemento produzido, uma identificação.O processo descrito acima é estritamente mecânico e acontece exatamente como descrito. Não é transmitida nenhuma outra informação entre um processo e outro, além do fragmento de dado extraído do campo. Portanto, somente o fragmento do campo produzido pela instrução de formato é que é transferida para as outras fases.
As instruções de formato são executadas sobre o conteúdo do campo de dado especificado, extraindo seu conteúdo, em seguida é executada uma técnica de extração e em um terceiro momento, é agregado um identificador à chave produzida.
As Técnicas de extração são definidas como processos que incidem sobre fragmentos de caracteres (strings), e não sobre campos ou registros. Devido a esta característica da FST é que ela pode ser utilizada para diferentes propósitos como definir o conteúdo do índice da base de dados ou permitir a especificação da ordem de apresentação de registros em um relatório impresso.
Em termos gerais, podemos pensar na FST como um dispositivo que permite extrair elementos ou fragmentos de campos de dados, de acordo com nossas necessidades.
Parâmetros da FST
Os três parâmetros da FST citados anteriormente são apresentados abaixo, na ordem que são processados (na tabela eles aparecem em ordem inversa).
Formato de extração de dados
Este formato é descrito utilizando a Linguagem de Formato do ISIS. Considerando que o dado produzido por este formato não será exibido, e sim processado, não existe restrição quanto ao tamanho da linha e jamais a linha produzida será dividida. Entretanto, o conceito de linhas pode ser relevante à técnica de extração que será aplicada ao produto do formato. Neste caso, o sistema espera que as separações de linhas sejam previstas na instrução especificada no formato. Devido a este fato, determinados comandos como o C (coluna) ou comandos que possuem sequências de escapes, normalmente são irrelevantes no formato de extração de dados e até podem em alguns casos, produzir resultados inesperados. Por outro lado, o modo selecionado (mhu, mhl, mpl, mpu, mdl e mdu) pode ser um recurso importante para determinada técnica de extração.
Algumas técnicas requerem um modo especial. Isto é descrito em cada técnica específica. Devemos notar que quando utilizamos um modo que faz conversão para maiúscula, o sistema recorre à tabela de conversão de caracteres (isisuc.tab) e o resultado terá relação direta ao conteúdo desta tabela. De um modo geral, não há necessidade do uso desta conversão, a não ser que tenha plena consciência desta necessidade. O sistema sempre faz esta conversão automaticamente quando necessário. Por exemplo, todos elementos gerados por uma FST que será utilizado na geração do índice de busca (arquivo invertido), automaticamente serão convertidos para maiúscula, mesmo que a FST gere a chave em minúscula.
Técnicas de extração de chaves
Uma técnica de extração indica um processamento especial que será executado no dado produzido pelo formato com o objeto de identificar elementos específicos que devam ser criados. Existem 9 técnicas de extração, cada uma delas com um código numérico que vai de 0 a 8:
Técnica de extração 0
Produz um elemento para cada linha produzida pelo formato. Esta técnica é normalmente utilizada para criação de chaves de campos inteiros ou de subcampos. Note que serão criados elementos a partir de linhas e não de campos. Isto ocorre porque o sistema vê o dado produzido pelo formato como sendo uma sequência de caracteres pois não existirá mais a informação sobre o campo de orígem. Passa a ser responsabilidade do desenvolvedor a geração correta da chave, utilizando-se devidamente dos recursos da Linguagem de Formato, especialmente quando se está extraíndo dados de campos repetitivos ou de mais de um campo de dado. Em outras palavras, quando se usa esta técnica, o formato de extração produzirá uma linha para cada elemento extraído.
Técnica de extração 1
Produz um elemento para cada sub-campo ou linha extraida pelo formato. Utilizando esta técnica, o sistema se baseará nos identificadores de sub-campos contidos no elemento extraído pelo formato. Portanto, o formato utilizado para extrair o conteúdo do campo no qual a técnica será aplicada, deverá considerar o modo prova (ou não indicar nenhum modo, visto que o modo prova é a modalidade padrão do sistema), isto porque, qualquer outro modo irá suprimir os identificadores de sub-campo. Lembre-se que os modos cabeçalho e dado, substituem os identificadores de sub-campo por sinal de pontuação.
Exemplos de uso das técnicas 0 e 1:
Conteúdo do campo 26 de um determinado registro: ^aParis^bUnesco^c1965
FST Elemento produzido Elemento extraído 1 1 mpl,v26 ^aParis^bUnesco^c1965 Paris Unesco 1965 1 0 mpl,v26^a/v26^b/v26^c Paris
Unesco
1965Paris
Unesco
19651 1 mdl,v26 Paris, Unesco, 1965 Paris, Unesco, 1965 Nesta tabela podemos notar que a técnica 1 é uma forma abreviada do uso da técnica 0
Técnica de extração 2
Produz um elemento para cada termo ou frase contida dentro dos sinais < e >. Qualquer texto ou palavra fora destes sinais, não serão considerados. Note que esta técnica requer o modo prova. Qualquer outro modo elimina os sinais. Os modos válidos são mpu ou mpl.
Exemplo de um texto assinalado:
Este documento descreve as <técnicas cirúrgicas> indicadas para a <extração de abscessos>.
Neste exemplo, somente as palavras: "técnicas cirúrgicas" e "extração de abscessos", fariam parte do índice de acesso da base de dados.
Técnica de extração 3
Funciona exatamente como a técnica 2 exceto que os termos ou frases são assinalados por /.../ barras.
Exemplo:
Trata-se de um /estudo estatístico/ sobre a incidência de /acidentes automobilísticos/ na cidade de /São Paulo/ ...Neste exemplo, somente as palavras "estudo estatístico", "acidentes automobilísticos" e "São Paulo" fariam parte do índice de acesso da base de dados.
Técnica de extração 4
Produz um elemento para cada palavra do elemento extraído pelo formato. Uma palavra é qualquer sequência contígua de caracteres alfabéticos especificados na ISISAC.TAB. Quando se utiliza esta técnica, devemos lembrar que todas as palavras não significativas contidas no elemento serão consideradas. Este inconveniente pode ser eliminado através da indicação destas palavras no arquivo de palavras sem significado (.STW).
Note que quando esta técnica for utilizada para extrair palavras de um campo que possui delimitadores de sub-campo, deve-se especificar o modo cabeçalho ou dado (mhl ou mdl) na instrução de formato que irá produzir o elemento. Se isso não for feito, a letra que identifica o sub-campo será considerada como parte da palavra.
Técnica de extração 5
Exatamente como à técnica 1, permitindo inserir um prefixo à chave produzida.
Exemplo:
AU=NOME DO AUTOR
TI=TÍTULO DO DOCUMENTOTécnica de extração 6
Exatamente como a técnica 2, permitindo inserir um prefixo à chave produzida.
Técnica de extração 7
Exatamente como a técnica 3, permitindo inserir um prefixo à chave produzida.
Técnica de extração 8
Exatamente como a técnica 4, permitindo inserir um prefixo em cada palavra extraída.
Identificador do campo
O identificador do campo é um número (entre 1 e 32767) atribuído para identificar cada elemento produzido durante a etapa de extração. A utilidade do identificador do campo vai depender do propósito da FST conforme descrito abaixo:
Índice (arquivo invertido)
O identificador do campo será o qualificador utilizado durante um processo de buscaOrdenação
O identificador do campo será utilizado como identificador do cabeçalho de entradaReformatação
O identificador será a etiqueta a ser atribuída no arquivo ISO após um processo de exportação ou etiqueta de um campo de dado ISIS num processo de importação