Other Operations
Set-Intersection Operation
교집합 구하기. = 두 테이블에 속한 공통된 튜플을 뽑는다.
대응되는 두 테이블이 comfortable 해야 교집합이 가능하다. = Set 도 comfortable 해야 했었다. (어트리뷰트 수, 이름, 도메인이 같아야)
r - (r -s) 로도 표현할 수 있음.
Natural-Join Operation
-
두 테이블을 결합.
-
예
-
Cartesian 하면 어트리뷰트는 7개, 튜플은 25개가 생긴다.
-
Natural Join 하면 어트리뷰트는 5개, 튜플은 5개가 생긴다. 규칙은 2가지다.
-
- 공통된 어트리뷰트는 하나만 남아서 중복을 제거한다.
-
- 공통된 어트리뷰트(B,D만 비교해서)의 값이 같은 튜플끼리만 결합한다. (r테이블의 1,a = s에 1,a가 2개와 결합. /또다시 내려가서 1,b = s의 1, a 2개와 결합. / r테이블의 2,b = s에 2,b 1개와 결합.)
-
loan.account_number = borrow.account_number 와 같다.
- r의 스키마를 R, s의 스키마를 S라 하면, 내추럴 조인한 스키마는 R과 S의 합집합과 같다.
- R과 S의 교집합(공통 어트리뷰트)에 대해서 같은 값(같은 튜플)을 가질 때, 튜플을 결과에 추가한다.
- 먼저 cartesian, 공통된 어트리뷰트에서 값이 같은 튜플을 찾고, 5개 어트리뷰트만 남긴다.
Assignment Operation
- 복잡한 쿼리를 표시하기 위한 화살표.
- 쿼리의 한 부분을 일시적인 테이블로 저장.
- 예시로, r-s를 저장
- 그 값에 s 곱하고 뺌
- temp1 - temp2
- 일시적으로 테이블 저장하는 게 assignment 연산. 시퀀스 프로그래밍과 같은 개념. 이렇게만 알아두자!
Generalized Projection
- Projection 은 vertical 연산이다. (파이, 추출하고자 하는 어트리뷰트 리스트)
- 하단에 산술 식이 들어간다. (arithmetic functions)
- 상수를 포함하는 산술 식.
- 특정 어트리뷰트만 단순 추출하는 게 아니라 산술식을 포함하여 연산.
- 연산을 as 로 저장하는 것도 가능.
Null and Unkown
- null > 5 또는 null <= 5 는 unkown 이다.
- OR, AND, NOT 연산은 다음과 같다.
Modification of the Database
- 튜플의 삭제, 삽입, 갱신을 Modification 이라 한다.
- 이것들은 모두 assignment 으로 표현할 수 있다.
Deletion
- 특정 튜플의 값은 불가능, 튜플 단위로 삭제 가능.
- 표현: E는 선택된 튜플
Insertion
- 새로운 데이터셋E를 추가.
- 괄호와 소괄호로 표현, 두 개 이상의 튜플을 추가하고 싶으면 소괄호로 튜플 표현.
Updating
- 특정 어트리뷰트 찾고 업데이트.
- 범위를 할당할 수도.
- Fi는 업데이트를 하지 않는 어트리뷰는 그냥 쓰고, 업데이트 하고 싶은 어트리뷰트에만 연산식을 써주면 된다.
- 5%씩 이자
- 1만보다 큰 튜플을 select 하여 6% 인상, 1만보다 작은 튜플을 골라 5% 인상.