< Indietro | Avanti >

Lezione 2.4: Utilizzo della generazione automatica delle chiavi

Nella lezione precedente sono state impostate regole di navigazione per accertarsi che gli utenti immettano un ID univoco per il nuovo annuncio pubblicitario classificato. Questo processo è frustrante e non realistico poiché non si desidera che gli utenti del sito trovino un ID univoco tramite prove ed errori. In questa lezione, verrà impostata la generazione di chiavi automatica per fare in modo che il database assegni automaticamente un numero univoco a ogni nuovo record nel database.

La generazione automatica di chiavi è un argomento complesso; in breve, un database può scegliere nuove chiavi se dispone di una tabella speciale riservata alla generazione di chiavi. Una colonna di questa tabella deve contenere un elenco di chiavi non utilizzate (la colonna incrementi) e l'altra colonna deve contenere un elenco di numeri sequenziali, a partire da 1, (la colonnaidentità). Quando il database ha bisogno di una nuova chiave, la preleva dalla riga con il numero 1 della colonna di identità e ottiene quindi una nuova chiave da utilizzare successivamente.

Per impostare la generazione automatica delle chiavi, è necessario apprendere alcuni concetti sul suo funzionamento. Per utilizzare la generazione automatica delle chiavi, il database deve disporre di una tabella appositamente impostata per questo scopo. Questa tabella ha due colonne:
  • La colonna incrementi contiene le chiavi disponibili. Quando al database occorre una nuova chiave univoca, la richiama da questa colonna.
  • La colonna identità è costituita da un elenco di numeri con una sola istanza del numero 1. Questa colonna comunica al database la chiave da selezionare dalla colonna degli incrementi. La colonna identità è la chiave principale della tabella di generazione delle chiavi.

Quando al database occorre una nuova chiave univoca, la cerca nella riga con il valore 1 della colonna identità. Il valore della colonna di incrementi di questa riga contiene la chiave successiva disponibile. Il database utilizza tale chiave e aggiorna la tabella di modo che la volta successiva sarà disponibile una nuova chiave.

Di seguito viene riportato un esempio di tabella per la generazione delle chiavi. Qual è la chiave successiva disponibile per questo database? La risposta è riportata sotto la tabella.
Tabella 1. Tabella di generazione delle chiavi
Colonna delle identità Colonna degli incrementi
3 78
4 3
1 65
2 12
La nuova chiave disponibile in questa tabella è 65 perché nella colonna degli incrementi si trova nella stessa riga del numero 1 nella colonna delle identità.

Dopo il recupero della nuova chiave disponibile dalla tabella, questa viene aggiornata per la volta successiva che servirà una chiave. Il database è anche in grado di richiamare più chiavi alla volta, ottenendo il valore della colonna degli incrementi di più di una riga.

In breve, per il funzionamento della generazione automatica delle chiavi è sufficiente impostare una tabella per la generazione delle chiavi con due colonne: una colonna principale da utilizzare come colonna delle identità e un'altra colonna per la memorizzazione della chiave successiva disponibile. Questa tabella deve essere inizializzata con un solo record, il cui valore della colonna delle identità e 1 e il cui valore della colonna degli incrementi è la prima chiave disponibile da poter utilizzare. Dopo aver proceduto a tale impostazione, è possibile utilizzare la generazione automatica delle chiavi.

Impostazione della generazione automatica delle chiavi

Il database di esempio fornito con questa esercitazione dispone di una tabella per la generazione di chiavi denominata KEYS. Le due colonne di tale tabella, come precedentemente indicato, forniranno un nuovo numero ID per ciascun nuovo record. Con questa procedura verrà impostato il record relazionale create_record per ottenere il relativo numero ID dalla tabella KEYS.
  1. Nella vista Esplora progetti fare doppio clic sulla pagina new_record.jsp.
  2. Nella vista Dati di pagina fare doppio clic sul record relazionale create_record. Viene aperta la finestra Configura record relazionale.
  3. Fare clic su Utilizzare nuovamente la definizione di metadati da un record o elenco di record esistente e su Riempire il record con i dati esistenti dal database, quindi fare clic su Avanti.
  4. Selezionare la connessione al database dall'elenco a discesa e fare clic su Avanti.
  5. Nella finestra Configura record relazionale, a destra è presente un elenco di collegamenti. Fare clic su Genera chiave automaticamente. Viene aperta la finestra Generazione chiave.
  6. Selezionare Utilizza generazione chiave automatica.
  7. Fare clic per espandere l'elenco W5SAMPLE, quindi fare clic sulla tabella KEYS.
  8. Nel campo Selezionare una colonna di identità, fare clic su KEY_ID.
  9. Nel campo Selezionare una colonna di incrementi fare clic su NEXT_KEY.

    Poiché è necessaria una sola chiave per l'ID dell'annuncio pubblicitario, l'impostazione "Chiavi recuperate contemporaneamente" verrà lasciata su 1. Se fossero necessarie più chiavi, con questa impostazione il database selezionerebbe tutte le chiavi contemporaneamente.

    La finestra Configura oggetto dati appare simile alla seguente:

    Finestra Configura oggetto dati.

  10. Fare clic su Chiudi per chiudere la finestra Generazione chiave, quindi su Fine per applicare le modifiche. Il campo ID viene quindi generato automaticamente per ciascun nuovo record. Ora è necessario rimuovere il campo di input ID in modo che l'utente non possa immettere un valore.
  11. Posizionare il cursore nella riga superiore della tabella del modulo di input facendo clic sul testo Id:.
  12. Fare clic su Tabelle > Elimina > Elimina riga.
  13. Salvare la pagina.
Se si desidera controllare quale chiave viene generata, è possibile invece eliminare il componente di input per il numero ID e sostituirlo con un componente di output associato alla colonna ID di create_record. La chiave generata automaticamente verrà quindi visualizzata nella parte superiore del modulo, ma l'utente non potrà modificarla.

Verificare l'esercitazione completata

Quando l'applicazione Web è pronta per essere pubblicata, è necessario un server su cui installarla, in modo che gli utenti possano accedere al sito Web tramite Internet. Tuttavia, per verificare il sito Web, è possibile utilizzare un runtime disponibile per simulare un server a scopo di verifica. Per le procedure di verifica del sito Web, fare riferimento a Lezione 1.3: Verifica del sito Web.

Riepilogo di controllo della lezione

La lezione 2.4 è terminata. In questa lezione si è appreso come impostare la generazione automatica delle chiavi.

< Indietro | Avanti >