Clique aqui para ler esse artigo em PDF.
Firebird
Código fonético no Firebird
Um dos maiores problemas em um cadastro, seja de clientes, fornecedores ou produtos, é quando ele se torna muito grande, dificultando a busca por nome ou descrição. Quem nunca se confundiu com o nome de um cliente ou de um produto? Walter ou Valter? Luis ou Luiz? Tem acento? Elizabeth, Elisabette ou Elizabette?
Alguns bancos de dados como o SQL Server e o MySql disponibilizam funções para busca fonética, geralmente chamada Soundex, que gera um código fonético de acordo com a pronúncia do idioma inglês, o que a torna impraticável para a língua portuguesa. Até no Clipper tínhamos essa função.
Neste artigo veremos como criar uma rotina de código fonético em português para ser utilizada no Firebird.
Código fonético
Os algoritmos Soundex e Metaphone são os dois mais utilizados para gerar código fonético. O código Soundex tem a propriedade que palavras pronunciadas similarmente produzem a mesma chave soundex e assim podem ser usadas em pesquisas em bancos de dados aonde você conhece a pronúncia, mas não exatamente como escreve.
A função retorna uma string de quatro caracteres, começando com uma letra, para cada palavra. Assim, por exemplo, para o nome “Pedro da Silva” o código retornado seria algo como P360D000S410. Já para “Pedro Silva” o retorno seria algo como P360S410.
Já o algoritmo Metaphone cria a mesma chave para palavras sonoras similares. Ele é mais preciso do que Soundex porque trabalha com as regras básicas da pronunciação. As chaves Metaphone geradas são de comprimentos variado. O que faremos é adaptar o algoritmo Metaphone para a língua portuguesa.
As regras da nossa função são (quando usarmos o sinal de igualdade significa “tem o som de”):
·Todos os acentos são substituídos, inclusive a cedilha;" [...] continue lendo...