1. 조인 연산자
1.1. 조인의 정의
조인은 두 릴레이션에서 조건에 따라 관련된 튜플을 결합하는 연산으로, 데이터베이스에서 가장 중요한 연산 중 하나.
1.2. 조인의 유형
- 세타 조인 (Theta Join)
- 조건식에 {=, <>, <, >, <=, >=} 등의 연산자를 사용.
- 예: R ⋈ (R.Attribute θ S.Attribute) S
- 동등 조인 (Equi-join)
- 세타 조인의 한 형태로, 조건식이 =일 때 사용.
- 결과: 조건을 만족하는 튜플들의 조합.
- 자연 조인 (Natural Join)
- 동등 조인 후, 중복 속성을 제거.
- 주로 릴레이션 간 관련 데이터를 연결하는 데 사용.
- 예: R ⋈N S
- 중복된 속성은 하나만 유지.
- 외부 조인 (Outer Join)
조인 실패 시에도 튜플을 포함하며, NULL 값을 추가.- 왼쪽 외부 조인: 왼쪽 릴레이션의 모든 튜플 포함.
- 오른쪽 외부 조인: 오른쪽 릴레이션의 모든 튜플 포함.
- 완전 외부 조인: 양쪽 릴레이션의 모든 튜플 포함.
-
- 세미 조인 (Semijoin)
- 조인 결과에서 필요하지 않은 속성을 미리 제거하여 효율성 증가.
- 예: R ⨝ S
- S에서 필요한 속성만 선택 후 R과 조인.
-
- 정리
-
2. 디비전 연산자 (Division Operator, ÷)
2.1. 정의
릴레이션 R과 S에서 S에 포함된 모든 튜플과 관련된 R의 튜플만 반환.
2.2. 사용 예시
- R의 속성: (A, B)
- S의 속성: (B)
- R ÷ S의 결과는 R에서 속성 A를 반환하며, S의 모든 튜플과 매칭된 경우만 포함.
2.3. 응용
- 학생과 과목 데이터에서, 특정 과목을 수강한 학생 목록을 구할 때 사용.
- 예:
- 릴레이션 학번(Sno)과 과목번호(Cno)
- R ÷ S 연산으로 모든 과목(Cno)을 이수한 학생(Sno)을 구함.
사례 연구
1. 세타 조인 예시
릴레이션 EMPLOYEE와 DEPARTMENT를 DNO = DEPTNO 조건으로 조인:
2. 외부 조인 예시
도서 릴레이션과 출판사 릴레이션의 왼쪽 외부 조인:
정리
- 조인 연산자는 데이터베이스에서 릴레이션 간의 관계를 표현하고 연결하는 데 필수적.
- 디비전 연산자는 특정 조건을 만족하는 릴레이션을 구할 때 유용.
- 실무에서는 주로 자연 조인과 외부 조인이 많이 활용됨.