BOOK

[Do it SQL] Chapter 04-2

Minch13r 2025. 3. 19. 20:49

1. 셀렉션(Selection)

셀렉션이란?

셀렉션은 테이블에서 특정 조건을 만족하는 **행(가로줄)**만을 골라내는 연산입니다. 마치 큰 상자에서 원하는 색깔의 블록만 골라내는 것과 같습니다.

셀렉션의 특징

  • 테이블의 행(row)을 필터링합니다
  • WHERE 절을 사용하여 구현합니다
  • 원본 테이블보다 행의 수가 같거나 적습니다
  • 열(column)의 수는 변하지 않습니다

셀렉션 예시

학생 테이블에서 나이가 20세 이상인 학생만 선택하고 싶다면:

SELECT * FROM 학생 WHERE 나이 >= 20;

 

이렇게 하면 나이가 20세 이상인 학생들의 모든 정보가 그대로 출력됩니다. 즉, 테이블의 구조(열)는 그대로 유지되고 조건에 맞는 행만 선택됩니다.

2. 프로젝션(Projection)

프로젝션이란?

프로젝션은 테이블에서 필요한 **열(세로줄)**만을 선택하는 연산입니다. 마치 사진을 찍을 때 원하는 부분만 프레임에 담는 것과 같습니다.

프로젝션의 특징

  • 테이블의 열(column)을 선택합니다
  • SELECT 절에 열 이름을 명시하여 구현합니다
  • 원본 테이블보다 열의 수가 같거나 적습니다
  • 행(row)의 수는 변하지 않습니다 (중복 제거를 하지 않는 경우)

프로젝션 예시

학생 테이블에서 이름과 전화번호만 필요하다면:

SELECT 이름, 전화번호 FROM 학생;

 

이렇게 하면 모든 학생의 이름과 전화번호만 포함된 결과가 출력됩니다. 즉, 행의 수는 그대로지만 열의 수가 줄어듭니다.

3. 조인(Join)

조인이란?

조인은 두 개 이상의 테이블을 연결하여 하나의 결과를 만드는 연산입니다. 마치 두 개의 퍼즐을 맞추어 하나의 큰 그림을 완성하는 것과 같습니다.

조인의 특징

  • 여러 테이블의 데이터를 결합합니다
  • 공통 열(키)을 기준으로 행을 매칭합니다
  • 결과 테이블의 열 수는 두 테이블 열의 합에서 중복 열을 뺀 수입니다
  • 결과 테이블의 행 수는 조인 유형에 따라 달라집니다

조인의 종류

1) 내부 조인(Inner Join)

두 테이블에서 조인 조건을 만족하는 행만 결과에 포함합니다.

SELECT * FROM 학생 INNER JOIN 수강 ON 학생.학번 = 수강.학번;

 

2) 외부 조인(Outer Join)

  • 왼쪽 외부 조인(Left Outer Join): 왼쪽 테이블의 모든 행과 오른쪽 테이블에서 조건을 만족하는 행을 포함합니다.
  • 오른쪽 외부 조인(Right Outer Join): 오른쪽 테이블의 모든 행과 왼쪽 테이블에서 조건을 만족하는 행을 포함합니다.
  • 완전 외부 조인(Full Outer Join): 양쪽 테이블의 모든 행을 포함합니다.
SELECT * FROM 학생 LEFT JOIN 수강 ON 학생.학번 = 수강.학번;

 

3) 자연 조인(Natural Join)

두 테이블에서 이름이 같은 열을 기준으로 자동으로 조인합니다.

SELECT * FROM 학생 NATURAL JOIN 수강;

 

4) 교차 조인(Cross Join)

두 테이블의 모든 행을 조합한 카테시안 곱(Cartesian Product)을 생성합니다.

SELECT * FROM 학생 CROSS JOIN 수강;

4. 셀렉션, 프로젝션, 조인의 조합

실제 데이터베이스 쿼리에서는 이 세 가지 연산을 조합하여 사용하는 경우가 많습니다.

예시

20세 이상인 학생들의 이름과 수강 과목명만 조회하고 싶다면:

SELECT 학생.이름, 과목.과목명
FROM 학생
INNER JOIN 수강 ON 학생.학번 = 수강.학번
INNER JOIN 과목 ON 수강.과목코드 = 과목.과목코드
WHERE 학생.나이 >= 20;

 

  • WHERE 절은 셀렉션 연산을 수행합니다 (20세 이상 학생 필터링)
  • SELECT 절은 프로젝션 연산을 수행합니다 (이름과 과목명만 선택)
  • INNER JOIN은 조인 연산을 수행합니다 (학생, 수강, 과목 테이블 연결)

5. 관계대수와의 연관성

셀렉션(σ), 프로젝션(π), 조인(⋈)은 관계대수의 기본 연산자입니다. 관계대수는 관계형 데이터베이스의 이론적 기초를 제공하며, SQL은 이러한 관계대수를 구현한 언어입니다.

  • 셀렉션: σ<조건>(테이블)
  • 프로젝션: π<열1, 열2, ...>(테이블)
  • 조인: 테이블1 ⋈<조건> 테이블2

6. 성능 최적화 고려사항

셀렉션 최적화

  • 인덱스를 활용하여 조건에 맞는 행을 빠르게 찾을 수 있습니다
  • 가능한 한 조건을 먼저 적용하여 처리할 데이터 양을 줄이는 것이 좋습니다

프로젝션 최적화

  • 필요한 열만 선택하여 메모리 사용량과 네트워크 트래픽을 줄일 수 있습니다
  • 특히 대용량 데이터를 다룰 때 중요합니다

조인 최적화

  • 조인 순서가 성능에 큰 영향을 미칩니다
  • 작은 테이블을 먼저 조인하는 것이 일반적으로 효율적입니다
  • 조인 조건에 사용되는 열에 인덱스를 생성하면 성능이 향상됩니다

'BOOK' 카테고리의 다른 글

[Do it SQL] Chapter 04-5 / 04-6  (1) 2025.03.21
[Do it SQL] Chapter 04-3 / 04-4  (0) 2025.03.20
[Do it SQL] Chapter 01-2  (2) 2025.03.14
[Do it SQL] Chapter 01-1  (0) 2025.03.12
[JavaScript] 자바스크립트  (1) 2025.03.09