이전 섹션에서 (와이즈 토토 데이터 모델 형식) 우리는 와이즈 토토 모델의 수학적 개념을 정의했습니다. 이제 우리는 와이즈 토토 데이터 모델을 사용하여 데이터를 저장하는 방법을 알고 있지만 우리는 검색하기 위해 이 모든 테이블을 어떻게 처리해야 할지 모릅니다. 아직 데이터베이스에서 뭔가가 나왔습니다. 예를 들어 누군가가 요청할 수 있습니다. '나사' 부품을 판매하는 모든 공급업체의 이름. 그러므로 연산을 표현하기 위한 두 가지 서로 다른 종류의 표기법 관계에 대해 정의되었습니다:
그관계 대수학이것은 쿼리가 다음을 적용하여 표현되는 대수적 표기법 관계에 대한 전문 연산자.
그와이즈 토토 미적분학이것은 쿼리를 공식화하여 표현하는 논리적 표기법 답변의 튜플이 가져야 하는 몇 가지 논리적 제한 사항 만족하다.
그관계 대수학소개되었습니다 1972년 E. F. Codd 작성. 관계:
SELECT (σ): 추출튜플에서 주어진 제한을 만족하는 관계. 하자R속성을 포함하는 테이블이어야 합니다.A. σA=a(R) = t ∈ R ∣ t(A) = a 여기서t은 튜플R그리고t(A)속성 값을 나타냄A튜플t.
PROJECT (π): 지정된 추출속성7052_7090R다음을 포함하는 관계여야 합니다. 속성X. πX(R) = t(X) ∣ 티 ∈R, 여기서t(X)는 다음을 나타냅니다. 속성 값X튜플t.
PRODUCT (×): 두 관계의 데카르트 곱을 만듭니다. 하자R애리티가 있는 테이블이 되세요k1그리고 하자S애리티가 있는 테이블이 되세요k2. R × S모든 것의 집합이다k1 + k2-첫번째 튜플k1구성요소는 튜플을 형성합니다.R그리고 그의 마지막k2구성요소는 튜플을 형성합니다S.
UNION (∪): 두 테이블의 집합론적 합집합을 구축합니다. 주어진 테이블R그리고S(둘 다 동일한 소수를 가져야 함), 합집합R ∪ S이다 에 있는 튜플 세트R또는S또는 둘 다.
INTERSECT (∩): 두 개의 집합 이론 교차점을 구축합니다. 테이블. 주어진 테이블R그리고S, R ∪ S는 다음에 있는 튜플의 집합입니다.R그리고S. 다시 한 번 요구합니다.R그리고S가지고 같은 arity.
DIFFERENCE (− 또는 ∖): 다음의 집합 차이를 만듭니다. 테이블 두 개. 하자R그리고S다시 동일한 계수를 가진 두 개의 테이블이 됩니다.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.E(σR.C=S.C(R × S)). 우리 여기서 뭐하는 거지? 먼저 데카르트식을 계산합니다. 제품R × S. 그런 다음 값이 있는 튜플을 선택합니다. 공통 속성의 경우C동등하다 (σR.C = S.C). 이제 우리는 다음을 포함하는 테이블을 갖게 되었습니다. 속성C두 번 수정했습니다. 중복 열을 투영하여 이를 수행합니다.
예 69-2. 내부 조인
다음에 의해 생성된 테이블을 살펴보겠습니다. 조인에 필요한 단계를 평가합니다. 다음을 보자 두 개의 테이블이 제공됩니다.
R A | 비 | CSC | 디 | 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.E(σR.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)=티s여기서 티r(x,y)는 테이블의 튜플을 나타냅니다.R구성요소로만 구성된x그리고y. 참고 그 튜플t다음으로만 구성됩니다. 구성 요소A그리고B관계R.
다음 표가 주어졌습니다.
R A | 비 | 다 | DS C | 디
---+---+---+--- ---+---
| 비 | c | 직류 | 디
| 비 | 전자 | 페 | 에프
비 | c | 전자 | 에프
전자 | 디 | c | 디
전자 | 디 | 전자 | 에프
| 비 | 디 | 이자형R ¼ S는 다음과 같이 파생됩니다.A | 비
---+---
| 비
전자 | 디
관계형에 대한 더 자세한 설명과 정의는 대수학 참조 [울만, 1988] 또는 [날짜, 1994].
예 69-3. 관계 대수를 사용한 쿼리
우리는 모든 관계 연산자를 다음과 같이 공식화했음을 기억하십시오. 데이터베이스에서 데이터를 검색할 수 있습니다. 우리의 모습으로 돌아가자 이전 섹션의 예(관계형 데이터의 작업 모델) 누군가가 모든 사람의 이름을 알고 싶어했던 곳 부품을 판매하는 공급업체나사. 이 관계 대수학을 사용하여 질문에 대답할 수 있습니다. 다음 작업:
π공급업체.SNAME(σPART.PNAME='나사'(공급업체 ∏ 판매 ∏ 부품))
우리는 이러한 작업을 쿼리라고 부릅니다. 위 내용을 평가하자면 예제 테이블에 대한 쿼리(공급업체 및 부품 데이터베이스) 우리 다음 결과를 얻습니다.
SNAME
-------
스미스
아담스
와이즈 토토 미적분학은 다음을 기반으로 합니다.1차 논리. 두 가지 변형이 있습니다. 와이즈 토토 미적분학:
그도메인 관계 계산 (DRC), 여기서 변수는 튜플의 구성 요소(속성)입니다.
그튜플 와이즈 토토 미적분학 (TRC), 여기서 변수는 튜플.
우리는 튜플 관계형 계산에 대해 논의하고 싶습니다. 가장 관계형 언어의 기초가 되는 언어입니다. 자세한 내용은 토론DRC(또한TRC) 참조날짜, 1994또는울만, 1988.
다음에 사용된 쿼리TRC그들은 다음 형식: x(A) ∣ 에프(x) 여기서x튜플 변수입니다A속성의 집합이며F은 공식입니다. 결과 관계는 모든 튜플로 구성됩니다.t(A)만족합니다F(t).
예제의 질문에 답하고 싶다면관계형을 사용한 쿼리 대수학사용 중TRC우리는 공식화합니다 다음 쿼리:
x(SNAME) ∣ x ∈ 공급업체 ∧ \nonumber
∃ y ∈ 판매 ∃ z ∈ PART (y(SNO)=x(SNO) ∧ \nonumber
z(PNO)=y(PNO) ∧ \no숫자
z(PNAME)='나사') \nonumber
다음 테이블에 대한 쿼리 평가 중공급업체 및 부품 데이터베이스다시 와 같은 결과가 나옵니다.관계형을 사용한 쿼리 대수학.
관계 대수학과 관계 미적분학은 동일합니다.표현력; 즉, 다음과 같은 모든 쿼리는 관계 대수를 사용하여 공식화할 수 있습니다. 와이즈 토토 미적분학을 사용하거나 그 반대의 경우도 마찬가지입니다. 이는 처음으로 증명됐다. 1972년 E. F. Codd에 의해 작성되었습니다. 이 증명은 알고리즘("Codd의 감소 알고리즘")의 임의의 표현 관계형 계산은 의미상 동등한 것으로 축소될 수 있습니다. 관계대수의 표현. 에 대한 더 자세한 논의를 위해서는 다음을 참조함날짜, 1994그리고울만, 1988.
때때로 관계형 언어를 기반으로 하는 언어가 있다고 합니다. 미적분학은 언어보다 "더 높은 수준"이거나 "더 선언적"입니다. 대수학은 (부분적으로) 관계형 대수학에 기초합니다. 미적분이 그것을 남겨두는 동안 연산 순서를 지정합니다. 가장 효율적인 순서를 결정하는 컴파일러 또는 인터프리터 평가.