1. 순수 관계 연산자
관계대수
- 원하는 데이터를 얻기 위해서 어떻게(how) 질의를 수행할 것인지 일련의 연산을 순서대로 명시해야 하는 절차적 언어
관계해석
- 원하는 데이터가 무엇인지만(what)을 명시하고 질의를 어떻게 수행할 것인가는 명시하지 않는 비절차적 언어
대수
- 수 대신 문자를 사용해서 문제를 쉽게 하고, 수학적인 법칙을 간단하고 명확하게 표현하는 것
관계 대수
- 데이터베이스에 저장된 데이터를 문자와 사용한 연산을 통해 요청한
데이터를 정보화하여 얻을 수 있는데 그 원리가 산술 연산자와 유사
순수 관계 연산자
- SELECT, PROJECT, JOIN, DIVISION
일반 집합 연산자
- 합집합, 교집합, 차집합, 카티션 프로덕트(Cartesian Product)
셀렉트(SELECT, σ), 셀렉트연산
- 릴레이션에서 주어진 조건에 만족하는 튜플을 선택하는 연산자
- 표기 형식은 그리스 문자 시그마(sigma)를 사용한 연산자 기호인 σ를 사용 (단, R은 릴레이션)
ex) 학생 릴레이션에 대한 셀렉트 연산
σ 점수≥80(학생)
프로젝트(PROJECT, π), 프로젝트연산
- 주어진 릴레이션에서 어트리뷰트 리스트에 제시된 어트리뷰트만을 추출하는 연산자
ex) π 이름, 전공(학생)
조인(JOIN, ▷◁), 조인 연산
- 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션
- 연산자의 종류에는 세타 조인(theta join), 동등 조인(equi join), 자연
조인(natural join), 외부 조인(outer join), 세미 조인(semi join)
세타 조인
- 두 릴레이션 R(A1, A2, ..., An)과 S(B1, B2, ..., Bm)의 세타 조인
한 결과로 얻어지는 차수는 릴레이션 R의 차수와 릴레이션 S의 차수를 합한 것(n+m)
- 어트리뷰트는 (A1, A2, ..., An, B1, B2, ..., Bm)이며, 조인 조건을
만족하는 튜플들로 이루어진 릴레이션 세타는 { =, <>, <=, <, >=, > } 중의 하나
동등 조인(equi join)
- 세타 조인 중에서 비교 연산자가 =인 조인이고 표기 형식은 그리스문자 ▷◁를 사용
학생 ▷◁ 학번=학번 성적
자연 조인
- 동등 조인 결과로 얻어진 불필요한 중복되는 어트리뷰트를 한 개 제외한 조인
ex) 학생 ▷◁N 성적
외부 조인
- 상대 릴레이션에서 대응되는 튜플을 갖지 못하는 튜플이나 조인 어트리뷰트에 널 값이 들어 있는 튜플들을
다루기 위해서 조인 연산을 확장한 조인
- 외부 조인의 종류로는 왼쪽 외부 조인(left outer join), 오른쪽 외부 조인(right outer join), 완전 외부 조인(full outer join)
왼쪽 외부 조인
오른쪽 외부 조인
디비전(DIVISION, ÷), 디버전연산
- X ⊃ Y인 2개의 릴레이션에서 R(X)와 S(Y)가 있을 때, R의 속성이
S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산
R [속성r ÷ 속성s] S
디비전
합집합(UNION, ∪)
- R ∪ S는 R 또는 S에 있거나 R과 S 모두에 속한 튜플들로 이루어진 릴레이션
정의
R∪S = {t|t∈R ∨ t∈S}
R, S에 속하는 모든 튜플의 집합
합집합
교집합(INTERSECT, ∩)
- R ∩ S는 R과 S 모두에 속한 튜플들로 이루어진 릴레이션
정의
R∩S = {t|t∈R ∧ t∈S}
R, S 양쪽 모두에 속하는 모든 튜플의 집합
교집합
차집합(DIFFERENCE, -)
- R S는 R에는 속하지만 S에는 속하지 않는 튜플들로 이루어진 릴레이션
정의
R그S = {t|t∈R ∧ t S}
R에는 속하고, S에는 속하지 않는 모든 튜플의 집합
차집합
카티션 프로덕트 연산자(CARTESIAN PRODUCT,×)
- R × S는 차수가 n+m이고, 카디날리티가 i*j이고, 어트리뷰트가 (A1,
A2, ..., An, B1, B2, ..., Bm)이며, R과 S의 튜플들의 모든 가능한 조합으로 이루어진 릴레이션
정의
R×S = { r·s | r∈R ∧ s∈S }
R과 S의 접속인 모든 튜플의 집합
카티션 프로덕트 연산자
외부 합집합
- ∪+는 완전하게 합병 가능하지 않은 두 릴레이션을 합집합으로 만드는 것
'DB > 수업' 카테고리의 다른 글
19. 데이터 베이스 설계와 ER 모델(10-1) (0) | 2017.06.27 |
---|---|
10. 관계 대수와 관계 해석(5-2) (0) | 2017.05.21 |
8. 데이터 종속성과 정규화(4-2) (0) | 2017.05.16 |
7. 데이터 종속성과 정규화(4-1) (0) | 2017.05.15 |
6. 관계 데이터 모델과 관계 무결성 제약조건(3-2) (0) | 2017.05.08 |