Hola.
Aunque no es muy ortodoxo, voy a contestar entre líneas a cada una de
las cuestiones
El 12/06/2021 a las 11:29, Narcis Garcia escribió:
Hola, necesito crear una base de datos con interfaz, con los siguientes
requisitos:
1. Que sea lo más portable posible, es decir, poderle enviar a alguien
una copia adjunta por correo electrónico y que pueda trabajar de
inmediato con la mínima configuración en su equipo.
2. Que sea accesible de forma concurrente por la red, sin gestión de
permisos.
Para lo primero, he pensado en LibreOffice, que le es muy fácil de tener
instalado a la mayoría de usuari@s con cualquier sistema operativo.
¡Muy buena elección!, que otra cosa podemos decirte desde una lista de
LibreOffice
Además, permite el diseño visual de todo y algo de programación.
Más que algo de programación, permite mucha programación y en varios
lenguajes
Con esto también hace falta que no haya que instalar y configurar
software servidor de bases de datos, sino que los datos estén en
ficheros junto al documento ODF.
Vale, esto también se puede conseguir con Base (aunque no cumplirá con
alguno de los requisitos posteriores)
Para lo segundo, no tengo claro si el formato incrustado con HSQLDB
prevé el acceso simultáneo por red permite y/o es práctico para eso.
No, el formato incrustado HSQL no permite acceso simultáneo.
Como alternativa se me ocurre SQLite*.
Creo que SQLite no cumple el requisito primero, facilidad de
instalación. Haciéndolo con JDBC, el receptor del archivo tendría que
tener instalado java, descargar el driver de SQLite y colocarlo en un
lugar accesible y a continuación configurar LibreOffice para acceder a
ese driver. No me parece muy sencillo para un usuario normal. Tampoco
ODBC soluciona el problema, porque la instalación tampoco es fácil.
Me está costando encontrar documentación clara, sistemática y fácil de
comprender que relacione estos temas con LibreOffice.
Hombre, exactamente lo que quieres es muy difícil encontrarlo, pero hay
mucha documentación sobre bases de datos HSQLDB y Firebird y bastante
información sobre conexión a servidores (MySQL principalmente, pero
también de otros), aunque mucha de esa información es en inglés.
Quisiera que alguien me arrojara algo de luz antes de emprender el diseño.
GRACIAS.
(*) He probado a diseñar una base de datos con «DB Browser» y la he
guardado como «libros.sqlite». Luego con LibreOffice intento crear un
documento nuevo para base de datos, conectando mediante JDBC a la URL:
jdbc: sqlite:libros.sqlite
y ya no sé qué poner como «clase del controlador».
Si usas el driver */sqlite-jdbc-3.34.0.jar/* (o algo similar), la clase
del controlador es */org.sqlite.JDBC/*, pero yo lo he probado y aunque
conecta y lista las tablas, da un error al intentar acceder al contenido
de las mismas.
En conclusión, y en mi opinión, creo que deberías plantearte la
instalación y configuración de algún servidor de bases de datos
sencillo. Por ejemplo MariaDB o MySQL podrían ser buenas elecciones, por
facilidad y por la cantidad de documentación que puedes encontrar. Como
interfaz para acceso al servidor, LibreOffice es perfecto.
Esto no cumple el requisito de que no se necesite gestión de permisos,
pero no sería demasiado difícil crear un usuario con los permisos
necesarios y compartir ese usuario entre varios.
Puede que te interesarte mi extensión EasyMariaDB
<https://easymariadb.github.io>, que facilita la instalación y
configuración de usuarios y permisos en MariaDB (y MySQL). Aunque la
información en la página web aún no está completa (estoy trabajando en
ello) creo que puede servirte para comenzar. Te recomiendo que antes de
lanzarte a instalar nada, leas la introducción y, sobre todo, el
apartado /Entender la arquitectura cliente servidor/.
--
*Juan C. Sanz*