DB/관계형 DB

관계형 모델

쿠와와 2020. 11. 28. 17:45

관계형 모델 ( 데이터를 어떻게 표현할까 ?? )

 릴레이션 단위로 다양한 연산을 사용해 질의를 수행하는 데이터 모델

 최근 KVS가 많이 사용되고 있다. -> 키와 값의 형태로 데이터를 표현하는것 

 

Key Point

릴레이션 = 테이블 

속성       = 칼럼

튜플       = 행

 

집합 - 물건의 모임을 표현하는 개념 (물건은 원소 or 요소라고 함)

집합의 요소 

1. 어떤 요소가 집합에 포함돼 있는지 불확정한 요소 없이 판정할 수 있어야함

2. 집합의 요소가 중복돼서는 안된다.

3. 집합의 요소는 더는 분해될 수 없다.

 

관계형 모델과 NULL 

SQL에서 NULL에 대해 옮고 그름이 화제가 되지만, 관계형 모델을 올바르게 구현하려면 NULL은 배제해야 한다.

이 책의 저자와 나는 NULL을 배제할 것임

 

릴레이션 연산

1. 제한 = 릴레이션들 중에 특정 조건에 맞는 튜플을 포함한 릴레이션을 반환한다.

2. 프로젝션  = 어떤 릴레이션 에서 특정 속상만 포함하는 릴레이션을 반환한다. 

3. 확장 = 새로운 속성값을 추가한다. ( 대부분의 새로운 속성값은 기존의 속성값을 이용해 계산한다. )

4. 속성명 변경 = 제곧내

5. 합집합 = 두 개의 릴레이션에 포함된 모든 튜플로 구성된 릴레이션을 반환한다.

6. 교집합 = 두 개의 릴레이션에 모두 포함된 릴레이션을반환한다.

7. 차집합 = 두 개의 릴레이션 중에 한쪽의 릴레이션만 포함되어 있는 튜플로 구정된 릴레이션을 반환한다.

8. 곱집합 = 두 개의 릴레이션에 있는 튜플을 각각 조합한 릴레이션을 반환한다. ( 헷갈릴 수 있음 ) 

출처 : 위키백과

9. 결합 = 공통된 속성을 가진 두 개의 릴레이션에서 공통된 속성값이 같은 튜플끼리 조합한 릴레이션을 반환한다.

 -> 일치하는 값이 존재하지 않는 튜플은 결과에서 제외된다. (주의) 

 => 위의 결과는 내부조인인데 외부조인의 경우 NULL 값을 포함할 수 있기 때문에 적합하지 못하다. (다루지 않음)

 

클로저

관계형 모델에서 중요한 것은 릴레이션을 사용한 연산 결과가 릴레이션이 되는 것이다.

여기서 연산의 입력과 출력이 같은 데이터 구조를 가진 성질을 클로저라고 한다.

'DB > 관계형 DB' 카테고리의 다른 글

procedure  (0) 2020.12.29
mysql - CRUD 작업하기  (0) 2020.12.28
MYSQL 사용법  (0) 2020.12.27
술어논리와 릴레이션의 연산 #1  (0) 2020.12.02
SQL에서 릴레이션 조작  (0) 2020.11.29