LibreOffice Base no es un sistema gestor de bases de datos al uso

Introducción

LibreOffice Base no es un sistema gestor de bases de datos (SGBD) al uso. La mayoría de los SGBD solamente tienen un tipo de base de datos y funcionan solo con un motor de base de datos determinado. LibreOffice Base, sin embargo, maneja diferentes tipos de bases de datos (en cuanto al lugar donde se almacenan los datos), funciona con diferentes motores y además puede establecer diferentes tipos de conexiones.

¡Buff! ¡Qué me estás contando! Vaya lío.

Bueno, voy a intentar explicar un poco esto que acabo de decir.

Lo primero de todo, he de dejar claro que la nomenclatura (tipo de base de datos, motor de base de datos y tipo de conexión) seguramente no es muy académica. De hecho probablemente ni siquiera exista una forma correcta de nombrar cada uno de los elementos que yo estoy intentando diferenciar, pero la intención de este artículo no es nombrar, sino aclarar algunos conceptos, especialmente lo que yo he llamado tipo de base de datos.

Tipos de bases de datos (en relación con el lugar donde se guardan los datos)

Como he dicho anteriormente, la clasificación de tipo de base de datos que voy a explicar está relacionada con el lugar en el que se almacenan los datos. Así, podemos distinguir tres tipos de bases de datos que maneja Base: bases de datos incorporadas (también llamadas a veces bases de datos embebidas o incrustadas), bases de datos de archivo y bases de datos de servidor.

Bases de datos incorporadas.

En este tipo de base de datos, los datos se almacenan dentro del archivo .odb de Base. También se almacenan en el mismo archivo .odb, junto a los datos, los formularios, las consultas, las vistas y los informes.

Base puede crear (y abrir) bases de datos incorporadas con dos motores de bases de datos diferentes, HSQLDB y Firebird, aunque, actualmente, para poder crear bases de datos Firebird incorporadas es necesario tener activadas las funcionalidades experimentales.

Este tipo de base de datos es el más fácil de crear y el más fácil de abrir. También es el más fácil de almacenar, mover, copiar… Todo está en un solo archivo. Es el ideal para comenzar y para aprender a manejar bases de datos sin complicaciones.

Como desventajas, la principal es que estas bases de datos son monousuario, es decir, no se pueden usar por más de un usuario simultáneamente. Bueno, en realidad sí que se puede, pero casi seguro que la base de datos se corromperá más pronto que tarde y perderemos todos los datos.

Otro inconveniente es que las bases de datos HSQLDB, con el uso, terminan corrompiéndose debido a los procesos de compresión y descompresión que sufren los archivos .odb al abrirlos y cerrarlos, por lo que no se recomiendan para uso en producción. Las bases de datos Firebird no sufren este problema, pero, según dicen, la integración de este motor aún no están suficientemente madura y puede tener algunos errores, aunque en las pruebas que yo he realizado no he sufrido ningún problema insalvable.

Bases de datos de archivo

En este tipo de base de datos los formularios, las consultas y los informes se almacenan en el archivo .odb de Base, pero los datos no se almacenan en dicho archivo sino que se almacenan en uno o varios archivos diferentes.

Base es capaz de conectarse a diversos tipos de archivos de datos: hoja de cálculo de Calc, documentos de Writer, archivos de texto, bases de datos dBase, archivos de Access (la conexión directa solo es posible en Windows) y archivos de datos de Firebird, pero la capacidad de manejar los datos no es igual en todas ellas.

La conexión con archivos de Calc, de Writer o archivos de texto, es una conexión de solo lectura, es decir, podemos leer los datos, pero no podemos modificarlos. Podemos obtener tablas de datos, pero no podemos crear tablas nuevas.

Las conexiones con bases de datos de dBase y de Access, permiten la edición de los datos y la creación de tablas, aunque tienen algunas limitaciones, por ejemplo, a veces no se pueden crear índices en las tablas de Access o no se pueden establecer relaciones entre las tablas de dBase.

La conexión con archivos de bases de datos de Firebird es la única que es completa y permite la edición de datos y la creación y modificación de tablas prácticamente sin limitaciones. Además, los archivos de base de datos de Firebird, son los únicos archivos de base de datos que se pueden crear directamente desde Base.

Alguien dirá, si la conexión a algunos archivos es de solo lectura ¿para qué abrirlos con Base? Pues muy sencillo, en general, los programas que se utilizaron para crear los archivos originales no tienen las posibilidades de manejo de datos que tiene Base, especialmente las posibilidades de filtrado y selección de datos, que adicionalmente se puede guardar en forma de consultas. También Base tiene la posibilidad de mostrar los datos, mediante formularios e informes, de manera, algunas veces, más atractiva o intuitiva que aquellos programas.

Aunque puede parecer que eso de separar los datos del resto de los elementos es más bien un inconveniente, en algunos casos puede ser una ventaja. Por ejemplo, podemos tener un solo archivo de datos, pero dos archivos .odb diferentes, uno con formularios e informes específicos para contabilidad, por ejemplo, y otro con formularios e informes específicos de personal; aunque hay que tener en cuenta que estos archivos siguen siendo monousuario, es decir, no podrán trabajar simultáneamente desde contabilidad y desde personal sin riesgo de corromper los datos.

En el caso concreto de los archivos de bases de datos de Firebird, el hecho de tener los datos en un archivo independiente, también facilita enormemente la migración a un sistema de servidor de bases de datos.

Bases de datos de servidor

En este caso, los datos residen en un servidor de bases de datos. En el archivo .odb de Base solamente se guardan las consultas, los informes y los formularios, junto con las instrucciones para conectarse al servidor.

Aunque el servidor y los propios datos, pueden estar en el mismo equipo, Base no es quien gestiona los datos sino que los datos son gestionados por el servidor. Por decirlo de un modo sencillo, LibreOffice Base pide los datos al servidor y este se los envía a Base. Además, el servidor se encarga, entre otras cosas, de gestionar los usuarios y permisos de acceso a la base de datos.

Se podría decir, que en este caso, Base deja de ser el sistema gestor de bases de datos para convertirse en una mera interfaz para relacionarse con el SGBD.

Este tipo de bases de datos tiene muchas ventajas. La más visible de ellas es que, generalmente, son multiusuario, es decir, que permiten la conexión simultánea de varios usuarios a los mismos datos. También, al ser el servidor el que gestiona los datos y estar optimizado para ello, es capaz de suministrar los datos más rápidamente, incluso con muchos usuarios concurrentes.

Otra gran ventaja es la seguridad de acceso a los datos. Estos sistemas están diseñados para permitir el acceso a los datos unicamente a quienes tengan autorización para ello. Los permisos de acceso se pueden otorgar o restringir en el ámbito de base de datos o de tablas o, incluso dentro de las tablas, se pueden conceder o impedir acceso a campos o vistas determinadas. También puede estar limitada la creación de bases de datos e incluso de tablas y vistas.

Pero lo que es una gran ventaja, puede en ciertos casos ser un inconveniente, porque todas estas capacidades de control y seguridad de los datos, requiere unos conocimientos añadidos de administración del servidor que muchos usuarios de bases de datos no poseen.

Motores de bases de datos

Según la Wikipedia, «Un motor de base de datos (o motor de almacenamiento) es el componente de software subyacente que un sistema de administración de la base de datos (SGBD) utiliza para crear, leer, actualizar y eliminar (CRUD) datos de una base de datos».

Según el motor de base de datos empleado, las posibilidades de interacción con los datos y la forma de hacerlo, pueden variar. Así, una consulta para obtener los datos de una tabla puede ser diferente de un motor a otro.

Como hemos visto, LibreOffice Base incluye dos motores de bases de datos internos, HSQLDB y Firebird, que son los únicos con los que podemos crear bases de datos incorporadas.

En la mayoría de las conexiones a bases de datos de archivos, no se puede decir que exista un motor de bases de datos propiamente dicho, por eso casi todas son de solo lectura. Para simplificar, yo diría (aunque esto es cuestionable) que solamente Firebird y Access utilizan motor de bases de datos.

Para la manipulación y creación de archivos de datos Firebird, se utiliza el motor incluido en LibreOffice, el mismo que para las bases de datos incorporadas; y Access utiliza un motor que, a veces y no siempre, está instalado en Windows; por eso no es posible la conexión directa a archivos de Access en Linux y MacOS.

En las bases de datos de servidor, es el propio servidor el que proporciona el motor, pero para poder entenderse con ese motor, Base necesita una capa de software adicional, que generalmente es llamada driver o controlador, y que es específica para cada motor o servidor de base de datos.

Tipos de conexión

En realidad, para que Base pueda conectarse a los datos, es decir para poder conectarse al motor que proporciona los datos, siempre se necesita esa capa de software adicional, el driver, que mencionábamos anteriormente; incluso las bases de datos incorporadas y las de archivo los necesitan. Lo que ocurre, es que para las bases de datos incorporadas y para los archivos de Firebird, el driver necesario está incluido dentro de Base y Base lo utiliza de forma transparente, nosotros no somos conscientes de ello.

Sin embargo, para la conexión a bases de datos de servidor, somos nosotros, los usuarios, los que tenemos que seleccionar, y casi siempre proporcionar, el driver que se empleará para la conexión. Según el tipo de driver seleccionado, obtendremos lo que yo he llamado tipo de conexión.

Conexión directa

Como hemos visto, para la conexión a los motores de bases de datos incorporados en Base, se utiliza el correspondiente driver que también está incorporado en Base.

Pues bien, en esos casos, en los casos en que se utiliza un driver incorporado, decimos que la conexión es una conexión directa.

Así pues, tenemos conexión directa, además de a las bases de datos incorporadas, a todas las bases de datos de archivo excepto a Access, que como hemos visto necesita instalar un motor/driver adicional.

Pero también tenemos la posibilidad de conexión directa a servidores de bases de datos de MariaDB, MySQL y PostgreSQL, puesto que en estos casos también tenemos controladores incluidos en Base.

Conexión mediante ODBC

Dice la Wikipedia que «Open DataBase Connectivity (ODBC) es un estándar de acceso a las bases de datos desarrollado por SQL Access Group (SAG) en 1992. El objetivo de ODBC es hacer posible el acceder a cualquier dato desde cualquier aplicación».

Pues bien, Base es capaz de conectarse a cualquier base de datos que proporcione un controlador ODBC. Para ello es necesario disponer del controlador ODBC adecuado para nuestra base de datos o servidor y configurarlo adecuadamente (quizá se necesite instalar las capacidades ODBC en el sistema operativo).

Conexión mediante JDBC

Al igual que ODBC, JDBC (Java Database Connectivity) es una API estándar para el acceso a bases de datos, y del mismo modo que con ODBC, con JDBC podemos conectar con cualquier base de datos, de archivo o de servidor, que proporcione un controlador adecuado.

JDBC está basado en Java, por lo que es necesario que el equipo tenga instalada una máquina virtual java (un JRE o JDK).

Prácticamente, los controladores JDBC y ODBC proporcionan las mismas prestaciones para el acceso a los datos, pero últimamente parece que los controladores JDBC son más populares, por lo que seguramente sea más fácil obtener un driver JDBC adecuado para nuestra base de datos, además, por este mismo motivo, las posibilidades de que esté actualizado son mayores.

Conclusión

Tal y como he comenzado este artículo, LibreOffice Base no es un sistema gestor de bases de datos al uso.

Como hemos visto, permite tres tipos diferentes de bases de datos, tres maneras diferentes de conexión y prácticamente infinitos motores de bases de datos.

Por eso Base proporciona un abanico de posibilidades y de prestaciones que deberían satisfacer cualquier necesidad y que seguramente sea muy difícil de encontrar en ningún otro SGBD.

Siempre se menciona que las capacidades de Base son muy limitadas, que las posibilidades para interactuar con el usuario, por ejemplo, mediante formularios o informes no son las mejores del mundo, pero, ¿nos hemos parado a pensar que la mayoría de los SGDB ni siquiera proporcionan esas capacidades limitadas?.

Por ejemplo, MariaDB o MySQL que son SGBD muy de moda, no proporcionan ninguna manera visual, accesible para los simples mortales, de acceder a los datos. Para que los humanos puedan acceder a los datos, se necesita programar, con un lenguaje externo, las interfaces necesarias. En cambio, Base proporciona facilidades para crear de forma sencilla interfaces para acceder a los datos mediante formularios, consulta e informes, y si esas posibilidades nos son suficientes, se pueden ampliar mediante los lenguajes de programación de macros que se incorporan.

Comentarios

  1. By ifanlo

    Responder

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Acepto la Política de privacidad