5. Claves Externas
Vamos a ver una entidad que el usuario corriente sólo ve en parte: El listado total de los préstamos de los libros
Sólo lo ve en parte porque cuando la biblioteca presta un libro en la Ficha de lectura sólo están anotados aquellos registros relativos a ese libro en particular, pero en realidad se lleva el control en una tabla general con todos los préstamos realizados. Sería algo así:

Cada ficha de lectura de un libro es una parte de la tabla general prestamos y está formada por los registros correspondientes al mismo libro, es decir, los registros que tienen el mismo valor para Ref_libro
Lo que nos aparece en la Ficha de lectura que acompaña al libro es nada más que una consulta a esta tabla. Es como si le hiciésemos una pregunta ¿ quién y cuándo ha leído el libro con referencia X?
Si miramos el estado del libro 1459, veremos que se ha prestado tres veces, podríamos averiguar las personas que lo han leído hasta ahora y también que en estos momentos lo tiene el lector 2525 porque no lo ha devuelto todavía.
Si quisiéramos ver más detalles de los lectores o del libro, buscaríamos en la tabla lectores y en la tabla libros los datos correspondientes a los Ref_lector y Ref_libro. de cada registro.
La tabla prestamos es básica en el control de la biblioteca, se pueden realizar consultas para saber qué libros están pendientes de devolución, qué lectores son los más activos, qué ha leído cada lector, qué libros son los más solicitados, podemos diseñar un control que nos avise si ha pasado un determinado tiempo y el libro está todavía sin devolver.....
Para realizar estas consultas es indispensable que al crear un registro en esta tabla préstamos exista ya el registro del lector en la tabla lectores y también el registro del libro en la tabla libros.
Aplicando la lógica se ve fácilmente que la biblioteca no podrá prestar un libro que no tiene y que no se lo prestará a una persona que no tenga dada de alta . Son dos condiciones que se tienen que cumplir a la vez: tener el libro y tener registrado al lector para que se pueda recoger una ocurrencia en la entidad préstamos
Tanto la Ref_libro como la Ref_lector son Claves externas de la tabla préstamos. También hemos definido aquí una Clave principal de manera que para cada registro haya un sólo valor único, no se repita ningún valor y el campo se auto incremente automáticamente, pero ésta vez no es visible al usuario. El identificador único de los registros de esta tabla se utiliza en operaciones internas y no es necesario que se muestre al usuario corriente.
Las claves externas adquieren un significado especial en la definición de las relaciones entre las tablas, determinan el tipo de relación existente entre ellas por lo que deben cumplir ciertas condiciones:
En una tabla sólo se pueden recoger como clave externa aquellos valores que ya existan como clave principal en otra tabla.
Los nombres del campo de la clave principal y de la clave externa en un misma tabla, no deben ser idénticos.
Junto con las claves principales pueden utilizarse otras claves índice que sirven para clasificar rápidamente los campos y para encontrar los datos, aumentando la velocidad de las consultas por ese dato. Sólo se debe aplicar una clave índice cuando exista un problema real de velocidad, si una vez definido el nuevo índice no se obtiene el aumento de velocidad deseado hay que borrarlo para no perjudicar el rendimiento general de la base de datos.
Para crear una clave índice utilizamos los atributos KEY, INDEX y UNIQUE, éste último establece que el campo posea valores únicos y al intentar introducir un valor repetido dará una notificación de error.
Autor y licencia de 'Introducción a las Bases de Datos - Claves Externas'
Wikis relacionados con 'Introducción a las Bases de Datos - Claves Externas'
Qué son y como funcionan las bases de datos. Trataremos conceptos muy básicos que os...
Más »
Este curso contiene cuatro actividades. Publico la primera actividad.
Se ofrece una panorámica general sobre el surgimiento de los gestores personales de bases de...
Más »
Aquí dejo una clase que hice hace tiempo para tratar bases de datos MYSQL.
Un sistema informático utiliza ordenadores para almacenar datos, procesarlos y ponerlos a disposición de quien...
Más »
¿Estás seguro de que deseas eliminar este capítulo?