Alterar dados de coluna

O módulo de alterar dados de coluna é ativado através do grid do TerraView. Para sua correta ativação é necessário que o nome da coluna, sobre a qual é desejada a alteração, esteja visível no grid. Em seguida, para ativar o módulo, posicione o mouse sobre o nome da coluna e com o botão direito selecione o item "Alterar Dados da Coluna...". A interface da Figura 1 é ativada.

Fig. 1 - interface de alterar dados de coluna.

O módulo mostra na parte superior, apenas para informação, o nome da coluna que recebera os novos dados.

A caixa "Modificar" permite selecionar o range de linhas da tabela que serão alteradas. Por default ela é configurada para "Todos".

A caixa "Operação" possui um combo com os nomes dos atributos do tema. Ele é utilizado para ajudar na digitação correta do nome do atributo. Toda vez que se ativa o combo ou um dos botões de operação é feita uma cópia para a área de edição. A cópia é colada sobre uma seleção previamente existente ou colocada sobre o cursor da área de edição.

O botão "Executar" aplica a alteração formulada.

O botão "Cancelar" desativa o módulo.

O botão "Ajuda" mostra esta tela de ajuda.

 

 

Considerações finais

Digitar =

Não digite '=' na área de edição. Para colocar, por exemplo, o valor 5 sobre as linhas da tabela, digite apenas 5 na área de edição e pressione o botão "Executar". As linhas da tabela receberão o valor 5.

 

Operação com atributos

Uma coluna pode receber o resultado da operação entre atributos, por exemplo, a soma de dois atributos. Para isto, selecione no combo o primeiro atributo, em seguida pressione o botão "+", depois selecione no combo o segundo atributo. Certifique-se que os atributos selecionados sejam do tipo numérico para que a soma seja efetuada com êxito. Pressione o botão "Executar". As linhas da coluna receberão a soma de valores desses dois campos.

OBS: Essa operação pode até funcionar com atributos do tipo string desde que todas as linhas sejam somente de valores numéricos. Quando isso não ocorre, dependendo do gerenciador de banco de dados, pode não executar nada, ou então, pode até:

 

Operação com atributos de valor nulo

O resultado da operação, quando um atributo não tem valor, é nulo. No exemplo anterior, o resultado de um campo será nulo quando um dos atributos for nulo.

 

Operação cujo resultado é indeterminado

Quando o resultado de uma operação é indeterminado, como por exemplo, a divisão de dois atributos onde o divisor é zero, o resultado é nulo.

 

Operação usando funções matemáticas

O uso de funções como log, sin, cos, etc. é possível e depende do gerenciador de banco de dados. Quando isso leva a valores indeterminados como log(0) o resultado é nulo.

NOTA: Alguns gerenciadores de banco de dados não atribuem valor nenhum quando há algum resultado inválido. Nesses casos pode-se usar a clausura WHERE para filtrar apenas as linhas que tenham resultados válidos.

Atribuir valor nulo

Para atribuir valor nulo, tecle null na área de edição e pressione o botão "executar".

OBS: Alguns gerenciadores de banco de dados exigem um cast para atribuir valor nulo. Por exemplo, em POSTGRESQL deve-se colocar null::float8 ou null::integer ou null::varchar dependendo do tipo do campo.

 

Tema com ligação 1 para n

Nos casos de ligação 1 para n pode-se obter o resultado de uma agregação utilizando-se as funções: MIN, MAX, AVG, SUM e COUNT. Isso é possível desde que a coluna selecionada seja de uma tabela estática e esteja recebendo a agregação de valores de uma tabela externa.

Para exemplificar suponha que exista um tema de municípios ligado à tabela externa escolas e cada município possui n escolas. Nessa situação para saber quantas escolas tem cada município executa-se a seguinte operação:

COUNT(nome_escola)

Note que sem o uso de agregação torna-se impossível uma coluna da tabela estática receber os dados de uma coluna da tabela externa, porque, neste caso existem várias linhas de dado para cada linha da tabela estática. A função de agregação reduz esses valores para um único e o atribue para o objeto correspondente.

 

Também é possível a utilização de funções matemáticas baseadas em uma função de agregação, por exemplo:

log(AVG(num_professores)) + 12

Entretanto, não é possível executar a agregação sobre o resultado de uma função matemática, por exemplo:

MAX(log(num_professores))        ..... ERRO

 

Uso da cláusula WHERE

Após a formulação da operação pode-se acrescentar a cláusula WHERE. Isso faz com que a alteração ocorra somente onde existem certas características definidas na cláusula WHERE.

OBS: o módulo executa um AND da cláusula WHERE com a opção escolhida da caixa "Modificar".

Como exemplo, voltemos ao caso do número de escola por município. Para calcular esse número somente sobre os municípios com mais de 100000 habitantes é feito o seguinte:

COUNT(nome_escola) WHERE pop_municipio > 100000

Este mesmo resultado pode ser obtido através dos seguintes passos:

primeiro: saia deste módulo.

segundo: ative o módulo de consulta por atributos

terceiro: selecione todos os municípios com mais de 100000 habitantes.

quarto: saia do módulo de consulta e volte ao módulo de alterar dados de coluna.

quinto: selecione a opção "Consultados" na caixa "Modificar".

sexto: aplique a seguinte operação:

COUNT(nome_escola)

O resultado é o mesmo.

Essas duas formas de filtrar linhas são extremamente úteis porque alguns gerenciadores de banco de dados não executam nada quando há uma operação inválida, tais como, divisão por zero, etc.

As linhas que ficam de fora não sofrem alteração.

Colunas que não podem ser alteradas

Colunas que são chaves ou usadas para ligar a outras tabelas não podem ser alteradas e são protegidas pelo TerraView.