OpenOffice Base
Base es un sistema gestor de bases de datos con una amplia gama de características, diseñado para cubrir un amplio abanico de usuarios, puede, desde simplemente llevar un control de su colección de CD hasta generar un informe corporativo mensual departamental de ventas.
Base contiene asistentes para ayudar a los usuarios nuevos en el diseño de bases de datos (o simplemente nuevos enBase) a crear tablas, consultas, formularios e informes, junto con un conjunto predefinido de definiciones de tablas para controlar activos, clientes, ordenes de venta, facturas y mucho más.
Primera ejecución de OpenOffice Base y creación de base de datos
Al entrar en Base nos encontraremos la ventana “Asistente para base de datos” que aparece en la figura 1.12 donde se nos da a elegir entre crear una nueva base de datos, abrir una base de datos existente o conectar con una base de datos existente.
En esta unidad se va a crear la base de datos que se usará el resto del curso; por tanto, en este caso, elegiremos la primera opción, pero una vez que esté creada y volvamos a entrar a Base tendremos que marcar la segunda opción y elegir nuestra base de datos. La tercera opción (conexión con una base de datos existente) se estudia en la última unidad de este curso.
Figura 1.12. Ventana inicial “Asistente para base de datos”
Si hemos elegido la opción de creación nos debe aparecer una ventana como la de la figura 1.13 donde, por un lado, debemos elegir entre registrar o no la base de datos y, por otro, entre abrir o no la base de datos para editarla y crear tablas usando el asistente.
Figura 1.13. Ventana “Guardar y continuar”
Registrar la base de datos sirve para indicar a OpenOffice dónde localizar los datos y cómo se organizan. Es decir, debemos registrar nuestra base de datos si queremos que los datos que guardemos sean localizables desde otras aplicaciones; por ejemplo, si en Writer quiero mostrar una tabla con datos guardados en mi base de datos debo registrarla antes.
La opción “Abrir la base de datos para editar” es obligatoria tenerla marcada porque, si no, después de crear la base de datos se cerraría Base.
Por último, la opción “Crear tablas usando el Asistente para tablas” hay que marcarla si queremos que un asistente de Base nos ayude a crear nuestra primera tabla al terminar la creación de la base de datos. Esta opción la dejaremos desmarcada porque hasta la siguiente unidad no vamos a ver qué es una tabla y cómo crearlas y, además, crear tablas usando el Asistente limita bastante las posibilidades de creación de tablas.
Para finalizar debemos elegir el directorio donde guardaremos nuestra base de datos y el nombre de la misma (ver Figura 1.14). La base de datos que vamos a crear se llamará Curso y la vamos a guardar en la subcarpeta Mis Bases de Datos, que tendremos dentro de la carpeta Mis Documentos, del usuario de Windows. La casilla “Ampliación automática de nombre de archivo”, que aparece en la parte baja de la ventana, sirve para indicar que se añadirá o no al nombre de la base de datos la extensión que tienen los tipos de archivo de base de datos en formato OpenOffice (extensión .odb, Open Document Base, Base de datos en formato Open Document).
Figura 1.14. Ventana “Guardar como”
¿Qué es una tabla de OpenOffice Base?
Se puede definir una base de datos como un colección de datos relacionados entre sí. Cada colección de datos relacionados se almacena en una base de datos en forma de tablas, donde dichas tablas guardan información sobre un grupo de cosas con las mismas características o atributos
Por ejemplo, en una base de datos puedes tener una tabla con información acerca de todos tus libros (ver Figura 2.1) donde puedes almacenar el título, el nombre del autor, el año de publicación, etc.; es decir, diferentes propiedades o atributos comunes a todos los libros, y, también, puedes tener una tabla con toda la información de contacto de tus amigos, por ejemplo, su nombre y apellidos, su número de móvil, su dirección de correo electrónico,etc., pero nunca en una misma tabla se guardará información de cosas con propiedades distintas. Es decir, no puedes mezclar información en una única tabla de tus libros y tus amigos porque la información (los atributos de cada una de las cosas sobre las que guardo información) no es la misma.
Figura 2.1. Tabla de libros
Cada uno de los atributos o propiedades de las cosas sobre las que se quiere guardar información son las columnas de la tabla, mientras que cada fila de la tabla representa una cosa real de la que se guarda información. En la figura 2.1 podemos ver una tabla con libros donde se observa que las columnas representan propiedades o atributos de las cosas sobre las que se va a guardar información, en este caso libros, y cómo las filas son los registros que representan a cada uno de los libros concretos sobre los que se almacena información.
Creación de tablas en OpenOffice Base
En el panel izquierdo, seleccionamos la opción "Tablas" y desde el Panel de tareas, seleccionamos "Crear una tabla en modo diseño"
Figura 2.2. Crear tabla en Vista Diseño
Figura 2.3. Ventana de definición de las columnas de la tabla
Comenzamos a definir la primera columna: nos situamos en la primera fila de la rejilla y en la columna Nombre del campo escribimos Id_pelicula como se refleja en la figura 2.4.
Figura 2.4. Introducción del nombre del campo
Para pasar a elegir el Tipo de campo, podemos hacerlo de tres maneras: pulsando la tecla Intro, pulsando la tecla Tabulación o haciendo clic con el botón izquierdo del ratón sobre dicha columna. Al situarnos sobre dicha columna veremos que, por defecto, nos indica Texto[VAR CHAR] como tipo de dato. Si queremos cambiar de tipo de campo, debemos hacer clic con el botón izquierdo del ratón sobre la flecha de la lista desplegable de la derecha y elegir otro tipo.
Figura 2.5. Elección del tipo de campo
A continuación, en la columna Descripción, sería aconsejable que se introdujese un comentario acerca del campo que se acaba de insertar, como aparece en la figura 2.6.
Figura 2.6. Introducción del campo Descripción
Si nos fijamos con detenimiento en la parte inferior de dicha figura, veremos que hay una ventana que nos va a permitir establecer algunas propiedades para el campo que estamos creando de nuestra tabla. Dichas propiedades se exponen junto con los distintos tipos de campo en la siguiente unidad.
Este primer campo introducido es el que identificará cada una de las películas que se introduzcan en la base de datos; es decir, me va a servir para distinguir una película de otra inequívocamente. Es imprescindible tener en la mayoría de las tablas de una base de datos un campo cuyo valor sirva inequívocamente para diferenciar una fila de cualquier otra.
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, ninguno de ellos tendría el mismo valor en dicho campo. En cambio, el campo nombre para nuestros amigos, aunque improbable, podría repetirse.
En el caso de nuestra tabla Peliculas, a priori, no hay ningún campo acerca de una película que podamos utilizar para diferenciar una película de otra ya que, por ejemplo, podemos tener dos películas con el mismo título o dos películas con el mismo director o dos películas que se produjeron el mismo año. Para este tipo de tablas se suele definir un campo de tipo numérico (como acabamos de hacer nosotros con nuestro Id_pelicula) que debe cumplir dos condiciones: la primera, es que ese campo siempre tiene que tomar un valor para cada fila de la tabla, y, la segunda, que dicho valor no puede repetirse en ninguna fila. Cuando un campo cumple estas dos propiedades (sin nulos y sin repetidos) se le llama Llave Primaria, Clave Primaria o simplemente Clave y toda tabla debe tener una.
Para indicar que queremos que el campo Id_pelicula sea nuestra Llave Primaria seguimos los siguientes pasos:
- Nos situamos en la parte izquierda del campo (figura 2.7).
Figura 2.7. Parte izquierda del campo
- Pulsamos botón derecho del ratón (figura 2.8).
Figura 2.8. Pulsamos botón derecho del ratón
- Seleccionamos la opción Llave primaria (figura 2.9).
Figura 2.9. Seleccionamos Llave primaria
- Quedando finalmente el campo como se muestra en la figura 2.10
Figura 2.10.Resultado tras definir el campo Id_pelicula como llave primaria
Una vez insertado este primer campo, insertaríamos el resto de los campos, que van a ser:
- Titulo, de tipo Texto
- Director, de tipo Texto
- Años, de tipo Fecha
- Formato, de tipo Texto
- Vista, de tipo Sí/No
Quedando la tabla como aparece en la figura 2.11:
Figura 2.11.Tabla de películas creada
Una vez creados todos los campos con sus propiedades, debemos guardar la tabla. Para ello pulsamos sobre el icono en forma de disquete de la esquina superior izquierda (figura 2.12):
Figura 2.12.Guardar tabla
A continuación nos aparece una ventana que nos pide que introduzcamos el nombre de la tabla (figura 2.13). En dicha ventana introducimos el nombre Peliculas y pulsamos el botón Aceptar.
Figura 2.13.Introducir nombre de tabla
Si hemos seguido todos los pasos correctamente, nuestra tabla Peliculas debe aparecer dentro del apartado Tablas en la parte inferior de la ventana principal de Base (figura 2.14).
Figura 2.14.Ventana principal con la tabla Peliculas
Algo que nos puede resultar raro de los nombres de los campos y del nombre de la tabla es que en ningún momento estamos utilizando tildes al escribirlo. Esto es debido a que las tildes pueden producir problemas en Base tanto en el nombre de los campos como de las tablas por lo que es mejor evitar su uso en los nombres de OpenOffice Base.
Inserción de datos en OpenOffice Base
Para insertar datos a través de la hoja de datos tenemos que situarnos en la pantalla principal de Base en el apartado de Tablas (figura 2.14) y hacer doble clic con el botón izquierdo del ratón sobre la tabla Películas o hacer un clic con el botón derecho del ratón y seleccionar la opción Abrir; nos aparece entonces la pantalla de hoja de datos que se muestra en la figura 2.15.
Figura 2.15.Hoja de Datos de la tabla Películas
En primer lugar, podemos ver que aparecen las seis columnas que definimos en el apartado 2, y ninguna fila insertada (como es natural, pues acabamos de crear la tabla). Podemos ver también que la columna Vista aparece con un cuadrado. Este cuadrado nos indica que es un campo del tipo Sí/No y que aparezca con fondo verde significa que no hay ninguna opción elegida por el momento.
También se puede ver que al principio de la fila aparece una pequeña estrella amarilla, dicha estrella señala el lugar donde está la nueva fila a insertar, en nuestro caso, la primera película.
Si introducimos una fila con todos los campos rellenos, podemos tener algo parecido a lo que aparece en la figura 2.16.
Figura 2.16.Primera fila insertada
Si continuamos insertando filas, hay que hacer un recordatorio: en el apartado 2 definimos que la columna Id_pelicula iba a ser nuestra Llave Primaria; es decir, que los valores de este campo, no podían repetirse para ninguna fila. En la figura 2.17 se plasma un intento de insertar una fila repitiendo valor para esta columna y se muestra cómo OOo Base nos devuelve un error.
Figura 2.17. Error al insertar fila
Las relaciones entre tablas en OpenOffice Base
Una de las grandes ventajas de las bases de datos es que podemos tener toda la información que necesitamos almacenar en varias tablas, relacionadas entre ellas, en lugar de una única tabla enorme con toda la información.
¿Qué conseguimos con esto? Para responder a esta pregunta mejor pongamos un ejemplo: imaginemos que se quiere guardar el género cinematográfico de las películas que se van almacenando. Se podría pensar en añadir una nueva columna a la tabla Peliculas que se llamara Género, de manera que por cada película almacenada también tuviera su género
Tipos de relaciones entre tablas en OpenOffice Base
Para ver la forma de establecer la relación es necesario decidir, previamente, qué tipo de relación existe entre las tablas. Existen tres tipos básicos de relaciones entre tablas:
- 1 a ∞ o Uno a muchos. Este tipo se da cuando una fila de la primera tabla puede estar relacionada con muchas filas de la segunda tabla, pero una fila de la segunda sólo está relacionada con una de la primera. Es decir, si consideramos que una película sólo puede tener un único género, éste sería el tipo de relación que existe entre la tabla Genero y la tabla Peliculas ya que, por ejemplo, el género Drama tiene varias películas relacionadas que son de dicho género pero dada una película sólo está relacionada con un género.
- ∞ a ∞ o Muchos a muchos. Esta clase de relación ocurre cuando una fila de la primera tabla puede estar relacionada con muchas filas de la segunda tabla y una fila de la segunda tabla puede estarlo con muchas filas de la primera. Un ejemplo de este tipo lo tenemos en la relación entre la tabla Peliculas y la tabla Interpretes (ver Figura 4.9) porque, dada una película en particular, puede tener muchos intérpretes, y, viceversa, dado un intérprete, este puede haber intervenido en muchas películas.
- 1 a 1 o Uno a uno. Este tipo de relación aparece con menos frecuencia y sucede cuando una fila de la primera tabla sólo puede estar relacionada con una fila de la segunda y una fila de la segunda tabla sólo puede estar relacionada con una de la primera. Un ejemplo de este tipo de relaciones podría ser entre una tabla con países y otra con jefes de gobierno, dado que, normalmente, un país sólo tiene un jefe de gobierno y un jefe de gobierno lo es sólo de un país.
Establecer relaciones uno a muchos en OpenOffice Base
Para este tipo de relaciones la solución siempre es crear una nueva columna en la tabla del lado del muchos, es decir, debemos crear una nueva columna en la tabla cuyas filas sólo pueden estar relacionadas con una fila de la otra tabla, de manera que el valor de ese campo me indique sin lugar a dudas con qué fila está relacionada de la otra tabla.
En el caso de Generos y Peliculas, esto supone que tenemos que crear en Peliculas un nuevo campo que para cada película mantenga un valor que me indique sin error al género al que pertenece. Por tanto, la columna debe ser del mismo tipo de dato que la columna que sea clave primaria en la otra tabla y los valores que podrá contener será cualquiera de los valores que tome la clave primaria en dicha tabla. Es decir, en la tabla Peliculas tendremos que crear una columna del mismo tipo que Id_genero (Integer), a la que llamaremos Genero (ver Figura 4.10), y los valores que pondremos en esa columna estarán comprendidos entre el 1 y el 9, que son los distintos valores que toma ese valor en la tabla Generos (ver Figura 4.3).
Figura 4.10 Tabla Peliculas con nuevo campo Genero
Una pregunta que seguro surge después de leer esto es ¿por qué la nueva columna Genero en Peliculas sólo puede tomar valores entre 1 y 9? La respuesta es muy simple: esta nueva columna la estamos creando para poder referenciar en cada película a la fila en Generos con la que está relacionada; es decir, no tiene sentido que la película Rocky tenga como género el 12 si dicho género no existe en la tabla Generos.
4.11. Apertura de ventana Relaciones
Pero con la creación de esta columna no hemos terminado. Falta indicarle a OOo Base explícitamente que las dos tablas están relacionadas y que vamos a utilizar para mantener dicha relación la nueva columna Genero que hemos creado en Peliculas. Para realizar esta operación tenemos que abrir la herramienta Relaciones de OOo Base. Para ello nos situamos en la ventana principal, pinchamos en la pestaña Herramientas y dentro del menú que se despliega seleccionamos Relaciones (ver Figura 4.11).
Lo primero que nos ocurre nada más entrar en la ventana Relaciones es que se despliega una ventana donde debemos seleccionar las tablas sobre las que vamos a establecer la relación (ver Figura 4.12), en nuestro caso, elegimos las tablas Peliculas y Generos y cerramos dicha ventana.
Figura 4.12. Selección de tablas a relacionar
A continuación ya podemos establecer la relación que queremos indicar. Para ello pinchamos en el icono que aparece a la derecha en la ventana Relaciones (el icono que contiene tres tablas con una estrella encima, ver Figura 4.13).
Figura 4.13. Icono para añadir nueva relación
Entonces, nos debe aparecer una ventana (ver Figura 4.14) donde primero debemos indicar las tablas que queremos relacionar para, a continuación, elegir en función de qué columna vamos a establecer la relación; es decir, en nuestro caso será entre el campo Genero de Peliculas e Id_genero de Generos.
En la parte inferior de esta ventana veremos que OOo Base nos pide que indiquemos dos opciones: la de actualización y la de eliminación; y que nos ofrece cuatro posibilidades para cada una de ellas. Estas opciones sirven para indicar qué hacer si algún valor del campo de clave primaria que está siendo referenciada (en nuestro caso Id_genero) sufre alguna modificación o si esa fila es eliminada. Las posibilidades son:
- no realizar ninguna acción.
- actualizar o borrar en cascada: es decir, si cambiamos en Generos de 5 a 17 el valor de Id_genero de Drama, entonces, todas las filas de Peliculas cuyo género sea Drama pasarán a tener el valor 17. O en el caso de borrado, si borramos el género Drama en Generos todas las filas de Peliculas de ese género se borrarán por lo que, esta opción debe elegirse con mucho cuidado.
- poner a null: es decir, si cambiamos o borramos el género Drama, el campo Genero de esas películas se queda en blanco.
- predeterminar: es decir, podemos fijar un valor por defecto en el campo Genero de Peliculas si el género al que referencian en la tabla Generos es modificado o borrado.
Para la actualización, lo normal suele ser elegir la posibilidad de actualizar en cascada, y para el borrado no existe una opción preferida sino que dependerá bastante del contexto, en nuestro caso, para esta relación, indicaremos poner a nulos.
Figura 4.14. Indicación de relación entre tabla Géneros y Películas
Una vez hemos terminado de indicar la relación, ésta debe aparecer indicada en la ventana Relaciones tal y como se muestra en la figura 4.15. Así, podemos observar que ahora aparece una línea uniendo ambas tablas y que en el extremo de esa línea en el lado de la tabla Géneros aparece el valor 1, y que, en el otro extremo, el de la tabla Películas, nos aparece el valor n. Estos valores nos están indicando que el tipo de relación es de uno (1) a muchos (n).
Figura 4.15. Relación uno a muchos entre Géneros y Películas
No hay comentarios:
Publicar un comentario