Este tema está dividido en dos apartados.
En el primero se van a mostrar los tipos de datos que pueden tener los atributos, además de las opciones existentes dentro de cada tipo.
En el segundo apartado vamos a ver cómo editar tablas ya creadas, bien sea para añadir, eliminar o modificar atributos representados en columnas.
1. Tipos de datos
En el segundo apartado de la unidad anterior vimos cómo a cada columna de nuestra tabla hay que asignarle el tipo de dato que va a almacenar, aunque simplemente enumeramos los tipos más conocidos, sin explicar en profundidad qué es un tipo de dato y los distintos tipos de datos que permite guardar OOo Base. En este primer apartado de esta unidad vamos a ver por qué hay que elegir entre diferentes tipos de datos y cuáles son.
Figura 3.1.Tabla de películas y sus tipos de dato
En primer lugar, vamos a responder a la pregunta de por qué hay distintos tipos de datos. Para ello basta con pensar en la tabla Peliculas que creamos en la unidad anterior. Cada campo de dicha tabla estaba definido para almacenar un tipo de información concreta (ver Figura 3.1); por ejemplo, la columna Director siempre va a almacenar el nombre del director por lo que, si queremos introducir el nombre de un director, teclearemos un texto que incluya su nombre y al menos el primer apellido; es decir, la naturaleza de los valores introducidos es de tipo texto. En cambio, en la columna Año vimos que siempre almacenábamos la fecha del estreno, por lo que al introducir un valor para este campo necesitamos que, de alguna manera, nuestra base de datos sepa distinguir lo que es el día, el mes
y el año.
Es decir, ambos almacenan una información muy concreta en cada caso y para nosotros es muy fácil ver la naturaleza de los valores que almacena cada uno de esos campos. Dicha naturaleza es lo que se conoce como tipo de dato y lo ofrecen las bases de datos para, entre otras cosas, facilitar el almacenamiento de los valores y por tanto la gestión de la memoria lo que, entre otras cosas, influye en la rapidez de respuesta en la búsqueda de valores. Además dentro de cada tipo de datos existen una serie de propiedades, por ejemplo, el tamaño máximo permitido o el control de una flecha válida, que ayudan a definir un campo con más concreción.
Dentro de OOo Base en particular podríamos clasificar los distintos tipos de datos en cuatro grandes grupos:
Tabla 3.1.Tipos de datos alfanuméricos
Tabla 3.2.Tipos de datos enteros
Tabla 3.3.Tipos de datos reales
Tabla 3.4.Tipos de datos temporales
Tabla 3.5.Tipos de datos especiales
Además, dependiendo del tipo de dato, podemos tener hasta seis propiedades (ver Figura 3.2) que se pueden configurar para mantener la consistencia y el formato de la información introducida. Éstas son:
Figura 3.2. Propiedades de los campos
2. Edición de tablas
Antes de comenzar con este apartado ya debería estar clara la diferencia entre la ventana de introducción de datos en la tabla (Figura 3.3) y la ventana de edición de la tabla (Figura 3.4).
Figura 3.3. Ventana de introducción de datos
La primera se utiliza para introducir datos en la tabla seleccionada tal y como vimos en el tercer apartado de la unidad anterior.
Figura 3.4. Ventana de edición de tabla
La segunda ventana es la misma que utilizamos para crear una tabla pero, en este caso, con el objetivo de añadir o eliminar columnas (atributos) de nuestra tabla, o bien, de modificar alguna propiedad de las mismas.
En este apartado nos vamos a centrar en la edición de las columnas de una tabla ya creada, en este caso nuestra tabla Peliculas. Para abrir esta tabla para editarla tenemos que situarnos en la pantalla principal de OOo Base en el apartado de Tablas y hacer un clic con el botón derecho del ratón y seleccionar la opción Editar (Figura 3.5).
Figura 3.5. Selección de edición de tabla
Para añadir nuevas columnas a nuestra tabla hay que seguir el mismo proceso que en la creación de una tabla; es decir, introducir un valor para el nombre del campo, elegir un tipo de campo y escribir una descripción de ese campo.
Para eliminar columnas de nuestra tabla nos situamos al inicio del campo y seleccionamos la opción eliminar (Figura 3.6). 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.
Figura 3.6. Opción Eliminar columna de una tabla
En el caso de haber borrado una columna de la tabla accidentalmente siempre tenemos la opción de cerrar la ventana de edición sin guardar los cambios realizados.
2.1 Modificación de columnas existentes
Las modificaciones que se pueden realizar sobre las columnas existentes pueden ser de dos tipos:
Figura 3.7. Cambio de nombre de campo
En el caso de las primeras, basta con situarse en el valor que queramos modificar y cambiar el contenido del texto. Por ejemplo, podemos cambiar el nombre de la columna Vista por el de Visionada como se muestra en la figura 3.7.
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 primero de este tipo de cambios es asignar que un campo es o no clave primaria. Hacer este cambio es muy sencillo, tal y como vimos en la unidad anterior, cuando fijamos la columna Id_pelicula como clave primaria de Peliculas. Pero las consecuencias que conlleva dicho cambio para nuestra tabla pueden ser críticas. Para empezar, OOo Base no nos va a permitir introducir datos en una tabla que no tenga clave primaria por lo que en caso de desasignar una columna como clave primaria debemos asignarselo a otra, pero con cuidado, ya que una vez que nuestra tabla ya tiene datos es muy difícil encontrar otra columna que cumpla las condiciones necesarias para ser clave primaria (recordamos que la primera es que ese campo siempre tiene que tomar valor para cada fila de la tabla, y, la segunda, que
dicho valor no puede repetirse entre ninguna fila) y nos podemos encontrar un aviso como el que aparece en la figura 3.8: si por ejemplo intentamos fijar el campo Director como clave primaria y damos a guardar la tabla.
Figura 3.8 Error al cambiar clave primaria
Este error se produce porque hemos incumplido la segunda condición de una clave primaria (no repetir valor) porque el valor Ridley Scott aparece en más de una fila en esa columna.
El siguiente tipo de cambio que vamos a estudiar es el cambio de tipo de dato. Para realizar este tipo de cambio hay que tener en cuenta que habrá que elegir un tipo de dato compatible con los valores ya introducidos.
Por ejemplo, si cambiamos el tipo de dato del campo Visionada a tipo Texto, en lugar de Sí/No, OOo Base es capaz de realizarlo porque convierte las casillas marcadas al texto true (verdadero en inglés) y las desmarcadas a false (falso en inglés) tal y como se muestra en la figura 3.9.
Figura 3.9 Tabla Peliculas tras cambio en columna Visionada
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.
Este tipo de conversiones no siempre se pueden realizar. Así, por ejemplo, aunque sería posible cambiar el campo Año 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 OOo 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 3.10.
Figura 3.10. Advertencia antes de cambiar columna a un tipo de dato no compatible con actual
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.
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. Para ello, para la tabla Peliculas, lo primero que debemos cambiar es el tipo de dato de Id_Pelicula a Integer, ya que estaba definido como tipo Número. Este cambio no nos debe causar problemas ya que los valores de Id_pelicula que estábamos dando eran todos enteros. A continuación fijaríamos esta columna con la propiedad Valor Automático a Sí y guardaríamos la tabla. La nueva estructura de la tabla se muestra en la figura 3.11.
Figura 3.11. Campo Id_pelicula con valor automático
A partir de ahora, cada vez que introduzcamos una nueva fila en la tabla Peliculas al campo Id_pelicula se le asignará el mayor valor asignado hasta ese momento incrementado en 1.
El último tipo de modificación que vamos a ver es del Ejemplo del Formato. Esta propiedad es importante en muchos campos pero, posiblemente, donde más cuidado hay que tener con ella es en los campos de tipo temporal para no tener problemas cuando introduzcamos fechas y horas.
Vamos a ver algún ejemplo de esta propiedad con nuestro campo Año. Para ello, seleccionamos dicho campo y pinchamos en el botón que hay a la derecha de la propiedad Ejemplo de Formato y que destaca además porque tiene 3 puntos suspensivos dentro (ver Figura 3.12).
Figura 3.12. Selección de entrada a propiedad Ejemplo de Formato
Nos debe aparecer entonces una ventana como la de la figura 3.13.
Figura 3.13. Ventana de formato de campo
Como podemos ver, esta ventana tiene bastante información. Para empezar, en la parte superior derecha podemos elegir el idioma. La elección de idioma no es un tema trivial ya que, por ejemplo, los formatos de fecha predefinidos no serán los mismos para idiomas de países anglosajones que para países europeos continentales. Una vez que hemos elegido el idioma, el siguiente paso es escoger la categoría del formato que vamos a definir en la ventana superior izquierda; en nuestro caso la categoría del formato es Fecha. Dentro de la categoría fechas existen una serie de formatos predefinidos que se muestran en la ventana superior central. Un ejemplo de cómo se vería el formato elegido se muestra en el rectángulo que aparece en el centro de la ventana a la derecha. Además, todos los
formatos predefinidos pueden ser adaptados por el usuario y guardados para su uso posterior en la parte inferior de la ventana llamada Código del formato.
Vamos a ver un ejemplo para ilustrar mejor este punto. Hasta ahora nuestro campo Año estaba predefinido como DD/MM/AA; es decir, dos cifras para el día, dos para el mes y dos para el año. Vamos a suponer que a partir de ahora queremos que el mes se introduzca y se muestre con su nombre en lugar de con su número y separado por la preposición de del día y del año. Elegimos la opción correspondiente en los formatos predefinidos de fecha (ver figura 3.14) y damos al botón Aceptar.
Figura 3.14. Selección del nuevo formato
Si abrimos después de este cambio la tabla Peliculas el resultado obtenido debería ser el que se muestra en la figura 3.15. Debido a que es más sencillo la introducción de fechas con el formato original es recomendable dejar las fechas en dicho formato.
Figura 3.15. Tabla películas tras cambio de formato en campo Año
3. Ejercicios propuestos.
1.Modificar el nombre del campo Vista de la tabla Peliculas por el nombre Visionada.
2.Modificar la tabla Peliculas para que al campo Id_pelicula se le den valores automáticamente con cada nueva fila.