본문 바로가기

Programming/데이터 베이스

관계 데이터 연산2

1. 조인 연산자

1.1. 조인의 정의

조인은 두 릴레이션에서 조건에 따라 관련된 튜플을 결합하는 연산으로, 데이터베이스에서 가장 중요한 연산 중 하나.

1.2. 조인의 유형

  1. 세타 조인 (Theta Join)
    • 조건식에 {=, <>, <, >, <=, >=} 등의 연산자를 사용.
    • 예: R ⋈ (R.Attribute θ S.Attribute) S
  2. 동등 조인 (Equi-join)
    • 세타 조인의 한 형태로, 조건식이 =일 때 사용.
    • 결과: 조건을 만족하는 튜플들의 조합.
    • 동등 조인
  3. 자연 조인 (Natural Join)
    • 동등 조인 후, 중복 속성을 제거.
    • 주로 릴레이션 간 관련 데이터를 연결하는 데 사용.
    • 예: R ⋈N S
      • 중복된 속성은 하나만 유지.
    • 자연 조인
  4. 외부 조인 (Outer Join)
    조인 실패 시에도 튜플을 포함하며, NULL 값을 추가.
    • 왼쪽 외부 조인: 왼쪽 릴레이션의 모든 튜플 포함.
    • 오른쪽 외부 조인: 오른쪽 릴레이션의 모든 튜플 포함.
    • 완전 외부 조인: 양쪽 릴레이션의 모든 튜플 포함.
    • 왼쪽 외부 조인


    • 완전 외부 조인
  5. 세미 조인 (Semijoin)
    • 조인 결과에서 필요하지 않은 속성을 미리 제거하여 효율성 증가.
    • 예: R ⨝ S
      • S에서 필요한 속성만 선택 후 R과 조인.
    • 세미 조인


  6. 정리
    • 조인 연산자


    • 조인 연산자

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. 외부 조인 예시

도서 릴레이션과 출판사 릴레이션의 왼쪽 외부 조인:

외부 조인

 

정리

  • 조인 연산자는 데이터베이스에서 릴레이션 간의 관계를 표현하고 연결하는 데 필수적.
  • 디비전 연산자는 특정 조건을 만족하는 릴레이션을 구할 때 유용.
  • 실무에서는 주로 자연 조인외부 조인이 많이 활용됨.