Чи можуть реляційні докази алгебри / обчислення використовуватися для тестування / перевірки SQL?


9

Чи можливо або навіть можливо використовувати реляційну алгебру та / або реляційне числення у формі доказів для перевірки / перевірки правильності операторів, функцій та збережених процедур SQL?

Мені здається, що це повинно бути принаймні можливим, але я не знаю, чи є якась деталь, яку я пропускаю, що робить зіставлення 1: 1 між доказом та кодом неправильним.

Хтось із вас випробував такий метод? Це спрацювало? Якими були ваші переживання?


2
Будь ласка, повторіть за мною: SQL не є реляційним.
Мисливець на олень

Відповіді:


4

Існують деякі відомі правила відображення між операторами реляційної алгебри та операторами SQL. Наприклад, оператор Sigma відображає оператор SELECT, там є одне на одне зіставлення операторів об'єднання, Delta map для вибору підмножини стовпців тощо.

Чи можна використовувати реляційну алгебру для перевірки правильності операторів SQL?

Так, можливо. Звичайно, вам потрібно мати чітку схему бази даних з усіма зв'язками, зовнішніми ключами і т. Д. У деяких випадках маніпулювати реляційними висловлюваннями алгебри навіть простіше, ніж операторами SQL (є перевірені правила перетворення для зміни та спрощення операторів) .

Але з іншого боку, я не думаю, що перевірити висловлювання за допомогою реляційної алгебри набагато простіше, ніж тестувати оператори SQL, особливо коли у вас є база даних, де ви можете виконати запити та побачити результати.


1
Просто хотів сказати: Реляційні оператори відображають на "ВИБІР ВИДАЛЕННЯ", оскільки реляційна алгебра використовує набори кортежів і тому не може обробляти дублікати. Сама сигма відповідає пункту WHERE, pi - SELECT тощо.
суперечив

Оператори об'єднання не є 1: 1, версії SQL розглядають нулі спеціально, і аналогічні предикати не булеві.
philipxy
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.