관계형 데이터베이스 4

하이솝·2026년 3월 29일

데이터베이스

목록 보기
6/10

조인(join) 정리

  • 두 테이블로부터 연관된 레코드를 결합하는 연산자
    두 테이블로부터 특정 조건을 만족하는 레코드들을
    하나의 레코드로 결합하는 연산 (같은 조건을 가진 레코드들끼리 매칭시켜서)

  • 테이블 하나로 원하는 결과를 얻을 수 없을 때
    관계가 있는 여러 테이블을 한꺼번에 사용해야 하는 경우 조인 연산 수행

  • 두 테이블의 공통 속성(조인하는 속성)을 이용하는 것,
    공통 속성이 같은 레코드를 연결하여 하나로 만드는 것
    (공통 속성의 이름이 같을 필요는 없음)

  • 카티션 프로덕트는 모든 가능한 조합에 의해 레코드들을 생성하지만,
    조인은 특정 조건을 만족하는 레코드만을 선택

조인 = 카티션 프로덕트 후 셀렉트 연산을 수행하는 것과 같음
<테이블이름1>⋈<테이블이름2> = σ <조건식> <테이블이름1>x<테이블이름2>)


세타(theta: θ) 조인

<테이블이름1>⋈<조건식><테이블이름2>

<조건식> 부분에 >, <, ≥, ≥, =, ≠ 중 하나를 사용
이 때, <조건식> 부분이 '=' 인 세타 조인을 동등 조인이라고 함
(동등 조인은 세타 조인의 종류 중 하나임)


자연(natural) 조인

서로 다른 테이블에서 같은 이름을 갖는 두 필드에 대한 동등 조인
하나의 필드를 제거하여 단순히 표현한 연산

<테이블이름1>⋈<테이블이름2>

공통되는 필드가 없으면 카티션 프로덕트와 같음


외부(outer) 조인

조건 조인에 만족되지 않는 레코드들까지 검색 결과에 포함시키기 위한 방법
서로 매치되지 않는 필드들에 대해서는 NULL을 입력함



  • 왼쪽 외부조인(left outer join)
  • 오른쪽 외부조인(right outer join)
  • 완전 외부조인(full outer join)

지정(asignment) 연산

  • 복잡한 질의를 여러 개의 질의로 분리하거나 중간 결과에 이름을 부여
  • 최종 질의의 결과에 이름을 부여

junior ← σ year = 3(student)


재명명 연산

테이블에 이름을 부여하거나 변경하는 연산

ρ<테이블명>(<테이블명2>)
<테이블명2>의 이름을 <테이블명1>로 변경

ρ<테이블명>(<필드리스트>) (<테이블명2>)
<테이블명2>의 이름을 <테이블명1>로 변경하는 동시에
<테이블명2>에 정의된 필드명들을 모두 <필드리스트로 변경>

주의

  • 재명명 연산은 중간 결과나 최종 결과에 대한 테이블명이 변경됨
  • 본래 데이터베이스에 저장된 테이블명까지 변경되는 것은 아님
    질의 내부에서 별명으로 사용됨

0개의 댓글