SQL Abfrage über XML
-
Hallo zusammen!
Ich arbeite gerade an einem Projekt, in dem binäre Daten aus einer Datei auszulesen sind und diese dann in eine Datenbank übertragen werden. Was es mir schwer macht, sind die vielen Relationen, sowie die grosse Anzahl von Attributen. Denn ich soll versuchen, die Abfrageprozedur nicht hart in den Code zu schreiben, sondern möglichst dynamisch.
So das auch änderungen an der Spezifikation vorgenommen werden können, ohne dass das Projekt neu kompiliert werden muss.Meine Idee wäre, dies über XML zu realisieren. Zum einem werden die Binärdaten in einem XML-File bekannt gemacht (Position, Länge), zum
anderem die Relation mit ihren Attributen in einem weiterem XML-File. Ein Parser liest die Daten aus, und es sind dann noch ein paar Stringoperationen notwendig, um die SQL Abfrage richtig zu generieren.Auf Schlüssel nehme ich bisher keine Rücksicht, die müssten fast schon in den Code rein, da die Datenbank nicht mit den Binärdaten übereinstimmt.
Ist die vorgehensweise sinnvoll? Hat jemand schon etwas ähnliches gemacht? Vorschläge?
Danke und Gruß, Vanish
PS: Was ich mich auch noch frage, besteht ein grosses Risiko durch SQL-Injection wenn ich die Attribute in einer XML-Datei auslagere?
-
VanishOxiAction schrieb:
So das auch änderungen an der Spezifikation vorgenommen werden können, ohne dass das Projekt neu kompiliert werden muss.
Soll das wirklich so frei manipulierbar sein. Wie soll das Datenbankschema angepasst werden? Soll das ebenfalls frei änderbar sein?
VanishOxiAction schrieb:
Ein Parser liest die Daten aus, und es sind dann noch ein paar Stringoperationen notwendig, um die SQL Abfrage richtig zu generieren.
Würde mit spontan das Erbauermuster einfallen, welches die Daten liest und/oder in SQL umwandelt und durch einen Direktor, der die spezifische Datenstruktur kennt, dirigiert wird.
VanishOxiAction schrieb:
Ist die vorgehensweise sinnvoll? Hat jemand schon etwas ähnliches gemacht? Vorschläge?
Schwer zu sagen wenn man die Komplexität nicht kennt.
VanishOxiAction schrieb:
PS: Was ich mich auch noch frage, besteht ein grosses Risiko durch SQL-Injection wenn ich die Attribute in einer XML-Datei auslagere?
Wenn Du die Typen prüfst und beispielsweise Hochkommata in Strings mit einem Auswertungsschutz versiehst sollte das kein Problem sein. Alles in allem scheint es aber eine interessante Aufgabe zu sein.
-
Danke erst ein mal für die Antwort. Daher schätze ich das Forum so, die Kompetenz und Erfahrung hinter den Leuten
Ich kann leider im Moment nicht soviele Informationen geben, da ich selber noch nicht richtig drinnen bin.
Das momentane System ist über 17 Jahre alt und läuft auf einem OS/2 rechner. Die Datenbank ist einfach ein hirachisches Filesystem. Jetzt soll es nach Windows portiert werden und auf einer relationalen Datenbank aufsetzen. Nun hat irgendwer schon vorarbeit geleistet und dieses hirachische Filesystem 1:1 auf ein Datenbankschema abgebildet, ich denke das sagt schon alles...Daher: Schema nicht veränderbar, keine Integritätsbedingungen, über 100 Tabellen mit manchmal bis zu mehreren hundert Attributen
Sicher, es wäre ein interessantes Projekt, wenn da nicht die Basis wäre...