2010-08-26 55 views

Respuesta

2

Las bases de datos a menudo se usan para almacenar bloques de XML para aplicaciones que no desean serializarlo en un esquema de base de datos real. Pero en general, XML no se usa en las bases de datos.

Esto se debe a que las bases de datos tratan sobre el almacenamiento de datos cuando, como XML, se trata de transmitirlo de manera independiente.

(simplificado) Por lo general, lo que ocurre es una aplicación convierte los datos de la base de datos A en una secuencia XML que se transmite a la aplicación B. Aplicación B a continuación, convierte el XML en una serie de sentencias SQL que crean los registros de la base de datos B.

Hay muchos otros escenarios, pero esto le da una idea general.

+0

gracias esto ayudó. – user431372

0

En general, la mayoría de los puntos de la respuesta de Derek se aplican.

Definitivamente lo pensaría dos veces antes de usar XML en la base de datos.

La mayoría de las aplicaciones utilizan comúnmente bases de datos relacionales. Sin embargo, a veces, la información en el sistema es de naturaleza más jerárquica. Almacenar jerarquía en una estructura RDBMS es definitivamente posible, pero requiere mucha manipulación recuperarlo para volver a su estructura deseada (cosas como los CTE recursivos en SQL Server hacen que esta tarea sea más fácil pero no necesariamente más rápida)

Entonces, si encuentra algo así como tener que almacenar una jerarquía de carpetas de nivel o tal vez una jerarquía organizacional, ambas de naturaleza jerárquica, a veces es mejor almacenarla como XML. La base de datos suele ser el mecanismo de almacenamiento común y porque facilita la sincronización de los cambios, por lo tanto, estos datos se almacenan como tales en DB, aunque también podrían almacenarse como archivos planos.

La mayoría de bases de datos relacionales hoy en dia por lo tanto, ofrecen una gran cantidad de soporte XML donde se puede utilizar T-SQL para consultar los datos/actualización de los nodos seleccionados etc.

Re: ¿Qué es XML - para empezar ven here

+0

muchas gracias En Sane. – user431372

1

Xml (Lenguaje de marcado extensible) es un lenguaje de marcado para que codifica documentos en un formato legible a máquina , con énfasis en flexibilidad, simplicidad y usabilidad a través de Internet.

Sus principales ventajas sobre otras codificaciones son la interoperabilidad: muchos entornos de programación tienen la capacidad de leer y analizar XML, y tiene la ventaja de ser legible por el ser humano. Por esta razón, xml se usa comúnmente al transportar o comunicar datos (como en Internet).

El Wikipedia page on xml tiene mucha información más específica, sin embargo, algunos ejemplos de los diversos usos de XML son:

  • RSS, un protocolo utilizado para publicar las alimentaciones de contenido actualizado con frecuencia.
  • XHTML, una extensión de HTML
  • SOAP (Simple Object Access Protocol), un protocolo comúnmente utilizado para estructurar la información en los servicios web

Por el contrario, la verbosidad de xml y estructura flexible se consigue a costa de ser relativamente costoso de leer (en términos de potencia computacional) y, por lo tanto, xml generalmente no se utiliza como una codificación de almacenamiento en aplicaciones orientadas al rendimiento (como las bases de datos).

En términos de cómo xml sería se utilizará en bases de datos - una base de datos puede optar por exponer datos a su cliente en un formato xml o aceptar datos del cliente en un formato xml. Las bases de datos también se pueden usar para almacenar "Blobs" de datos xml como registros en una tabla, sin embargo, esto tiene el costo de que sea difícil consultar la base de datos en función del contenido de ese xml.

+0

Gracias Kragen, este hepls mucho – user431372

1

Las publicaciones de Derek, In Sane y Kragen son correctas, pero me gustaría dar un paso más.

Dado que XML utiliza intrínsecamente un esquema (un esquema para definir qué representa el marcado), XML por sí solo puede considerarse una base de datos similar al concepto de cualquier otra base de datos.

Puede definir su propio esquema para XML (un XSD) y luego conservar los datos en su formato XML elegido.

Cierto, puede elegir rellenar un montón de XML en un campo de texto en una base de datos SQL, pero también podría usar XML como base de datos ya que una base de datos podría ser nada más que datos persistentes en un esquema diseñado para contener esa información. Aquí hay un área gris considerando que incluso un archivo de texto simple delimitado por comas podría considerarse una base de datos si usted escribió un programa para almacenar y acceder a datos en formato CSV también.

De todos modos, con XML, ya hay definido estándares para cómo el esquema puede ser definido (las normas XSD) y analizadores están construidos para cumplir con los estándares de lo que puede poner datos en y leer datos de documentos excoded en XML que se ajusta a un esquema con nombre (XSD).

Supongo que cuando pregunta cómo se utiliza XML en una base de datos, supongo que mi primera pregunta es ¿qué quiere decir exactamente con "base de datos"?

¿Quiere decir una implementación de proveedor específica de una base de datos SQL? O tal vez "base de datos" como un concepto lógico? O quizás, ¿cómo se puede usar XML para mejorar la interacción con un tipo específico de base de datos?

De las respuestas hasta ahora, creo que todos estamos respondiendo con una idea diferente de lo que quiere decir con "base de datos".

XQUERY, por ejemplo, se puede utilizar de una manera estandarizada a "consulta" datos en un conjunto de archivos XML, o en un XML contexto completamente diferente se pueden utilizar para pasar fácilmente a los datos dentro y fuera de Oracle o SQL Servidor porque Microsoft y Oracle proporcionan interfaces que cumplen con los estándares XML.

+0

gracias por su respuesta. – user431372

0

Ok, cuando dije "base de datos" Estoy en general referente a las bases de datos creadas por, y se accede a través de un motor relacional como Oracle, SQL Server, etc.

Sí que sin duda puede utilizar como archivos XML medios de almacenar datos.A menudo se hace para cantidades muy pequeñas y simples de datos. pero esta es una decisión arquitectónica a menudo impulsada por la cantidad de esfuerzo que el desarrollador debería tener para implementar una base de datos relacional frente a la lectura y escritura de archivos XML, y/o el uso futuro de esos datos. A veces es más fácil usar un archivo XML, a veces no es así.

Cuestiones relacionadas