< Anterior | Próximo >

Lição 2.4: Utilizar Geração Automática de Chaves

Na lição anterior, você configurou regras de navegação para certificar-se de que os usuários digitassem um ID exclusivo para o novo anúncio classificado. Esse processo é frustante e pouco realista, pois você não gostaria que seus usuários do site localizem um único ID por tentativa e erro. Nesta lição, você configurará a geração de tecla automática para fazer com que o banco de dados designe um número exclusivo a cada novo registro no banco de dados automaticamente.

A geração automática de chaves é um tópico complexo mas, em resumo, um banco de dados pode escolher novas chaves se tiver uma tabela especial reservada para a geração de chaves. Essa tabela deve ter uma lista de chaves não utilizadas em uma coluna (a coluna incrementadora) e uma lista de números em ordem começando com 1 na outra coluna (a coluna de identidade). Quando o banco de dados precisar de uma nova chave, ele obterá a chave da coluna com o 1 na coluna de identidade e, em seguida, deixará uma nova chave pronta para a próxima vez.

Para configurar a geração automática de chaves, é preciso conhecer algumas coisas sobre como ela funciona. Para utilizar a geração automática de chaves, o banco de dados precisa ter uma tabela reservada para essa finalidade. Essa tabela tem duas colunas:
  • A coluna incrementadora armazena as chaves disponíveis. Quando o banco de dados precisa de uma nova chave exclusiva, ele recupera uma dessa coluna.
  • A coluna de identidade é uma lista de números com apenas uma instância do número 1. Essa coluna indica ao banco de dados que chave selecionar na coluna incrementadora. A coluna de identidade é a chave primária da tabela de geração de chaves.

Quando o banco de dados precisa de uma nova chave exclusiva, ele localiza a linha com um valor de 1 na coluna de identidade. O valor da coluna incrementadora dessa linha contém a próxima chave disponível. O banco de dados utiliza essa chave e atualiza a tabela para que uma nova chave esteja disponível na próxima vez.

A seguir, um exemplo de uma tabela de geração de chaves. Qual é a próxima chave disponível para este banco de dados? A resposta está depois da tabela.
Tabela 1. Tabela de Geração de Chaves
Coluna de Identidade Coluna Incrementadora
3 78
4 3
1 65
2 12
A próxima chave disponível nesta tabela é 65, porque essa chave (na coluna incrementadora) está na mesma linha que o 1 na coluna de identidade.

Depois que a próxima chave disponível for buscada da tabela, a tabela será atualizada para a próxima vez em que uma chave for necessária. O banco de dados também pode recuperar várias chaves de um só vez tomando o valor da coluna incrementadora de mais de uma linha.

Em resumo, para que a geração automática de chaves funcione, é necessário ter apenas uma tabela de geração de chaves configurada com duas colunas: uma coluna de chave primária para uso como uma coluna de identidade e uma coluna para armazenar a próxima chave disponível. Essa tabela deve ser inicializada com um registro cujo valor na coluna de identidade seja 1 e cujo valor na coluna incrementadora seja a primeira chave disponível para ser utilizada. Depois que você tiver essa configuração, estará pronto para utilizar a geração automática de chaves.

Configurar a Geração Automática de Chaves

O banco de dados de amostra fornecido com este tutorial tem uma tabela de geração de chaves denominada KEYS. Suas duas colunas, conforme descrito acima, fornecerão um novo número de ID para cada novo registro. Nestas etapas, você configurará o registro relacional create_record para obter seu número de ID da tabela KEYS.
  1. Dê um clique duplo na página new_record.jsp na visualização Explorador de Projetos (Project Explorer).
  2. Dê um clique duplo no registro relacional create_record na visualização Dados da Página (Page Data). A janela Configurar Registro Relacional (Configure Relational Record) é aberta.
  3. Clique em Reutilizar Definição de Metadados de um Registro Existente ou de uma Lista de Registros (Reuse metadata definition from an existing record or record list) e em Preencher Registro com Dados Existentes do Banco de Dados (Fill record with existing data from the database) e, em seguida, clique em Avançar (Next).
  4. Selecione a conexão com o banco de dados na lista drop-down e, em seguida, clique em Avançar (Next).
  5. Na janela Configurar Registro Relacional (Configure Relational Record), à direita há uma lista de links. Clique em Gerar Chave Automaticamente (Auto generate key). A janela Geração de Chaves (Key generation) será aberta.
  6. Selecione Utilizar Geração de Tecla Automática (Use Auto Key Generation).
  7. Clique para expandir a lista W5SAMPLE e, em seguida, clique na tabela KEYS.
  8. No campo Selecionar Coluna de Identidade (Select identity column), clique em KEY_ID.
  9. No campo Selecionar Coluna Incrementadora (Select incrementor column), clique em NEXT_KEY.

    Como você precisa somente de uma chave para o ID do anúncio, deixe a configuração de "Chaves buscadas por vez (Keys fetched at once)" como 1. Se você precisasse de várias chaves, essa configuração faria com que o banco de dados selecionasse todas de uma só vez.

    A janela Configurar Objeto de Dados (Configure Data Object) deve ser semelhante a esta:

    Janela Configurar Objeto de Dados (Configure Data Object).

  10. Clique em Fechar (Close) para fechar a janela Geração de Chaves (Key generation) e, em seguida, em Concluir (Finish) para aplicar as alterações. Agora o campo de ID será gerado automaticamente para cada novo registro. Em seguida, você deverá remover o campo de entrada do ID para que o usuário não possa digitar um valor.
  11. Posicione o cursor na linha superior da tabela do formulário de entrada clicando no texto Id:.
  12. Clique em Tabela (Table) > Excluir (Delete) > Excluir Linha (Delete Row).
  13. Salve a página.
Opcionalmente, se você quisesse ver qual chave está sendo gerada, poderia excluir o componente de entrada para o número de ID e substituí-lo por um componente de saída ligado à coluna ID de create_record. Nesse caso, a chave gerada automaticamente apareceria na parte superior do formulário mas o usuário não poderia alterá-la.

Testar o Tutorial Concluído

Quando você estiver pronto para publicar seu aplicativo da Web, precisará de um servidor que hospede-o para que os usuários acessem o Web pela Internet. Entretanto, para testar o Web site, você pode utilizar um tempo de execução disponível para simular um servidor para finalidades de teste. Para saber como testar o Web site, consulte Lição 1.3: Testar o Web site.

Ponto de Verificação do Exercício

Você concluiu a Lição 2.4. Nela, você aprendeu como configurar a geração de chaves automatizada.

< Anterior | Próximo >