Bases de datos con LibreOffice Base - UEB-UAT-VHIR Knowledge Base

LIBREOFFICE es un paquete ofimático libre, de código abierto y distribución gratuita .... se ha venido incluyendo en las suites ofimáticas desde hace ya algunos ...
7MB Größe 11 Downloads 48 vistas
Práctica 3

################################

Bases de datos con LibreOffice Base

Informática Básica Grado en: Ingeniería Informática, Matemática Computacional

Material de apoyo

L

IBREOFFICE es un paquete ofimático libre, de código abierto y distribución gratuita que incluye, entre otros, un procesador de textos, una herramienta para el desarrollo de hojas de cálculo, un programa para realizar presentaciones y, lo que más nos interesa en esta práctica, una herramienta para la creación y manejo de bases de datos sencillas (en contraposición a la complejidad que supone la gestión del gran volumen de datos de las bases de datos corporativas). Es un programa multiplataforma, que funciona en Linux, Windows, Mac OS X y otros sistemas operativos de la familia Unix, y que constituye la alternativa libre y funcional al paquete Office de Microsoft. En este material de apoyo, te mostraremos las funcionalidades básicas del programa, que te permitirán poder crear y gestionar con éxito bases de datos pequeñas. También veremos cómo elaborar consultas e informes, que proporcionan a los usuarios finales un acceso fácil a los datos. Es importante que te familiarices con este material para que puedas abordar con éxito la realización de los ejercicios planteados en el boletín de la práctica 3. También resultará conveniente que, previamente, estudies con detenimiento los contenidos del Tema 1 de teoría, en particular la última sección, que explica los conceptos básicos del modelo relacional de bases de datos que daremos por sentados en este texto.

Índice 1. Creación de una base de datos

2

2. Creación y edición de tablas en la base de datos 2.1. Nombre y tipo de los campos . . . . . . . . . . . . 2.2. Clave primaria . . . . . . . . . . . . . . . . . . . . 2.3. Guardar una tabla . . . . . . . . . . . . . . . . . . 2.4. Gestionar registros . . . . . . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

5 6 7 9 10

3. Relaciones entre tablas 12 3.1. Relación “uno a muchos” (1:M) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2. Relación “muchos a muchos” (M:M) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4. Diseño de consultas 15 4.1. Vista diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.2. Asistente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.3. Vista SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5. Generación y uso de vistas

26

6. Formularios 30 6.1. Creación mediante el asistente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 6.2. Creación en vista diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 7. Informes

46

-1-

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Nota Este material de apoyo es el mismo que se elaboró para la herramienta Base de OpenOffice.org en el curso 2010/2011. En el presente curso usaremos LibreOffice, que es un fork de OpenOffice.org. Si no sabes lo que es un fork en el contexto del desarrollo de software, búscalo por Internet o consulta con el profesor. La funcionalidad de la herramienta es la misma –y se llaman igual– por lo que nos hemos limitado a cambiar los nombres en el texto y a sustituir unas pocas imágenes. El resto del material no cambia, ya que, insistimos, se trata del mismo programa. Sí que es posible que observes algunas pequeñas diferencias sin importancia en algunas imágenes y nombres de opciones de menús, pero que no son relevantes para la comprensión del texto.

Bibliografía Á LVARO E. P RIETO R AMOS: Tutorial de OpenOffice.org Base. Tutorial para usuarios de Windows de la herramienta Open Office Base. http://tutorialopenofficebase.wordpress.com/. Última actualización: enero de 2008. Te recomendamos que le eches un vistazo como material complementario a éste. Está muy bien explicado e incluye más detalles que los que aquí te proporcionamos. Como ya hemos comentado LibreOffice y OpenOffice.org son muy similares en la actualidad por lo que este tutorial continúa siendo plenamente válido.

1.

Creación de una base de datos

LibreOffice, LO de ahora en adelante para abreviar, es una suite ofimática libre (de código abierto) y distribución gratuita similar en cuanto a funcionamiento y prestaciones al paquete ofimático Office de Microsoft. De la misma manera, incluye un procesador de textos, hoja de cálculo, herramienta para el diseño de presentaciones y base de datos, entre otras cosas. El vocablo suite hace referencia a una recopilación de programas capaces de interactuar entre ellos en mayor o menor medida, lo que se conocía tradicionalmente como paquete integrado. El término ofimática hace referencia al trabajo habitual en una oficina: llevar el “papeleo” (documentos y facturación) y las cuentas. En este sentido, los procesadores de texto y las hojas de cálculo serían las herramientas básicas empleadas en la gestión de una oficina. No obstante, puede pensarse que igualmente resulta necesario un gestor de bases de datos sencillas (para, por ejemplo, llevar un registro de clientes y poder realizar servicios de mailing automático). En cuanto a las presentaciones, quisiéramos apuntar que este tipo de programas se ha venido incluyendo en las suites ofimáticas desde hace ya algunos años, sin duda a semejanza de lo ocurrido con el Office de Microsoft. En este material de apoyo nos vamos a centrar en la herramienta de gestión de bases de datos sencillas, que sería el equivalente al programa Access de Microsoft. Se trata del programa LO Base, al que llamaremos Base en adelante para abreviar. Como hilo conductor para ilustrar los aspectos más relevantes del funcionamiento de Base seguiremos el mismo ejemplo empleado en el cuaderno de teoría correspondiente al Tema 1: tenemos una serie de películas en nuestra casa, en un formato determinado (DVD, DivX, XviD, VCD), almacenadas en unos cuantos estuches. Pretendemos guardar una serie de datos para cada película (título, nombre del director, fecha de estreno en España,. . . ) y también para cada estuche. También queremos guardar una serie de datos relacionados con los actores que intervienen en las películas que tenemos (su nombre, nacionalidad, fecha de nacimiento, personajes que interpretan en sus películas,. . . ). Para almacenar toda esta información y poder automatizar una serie de consultas, gestionaremos la creación de una base de datos mediante Base. Cuando arrancamos Base, a no ser que lo hagamos abriendo una base de datos previamente creada, se ejecutará el asistente para la creación de bases de datos (véase la Figura 1(b)). Podemos ejecutar Base bien desde la pantalla principal de LO (véase la Figura 1(a)), bien desde el menú del lanzador de aplicaciones, en la sección Oficina, entrada Base de datos –para conocer los detalles exactos en los equipos de las aulas informáticas consulta el boletín de la práctica. En cualquier caso, llegaremos a la ventana del asistente para bases de datos de LO (véase la Figura 1(b)) tal como comentamos en el párrafo anterior. El primer paso consiste en seleccionar la base de datos que queremos usar. Tenemos tres posibilidades para ello: I Crear una nueva base de datos, que es la opción que aparece marcada en la imagen de la Figura 1(b), ya que tenemos que crear la nueva base de datos para nuestro ejemplo de las películas. I Abrir una base de datos ya existente (guardada en un fichero), bien una de las que aparezca en la lista de usadas recientemente, bien otra que podamos abrir con el diálogo para la navegación por directorios asociado al botón Abrir. Esta opción es equivalente a abrir directamente el fichero con la base de datos desde el sistema de ficheros, lo que nos conduce, en ambos casos, a la ventana central para la gestión de la base de datos que se muestra en la Figura 3.

-2-

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

(a) Pantalla principal de LO.

(b) Ventana inicial del asistente para bases de datos del programa Base de LO. Figura 1: Arranque de Base.

I Conectar con una base de datos existente, lo que implica configurar y emplear un software específico (JDBC, Oracle, MySQL, etc.) para la conexión (puede ser remota) con otros sistemas de gestión de bases de datos (SGBD en adelante para abreviar). Nosotros no emplearemos esta opción, pues se escapa un poco de los objetivos de esta práctica.

(a) Último paso del asistente para bases de datos: registramos la nueva base de datos y la abrimos para utilizarla.

(b) Guardamos la base de datos creada en el sistema de ficheros de nuestro ordenador.

Figura 2: Asistente para la creación de bases de datos en Base.

Una vez seleccionada la opción que permite crear una nueva base de datos, pinchamos el botón Siguiente y pasamos al siguiente y último paso, donde se muestra la ventana que aparece en la Figura 2(a). Registrar la base de datos sirve para indicar a LO 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 de la suite como, por ejemplo, el procesador de textos –Writer– o la hoja de cálculo –Calc. Por ejemplo, podría estar interesado en preparar un documento de texto que mostrase una tabla con la información de todas las películas que tengo guardadas en un estuche concreto. Pero para poder hacer esto, necesito registrar previamente la base de datos. Resulta obligatorio marcar la opción Abrir la base de datos para editar si quiero comenzar a trabajar con ella, ya que, si no, después de crearla Base terminaría su ejecución. Sin embargo, la opción siguiente, Crear tablas usando el Asistente para tablas, no es necesario marcarla a no ser que pretendamos comenzar el trabajo con la base de datos creando tablas (lo cual, por otra parte, resulta lo habitual). Nosotros no la marcaremos y realizaremos el proceso de creación de tablas desde la ventana central de gestión (véase Figura 3). Además, crear tablas usando el asistente limita bastante las posibilidades que Base nos ofrece para acometer esta tarea. Una vez hayamos terminado con la selección de las diversas opciones haremos clic en el botón Finalizar para concluir el proceso. Ahora, Base pide que seleccionemos el directorio donde vamos a guardar nuestra base de datos y el nombre de la misma, tal como ilustra la imagen de la Figura 2(b). En nuestro ejemplo, la base de datos se llamará Pelis. El programa automáticamente añadirá la extensión .odb –Open Document Base, base de datos en formato Open Document– que identifica a las bases de datos de LO –fíjate que está marcada la casilla “Ampliación aut. nombre de archivo”.

-3-

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 3: Ventana para la gestión de la base de datos en Base.

En este momento, bien porque hayamos creado una nueva base de datos o bien porque hayamos abierto una ya existente, aparece la ventana central para la gestión de la base de datos que ofrece Base y que ilustramos en la Figura 3. Podemos considerar que esta ventana central se divide en 4 partes: I En la parte izquierda tenemos una serie de iconos que nos permiten elegir el tipo de objeto de la base de datos con el que queremos trabajar. Base proporciona cuatro tipos objetos: tablas, consultas, formularios e informes. El primero de estos objetos (las tablas) permite definir las entidades que conforman nuestra base de datos según el modelo relacional (repasa los apuntes del Tema 1), mientras que el resto permiten obtener información de forma más o menos elaborada. Más adelante, a medida que los vayamos utilizando, veremos para qué sirve cada uno de ellos y aprenderemos a crearlos y configurarlos. Cuando queramos trabajar con cualquiera de estos objetos (crear una tabla o una consulta, o bien elaborar un formulario o un informe) simplemente hemos de pinchar con el ratón en el icono correspondiente y tanto la zona central como la inferior cambiarán sus opciones en consecuencia. En la Figura 3 puede apreciarse que hemos seleccionado el objeto “Tablas”. I En la zona central aparecen las acciones que podemos llevar a cabo con el tipo de objeto seleccionado a la izquierda. En la Figura 3 podemos apreciar que tenemos tres acciones que podemos realizar con las tablas: crear una tabla con la herramienta de diseño, usar el asistente para crear una tabla y crear una vista. I En la zona inferior, aparecen todos los objetos del tipo seleccionado que hemos creado en la base de datos. En nuestro ejemplo, no aparece ninguno pues todavía no hemos creado ninguna tabla. I En la zona superior se encuentran los distintos menús que agrupan las opciones de trabajo de Base, así como la barra de herramientas que muestra los iconos asociados con las acciones más habituales para su acceso directo. A continuación, comentaremos brevemente el contenido de los diversos menús. El contenido del menú Archivo es el típico de las aplicaciones ofimáticas (como un procesador de textos o una hoja de cálculo), con opciones para abrir o guardar una base de datos existente, cerrar aquélla con la que estamos trabajando, crear una nueva o terminar la ejecución de LO, entre otras. En el menú Editar aparte de las opciones comunes para deshacer la última operación efectuada si es posible (o rehacerla) o para copiar, cortar y pegar, tenemos una serie de opciones que se activarán o no en función del objeto seleccionado en la lista de la parte inferior (que, recordemos, muestra todos los objetos creados en la base de datos del tipo seleccionado a la izquierda) y que permiten abrirlo (para introducir datos), editarlo (para cambiar su diseño), cambiarle el nombre o borrarlo. También podemos arrancar los asistentes para la creación de formularios e informes desde ahí. El menú Ver tiene la opción Objetos de base de datos que permite seleccionar el tipo de objeto con el que queremos trabajar, de forma análoga a los iconos que aparecen en la zona izquierda de la ventana. Además, podemos añadir más iconos a la barra de herramientas o personalizarla (cambiando iconos) usando la opción Barras de herramientas. La opción

-4-

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Ordenar permite mostrar en orden alfabético ascendente o descendente la lista de objetos creados del tipo seleccionado que aparece en la zona inferior de la ventana, mientras que la opción Vista previa permite previsualizar en el recuadro gris que hay abajo a la derecha en la ventana central, si es posible, los contenidos del objeto seleccionado en la zona inferior. La opción Actualizar tablas se utiliza cuando hayamos efectuado cambios en el diseño de la misma (añadimos o borramos campos, cambiamos una clave, etc.). En el menú Insertar podemos encontrar las opciones más habituales para la creación de los diversos tipos de objetos: formularios, informes, consultas (en vista Diseño o en vista SQL1 ), tablas (en modo diseño) y definición de vistas sobre las mismas (ya veremos más adelante en qué consisten las vistas). Del menú Herramientas destacamos la opción Relaciones. . . , que debemos utilizar para establecer las relaciones (1:M y M:M) entre las tablas de la base de datos. Hablaremos de esto en la Sección 3, aunque también puedes consultar los apuntes del Tema 1 de teoría para saber de qué estamos hablando. También tenemos una opción que permite filtrar las tablas para que podamos especificar aquéllas que serán visibles para las diferentes aplicaciones de LO y otra que permite ejecutar instrucciones “sueltas” en SQL. La opción Personalizar. . . es análoga a la que podemos encontrar en el menú Ver, opción Barras de herramientas, y permite cambiar las opciones de los menús y los iconos de la barra de herramientas. Finalmente, la opción Opciones. . . es común a todas las aplicaciones de LO. Se utiliza para configurar tanto la suite considerada globalmente como las diversas aplicaciones individuales (en particular, hay una entrada para configurar Base). Los menús Ventana y Ayuda son los típicos de todas las aplicaciones, y no sólo ofimáticas. El primero permite cerrar la ventana para la base de datos actual y moverse entre todas las ventanas abiertas en LO (no sólo en Base). El segundo muestra las distintas opciones de ayuda de LO. De entre todas las opciones disponibles podemos destacar las dos que pasamos a comentar. Por un lado, la opción Ayuda de LibreOffice contiene una ayuda bastante extensa de todas las herramientas proporcionadas por LO, clasificada por contenidos y con la posibilidad de efectuar búsquedas recorriendo el índice de contenidos o en función de palabras clave. Por otro lado, la opción ¿Qué es esto? muestra una pequeña ventana emergente de ayuda contextual que cambiará de contenido según cuál sea el objeto sobre el que tengamos situado el cursor del ratón.

2.

Creación y edición de tablas en la base de datos

Ya vimos en el Tema 1 de teoría que una base de datos alberga información acerca de una serie de entidades que están relacionadas entre sí. Cada entidad de la base de datos, que sirve para agrupar una colección de datos considerados como un todo, se representa según el modelo relacional como una tabla donde las filas representan los registros de información y se corresponden con elementos (instancias) de la entidad cuya información se introduce en el sistema. Por otro lado, las columnas representan los diferentes campos o ítems de información (considerados aisladamente) que conforman la entidad. En este sentido, las columnas representan atributos o características de la entidad.

Figura 4: Diseño de tablas en Base.

En nuestro ejemplo, tendríamos que crear una tabla para almacenar información de las películas que tenemos en casa, la cual constituirá la entidad “Películas” en nuestra base de datos. Para cada película almacenaremos su título, nombre del 1 SQL

son las siglas de Structured Query Language, el lenguaje estándar para la interacción con los SGBD relacionales. Consulta el cuaderno de teoría correspondiente al Tema 1 para conocer más detalles al respecto.

-5-

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

director de la misma, su fecha de estreno en nuestro país, el género,. . . . Cada uno de estos datos, considerado individualmente, constituye un atributo de la entidad “Películas” y, por tanto, será una columna de la tabla (característica común a todas las películas almacenadas en la base de datos). Por otro lado, tenemos una entidad “Actores” donde guardaremos datos como el nombre de un actor, su fecha de nacimiento o su nacionalidad. la cual tiene propiedades distintas a la entidad “Películas”. Por tanto, crearemos otra tabla en nuestro diseño de la base de datos para guardar la información propia de los actores, ya que nunca se guardará información de entidades con propiedades distintas en una misma tabla. Es decir, no podemos mezclar información en una única tabla de las películas y de los actores porque los datos (los atributos de cada una de las cosas sobre las que guardo información) no son los mismos.

Figura 5: Insertamos el primer campo de la tabla para las películas.

Para crear una tabla en Base seleccionamos el icono Tablas en la parte izquierda de la ventana central de gestión de Base y, luego, pinchamos en la opción Crear tabla en vista Diseño. . . tal como mostrábamos en la Figura 3. En ese momento aparece una ventana similar a la que se muestra en la Figura 4, donde tendremos que definir los distintos campos (atributos o columnas de la tabla) y especificar el dominio (consulta los apuntes de teoría) en la columna Tipo del campo. La última columna, Descripción, permite que el diseñador introduzca un comentario explicativo para describir, normalmente, el tipo de dato que vamos a almacenar en ese campo (se trataría, en cierta forma, de la documentación del diseño). Aunque importante, ten en cuenta el carácter opcional de esta columna; el texto que escribes en ella se comporta como si fuesen los comentarios de un programa en un lenguaje de programación como Python. La Figura 5 ilustra la creación del primer campo de la tabla para las películas; se trata del campo denominado Id_Peli, de tipo numérico (el dominio indica que sólo podemos introducir valores que sean números para este campo) y para el que se ha introducido un comentario que describe lo que es.

2.1.

Nombre y tipo de los campos

Para definir la primera columna hay que situarse en la primera fila de la rejilla y en la columna Nombre del campo escribimos el nombre que tendrá el campo en la base de datos (Id_Peli en nuestro ejemplo). Para establecer el dominio (Tipo del campo) basta con pinchar en la celda correspondiente y seleccionar el elemento deseado de la lista desplegable que aparece en ese momento. Hay varios tipos para elegir, dependiendo del tipo de dato que queramos almacenar en ese campo: I Si lo que deseas es introducir información textual (como un nombre o el título de una película) es frecuente elegir los valores “Texto [VARCHAR]” (se especifica la cantidad, hasta un máximo de 255 caracteres), “Texto(fijo) [CHAR]” (igual que el anterior, pero con la diferencia de que el número de caracteres que indiquemos será el que ocupe por defecto, siendo rellenado, si es necesario, con espacios en blanco), “Texto [VARCHAR_IGNORECASE]” (como “Texto [VARCHAR]”, sólo que no distingue entre mayúsculas y minúsculas) o “Nota [LONGVARCHAR]” (para un texto variable muy largo, hasta 2 GB, como la descripción de un producto o la sinopsis de una película). I Cuando queremos introducir información de tipo numérico (la cantidad de unidades disponibles en la tienda de un determinado producto, por ejemplo) es frecuente elegir “Número [NUMERIC]” (permite almacenar números

-6-

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

especificando precisión y escala, por ejemplo “numeric(7,6)” será un número que tiene un dígito antes del decimal y 6 dígitos después del decimal), “Tiny Integer [TINYINT]” (para valores en un rango numérico pequeño; enteros entre 0 y 255 sin signo, o -128 y 127 con él, es decir que ocupa 1 byte), “Small Integer [SMALLINT]” (enteros entre 0 y 65535 sin signo, o -32768 y 32767 con signo, es decir que ocupa 2 bytes), “Integer [INTEGER]” (ocupa 4 bytes y, por tanto, permite almacenar números enteros grandes), “BigInt [BIGINT]” (ocupa 8 bytes, es decir que sirve para almacenar números muy grandes), o “Float [FLOAT]” (usa 4 bytes), “Real [REAL]” (usa 8 bytes) o “Double [DOUBLE]” (igual que el anterior) si queremos usar números con decimales (con valores de más pequeños –y con menos decimales– a más grandes –y con más decimales– respectivamente). I También cabe destacar el tipo “Fecha [DATE]” para introducir datos que se pueden interpretar como fechas, obviamente, o el tipo “Sí/No [BOOLEAN]” que permite introducir un dato que solamente puede tomar dos valores posibles (en general, verdadero o falso). Los valores “1” y “Sí” se interpretan como verdadero, mientras que los valores “0” y “No” se interpretan como falso. En las consultas, se puede emplear cualquiera de estos valores, pero si se emplean las palabras hay que recordar que “Sí” lleva tilde.

Figura 6: Definimos el primer campo de la tabla como clave primaria.

Si quieres tener más información o no estás seguro del todo acerca del tipo que debes establecer para un campo determinado en el diseño de una tabla consulta con tu profesor de prácticas. También tienes más información en la página web que citamos en la bibliografía (vale mucho la pena que le eches un vistazo). Para introducir un comentario descriptivo basta con pinchar en la celda correspondiente y teclear lo que consideremos conveniente.

2.2.

Clave primaria

Como ya sabemos (véase el cuaderno de teoría del Tema 1), en cada tabla hay que especificar cuál es la clave primaria que identifica de manera única cada elemento en la base de datos. Esta clave puede estar formada por un único campo (lo habitual) o por una combinación de más de uno. Para definir la clave primaria, debemos seleccionar con el ratón el campo o campos deseados (hay que pinchar en la celda que hay a la izquierda del nombre del campo, pinchar con el ratón al mismo tiempo que pulsamos la tecla Ctrl para ampliar la selección) y, después, hacer clic con el botón derecho del ratón en la celda que hay por fuera, a la izquierda del nombre del campo (vale cualquiera si hemos seleccionado dos o más campos). Entonces seleccionamos la opción Llave primaria del menú contextual que emerge (véase la Figura 6). En el caso de nuestra tabla de películas, no hay ningún campo, a priori, 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. Cuando nos encontremos con esta situación, se suele definir un campo de tipo numérico (como hacemos con Id_Peli) que hará el papel de clave primaria. Ya sabes, por tanto, que ese campo siempre tiene que tomar un valor para cada fila de la tabla y que dicho valor no puede repetirse en ninguna fila. Esto no pasaría si hablásemos de personas, ya que el campo DNI actuaría como clave primaria y no tendríamos que definir un campo adrede para ello. En la Figura 7 puedes apreciar el resultado tras definir como clave primaria el campo Id_Peli en nuestro ejemplo. Observa que hay un pequeño icono con forma de llave a la izquierda del nombre del campo. Por otro lado, en la parte de abajo de

-7-

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 7: Tras definir el primer campo de la tabla como clave primaria, podemos apreciar cómo aparece un icono con forma de llave a la izquierda del nombre del campo.

la ventana del diseño de la tabla aparece una descripción del tipo de campo elegido. En este caso (tipo “Número [NUMERIC]”), podemos especificar el tamaño en cifras (si se tratase de texto estaríamos hablando del número de caracteres) y el número de decimales (si ha lugar). Es importante que sepas que puedes especificar un valor determinado por omisión (si el usuario de la base de datos no da un valor para el campo al introducir los datos de un elemento). Abajo, en la caja Ejemplo de formato puedes ver cómo se mostrarían los valores almacenados (en informes, formularios o consultas).

Figura 8: Terminamos de definir los campos de la tabla “Películas”.

Ahora, tendríamos que ir introduciendo los sucesivos campos en filas consecutivas hasta completar el diseño de la tabla (definir todos los campos y sus dominios), tal como muestra la Figura 8. Observa que tenemos campos de tipo texto para almacenar el título, el nombre del director el género, el formato y la sinopsis, campos de tipo numérico para almacenar el identificador de la película (clave primaria creada por nosotros), la calificación y el identificador del estuche donde está guardada, y campos de otros tipos (fecha y booleano) para guardar la fecha de estreno en España y saber si la tenemos prestada o no.

-8-

EI(MT)1002. Informática Básica - 1er curso.

2.3.

Material de apoyo. Bases de datos con LibreOffice Base

Guardar una tabla

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. A continuación aparece un diálogo que pide que introduzcamos el nombre de la tabla. En dicha ventana introducimos el nombre Peliculas y pinchamos el botón Aceptar, tal como se puede apreciar en la figura de la derecha. Tras guardar la tabla, cerramos la ventana para el diseño de tablas. Si hemos seguido todos los pasos correctamente, la tabla Peliculas debe aparecer en la lista Figura 9: Guardamos la tabla de las películas una vez de objetos del tipo Tablas en la parte inferior de la ventana central de terminado su diseño. gestión de Base, tal como ilustra la Figura 10. Date cuenta de que no hemos empleado tildes ni caracteres propios del idioma, tales como eñes, a la hora de poner nombres a los campos o a la tabla. Esto es debido a que las tildes y otros caracteres propios del idioma pueden producir problemas en Base, por lo que es mejor evitar su uso, sobre todo si queremos usar la base de datos en otros sistemas operativos (Linux si estamos en Windows o viceversa). Recuerda que LO es multiplataforma. ¿A qué crees que es debido esto? Si has estudiado el Tema 3 de teoría deberías tener una respuesta para esta pregunta, si no, mal vas.

Figura 10: Aspecto de la ventana central de gestión tras haber creado la tabla de películas.

Figura 11: Abrimos la tabla de películas para insertar datos.

-9-

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 12: Hemos insertado diez registros (películas) en la tabla.

2.4.

Gestionar registros

A continuación, vamos a abordar el tema de la introducción de datos en las tablas que vayamos creando. En este momento, acabamos de crear la tabla para las películas. Nos disponemos, pues, a introducir algunos elementos en ella. Para ello, y desde la ventana central de gestión (véase la Figura 10), haremos doble clic con el botón izquierdo del ratón sobre la tabla Peliculas. Otra posibilidad consiste en acceder al menú contextual, haciendo clic con el botón derecho del ratón, y seleccionar la opción Abrir. Observa que hay una opción que se llama Editar que permite volver a la pantalla de diseño de tablas para poder modificar la definición de los campos de la tabla (o bien añadir o quitar campos).

Figura 13: No pueden existir valores repetidos para el campo Id_Peli porque se trata de una clave primaria.

A continuación, emerge una ventana similar a la que se muestra en la Figura 11. Esta ventana muestra la hoja de datos para la tabla. Observa que aparecen las diez columnas (campos) que definimos en el diseño de la tabla y ninguna fila insertada (como es natural, pues acabamos de crear la tabla). Podemos ver también que el campo Prestada aparece con un cuadrado. Este cuadrado indica que es un campo de tipo booleano y que aparezca con una rayita 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. Simplemente hemos de hacer clic con el ratón en la celda correspondiente al campo que queramos editar y teclear el valor que deseemos introducir. Hemos de proceder así, fila por fila, por cada nuevo registro (película) cuyos datos queramos introducir en la tabla. Tras introducir diez registros (películas) con todos los campos rellenos, tendremos una situación parecida a la que ilustra la Figura 12. Conviene que vayamos guardando los datos introducidos cada cierto tiempo (y para eso está el icono con forma de disquete que hay en la esquina superior izquierda). Queremos resaltar la importancia de la definición de las claves primarias en las tablas que creemos, ya que, al hacerlo, indicamos a Base que tome medidas para preservar la integridad de las mismas. Por ejemplo, observa atentamente la situación descrita en la Figura 13 al intentar introducir una nueva película en la tabla que tiene el mismo identificador que otra ya existente. Base no nos deja introducir ese dato y muestra, en una ventana emergente, un mensaje de error2 . A través de las opciones del menú Editar podemos borrar registros (previamente hacemos clic en la celda que hay a su izquierda para seleccionarlos, combinando con el uso de la tecla Ctrl para ampliar la selección) o bien modificar sus datos. También podemos modificar los datos pinchando en la celda que los contiene y reescribiendo a nuestra voluntad. En la parte inferior de la ventana se puede apreciar la barra de navegación entre registros (véase la Figura 12). En esta barra se indica, en la parte izquierda, la fila en la que estamos sobre el total de filas existentes, así como los botones, por este orden, para ir a la primera fila, a la anterior, a la siguiente, a la última o crear una nueva. También tenemos una serie de iconos de la barra de herramientas, destacados en el recuadro rojo que hay más a la 2 Como

en otras circunstancias, se trata de un mensaje ciertamente críptico. En general, ante mejorables mensajes de un sistema informático, es nuestra experiencia como usuarios y nuestros conocimientos lo que nos ayuda a su correcta comprensión y diagnóstico.

- 10 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 14: Aspectos finales de las tablas de estuches, actores y películas, respectivamente, tras introducir todos los datos disponibles.

izquierda en la Figura 12, que permiten ordenar los registros por orden ascendente o descendente según los valores del campo que hayamos seleccionado (haciendo clic con el botón izquierdo del ratón encima del nombre del campo). El primero de ellos (el de más a la izquierda) permite especificar criterios de ordenación más elaborados que impliquen a más de un campo. Los iconos que hay en el recuadro rojo que aparece más a la derecha en la Figura 12 permiten especificar las opciones de filtrado de datos, las cuales nos permiten elegir de forma simple qué datos queremos que se muestren. Las cuatro opciones, por el orden en que aparecen los botones, son: I Filtrado automático. Filtra las filas según el contenido del campo seleccionado. I Usar o no el filtro, es decir, conmuta entre las vistas con y sin filtro. I Filtro predeterminado, que permite establecer las opciones del filtro de forma parecida a como establecíamos los criterios de ordenación, teniendo en cuenta los valores que especifiquemos para varios campos. I Cancelar filtro, de manera que se muestran todos los registros de la tabla nuevamente. Tras terminar el proceso de creación de tablas y edición de datos con la base de datos de nuestro ejemplo, tendremos tres tablas (películas, estuches y actores) cuyos contenidos se muestran en la Figura 14. No obstante, no quisiéramos terminar sin apuntar que existe otra forma de introducir datos, más adecuada para usuarios finales de la base de datos (no informáticos). Esta manera alternativa consiste en usar un formulario, que previamente hay que definir. Lo veremos en la Sección 6.

- 11 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 15: Base proporciona una herramienta para definir las relaciones entre tablas.

3. 3.1.

Relaciones entre tablas Relación “uno a muchos” (1:M)

Una de las cosas más importantes en el modelo relacional de bases de datos es la correcta definición de las relaciones entre las entidades (tablas) que la conforman. Un buen diseño de la base de datos requiere que se establezcan adecuadamente estas relaciones. Si nos fijamos en nuestro ejemplo de las películas que se guardan en estuches, tenemos una relación de tipo 1:M (“uno a muchos”) entre los estuches y las películas, ya que un estuche permite guardar muchas películas (según su capacidad), pero una película concreta sólo puede estar almacenada en un estuche. Para poder establecer relaciones, en este caso la relación 1:M entre estuches y películas, Base proporciona una herramienta que permite definirlas con gran precisión. Esa herramienta la proporciona la ventana Diseño de relación, a la que se llega seleccionando la opción Relaciones. . . del menú Herramientas, tal como indica la Figura 15. Es necesario que definamos las relaciones con esta herramienta, porque si no Base no tiene forma de saber qué relaciones existen entre las tablas definidas, ni cuáles son los campos implicados en ellas. Se pueden producir errores en el acceso a la información o, lo que es peor, mostrar al usuario de la base de datos información duplicada o incorrecta si no definimos las relaciones existentes a través de esta herramienta. Una vez hemos abierto la ventana Diseño de relación, lo primero que tenemos que hacer es agregar las tablas con las que deseamos trabajar, es decir, las tablas correspondientes a las entidades que están relacionadas. En nuestro ejemplo, estas tablas son Estuches y Peliculas. Para agregar las tablas basta con pinchar en el icono correspondiente (resaltado con un círculo rojo en la imagen de arriba de la Figura 16) y seleccionar las tablas de la ventana que aparece, tal como ilustra la imagen de la parte superior de la Figura 16. Cada vez que seleccionemos una tabla que deseemos agregar, hemos de pinchar en el botón Añadir, también resaltado en dicha imagen. Cuando hayamos terminado de añadir las tablas mencionadas anteriormente, pulsamos el botón Cerrar para cerrar la ventana emergente con la lista de tablas. En ese momento, podemos apreciar que el aspecto de la ventana Diseño de relación es el que muestra la imagen en la parte inferior de la Figura 16. Como hemos visto ya, la relación entre estuches y películas es una relación 1:M, puesto que se pueden guardar varias películas en un único estuche, pero una película no puede estar en varios estuches a la vez. En otras palabras, es la tabla Peliculas la que hace el papel de “muchos” en esta relación. Por tanto, para establecer esta relación, necesitamos que el campo que actúa como clave primaria en la tabla Estuches conste también como clave externa3 en la tabla Peliculas. Este campo que actúa como clave externa en Peliculas, Id_Estuche, ya lo tuvimos en cuenta al diseñar la tabla Peliculas (véase la Figura 8). Para definir la relación entre las tablas agregadas, es decir, indicar los campos de ambas tablas a través de los cuales se establece la relación, pinchamos en el botón correspondiente de la barra de herramientas, que es el que está enmarcado con un rectángulo rojo en la imagen inferior de la Figura 16. En ese momento, definimos la relación que se establece 3 Recuerda

que en el Tema 1 de teoría ya se definió este concepto.

- 12 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 16: Diseño de una relación 1:M: añadiendo las tablas a la relación.

(a) Indicamos los campos de ambas tablas que están relacionados.

(b) El correspondiente a Estuches es clave primaria (es la parte “uno” en la relación).

Figura 17: Diseño de una relación 1:M.

- 13 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

conectando (o ligando) los valores de los campos Id_Estuche de ambas tablas en la ventana que ilustra la Figura 17(a). ¡Ojo! no es necesario que ambos campos tengan el mismo nombre en ambas tablas (podrían ser distintos), pero lo hemos hecho así en nuestro ejemplo para resaltar la relación existente. A la hora de establecer las opciones, fíjate en los valores seleccionados para Tablas implicadas, Campos implicados, Opciones de actualización y Opciones de eliminación en la Figura 17(a). Si quieres conocer más cosas al respecto del significado de las diversas opciones de actualización y eliminación, consulta la bibliografía. Tras hacer clic en el botón Aceptar, volvemos a la ventana principal del diseño de relación, donde podemos observar el aspecto que se muestra en la Figura 17(b). Se han resaltado los botones Deshacer, que permite deshacer la última relación que hemos creado, y Guardar, que es el que hemos de pinchar para guardar los cambios efectuados en la base de datos (en este caso, añadir una nueva relación), de la barra de herramientas.

3.2.

Relación “muchos a muchos” (M:M)

Figura 18: La relación M:M necesita de una tabla interpuesta. Aprovechamos para guardar información asociada a la relación que pueda interesarnos.

Otro tipo de relación que admite el modelo relacional es la relación “muchos a muchos”, conocida como M:M. En nuestro ejemplo, tenemos una tabla que guarda información de los actores que intervienen en las películas que tenemos en nuestra casa. Pensemos en la relación que se establece, precisamente, entre los actores y las películas. Por un lado, tenemos que un actor concreto ha podido participar en varias de las películas que tenemos (como es el caso de Ethan Hawke). Por otro,

- 14 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

sabemos que en una película determinada participan varios actores (como es el caso de Training Day, en la que participan Ethan Hawke y Denzel Washington). Es decir, que por un lado tenemos una relación 1:M entre actores y películas y, por otro, una relación 1:M entre películas y actores. Este tipo de relación se denomina “muchos a muchos” (M:M). Para representar una relación de este tipo no podemos replicar los campos clave de ambas tablas en la otra, como claves externas, ya que implicaría una gran redundancia de información (consulta los apuntes de teoría del Tema 1). Para poder definir esta relación en el modelo relacional, es necesario crear una nueva tabla que servirá para emparejar los datos que relacionan un determinado actor con una película concreta, tal como ilustran las imágenes de la Figura 18. En la imagen de arriba, podemos apreciar que, en la definición de la tabla, deben estar presentes los campos que actúan como claves primarias en las tablas Peliculas (Id_Peli) y Actores (Id_Actor). Además, podemos ver que se han seleccionado ambos campos y se ha establecido la combinación de los dos como clave primaria de la nueva tabla, a la que hemos denominado Papeles (observa atentamente el recuadro rojo).

Figura 19: Diseño de una relación M:M: Añadimos la nueva tabla interpuesta para poder crear las relaciones.

Si no tenemos ningún requisito de información particular podríamos dejar esta nueva tabla tal como está (sólo con esos dos campos actuando como clave primaria). Con esto nos bastaría para sacar listados que relacionasen actores con películas –“dame las películas en las que ha intervenido el actor X”– o viceversa –“dame los actores que han protagonizado la película Y”. Pero imagínate que estuviésemos interesados, por ejemplo, en conocer qué personaje ha interpretado un determinado actor en una película concreta. Este tipo de información está asociada con la relación y, si tenemos ese requisito (nos lo pide el cliente), podemos aprovechar la nueva tabla creada para guardar, igualmente, este dato. En la Figura 18 puedes apreciar que hemos aprovechado la tabla Papeles, creada para representar la relación M:M entre actores y películas, para guardar este dato, junto con la valoración que hace un crítico de cine de dicha interpretación. Ahora ya podemos dedicarnos a definir la relación M:M de manera explícita en Base. En la ventana Diseño de relación (ya hemos explicado antes cómo llegar a ella) vamos a agregar las tablas Papeles y Actores. Observa atentamente el proceso en la Figura 19 (sólo con la tabla Papeles). Procederíamos de la misma manera para añadir la tabla Actores. Ahora, lo único que resta por hacer es añadir las relaciones 1:M en ambos sentidos: de Peliculas con Papeles, a través de los campos Id_Peli de ambas tablas, y de Actores con Papeles, a través de los campos Id_Actor de ambas tablas, tal como describe la secuencia de imágenes de la Figura 20. De esta manera, conseguimos una relación M:M –de manera indirecta a través de la tabla Papeles y las relaciones 1:M definidas– entre Peliculas y Actores. Observa atentamente las opciones elegidas en las ventanas que permiten configurar ambas relaciones y no olvides pinchar el icono Guardar de la barra de herramientas para guardar todos los cambios efectuados en la base de datos.

4.

Diseño de consultas

El valor de una base de datos viene dado por la información que podemos extraer de ella y la rapidez con que lo hagamos. Si hacemos un buen diseño del modelo de información subyacente, tenemos muchas posibilidades de satisfacer el objetivo de la velocidad. En lo que resta de documento vamos a intentar mostrar cómo lograr el primer objetivo: extraer información de la base de datos. Para ello, resulta básica la herramienta de consultas que proporciona Base. A la hora de extraer información, también resulta importante la herramienta de generación de vistas, que introduciremos en la Sección 5. Para crear una consulta, Base proporciona tres posibilidades desde la ventana central de gestión de la base

- 15 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 20: Procedemos a crear las nuevas relaciones que definirán la relación M:M entre los actores y las películas que protagonizan.

de datos, tal como se puede apreciar en la Figura 21.

- 16 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 21: Creamos una consulta en vista Diseño.

4.1.

Vista diseño

En primer lugar, vamos a crear una consulta empleando la denominada vista Diseño (véase la Figura 21). Cuando pinchamos en esta opción, Base muestra la ventana de diseño de la búsqueda que se muestra en la serie de imágenes de la Figura 22. Ahora, nuestro objetivo es crear una consulta que muestre todas las películas protagonizadas por Ethan Hawke y que están guardadas en el estuche 1. Para cada película queremos mostrar su título, nombre del director, calificación, género, sinopsis, el personaje que en ella interpreta Ethan Hawke, la valoración crítica de su interpretación y la localización del estuche donde está guardada (es decir, la localización del estuche 1, pues por el criterio de la consulta todas las películas están almacenadas en ese estuche). Tal como se ilustra en la imagen de la Figura 22(a), lo primero que hay que hacer es añadir las tablas implicadas en la consulta. Para ello, hay que pinchar en el botón enmarcado en rojo de la barra de herramientas. Entonces, aparece la ventana emergente Agregar tabla o consulta. En dicha ventana hemos de pinchar en la tabla que deseemos añadir y, luego, pinchar el botón Añadir. Esto lo hacemos con las tablas Estuches y Papeles en nuestro ejemplo, pues son las dos que contienen los campos que queremos mostrar o usar para definir posteriormente los criterios de búsqueda (véase la imagen de la Figura 22(b)). Obviamente, también hemos de añadir la tabla Peliculas. Una vez hemos terminado de añadir las tablas necesarias pinchamos en el botón Cerrar de la ventana Agregar tabla o consulta. En este momento, tenemos la situación que se ilustra en la imagen de la Figura 22(c). En la parte de arriba de la ventana de diseño tenemos las tres tablas implicadas en la consulta, mientras que en la parte de abajo tenemos que comenzar a definirla. En primer lugar, tal como ilustra el círculo rojo de la imagen, hay que indicar cuáles son los campos implicados en la consulta, bien porque queremos mostrar los valores que almacenan, bien porque participan en la definición de los criterios de búsqueda. Para ello simplemente hemos de pinchar en la lista desplegable y seleccionar el que nos interese. Después, pasamos a la siguiente columna y seguimos el mismo procedimiento hasta que acabemos de seleccionar todos los campos implicados. Al mismo tiempo que vamos seleccionando los campos, podemos aprovechar para marcar la casilla de la fila Visible si se trata de campos cuyos valores se van a mostrar al ejecutar la consulta, tal como ilustra la imagen de la Figura 22(d). La imagen de arriba de la Figura 23 muestra la situación tras haber seleccionado todos los campos que van a mostrar sus datos en la consulta. Debes tener en cuenta que, cuando se muestre la ventana con los datos resultantes al ejecutar la consulta, en su cabecera aparecerán, por defecto, los nombres de los campos correspondientes tal cual se han definido en las tablas de la base de datos. Esto se puede cambiar para que en dicha cabecera aparezcan unos títulos más clarificadores acerca de los datos que se están mostrando. Esto es lo que Base conoce como asignación de alias. Precisamente ahora, podemos aprovechar para definir los alias (si ha lugar) en la fila correspondiente, tal como se muestra en la imagen de abajo de la Figura 23. En este caso, cambiamos los nombres de los campos –son los valores por defecto para los rótulos– “Personaje”, “Valoracion” y “Localizacion” por “Interpreta a:”, “Su actuación merece:” y “Está en:”,

- 17 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 22: Proceso de creación de una consulta que permite mostrar el título, nombre del director, calificación, género, sinopsis, personaje interpretado por el actor, calificación de su actuación y localización del estuche en que está guardada, de todas las películas protagonizadas por Ethan Hawke que están almacenadas en el estuche 1.

respectivamente. Tan sólo resta por definir los criterios de búsqueda. Para ello, emplearemos la fila Criterio en la parte de abajo, tal como ilustra la imagen de arriba de la Figura 24. Pero antes tendremos que añadir los dos campos implicados en la búsqueda –no se habían añadido anteriormente– que son Id_Actor de la tabla Papeles e Id_Estuche de la tabla Estuches. Fíjate que no hemos marcado sus casillas en la fila Visible, ya que no vamos a mostrar los valores de estos campos en la consulta, pues sólo se van a usar para especificar los criterios de búsqueda: sólo mostraremos las películas almacenadas en el estuche 1 (condición Id_Estuche igual a 1) protagonizadas por el actor Ethan Hawke (condición Id_Actor igual a 1, que es la clave correspondiente a Ethan Hawke). Finalmente, guardaremos la consulta con el nombre que deseemos (pinchando en el botón con forma de disquete en la barra de herramientas) y volveremos a la ventana central de gestión de Base, donde aparecerá en la lista de consultas creadas. Si ejecutamos la consulta (haciendo doble clic sobre su nombre), obtendremos el resultado que se muestra en la imagen de abajo de la Figura 24 (observa los rótulos enmarcados en rojo para ilustrar el uso de los alias). Date cuenta de que esta consulta funcionará gracias a que previamente definimos las relaciones entre las tablas Papeles y Peliculas por un lado, y Peliculas y Estuches por el otro en la Sección 3. De esta manera, Base puede usar estas relaciones para filtrar los datos convenientemente y evitar duplicados. Así, por ejemplo, sólo se mostrarán una sola vez los registros en los que coincida el valor del campo Id_Peli tanto en

- 18 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 23: Arriba: terminamos de seleccionar los campos que deseamos mostrar en la consulta. Abajo: definimos “alias” (nombres que aparecerán en la cabecera de la tabla) para ciertos campos.

la tabla Peliculas como en la tabla Papeles, que a su vez vendrán determinados por el valor del campo Id_Actor (sólo los que tengan el valor 1 para este campo). Esto mismo ocurrirá si tenemos en cuenta la relación 1:M entre estuches y películas establecida a través del campo Id_Estuche. Observa (mira nuevamente la imagen de arriba de la Figura 24) que también aprovechamos para definir los criterios de ordenación de los registros resultantes en la fila Orden (de mayor a menor calificación en nuestro caso). Para finalizar esta sección, queremos mostrarte otra forma alternativa, tal vez más adecuada desde el punto de vista de un

- 19 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 24: Arriba: finalmente, especificamos el criterio de búsqueda (observa los campos implicados y los valores buscados). Abajo: resultado de ejecutar la consulta definida (fíjate en que las cabeceras dentro del rectángulo rojo son los alias definidos para esos campos).

Figura 25: Otra forma alternativa de definir la última consulta efectuada. Observa que hay más tablas implicadas en la consulta (la de Actores).

- 20 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

usuario final, de realizar esta última consulta. Esta forma alternativa se ilustra en la Figura 25. En este caso empleamos el nombre del actor –Ethan Hawke– en lugar de la clave que lo identifica (1) a través del campo Nombre de la tabla Actores a la hora de definir uno de los dos criterios de búsqueda (el otro criterio, que implica al estuche, se deja igual que antes). Fíjate que, en este caso, hay cuatro tablas implicadas en la creación de la consulta en lugar de tres (hemos de añadir la tabla Actores pues es la única en la que aparece el campo Nombre del actor). También se ha modificado la condición referente al actor en el criterio de búsqueda, como hemos comentado antes, en la fila Criterio. Dejamos al lector que saque sus propias conclusiones al respecto. Hemos de apuntar que esta definición alternativa puede resultar en la práctica4 menos eficiente que la original, ya que necesita acceder a más tablas para obtener los datos. No obstante, un informático siempre puede recurrir al “truco” de lanzar una primera consulta que devuelva la clave a partir del nombre del actor y, posteriormente, ya conociendo el valor de la clave, ejecutar la primera versión de la consulta (la que empleaba dicha clave como criterio de búsqueda) para mostrar los datos solicitados de forma totalmente transparente al usuario final, ignorante del número y tipo de consultas efectuadas.

Figura 26: Creamos una consulta con el asistente que proporciona Base.

4.2.

Asistente

Otra posibilidad que nos ofrece Base para crear una consulta es el asistente –hay que pinchar en la opción marcada con el recuadro rojo en la Figura 26. Nuestro objetivo es crear una consulta que proporcione el nombre, fecha de nacimiento y nacionalidad de todos los actores de la base de datos que han nacido en Reino Unido. El proceso completo se describe de forma gráfica en la serie de imágenes que se muestran en la Figura 27. En el primer paso, hemos de seleccionar los campos implicados en la consulta, bien porque sean campos cuyos datos queremos mostrar por pantalla, bien porque sean campos que vamos a utilizar en la definición posterior de los criterios de búsqueda de la consulta. Para ello, tendremos que ir seleccionando las tablas correspondientes, para que sus campos aparezcan en la lista que se muestra en el cuadro de abajo (fíjate en las Figuras 27(a) y (b)). Para añadir todos los campos a la lista de Campos de la consulta que aparece en el cuadro de la derecha, habría que pinchar el botón ». Teniendo en cuenta la consulta que queremos realizar, sólo nos interesan los campos Nombre, Nacimiento y Nacionalidad de la tabla Actores. Por tanto, una vez seleccionados en el cuadro de la izquierda (podemos seleccionarlos todos o bien proceder uno por uno) los añadimos al cuadro de la derecha pinchando el botón >, tal como ilustra la Figura 27(c). A continuación, pinchamos el botón Siguiente y pasamos a la siguiente ventana (la que muestra la Figura 27(d)). Tras seleccionar los campos, pasamos a definir el orden por el que queremos clasificar los datos que se mostrarán al ejecutar la consulta. En nuestro ejemplo, queremos ordenar la lista de actores por fecha de nacimiento (de más antiguo a más reciente) en primer lugar. Como segundo criterio de ordenación (suponiendo que hubiese dos actores británicos 4 Sobre

todo si consideramos una situación real en una base de datos con miles de registros.

- 21 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 27: Proceso de creación de una consulta que permite mostrar el nombre, la fecha de nacimiento y la nacionalidad de todos los actores de la base de datos que han nacido en “Reino Unido” empleando el asistente de Base.

que hubiesen nacido en la misma fecha) lo haremos por el nombre en orden alfabético (fíjate bien en la imagen de la Figura 27(d)). Nuevamente pinchamos en el botón Siguiente para avanzar al siguiente paso. Observa que, si te equivocas en algún momento, siempre puedes retroceder al paso anterior pinchando en el botón Regresar. En este paso, la ventana del asistente pide que introduzcamos el criterio para realizar la búsqueda, es decir, hay que especificar las condiciones que queremos que cumplan los registros de la base de datos para ser mostrados al ejecutar la consulta, tal como ilustra la imagen de la Figura 27(e). En la parte de arriba de esta ventana hemos de decidir si queremos que la búsqueda satisfaga todas las condiciones que se detallan abajo (lo que sería una condición lógica AND) o bien solamente una cualquiera de ellas (lo que sería una condición lógica OR). En la parte de abajo hemos de seleccionar tanto los campos que determinan las condiciones de la búsqueda, como detallar cuáles son éstas. En nuestro ejemplo, solamente hay una condición que debe satisfacerse: buscamos actores británicos, es decir, aquellos registros que hay en la tabla Actores de la

- 22 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

base de datos cuyo valor para el campo Nacionalidad es igual a “Reino Unido”. Fíjate en la imagen de la Figura 27(e) y verás que éste es el criterio que hemos especificado. Después, pinchamos el botón Siguiente y pasamos al siguiente paso, ilustrado en la imagen que hay a su derecha. Podemos apreciar en la imagen de la Figura 27(f) que ahora toca seleccionar el tipo de consulta que deseamos realizar. Nosotros seleccionaremos la opción Consulta detallada, ya que deseamos mostrar todos los registros que satisfagan las condiciones de búsqueda de la consulta. La Consulta resumida implica usar lo que Base denomina “funciones agregadas”, que, de momento, no vamos a ver. El lector interesado debe remitirse a la bibliografía proporcionada para conocer más detalles al respecto. Tras pulsar el botón Siguiente pasamos a la ventana que se muestra en la Figura 27(g). El penúltimo paso consiste en ponerle un poco de “maquillaje” al listado resultante de la consulta definiendo los alias para los campos de las tablas implicadas. Recuerda –de cuando definimos la primera consulta empleando la vista diseño– que los alias se limitan a cambiar los rótulos que aparecerán en la cabecera del listado con los registros que cumplen con los criterios de búsqueda al ejecutar la consulta. Así, por ejemplo, queremos que en lugar de “Nacimiento” aparezca el rótulo “Fecha de nacimiento” en la columna correspondiente a dicho dato (no cambiaremos el rótulo para los otros campos). Después de definir los alias que se deseen, pinchamos nuevamente en el botón Siguiente y pasamos al último paso. El último paso realmente no es tal. Se trata simplemente de una ventana que muestra un resumen con la información que hemos ido introduciendo en las ventanas anteriores. Ésta es la última oportunidad que tenemos para volver atrás y rectificar los errores que pudiésemos haber cometido antes de guardar la consulta. Tan sólo queremos que observes con detenimiento dos cosas de la Figura 27(h).

Figura 28: Resultado de ejecutar la consulta “Actores_por_Nacionalidad” (haciendo doble clic con el botón izquierdo del ratón sobre su nombre).

En primer lugar, fíjate en la caja Nombre de la consulta. Por defecto, Base sugiere un nombre por defecto a la hora de guardarla. Lo normal es que lo cambies por otro que te resulte más adecuado (observa que nosotros lo hemos cambiado por el nombre Actores_por_Nacionalidad). En segundo lugar, tenemos que decidir cómo deseamos continuar una vez se haya creado la consulta al pinchar el botón Finalizar. Si elegimos la opción Mostrar consulta, Base cerrará la ventana al pinchar el botón Finalizar y la ejecutará mostrándose los resultados (registros que concuerdan con el criterio de búsqueda) en una nueva ventana, tal como ilustra la Figura 28. Por el contrario, si seleccionamos la opción Modificar consulta, Base la creará y la abrirá en la ventana de diseño de búsqueda, la cual ofrece mayores posibilidades que el asistente (véase la Figura 30). Esta ventana también la podemos abrir desde la ventana central de gestión, como hemos visto en la sección anterior. En cualquier caso, después de crear la consulta, ésta aparecerá en la lista de objetos correspondientes a Consultas en la ventana central de gestión de Base, tal como puede apreciarse en la Figura 29. Si hacemos clic con el botón derecho del ratón sobre el nombre de una consulta podremos acceder al menú contextual que tiene, entre otras, las opciones Eliminar y Editar. La primera permite borrar una consulta creada, tras confirmar la acción en la posterior ventana emergente que lo solicita. La segunda permite modificar las características de la consulta (editarla) desde la ventana de diseño de búsqueda, tal como se ilustra en la Figura 30. En la sección anterior ya vimos cómo crear una consulta desde la vista diseño. Aunque queremos que sea el lector el que saque sus propias conclusiones, pensamos que la vista diseño ofrece mayor flexibilidad y comodidad a la hora de configurar las diferentes opciones (campos visibles, alias, definición de criterios de búsqueda,. . . ).

4.3.

Vista SQL

Por último, vamos a ver la última posibilidad que ofrece Base para crear una consulta: se trata de la vista SQL (véase la Figura 31). SQL son las siglas de Structured Query Language (lenguaje estructurado de consultas), el cual constituye un lenguaje estándar implementado por los principales sistemas de gestión de bases de datos relacionales (consulta los apuntes de teoría del Tema 1).

- 23 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 29: Aspecto de la ventana central de Base tras haber creado la consulta “Actores_por_Nacionalidad”.

Figura 30: Abrimos la consulta que acabamos de crear en vista Diseño.

La vista SQL constituye una manera avanzada de crear las consultas, sólo apta para el profesional informático que tiene conocimientos de este lenguaje. Realmente, SQL es el lenguaje que utilizan los SGBD para acceder a la información, y Base no es una excepción a este respecto. En realidad, Base genera la instrucción SQL correspondiente a la consulta que hemos diseñado, siendo realmente dicha instrucción la que se emplea para el acceso a los datos. Vosotros no vais a usar esta vista para crear las consultas, pero pretendemos que os familiaricéis un poco con este lenguaje y, por eso, en el boletín habrá algún ejercicio en que se os pedirá que le echéis un vistazo a la instrucción SQL generada por Base al crear la consulta. La Figura 32 ilustra el proceso de creación de la consulta que permite mostrar el título, nombre del director, género,

- 24 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 31: Creamos una consulta en vista SQL.

Figura 32: Creamos una consulta en vista SQL (continuación).

calificación, fecha de estreno en nuestro país y localización del estuche donde está guardada, de todas las películas que están almacenadas en el estuche 2, ordenadas por calificación (de menor a mayor) y por orden alfabético del título (como segundo criterio de ordenación). En primer lugar, tenemos en la parte superior de la Figura 32 la ventana de diseño de búsqueda que aparece cuando creamos la consulta en vista SQL. Esta ventana es, básicamente, una ventana de edición, preparada para que el diseñador escriba la instrucción SQL que desea ejecutar. Para nuestro ejemplo, ésta se muestra en la ventana de abajo (véase la Figura 32). Observa que las palabras clave del lenguaje –SELECT, AS, FROM, WHERE, AND, ORDER BY,. . . – están

- 25 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 33: Aspecto de la ventana central de Base tras haber creado la consulta “Ejemplo_Consulta_SQL_1”.

marcadas en color azul. Por nuestra parte, poco más tenemos que añadir, ya que aprender SQL queda un poco lejos de nuestros propósitos (aunque sí que pretendemos que conozcas lo que es y para lo que sirve).

Figura 34: Resultado de ejecutar la consulta “Ejemplo_Consulta_SQL_1” (haciendo doble clic con el botón izquierdo del ratón sobre su nombre).

Una vez hemos terminado de escribir la instrucción SQL, hemos de pinchar el icono con forma de disquete (está enmarcado dentro de un recuadro rojo en la imagen de la segunda fila de la Figura 32) para guardarla. Entonces, aparece el cuadro de diálogo que se muestra en la parte inferior de dicha figura pidiendo que introduzcamos un nombre para guardar la consulta. Una vez escrito el nombre, pinchamos el botón Aceptar y volvemos a la ventana central de gestión, que ahora incluye la consulta recién creada (observa la Figura 33). Si hacemos doble clic sobre el nombre de la consulta, ésta se ejecutará y mostrará el resultado que podemos apreciar en la Figura 34.

5.

Generación y uso de vistas

En la “jerga” de las bases de datos, las vistas consisten en la definición de una tabla a partir del resultado de la ejecución de una consulta. Fíjate que, de hecho, el resultado de ejecutar una consulta se devuelve en forma de tabla (observa, por ejemplo, las Figuras 24 –abajo– 34 y 28). Date cuenta, igualmente, de que aunque la consulta puede incluir varias tablas, el resultado siempre será una única tabla. De ahí la potencia que proporciona la definición de vistas en los SGBD. A las vistas se les considera, en cierta forma, como tablas virtuales. Las vistas, por consiguiente, tienen la misma estructura que una tabla clásica: filas y columnas. La única diferencia es que sólo se almacena de ellas la definición, no los datos. Los datos que se recuperan mediante una consulta a una vista se presentarán igual que los de una tabla. De hecho, si no se sabe que se está trabajando con una vista, nada hace suponer que es así. Al igual que sucede con una tabla, se pueden insertar, actualizar, borrar y seleccionar datos en una vista. Aunque siempre

- 26 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 35: Arriba: definición de la consulta (vista Diseño) que devuelve todas las películas del género dramático. Abajo: resultado de ejecutar esta consulta. Fíjate en que el resultado es, también, una tabla.

es posible seleccionar datos de una vista, en algunos SGBD existen restricciones para realizar el resto de las operaciones sobre vistas bajo ciertas condiciones. Las vistas se tratan, pues, como una tabla más al nivel del gestor de base de datos. Pero, ¿para qué sirven? Hasta ahora hemos visto que sólo podemos realizar consultas sobre las tablas previamente definidas, pero ¿qué ocurre si necesitamos realizar una consulta, no sobre una tabla, sino sobre los resultados de otra consulta? Pues para esto sirve la definición de vistas: debemos convertir, previamente, la consulta primera en una vista para que, al tratarla el sistema como una tabla, pueda, posteriormente, ejecutar la segunda consulta sobre ella. Parece un trabalenguas, pero es bastante sencillo. Veamos un ejemplo. Imagina que queremos obtener la calificación media de todas las películas que son dramas (es decir, cuyo género es “Drama”). No podemos realizar esta consulta directamente sobre la tabla Peliculas, ya que no podemos agrupar unos datos que todavía no existen (se generan en la propia consulta) para calcular un promedio. Animamos al lector a que lo intente si no entiende lo que acabamos de decir. En su lugar, haremos esta consulta sobre el resultado de otra que devuelva una tabla con todas las películas del género dramático, previamente convertida en vista. De esta manera, al tener existencia ya en una tabla, podremos agruparlas para calcular su promedio. La imagen en la parte superior de la Figura 35 muestra el diseño de una consulta que muestra el título, el nombre del director, la calificación y el género de todas las películas cuyo género es “Drama”, ordenadas de mayor a menor calificación y, como criterio secundario, por el título en orden alfabético. Precisamente, la imagen de abajo de dicha figura muestra el resultado de ejecutar dicha consulta. Puedes apreciar que, realmente, el resultado de ejecutar la consulta es una nueva tabla. Para poder conseguir nuestro objetivo –calcular la calificación promedio de las películas dramáticas que hay en nuestra

- 27 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 36: Desde la ventana central de gestión de Base creamos una vista de la consulta recién creada.

Figura 37: Aspecto de la ventana central de gestión de Base tras crear una vista para la consulta diseñada en nuestro ejemplo. Observa que el icono para esta tabla “virtual” es distinto al de las tablas previamente creadas.

base de datos– tenemos que generar una vista –que Base tratará como una tabla más– a partir de esta consulta. La Figura 36 ilustra el proceso: desde la ventana central de gestión, una vez creada la consulta, procedemos a pinchar con el botón derecho del ratón sobre su nombre en la lista de objetos del tipo Consultas y seleccionamos la opción Crear como vista del menú contextual emergente. En ese momento, Base mostrará un diálogo donde nos pide que le demos un nombre a la vista (tabla) que vamos a crear. Rellenamos el dato (en nuestro caso le hemos dado el nombre Tabla_Consulta_Dramas) y pinchamos en Aceptar. Si ahora pinchamos en el icono correspondiente a los objetos de tipo tabla en la zona izquierda, la ventana central de gestión de Base tendrá el aspecto que muestra la Figura 37. Podemos apreciar que el icono que Base asigna a esta nueva tabla recién creada es diferente al de las otras, ya que ésta es una vista (tabla “virtual”) mientras las otras son tablas reales definidas en

- 28 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

el sistema.

Figura 38: Arriba: definición de la consulta (vista Diseño) que calcula la calificación media de las películas del género dramático. Abajo: resultado de ejecutar esta consulta.

Por nuestra parte, ya sólo resta definir la consulta sobre esta vista (consulta sobre consulta en realidad, tal y como queríamos). Para ello, creamos la consulta en vista Diseño con las características que se ilustran en la imagen de arriba de la Figura 38 (fíjate en las zonas marcadas en color rojo): I Añadimos solamente la tabla Tabla_Consulta_Dramas al diseño de la consulta. Ésta es la tabla que representa la vista recién creada. I Seleccionamos los campos Calificación y Género de la vista. Realmente, sólo nos importa el primero para poder efectuar el cálculo del promedio que nos piden, pero hemos incluido el segundo para ilustrar el uso de la función Agrupar. I Utilizamos la función Promedio sobre el campo Calificación. La función coge los valores para este campo de todos los registros de la vista (cinco en nuestro ejemplo) y calcula su promedio ((10 + 10 + 9 + 9 + 8)/5 = 9,2). Justo lo que deseamos. También utilizamos una función, Agrupar en este caso, sobre el campo Género. Lo que pretendemos es que se muestre un único valor para aquellos registros que tengan el mismo dato en este campo. En nuestro ejemplo, los cinco registros de la vista tienen, obviamente, el mismo valor (“Drama”) en este campo, por lo que se agrupan en

- 29 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

un único valor (véase la imagen de abajo de la Figura 38). Hay más funciones que pueden utilizarse en Base. Consulta la bibliografía y la ayuda de la aplicación para conocer más detalles al respecto. I Finalmente, pinchamos en el icono con forma de disquete que hay en la barra de herramientas y guardamos la consulta con el nombre Promedio_Dramas. El resultado de ejecutar la consulta se muestra en la imagen de abajo de la Figura 38. Podemos apreciar que el resultado es correcto, ya que aunque en realidad la calificación promedio es 9,2, el valor mostrado es un número entero (9) ya que así es como se definió en su momento el campo Calificación en la tabla Peliculas (véase la Figura 8). Observa, igualmente, el efecto de la función Agrupar, usada en la consulta aplicándola sobre el campo Género de la vista (el género, “Drama” obviamente, aparece una única vez, agrupado su valor para todos los registros).

6.

Formularios

Llegado este punto, la parte final de esta somera introducción a la gestión de bases de datos con LO Base, ya deberíamos tener claro que un buen diseño es parte importante en el funcionamiento de las bases de datos. No obstante, la parte fundamental de las mismas es, sin duda, la información que contienen. Una base de datos es valiosa en la medida en que lo es la información que contiene. Pero para poder extraer información primero hay que introducirla. La introducción de datos directamente en las tablas resulta pesada y propensa a cometer errores. Por este motivo, para que el usuario final de la base de datos pueda introducirlos de una manera más cómoda y eficaz, Base proporciona los formularios (forms en inglés).

Figura 39: Creamos un formulario usando el asistente de Base.

Los formularios son, pues, un tipo de objeto que va a permitir la introducción de datos en las tablas de una forma más sencilla y mejorada. En lugar de introducir los datos directamente sobre la tabla, los datos se introducen en la tabla a través de los formularios. En una base de datos se puede crear más de un formulario basado en una misma tabla. Un formulario puede tomar algunos campos de una tabla o todos; incluso puede tomar campos de diferentes tablas o consultas –en el caso de las consultas, lo más lógico es mostrar sus resultados, aunque para ello puede resultar más adecuado la utilización de informes. Así, mientras las tablas están pensadas para almacenar la información, los formularios se encargan de recogerla. Es muy importante que cierres las tablas con las que estés trabajando para que éstas puedan incluir los datos introducidos en los formularios. Al cerrar o guardar los formularios, las tablas se actualizan.

6.1.

Creación mediante el asistente

En primer lugar, vamos a crear un formulario que permita introducir, de forma sencilla, datos en la tabla de actores. Lo haremos usando el asistente para crear formularios que proporciona Base, tal como ilustra la imagen de la Figura 39.

- 30 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

La secuencia de imágenes que aparecen en la Figura 40 ilustra, paso a paso, el proceso de creación de un formulario sencillo para la introducción de datos de actores, con una serie de opciones predeterminadas a elegir. Como siempre, la vista Diseño proporciona mayor flexibilidad y mayor número de opciones, aunque también resulta un proceso más complejo. Lo veremos posteriormente cuando creemos un formulario para introducir los datos de las películas.

Figura 40: Proceso de creación del formulario para la introducción de datos en la tabla Actores empleando el asistente de Base.

El primer paso consiste en la selección de la tabla que va a quedar “ligada” al formulario y en la especificación de los campos que van a aparecer en el mismo (véase la imagen de la Figura 40(a)). También podemos elegir una consulta, ya que las consultas devuelven los datos en forma de tabla (recuerda las vistas), pero no tiene mucho sentido salvo para mostrar información. En nuestro ejemplo, seleccionamos la tabla Actores de la lista desplegable y añadimos todos sus campos al formulario (ya sabes, pinchando en el botón »), ya que queremos introducir todos los datos a través del formulario (fíjate en las zonas enmarcadas en rojo de la imagen). Después, pinchamos el botón Siguiente para pasar al siguiente paso. El siguiente paso resulta un tanto más complejo y, de hecho, no lo vamos a ver con detalle en este material de apoyo, por lo que nos limitaremos a pinchar en el botón Siguiente, tal como indica la imagen de la Figura 40(b). Se trata de crear lo que Base denomina subformularios. Un subformulario no es más que un formulario relacionado con el que estamos creando y resulta útil cuando, por ejemplo, queremos introducir datos en una tabla y, al mismo tiempo, en otra(s) tabla(s) que pueda(n) estar relacionada(s). Por ejemplo, si te fijas bien en la imagen (el texto está en gris porque no se ha activado), podrás ver que en nuestro caso podríamos añadir un subformulario basado en la tabla Papeles que está relacionada con Actores (repasa la Sección 3). Como hemos comentado, no vamos a explicar cómo configurar un subformulario. Si tienes curiosidad, puedes averiguar más detalles al respecto en la bibliografía. El tercer paso consiste en configurar la apariencia del formulario (véase la imagen de la Figura 40(c)). Podemos decidir si queremos que las etiquetas (rótulos que identifican los campos) aparezcan a la izquierda o a la derecha de las cajitas de diálogo (seleccionamos izquierda) y la disposición de los elementos en el formulario (hemos elegido en columnas con las etiquetas al lado elegido arriba). Otras disposiciones posibles son en columnas con las etiquetas arriba, en forma de tabla

- 31 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

o agrupados. Tras elegir las opciones deseadas, hemos de pinchar nuevamente en el botón Siguiente, lo que nos llevará al cuarto paso, donde hemos de decidir cómo vamos a utilizar el formulario (véase la imagen de la Figura 40(d)):

Figura 41: Aspecto de la ventana central de gestión tras crear el formulario Form_Intro_Actores.

I Sólo para introducir datos nuevos. El formulario no va a permitir “navegar” por los registros ya introducidos en la tabla (Actores en nuestro ejemplo), por lo que no mostrará los datos existentes. Ésta es la manera en que hemos decidido utilizarlo en nuestro ejemplo. I Mostrando todos los registros. De esta manera sí que permitimos visualizar los datos de todos los registros previamente introducidos. En este caso, podemos extender el control del formulario a tres niveles diferentes: • Mostrar los datos existentes, pero no permitir su modificación. Por tanto, sólo podemos introducir datos nuevos. • No permitir el borrado de datos existentes. Podemos modificar los datos, pero no borrar registros existentes, aparte de introducir datos nuevos como en el caso anterior. • No permitir la introducción de nuevos datos. Es decir, usaremos el formulario para modificar datos existentes. Combinado con los anteriores, ni siquiera eso podremos hacer, aunque esto sólo tiene sentido si se trata de mostrar los datos de una consulta. Una vez pinchado el botón Siguiente, pasamos al penúltimo paso, en el que hemos de decidir sobre cuestiones meramente “estéticas”: el color de fondo de la pantalla del formulario y el efecto de los bordes de los campos. En la Figura 40(e) puedes apreciar que hemos elegido el color “Azul hielo” y el efecto “3D”, respectivamente. Una vez más, pinchamos el botón Siguiente y, ahora, pasamos al último paso, donde únicamente hemos de introducir un nombre para guardar el formulario y decidir si deseamos ejecutarlo o modificarlo en la ventana de diseño al finalizar el proceso. Si te fijas en la imagen de la Figura 40(f) verás que hemos guardado el formulario con el nombre Form_Intro_Actores y que hemos seleccionado la opción de ejecutarlo (trabajar con él). Concluiremos el proceso haciendo clic en el botón Finalizar. Tras crear el formulario, el aspecto de la ventana central de gestión de Base será similar al que ilustra la Figura 41. La Figura 42 muestra el resultado de ejecutar el formulario que acabamos de crear con el asistente. El usuario se limitará a introducir nuevos datos en las correspondientes cajas de texto. Observa (abajo a la izquierda en la imagen) que el formulario sólo permite mostrar los registros nuevos que estamos introduciendo con él, tal como lo habíamos configurado (recuerda que teníamos ya cinco actores en nuestra base de datos; observa la Figura 14). En la imagen de la Figura 42 hemos destacado tres botones de la barra de herramientas de abajo (fíjate en los recuadros de color rojo). De izquierda a derecha, respectivamente, permiten avanzar al siguiente o retroceder al anterior registro, guardar los datos de los registros introducidos en el formulario (éste es el que usaremos preferiblemente para guardar los datos escritos en el formulario en la tabla de la base de datos) y actualizar la base de datos con los registros introducidos en el formulario, tal como indican los rótulos de la imagen.

- 32 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 42: Ejecutamos el formulario Form_Intro_Actores e introducimos los datos del actor Philip Seymour Hoffman.

Figura 43: Registros de la tabla Actores tras guardar la entrada anterior en el formulario (se han añadido los datos de Philip Seymour Hoffman).

La Figura 43 muestra el contenido de la tabla Actores tras guardar los datos introducidos en el formulario para el actor Philip Seymour Hoffman. Observa que se ha añadido un nuevo registro con dichos datos al final de la tabla. Recuerda que para poder usar el formulario de introducción de datos es necesario que la tabla esté cerrada, si no, se producirán errores. Al hilo de los errores que pueden producirse, conviene recordar que el campo Id_Actor es la clave primaria de la tabla Actores, por lo que los valores que se introduzcan en este campo deben ser únicos. El formulario comprueba este tipo de restricciones (entre otros) y no deja introducir registros con claves duplicadas, tal como ilustra la Figura 44. El error se produce porque estamos intentando guardar un nuevo registro (los datos del actor Tommy Lee Jones) con valor 6 para el campo Id_Actor, el cual coincide con la clave de Philip Seymour Hoffman, previamente introducido (observa atentamente las marcas en rojo de la imagen).

6.2.

Creación en vista diseño

A continuación, vamos a crear un formulario para introducir los datos de las películas empleando la vista Diseño, tal como prometimos con anterioridad. El proceso va a ser más complejo y arduo, a cambio de tener una mayor flexibilidad y control total en la definición del formulario (lógicamente, también se requiere algo más de conocimiento). Para empezar, haremos clic en la opción que permite crear un formulario en la vista Diseño desde la ventana central de gestión, tal como se indica en la Figura 45. En este momento aparece la ventana para el diseño de formularios, con un aspecto similar al que muestra la Figura 46. Podemos distinguir la zona central –despejada– de la ventana donde vamos a ir añadiendo los diversos campos que conforman el formulario, así como las barras de herramientas que hay a la izquierda y abajo, respectivamente la de campos del formulario (izquierda), diseño del formulario (abajo a la izquierda) y dibujo (abajo a la derecha). Nosotros emplearemos

- 33 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 44: Se produce un error al intentar guardar los datos de un nuevo actor con una clave ya existente en el formulario.

Figura 45: Creamos un formulario en la vista Diseño de Base.

fundamentalmente la primera (campos del formulario). El primer paso que tenemos que dar es crear un formulario nuevo. Para ello, procederemos tal como ilustra la Figura 47. Ejecutamos el Navegador del formulario pinchando en el botón enmarcado en un cuadro rojo de la barra diseño del formulario. Entonces, emerge una ventana pequeña dentro del formulario. Hacemos clic con el botón derecho del ratón sobre Formularios y seleccionamos la opción Formulario dentro de Nuevo del menú contextual. A continuación, le damos un nombre al formulario que acabamos de crear, Form_Intro_Pelis en nuestro caso, tal como indica la Figura 48. Para ello, simplemente pinchamos con el ratón en la cajita enmarcada en rojo y tecleamos el nombre que deseemos. Ahora, vamos a configurar las propiedades del formulario. Hemos de hacer clic con el botón derecho del ratón sobre el nombre del formulario recién creado y elegir la opción Propiedades del menú contextual emergente. En ese momento aparece la ventana que muestra la imagen de la Figura 49. Hacemos clic en la pestaña Datos y seleccionamos la tabla Peliculas como el contenido para el formulario, “ligando” de esta manera la tabla y el formulario (fíjate en la zona encuadrada en

- 34 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 46: Ventana para el diseño de formularios en Base.

Figura 47: Usamos el navegador para crear un nuevo formulario.

rojo en la parte de arriba de la ventana). Las opciones marcadas en rojo abajo en la imagen tienen que ver con la configuración de la forma en la que vamos a utilizar el formulario, algo que ya comentamos debidamente cuando empleamos el asistente para crear nuestro primer formulario (recuerda la imagen de la Figura 40(d) y los párrafos de texto que la comentaban). En este caso, vamos a usar el formulario tanto para añadir datos como para modificar los existentes, “navegando” por los registros de la tabla. Igualmente, vamos a permitir el borrado completo de registros (fíjate bien en las opciones elegidas en la imagen de la Figura 49). Llega el momento de guardar en disco por primera vez el formulario que hemos creado (conviene ir guardando con cierta frecuencia el trabajo efectuado). Para ello, pinchamos en el botón con forma de disquete de la barra de herramientas que hay en la parte superior de la ventana de diseño de formularios, tal como indica la Figura 50. En la ventana que emerge a continuación indicamos el nombre del archivo donde va a guardarse el formulario (usamos el mismo nombre que le dimos al formulario, Form_Intro_Pelis) y pinchamos en el botón Guardar, tal como ilustran las zonas marcadas en rojo en la imagen (por cierto, fíjate que aparece el formulario Form_Intro_Actores que creamos con el asistente). Vamos a añadir el primer campo del formulario. Se trata de un campo de texto que vamos a utilizar para insertar (si añadimos un registro nuevo) o mostrar (si visualizamos los datos de uno ya existente) los datos del identificador de películas

- 35 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 48: Le damos el nombre “Form_Intro_Pelis” al formulario recién creado.

Figura 49: Accedemos a las propiedades del formulario para configurarlo adecuadamente.

(campo Id_Peli en la tabla Peliculas). Para añadir campos al formulario, emplearemos siempre la barra de herramientas campos del formulario que hay a la izquierda, tal como ilustra la Figura 51. Fíjate que pinchamos el botón “Campo de texto”. En ese momento, el cursor cambia su forma. Si arrastramos con el ratón (manteniendo pulsado el botón izquierdo) sobre el área en blanco del formulario definimos el espacio que ocupará el campo en el formulario. Posteriormente, podemos usar los tiradores (cuadraditos de color verde) para definir mejor el tamaño (pinchando y arrastrando con el ratón). También podemos mover el control y situarlo donde queramos arrastrándolo con el ratón. Lo más importante es definir las propiedades de los controles que vamos añadiendo al formulario (en este momento sólo hemos añadido el campo de texto), ligándolos con los campos correspondientes de la tabla de la base de datos asociada al mismo. Para poder hacer esto, tenemos que hacer clic con el botón derecho del ratón sobre el control cuyas propiedades deseamos configurar y seleccionar la opción Campo de control. . . del menú contextual que aparece. En ese momento, aparece una ventana como la que ilustra la Figura 52. En la pestaña Datos (véase la Figura 52) seleccionamos el campo de la tabla Peliculas que deseamos asociar al control, Id_Peli en nuestro ejemplo. Por otro lado, usaremos la pestaña General para darle un nombre al control que lo identifique de forma única en el formulario y para configurar sus opciones de aspecto y contenidos. Observa las opciones marcadas

- 36 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 50: Guardamos el formulario en un archivo con su mismo nombre.

Figura 51: Añadimos un campo de texto al formulario. Arrastrando las tiras con el ratón controlamos sus dimensiones. Para mover el campo de texto basta con arrastrarlo con el ratón.

en rojo en la Figura 53, donde le hemos puesto el nombre Campo_Id_Peli al control y donde hemos dejado las opciones de configuración por defecto: el control está activado (si no, no podría usarse en el formulario), es visible (podemos tener formularios con campos “invisibles” para el usuario –internos, para la gestión de datos del formulario, aunque esto es algo más avanzado que no vamos a tratar) y permite escribir datos en él (si fuese de sólo lectura se limitaría a mostrar los datos, lo cual no tiene sentido si pretendemos usarlo para añadir nuevos registros o modificar los ya existentes). Hay más opciones, pero estudiarlas queda fuera del objetivo de esta práctica. Si tienes curiosidad al respecto consulta la bibliografía y la propia ayuda de la aplicación. Obviamente, un formulario donde sólo aparecen controles (por ejemplo, cajas de texto donde debemos cumplimentar datos) y nada más, no tiene mucha utilidad para un usuario final (¡ni siquiera para un informático!), ya que no sabría qué datos escribir en qué sitios. Necesitamos añadir rótulos (etiquetas en la jerga de Base) al formulario que indiquen explícitamente a qué tipo de información hace referencia cada control. En la Figura 54 se ilustra el proceso de inserción de una etiqueta en el formulario. Hemos enmarcado en rojo el botón de la barra de herramientas de la izquierda que hay que pinchar para añadir una etiqueta. Para situarla en la ventana del formulario procederemos de la misma manera que hicimos

- 37 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 52: Accedemos a las propiedades del campo de texto, concretamente a la pestaña Datos, para asociarle un campo de la tabla Peliculas.

Figura 53: En la pestaña General asignamos un nombre que haga referencia al campo del formulario.

con el campo de texto anterior (y como haremos, de ahora en adelante, con cualquier control que añadamos al formulario). Una etiqueta tiene una serie de propiedades, entre las que vamos a destacar el nombre que la identifica en el formulario, su título o leyenda (el texto que va a mostrar), el tipo de letra (fuente, tamaño, efectos. . . ) que emplea y su alineación (tanto horizontal como vertical) dentro de la “caja” que la contiene. Para poder acceder a la ventana que permite configurar sus propiedades, hemos de hacer doble clic sobre la etiqueta. Entonces aparece la ventana que podemos ver en la Figura 54, donde hemos marcado en rojo las opciones escogidas en nuestro caso (fíjate bien). El texto que va a mostrar la etiqueta es “Identificador:”, como puede apreciarse, en fuente Arial, negrita y tamaño 10 pt. El tipo de fuente y sus características se escogen en otra ventana que aparece al pinchar en el botoncito de la derecha con la forma . . . . Recuerda que tienes que ir guardando cada cierto tiempo el trabajo efectuado. Para ello, has de pinchar en el icono con forma de disquete en la barra de herramientas que hay en la parte de arriba de la ventana del diseñador, tal como se expuso en la Figura 50. Ahora, tras crear el campo de texto y su rótulo correspondiente, es un buen momento para hacerlo. Puesto que ya sabemos crear campos de texto –y asociarlos con los campos correspondientes de la tabla ligada al formulario– y poner los rótulos adecuados, vamos a saltarnos unos cuantos pasos, en una pequeña elipsis temporal, en

- 38 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 54: Añadimos una etiqueta (texto) al formulario.

Figura 55: Aspecto del formulario tras haber añadido los cinco campos de texto.

el proceso de diseño de nuestro formulario para manipular la tabla Peliculas. En estos momentos, tras crear controles asociados a los campos Id_Peli, Título, Director, Género y Sinopsis, el aspecto de nuestro formulario es el que se muestra en la Figura 55. Procedemos, a continuación, a añadir otros controles para entrada de datos diferentes a las meras cajas de edición que ofrece el control para campos de texto. En primer lugar, vamos a añadir una casilla de verificación que vamos a asociar, en la pestaña Datos de la ventana que muestra sus propiedades, al campo Prestada de la tabla Peliculas. Recuerda que este campo era de tipo booleano (Sí/No o True/False, como prefieras) y que servía para indicar si habíamos prestado la película a alguien o no. Precisamente, la casilla de verificación es un tipo de control que sólo ofrece dos posibilidades para la entrada de datos: o está seleccionado o no lo está (es decir, Sí/No, como el campo de la base de datos que hemos asociado). En la Figura 56 hemos marcado en rojo tanto el botón de la barra de herramientas de la izquierda que hay que pinchar para añadirlo al formulario, como las opciones de configuración de su aspecto elegidas en la pestaña General de la ventana que muestra sus propiedades. Ya deberías saber que, para acceder a la ventana de propiedades, hemos de hacer clic con el botón derecho del ratón sobre el control que deseamos configurar y escoger la opción Campo de control. . . del menú contextual que emerge, o

- 39 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 56: Añadimos una casilla de verificación para marcar si la película está prestada o no.

bien hacer doble clic sobre él. En la imagen de la Figura 56 lo hemos nombrado como Casilla_Prestada, hemos escrito el texto “Prestada” como leyenda a mostrar en el formulario, hemos cambiado el tipo de fuente (la misma que en el resto de rótulos del formulario) y dejamos como Estado predeterminado el valor No seleccionado, que es el valor por defecto. Esto último sirve para indicar qué valor va a tener este campo en caso de que el usuario no realice ninguna acción sobre él (deberíamos fijar el valor que con mayor frecuencia introduzcan los usuarios). Recuerda que en la pestaña Datos hay que asociar el control con el campo Prestada de la tabla Peliculas, aunque no lo hayamos mostrado en una figura.

Figura 57: Añadiendo otro tipo de campos, en este caso un campo de fecha.

Si recuerdas –véase la Sección 2– en la tabla Peliculas teníamos el campo Año para almacenar la fecha de estreno de la película en nuestro país. Pues bien, la herramienta de diseño de formularios de Base proporciona un tipo de control específico para la introducción de datos de tipo fecha. Procedemos a añadir un control de esta naturaleza en nuestro formulario, que vamos a asociar con el campo Año de la tabla Peliculas –recuerda, en la pestaña Datos de la ventana de propiedades. Para ello, basta con seguir las indicaciones que se muestran en la Figura 57. Primero pinchamos en el botón Más campos

- 40 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

de control de la barra de herramientas de la izquierda para poder acceder a la pequeña ventana emergente que los muestra y, en ella, hacemos clic en el botón que hemos resaltado con un círculo rojo en la imagen (tiene un pequeño icono en forma de calendario). Entonces, podemos añadir el control al formulario y, como ya sabemos, configurarlo en la ventana de propiedades (ya deberías saber cómo acceder a ella). En nuestro caso, queremos que te fijes en las opciones que hemos marcado en rojo en la pestaña General, aparte de las ya conocidas, de arriba a abajo: I Como siempre, el nombre que asignamos al control, Campo_Estreno en nuestro caso. I Indicamos que deseamos que se controle el formato, es decir, que si el usuario introduce un valor para la fecha que no concuerde con el formato que definimos más abajo, el formulario mostrará un error. I Controlamos que no se introduzcan fechas anteriores al 1 de enero de 1900 ni posteriores al 31 de diciembre de 2100. I Establecemos que el usuario debe especificar la fecha con el siguiente formato: dos cifras para indicar el día, seguido de barra, dos cifras para indicar el mes, nuevamente una barra y, finalmente, cuatro cifras para especificar el año.

Figura 58: Asistente para añadir un elemento cuadro de grupo al formulario: primera ventana.

Vamos a añadir, a continuación, un control que requiere mayor elaboración. Se trata de lo que Base denomina cuadro de grupo. Pero antes, expliquemos cuál es el motivo de emplearlo en nuestro formulario. Si recuerdas, en la definición de la tabla Peliculas (véase nuevamente la Sección 2) habíamos definido el campo Formato para guardar la información relativa al tipo de formato en el que está codificada la película. Realmente, sólo disponemos en nuestra casa de películas en formato digital, guardadas en soporte DVD (y codificadas como tal) o bien en soporte CD (y codificadas como Vídeo-CD, DivX o XviD). Es decir, que realmente sólo dispongo de cuatro alternativas posibles a la hora de establecer un valor para este campo de la tabla. El cuadro de grupo es el control que mejor se adecúa a las características del campo Formato, ya que sólo permite elegir una de entre varias (pocas, habitualmente) opciones posibles. Para crearlo, necesitamos activar la ventanita que muestra más campos de control (ya hemos visto cómo anteriormente) y hacer clic en el botón que se muestra enmarcado en rojo en la Figura 58. Al añadir este control al formulario, ocurre algo que no había sucedido anteriormente con el resto de controles añadidos: aparece la ventana de un asistente que nos va a guiar paso a paso en la configuración de este control (ya habíamos advertido que resultaba un proceso más complejo). Observa en la Figura 58, que el primer paso del asistente va a consistir, precisamente, en definir los nombres de las opciones que va a mostrar el control. Para añadir una opción a la lista, basta con escribir el texto deseado en la caja de texto ¿Qué nombres deben contener los campos de opción? y hacer clic en el botón » (si queremos quitar o modificar el nombre de una opción, basta con seleccionarla en la lista de la derecha y pinchar el botón « para editarla convenientemente en la caja de texto). Al final del proceso, el resultado será el que se muestra en la Figura 59. En ese momento pinchamos el botón Siguiente, tal como se indica en dicha imagen. En el paso siguiente, el asistente pregunta qué opción debe marcarse como predeterminada (si es que ha de marcarse alguna) en el caso de que el usuario no marque ninguna al introducir datos con el formulario. Puesto que en nuestro caso la

- 41 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 59: Asistente para añadir un elemento cuadro de grupo al formulario: asignamos los nombres a las opciones.

Figura 60: Asistente para añadir un elemento cuadro de grupo al formulario: seleccionamos la opción predeterminada.

mayoría de películas están en formato DVD, aprovechamos para fijar esta opción como predeterminada, tal como ilustra la Figura 60. Fíjate que si no deseamos fijar ninguna opción habría que pinchar en No, no debe ser seleccionado ningún campo. Luego, hacemos clic en el botón Siguiente. Ahora hemos de asignar los valores que realmente se van a almacenar en el campo Formato de la tabla Peliculas según la opción que elija el usuario. Es decir, que lo que hemos hecho hasta ahora realmente es definir los rótulos que verá el usuario del formulario. Pero esos rótulos no tienen por qué coincidir con los valores (datos) que se van a guardar en la tabla. Éste es el momento para asociar los valores a almacenar (datos) con dichos rótulos. En nuestro ejemplo, sí que se da esta coincidencia entre rótulos y valores a almacenar. Puedes apreciar en la figura 61 que son los mismos (en la imagen se ilustra solamente el caso del rótulo “DVD” asociado con el texto –dato– DVD que se almacenará cuando el usuario escoja esta opción, pero para el resto es igual). Nuevamente pinchamos en el botón Siguiente cuando terminemos con esta ventana.

- 42 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 61: Asistente para añadir un elemento cuadro de grupo al formulario: asignamos los valores a los nombres de las opciones.

Figura 62: Asistente para añadir un elemento cuadro de grupo al formulario: asignamos campo de la base de datos (tabla Peliculas en este caso) al cuadro de grupo.

Todavía no hemos asociado realmente el control de cuadro de grupo con ningún campo de la tabla Peliculas, aunque está claro, a tenor del discurso efectuado, que es el campo Formato el que está en nuestro pensamiento. Ahora es el momento de establecer esta asociación, tal como ilustra la Figura 62. Finalmente, sólo resta por escribir el título (leyenda) que mostrará en el formulario el cuadro de grupo al usuario. Hemos decidido escribir el texto “Formato almacenamiento”, tal como ilustra la Figura 63. Posteriormente, pinchamos en el botón Finalizar para concluir el proceso. Puedes apreciar mejor los detalles de este cuadro de grupo en el formulario de la Figura 67. Por cierto, si te fijas bien, podrás apreciar que se ha definido otro cuadro de grupo. ¿Sabrías indicar cuál es? Por último, analicemos otra situación peculiar que se produce a la hora de insertar (o modificar) los datos de una película. En la tabla Peliculas definimos el campo Id_Estuche para almacenar el identificador del estuche donde se guarda la película;

- 43 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 63: Asistente para añadir un elemento cuadro de grupo al formulario: escribimos el rótulo para el título del cuadro.

Figura 64: Asistente para añadir un elemento cuadro de lista al formulario: indicamos la tabla que va a usarse para rellenar la lista.

de hecho, este campo se utilizaba como clave externa para representar la relación 1:M entre las tablas Estuches y Peliculas (consulta las Secciones 2 y 3). Sería interesante que, a la hora de introducir este dato, el usuario pudiese elegir solamente entre los valores proporcionados por una lista que se cargase automáticamente con los datos almacenados en la tabla Estuches (es decir, los estuches que realmente tenemos). Precisamente para eso, Base proporciona el campo de control denominado listado o cuadro de lista. Vamos a añadir, pues, un control de este tipo que se “alimente” de los diferentes valores del campo Localizacion de la tabla Estuches. Para ello, hay que hacer clic en el botón de la barra de herramientas de la izquierda que se muestra enmarcado en rojo en la Figura 64. Al añadir este control al formulario, nuevamente aparece la ventana de un asistente que nos va a guiar paso a paso en su configuración. Observa en la Figura 64, que el primer paso del asistente va a consistir, precisamente, en indicar

- 44 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

cuál es la tabla de la cual deben tomarse los datos que van a rellenar el contenido de la lista. Nosotros hemos seleccionado, obviamente, la tabla Estuches, tras lo cual hacemos clic en el botón Siguiente.

Figura 65: Asistente para añadir un elemento cuadro de lista al formulario: ahora indicamos cuál es el campo de donde deben tomarse los valores para rellenar la lista.

A continuación, indicamos cuál es el campo de la tabla seleccionada (Estuches) cuyos datos se mostrarán en el listado. En nuestro ejemplo, es el campo que almacena la localización de los estuches en la tabla Estuches el que va a proporcionar los valores para rellenar las opciones de la lista. Por tanto, elegimos el campo Localizacion y hacemos clic en el botón Siguiente, tal como muestra la Figura 65.

Figura 66: Asistente para añadir un elemento cuadro de lista al formulario: último paso, indicamos los campos relacionados en ambas tablas.

- 45 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Como colofón, tan sólo resta indicar cuáles son los campos de ambas tablas a través de los cuales se establece la relación 1:M. El contenido de ambos campos debe coincidir para mostrar el valor adecuado de los registros existentes en el cuadro de lista. Estos campos son los denominados Id_Estuche en ambas tablas, tal como ilustra la Figura 66. Tras seleccionar ambos en sus respectivos cuadros (fíjate en los recuadros en rojo), hacemos clic en el botón Finalizar. En este momento, hemos terminado con el diseño del formulario. Guardamos los cambios, cerramos la ventana de diseño de formularios y volvemos a la ventana central de gestión de Base.

Figura 67: Mostrando los datos de la primera película de la tabla Peliculas con el formulario que acabamos de diseñar.

La Figura 67 muestra el resultado de ejecutar el formulario recién diseñado (haciendo doble clic en el nombre del formulario desde la ventana central de gestión). Podemos apreciar que, inicialmente, se muestran los datos del primer registro (película) almacenado en la tabla Peliculas. Recuerda las propiedades que definimos para este formulario (véase la Figura 49). Observa atentamente el contenido de los campos del formulario y su relación con los campos de la tabla Peliculas. También podemos usar este formulario para introducir nuevos registros (películas) en la base de datos, tal como ilustra la Figura 68 (insertamos los datos de la película Happiness). Para ello, nos desplazamos hasta el último registro (usando la barra de navegación de abajo) y nos situamos una posición más. Entonces aparece el formulario con los campos vacíos (o con los valores por defecto) esperando que los rellenemos. Eso es lo que hacemos, empleando los valores que aparecen en la Figura 68. Para guardarlos en la tabla Peliculas pinchamos en el botón con forma de disquete en la barra de herramientas de abajo (está enmarcado en rojo en la imagen). Si ahora cerramos el formulario y abrimos la tabla Peliculas desde la ventana central de gestión, podemos apreciar que se ha añadido correctamente el registro con los datos introducidos en el formulario, tal como ilustra la Figura 69. Si en cualquier momento se desea modificar el diseño del formulario, haremos clic con el botón derecho del ratón sobre el nombre del mismo en la ventana central de gestión y elegiremos la opción Editar del menú contextual emergente para abrir la ventana de diseño de formularios y así poder modificarlo.

7.

Informes

Los informes son documentos que se utilizan para presentar los datos de una forma que resulte más legible por parte de, por ejemplo, los directivos de una empresa. Normalmente los informes van asociados con la ejecución de consultas, aunque también pueden utilizarse para presentar los datos almacenados en una tabla. Es decir, su objetivo es recuperar información de la base de datos, igual que las consultas, pero con un formato que facilita su presentación e impresión en papel. Es más, los informes y las consultas suelen complementarse ya que los informes suelen construirse a partir de consultas almacenadas y no a partir de las tablas. Para crear un informe, usaremos el asistente que proporciona Base, tal como ilustra la Figura 70. Aunque en la versión de Linux se nos ofrece la posibilidad de usar la vista Diseño, ésta es bastante farragosa y no funciona muy bien, por lo que

- 46 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 68: Añadimos un nuevo registro a la tabla Peliculas con el formulario que acabamos de diseñar.

Figura 69: Registros de la tabla Peliculas tras guardar la entrada anterior en el formulario (se han añadido los datos de la película Happiness).

es preferible crear los informes con el asistente y, luego, editarlos posteriormente en la vista Diseño para corregir pequeños detalles. Nosotros no vamos a comentar nada del diseño de informes. Vamos a crear un informe que va a mostrar toda la información significativa5 de la tabla de las películas, excepto la sinopsis, agrupando las películas según sea su género. Para ello, ejecutaremos el asistente de Base. El proceso de creación de este informe se ilustra en la secuencia de imágenes de la Figura 71. En primer lugar, hemos de proceder a seleccionar los campos de información que se desean incluir en el informe. Para poderlo hacer tenemos que seleccionar previamente la tabla Peliculas, como muestra la imagen de la Figura 71(a). La imagen de la Figura 71(b) muestra los campos que hemos añadido al informe, como siempre, empleando el botón >. A continuación, pinchamos el botón Siguiente. El segundo paso, ilustrado en la Figura 71(c), consiste en la definición de las etiquetas (o rótulos) que van a usarse en el informe para referirse a los diversos campos de información. Por defecto, el asistente de Base sugiere usar los mismos nombres de los campos. En nuestro ejemplo , simplemente hemos cambiado el rótulo asociado al campo Año, que pasa a ser “Fecha de estreno” (véase la imagen mencionada). Pasamos al siguiente paso del asistente haciendo clic en el botón Siguiente. Ahora, hemos de definir los niveles de agrupación que deseemos utilizar en nuestro informe. ¿Qué es esto? Significa agrupar en el listado todos aquellos registros de la tabla (o consulta) que posean el mismo valor para un campo o una serie de campos dados. En nuestro caso, deseamos agrupar en el listado todas aquellas películas que pertenezcan al mismo 5 En

este caso, por significativa entendemos todos los datos que no son claves.

- 47 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 70: Creamos un informe usando el asistente de Base.

género, por lo que indicaremos que vamos a usar el campo Género para crear las agrupaciones, tal como ilustra la imagen de la Figura 71(d). Nuevamente pasamos al siguiente paso haciendo clic en el botón Siguiente. En el cuarto paso, el asistente solicita que definamos los criterios de ordenación, es decir, que indiquemos los campos que contienen los valores que vamos a usar para ordenar los registros en el listado. Observa atentamente la Figura 71(e). El primer criterio de ordenación no se puede modificar (aparece en gris), ya que se trata del campo Género que se va a utilizar para agrupar los registros, luego va a ser un criterio de ordenación que es obligado emplear. Lo único que podemos modificar es si queremos un orden ascendente o descendente. Por nuestra parte, hemos decidido ordenar las películas, dentro del mismo género, por fecha de estreno, de más antigua a más moderna, (segundo criterio de ordenación) y, posteriormente por orden alfabético del título (tercer criterio de ordenación). Una vez definidos estos criterios, pasamos al siguiente paso (pinchando en el botón Siguiente). A continuación, hemos de decidir el aspecto que va a tener el informe (véase la Figura 71(f)). Decidimos dejar las opciones por defecto (observa las zonas marcadas en rojo) y pasar al siguiente paso pinchando en el botón Siguiente. En el último paso, el asistente va a proceder a crear el informe. Pero antes de hacer clic en el botón Finalizar, hemos de indicar cuál es el título del informe –que también será el nombre que se le asignará al informe en Base–, si queremos que el informe sea estático o dinámico y si pretendemos crearlo o poder entrar en la ventana de diseño para poder modificarlo. Se puede apreciar en la Figura 71(g) que el título del informe (que coincidirá con su nombre) es “Mis películas”, que deseamos crear un informe dinámico y que queremos abrirlo para poder modificarlo en la ventana de diseño. Se puede apreciar el aspecto de la ventana de diseño de informes en la Figura 72. ¡Ojo! ésta es la única parte de la aplicación que difiere entre las versiones de Windows y Linux. La ventana que mostramos es la que aparece en la versión 3.1 de LibreOffice para Linux. En Windows el aspecto es distinto, así como las diversas opciones de configuración para el aspecto del informe (consulta la bibliografía). El lector curioso se preguntará, sin duda, cuál es la diferencia entre un informe estático y uno dinámico. Pues bien, realmente la diferencia sólo se aprecia cuando creamos un informe asociado con una consulta, como haremos a continuación para concluir con este texto. En el primer caso –estático– los datos que mostrará siempre el informe serán los que tuviera la consulta realizada en el momento de la creación, es decir, una vez creado el informe, los datos que muestra siempre serán los mismos. En el segundo caso –dinámico– cada vez que generemos el informe (haciendo doble clic sobre su nombre en la ventana central de gestión), los datos que se van a mostrar son los que tenga la base de datos en el momento de la llamada. Normalmente, optaremos por crear informes de tipo dinámico. La Figura 73 muestra el aspecto que tiene la ventana central de gestión de Base después de haber creado este informe. Para generarlo, tenemos que hacer doble clic con el botón izquierdo del ratón sobre su nombre (“Mis películas”). Al generar este informe se abre un documento en el formato que usa el procesador de texto Writer, integrado en la suite LO. La Figura 74 muestra el documento abierto en Writer, el cual podemos guardar en formato PDF o imprimir empleando los iconos apropiados de la barra de herramientas de dicho programa (enmarcados en rojo en la imagen). También podemos guardar el documento en una gran variedad de formatos a elegir empleando la opción Guardar como. . . del menú Archivo

- 48 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 71: Proceso de creación de un informe que muestra los datos de las películas (menos la sinopsis) agrupados por género.

de Writer (marcado con un círculo rojo en la imagen). Para concluir, queremos crear un informe que muestre el título, el nombre del director y la calificación de todas las películas protagonizadas por el actor Ethan Hawke. De paso, queremos que también aparezca el nombre del personaje que interpreta en la película y la valoración que merece su actuación, así como el lugar donde se guarda el estuche que almacena la correspondiente película. Deseamos, además, que el informe muestre, en una cabecera, el nombre y la nacionalidad del actor. Realmente, no podemos crear un informe directamente con todos estos datos, ya que implicaría acceder a varias tablas, y ya hemos aprendido (véase el primer paso del asistente en la imagen de la Figura 71(a)) que un informe sólo puede estar vinculado a una tabla al mismo tiempo. ¿Qué podemos hacer, pues? La respuesta es muy sencilla, y también la podemos apreciar en la imagen que acabamos de mencionar. Un informe también puede vincularse a una consulta, es decir, ejecutar dicha consulta, recoger la tabla con los datos resultantes (recuerda, una consulta devuelve una tabla) y mostrarlos en el

- 49 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 72: Ventana de diseño de informes.

Figura 73: Aspecto de la ventana central de gestión de Base tras crear el informe Mis películas.

informe según el formato elegido. Por tanto, en primer lugar, vamos a crear una consulta que devuelva la información solicitada. Esta consulta utilizará las cuatro tablas que hemos creado en nuestro ejemplo de base de datos, ya que necesitamos acceder a la tabla Actores para obtener el identificador de Ethan Hawke a partir de su nombre, a la tabla Papeles para averiguar qué películas ha protagonizado Ethan Hawke (obtendríamos sus identificadores) y conocer el personaje interpretado y la valoración de su actuación, a la tabla Peliculas para obtener el título, nombre del director y calificación a partir del identificador y,

- 50 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 74: Resultado de generar el informe Mis películas.

Figura 75: Resultado de ejecutar la consulta que muestra todas las películas protagonizadas por Ethan Hawke.

finalmente, a la tabla Estuches para obtener la localización de los mismos a partir de sus identificadores conseguidos de la tabla Peliculas. El resultado de ejecutar esta consulta, cuya creación dejamos como ejercicio al lector, se puede apreciar en la Figura 75. Ahora sí que podemos crear el informe solicitado que, realmente, vamos a vincular con la consulta que hemos creado con el nombre Pelis_Ethan_Hawke. En la Figura 76 se ilustra el proceso de creación de este informe empleando el asistente de Base. En dicha figura sólo hemos mostrado las imágenes correspondientes a las ventanas donde realmente hemos configurado alguna cosa cambiando las opciones por defecto. Así, podemos apreciar en la imagen de la Figura 76(a) que hemos seleccionado la consulta Pelis_Ethan_Hawke como vínculo para el informe. Además hemos añadido todos los campos de la consulta al informe, ya que los vamos a usar de una u otra forma. Saltando al tercer paso del asistente, se puede apreciar en la imagen de la Figura 76(b) que hemos definido dos niveles de agrupación: el nombre y la nacionalidad del actor. ¿Por qué? Recuerda que deseamos mostrar una cabecera en el informe con dichos datos. Fíjate en el informe resultante mostrado en la Figura 77 y entenderás el porqué. La imagen de la Figura 76(c) muestra que hemos elegido otra disposición para el aspecto del informe. Observa el resultado en la Figura 77 y compara el resultado con el otro informe que generamos antes (véase la Figura 74), fijándote en las opciones de aspecto que hemos elegido en cada caso. En la última ventana del asistente, justo antes de finalizar el proceso

- 51 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

Figura 76: Proceso de creación del informe (sólo ventanas donde se cambian los valores por defecto) asociado a la consulta mostrada en la Figura 75.

de creación del informe, seleccionamos las opciones Informe dinámico (ahora sí que resulta trascendente al tratarse de un informe vinculado a una consulta) y Crear informe ahora para que lo muestre inmediatamente, tal como puede apreciarse en la Figura 76(d). Fíjate que el nombre que el asistente de Base sugiere para el informe (Título del informe) es el mismo que le dimos a la consulta con la cual está vinculado –Pelis_Ethan_Hawke. Hemos decidido dejar este mismo nombre para el informe (son objetos distintos aunque se llamen igual).

Figura 77: Resultado de la generación del informe Pelis_Ethan_Hawke.

- 52 -

EI(MT)1002. Informática Básica - 1er curso.

Material de apoyo. Bases de datos con LibreOffice Base

El informe generado para nuestro último ejemplo se ilustra en la Figura 77. Observa con detenimiento el formato del informe y la disposición de los diversos campos de información, relacionándola con las opciones indicadas al asistente.

- 53 -