3-2/데이터베이스 이해와 활용

6주차-SQL과 관계 대수

Donghun Kang 2024. 10. 20. 17:54
  • 관계 대수
- 관계 모델을 위한 기본적인 연산들의 집합
  • 관계 대수가 중요한 이유 ⭐
1. 관계 모델 연산을 위한 공식적인 토대를 제공
2. 질의를 구현하고 최적화하기 위한 기반을 사용
3. 관계 대수의 몇 가지 개념은 RDBMS를 위한 SQL 표준 질의에 반영됨

 

  • SQL 질의를 처리하는 과정

 

  • 관계 대수 연산자
- 셀력션(selection) 연산자: 특정한 조건을 만족하는 튜플들을 선택함으로써 튜플의 수를 줄임
- 프로젝션(projection) 연산자: 특정 애트리뷰트를 제거함으로써 각 튜플의 크기를 줄임
- 집합(set) 연산자: 튜플의 결합과 비교를 통해 유사한 2개의 튜플 집합을 조작
- 조인(join), 프로덕트(product) 연산자: 애트리뷰트를 더함으로써 각 튜플의 크기를 늘림 

 

  • 셀렉션 연산자 ⭐
- 릴레이션으로부터 특정한 기준을 만족하는 모든 튜플들을 선택
=> δ(시그마) ⭐

 

"시험) 관계 대수식으로 표현하기"

 

EX) 'Doe'라는 성을 가진 고객 찾기

 

EX) 직원번호가 '376-77-0099'인 직원에 대해 1998년 3월1일 후의 모든 근무일지 검색

 

  • 프로덕션 연산자
- 선택된 애트리뷰트만을 가지는 릴레이션을 만듦
- 모든 중복은 제거됨
=> π(파이)

 

EX) 모든 고객의 성과 이름에 대한 리스트 검색

 

  • 집합 연산자
- 대응되는 각 애트리뷰트들의 숫자와 타입이 서로 동일할 경우

 

EX) 

- Rental과 PreviousRental은 같은 형태
-  대응되는 애트리뷰트 타입: VARCHAR2(3) / VARCHAR2(10) / DATE / DATE / NUMBER(5,2)
=> 두 릴레이션은 서로 다른 이름을 가지고 있지만, 타입이 같으므로 집합 연산 가능
=> 애트리뷰트의 이름이 다르면 왼쪽 피연산자에 대응하는 릴레이션 애트리뷰트의 이름을 따름

 

  • 합집합 

EX) 

  • 교집합

EX)

  • 차집합

EX)

 

  • 조인과 프로덕트 연산
  • 카티션 프로덕트(Cartesian Product)
- 왼쪽 피연산자와 오른쪽 피연산자로부터 각 튜플들을 결합하여 새로운 릴레이션을 생성

EX)

 

  • 조인 연산자
- 두 릴레이으로부터 관련된 객체를 모음

EX) 직원에 대한 정보와 이 직원의 근무일지에 대한 정보만을 결과에 포함

 

  • 자연 조인(natural join)

  • 동등 조인(equal-join)

 

  • 관계 연산자의 조합

 

"시험) 다음 조건에 맞게 관계 대수식으로 표현하라"