관계형 대수 / 미적분 증명을 사용하여 SQL을 테스트 / 확인할 수 있습니까?


9

SQL 문, 함수 및 저장 프로 시저의 정확성을 테스트 / 확인하기 위해 증명 형식으로 관계형 대수 및 / 또는 관계형 미적분학을 사용하는 것이 가능하거나 가능합니까?

적어도 가능 해야하는 것처럼 보이지만 누락 된 세부 사항이 있는지 증명하지 못하고 증명과 코드 사이의 1 : 1 매핑이 잘못되었습니다.

이런 방법을 시도한 사람이 있습니까? 작동 했습니까? 당신의 경험은 어땠습니까?


2
나에게 반복하십시오 : SQL은 관계가 없습니다.
사슴 사냥꾼

답변:


4

관계형 대수 연산자와 SQL 문 사이에는 알려진 매핑 규칙이 있습니다. 예를 들어, Sigma 연산자는 SELECT 문에 매핑되고, 조인 연산자에 대한 일대일 매핑, 델타는 열의 하위 집합 선택 등에 매핑됩니다.

관계형 대수를 사용하여 SQL 문의 정확성을 검증 할 수 있습니까?

네 가능합니다. 물론 모든 관계, 외래 키 등이 포함 된 명확한 데이터베이스 스키마가 필요합니다. 어떤 경우에는 SQL 문보다 관계형 대수 문을 조작하는 것이 훨씬 쉽습니다 (문 을 수정하고 단순화하기 위해 입증 된 변환 규칙 이 있음 ) .

그러나 반면에 관계형 대수를 사용하여 문을 확인하는 것이 SQL 문을 테스트하는 것보다 훨씬 쉽다고 생각하지 않습니다. 특히 쿼리를 실행하고 결과를 볼 수있는 데이터베이스가 준비되어있는 경우.


1
관계형 대수는 튜플 세트를 사용하므로 중복을 처리 할 수 ​​없으므로 관계 연산자는 "SELECT DISTINCT"에 매핑됩니다. 시그마 자체는 WHERE 절에 해당하고 pi는 SELECT 등에 해당합니다.
모순

조인 연산자는 1 : 1이 아니며 SQL 버전은 널을 특수하게 처리하며 마찬가지로 술어도 부울이 아닙니다.
philipxy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.