티스토리 뷰

개요


데이터베이스에서 사용하는 연산들을 알아보자. 쿼리에서 사용하는 용어와 비슷한 것들도 있지만 좀 더 추상적인 개념이기 때문에 쿼리와 동일한 것으로 생각하면 안된다.






데이터베이스 연산


select

릴레이션에서 조건을 충족하는 튜플들을 선택한다. 쿼리문에서의 select와는 조금 다른 의미이니 유의하자.

A=B(R)

릴레이션 R에서 A와 B의 값이 같은 튜플들을 선택한다.

project

원하는 attribute들만 골라서 새로운 튜플을 만든다.

A,C(R)

릴레이션 R에서 A,C 2개의 attribute로만 이루어진 릴레이션을 반환한다.

union

두 릴레이션이 같은 attribute와 도메인으로 이루어져있을 때 합집합으로 이루어진 릴레이션을 만들어낸다.

AB

릴레이션 A와 B의 합집합으로 이루어진 릴레이션을 만든다.

difference

두 릴레이션이 같은 attribute와 도메인으로 이루어져있을 때 차집합으로 이루어진 릴레이션을 만들어낸다.

A-B

릴레이션 A에서 B를 뺀 릴레이션을 만든다.

intersection

두 릴레이션이 같은 attribute와 도메인으로 이루어져있을 때 교집합으로 이루어진 릴레이션을 만들어낸다.

AB

릴레이션 A와 B의 교집합으로 이루어진 릴레이션을 만든다.




Join


두 릴레이션을 조합해서 새로운 릴레이션을 만드는 연산을 말한다. Join은 그 종류가 많기 때문에 따로 정리하도록 한다. join을 하면 새로운 목적을 가지는 릴레이션을 만들어낼 수 있다. 예를들어 회원정보 릴레이션과 도서대여기록 릴레이션을 조합하여 어떤 회원이 언제 어떤 도서를 대여했는지 알아낼 수 있는 새로운 릴레이션을 만들어낼 수 있다.


Cartesian Product

두 릴레이션을 그냥 곱해서 새로운 큰 릴레이션을 만들어낸다.

A가 5개, B가 3개의 튜플로 이루어진 릴레이션이라면 cartesian product를 통해 만들어지는 릴레이션은 53=15개의 튜플을 가진다. 다만 이 결과는 값의 중복이나 의미를 고려하지 않고 수학적으로 곱해서 만들어진 값이기 때문에 데이터베이스로써 의미를 가지려면 가공이 필요하다.


Theta Join

Cartesian Product를 통해 만들어진 릴레이션에서 동일한 attribute가 같은 값을 가지고있는 튜플들을 선택하여 필터링한 릴레이션

r(A,B,C) s(B,C,D) 인 두 릴레이션이 있다고하자. r에 속한 B,C 와 s에 속한 B,C는 전혀 다른 값일 수도있지만 지금은 같은 값을 의미한다고 가정한다.

r.B=s.B, r.C=s.C(rs)

위 연산의 결과를 Theta Join이라고 한다.


Natural Join

Theta Join을 한 결과에서 같은 값을 가지고있는 attribute를 project연산을 통해 하나로 추려낸 릴레이션을 만들어낸다.

A, r.B, r.C, D(r.B=s.B, r.C=s.C(rs))

데이터베이스에서 같은 값을 가지는 attribute가 둘 이상일 경우 의미가 없기 때문에 중복된 것들을 제거해서 최적화된 릴레이션을 얻어낸다.


'Non-Programming > Database' 카테고리의 다른 글

SQL - Sequence  (0) 2019.05.07
SQL - Tutorial  (0) 2019.04.07
데이터베이스 - 키(Key)  (0) 2017.03.09
데이터베이스 - 용어정리  (6) 2017.03.09
데이터베이스 - 릴레이션(Relation)  (0) 2017.03.09
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함