본문 바로가기

Library/Database

TRC and DRC

대수 방식이 절차적인 것에 비해, 해석은 원하는 답이 어떻게 계산되어야 하는지에 대해서 명시하고 그들의 집합을 기술한다. 관계해석은 SQL에 많은 영향을 끼쳤다. TRC(Tuple Relation Calculus)이다. TRC에 있는 변수들은 Tuple을 값으로 가진다.

Tuple 변수들은, 어느 특정 관계의 Tuple을 값으로 가지는 변수를 말한다. 주어진 Tuple 변수에 대입되는 값들은 동일한 개수와 타입의 필드들을 가진다. 반대로, 도메인 변수들은, 어떤 attribute의 도메인에 있는 실제 값을 가지는 변수이다. DRC(Domain Relation Calculus) 질의의 형태는 { (x1, x2, x3...) | p(x1, x2, x3...) }의 형태이며, 이때 각 xn은 도메인 변수이거나 상수가 된다.

TRC나 DRC 모두, 변수 앞에 ∃나 ∀가 붙었다면 이것을 한정자(qualification)라고 한다. 이것은 변수의 범위를 제한하는 역할을 하며, 한정자가 붙지 않았다면 이 변수를 자유변수라고 한다. TRC, DRC 모두 이들의 질의가 유효한지 판단해야 하며, 이들의 구성이 유요할 때 이것을 잘 구성된 형태(Well Formed Fomula)라고 한다.

TRC 질의는 { T | p(T) }의 형식으로 정의되며, 이 때 T는 fomula P 내에서 유일하게 정의된 자유 변수이다. 그렇다면, TRC 질의가 의미하는 것은 무엇인가? 즉, TRC 질의의 결과 Tuple들의 집합은 무엇이 되는가? 이것은, 변수 T에 값 t를 대입하여 p(T)가 참이 되게 하는 Tuple t의 집합이다.