- 관계 데이터 모델의 데이터는 릴레이션들로 구성된다.
- 릴레이션에 대한 연산을 어떻게 할까? 한번 알아보자.
개념

1) 연산하고자 하는 두 릴레이션의 차수가 같아야 한다.(== 속성 개수가 같아야 한다.)
2) 2개의 릴레이션에서 서로 대응되는 속성의 도메인이 같아야 한다.(도메인이 같으면 속성의 이름은 달라도 됨)
⚠️ 합집합, 교집합, 차집합은 합병 가능 조건을 만족해야하지만, ⭐카티션 프로덕트는 합병 가능 여부와 상관없이 연산이 가능하다. (튜플 집합을 기준)

개념
차수: 속성의 개수
카디널러티: 튜플의 개수

개념
두 릴레이션 𝑅과 𝑆에 동시에 속해 있는 튜플로만 구성된 릴레이션
차수(𝑅 ∩ 𝑆) = 차수(𝑅) = 차수(𝑆)
카디널러티 = |𝑅 ∩ 𝑆| ≤ min (|𝑅| , |𝑆|)
교환법칙, 결환법칙 성립 O

개념
릴레이션 𝑅에는 있지만 𝑆에는 없는 튜플로만 구성된 릴레이션
차수(𝑅 − 𝑆) = 차수(𝑅) = 차수(𝑆)
카디널러티 = |𝑅 − 𝑆| ≤ |𝑅|
교환법칙, 결환법칙 성립 X

개념
두 릴레이션에 있는 튜플들을 가능한 조합으로 모두 연결시키는 연산
매우 큰 릴레이션을 만들어 냄
튜플이 몇 개든 상관 X → 합병 가능 조건 필요 X
차수(𝑅 × 𝑆) = 차수(𝑅) + 차수(𝑆)
카디널러티 = |𝑅 × 𝑆| = |𝑅| × |𝑆|
교환법칙, 결환법칙 성립 O

개념

예시
<고객 릴레이션>
| 아이디 | 이름 | 나이 | 등급 | 적립금 |
|---|---|---|---|---|
| sssienlove | 박시은 | 6 | gold | 1004 |
| koriov | 김춘자 | 80 | silver | 3000 |
| kimchi03 | 홍길동 | 64 | gold | 8000 |
| youmeo | 한미오 | 22 | vip | 2300 |
<고객 릴레이션에서 등급이 gold인 튜플을 검색해보자>

| 아이디 | 이름 | 나이 | 등급 | 적립금 |
|---|---|---|---|---|
| sssienlove | 박시은 | 6 | gold | 1004 |
| kimchi03 | 홍길동 | 64 | gold | 0 |
<고객 릴레이션에서 등급이 gold이고, 적립금이 2000이상인 튜플을 검색해보자>

| 아이디 | 이름 | 나이 | 등급 | 적립금 |
|---|---|---|---|---|
| kimchi03 | 홍길동 | 64 | gold | 8000 |
개념

예시
<고객 릴레이션>
| 아이디 | 이름 | 나이 | 등급 | 적립금 |
|---|---|---|---|---|
| sssienlove | 박시은 | 6 | gold | 1004 |
| koriov | 김춘자 | 80 | silver | 3000 |
| kimchi03 | 홍길동 | 64 | gold | 8000 |
| youmeo | 한미오 | 22 | vip | 2300 |
<고객 릴레이션에서 등급을 검색해보자>

| 등급 |
|---|
| gold |
| silver |
| vip |
중복되는 튜플이 존재할 수 없다는 릴레이션의 기본 특성을 유지한다.
<고객 릴레이션에서 이름, 등급, 적립금을 검색해보자>

| 이름 | 등급 | 적립금 |
|---|---|---|
| 박시은 | gold | 1004 |
| 김춘자 | silver | 3000 |
| 홍길동 | gold | 8000 |
| 한미오 | vip | 2300 |
개념
공통 속성(조인 속성)을 기준으로 두 릴레이션을 조합하여 하나의 결과 릴레이션을 만든다.
⭐조인 vs 카티션 프로젝트
카티션 프로젝트(조건 없이 모든 튜플들만 결합)와 달리 조인은 특정 조건을 만족하는 튜플들만 결합
여러 종류의 조인 연산이 존재한다.
조인 연산을 다른 연산으로 대체할 수 있다.


개념

개념
동등조인 예시
< 고객 릴레이션 >
| 아이디 | 이름 | 나이 | 등급 |
|---|---|---|---|
| sssienlove | 박시은 | 6 | gold |
| koriov | 김춘자 | 80 | silver |
| kimchi03 | 홍길동 | 64 | gold |
| youmeo | 한미오 | 22 | vip |
< 주문 릴레이션 >
| 주문번호 | 주문고객 | 주문 제품 | 수량 |
|---|---|---|---|
| 10 | sssienlove | 돈가스 | 12 |
| 11 | koriov | 칼국수 | 8 |
| 12 | kimchi03 | 우동 | 6 |
< 결과 릴레이션 ( 고객 ⋈ 주문 ) >
| 아이디 | 이름 | 나이 | 등급 | 주문번호 | 주문고객 | 주문 제품 | 수량 |
|---|---|---|---|---|---|---|---|
| sssienlove | 박시은 | 6 | gold | 10 | sssienlove | 돈가스 | 12 |
| koriov | 김춘자 | 80 | silver | 11 | koriov | 칼국수 | 8 |
| kimchi03 | 홍길동 | 64 | gold | 12 | kimchi03 | 우동 | 6 |
주문 릴레이션은 고객 릴레이션의 아이디 속성을 외래키로 가지고 있다.
이때 주문고객 속성은 고객 릴레이션의 기본키인 아이디를 참조한 것이며, 두 릴레이션의 관계를 성사시킨다.

개념
| 아이디 | 이름 | 나이 | 등급 | 주문번호 | 주문 제품 | 수량 |
|---|---|---|---|---|---|---|
| sssienlove | 박시은 | 6 | gold | 10 | 돈가스 | 12 |
| koriov | 김춘자 | 80 | silver | 11 | 칼국수 | 8 |
| kimchi03 | 홍길동 | 64 | gold | 12 | 우동 | 6 |
개념
예시
< 고객 릴레이션 >
| 아이디 | 이름 | 나이 | 등급 | 적립금 |
|---|---|---|---|---|
| sssienlove | 박시은 | 6 | gold | 1004 |
| koriov | 김춘자 | 80 | silver | 3000 |
| kimchi03 | 홍길동 | 64 | gold | 8000 |
| youmeo | 한미오 | 22 | vip | 2300 |
< 우수 등급 릴레이션 >
| 등급 |
|---|
| gold |
< 결과 릴레이션 >
| 아이디 | 이름 | 나이 | 적립금 |
|---|---|---|---|
| koriov | 김춘자 | 80 | 3000 |
| youmeo | 한미오 | 22 | 2300 |

관계 대수 연산을 확장하여 유용한 연산을 추가 정의
개념
예시




| 집계 함수 | 의미 |
|---|---|
| SUM | 합계 |
| AVG | 평균 |
| MAX | 최대값 |
| MIN | 최소값 |
| COUNT | 개수 |
예시

개념
릴레이션은 그룹핑 속성 값에 의해 분할되고, 각 그룹에 속하는 튜플들에 대해 집계 함수를 적용
GROUPA FB (R)
예시
사원 전체의 급여 평균 값을 계산하는 것이 아닌 사원이 속해있는 부서별로 급여 평균 값 계산

다음 질의문을 관계 대수로 표현하시오.






모든 과목을 수강(등록)한 학생의 학번과 이름을 검색하
는 질의를 관계 대수로 표현하시오.

