< Indietro | Avanti >

Lezione 2.4: Utilizzo della generazione chiavi automatica

Nella lezione precedente, sono state impostate le regole di navigazione, per verificare che gli utenti abbiano immesso un ID univoco per il nuovo annuncio pubblicitario. Questo procedimento è frustrante e poco realistico, in quanto è impensabile gli utenti del sito individuino un ID univoco attraverso un processo e un errore. In questa lezione, verrà impostata la generazione chiavi automatica, in modo che il database assegni automaticamente un numero univoco per ciascun nuovo record nel database.

La generazione chiavi automatica è un argomento complesso ma, in breve, un database può scegliere nuove chiavi, se presenta una tabella speciale riservata alla generazione chiavi. Questa tabella deve avere un elenco di chiavi non utilizzate in una colonna (la colonna di incremento) e un elenco di numeri in ordine a partire da 1 nell'altra colonna (la colonna di identità). Quando il database ha bisogno di una nuova chiave, richiama la chiave dalla riga con 1 nella colonna di identità e dispone così di una nuova chiave, pronta per la volta successiva.

Per impostare la generazione chiavi automatica, è necessario conoscere alcuni dettagli sul suo funzionamento. Per utilizzare la generazione chiavi automatica, il database deve avere un insieme di tabelle preposte a tale scopo. Questa tabella presenta due colonne:
  • La colonna di incremento archivia le chiavi disponibili. Quando il database ha bisogno di una nuova chiave univoca, richiama la chiave da questa colonna.
  • La colonna di identità è un elenco di numeri con solo un'istanza del numero 1. Questa colonna indica al database la chiave da selezionare dalla colonna di incremento. La colonna di identità è la chiave primaria della tabella di generazione chiavi.

Quando il database ha bisogno di una nuova chiave univoca, individua la riga con un valore pari a 1 per la colonna di identità. Il valore della colonna di incremento di questa riga contiene la successiva chiave disponibile. Il database utilizza questa chiave ed aggiorna la tabella in modo che una nuova chiave sia disponibile la volta successiva.

Di seguito viene riportato un esempio di una tabella di generazione chiavi. Qual è la successiva chiave disponibile per questo database? La risposta si trova al di sotto della tabella.
Tabella 1. Tabella di generazione chiavi
Colonna di identità Colonna di incremento
3 78
4 3
1 65
2 12
La successiva chiave disponibile in questa tabella è 65, in quanto questa chiave (nella colonna di incremento) si trova nella riga corrispondente a 1 nella colonna di identità.

Quando la successiva chiave disponibile viene richiamata dalla tabella, la tabella viene aggiornata per la volta successiva in cui è necessaria una chiave. Il database può inoltre richiamare più chiavi contemporaneamente, utilizzando il valore della colonna di incremento di più di una riga.

In breve, per il funzionamento della generazione chiavi automatica, è necessario che una tabella di generazione chiavi sia impostata con due colonne: una colonna chiave primaria da utilizzare come colonna di identità e una colonna per l'archiviazione della successiva chiave disponibile. Questa tabella deve essere inizializzata con un record il cui valore della colonna di identità è 1 e il cui valore della colonna di incremento è la prima chiave disponibile da utilizzare. Una volta impostato questo record, si è pronti ad utilizzare la generazione chiavi automatica.

Impostazione della generazione chiavi automatica

Il database di esempio fornito con questa esercitazione presenta una tabella di generazione chiavi denominata KEYS. Le due colonne, come descritto in alto, forniscono un nuovo numero ID per ciascun nuovo record. In questa procedura, verrà impostato il record relazionale create_record, per richiamare il numero ID dalla tabella KEYS.
  1. Fare doppio clic sulla pagina new_record.jsp nella vista Esplora enterprise.
  2. Fare doppio clic sul record relazionale create_record nella vista Dati di pagina. Viene visualizzata la finestra Configurazione record relazionale.
  3. Fare clic su Riutilizza definizione metadati da un record o elenco record esistente e su Inserisci nel record dati esistenti dal database, quindi fare clic su Avanti.
  4. Selezionare la connessione al database dall'elenco discesa e fare clic su Avanti.
  5. Nella finestra Configurazione record relazionale, a destra, si trova un elenco di link. Fare clic su Genera chiave automaticamente. Viene visualizzata 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 Selezione colonna di identità, fare clic su KEY_ID.
  9. Nel campo Selezione colonna di incremento, fare clic su NEXT_KEY.

    Poiché è necessaria un'unica chiave per l'ID dell'annuncio, l'impostazione "Chiavi richiamate contemporaneamente" viene lasciata su 1. Se sono necessarie più chiavi, questa impostazione consente al database di selezionare tutte le chiavi contemporaneamente.

    La finestra Configurazione oggetto dati dovrebbe essere simile alla seguente:

    Finestra Configurazione oggetto dati.

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

Test dell'esercitazione completata

Una volta pronti alla pubblicazione dell'applicazione Web, è necessario un server che ospiti l'applicazione Web, in modo che gli utenti possano accedere al sito Web attraverso Internet. Per testare il sito Web, tuttavia, è possibile utilizzare un runtime disponibile per simulare un server per scopi di test. Per informazioni su come eseguire il test del sito Web, fare riferimento a Lezione 1.3: Test del sito Web.

Punto di controllo della lezione

La lezione 2.4 è stata completata. In questa lezione è stato illustrato come impostare la generazione chiavi automatica.

Feedback
< Indietro | Avanti >