더 나은 이해를 얻으려면 우선 관계 C에 대한 설명을하고 스키마를 확인하십시오. 엄지 손가락 규칙으로 다음과 같은 기억, 이제
describe C;
C: {A::group: bytearray, A: {()}, B: {()}}
당신이 함께 편평한와 C에 foreach 문을 다하고 있습니다 - - 이 비슷한을해야 편평한와 foreach는 가방에 모든 레코드의 크로스 제품을 생산 generate 문에있는 다른 모든 표현식과 함께.
는
지금 관계 C에서 첫 번째 튜플을 고려 할 수 있습니다
(1,{(1,2,3)},{(1,3)})
더 나은 이해를 위해 나는
(C::1,{A::(1,2,3)},{B::(1,3)})
A.($0,$1) = (1,2)
B.($1) = (3)
으로이를 나타낼 수 있습니다 단지에 대해 우리가 하나 개의 용어 가방의 모든 레코드에 대한 각 그래서 따라서 하나의 십자가 제품 만이 반복을 위해 하나의 튜플 만 출력됩니다. 즉, (1,2,3)
이제 relat의 두 번째 튜플을 고려해보십시오 이제 제 튜플과 어떻게 볼 수
(C::4,{A::(4,2,1),A::(4,3,3)},{B::(4,6),B::(4,9)})
A.($0,$1) = (4,2) and (4,3)
B.($1) = (6) and (9)
--As output we will see cross product of all of the other expressions in the generate statement, hence we get
(4,2,6) (4,2,9) (4,3,6) (4,3,9)
- 아래와 같이 이온 C는 그들의 외적 그러므로 우리는 출력 4 개 레코드를 볼 것이며, 2 × 2 = 4 인 것, B는 두 개의 레코드를 보유하고, 두 개의 레코드를 가지고 관계 C에서 여기 A는 2 개의 레코드를 가지고 B는 단 하나의 레코드를 가지며, 2x1 = 2 출력 행을 얻습니다. (8,3,9) (8,4,9)
" 프로그래밍 돼지 "
희망이 도움이됩니다.