이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.현재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

1.3. 토토 데이터 모델의 작업

이전 섹션에서 (토토 데이터 모델 형식) 우리는 다음의 수학적 개념을 정의했습니다. 관계형 모델. 이제 우리는 데이터를 사용하여 데이터를 저장하는 방법을 알았습니다. 관계형 데이터 모델이지만 우리는 이 모든 것을 어떻게 해야 할지 모릅니다. 이 테이블은 아직 데이터베이스에서 무언가를 검색합니다. 에 대한 예를 들어 누군가가 모든 공급업체의 이름을 물을 수 있습니다. '나사' 부품을 판매합니다. 그러므로 두 가지의 다소 다른 종류의 관계에 대한 연산을 표현하기 위한 표기법은 다음과 같습니다. 정의됨:

  • 관계 대수학이것은 쿼리가 다음과 같이 표현되는 대수적 표기법 관계에 특수 연산자를 적용합니다.

  • 토토 미적분학이것은 쿼리가 다음과 같이 표현되는 논리적 표기법 튜플에 대한 몇 가지 논리적 제한 사항을 공식화합니다. 대답은 만족해야 합니다.

1.3.1. 관계 대수

관계 대수학이었어 1972년 E. F. Codd에 의해 소개되었습니다. 관계에 대한 연산:

  • SELECT (σ): 추출튜플주어진 제한을 만족하는 관계로부터. 하자R다음을 포함하는 테이블이어야 합니다. 속성A. σA=a(R) = t ∈ R ∣ t(A) = a 여기서t은의 튜플을 나타냅니다.R그리고t(A)속성 값을 나타냄A튜플t.

  • PROJECT (π): 지정된 추출속성7375_7417R다음을 포함하는 관계여야 합니다. 속성X. πX(R) = t(X) ∣ t ∈R, 여기서t(X) 속성의 값을 나타냅니다.X튜플t.

  • PRODUCT (×): 두 개의 데카르트 곱을 만듭니다. 관계. 하자R테이블에 함께 앉아 아리리티k1그리고 하자S애리티가 있는 테이블이 되세요k2. R × S이것은 모두 세트k1 + k2-첫번째 튜플k1구성요소는 튜플 입력R그리고 그의 마지막k2구성요소는 튜플 입력S.

  • UNION (∪): 두 테이블의 집합론적 합집합을 구축합니다. 주어진 테이블R그리고S(둘 다 동일해야 함 arity), 연합RS다음에 있는 튜플의 집합입니다.R또는S또는 둘 다.

  • INTERSECT (∩): 집합론적 교차점을 구축합니다. 테이블 두 개. 주어진 테이블R그리고S, RS이것은 에 있는 튜플 세트R그리고 에서S. 다시 한 번 요구합니다.R그리고S동일한 계수를 가지고 있습니다.

  • DIFFERENCE (− 또는 ∖): 차이 집합을 만듭니다. 두 테이블 중. 하자R그리고S다시 두 개의 테이블이 됩니다. 같은 arity.R - S은 튜플의 집합입니다R그러나 포함되지 않음S.

  • JOIN (∏): 두 테이블을 공통으로 연결합니다. 속성. 하자R테이블이 되세요 속성으로A,B그리고C그리고 하자S속성을 가진 테이블이 되세요C,D그리고E. 속성이 하나 있습니다 두 관계 모두에 공통인 속성C. R ∏ S = πR.A,R.B,R.C,S.D,S.ER.C=S.C(R × 에스)). 우리 여기서 뭐하는 거지? 우리는 먼저 데카르트 곱R × S. 그런 다음 우리는 다음과 같은 튜플을 선택합니다. 공통 속성의 값C같음(σR.C = S.C). 지금 속성을 포함하는 테이블이 있습니다.C두 번 반복하면 다음과 같이 수정됩니다. 중복 열을 투영합니다.

    예 1-2. 내부 조인

    다음에 의해 생성된 테이블을 살펴보겠습니다. 조인에 필요한 단계를 평가합니다. 하자 다음 두 테이블이 제공됩니다.

    R: 에스:
     A | 비 | CC | 디 | E
    ---+---+--- ---+---+---
     1 | 2 | 3 3 | | 비
     4 | 5 | 6 6 | c | 디
     7 | 8 | 9

    먼저 데카르트 곱을 계산합니다.R × S그리고 얻기:

    R x S:
     A | 비 | RC | SC | 디 | E
    ---+---+------+------+---+---
     1 | 2 |  3 |  3 | | 비
     1 | 2 |  3 |  6 | c | 디
     4 | 5 |  6 |  3 | | 비
     4 | 5 |  6 |  6 | c | 디
     7 | 8 |  9 |  3 | | 비
     7 | 8 |  9 |  6 | c | 디

    선택 후 σR.C=S.C(R × S) 우리 얻기:

    A | 비 | RC | SC | 디 | E
    ---+---+------+------+---+---
     1 | 2 |  3 |  3 | | 비
     4 | 5 |  6 |  6 | c | 디

    중복된 열을 제거하려면S.C우리는 투영한다 다음 작업을 통해 제거합니다. πR.A,R.B,R.C,S.D,S.ER.C=S.C(R × S)) 그리고 다음을 얻습니다:

    A | 비 | 다 | 디 | E
    ---+---+---+---+---
     1 | 2 | 3 | | 비
     4 | 5 | 6 | c | 디
  • 나누기(¼): 하자R테이블이 되세요 A, B, C, D 속성을 사용하고 letS속성이 C와 D인 테이블이어야 합니다. 그런 다음 부서를 다음과 같이 정의합니다.

    R ¼ S = t ∣ ∀티s∈ S ∃ tr∈R
    그런 식으로 티r(A,B)=t∧tr(C,D)=ts여기서 티r(x,y)는 테이블의 튜플을 나타냅니다. R구성요소로만 구성된x그리고y. 참고하세요 튜플t다음으로만 구성됩니다. 구성 요소A그리고B관계R.

    다음 표가 주어졌습니다.

    R: 에스:
     A | 비 | 다 | DC | 디
    ---+---+---+--- ---+---
     | 비 | c | 직류 | 디
     | 비 | 전자 | 페 | 에프
     비 | c | 전자 | 에프
     전자 | 디 | c | 디
     전자 | 디 | 전자 | 에프
     | 비 | 디 | 이자형
    R ¼ S는 다음과 같이 파생됩니다.
    A | 비
    ---+---
     | 비
     전자 | 디

더 자세한 설명과 정의는 관계 대수 참조 [울먼, 1988] 또는 [날짜, 1994].

예 1-3. 관계형을 사용한 쿼리 대수학

우리가 모든 관계 연산자를 공식화했다는 것을 기억하세요 데이터베이스에서 데이터를 검색할 수 있습니다. 돌아오자 이전 섹션의 예(작업 관계형 데이터 모델) 누군가가 알고 싶어하는 곳 부품을 판매하는 모든 공급업체의 이름나사. 이 질문은 다음을 사용하여 답할 수 있습니다. 다음 연산을 통한 관계 대수:

π공급업체.SNAMEPART.PNAME='나사'(공급업체 ∏ 판매 ∏ 부품))

우리는 이러한 작업을 쿼리라고 부릅니다. 평가해보자면 예제 테이블에 대한 위의 쿼리(공급업체 및 부품 데이터베이스) 우리는 다음과 같은 결과를 얻을 것입니다:

SNAME
-------
 스미스
 아담스

1.3.2. 토토 미적분학

토토 미적분학은 다음을 기반으로 합니다.1차 논리. 두 가지 변형이 있습니다. 관계형 계산:

  • 도메인 관계 계산 (DRC), 변수가 있는 곳 튜플의 구성요소(속성)에 대해.

  • 튜플 관계형 계산 (TRC), 변수가 있는 위치 튜플의 경우.

우리는 튜플 관계형 계산에 대해서만 논의하고 싶습니다. 왜냐하면 그것은 가장 관계형 언어의 기초가 되는 언어이기 때문입니다. 자세한 내용은DRC(또한TRC) 참조날짜, 1994또는울먼, 1988.

1.3.3. 튜플 토토 미적분학

다음에 사용된 쿼리TRC다음 중 다음 형식:

x(A) ∣ 에프(엑스)
어디에서x튜플 변수입니다A속성의 집합이며F는 공식입니다. 결과 관계 모든 튜플로 구성됨t(A)그것 만족시키다F(t).

예제의 질문에 답하고 싶다면관계형을 사용한 쿼리 대수학사용 중TRC우리는 공식화합니다 다음 쿼리:

x(SNAME) ∣ x ∈ 공급업체 ∧
    ∃ y ∈ 판매 ∃ z ∈ PART (y(SNO)=x(SNO) ∧
    z(PNO)=y(PNO) ∧
    z(PNAME)='나사')

다음 테이블에 대한 쿼리 평가 중공급업체 및 부품 데이터베이스다시 동일한 결과로 이어집니다관계형을 사용한 쿼리 대수학.

1.3.4. 관계 대수학 대 관계 미적분학

관계형 대수학과 토토 미적분학에는 같은표현력; 즉, 모두 관계 대수를 사용하여 공식화할 수 있는 쿼리는 다음과 같습니다. 또한 관계형 미적분과 그 반대를 사용하여 공식화됩니다. 그 반대. 이는 1972년 E. F. Codd에 의해 처음으로 증명되었습니다. 알고리즘("Codd의 감소 알고리즘")을 기반으로 합니다. 토토 미적분학의 임의의 표현은 다음과 같습니다. 관계형의 의미상 동등한 표현으로 축소됨 대수학. 이에 대한 자세한 내용은 다음을 참조하세요.날짜, 1994그리고울먼, 1988.

때때로 관계형 언어를 기반으로 하는 언어가 있다고 합니다. 미적분학은 그보다 "더 높은 수준"이거나 "더 선언적"입니다. 관계 대수를 기반으로 하는 언어 (부분적으로) 작업 순서를 지정하는 동안 미적분학은 이를 컴파일러나 해석기에 맡기고 결정합니다. 가장 효율적인 평가 순서입니다.