< Anterior | Siguiente >

Lección 2.4: Utilizar la generación automática de claves

En la lección anterior ha configurado las reglas de navegación para asegurar que los usuarios especifiquen un ID exclusivo para el anuncio clasificado nuevo. Este proceso es frustrante y no es realista porque no querrá que los usuarios del sitio busquen un ID exclusivo a través del procedimiento de ensayo y error. En esta lección, configurará una generación automática de claves para que la base de datos asigne automáticamente un número exclusivo a cada registro nuevo de la base de datos.

La generación automática de claves es un tema complejo pero, para abreviar, una base de datos puede elegir nuevas claves si tiene una tabla especial reservada. Esta tabla debe tener una lista de las claves sin utilizar en una columna (la columna incrementor) y, en la otra columna, una lista ordenada de números comenzando por 1 (la columna identity.) Cuando la base de datos necesite una clave nueva, la toma de la fila cuya columna identity tiene el valor 1, y deja preparada la clave nueva para la próxima vez.

Para configurar la generación automática de claves hay que saber algunas cosas sobre su funcionamiento. Para utilizar la generación automática de claves, la tabla debe tener una tabla aparte para este cometido. Esta tabla tiene dos columnas:
  • La columna incrementor almacena claves disponibles. Cuando la base de datos necesita una clave nueva exclusiva, toma una de esta columna.
  • La columna identity es una lista de números con una sola instancia del número 1. Esta columna indica a la base de datos la clave a seleccionar de la columna incrementor. La columna identity es la clave primaria de la tabla de generación de claves.

Cuando la base de datos necesita una nueva clave única, busca la fila cuyo valor de la columna identity es 1. El valor de la columna incrementor correspondiente a dicha fila es la siguiente clave disponible. La base de datos utiliza esta clave y actualiza la tabla de modo que la próxima vez habrá una nueva clave disponible.

A continuación se muestra un ejemplo de una tabla de generación de claves. ¿Cual es la próxima clave disponible para esta base de datos?. La respuesta está debajo de la tabla.
Tabla 1. Tabla de generación de claves
Columna Identity Columna Incrementor
3 78
4 3
1 65
2 12
La siguiente clave disponible en esta tabla es 65, por que dicha clave (en la columna incrementor) es la que se encuentra en la fila cuyo valor de la columna identity es 1.

Una vez extraída la nueva clave de la tabla, la tabla se actualiza la próxima vez que se necesite una tabla. La base de datos también puede recuperar varias claves de una sola vez, tomando el valor de la columna incrementor de varias filas.

En resumen, para que la generación automática de claves funcione, tan sólo es necesario configurar una tabla de generación de claves con dos columnas: una columna primaria que se utilizará como columna identity y otra para almacenar la siguiente clave disponible. Esta tabla se debe inicializar con un registro cuyo valor de la columna identity sea 1 y cuyo valor de la columna incrementor sea la primera clave disponible a utilizar. Una vez realizada esta configuración, está preparado para utilizar la generación automática de claves.

Configurar la generación de claves automática

La base de datos de ejemplo que se proporciona para esta guía de aprendizaje tiene una tabla de generación de claves denominada KEYS. Sus dos columnas, según se ha comentado antes, proporcionan un número de ID para cada registro nuevo. En estos pasos configuraremos el registro relacional create_record para que tome su número de ID de la tabla KEYS.
  1. Realice una doble pulsación sobre la página new_record.jsp en la vista Explorador de proyectos.
  2. Realice una doble pulsación sobre el registro relacional create_record en la vista Datos de página. Se abrirá la ventana Configurar registro relacional.
  3. Pulse Reutilizar definición de metadatos de un registro o lista de registros existente y Llenar el registro con los datos existentes en la base de datos y pulse Siguiente.
  4. Seleccione la conexión de base de datos de la lista desplegable y pulse Siguiente.
  5. En la ventana Configurar registro relacional, a la derecha hay una lista de enlaces. Pulse Generar clave automáticamente. Se abre la ventana Generación de claves.
  6. Seleccione Utilizar Generación automática de claves.
  7. Pulse para expandir la lista W5SAMPLE y pulse la tabla KEYS.
  8. En el campo Seleccionar columna identity, pulse KEY_ID.
  9. En el campo Seleccionar columna incrementor, pulse NEXT_KEY.

    Como sólo se necesita una clave para el ID del anuncio, dejaremos "Número de claves extraídas cada vez" configurado en 1. Si fueran necesarias varias claves, este valor haría que la base de datos seleccionara todas de una sola vez.

    La ventana Configurar objeto de datos tendrá este aspecto:

    Ventana Configurar objeto de datos.

  10. Pulse Cerrar para cerrar la ventana Generación de claves y pulse Finalizar para aplicar los cambios. A partir de ahora, el campo ID de cada registro nuevo se generará automáticamente. Ahora debe eliminar el campo de entrada ID para que el usuario no pueda especificar un valor.
  11. Coloque el cursor en la fila superior de la tabla del formulario de entrada, pulsando en el texto Id:.
  12. Pulse Tabla > Suprimir > Suprimir fila.
  13. Guarde la página.
Si quisiera ver la clave que se genera automáticamente, puede sustituir el componente de entrada del número de ID por un componente de salida enlazado a la columna ID de create_record. Así, la clave que se genera automáticamente aparecerá en la parte superior del formulario, pero el usuario no la podrá cambiar.

Probar la guía de aprendizaje finalizada

Cuando esté preparado para publicar la aplicación Web, será necesario un servidor que la albergue de forma que los usuarios puedan acceder al sitio Web a través de Internet. Sin embargo, para probar el sitio Web, puede utilizar un tiempo de ejecución disponible para simular un servidor a efectos de prueba. Hallará instrucciones para probar el sitio web en la Lección 1.3: Probar el sitio Web.

Punto de comprobación de lección

Ha terminado la Lección 2.4. En esta lección ha aprendido a configurar la generación de claves automática.

< Anterior | Siguiente >