Pregunta

¿Alguien conoce un XSD neutral de proveedor para describir un esquema de base de datos relacional? Nuestro sistema necesita obtener información sobre la estructura de una base de datos:

  • Tablas
  • Columnas y tipos
  • Restricciones de claves primarias y extranjeras
  • Índices
  • etc.

de manera independiente del proveedor y guárdelo en un archivo XML para su posterior procesamiento.

Antes de hacer lo que solemos hacer y rodar el nuestro. Quería investigar un poco y ver si había un XSD existente en el que la gente está estandarizando para lo que supongo que no es un requisito poco común para herramientas de modelado y demás. No encontré nada en Google que no fuera específico del proveedor de la base de datos. Si conoces un estándar público existente, agradecería mucho un enlace.

Gracias de antemano,

Terence

¿Fue útil?

Solución

Esto no es exactamente lo que está buscando, pero el PostgresSQL Wiki tiene Una sección interesante sobre exportaciones XML, que describe cómo están soportando SQL y XML juntos. Muestra una sección sobre cómo se exportaría una tabla como XML y el XSD que la admitiría, lo que parece bastante genérico. Podría servirle de modelo para crear el suyo propio.

El Wiki habla sobre la referencia a un estándar ISO / IEC 9075-14: 2006, que parece ser adoptado por algunos grandes proveedores como referencia. Mi búsqueda rápida en el sitio ISO dice que: 2006 fue actualizado hasta 2008. Estoy seguro de que puede encontrar una especificación cubierta de esto que no tiene que pagar para descargar.

El artículo también apunta a una definición estándar SQL / XML que está un poco desactualizada, pero podría servir sus necesidades si está buscando algunos conceptos básicos.

Otros consejos

Problema interesante: no conozco ningún estándar o herramienta para lograrlo.

Casi tendrías que tener algún tipo de "neutralizado" versión con adaptadores para cada sistema de base de datos individual al que desea apuntar, incluso solo para asignar todos los diversos tipos de datos (VARCHAR y NVARCHAR en SQL Server, VARCHAR2 en Oracle, etc.).

Puede usar los tipos definidos en el estándar SQL: 2003, pero incluso entonces probablemente todavía tenga que tener algún tipo de asignación / adaptación específica del proveedor. Sin mencionar algún tipo de soporte para detalles de implementación específicos del proveedor (como columnas IDENTITY en SQL Server vs. SEQUENCE en Oracle y otros).

¡Pregunta muy interesante! Espero que otros puedan arrojar más luz sobre el tema y tal vez recomendar una herramienta existente.

Si no es así, y decides rodar el tuyo, ¡considera hacerlo de código abierto en CodePlex o Google Code! ¡Estoy seguro de que mucha gente estaría más interesada!

MArc

La especificación del modelo de gestión de información UML (IMM) de OMG puede valer la pena.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top