DBMS에서의 관계형 대수 (예제 포함)
⚡ 스마트 요약
DBMS의 관계 대수는 관계를 입력으로 받아 새로운 관계를 출력으로 생성하는 절차적 쿼리 언어입니다. 연산자는 단항, 집합, 이항 범주로 분류되며, SQL 엔진이 실행 가능한 쿼리 계획으로 변환하는 이론적 기반을 제공합니다.

관계대수란 무엇인가요?
관계형 대수 SQL은 관계형 객체의 인스턴스를 입력으로 받아 새로운 관계형 객체를 출력으로 반환하는 절차적 쿼리 언어입니다. SQL은 고정된 연산자 집합을 하나 이상의 관계에 재귀적으로 적용하며, 각 연산자의 결과는 다음 연산에 사용될 수 있는 관계형 객체가 됩니다. SQL 엔진은 이러한 대수적 구조를 기반으로 쿼리를 계획하고 실행합니다.
기본 관계 대수 OperaTIONS
관계 대수 연산자는 세 가지 그룹으로 분류됩니다.
단항 관계형 OperaTIONS
- 선택(σ)
- 프로젝트(π)
- 이름 변경(ρ)
Opera집합론의 명제들
- 연합(∪)
- 교차(∩)
- 차이(−)
- 데카르트 곱 (×)
이진 관계형 OperaTIONS
- JOIN
- 분할
아래 섹션에서는 각 연산자에 대한 설명과 예제를 제공합니다.
선택(σ)
The SELECT 이 연산은 주어진 조건을 만족하는 튜플들의 부분집합을 선택합니다. 시그마 기호 σ 그것은 그것을 나타냅니다:
σp(r)
어디에 σ 운영자입니다. p 명제 조건은 다음과 같습니다. r SELECT는 관계(테이블)를 나타냅니다. 스키마를 유지하고 조건을 만족하지 않는 행은 버립니다.
예제 1
σ topic = "Database" (Tutorials)
다음에서 튜플을 선택합니다. 튜토리얼 여기서 주제는 "데이터베이스"입니다.
예제 2
σ topic = "Database" AND author = "guru99" (Tutorials)
다음에서 튜플을 선택합니다. 튜토리얼 주제는 "데이터베이스"이고 작성자는 guru99입니다.
예제 3
σ sales > 50000 (Customers)
다음에서 튜플을 선택합니다. 고객 판매액이 50,000만 이상인 제품.
투영(π)
The 투영 연산자는 나열된 속성을 제외한 입력 관계에서 모든 속성을 제거하여 수직 부분 집합을 생성합니다. 프로젝션은 또한 삭제로 인해 발생하는 중복 행을 제거합니다.ping 속성. 파이 기호 π 그것을 나타냅니다.
예: 다음 표를 참고하십시오.
| 고객 ID | 고객 이름 | Status |
|---|---|---|
| 1 | 최근활동 | |
| 2 | Amazon | 최근활동 |
| 3 | Apple | 비활성 |
| 4 | 알리바바 | 최근활동 |
고객 이름 및 상태를 기반으로 예측:
π CustomerName, Status (Customers)
| 고객 이름 | Status |
|---|---|
| 최근활동 | |
| Amazon | 최근활동 |
| Apple | 비활성 |
| 알리바바 | 최근활동 |
이름 바꾸기 (ρ)
The 이름 변경 `name` 연산자는 속성(또는 전체 관계)에 새 이름을 부여하는 단항 연산입니다. 예를 들어, ρ(a/b) R 속성 이름을 변경합니다 b 관계 R 에 a이름 변경은 자체 조인을 수행하거나 속성 이름이 같은 두 관계를 조인해야 할 때 특히 유용합니다.
노동 조합 Operation (∪)
The UNION 연산자, 로 표시됨 ∪이 함수는 관계 A 또는 관계 B에 나타나는 모든 튜플을 반환하며, 중복을 자동으로 제거합니다.
Result ← A ∪ B
유효한 결혼이 되려면 다음 조건을 충족해야 합니다.
- A와 B는 동일한 속성 개수(동일한 차수)를 가져야 합니다.
- 해당 속성 도메인은 호환되어야 합니다.
- 중복된 튜플은 자동으로 제거됩니다.
예. 다음 두 표를 살펴보십시오.
| 표 A | 표 B | |||
|---|---|---|---|---|
| 열 1 | 열 2 | 열 1 | 열 2 | |
| 1 | 1 | 1 | 1 | |
| 1 | 2 | 1 | 3 | |
A ∪ B 제공 :
| 열 1 | 열 2 |
|---|---|
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
집합 차이 (−)
마이너스 기호는 다음을 나타냅니다. 세트 차이. 결과 A − B A에는 있지만 B에는 없는 모든 튜플을 포함하는 관계입니다.
- A와 B는 합집합 호환 가능해야 합니다.
- 속성 이름과 도메인은 일치해야 합니다.
예시: A − B
| 열 1 | 열 2 |
|---|---|
| 1 | 2 |
교집합(∩)
The 교차 연산자, 로 표시됨 ∩는 A와 B 모두에 나타나는 모든 튜플을 포함하는 관계를 정의합니다. A와 B는 합집합 호환 가능해야 합니다.
교차점의 시각적 정의.
예시: A ∩ B
| 열 1 | 열 2 |
|---|---|
| 1 | 1 |
DBMS에서의 카르테시안 곱(×)
The 카티 전 곱 한 관계의 모든 튜플과 다른 관계의 모든 튜플을 열을 병합하여 결합합니다. 그 자체로는 결과가 거의 유용하지 않지만, SELECT 조건자와 함께 사용하면 JOIN의 기본이 됩니다. 이를 크로스프로덕션 또는 크로스 조인이라고도 합니다.
예시: σ 2열 = '1' (A × B)
이 표현식은 모든 행을 반환합니다. A × B 누구의 column 2 값은 1입니다.
| 열 1 | 열 2 |
|---|---|
| 1 | 1 |
| 1 | 1 |
가입하기 OperaTIONS
A 어울리다 는 데카르트 곱 뒤에 선택 술어가 오는 것입니다. 조인은 로 표시됩니다. ⋈ 이 기호를 사용하면 서로 다른 관계의 관련 튜플을 의미 있는 방식으로 결합할 수 있습니다.
가입 유형:
- 내부 조인: 세타 조인, 에퀴 조인, 내추럴 조인.
- 외부 조인: 좌측, 우측 및 전체 외부 접합.
내부 조인
에서 내부 결합일치 기준을 만족하는 튜플만 포함되고 나머지는 버려집니다.
세타 조인
JOIN의 일반적인 형태는 다음과 같습니다. 세타 조인θ로 표시되는 세타 조인은 선택 기준에 어떤 비교 조건이든 사용할 수 있습니다.
A ⋈θ B
예 :
A ⋈ A.column 2 > B.column 2 (B)
| 열 1 | 열 2 |
|---|---|
| 1 | 2 |
에퀴 조인
세타 조인이 등식 조건만 사용하는 경우, 이는 다음과 같습니다. 에퀴 조인.
A ⋈ A.column 2 = B.column 2 (B)
| 열 1 | 열 2 |
|---|---|
| 1 | 1 |
이퀴 조인은 가장 널리 사용되는 조임 방식 중 하나이며, RDBMS 일반적으로 쿼리 최적화 프로그램은 효율성을 높이기 위해 상당한 노력을 기울입니다.
자연 조인(⋈)
A 자연스러운 결합 두 관계 사이에 공통 속성(열)이 필요합니다. 공유 속성은 이름과 도메인이 동일해야 합니다. 결과에는 일치하는 열의 복사본 하나가 포함됩니다.
다음 두 표를 살펴보세요.
| 표 C | |
|---|---|
| 에 | 사각형. |
| 2 | 4 |
| 3 | 9 |
| 표 D | |
|---|---|
| 에 | 입방체 |
| 2 | 8 |
| 3 | 27 |
C ⋈ D 생산 :
| 에 | 사각형. | 입방체 |
|---|---|---|
| 2 | 4 | 8 |
| 3 | 9 | 27 |
외부 결합
An 외부 결합 일치 기준을 만족하는 튜플을 유지합니다. 그렇지 않은 튜플의 경우, 누락된 열을 NULL로 채웁니다.
왼쪽 외부 조인(A ⟕ B)
왼쪽 외부 조인은 왼쪽 관계의 모든 튜플을 유지합니다. A의 행에 B에 일치하는 행이 없는 경우 B에서 제공하는 속성은 NULL로 채워집니다.
다음 표들을 살펴보십시오.
| 표 A | |
|---|---|
| 에 | 사각형. |
| 2 | 4 |
| 3 | 9 |
| 4 | 16 |
| 표 B | |
|---|---|
| 에 | 입방체 |
| 2 | 8 |
| 3 | 18 |
| 5 | 75 |
A ⟕ B 제공 :
| 에 | 사각형. | 입방체 |
|---|---|---|
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | NULL |
오른쪽 외부 연결(A ⟖ B)
오른쪽 외부 조인은 모든 튜플을 올바른 관계에 유지합니다. B의 행에 A에 일치하는 행이 없는 경우 A에서 제공하는 열은 NULL로 채워집니다.
A ⟖ B 제공 :
| 에 | 입방체 | 사각형. |
|---|---|---|
| 2 | 8 | 4 |
| 3 | 18 | 9 |
| 5 | 75 | NULL |
전체 외부 조인(A ⟗ B)
완전 외부 조인은 조인 조건 일치 여부와 관계없이 양쪽 관계의 모든 튜플을 유지합니다. 양쪽 중 어느 한쪽의 결측값은 NULL이 됩니다.
A ⟗ B 제공 :
| 에 | 사각형. | 입방체 |
|---|---|---|
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | NULL |
| 5 | NULL | 75 |
Opera참고 요약
이 참조표를 사용하여 각 연산자가 수행하는 작업을 한눈에 확인하세요.
| Operation (기호) | 목적 |
|---|---|
| 선택(σ) | 주어진 조건을 만족하는 튜플의 부분집합을 선택합니다. |
| 프로젝트(π) | 나열된 속성만 유지하고 중복된 행을 제거합니다. |
| 연합(∪) | A 또는 B에 나타나는 모든 튜플을 중복 없이 반환합니다. |
| 집합 차이 (−) | A에 있지만 B에는 없는 튜플을 반환합니다. |
| 교차(∩) | A와 B 모두에 나타나는 튜플을 반환합니다. |
| 데카르트 곱 (×) | A의 모든 튜플과 B의 모든 튜플을 결합합니다. |
| 내부 결합 | 조인 조건과 일치하는 튜플만 유지합니다. |
| 세타 조인(θ) | 임의의 비교 조건자를 사용하는 일반 형식 조인. |
| 에퀴 조인 | 등식 비교만 사용하는 세타 조인. |
| 자연 조인(⋈) | 동일한 이름과 도메인을 공유하는 속성을 기준으로 관계를 조인합니다. |
| 좌측 외부 조인(⟕) | 왼쪽 관계의 모든 튜플을 유지하고 오른쪽은 NULL로 채웁니다. |
| 오른쪽 외부 조인(⟖) | 오른쪽 관계의 모든 튜플을 유지하고 왼쪽은 NULL로 채웁니다. |
| 전체 외부 조인(⟗) | 두 관계의 모든 튜플을 유지하고, 누락된 값은 NULL로 채웁니다. |



