DBMS의 관계 대수학: 예제를 사용한 연산

관계형 대수

관계대수학 널리 사용되는 절차적 쿼리 언어입니다. 관계 인스턴스를 입력으로 수집하고 관계 발생을 출력으로 제공합니다. 이 작업을 수행하기 위해 다양한 작업을 사용합니다. SQL 관계형 대수 쿼리 작업은 관계에 대해 반복적으로 수행됩니다. 이러한 연산의 출력은 하나 이상의 입력 관계로 형성될 수 있는 새로운 관계입니다.

기본 SQL 관계형 대수 연산

다양한 그룹으로 나누어진 관계대수학

단항 관계 연산

  • SELECT(기호: σ)
  • 프로젝트(기호: π)
  • 이름 바꾸기(기호: ρ)

집합론의 관계 대수 연산

  • 유니온(υ)
  • 교차로( ),
  • 차이점 (-)
  • 데카르트 곱( x )

이진 관계 연산

  • JOIN
  • 분할

솔루션을 통해 자세히 연구해 보겠습니다.

선택(σ)

SELECT 연산은 주어진 선택 조건에 따라 튜플의 하위 집합을 선택하는 데 사용됩니다. 시그마(σ) 기호가 이를 나타냅니다. 선택 조건을 만족하는 튜플을 선택하는 표현으로 사용됩니다. 선택 연산자는 주어진 조건을 만족하는 튜플을 선택합니다.

σp(r)

σ 술어이다

r 테이블의 이름인 관계를 나타냅니다.

p 전치사 논리이다

예제 1

σ topic = "Database" (Tutorials)

산출 – 주제 = '데이터베이스'인 자습서에서 튜플을 선택합니다.

예제 2

σ topic = "Database" and author = "guru99"( Tutorials)

산출 – 주제가 '데이터베이스'이고 '작성자'가 guru99인 자습서에서 튜플을 선택합니다.

예제 3

σ sales > 50000 (Customers)

산출 – 매출이 50000보다 큰 고객으로부터 튜플을 선택합니다.

투영(π)

프로젝션은 입력 관계의 모든 속성을 제거하지만 프로젝션 목록에 언급된 속성은 제거합니다. 투영 방법은 관계의 수직 하위 집합을 포함하는 관계를 정의합니다.

이는 지정된 속성의 값을 추출하여 중복 값을 제거하는 데 도움이 됩니다. (pi) 기호는 관계에서 속성을 선택하는 데 사용됩니다. 이 연산자는 관계에서 특정 열을 유지하고 다른 열을 삭제하는 데 도움이 됩니다.

투영의 예:

다음을 고려하십시오.wing 테이블

고객 ID 고객 이름 Status
1 구글 최근활동
2 Amazon 최근활동
3 Apple 비활성
4 Alibaba 최근활동

여기서 CustomerName 및 상태의 투영은 다음과 같습니다.

Π CustomerName, Status (Customers)
고객 이름 Status
구글 최근활동
Amazon 최근활동
Apple 비활성
Alibaba 최근활동

이름 바꾸기 (ρ)

이름 바꾸기는 관계의 속성 이름을 바꾸는 데 사용되는 단항 작업입니다.

ρ (a/b)R은 관계의 속성 'b'를 'a'로 이름을 바꿉니다.

연합작동(υ)

UNION은 ∪ 기호로 표시됩니다. 여기에는 테이블 A 또는 B에 있는 모든 튜플이 포함됩니다. 또한 중복된 튜플도 제거됩니다. 따라서 세트 A UNION 세트 B는 다음과 같이 표현됩니다.

결과 <- A ∪ B

합집합 연산이 유효하려면 다음과 같습니다.wing 조건이 유지되어야 합니다 –

  • R과 S는 동일한 수의 속성이어야 합니다.
  • 속성 도메인은 호환 가능해야 합니다.
  • 중복된 튜플은 자동으로 제거되어야 합니다.

다음을 고려하십시오.wing 테이블.

표 A
표 B
열 1 열 2 열 1 열 2
1 1 1 1
1 2 1 3

A ∪ B는

표 A ∪ B
열 1 열 2
1 1
1 2
1 3

차이 설정(-)

– 기호는 이를 나타냅니다. A – B의 결과는 A에는 있지만 B에는 없는 모든 튜플을 포함하는 관계입니다.

  • A의 속성 이름은 B의 속성 이름과 일치해야 합니다.
  • 두 피연산자 관계 A와 B는 호환 가능하거나 Union 호환 가능해야 합니다.
  • 릴레이션 A에는 있지만 B에는 없는 튜플로 구성된 릴레이션을 정의해야 합니다.

A-B
표 A – B
열 1 열 2
1 2

가로 지름

교차점은 기호 ∩로 정의됩니다.

A ∩ B

A와 B 모두에 있는 모든 튜플의 집합으로 구성된 관계를 정의합니다. 그러나 A와 B는 통합 호환 가능해야 합니다.

가로 지름
교차점의 시각적 정의

예:

A ∩ B
표 A ∩ B
열 1 열 2
1 1

DBMS의 데카르트 곱(X)

DBMS의 데카르트 곱 두 관계의 열을 병합하는 데 사용되는 작업입니다. 일반적으로 데카르트 곱은 단독으로 수행될 때 결코 의미 있는 작업이 아닙니다. 그러나 이후에 다른 작업이 수행될 때 의미가 있습니다. Cross Product 또는 Cross Join이라고도 합니다.

예 - 데카르트 곱

σ 열 2 = '1' (AXB)

출력 – 위의 예는 열 2의 값이 1인 관계 A와 B의 모든 행을 보여줍니다.

σ 열 2 = '1'(AXB)
열 1 열 2
1 1
1 1

조인 작업

조인 작업은 본질적으로 선택 기준이 따르는 데카르트 곱입니다.

⋈로 표시되는 조인 연산.

JOIN 연산을 사용하면 다양한 릴레이션의 다양한 관련 튜플을 조인할 수도 있습니다.

조인 유형:

조인 작업의 다양한 형태는 다음과 같습니다.

내부 조인:

  • 세타 조인
  • EQUI 가입
  • 자연스러운 결합

외부 조인:

  • 왼쪽 외부 결합
  • 오른쪽 외부 결합
  • 전체 외부 결합

내부 조인

내부 조인에서는 일치 기준을 만족하는 튜플만 포함되고 나머지는 제외됩니다. 다양한 유형의 내부 조인을 살펴보겠습니다.

세타 조인

JOIN 연산의 일반적인 경우를 Theta 조인이라고 합니다. 기호로 표시됩니다 θ

A ⋈θ B

세타 조인은 선택 기준의 모든 조건을 사용할 수 있습니다.

예 :

A ⋈ A.column 2 >  B.column 2 (B)
A ⋈ A.열 2 > B.열 2 (B)
열 1 열 2
1 2

EQUI 가입

세타 조인이 등가 조건만 사용하면 동등 조인이 됩니다.

예 :

A ⋈ A.column 2 =  B.column 2 (B)
A ⋈ A.열 2 = B.열 2 (B)
열 1 열 2
1 1

EQUI 조인은 RDBMS에서 SQL을 사용하여 효율적으로 구현하기 가장 어려운 작업이며 그 이유 중 하나는 다음과 같습니다. RDBMS 근본적인 성능 문제가 있습니다.

자연 조인(⋈)

자연 조인은 관계 간에 공통 속성(열)이 있는 경우에만 수행할 수 있습니다. 속성의 이름과 유형은 동일해야 합니다.

다음을 고려하십시오.wing 두 개의 테이블

C
사각형.
2 4
3 9
D
입방체
2 8
3 27
C ⋈ D
C ⋈ D
사각형. 입방체
2 4 8
3 9 27

외부 조인

외부 조인에는 일치 기준을 충족하는 튜플과 함께 기준과 일치하지 않는 일부 또는 모든 튜플도 포함됩니다.

왼쪽 외부 조인(A ⟕ B)

왼쪽 외부 조인에서는 작업을 통해 모든 튜플을 왼쪽 관계로 유지할 수 있습니다. 그러나 오른쪽 릴레이션에서 일치하는 튜플이 발견되지 않으면 조인 결과에서 오른쪽 릴레이션의 속성은 null 값으로 채워집니다.

왼쪽 외부 결합

다음을 고려하십시오.wing 2 테이블

A
사각형.
2 4
3 9
4 16
B
입방체
2 8
3 18
5 75
A Left Outer Join B
A ⋈ B
사각형. 입방체
2 4 8
3 9 18
4 16 -

오른쪽 외부 조인( A ⟖ B )

오른쪽 외부 조인에서는 작업을 통해 모든 튜플을 올바른 관계로 유지할 수 있습니다. 그러나 왼쪽 릴레이션에 일치하는 튜플이 없으면 조인 결과에서 왼쪽 릴레이션의 속성은 null 값으로 채워집니다.

오른쪽 외부 결합

A Right Outer Join B
A ⋈ B
입방체 사각형.
2 8 4
3 18 9
5 75 -

완전 외부 조인(A ⟗ B)

완전 외부 조인에서는 일치 조건에 관계없이 두 릴레이션의 모든 튜플이 결과에 포함됩니다.

A Full Outer Join B
A ⋈ B
입방체 사각형.
2 4 8
3 9 18
4 16 -
5 - 75

요약

동작(기호) 목적
선택(σ) SELECT 연산은 주어진 선택 조건에 따라 튜플의 하위 집합을 선택하는 데 사용됩니다.
투영(π) 프로젝션은 입력 관계의 모든 속성을 제거하지만 프로젝션 목록에 언급된 속성은 제거합니다.
연합운영(∪) UNION은 기호로 상징됩니다. 여기에는 테이블 A 또는 B에 있는 모든 튜플이 포함됩니다.
차이 설정(-) – 기호는 이를 나타냅니다. A – B의 결과는 A에는 있지만 B에는 없는 모든 튜플을 포함하는 관계입니다.
교차점(∩) 교차는 A와 B 모두에 있는 모든 튜플의 집합으로 구성된 관계를 정의합니다.
데카르트곱(X) 데카르트 연산은 두 관계의 열을 병합하는 데 유용합니다.
내부 조인 내부 조인은 일치 기준을 충족하는 튜플만 포함합니다.
세타 조인(θ) JOIN 연산의 일반적인 경우를 Theta 조인이라고 합니다. 기호 θ로 표시됩니다.
EQUI 가입 세타 조인이 등가 조건만 사용하면 동등 조인이 됩니다.
자연 조인(⋈) 자연 조인은 관계 간에 공통 속성(열)이 있는 경우에만 수행할 수 있습니다.
외부 결합 일치 기준을 충족하는 튜플과 함께 외부 조인에서.
왼쪽 외부 조인(왼쪽 외부 결합) 왼쪽 외부 조인에서는 작업을 통해 모든 튜플을 왼쪽 관계로 유지할 수 있습니다.
오른쪽 외부 조인(오른쪽 외부 조인) 오른쪽 외부 조인에서는 작업을 통해 모든 튜플을 올바른 관계로 유지할 수 있습니다.
완전 외부 조인(전체 외부 결합) 완전 외부 조인에서는 일치 조건에 관계없이 두 릴레이션의 모든 튜플이 결과에 포함됩니다.