Join ist eine grundlegende Operation in relationalen Datenbankmanagementsystemen (RDBMS), da sie die zentrale relationale Ausdruckskraft von SQL verkörpert, die es Benutzern ermöglicht, Daten über mehrere Tabellen abzufragen und zu analysieren. Obwohl spezifische Ansätze zur Auffindung von Join-Fehlern in RDBMS vorgeschlagen wurden, sind sie durch Skalierbarkeitsbeschränkungen betroffen. In diesem Papier schlagen wir eine neuartige, allgemeine und effektive Technik zur Auffindung von logischen Join-Fehlern in allen gängigen Join-Typen unter beliebigen Join-Prädikaten und auf Join-unterstützten RDBMS vor, die als Join-Implikationsbegründung (JIR) bezeichnet wird. Unsere zentrale Einsicht ist, dass die Ausführungsergebnisse eines oder mehrerer Join-Typen es uns ermöglichen, das Oracle eines semantisch verwandten Ziel-Join-Typs abzuleiten. Als Illustration können die Ausführungsergebnisse von Inner Join und Anti Join kombiniert werden, um das erwartete Ergebnis eines Left Join abzuleiten, das über die gleiche linke und rechte Seite unter demselben Join-Prädikat durchgeführt wird. JIR validiert Joins, indem es die Join-Semantik jedes einzelnen DBMS selbst für die Begründung nutzt und findet logische Join-Fehler, wenn das Ausführungsergebnis des Ziel-Join nicht mit dem abgeleiteten Oracle übereinstimmt. Wir haben unseren Ansatz realisiert und an 11 ausführlich getesteten DBMS bewertet: SQLite, MySQL, CockroachDB, ClickHouse, DuckDB, TiDB, MonetDB, Umbra, Dolt, CrateDB und PostgreSQL. Insgesamt fand JIR 100 einzigartige, zuvor unbekannte Join-Fehler, von denen 91 behoben und 9 von DBMS-Anbietern verifiziert wurden, wobei 69 logische Join-Fehler waren. Wir erwarten, dass die Allgemeingültigkeit und Praktikabilität unseres Ansatzes ihn weit verbreitet für das Verständnis und die Testung von Joins anwendbar machen wird.
Xiang et al. (Mon,) untersuchten diese Frage.
Synapse has enriched 5 closely related papers on similar clinical questions. Consider them for comparative context: