Como ya sabrá, las bases de datos utilizan tablas para organizar la información. (Si no está familiarizado con los conceptos básicos de bases de datos, lea ¿Qué es una base de datos?) Cada tabla consta de un número de filas, cada una de las cuales corresponde a un único registro de base de datos. Entonces, ¿cómo es que las bases de datos mantienen todos estos registros en orden? Es a través del uso de llaves.
Claves primarias
El primer tipo de llave que discutiremos es la llave primaria. Cada tabla de base de datos debe tener una o más columnas designadas como clave primaria. El valor de esta clave debe ser único para cada registro de la base de datos.
Por ejemplo, supongamos que tenemos una tabla llamada Empleados que contiene información de personal para cada empleado de nuestra empresa. Necesitaríamos seleccionar una llave primaria apropiada que identificara de manera única a cada empleado. Su primer pensamiento podría ser usar el nombre del empleado. Esto no funcionaría muy bien porque es concebible que se contraten dos empleados con el mismo nombre. Una mejor opción podría ser utilizar un número de identificación de empleado único que usted asigne a cada empleado cuando sea contratado. Algunas organizaciones optan por utilizar números de Seguro Social (o identificadores gubernamentales similares) para esta tarea porque cada empleado ya tiene uno y se garantiza que serán únicos. Sin embargo, el uso de los Números de Seguro Social para este propósito es altamente controversial debido a preocupaciones de privacidad. (Si usted trabaja para una organización gubernamental, el uso de un número de seguro social puede incluso ser ilegal bajo la Ley de Privacidad de 1974.) Por esta razón, la mayoría de las organizaciones han cambiado al uso de identificadores únicos (identificación de empleados, identificación de estudiantes, etc.) que no comparten estas preocupaciones de privacidad.
Una vez que se decide por una clave primaria y se configura la base de datos, el sistema de gestión de la base de datos hará cumplir la singularidad de la clave. Si intenta insertar un registro en una tabla con una clave primaria que duplica un registro existente, la inserción fallará.
La mayoría de las bases de datos también son capaces de generar sus propias claves primarias. Microsoft Access, por ejemplo, puede configurarse para utilizar el tipo de datos AutoNumber para asignar un ID único a cada registro de la tabla. Si bien es efectivo, esta es una mala práctica de diseño porque le deja con un valor sin sentido en cada registro de la tabla. ¿Por qué no usar ese espacio para guardar algo útil?
Claves Extranjeras
El otro tipo es la clave externa, que se utiliza para crear relaciones entre tablas. Las relaciones naturales existen entre las tablas en la mayoría de las estructuras de la base de datos. Volviendo a nuestra base de datos de Empleados, imagínese que quisiéramos añadir una tabla con información departamental a la base de datos. Esta nueva tabla podría llamarse Departamentos y contendría una gran cantidad de información sobre el departamento en su conjunto. También nos gustaría incluir información sobre los empleados del departamento, pero sería redundante tener la misma información en dos tablas (Empleados y Departamentos). En cambio, podemos crear una relación entre las dos tablas.
Supongamos que la tabla Departamentos utiliza la columna Nombre del departamento como clave primaria. Para crear una relación entre las dos tablas, añadimos una nueva columna a la tabla Empleados llamada Departamento. A continuación, rellenamos el nombre del departamento al que pertenece cada empleado. También informamos al sistema de gestión de la base de datos que la columna Departamento de la tabla Empleados es una clave externa que hace referencia a la tabla Departamentos. La base de datos hará cumplir la integridad referencial garantizando que todos los valores de la columna Departamentos de la tabla Empleados tengan las entradas correspondientes en la tabla Departamentos.
Tenga en cuenta que no existe ninguna restricción de unicidad para una clave externa. Podemos (y lo más probable es que lo hagamos) tener más de un empleado que pertenezca a un solo departamento. Del mismo modo, no es necesario que una entrada de la tabla Departamentos tenga una entrada correspondiente en la tabla Empleados. Es posible que tengamos un departamento sin empleados.
Para obtener más información sobre este tema, consulte Creación de claves externas.