Tutotorial LibreOffice Base Parte III

Tutorial avanzado LibreOffice Base – Parte III

Base de Datos – Tablas – Relaciones

LibreOffice es un conjunto de aplicaciones que nos sirve de herramienta para resolver operaciones en nuestra oficina, casa, escuela, etc. Incluye un conjunto de aplicaciones entre ellas Write, Calc, Press, etc.

LibreOffice Base nos permite manejar bases de datos relacionales y forma parte de la suite de Libreoffice. Está diseñada para satisfacer las necesidades de una gran cantidad de usuarios, entre ellos básicos, intermedios y avanzados, también algunos requerimientos empresariales. A su vez nos proporciona una Interfaz de Usuario amigable, la cual cuenta con 4 herramientas básicas para realizar tareas como: tablas, consultas, formularios e informes. Base incluye un asistente que nos ayuda con varios aspectos del programa.

En la parte II, hablamos como conectarnos a una base de datos y cómo crear la Base de Datos y las Tablas que corresponden a las mismas dependiendo del proyecto que deseamos realizar. Debemos tener en cuenta que no en todas las conexiones a bases de datos tendremos que crear tablas, normalmente nos conectamos es consultar y operar con la información que contienen.

A continuación vamos a hablar como podemos modificar la estructura de las tablas, realizar uniones o relacionar tablas y operaciones con registros como: agregar, editar y eliminar.

Tutorial LibreOffice Base

 

Tutorial LibreOffice Draw

.- Actualizar la estructura de una Tabla.

Ya hemos visto cómo conectarnos a una base de datos externa, como crear bases de datos y crear tablas, vamos a describir cómo podemos modificar la estructura de una o más tablas.

Teniendo la siguiente estructura de la tabla Factura

tutorial LibreOffice Base - Parte 3.docx

Figura Nº 1

Queremos ajustarla para agregar los siguientes campos: Teléfono, Correo, IdVendedor, fecha_anulado, fecha_pagado, para que al final quedar como sigue:

libre office parte 3

Figura Nº 2

Una vez ingresado a la aplicación y luego de haber seleccionado el proyecto, aparecerá la siguiente pantalla:

Figura Nº 3

Seleccionamos desde la sección Base de datos, la opción Tablas y nos aparecen las tablas que tenemos en nuestro proyecto. Luego en el área inferior derecha en el cuadro Tablas seleccionando la tabla que necesitamos modificar procedemos de la siguiente forma:

  • Desde el menú principal Editar → Editar.
  • Desde el área de Tablas, pulsamos el botón derecho del ratón y del menú desplegable seleccionamos Editar…

Figura Nº 4

Luego aparece la siguiente pantalla de Diseño de tablas:

Figura Nº 5

  • Agregar Campos

Procedemos de la siguiente forma nos desplazamos al final de las líneas y agregamos el campo o colocando el cursor sobre el borde izquierdo de la tabla y pulsamos el botón derecho del ratón nos aparece un menú desplegable, luego seleccionamos la opción Insertar filas donde podemos insertar un nuevo campo y luego procedemos a indicar las características.

Figura Nº 6

Realizamos el mismo procedimiento hasta agregar los campos necesarios y al final queda de la siguiente forma:

Figura Nº 7

Al finalizar procedemos a guardar la nueva estructura actualizando la tabla. Y procedemos desde el menú principal Archivo → Guardar o pulsando el icono , luego cerramos la ventana.

Como habíamos indicado en el artículo anterior, también podemos eliminar campos y modificar el tipo de contenido del campo. Vamos a explicar cómo podemos realizar esta operación.

  • Modificar Campos

Podemos modificar el campo en dos aspectos, cambiando su nombre o modificando el tipo de contenido.

  • Modificar el nombre del campo

Para modificar el nombre del campo es más sencillo, procedemos de la forma indicada al agregar campo para desplegar la ventana de Diseño de tablas como nos muestra la Figura Nº 5, luego colocamos el cursor en el campo que necesitamos modificar el nombre y procedemos a cambiarlo, pero debemos tener en cuenta que en nuevo nombre no debe existir en la estructura porque nos indicaría un error.

Figura Nº 8

Si colocamos un nombre ya existente y procedemos a guardarlo, nos aparecerá un mensaje de advertencia.

Figura Nº 9

  • Modificar el tipo de campo

Para modificar el tipo de campo procedemos en esencia de la misma forma que modificar el nombre, pero en este caso vamos a modificar el tipo de contenido y una vez seleccionado el campo, procedemos a indicar un nuevo contenido junto con sus otras atribuciones.

Figura Nº 10

Debemos tener en cuenta lo siguiente, podemos cambiar totalmente el tipo de campo en una tabla vacía, por ejemplo podemos cambiar de un tipo Entero a Fecha o a cualquier otro tipo de campo cuya conversión no implique pérdida de datos y no habrá inconvenientes. Sin embargo si cambiamos el tipo de campo en una tabla que ya contiene registros o información nos va a indicar algunas advertencias e impide la modificación del campo si intentamos guardarlo.

Figura Nº 11

En la Figura Nº 11, nos aparece un mensaje de Alerta indicando que no fue posible la modificación del tipo de contenido del campo fecha, en este ejemplo tenemos registros agregados y no se pudo realizar la conversión a un Entero y nos da algunas opciones para proceder y adicionalmente en el botón Más, nos muestra información específica del error como vemos a continuación.

Figura Nº 12

Como podemos ver en la Figura Nº 12, nos da toda la información necesaria sobre el error en la operación.

Como hemos visto cuando modificamos la estructura e intentamos Guardar, pueden aparecer algunas advertencias de los errores que hemos cometidos y nos indica que podemos hacer para solucionarlo. Pero si no hay errores en nuestra modificación la actualización de la tabla continúa sin ningún inconveniente y luego procedemos a cerrar la ventana Diseño de tablas.

  • Eliminar campos

En algunas circunstancias necesitamos eliminar campos que ya evidentemente no necesitamos, bien sea porque lo creamos temporalmente para hacer conversión en el cambio de tipo de campo o porque ya no es útil en nuestro registro y no queremos que esté ahí para evitar posibles problemas. En cualquier caso, la forma de eliminar un campo de la tabla es como sigue.

Procedemos a desplegar la ventana de Diseño de tablas, seleccionamos el campo que deseamos eliminar y pulsamos el botón Supr/Del del teclado, o podemos proceder de la otra forma, seleccionamos el campo que deseamos eliminar y pulsamos el botón derecho del ratón y nos despliega un menú (Figura Nº 6) y seleccionamos Eliminar. Debemos tener en cuenta que una vez que procedamos a Guardar el campo junto con su contenido es eliminado de la tabla y no puede volver a ser recuperado.

Una vez finalizada la acción cerramos la ventana y volvemos a la ventana principal. Debemos tener en cuenta de que estas actualizaciones afectan solo a las tablas en este caso y debemos guardar el proyecto, porque los cambios en las tablas si permanecen pero para el proyecto no hay ninguna actualización hasta que se guarde las operaciones.

  • Crear Índices

Los índices en las tablas nos permiten organizar los registros por campos específicos con la finalidad de agilizar la consulta y tener los registros ordenados al momento de consultarlos o generar informes o listados. Tenemos dos tipos de índices, los índices de Clave Principal, índices únicos e índices secundarios, los de clave principal en el caso de LibreOffice Base con su base de datos HSQLDB es muy recomendable tener en cada tabla el índice de Clave Principal primero porque se tiene un marcado exacto para cada registro y lo otro porque con la clave principal podemos crear las relaciones con otras tablas y esto trae muchas ventajas al momento de realizar las operaciones con las tablas y el manejo de la información, y al ser Clave Principal garantizamos que el registro es único e irrepetible y el manejador de bases de datos va a garantizar de que el campo no sea borrado por accidente. Los índices único es donde podemos crear registros con claves únicas e irrepetibles parecidos a los de Clave Principal pero no son los mismos, porque un campo puede contener un registro único sin ser clave principal, pero una clave principal siempre debe ser único, Los índices secundarios no son menos importantes pero si son campos que representan campos claves de otras tablas nos permite enlazarnos fácilmente y aprovechar la velocidad de este tipo de archivos, también nos permite mantener como dijimos anteriormente la organización de las tablas por fecha, nombre, montos, etc según lo necesitemos, también es recomendable crear solo los índices necesarios, debido a que cada índice debe ser actualizado por cada registro que se agregue y se elimine y el tiempo tarda un poco más cuando se modifica algún campo de índice secundario que este ya relacionado. Así que los índices nos ofrecen muchas ventajas en cuanto al rendimiento, pero mal usado nos da muchas desventajas en el mismo rendimiento.

A continuación describiremos cómo podemos crear índices en las tablas. Como en los casos anteriores seleccionamos la tabla y luego desplegamos la ventana de Diseño de tablas.

Primero vamos a crear el índice de Clave Principal, se recomienda que el mismo sea de incremento automático o en su defecto que la aplicación asigne una clave única para identificar inequívocamente cada registro y la base de datos garantiza que el campo siempre se mantenga y no pueda ser borrado por facilidad. La forma de crear un campo de tipo Clave Principal es: seleccionamos el campo y luego pulsamos el botón derecho del ratón, nos desplegará un menú (Figura Nº 6) y luego marcamos la opción Clave Principal y listo.

Para crear los otros tipos de índices (Únicos y Secundarios) procedemos de la siguiente forma desde el menú principal Herramienta → Diseño de índice y se despliega la ventana de Índices.

Figura Nº 13

Una vez desplegada la ventana de Índices, tenemos algunas opciones, la casilla Único es para indicar que se va a crear un índice de registros únicos e irrepetibles y podemos combinar varios campos para crear ese tipo de índice, en muchos casos la combinación de campos nos garantiza un registro único.

Y desde aquí podemos crear los otros índices secundarios que nos permiten ordenar los registros según como lo necesitemos y la diferencia es que debemos tener desmarcado la casilla Único. Y también podemos combinar varios campos según el propósito del índice que necesitamos.

En los dos tipos de archivos índices podemos indicar el orden de clasificación Ascendente o Descendente y podemos combinar al igual que los campos cual es el orden de clasificación de cada uno.

.- Relaciones

Como indicamos en su oportunidad en artículos anteriores las relaciones son asociaciones o uniones de dos o más tablas creado a través de una sentencia que nos permite recuperar información de forma más comprensible.

Como indicamos anteriormente esto nos proporciona la ventaja de garantizar la integridad de la data y evitar la duplicación innecesaria de registros en las tablas. Ahora cómo hacemos esto, bueno lo que hacemos es tomar de una tabla el campo principal cuyo índice lo denominamos Clave Principal y lo enlazamos o relacionamos con otra tabla a través de algún campo que asignamos para realizar o recibir el enlace, este campo debe estar organizado por un archivo índice y puede o no tener el mismo nombre del campo Principal de la tabla enlazada.

Veamos un ejemplo a continuación para tener una idea más clara.

tablas LibreOffice Base - Parte 3.docx

Figura Nº 14

Como podemos observar en la Figura Nº 14 tenemos una relación de la tabla Factura con Factura_Renglon y es una relación de uno a muchos.

.- Crear una relación

Este y otros tipos de relación lo podemos crear de la siguiente manera. Desde la ventana principal invocamos desde el menú principal Herramientas → Relaciones… y se despliega la ventana de Diseño de relaciones.

Figura Nº 15

Al inicial nos solicitará que indiquemos la tabla y pulsamos Añadir y luego añadimos otra y así sucesivamente, una vez finalizado pulsamos Cerrar y nos presenta las siguiente opciones.

Figura Nº 16

Donde nos muestra las tablas añadidas, si deseamos agregar más tablas, desde el menú principal procedemos Insertar → Añadir Tablas como en la Figura Nº 15. También podemos invocar el Añadir tablas desde la barra de botones pulsando el botón .

Ahora para crear la relación procedemos de la siguiente forma desde el menú principal procedemos Insertar → Relación nueva… o desde la barra de botones pulsando el botón . Y desplegamos la siguiente ventana de Relaciones.

Figura Nº 17

En esta pantalla tenemos varias opciones:

.- En opciones de actualización tenemos:

  • Tablas involucradas. Designamos las tablas involucradas en la relación la primera es la tabla base y la segunda es la tabla con la que establecemos la relación.
  • Campos involucrados. Indicamos los campos con los cuales vamos a establecer la relación entre una y otra tabla, normalmente la primera relación es el campo con Clave Primaria y su correspondiente campo en la otra tabla, podemos agregar más campos de relación, pero normalmente se usa el principal.
  • Opciones de actualización. En esta opción indicamos como queremos que se comporten la tabla relacionada:
    • Ninguna acción. Como se indica no se lleva ninguna acción en la tabla relacionada.
    • Actualización en cascada. Se realiza la actualización en el campo clave de la base de datos y se refleja esa actualización en el campo relacionado en la otra tabla.
    • Definir NULL. Indica que cuando se actualiza el valor del campo clave en la tabla primaria el campo clave de los registros enlazados se guardan como NULL para disolver la relación.
    • Predefinir. Se establece cuando al momento de crear la tabla definimos en el campo clave o relacionados al mismo un valor por defecto evitando que sean nulos. En este caso cuando cambiamos el valor de la tabla primaria el valor del campo en la tabla relacionada cambia al valor del campo por defecto designado al momento de crear la tabla. Esto se establece cuando no queremos que los campos sean valores nulos y requerimos que tenga al menos un valor válido.

.- En opciones de eliminación tenemos:

  • Sin Acción. No se realiza ninguna acción en la tabla relacionada cuando se elimina un registro en la tabla principal. Por lo cual se debe establecer algún mecanismo que de algún mensaje o advertencia cuando usemos esos registros en la tabla relacionada que no tiene relación ya con ninguna otra tabla.
  • Eliminar en cascada. Esto nos indica que al eliminar un registro en la tabla principal, automáticamente se eliminarán los registros en la tabla relacionada, finiquitando definitivamente toda registro relacionado.
  • Definir NULL. Indica que cuando se elimina un registro en la tabla primaria el campo clave de los registros enlazados en la tabla relacionada se guardan como NULL para disolver la relación.
  • Definir predeterminado. Como en el paso anterior se establece al momento de crear la tabla. Esto indica que al momento de eliminar un registro en la tabla principal automáticamente el valor del campo relacionado en la tabla enlazada para a su valor por defecto. Impidiendo de esta forma tener algún valor nulo en la relación y estableciendo una relación con un registro predefinido en la tabla principal.

Una vez finalizada la creación de la relación pulsamos Aceptar y se guarda la relación.

Debemos tener en cuenta que podemos establecer relaciones con dos o más tablas dependiendo de lo que necesitemos hacer.

.- Modificar o Editar una relación.

Podemos editar o modificar la relación creada de la siguiente manera:

Figura Nº 18

Teniendo establecida la relación con el cursor nos colocamos sobre la línea que indica la relación y pulsamos el botón derecho y aparece un menú con algunas opciones y seleccionamos Editar.

Figura Nº 19

Luego nos despliega la ventana Relaciones (Figura N 17) y realizamos las modificaciones pertinentes y procedemos a pulsar el botón Aceptar para confirmar los cambios. Debemos tener en cuenta que la relación es con una tabla con el campo de clave principal y único con una tabla con un campo organizado por índice.

.- Eliminar una relación.

Para eliminar una relación procedemos de la siguiente manera, colocamos el cursor sobre la línea que indica la relación y pulsamos el botón derecho y aparece un menú con algunas opciones y seleccionamos Eliminar y queda eliminada la relación. Luego de terminada la acción pulsamos el botón Aceptar para confirmar los cambios.

Como podemos observar es muy fácil hacer cambios en la estructura de la base de datos y establecer relaciones e índices con la misma. Lo importante en estos casos es tener previamente definida las tablas, campos, tipos, índices y relaciones que vamos necesitar, claro esto no implica que no vamos a hacer ajustes después, pero al tener ya todo previamente preparado sabemos con certeza que vamos a hacer y cómo lo vamos a hacer para no estar divagando ni adivinando, esto también nos permite que al momento de definir las tablas podamos en algún momento recrear algunas de ellas uniendo o separándolas según vaya evolucionando el proyecto en el tiempo, porque todo es dinámico y la información aportada puede crecer y necesitamos hacer los ajustes para agregar estos campos que requerimos y establecer nuevas relaciones e índices.

Es por esta razón de que el LibreOffice Base como en otras aplicaciones similares lo principal es la creación de las Bases de Datos, sus tablas y componentes porque de ahí parte todo lo demás y si no se está claro el proyecto puede tener muchas dificultades y en muchos casos tendríamos que volver a comenzar desde el principio.

En la próxima entrega hablaremos sobre las consultas que es uno de los aspectos que más vamos a usar en nuestro proyecto, porque nos permite establecer una tabla de lectura relacionada con dos o más archivos de forma permanente que nos aporta información, es de solo lectura porque con este tipo de tablas o esquema no podemos realizar actualizaciones directamente en las tablas porque están diseñada específicamente para buscar de forma rápida información y con ella podemos establecer relaciones que lo podemos hacer de otra forma.

También te puede Interesar:

Deja un comentario