본문 바로가기

CS 과목(CS科目)/데이터 베이스(データベース)

RDBMS(Feat. 관계형 데이터베이스, relation, set, list etc)

관계형 DB, 즉 "Relational" DB의 Relation은 수학에서의 Relation에서 유래함

Relation in Mathematics의 2가지 정의

1] subset of Catesian Product

2] set of tuples

-> 위 내용을 아래에서 자세히 알아 보자. 

 

set

set : 중복 없는 elements를 가지는 collection이며, 순서는 중요하지 않다. 

e.g.{1,3,4,5} == {1,5,4,3}

Cartesian Product 

Catesian Procut의 수학적 표기 : X_1 x  X_2 x .... X_n = {(x_1,x_2,...x_n) | x_1 < X1 and x_2 < X_2,....x_n < X_n}

-> Set X_1,Set X_2,Set X_n, 즉 n개의 Set에서 하나씩의 elements를 골라 만들 수 있는 모든 쌍의 집합

 

Cartesian Product

 

Cartesian Product와 수학에서의 Relation의 관계

위에서 Relation의 정의 중 하나로 " subset of Catesian Product "라고 언급을 하였다. 

즉, Relation이란 Cartesian Product의 부분집합인 것이다. 

n-ary relation <= X_1 x X_2 x .....X_n

Ex) binary Relation <= A x B

 

Tuple과 Relation의 관계

Tuple : Relation의 구성 요소이며 list 형태이다.  

tuple={1,p,B}

각각의 Set는 순서를 중요시 하지 않는다. 

그러나 Cartesian Product의 부분 집합(Relation)을 구조를 보자. 

{X_1의 elemetns, X_2의 elements, .... X_n의 elements}의 구조를 가지고 있다. 

즉 순서가 보장돼 있다. 

고로, tuple은 순서가 보장되는 list 형태를 띈다

* n - tuple : n 개의 집합에서 만들어지는 Relation의 구성 요소. 

 

Relation in Mathematics to Relational data model

위에서 우리는 수학에서의 relation의 개념들을 배웠다. 그럼 이제 이 수학적 개념인 relation이 relational data model에서

어떻게 사용되고 있는지 STUDENT 테이블을 예시로 알아 보자. 

* SET이 Relational data model에서는 Domain(도메인)의 개념으로 사용된다는 점을 먼저 기억하자. 

* 도메인(domain)에 대한 개념은 다음 사이트 참조(https://jbluke.tistory.com/624)

도메인 vs attribute

relation을 도메인을 기준으로 표현하려고 하니 한 가지 걸리는 부분이 있다. 

위 그림 중 빨간색 부분을 보면 Phone_numbers라는 도메인 Set이 중복해서 존재한다. 

개발자가 도메인 Set을 보았을 때 중복된 이름의 도메인이 있을 경우 혼동스럽다. 

그러나 하나의 Phone_numbers 도메인은 STUDENT 본인의 연락처이고, 다른 하나의 Phone_numbers 도메인은 친구/부

모 연락처와 같은 비상 연락처를 용도로 사용하고 있다. 

이렇게 같은 도메인이더라도 목적이 다를 수가 있다

이때 도메인 Set이 중복되는 문제를 해결하기 위하여 attribute라는 개념을 DB에서는 만들어서 같은 도메인이더라도 그것

의 용도와 목적을 구분할 수 있게 하였다. 

 

 Relation은 Table로 표현된다. 

이와 같이 수학적 개념에서의 tuple의 표현 방법은 컴퓨터 개발자에게는 불편한 지식 표현이다. 

고로 수학에서의 tuple(Relation의 구성요소)를 1x1의 Table로 표현한다.  

 

 

정리

SET -> 도메인 or Attribute

tuple -> 1x1 Table

relation -> Table