안녕하세요.
2권 61쪽.
카티시언 프로덕트에서 두 릴레이션을 곱했을 때 정렬은 어떻게 배치되는것인지 궁금합니다.
랜덤배열인지, 규칙이 존재하는지 알고 싶습니다.
이미지를 첨부합니다.
저렇게 배열도 가능한지 여쭙니다.
잘부탁드립니다.
안녕하세요 길벗수험서 운영팀입니다.
불가능합니다.
A테이블과 B테이블의 카티션 곱을 수행한다고 가정했을 때,
A 테이블의 튜플 수 만큼 B 테이블의 튜플 수를 반복 수행합니다.
즉, A 1열 - B 1열, 2열, 3열, 4열 .... n열
A 2열 - B 1열, 2열, 3열, 4열 .... n열
A 3열 - B 1열, 2열, 3열, 4열 .... n열
....
A m열 - B 1열, 2열, 3열, 4열 .... n열
이렇게 말이죠.
1권에서 for 반복문을 배우셨다면 2중 for문을 생각하시면 됩니다.
for (A=1; A<=m; A++)
for (B=1; B<=n; B++)
결과 = A+B
}
}
위와 같이 말이죠.
즉 회원님이 적으신 것과 같이 A, B 테이블의 값이 서로 다른 상황에서는, 카티션곱으로 생성되는 튜플들에서 중복되는 튜플이 발생할 여지는 없습니다.
행복한 하루되세요 :)
-
관리자2019-06-26 10:36:28
안녕하세요 길벗수험서 운영팀입니다.
불가능합니다.
A테이블과 B테이블의 카티션 곱을 수행한다고 가정했을 때,
A 테이블의 튜플 수 만큼 B 테이블의 튜플 수를 반복 수행합니다.
즉, A 1열 - B 1열, 2열, 3열, 4열 .... n열
A 2열 - B 1열, 2열, 3열, 4열 .... n열
A 3열 - B 1열, 2열, 3열, 4열 .... n열
....
A m열 - B 1열, 2열, 3열, 4열 .... n열
이렇게 말이죠.
1권에서 for 반복문을 배우셨다면 2중 for문을 생각하시면 됩니다.
for (A=1; A<=m; A++)
for (B=1; B<=n; B++)
결과 = A+B
}
}
위와 같이 말이죠.
즉 회원님이 적으신 것과 같이 A, B 테이블의 값이 서로 다른 상황에서는, 카티션곱으로 생성되는 튜플들에서 중복되는 튜플이 발생할 여지는 없습니다.
행복한 하루되세요 :)