5

Kennt jemand eine herstellerneutrale XSD, um ein relationales Datenbankschema zu beschreiben? Unser System benötigt Informationen über die Struktur einer Datenbank zu greifen:Standarddatenbank neutral XSD zum Beschreiben eines relationalen Datenbankschemas

  • Tabellen
  • Spalten und Typen
  • Primär- und Fremdschlüssel Einschränkungen
  • Indizes in einer
  • etc

herstellerunabhängig und speichern Sie es in einer XML-Datei für die spätere Verarbeitung.

Bevor wir tun, was wir normalerweise tun und rollen unsere eigenen. Ich wollte etwas recherchieren und nachsehen, ob es eine existierende XSD gibt, auf der die Leute standardisieren, für das, was ich annahm, ist dies keine unübliche Voraussetzung für Modellierungswerkzeuge und dergleichen. Bei Google habe ich nichts gefunden, das nicht datenbankanbieterspezifisch ist. Wenn Sie einen existierenden öffentlichen Standard kennen, würde ich einen Link sehr schätzen.

Vielen Dank im Voraus,

Terence

+0

Sie möchten das Schema und nicht die Instanzen des Schemas beschreiben? Keine Daten, die dem Schema entsprechen? –

+1

Warum speichern Sie nicht einfach das SQL, das zum Erstellen der Datenbank erforderlich ist? Fehle ich etwas oder bist du? – Pesto

+0

Der knifflige Teil ist, dass, während die Tabellenstruktur selbst ziemlich einfach sein kann, die XSD, die von einem bestimmten Anbieter generiert wird, höchstwahrscheinlich eigene Namespace-Erweiterungen haben wird, um spezifisch mit ihrem Produkt übereinzustimmen. Etwas Generisches finden, ohne es selbst programmieren zu müssen, wenn das, was ich glaube, das Problem ist. –

Antwort

2

Das ist nicht genau das, was Sie suchen, aber die PostgresSQL Wiki hat einen interessanten Abschnitt über XML-Exporte, die beschreibt, wie sie SQL und XML unterstützen zusammen . Es zeigt einen Abschnitt an, wie eine Tabelle wie XML exportiert wird, und die XSD, die sie unterstützen würde, was ziemlich allgemein aussieht. Es könnte als ein Modell für Sie dienen, um Ihre eigenen zu erstellen.

Das Wiki spricht über einen Verweis auf einen ISO/IEC 9075-14: 2006-Standard, der von einigen großen Anbietern als Basis verwendet wird. Ich blicke schnell auf der ISO-Website sagt, dass: 2006 war updated bis 2008. Ich bin sicher, Sie können eine Cover-Spezifikation von diesem finden, die Sie nicht zum Download bezahlen müssen.

Der Artikel verweist auch auf eine SQL/XML standard Definition, die ein wenig veraltet ist, aber Ihre Bedürfnisse erfüllen könnte, wenn Sie nach einigen Grundlagen suchen.

+0

Danke, ich werde einen Blick darauf werfen. – Terence

+0

Ich habe einen Blick darauf geworfen und der Standard kostet ein paar hundert Dollar, also werde ich nur das nutzen, was die Jungs von Postgres getan haben. Danke und Marc für deine Gedanken. – Terence

1

Interessantes Problem - ich kenne keine Norm oder Werkzeug, um dies zu erreichen.

Sie müssten fast eine "neutralisierte" Version mit Adaptern für jedes einzelne Datenbanksystem haben, auf das Sie zielen wollen - sogar nur um die verschiedenen Datentypen abzubilden (VARCHAR und NVARCHAR in SQL Server, VARCHAR2 in Oracle) und so weiter).

Sie könnten nur die Typen verwenden, die im SQL: 2003-Standard definiert sind - aber selbst dann müssten Sie wahrscheinlich noch eine Art herstellerspezifisches Mapping/Adaption von Arten haben. Ganz zu schweigen von irgendeiner Art von Unterstützung für herstellerspezifische Implementierungsdetails (wie IDENTITY-Spalten in SQL Server im Vergleich zu SEQUENCE in Oracle und anderen).

Sehr interessante Frage! Ich hoffe, dass andere das Thema besser beleuchten und vielleicht ein bestehendes Tool empfehlen können.

Wenn nicht, und Sie beschließen, Ihre eigenen zu rollen - erwägen Sie, Open-Source auf CodePlex oder Google Code zu machen! Ich bin sicher, dass viele Leute am meisten interessiert wären!

MArc

+0

Wenn wir selber rollen müssen und es nicht stinkt :-) Wir werden es definitiv Open Source machen. Prost Terence – Terence

0

Die UML Information Management Metamodell (IMM) Spezifikation von OMG kann einen Versuch wert.

Verwandte Themen