Esta mañana se ha producido un hecho desagradable en el colegio. Ha llegado D. Rafael Gómez García, el padre de la alumna Paula Gómez, bastante enfadado y quejándose de que no habían llegado las notas de su hija.
No sabías darle una explicación, y cuando le estabas apuntando que quizás Correos había extraviado la carta, ha llegado D. Rafael Gómez Pérez, el padre de Rocío Gómez diciendo que a él le había llegado el boletín de notas de Paula y no el de su hija.
Los dos se han enfadado bastante y tú has pasado un mal rato. Además, no sabes qué puede haber pasado, ¡con lo bien que iba todo con la hoja de cálculo...!
Ejemplo o ejercicio resuelto
Repasas el proceso de envío de los boletines, que es el siguiente:
imprimiste los boletines por orden alfabético de los alumnos.
ordenaste los datos de la hoja de cálculo por orden alfabético de los alumnos, ya que así es como estaban ordenados los boletines.
copiabas los datos de los padres para pegarlos con Writer en el sobre para enviar los boletines.
para seguir copiando los demás datos buscabas la fila por el nombre del padre y te movías por la fila hasta el campo que querías copiar.
imprimías el sobre
introducías el boletín en el sobre
y se enviaba...
Mira la tabla mientras repasas los pasos del proceso.
Ejemplo de tabla Alumnos en una hoja de cálculo
Imagen de producción propia con licencia Creative Commons.
¿Cuál puede haber sido el motivo del error?
Parece claro, tu error fue que para identificar la fila, o sea el registro, buscabas el nombre del padre, y como había más de un padre con el mismo nombre, te confundiste de fila y copiaste los datos mal.
Buscando una solución, podías haberte fijado en el dato DNI del alumno, pero es un número tan largo que es difícil recordarlo mientras copias y pegas todos los datos.
Una vez más se pone de manifiesto que la hoja de cálculo puede ayudar para pequeñas tareas, pero que no es la solución.
Pero la gran lección del día ha sido que: necesitamos un campo que identifique cada registro sin que pueda dar lugar a confusiones, que sea fácil de ordenar y de localizar.
Importante
Para resolver tu problema se crearon los campos "llave primaria" (también se les llama "clave primaria"), estos campos tienen la función de identificar unívocamente cada registro de la tabla, tanto los registros actuales como los futuros. Es decir, si en una tabla existe un registro cuya clave primaria tiene un valor igual a "948", debe ser completamente imposible que haya un segundo registro con el mismo valor, ni ahora ni en el futuro.
Otro detalle importante, como es el campo que sirve para identificar cada registro es imposible crear un registro sin darle un valor al campo clave principal, o sea ¡no puede quedar vacío!
Ejemplo o ejercicio resuelto
Un ejemplo que seguro que entiendes con facilidad es el del nº del DNI, como sabes cada persona tiene uno diferente, ¿lo usarías como clave primaria?
En general no se recomieda.
Imagina por ejemplo que tienes que añadir a personas inmigrantes que carecen de él, en ese caso tendrías que dejar el campo vacío, y si eso ocurre ya no podrías identificar unívocamente el registro de esa persona.
Por eso la clave primaria no puede admitir valores nulos (null), y por tanto a esas personas sin DNI no podrías añadirlas a tu base de datos.
Importante
Resumiendo, los campos clave primaria deben cumplir dos condiciones:
su valor no se puede repetir
no puede admitir valores nulos (null)
Curiosidad
Otro error frecuente es usar el código postal como clave primaria para
los municipios: craso error, hay municipios que por su tamaño tienen
varios códigos postales, y hay códigos postales que son compartidos por
varios municipios pequeños.
Curiosidad
Los campos clave o llave primaria no tienen mucha utilidad para el usuario de una base de datos, poco te afectará que el registro de la alumna Paula González tenga en el campo clave primaria un valor de "8" o de "38". Estos campos son útiles para el Sistema de Gestión de Bases de Datos.
Por este motivo, y para que se cumplan las dos condiciones que hemos apuntado antes, estos campos se suelen crear de tipo Entero (integer), y con la propiedad "Valor Automático" como "sí". Valor automático significa que el propio Sistema Gestor de Bases de Datos va a asignar un valor a ese campo sin intervención del usuario (trabajo que te ahorras). Asigna un valor que va aumentando de uno en uno.
A estos campos se les suele poner el nombre "ID", "Id" o "ID_NombreTabla", por ejemplo "ID_Alumnos".
Autoevaluación
Supón que en una tabla llegaste a añadir 3.389 registros, y que en un momento dado decidiste vaciarla (borrar todos los registros que tenía) y comenzar a introducir otros registros.
¿Qué valor tomará el campo clave primaria cuando introduzcas el primero de esos nuevos registros?
Sugerencia
Piénsalo bien, y razona la respuesta.
El valor del primer registro que se introduzca después de haber borrado los anteriores
Será = "1"
Será = "3.390"
Será = "3.389"
Será = "0"
¡Incorrecto! En ese caso dos registros habrían tenido el mismo valor, un registro actual y otro anterior, y eso no debe ocurrir.
iCorrecto! Los campos de valor automático comienzan con el valor "1", si había 3.389 registros, el último tenía como valor el "3.389", así que el primero de "la nueva era" le daría el valor de "3.389".
Vas camino de ser un gran diseñador de Bases de Datos ;-)
¡Huy!, casi pero no, los campos de valor automático comienzan con el valor "1", aunque en otros gestores de bases de datos (Base de Libre Office, por ejemplo) sí que comienzan en "0", por tanto el útlimo registro tenía como valor el "3.389", así que el primero de "la nueva era" le daría el valor de "3.390"
¡Incorrecto! En Access el primer registro autonumérico es "1", además si comenzase de nuevo por el principio dos registros habrían tenido el mismo valor, un registro actual y otro anterior, y eso no debe ocurrir.
Este es un buen momento para que veas el siguiente videotutorial que te muestra cómo crear una tabla en Access.
Ahora mira cómo se puede crear importando los datos desde una hoja de cálculo de Excel.
Tarea
Ha llegado la hora de que crees tu propia base de datos, guárdala con el nombre "GestionColegio", y crea la tabla "Alumnos" con el diseño que se infiere de la hoja de cálculo que tienes al principio de este apartado. Luego ábrela y añade los datos, si lo deseas puedes añadir los datos inventados de algunos alumnos más.