XSD neutro del database standard per descrivere uno schema di database relazionale
-
06-07-2019 - |
Domanda
Qualcuno è a conoscenza di un XSD neutro del fornitore per descrivere uno schema di database relazionale? Il nostro sistema deve raccogliere informazioni sulla struttura di un database:
- Tabelle
- Colonne e tipi
- Vincoli di chiavi primarie ed esterne
- Indici
- etc
in modo indipendente dal fornitore e archiviarlo in un file XML per l'elaborazione successiva.
Prima di fare ciò che facciamo di solito e fare il nostro. Volevo fare qualche ricerca e vedere se esisteva un XSD esistente su cui le persone si stanno standardizzando per quello che presumo non sia un requisito raro per strumenti di modellazione e simili. Non ho trovato nulla su Google che non fosse specifico del fornitore del database. Se conosci uno standard pubblico esistente apprezzerei molto un link.
Grazie in anticipo,
Terence
Soluzione
Questo non è esattamente quello che stai cercando, ma il PostgresSQL Wiki ha un'interessante sezione sulle esportazioni XML, che descrive come supportano insieme SQL e XML. Visualizza una sezione su come una tabella verrebbe esportata come XML e XSD che la supporterebbe, che sembra piuttosto generica. Potrebbe servire da modello per crearne uno tuo.
Il Wiki parla del riferimento a uno standard ISO / IEC 9075-14: 2006, che sembra essere adottato da alcuni grandi fornitori come base. Scorro rapidamente sul sito ISO afferma che: il 2006 è stato aggiornato al 2008. Sono sicuro che puoi trovare una specifica coperta di questo che non devi pagare per il download.
L'articolo indica anche una definizione standard SQL / XML che è un po 'obsoleta, ma potrebbe servire le tue esigenze se stai cercando alcune nozioni di base.
Altri suggerimenti
Problema interessante - Non sono a conoscenza di standard o strumenti per raggiungere questo obiettivo.
Dovresti quasi avere una sorta di "neutralizzato" versione con adattatori per ogni singolo sistema di database che si desidera targetizzare - anche solo per mappare tutti i vari tipi di dati (VARCHAR e NVARCHAR in SQL Server, VARCHAR2 in Oracle e così via).
Potresti semplicemente usare i tipi definiti nello standard SQL: 2003 - ma anche allora probabilmente dovresti comunque avere una sorta di mappatura / adattamento specifica del fornitore. Per non parlare di un qualche tipo di supporto per i dettagli dell'implementazione specifici del fornitore (come colonne IDENTITY in SQL Server vs. SEQUENCE in Oracle e altri).
Domanda molto interessante! Spero che altri saranno in grado di far luce sul problema e magari raccomandare uno strumento esistente.
In caso contrario, e decidi di crearne uno tuo, considera di renderlo open-source su CodePlex o Google Code! Sono sicuro che molte persone sarebbero più interessate!
MARC
Le specifiche del metamodello UML Information Management (IMM) di OMG potrebbero valere la pena di provarle.