Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/08/2013, 08:47
wvelasquez
 
Fecha de Ingreso: agosto-2013
Ubicación: Medellín
Mensajes: 1
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: ¿Se puede usar XML como base de datos?

"Si eres un martillo, todos los problemas te parecerán clavos"

No voy a tratar de convencerte de que uses XML como almacenamiento de tu aplicación, solo voy a darte hechos que pueden ayudarte a tomar la decisión:

1. Ventajas: Sobre todo la sencillez, no tienes que configurar conexiones a RDBMS, backup y restore se hacen con solo copiar una carpeta de archivos. Las BD te obligan a convertir todo en filas y columnas, en XML puedes tener una estructura en arbol.

2. Seguridad: XML es tan seguro como las contraseñas que guardas en tus archivos de configuración en PHP. Es más un problema de establecer bien los permisos, que del medio de almacenamiento.

3. Consumo de memoria: depende de la estructura que elijas: Si almacenas absolutamente todo en un solo archivo, va a ser pesado porque necesitarás recorrerlo todo para encontrar lo que buscas. Pero si fragmentas en documentos del tamaño correcto, el consumo de memoria será el optimo.

4. Tamaño del proyecto: Cualquiera. Te doy dos ejemplos de empresas que crean aplicaciones gigantescas basadas en XML para el gobierno de EEUU: MarkLogic y EMC2. Solo que dependiendo de lo que quieras hacer, vas a necesitar ayuda de bibliotecas de XML, XSLT, XQuery, todas disponibles en PHP, como SimpleXML, crxml, XmlReader y la extensión XML nativa de PHP.

Adicionalmente, existen bases de Datos totalmente basadas en XML, como eXist y BaseX, ambas open source, aunque debe reconocer que no es facil encontrarlas en un Hosting compartido.

loncho_rojas tiene razon en que XML no maneja consultas complejas, pués porque en XML no existen consultas complejas! En las RDBMS tienes que normalizar la información, en XML no. Y para encontrar cualquier cosa tienes XPath, el lenguaje de consultas mas sencillo y poderoso que he visto.

Por ultimo, está bien que preguntes en el foro de PHP, pues XML no es competencia de ningún lenguaje de programación, pues es un lenguaje de representación de información, y por el contrario, todos los lenguajes proveen algún tipo de integración con XML.