En unidades anteriores hemos visto que las tablas están formadas por campos que pueden tener diferentes tipos, aunque falta por indicar qué campo es el más importante, es decir, la clave primaria. En esta unidad aprenderemos el concepto de clave primaria y cómo definirla en cada tabla que creemos en una base de datos.
La clave principal o primaria proporciona un valor único para cada fila de la tabla y nos sirve de identificador de registros de forma que con esta clave podamos saber sin ningún tipo de equivocación el registro al cuál identifica. No podemos definir más de una clave principal, pero podemos tener una clave principal compuesta por más de un campo. Además, ésta nos permitirá, en futuras unidades, acceder a los datos de otras tablas.
Por ejemplo, si tenemos una tabla con los datos de contactos de nuestros amigos, podríamos estar seguros que, usando su número del Documento Nacional de Identidad (DNI), ninguno de ellos tendría el mismo valor en dicho campo. En cambio, el campo nombre para nuestros amigos podría repetirse.
LA CLAVE PRIMARIA DEBE CUMPLIR 3 CONDICIONES:
El campo o campos que forman la clave principal de una tabla no puede contener valores nulos. Es decir, siempre tiene que tomar un valor para cada fila de la tabla.
No pueden haber dos filas en la tabla con el mismo valor en el campo o campos de la clave principal. Es decir, dicho valor no puede repetirse en ninguna fila.
Sólo puede haber una clave principal por tabla.
Cuando un campo cumple estas dos propiedades (sin nulos y sin repetidos) se le llama Clave Primaria o Clave Principal y toda tabla debe tener una.
Cuando intentemos insertar una nueva fila con valores que infrinjan estas dos reglas, el sistema no nos deja crear la nueva fila y nos devuelve un error.
1.1. Ejemplos prácticos
Vamos a ver con ejemplos prácticos qué significa el concepto de clave primaria.
1.1.1. Clave primaria tabla ESTUDIANTE
En una tabla en la que se quiere almacenar los datos de un estudiante tenemos:
Nombre
Apellidos
Edad
Curso
Número de expediente
Grupo
¿Qué campo seleccionaríamos como clave primaria? Seleccionaríamos Número de expediente, ya que este número es único, no se puede repetir y no puede contener valores nulos (todo estudiante tiene un número de expediente asociado).
1.1.2. Clave primaria tabla LIBROS
En una tabla en la que se quiere almacenar los datos de una serie de libros tenemos:
Título
Editorial
ISBN
Año
Autor
¿Qué campo seleccionaríamos como clave primaria? Seleccionaríamos ISBN, ya que este número es único, no se puede repetir y no puede contener valores nulos (todo libro publicado tiene un código ISBN).
Ejercicio
Cuestionario
Contesta a las preguntas del cuestionario.
Contenidos
2. Definición de la clave primaria
Para asignar una clave principal a un campo, seguiremos los siguientes pasos:
Hacer clic sobre el nombre del campo que será clave principal.
Situarnos sobre la columna gris de la izquierda y con el botón derecho del ratón elegir Clave principal.
A la izquierda del nombre del campo aparecerá una llave indicándonos que dicho campo es la clave principal de la tabla.
Ejercicio
Tabla LIBRO: Clave primaria
En el caso de nuestra tabla LIBRO, tenemos el campo numérico ID para diferenciar un libro de otro ya que, por ejemplo, podemos tener dos ejemplares del mismo libro, o dos libros con el mismo título o dos libros con el mismo autor o dos libros de la misma editorial. El campo ID es el que identificará cada uno de los libros que se introduzcan en la base de datos; es decir, nos va a servir para distinguir un libro de otro inequívocamente.
¿Podríamos elegir como clave primaria el código "ISBN", ya que es un código único que distingue un libro de otro?
En este caso particular NO. En una biblioteca podemos tener más de un ejemplar del mismo libro, por lo que no nos serviría, ya que todos los ejemplares tendrían el mismo ISBN y, por tanto, sería un valor repetido. En esta situación, seleccionamos el campo ID porque es único.
Tabla LIBRO: Edición de datos
Abre la base de datos "biblioteca".
Haz clic en el botón Tablas de la Barra de Base de datos.
Selecciona la tabla LIBRO.
Haz doble clic sobre la tabla o clic en el icono , para entrar en modo edición de datos.
Inserta un registro duplicado en la tabla LIBRO, es decir, un nuevo libro con el mismo ID que otro. Por ejemplo:
ID
Título
Apellidos
Nombre
Soporte
1
Don Quijote de la Mancha
De Cervantes Saavedra
Miguel
Papel
1
Los cuentos de la Alhambra
Irving
Washington
Papel
Al insertarlo daría error porque ya existe un libro con el mismo ID. Si se pudiera repetir, crearíamos una inconsistencia de datos, ya que si nos referimos al ID=1, no sabríamos con qué libro se corresponde.
Comprueba si se cumplen las restricciones de la clave primaria (debe mostrarse un mensaje de error de valor duplicado).
Pulsa Aceptar.
Haz clic a la izquierda sobre el lápiz con el botón derecho del ratón y elige la opción Deshacer: entrada de datos. También puedes cerrar la tabla sin guardar los datos.
Cierra la tabla LIBRO.
Contenidos
3. Edición de tablas
Lógicamente, Base nos permitirá modificar tablas, con el objetivo de añadir o eliminar columnas (atributos), o bien, de modificar alguna propiedad de las mismas.
Esto es importante de cara a posibles errores y/o modificaciones que se requieran hacer una vez estalecidos todos los campos de las tablas.
En esta unidad estudiaremos la modificación de las columnas y los tipos de datos, así como un tipo especial de datos muy útil llamado Autonumérico.
4. Modificación de columnas
Las modificaciones que se pueden realizar sobre las columnas existentes pueden ser de dos tipos:
Cambios de nombre del campo o de la descripción del mismo.
Cambio en las propiedades del campo, desde ser o no clave primaria, a cambiar el tipo de campo y las propiedades asociadas a ese tipo de campo.
4.1. Cambios en el nombre o descripción
Para este cambio, basta con situarse en el valor que queramos modificar y cambiar el contenido de texto. Este tipo de modificación no afecta a las relaciones (elementos que se verán en posteriores unidades) con lo que podemos realizarlas con toda tranquilidad.
Ejercicio
Base de datos: Biblioteca
Vamos a realizar un ejemplo en el que vamos a cambiar el nombre de algunos campos de la tabla LIBRO.
Abre la base de datos "biblioteca".
Abre la tabla LIBRO para edición.
Cambiar nombre de campos
Cambia el nombre de la columna "Prestable" por "PrestableSN". Sitúate en el campo correspondiente y cambia el contenido del texto.
A continuación vamos a modificar la descripción de otro de los campos. Para ello, cambiaremos la del campo Observaciones de "Observaciones" a "Observaciones (autor, edición, etc.)".
Guarda los cambios.
Contenidos
4.2. Cambios en las propiedades de las columnas
Más importantes para la integridad de la tabla, y en algún caso más complejas de realizar, son las operaciones que contemplan el cambio de tipo de datos o el cambio de las propiedades del campo.
El cambio en el tipo de datos ha de realizarse con cautela, ya que se tendrá que seleccionar un tipo de datos compatible con los valores ya introducidos (en caso de que la tabla contenga datos).
4.2.1. Cambios en campos de texto
Cuando cambiamos entre tipos de datos de texto, por ejemplo, hay que tener cuidado de que el tamaño del nuevo tipo sea lo suficientemente grande para contener los valores previamente almacenados. Por ejemplo, si cambiamos de 40 a caracteres, no pasa nada, porque la longitud aumenta. Ahora bien, si cambiamos la longitud de 40 caracteres a 20 caracteres, se borrarán los últimos 20 caracteres de cada valor contenido en cada registro.
4.2.2. Cambios en campos numéricos
Cuando cambiamos entre tipos de datos numéricos, por ejemplo, entre uno de tipo real y otro de tipo entero hay que tener cuidado de que el tamaño del nuevo tipo sea lo suficientemente grande y tener en cuenta que sólo se respetará la parte entera de los valores previamente almacenados.
4.2.3. Incompatibilidades
Este tipo de conversiones no siempre se pueden realizar. Así, por ejemplo, aunque sería posible cambiar el campo "Fecha_compra" de tipo Fecha a tipo Texto, no nos va a dejar convertirlo a uno de tipo Integer, ya que aunque en el primer paso no es complicado para Base transformar una fecha a una cadena de texto, en el segundo caso no es capaz de convertir una fecha a un número y nos muestra una pantalla como la que se ve en la figura:
Es decir, la solución que nos propone es eliminar por completo esa columna y crear una nueva con el nombre que ya tenía y el nuevo tipo, pero perdiendo los valores que ya teníamos introducidos en ese campo.
Ejercicio
Duplicar tabla
Vamos a crear una réplica de la tabla LIBRO con nombre LIBRO2.
Haz clic con el botón derecho del ratón sobre la tabla LIBRO y selecciona Copiar.
Haz clic con el botón derecho del ratón y selecciona Pegar.
En la ventana que se muestra, elige la opción Definición y datos y pulsa el botón Crear:
Modificar propiedades de campos
Abre la tabla LIBRO2 en modo Edición.
Cambia el tipo de campo "PrestableSN" de Sí/No a Texto [VARCHAR].
Cambia el tipo de campo "Precio" de Real a Entero [INTEGER].
Cambia la longitud del campo "Título" de 100 a 50.
Guarda los cambios.
Contenidos
5. Tipo de datos Autonumérico
Un cambio muy útil que podemos realizar en nuestra tabla es hacer que nuestra clave primaria tome valores automáticamente, por ejemplo para poner un código de referencia a un producto o los códigos de película de un videoclub. Esto se puede hacer con el tipo de datos Autonumérico, que permite numerar de forma correlativa y automática los registros que se introducen en una tabla.
Ejercicio
Vamos a modificar el tipo del campo ID por uno Autonumérico.
Tipo de datos Autonumérico
Edita la tabla LIBRO2.
Ve al campo ID.
Fija el valor de la columna con la propiedad Valor Automático a Sí.
Guarda los cambios.
Cierra el modo edición.
A partir de ahora, cada vez que introduzcamos una nueva fila en la tabla LIBRO2, al campo ID se le asignará el mayor valor asignado hasta ese momento incrementado en 1. Es decir, este campo se va a numerar automáticamente y sin repetir los números.
Abre la tabla en modo introducción de datos.
Introduce un nuevo registro con la información que quieras. Comprueba que ahora el campo ID no puede modificarse, ya que lo asigna el programa automáticamente. Por ejemplo:
Como comprobamos, el campo ID no puede modificarse y se asignará automáticamente un valor consecutivo al del anterior registro.
Contenidos
6. Borrado de columnas
Antes de eliminar una columna de nuestra tabla debemos saber que al hacerlo se borrarán todos los valores que tuviéramos dados a esta columna en nuestra filas por lo que, sobre todo en el caso de la columna que sea clave primaria, hay que pensar muy bien si de verdad es conveniente eliminar esa columna.
La eliminación es sencilla y puede ser revocada utilizando las opciones de Deshacer y Rehacer.
La eliminación de una columna se puede deshacer sólo antes de guardar los cambios. En caso de guardarlos, la columna quedará eliminada permanentemente.
Ejercicio
Tabla LIBRO2
Abre la tabla LIBRO2 para edición.
Selecciona el campo "Portada". Haz clic en la columna gris de la izquierda en el campo seleccionado.
Haz clic con el botón derecho del ratón y selecciona la opción Eliminar.
No se permite un uso comercial de la obra original ni de las posibles obras derivadas, la distribución de las cuales se debe hacer con una licencia igual a la que regula la obra original.
Los reconocimientos se realizan en el apartado Fuentes de información.
Todas las capturas de pantalla tienen copyright y pertenecen a TuInsitutoOnline.com.
TuInstitutoOnline.com permite su uso siempre y cuando se muestren desde el dominio www.tuinstituoonline.com y NO PERMITE enlazar a ellas desde otros lugares.
Además, la estructura diseñada para mostrar el contenido de las unidades es propiedad de TuInstitutoOnline.com.