viernes, 15 de abril de 2016

Crear Formularios

Crear Formularios




os formularios son muy útiles a la hora de introducir datos, ya que aparte de la comodidad que ofrecen, con su uso se pueden evitar también los posibles errores que podrían ocurrir usando la vista Hoja de Datos.
Es posible usarlos tanto con tablas como con consultas.
Crear un formulario usando el asistente
En la parte izquierda de la ventana principal hemos de hacer clic en el icono Formularios y a su derecha en Usar el asistente para crear formulario:
Crear un formulario
Veremos la siguiente ventana, y en el cuadro de diálogo Asistente para formularios seleccionaremos los campos de las tablas o consultas que deseamos usar en el formulario y pulsaremos el botón en Finalizar, o en Siguiente para saltar a la siguiente pantalla del asistente:
Crear formularios
En nuestro caso, tras seleccionar los campos haremos clic en Finalizar, y a continuación damos un nombre al formulario, dejamos marcada la opción Trabajar con el formulario y hacemos clic nuevamente en Finalizar:
Crear un formulario
Haciendo clic en la opción Establecer entrada de datos podemos seleccionar si el formulario se usará sólo para introducir datos (sin mostrar los existentes), o bien para visulizarlos dando también la posibilidad de editarlos.
Un vez creado veríamos un formulario similar al de la siguiente imagen, el cual muestra que el total de registros es de 3 y estamos situados en el último de ellos:
Crear formulario usando el asistente
Los botones tienen la siguiente utilidad (también podemos usar los iconos correspondientes de la barra de herramientas Navegación de formulario, en la parte inferior de la ventana):
Registro anteriorNos lleva al registro anterior.
Primer registroNos lleva al primer registro.
Registro siguienteNos lleva al siguiente registro.
registro últimoNos lleva al último registro.
Insertar registroInsertar un nuevo registro.
También podemos usar los siguientes iconos de la barra de herramientas Navegación de formulario:
Grabar registroGuarda las modificaciones realizadas en los registros.
deshacerDeshace los cambios realizados tras modificar registros.
Eliminar registrosEliminar registros.
Actualizar registrosActualizar los datos
Fuente de datosLos usaremos para ordenar los datos.
Fuente de datosUsados para filtrar los datos.
Fuente de datosPermite editar diréctamente la tabla en la misma ventana.
Para buscar y reemplazar un dato en el formulario haremos clic en el icono buscar y reemplazar de la barra de herramientas Estándar, o iremos al menú Editar, Buscar y reemplazar.

Crear Consulta


Crear Consultas

Base pone a nuestra disposición un asistente para crear consultas de forma fácil y rápida.
Para crear una consulta usando el asistente hemos de hacer clic en la opción Usar el asistente para crear consulta de la ventana principal del programa.
Crear una consulta

En la primera pantalla del asistente para consultas seleccionaremos los campos de las tablas deseadas. También podemos crear una consulta a partir de otra existente:
Asistente para consultas
No es necesario que pasemos por todas las pantallas del asistente para crear la consulta, dependiendo de nuestras necesidades podemos hacer clic en el botón Finalizar en cualquiera de ellas.
En este punto, indicamos por qué campos se ordenará la consulta:
Orden
En esta pantalla definimos las condiciones deseadas, si las hay:
Criterios
Si la consulta devolverá un resumen de los datos, en Funciones agregadas seleccionamos las función deseada y en Campos al que se aplicará la misma:
Seleccionar función
En caso necesario, seleccionamos los campos por los que agrupar:
Agrupar campos
Si hemos definido campos para una agrupación, establecemos las condiciones de la misma:
Condiciones
En esta pantalla podemos definir alias (nombres alternativos) para los campos:
Alias de campo
En esta última pantalla veremos información sobre la consulta y le daremos un nombre, pudiendo también seleccionar entre modificarla o crearla:
Información
El resultado del presente ejemplo sería algo como (devuelve los importes totales de los pedidos de cada cliente, agrupados por su código):
Crear consultas usando el asistente

martes, 5 de abril de 2016

Trabajando con Base

 OpenOffice Base

Base es un sistema gestor de bases de datos con una amplia gama de características, diseñado para cubrir un amplio abanico de usuarios, puede, desde simplemente llevar un control de su colección de CD hasta generar un informe corporativo mensual departamental de ventas.

Base contiene asistentes para ayudar a los usuarios nuevos en el diseño de bases de datos (o simplemente nuevos enBase) a crear tablas, consultas, formularios e informes, junto con un conjunto predefinido de definiciones de tablas para controlar activos, clientes, ordenes de venta, facturas y mucho más.

Pantallazo de Apache OpenOffice Base

Primera ejecución de OpenOffice Base y creación de base de datos

Al entrar en Base nos encontraremos la ventana “Asistente para base de datos” que aparece en la figura 1.12 donde se nos da a elegir entre crear una nueva base de datos, abrir una base de datos existente o conectar con una base de datos existente.
En esta unidad se va a crear la base de datos que se usará el resto del curso; por tanto, en este caso, elegiremos la primera opción, pero una vez que esté creada y volvamos a entrar a Base tendremos que marcar la segunda opción y elegir nuestra base de datos. La tercera opción (conexión con una base de datos existente) se estudia en la última unidad de este curso.



Base 20 01.011.png
Figura 1.12. Ventana inicial “Asistente para base de datos”

Si hemos elegido la opción de creación nos debe aparecer una ventana como la de la figura 1.13 donde, por un lado, debemos elegir entre registrar o no la base de datos y, por otro, entre abrir o no la base de datos para editarla y crear tablas usando el asistente.



Base 20 01.010.png
Figura 1.13. Ventana “Guardar y continuar”

Registrar la base de datos sirve para indicar a OpenOffice dónde localizar los datos y cómo se organizan. Es decir, debemos registrar nuestra base de datos si queremos que los datos que guardemos sean localizables desde otras aplicaciones; por ejemplo, si en  Writer quiero mostrar una tabla con datos guardados en mi base de datos debo registrarla antes.
La opción “Abrir la base de datos para editar” es obligatoria tenerla marcada porque, si no, después de crear la base de datos se cerraría Base.
Por último, la opción “Crear tablas usando el Asistente para tablas” hay que marcarla si queremos que un asistente de  Base nos ayude a crear nuestra primera tabla al terminar la creación de la base de datos. Esta opción la dejaremos desmarcada porque hasta la siguiente unidad no vamos a ver qué es una tabla y cómo crearlas y, además, crear tablas usando el Asistente limita bastante las posibilidades de creación de tablas.
Para finalizar debemos elegir el directorio donde guardaremos nuestra base de datos y el nombre de la misma (ver Figura 1.14). La base de datos que vamos a crear se llamará Curso y la vamos a guardar en la subcarpeta Mis Bases de Datos, que tendremos dentro de la carpeta Mis Documentos, del usuario de Windows. La casilla “Ampliación automática de nombre de archivo”, que aparece en la parte baja de la ventana, sirve para indicar que se añadirá o no al nombre de la base de datos la extensión que tienen los tipos de archivo de base de datos en formato OpenOffice (extensión .odb, Open Document Base, Base de datos en formato Open Document).



Base 20 01.009.png
Figura 1.14. Ventana “Guardar como”

¿Qué es una tabla de OpenOffice Base?

Se puede definir una base de datos como un colección de datos relacionados entre sí. Cada colección de datos relacionados se almacena en una base de datos en forma de tablas, donde dichas tablas guardan información sobre un grupo de cosas con las mismas características o atributos
Por ejemplo, en una base de datos puedes tener una tabla con información acerca de todos tus libros (ver Figura 2.1) donde puedes almacenar el título, el nombre del autor, el año de publicación, etc.; es decir, diferentes propiedades o atributos comunes a todos los libros, y, también, puedes tener una tabla con toda la información de contacto de tus amigos, por ejemplo, su nombre y apellidos, su número de móvil, su dirección de correo electrónico,etc., pero nunca en una misma tabla se guardará información de cosas con propiedades distintas. Es decir, no puedes mezclar información en una única tabla de tus libros y tus amigos porque la información (los atributos de cada una de las cosas sobre las que guardo información) no es la misma.



Base 20 02.015.png
Figura 2.1. Tabla de libros

Cada uno de los atributos o propiedades de las cosas sobre las que se quiere guardar información son las columnas de la tabla, mientras que cada fila de la tabla representa una cosa real de la que se guarda información. En la figura 2.1 podemos ver una tabla con libros donde se observa que las columnas representan propiedades o atributos de las cosas sobre las que se va a guardar información, en este caso libros, y cómo las filas son los registros que representan a cada uno de los libros concretos sobre los que se almacena información.

Creación de tablas en OpenOffice Base

En el panel izquierdo, seleccionamos la opción "Tablas" y desde el Panel de tareas, seleccionamos "Crear una tabla en  modo diseño"



Base 20 02.014.png
Figura 2.2. Crear tabla en Vista Diseño
Base 20 02.013.png
Figura 2.3. Ventana de definición de las columnas de la tabla

Comenzamos a definir la primera columna: nos situamos en la primera fila de la rejilla y en la columna Nombre del campo escribimos Id_pelicula como se refleja en la figura 2.4.



Base 20 02.012.png
Figura 2.4. Introducción del nombre del campo

Para pasar a elegir el Tipo de campo, podemos hacerlo de tres maneras: pulsando la tecla Intro, pulsando la tecla Tabulación o haciendo clic con el botón izquierdo del ratón sobre dicha columna. Al situarnos sobre dicha columna veremos que, por defecto, nos indica Texto[VAR CHAR] como tipo de dato. Si queremos cambiar de tipo de campo, debemos hacer clic con el botón izquierdo del ratón sobre la flecha de la lista desplegable de la derecha y elegir otro tipo.
Base 20 02.011.png



Figura 2.5. Elección del tipo de campo

A continuación, en la columna Descripción, sería aconsejable que se introdujese un comentario acerca del campo que se acaba de insertar, como aparece en la figura 2.6.



Base 20 02.010.png
Figura 2.6. Introducción del campo Descripción

Si nos fijamos con detenimiento en la parte inferior de dicha figura, veremos que hay una ventana que nos va a permitir establecer algunas propiedades para el campo que estamos creando de nuestra tabla. Dichas propiedades se exponen junto con los distintos tipos de campo en la siguiente unidad.
Este primer campo introducido es el que identificará cada una de las películas que se introduzcan en la base de datos; es decir, me va a servir para distinguir una película de otra inequívocamente. Es imprescindible tener en la mayoría de las tablas de una base de datos un campo cuyo valor sirva inequívocamente para diferenciar una fila de cualquier otra.
Por ejemplo, si tenemos una tabla con los datos de contactos de nuestros amigos, podríamos estar seguros que, usando su número del Documento Nacional de Identidad, ninguno de ellos tendría el mismo valor en dicho campo. En cambio, el campo nombre para nuestros amigos, aunque improbable, podría repetirse.
En el caso de nuestra tabla Peliculas, a priori, no hay ningún campo acerca de una película que podamos utilizar para diferenciar una película de otra ya que, por ejemplo, podemos tener dos películas con el mismo título o dos películas con el mismo director o dos películas que se produjeron el mismo año. Para este tipo de tablas se suele definir un campo de tipo numérico (como acabamos de hacer nosotros con nuestro Id_pelicula) que debe cumplir dos condiciones: la primera, es que ese campo siempre tiene que tomar un valor para cada fila de la tabla, y, la segunda, que dicho valor no puede repetirse en ninguna fila. Cuando un campo cumple estas dos propiedades (sin nulos y sin repetidos) se le llama Llave Primaria, Clave Primaria o simplemente Clave y toda tabla debe tener una.
Para indicar que queremos que el campo Id_pelicula sea nuestra Llave Primaria seguimos los siguientes pasos:
  • Nos situamos en la parte izquierda del campo (figura 2.7).



Base 20 02.009.png
Figura 2.7. Parte izquierda del campo

  • Pulsamos botón derecho del ratón (figura 2.8).



Base 20 02.008.png
Figura 2.8. Pulsamos botón derecho del ratón

  • Seleccionamos la opción Llave primaria (figura 2.9).



Base 20 02.007.png
Figura 2.9. Seleccionamos Llave primaria

  • Quedando finalmente el campo como se muestra en la figura 2.10



Base 20 02.006.png
Figura 2.10.Resultado tras definir el campo Id_pelicula como llave primaria

Una vez insertado este primer campo, insertaríamos el resto de los campos, que van a ser:
  • Titulo, de tipo Texto
  • Director, de tipo Texto
  • Años, de tipo Fecha
  • Formato, de tipo Texto
  • Vista, de tipo Sí/No
Quedando la tabla como aparece en la figura 2.11:



Base 20 02.005.png
Figura 2.11.Tabla de películas creada

Una vez creados todos los campos con sus propiedades, debemos guardar la tabla. Para ello pulsamos sobre el icono en forma de disquete de la esquina superior izquierda (figura 2.12):



Base 20 02.004.png
Figura 2.12.Guardar tabla

A continuación nos aparece una ventana que nos pide que introduzcamos el nombre de la tabla (figura 2.13). En dicha ventana introducimos el nombre Peliculas y pulsamos el botón Aceptar.



Base 20 02.003.png
Figura 2.13.Introducir nombre de tabla

Si hemos seguido todos los pasos correctamente, nuestra tabla Peliculas debe aparecer dentro del apartado Tablas en la parte inferior de la ventana principal de Base (figura 2.14).



Base 20 02.002.png
Figura 2.14.Ventana principal con la tabla Peliculas

Algo que nos puede resultar raro de los nombres de los campos y del nombre de la tabla es que en ningún momento estamos utilizando tildes al escribirlo. Esto es debido a que las tildes pueden producir problemas en Base tanto en el nombre de los campos como de las tablas por lo que es mejor evitar su uso en los nombres de OpenOffice Base.

Inserción de datos en OpenOffice Base

Para insertar datos a través de la hoja de datos tenemos que situarnos en la pantalla principal de Base en el apartado de Tablas (figura 2.14) y hacer doble clic con el botón izquierdo del ratón sobre la tabla Películas o hacer un clic con el botón derecho del ratón y seleccionar la opción Abrir; nos aparece entonces la pantalla de hoja de datos que se muestra en la figura 2.15.



Base 20 02.112.png
Figura 2.15.Hoja de Datos de la tabla Películas

En primer lugar, podemos ver que aparecen las seis columnas que definimos en el apartado 2, y ninguna fila insertada (como es natural, pues acabamos de crear la tabla). Podemos ver también que la columna Vista aparece con un cuadrado. Este cuadrado nos indica que es un campo del tipo Sí/No y que aparezca con fondo verde significa que no hay ninguna opción elegida por el momento.
También se puede ver que al principio de la fila aparece una pequeña estrella amarilla, dicha estrella señala el lugar donde está la nueva fila a insertar, en nuestro caso, la primera película.
Si introducimos una fila con todos los campos rellenos, podemos tener algo parecido a lo que aparece en la figura 2.16. 



Base 20 02.111.png
Figura 2.16.Primera fila insertada

Si continuamos insertando filas, hay que hacer un recordatorio: en el apartado 2 definimos que la columna Id_pelicula iba a ser nuestra Llave Primaria; es decir, que los valores de este campo, no podían repetirse para ninguna fila. En la figura 2.17 se plasma un intento de insertar una fila repitiendo valor para esta columna y se muestra cómo OOo Base nos devuelve un error.



Base 20 02.110.png
Figura 2.17. Error al insertar fila

Las relaciones entre tablas en OpenOffice Base

Una de las grandes ventajas de las bases de datos es que podemos tener toda la información que necesitamos almacenar en varias tablas, relacionadas entre ellas, en lugar de una única tabla enorme con toda la información.

¿Qué conseguimos con esto? Para responder a esta pregunta mejor pongamos un ejemplo: imaginemos que se quiere guardar el género cinematográfico de las películas que se van almacenando. Se podría pensar en añadir una nueva columna a la tabla Peliculas que se llamara Género, de manera que por cada película almacenada también tuviera su género

Tipos de relaciones entre tablas en OpenOffice Base

Para ver la forma de establecer la relación es necesario decidir, previamente, qué tipo de relación existe entre las tablas. Existen tres tipos básicos de relaciones entre tablas:
  • 1 a ∞ o Uno a muchos. Este tipo se da cuando una fila de la primera tabla puede estar relacionada con muchas filas de la segunda tabla, pero una fila de la segunda sólo está relacionada con una de la primera. Es decir, si consideramos que una película sólo puede tener un único género, éste sería el tipo de relación que existe entre la tabla Genero y la tabla Peliculas ya que, por ejemplo, el género Drama tiene varias películas relacionadas que son de dicho género pero dada una película sólo está relacionada con un género.
  • ∞ a ∞ o Muchos a muchos. Esta clase de relación ocurre cuando una fila de la primera tabla puede estar relacionada con muchas filas de la segunda tabla y una fila de la segunda tabla puede estarlo con muchas filas de la primera. Un ejemplo de este tipo lo tenemos en la relación entre la tabla Peliculas y la tabla Interpretes (ver Figura 4.9) porque, dada una película en particular, puede tener muchos intérpretes, y, viceversa, dado un intérprete, este puede haber intervenido en muchas películas.
  • 1 a 1 o Uno a uno. Este tipo de relación aparece con menos frecuencia y sucede cuando una fila de la primera tabla sólo puede estar relacionada con una fila de la segunda y una fila de la segunda tabla sólo puede estar relacionada con una de la primera. Un ejemplo de este tipo de relaciones podría ser entre una tabla con países y otra con jefes de gobierno, dado que, normalmente, un país sólo tiene un jefe de gobierno y un jefe de gobierno lo es sólo de un país.

Establecer relaciones uno a muchos en OpenOffice Base

Para este tipo de relaciones la solución siempre es crear una nueva columna en la tabla del lado del muchos, es decir, debemos crear una nueva columna en la tabla cuyas filas sólo pueden estar relacionadas con una fila de la otra tabla, de manera que el valor de ese campo me indique sin lugar a dudas con qué fila está relacionada de la otra tabla.
En el caso de Generos y Peliculas, esto supone que tenemos que crear en Peliculas un nuevo campo que para cada película mantenga un valor que me indique sin error al género al que pertenece. Por tanto, la columna debe ser del mismo tipo de dato que la columna que sea clave primaria en la otra tabla y los valores que podrá contener será cualquiera de los valores que tome la clave primaria en dicha tabla. Es decir, en la tabla Peliculas tendremos que crear una columna del mismo tipo que Id_genero (Integer), a la que llamaremos Genero (ver Figura 4.10), y los valores que pondremos en esa columna estarán comprendidos entre el 1 y el 9, que son los distintos valores que toma ese valor en la tabla Generos (ver Figura 4.3).

Base 20 04.012.png
Figura 4.10 Tabla Peliculas con nuevo campo Genero

Una pregunta que seguro surge después de leer esto es ¿por qué la nueva columna Genero en Peliculas sólo puede tomar valores entre 1 y 9? La respuesta es muy simple: esta nueva columna la estamos creando para poder referenciar en cada película a la fila en Generos con la que está relacionada; es decir, no tiene sentido que la película Rocky tenga como género el 12 si dicho género no existe en la tabla Generos.

Base 20 04.011.png
4.11. Apertura de ventana Relaciones

Pero con la creación de esta columna no hemos terminado. Falta indicarle a OOo Base explícitamente que las dos tablas están relacionadas y que vamos a utilizar para mantener dicha relación la nueva columna Genero que hemos creado en Peliculas. Para realizar esta operación tenemos que abrir la herramienta Relaciones de OOo Base. Para ello nos situamos en la ventana principal, pinchamos en la pestaña Herramientas y dentro del menú que se despliega seleccionamos Relaciones (ver Figura 4.11).
Lo primero que nos ocurre nada más entrar en la ventana Relaciones es que se despliega una ventana donde debemos seleccionar las tablas sobre las que vamos a establecer la relación (ver Figura 4.12), en nuestro caso, elegimos las tablas Peliculas y Generos y cerramos dicha ventana.

Base 20 04.010.png
Figura 4.12. Selección de tablas a relacionar

A continuación ya podemos establecer la relación que queremos indicar. Para ello pinchamos en el icono que aparece a la derecha en la ventana Relaciones (el icono que contiene tres tablas con una estrella encima, ver Figura 4.13).

Base 20 04.009.png
Figura 4.13. Icono para añadir nueva relación

Entonces, nos debe aparecer una ventana (ver Figura 4.14) donde primero debemos indicar las tablas que queremos relacionar para, a continuación, elegir en función de qué columna vamos a establecer la relación; es decir, en nuestro caso será entre el campo Genero de Peliculas e Id_genero de Generos.
En la parte inferior de esta ventana veremos que OOo Base nos pide que indiquemos dos opciones: la de actualización y la de eliminación; y que nos ofrece cuatro posibilidades para cada una de ellas. Estas opciones sirven para indicar qué hacer si algún valor del campo de clave primaria que está siendo referenciada (en nuestro caso Id_genero) sufre alguna modificación o si esa fila es eliminada. Las posibilidades son:
  • no realizar ninguna acción.
  • actualizar o borrar en cascada: es decir, si cambiamos en Generos de 5 a 17 el valor de Id_genero de Drama, entonces, todas las filas de Peliculas cuyo género sea Drama pasarán a tener el valor 17. O en el caso de borrado, si borramos el género Drama en Generos todas las filas de Peliculas de ese género se borrarán por lo que, esta opción debe elegirse con mucho cuidado.
  • poner a null: es decir, si cambiamos o borramos el género Drama, el campo Genero de esas películas se queda en blanco.
  • predeterminar: es decir, podemos fijar un valor por defecto en el campo Genero de Peliculas si el género al que referencian en la tabla Generos es modificado o borrado.
Para la actualización, lo normal suele ser elegir la posibilidad de actualizar en cascada, y para el borrado no existe una opción preferida sino que dependerá bastante del contexto, en nuestro caso, para esta relación, indicaremos poner a nulos.

Base 20 04.008.png
Figura 4.14. Indicación de relación entre tabla Géneros y Películas

Una vez hemos terminado de indicar la relación, ésta debe aparecer indicada en la ventana Relaciones tal y como se muestra en la figura 4.15. Así, podemos observar que ahora aparece una línea uniendo ambas tablas y que en el extremo de esa línea en el lado de la tabla Géneros aparece el valor 1, y que, en el otro extremo, el de la tabla Películas, nos aparece el valor n. Estos valores nos están indicando que el tipo de relación es de uno (1) a muchos (n).

Base 20 04.007.png
Figura 4.15. Relación uno a muchos entre Géneros y Películas