BlogGuest 29 (Oscar)
Los blogs más difíciles de hacer son los de índole técnico. Sobre todo si se quiere llegar a todos los públicos. El de Oscar me atrae especialmente por su propósito didáctico y su elegancia. Hoy, en su post como invitado, nos presenta una idea brillante.
XML, una base de datos alternativa.
Llevo varios días dándole vueltas al tema de los ficheros XML.
Por ahora sólo los usamos (la mayoría de weblogs) como
ficheros que contienen noticias (RSS), la estructura de la web
(desde el momento en que valide XHTML 1.0 ya es un fichero XML),
y alguna que otra cosa más.
En Gen7es estamos
montando un weblog desde 0 pero de uso interno que se podrá ver
en la nueva versión del weblog de Sergi.
Mientras hacíamos la estructura de la base de datos y jugábamos
con el PHP me pasó por la cabeza el siguiente problema:
que ocurriría si, por el motivo que sea, no se tiene acceso a una base de datos?
Desde ese momento el weblog deja de funcionar,
ya que no tiene donde almacenar ni recuperar datos.
Muchos de vosotros ya estaréis pensando en Movable Type,
pero os recordaré que usa la base de datos DB de Berqueley y está
instalada en la mayoría de sistemas GNU/Linux.
La gente piensa que si no tiene un Postgresql, MySQL o SQL Server
no tiene una base de datos instalada, cosas que pasan.
Retomando el tema. A la problemática que se me planteaba
en seguida pensé en usar ficheros para guardar los registros
y luego poder mostrarlos, pero no quería usar ficheros binarios
que me complicaran la vida a la hora de exportarlos o migrarlos,
por lo que me decidí por usar ficheros XML. Los ficheros XML
son bases de datos que puedes leer con cualquier editor de
texto normal. La ventaja es que no depende de plataformas,
no depende de versiones ni librerías de ningún tipo.
Es una base de datos transparente y portable, sin optimizaciones
pero también sin limitaciones, limitaciones lógicas, que no
funcionales.
Estoy pensando en ponerme a trabajar en una librería para PHP
escrita también en PHP, que nos permitan hacer el mismo tipo
de llamadas que hacemos para las bases de datos normales pero
hacia ficheros XML. Para realizar una consulta sobre MySQL
escribimos: mysql_query(); pues la idea es tener la posibilidad de
escribir xmldb_query();. Ah! Pero claro, la librería entonces
necesita entender SQL para poder realizar las gestiones.
La verdad es que hacer parseadores sintácticos, léxicos y semánticos
para comprender el lenguaje SQL no entra en mis objetivos, por lo que
las llamadas se simplificarán y para seleccionar datos se usará
una llamada específica: xmldb_select. Lo mismo para el resto de sentencias. Se soportará el JOIN como en cualquier base de datos, pero estarán limitadas las funciones de agregados.
Resumiendo, la idea sería tener una capa de abstracción
que supiera manejar tanto a MySQL como a ficheros XML, y es el usuario final el que decide con qué sistema trabajar.
Me gustaría que me dieséis vuestras opiniones en cuanto al tema, si os gusta, os parece una salvajada, si ya hay algo parecido lo que queráis. Me interesa mucho, por que si el tema no tiene suficiente alcance aparcaré el proyecto (como tantos otros) y me pondré con otra cosa.
Post escrito en exclusiva para ©blogpocket por Oscar
Oscar es Ingeniero técnico en informática por la Universidad Jaume I, aunque sospecho que, para él, los títulos son lo de menos. Apasionado de Linux (desde siempre), PHP y XML, … pero ¡eh!, dejen que él mismo se presente.
Me considero una persona normal, del montón.
Me gusta estar delante de mi ordenador pensando, leer libros y
realizar apuntes en los bordes de las páginas, las películas de
ciencia ficción, la buena comida y debatir abiertamente con
mis amigos. Las noches entre semana me encantan, sin un alma
en la calle, sin ningún otro ruido que el de los grillos que hay
en los jardines de las plazas y los ventiladores de la caja del
ordenador. Odio la televisión, aunque si veo los telediarios y
alguna que otra película. Realmente soy como soy, unos días mejor y otros peor.









