Ist es möglich oder sogar möglich, relationale Algebra und / oder relationale Berechnungen in Form von Beweisen zu verwenden, um die Richtigkeit von SQL-Anweisungen, -Funktionen und gespeicherten Prozeduren zu testen / zu verifizieren?
Es scheint mir, dass es zumindest möglich sein sollte, aber ich weiß nicht, ob mir ein Detail fehlt, das eine 1: 1-Zuordnung zwischen dem Beweis und dem Code falsch macht.
Hat jemand von euch eine solche Methode ausprobiert? Hat es funktioniert? Wie waren deine Erfahrungen?
testing
sql
math
relational-database
Robert Winslow Dalpe
quelle
quelle
Antworten:
Es sind einige Zuordnungsregeln zwischen relationalen Algebraoperatoren und SQL-Anweisungen bekannt. Beispielsweise ordnet der Sigma-Operator einer SELECT-Anweisung zu, es gibt eine Eins-zu-Eins-Zuordnung für die Join-Operatoren, Delta-Zuordnungen zur Auswahl einer Teilmenge von Spalten usw.
Ja, es ist möglich. Natürlich benötigen Sie ein klares Schema der Datenbank mit allen Beziehungen, Fremdschlüsseln usw. In einigen Fällen ist es sogar einfacher, relationale Algebra-Anweisungen zu manipulieren als SQL-Anweisungen (es gibt bewährte Transformationsregeln zum Ändern und Vereinfachen von Anweisungen). .
Andererseits denke ich nicht, dass das Überprüfen von Anweisungen mithilfe der relationalen Algebra viel einfacher ist als das Testen von SQL-Anweisungen, insbesondere wenn Sie eine Datenbank bereit haben, in der Sie die Abfragen ausführen und die Ergebnisse anzeigen können.
quelle