▣ SQL 조인_이너 조인, 아웃터 조인, 세타 조인, 동등 조인, 자연 조인, 세미 조인, 교차 조인, 셀프 조인
1. INNER JOIN
교집합(A∩B)
2. LEFT OUTER JOIN
교집합 연산 결과와 차집합 연산 결과를 합친것( (A∩B) ∪ (A-B) )
오라클 SQL은 WHERE 테이블A.조인키컬럼 = 테이블B.조인키컬럼(+) 표시
3. RIGHT OUTER JOIN
교집합 연산 결과와 차집합 연산 결과를 합친것( (A∩B) ∪ (B-A) )
오라클 SQL은 WHERE 테이블A.조인키컬럼(+) = 테이블B.조인키컬럼 표시
4. FULL OUTER JOIN
합집합(A∪B)
* OUTER JOIN 속성 : 공통된 속성을 매개로 하는 정보가 아니더라도 버리지 않고
연산의 결과 릴레이션에 정보를 남겨둠
(공통 속성 아닌 경우 NULL)
5. 세타조인(THETA JOIN)
T= R⋈(AΘB) S
R의 속성 A와 S의 속성 B가 세타관계가 성립하는 새로운 T 릴레이션을 생성
조인 조건에 관계 연산자(=, <, > 등) 사용을 일반화하여 표현
조인에 관련된 모든 속성을 포함(중복 허용)
6. 동일(동등)조인(EQUI JOIN)
⋈(A=B)
세타조인에서 비교연산자가 =인 경우
조인에 관련된 모든 속성을 포함(중복 허용)
7. 자연조인(NATURAL JOIN)
⋈N
자연 조인은 동일 조인의 결과에서 중복되는 속성을 제거한 릴레이션
8. 세미조인(SEMI JOIN)
A,B가 조인될 경우 A와 조인될 가능성이 있는 B의 투플만을 골라 전송하는 연산
자연조인 후 어느 한쪽 릴레이션의 애트리뷰트만으로 프로젝트
세미조인도 방향이 있음
9. 교차조인(CROSS JOIN)
카티션프로덕트
( JOIN 조건을 잘못 기술한 경우, JOIN 조건을 정의하지 않았을 때,
JOIN에 참여하는 릴레이션의 모든 튜플이 조인되는 경우)
10. 셀프조인
같은 두 릴레이션을 활용하여 데이터를 추출하는 기법
2012년 69번
정답 : 3번
2016년 56번
정답 : 3번
- R.B < S.B 조건식에 따라 총 5개의 row가 생성됨
- 1보다 작은 R.B 값은 없으며, 2보다 작은 R.B 값은 2개, 3보다 작은 R.B 값은 3개 존재함
2016년 57번
정답 : 4번
2021년 61번
정답 : 3번
릴레이션 R과 S 조인결과 RS는 차수 3, 카디널리티 3인 투플 생성
RS의 속성은 R과 동일하므로 R과 S의 세미조인임
세미조인 : 자연조인 후 어느 한쪽 릴레이션의 애트리뷰트만으로 프로젝트
2021년 63번
정답 : 2번
EMPLOYEE 릴레이션의 셀프 조인
관리자(MANAGER)와 직원(EMPLOYEE) 간 1:N 관계로 참조되는 구조
WHERE E.MANAGER = M.ENO 이므로
"직원의 이름과 매니저의 이름을 출력하는 질의문"
결국 위의 MANAGER 번호를 이름으로만 바꾸면 됨
직원 | 매니저 |
KIM | LEE |
PARK | YOO |
LEE | YOO |
CHO | PARK |
CHOI | YOO |
틀린것은 2번 입니다.
2021년 68번
정답 : 2번
1) 세타 조인 카디널리티 5
* 조인에 관련된 모든 속성을 포함(중복 허용)
A | B | C | C | D |
10 | a | 1 | 2 | y |
10 | a | 1 | 4 | z |
20 | b | 2 | 4 | z |
30 | c | 3 | 4 | z |
40 | d | 2 | 4 | z |
2) 자연(NATURAL) 조인 카디널리티 3
A | B | C | D |
10 | a | 1 | x |
20 | b | 2 | y |
40 | d | 2 | y |
3) LEFT OUTER JOIN 카디널리티 5
A | B | C | D |
10 | a | 1 | x |
20 | b | 2 | y |
30 | c | 3 | |
40 | d | 2 | y |
50 | e | 5 |
4) RIGHT OUTER JOIN 카디널리티 4
A | B | C | D |
10 | a | 1 | x |
20 | b | 2 | y |
40 | d | 2 | y |
4 | z |
5+3+5+4 = 17 정답은 3번
2014년 68번
정답 : 3번
R과 S의 세미조인, R의 차수와 RS의 차수가 동일함
2015년 74번
정답 : 4번
B에 대해 A의 세미조인(semijoin)