이전 섹션에서 (토토 데이터 모델 형식) 우리는 수학적 개념을 정의했습니다 토토 모델. 이제 우리는 데이터를 사용하여 어떻게 저장할 수 있는지 알았습니다. 토토 데이터 모델이지만 우리는 모두 무엇을 해야할지 모르겠습니다. 이 테이블은 아직 데이터베이스에서 무언가를 검색합니다. 을 위한 예를 들어 누군가는 모든 공급 업체의 이름을 요청할 수 있습니다. '나사'부품을 판매하십시오. 따라서 두 가지 다소 다른 종류의 관계에 대한 작전을 표현하기위한 표기법이있었습니다 한정된:
the토토 대수쿼리가 표현되는 대수 표기법 관계에 전문 운영자 신청.
the토토 미적분학쿼리가 표현되는 논리적 표기법 튜플이있는 논리적 제한을 공식화합니다 답은 만족해야합니다.
the토토 대수1972 년 E.F. Codd에 의해 소개되었습니다. 관계에 대한 운영 :
select (σ) : Extracts튜플주어진 제한을 만족시키는 관계에서. 허락하다r기인하다a. σa = a(r) = t ∈ R & Mid; t (a) = a 여기서t튜플을 나타냅니다randt (a)속성 값을 나타냅니다a튜플t.
프로젝트 (π) : 지정된 추출속성(열) 관계에서. 허락하다r기인하다x. πx(r) = t (x) & 중간; t ∈r, 여기서t(x) 속성의 값을 나타냅니다x튜플t.
제품 (×) : 두 개의 직교 제품을 구축합니다 처지. 허락하다r테이블이 있습니다 ArityK1and letSarity가있는 테이블K2. r×Sis 모두 세트K1+K2-첫 번째K1구성 요소 양식 a 튜플r그리고 마지막K2구성 요소 양식 a 튜플S.
Union (∪) : 두 테이블의 이론적 연합을 구축합니다. 주어진 테이블randS(둘 다 동일해야합니다 Arity), The Unionr∪Sr또는S또는 둘 다.
intersect (∩) : 세트 이론적 교차점을 구축합니다 두 테이블. 주어진 테이블randS, r∩Sis 안에있는 튜플 세트r및 안에S. 우리는 다시 그것을 요구합니다randS똑같은 아티브가 있습니다.
차이 ( - 또는 & setmn;) : 세트 차이를 빌드합니다 두 테이블의. 허락하다randS다시 두 개의 테이블이 되십시오 똑같은 arity.r - S튜플 세트는입니다.r하지만S.
조인 (∏) : 두 개의 테이블을 공동으로 연결합니다 속성. 허락하다r테이블이 되십시오 속성으로a,BandCand letS속성이있는 테이블이 되십시오C,dande. 하나의 속성이 있습니다 두 관계 모두에 공통, 속성C. r ∏ s = πR.A, R.B, R.C, S.D, S.E(σR.C = S.C(R × 에스)). 우리는 여기서 무엇을하고 있습니까? 먼저 계산합니다 직교 제품r×S. 그런 다음 우리는 그 튜플을 선택합니다 공통 속성에 대한 값C동일하다 (σR.C = S.C). 지금 속성이 포함 된 테이블이 있습니다C두 번, 우리는 이것을 바로 잡습니다 중복 열을 투사합니다.
예 1-2. 내부 조인
생산 된 테이블을 살펴 보겠습니다. 가입에 필요한 단계를 평가합니다. 하자 두 개의 테이블을 따라야합니다.
r : s : A | B | C C | d | 이자형 ---+---+--- ---+---+--- 1 | 2 | 3 3 | A | 비 4 | 5 | 6 6 | C | 디 7 | 8 | 9
먼저 직교 제품을 계산합니다r×S및 얻다:
r x s : A | B | R.C | S.C | d | 이자형 ---+---+-----+-----+---+--- 1 | 2 | 3 | 3 | A | 비 1 | 2 | 3 | 6 | C | 디 4 | 5 | 6 | 3 | A | 비 4 | 5 | 6 | 6 | C | 디 7 | 8 | 9 | 3 | A | 비 7 | 8 | 9 | 6 | C | 디
선택 후 σR.C = S.C(r × s) 우리 얻다:
a | B | R.C | S.C | d | 이자형 ---+---+-----+-----+---+--- 1 | 2 | 3 | 3 | A | 비 4 | 5 | 6 | 6 | C | 디
중복 열을 제거하려면S.C우리 프로젝트 다음 작업으로 인해 : πR.A, R.B, R.C, S.D, S.E(σR.C = S.C(R × S)) 그리고 get :
a | B | C | d | 이자형 ---+---+---+---+--- 1 | 2 | 3 | A | 비 4 | 5 | 6 | C | 디
Divide (÷) : letr테이블이 되십시오 속성 A, B, C 및 D 및 LetS속성 C와 D가있는 테이블이 되십시오. 그런 다음 부서를 다음과 같이 정의합니다.
r ÷ s = t & mid; ∀ tS∈ S ∃ tr∈ R티r(a, b) = t∧tr(c, d) = tS여기서 티r(x, y)는 테이블의 튜플을 나타냅니다r구성 요소로만 구성된x및y. 주목하십시오 튜플T구성 요소aandB관계r.
다음 테이블이 주어지면
r : s : A | B | C | D C | 디 ---+---+---+--- ---+--- A | B | C | D C | 디 A | B | e | f e | 에프 B | C | e | 에프 e | d | C | 디 e | d | e | 에프 A | B | d | 이자형r ÷ s는로 파생됩니다.
a | 비 ---+--- A | 비 e | 디
보다 자세한 설명과 정의 관계 대수는 [를 말합니다.Ullman, 1988] 또는 [Date, 1994].
예 1-3. 관계형을 사용한 쿼리 대수학
우리는 모든 관계형 운영자를 공식화했다는 것을 기억하십시오 데이터베이스에서 데이터를 검색 할 수 있습니다. 돌아 오자 이전 섹션의 예제 (관계형 데이터 모델) 누군가가 알고 싶어하는 곳 부품을 판매하는 모든 공급 업체의 이름나사. 이 질문은 사용하여 답변 할 수 있습니다 다음 작업에 따른 관계 대수 :
π공급 업체 .same(σpart.pname = '나사'(공급 업체 ∏ ∏ 부품))
우리는 그러한 작업을 쿼리라고 부릅니다. 우리가 평가한다면 예제 테이블에 대한 위의 쿼리 (공급 업체 및 부품 데이터베이스) 우리는 다음과 같은 결과를 얻을 것입니다 :
SNAME ------- 스미스 아담스
토토 미적분학은를 기반으로합니다.1 차 논리. 두 가지 변형이 있습니다 토토 미적분학 :
the도메인 토토 미적분학(DRC) 튜플의 구성 요소 (속성).
the튜플 토토 미적분학(TRC) 튜플 용.
우리는 튜플 관계체 미적분학 만 논의하고 싶습니다 가장 관계자가 가장 중요한 언어이기 때문입니다. 에 대한 자세한 토론을 위해DRC(및 또한TRC) 참조Date, 1994또는Ullman, 1988.
사용 된 쿼리TRC다음 형식 :
x (a) & mid; f (x)어디x튜플 변수입니다a일련의 속성이며f는 공식입니다. 결과 관계 모든 튜플로 구성t (a)풀다f (t).
우리가 예에서 질문에 답하고 싶다면관계형을 사용한 쿼리 대수학사용TRC우리는 공식화합니다 다음 쿼리 :
x (sname) & mid; x ∈ 공급자 ier ∃ y ∈는 ∃ z ∈ Part (y (sno) = x (sno) ∧를 판매합니다. z (pno) = y (pno) ∧ z (pname) = '나사')
테이블에 대한 쿼리 평가공급 업체 및 부품 데이터베이스다시 동일한 결과로 이어집니다관계형을 사용한 쿼리 대수학.
토토 대수와 토토 미적분학은 다음과 같습니다 같은표현력; 즉, 모두 토토 대수 캔을 사용하여 공식화 할 수있는 쿼리 또한 토토 미적분학과 악을 사용하여 공식화됩니다 VERSA. 이것은 1972 년 E.F. Codd에 의해 처음 입증되었습니다.이 증거 알고리즘 ( "Codd 's Reduction Algorithm")을 기반으로합니다 토토 미적분학의 임의의 표현은 의미 적으로 동등한 관계 표현으로 감소 대수학. 이에 대한 자세한 내용은 참조Date, 1994andUllman, 1988.
때때로 관계에 기반한 언어는 미적분학은 "더 높은 수준"또는 "더 선언적"입니다 대수 때문에 관계 대수를 기반으로하는 언어 (부분적으로) 운영 순서를 지정합니다 미적분학은 컴파일러 나 통역사에게 맡기기 위해 가장 효율적인 평가 순서.