En una base de datos relacional como Microsoft Office Access 2007, la información se divide en tablas distintas en función del tema. A continuación, se utilizan relaciones de tablas y claves principales para indicar a Access cómo debe volver a reunir la información. Este enfoque funciona porque una vez definida la clave principal, se puede utilizar en otras tablas para hacer referencia a la tabla que contiene la clave principal.
La Clave Principal: Fundamento de las Relaciones
Cada tabla de la base de datos debe tener un campo o un conjunto de campos que identifiquen inequívocamente cada registro almacenado en la tabla. Este campo recibe el nombre de clave principal. Una clave principal es un campo o conjunto de campos de la tabla que proporcionan a Microsoft Office Access 2007 un identificador exclusivo para cada fila.
Características de una Clave Principal Efectiva
- En primer lugar, debe identificar inequívocamente cada fila.
- En segundo lugar, nunca debe estar vacío ni ser nulo (siempre debe contener un valor).
- En tercer lugar, casi nunca (o, preferiblemente, nunca) debe cambiar.
Cualquier campo al que le falten una o más de las características necesarias para que se le considere una clave correcta, representa una elección poco adecuada de clave principal. La parte de palabras está sujeta a cambios y, como tal, puede suponer una carga en las tareas de mantenimiento. Podría prestar a confusión si la parte de palabras se repite como un campo independiente.
Ventajas de Establecer una Clave Principal
Establecer una clave principal aporta las siguientes ventajas:
- Acelera la ejecución de las consultas. Esto se aprecia cuando trabajamos con tablas de miles y miles de registros.
- Al visualizar los registros de una tabla, aparecerán inicialmente ordenados por los valores de la clave principal.
- Access impide introducir un registro con la misma clave principal que otro ya existente. Evita por lo tanto duplicidades.
- Las relaciones entre tablas precisan generalmente involucrar un campo clave principal.
Es más, si cuando creamos una tabla, no existe un campo definido como Clave principal, al cerrar la pantalla de diseño de la tabla, Access nos propone crear una clave principal y en ese caso Access inserta un campo como primer campo en la tabla llamado Id, de tipo Autonumeración, lo define como indexado Sí y SIN duplicados y le adjudica la propiedad de Clave principal. Access crea automáticamente un índice para la clave principal, que permite agilizar las consultas y otras operaciones. Los valores de los campos de una clave principal no se repetirán nunca a lo largo de la tabla.
Lea también: IVA 21% Excel
Procedimiento para Establecer una Clave Principal
Para establecer una clave principal en una tabla los pasos a seguir son:
- En la Vista Diseño, seleccionar la fila o filas de los campos cuyo valor, o combinación de ellos se desea utilizar como clave principal. Para ello hay que hacer clic sobre el selector de fila, situado a la izquierda de la columna Nombre del campo, y, si fuese necesario, mantener pulsada la tecla Ctrl para seleccionar más de una fila o campo.
- Pulsar sobre el botón Clave principal del grupo Herramientas, de la Ficha Diseño de tabla.
- En el selector de la fila o filas seleccionadas se visualizará un icono en forma de llave, identificando el o los campos que se constituyen como clave principal.
Si cuando se ha terminado de definir la estructura de una tabla desde el panel de diseño de tabla, se realiza la operación de cerrar sin haber definido una clave principal, Access pregunta al usuario/a si se desea definir una clave principal mediante el mensaje: "No hay ninguna clave principal definida". Al responder que sí a dicha pregunta, asignará a dicho campo el "marchamo" de clave principal.
Si no puede identificar una clave correcta, cree un campo Autonumeración para usarlo como clave. Un campo Autonumeración genera un valor para sí mismo automáticamente cuando cada registro se guarda por primera vez. Por lo tanto, un campo Autonumeración reúne las tres características de una clave principal correcta. Una columna con el tipo de datos Autonumérico suele ser una buena clave principal, porque garantiza que no habrá dos Id. En algunos casos, tal vez considere conveniente utilizar dos o más campos juntos como clave principal de una tabla. Por ejemplo, una tabla Detalles de pedidos que contenga artículos de línea de pedidos tendría dos columnas en su clave principal: Id. de pedido e Id. de producto.
La Clave Externa (Foránea): Conectando Tablas
Una clave externa es, sencillamente, la clave principal de otra tabla. Access utiliza campos de clave principal para asociar rápidamente datos de varias tablas y combinarlos de forma que tenga sentido. Puede incluir los campos de clave principal en otras tablas para hacer referencia a la tabla que sea origen de la clave principal. En esas tablas, los campos se denominan claves externas.
Por ejemplo, un campo Id. de cliente de la tabla Clientes también podría aparecer en la tabla Pedidos. En la tabla Clientes, esta es la clave principal. En la tabla Pedidos se denomina clave externa. Las relaciones entre tablas y claves principales se utilizan para indicar a Access cómo debe volver a reunir la información.
Lea también: Guía IVA reducido
Establecimiento de Relaciones y Claves Foráneas en Access 2007
Las relaciones entre tablas precisan generalmente involucrar un campo clave principal. La declaración de una clave foránea se realiza implícitamente al establecer una relación entre dos tablas, donde el campo de una tabla (la clave principal) se hace referencia en la otra tabla (la clave foránea).
Un usuario puede establecer la FK mediante el Asistente para búsquedas de Access como el campo PK de la tabla de origen, por ejemplo, el IdDatosGenerales de una tabla DatosGenerales se establece como clave foránea en una tabla DatosParticulares.
Consideraciones al Trabajar con Claves Foráneas en Formularios
Al diseñar un esquema de formularios complejo con tablas relacionadas, pueden surgir desafíos, incluso si las relaciones en el nivel de tabla están establecidas correctamente. Por ejemplo, al cargar un formulario, y al abrir el siguiente que tiene que estar relacionado con el anterior, puede que no se consiga que traiga el ID de la tabla del formulario anterior.
La carga de datos puede ser en tiempo real, donde al finalizar un formulario se continúa con otro. En tales escenarios, el campo que actúa como clave foránea en el segundo formulario podría quedar en blanco, y el SELECT que genera la relación no devolver nada. Si uno mira los datos de la primera tabla, están, pero no son datos pregrabados o de una lista.
Esta situación puede ser más compleja con una estructura de carga en árbol, donde de un ID determinado pueden depender N cargas de un mismo formulario dependiente a través de dicho ID como FK. Esto implica cargar una serie de datos del formulario, luego otra serie, luego otra, todas con el mismo ID de la tabla del formulario anterior como FK en la tabla del formulario actual.
Lea también: ¿Cómo localizar tus XML del SAT?
