아핫뉴스실시간 인기검색어
아핫뉴스 화산 이미지
아하

생활

생활꿀팁

호기로운원숭이59
호기로운원숭이59

조인과 카티션프로덕트를 하는 조건이 뭔가요?

206번 문제에서는 조인하라고 하고 218번 문제에서는 카티션 프로덕트를 하라고 합니다ㅜㅜ 어떤걸 보고 조인을 해야하는지 카티션 프로덕트를 해야하는지 알려주세요 !!!! 특히 218번에서는 조인(s.dept = d.dno)의 결과를 찾는것이 아니라고 해설되있는데 도저히 무슨말인지 모르겠습니다!!!!

55글자 더 채워주세요.
1개의 답변이 있어요!
  • Tov
    Tov

    안녕하세요.

    두 문제의 형식은 같은데 해설의 차이가 있는 것으로 생각됩니다.

    조인을 수행하는 경우 기준이 되는 테이블의 외래키와 조인하는 테이블의 기본키가 같다는 조건으로 조인을 하는 경우가 많습니다.

    따라서 일반적으로 많이 사용하는 left join의 경우 외래키와 기본키가 같은 경우의 조건을 넣어줌으로써 조인을 수행하여 결과를 보게되죠.

    select *

    from student A, department B

    where A.dept = B.dno and a.dept >100

    하지만 위의 두 문제를 보면 외래키와 기본키가 같다는 조건이 없습니다.

    즉, 두 문제에서는 외래키와 기본키에 상관없이 join을 수행한 경우입니다.

    5x3으로 총 15개의 튜블이 나오겠죠.

    하지만 s.dept >100을 통해 student에서 100인 튜블들을 모두 제거하게되면 9개의 카디털리티가 되는 것을 볼 수 있습니다.

    따라서 첫번째 문제는 조인에 조건이 없기때문에 풀 조인 후 where조건만 수행한 경우에 대한 해설이,

    두번째 문제의 해설이 카티션프로덕트를 수행하는 것도 같은 결과를 낼 수 있기 때문에 카티션프로덕트를 이용하여 답을 추론한 것으로 생각됩니다.