관계형 모델 (Relational Model)

2022. 10. 8. 00:32데이터베이스(DB)

반응형

관계형 모델

- 관계 모델에서 데이터베이스는 릴레이션(테이블)들의 모임으로 표현됨
릴레이션은 튜플(행, 레코드)들의 집합으로 표현됨
튜플은 애트리뷰트(칼럼, 필드, 혹은 속성)들로 구성됨

 

● 관계 모델의 용어

- 행 : 튜플
- 열 : 애트리뷰트 (속성)
- 테이블 : 릴레이션

 

STUDENT 릴레이션

릴레이션과 관련된 용어들

도메인(domain) : 원자 값들(atomic values)의 집합
- Names : 개인의 이름들의 집합
- Age : 16~60 사이의 사원들의 나이 (정수)
- Dom(gender)={‘M’,’W’}
- Dom(class)={1,2,3,4}
● 도메인은 실제 데이터 타입으로 명시함 (int, char(10), …)

 

● 릴레이션 스키마 (Relation schema)

- 릴레이션 이름 R과 애트리뷰트 Ai들의 집합으로 R(A1, A2, … , An)로 표기함
- 예 : STUDENT(Name, SSN, BirthDate, Addr)
- 릴레이션의 차수 (degree) : 릴레이션의 애트리뷰트 개수
- 릴레이션 R(A1, A2, … , An)의 튜플 t : n-튜플
- 값들의 (순서화된) 집합 t = <v1, v2, … , vn>
vi는 dom(Ai)의 한 원소임.
R에 대한 릴레이션 혹은 릴레이션 인스턴스 (Relation instance) : r(R)
● 튜플의 집합 : r(R) = {t1, t2, …, tm}
r(R) ⊆ dom(A1) X … X dom(An)
● X : 카티션 곱 (cartesian product)

 

릴레이션의 특징

● 릴레이션에서 튜플의 순서는 의미가 없음

집합에서 원소의 순서가 무의미한 것과 마찬가지

● 각 튜플 내에서의 값들의 순서

- n-튜플은 n개 값으로 구성된 리스트이며, 한 튜플 내에서 값들의 순서는 중요함 (리스트에서 원소의 순서는 중요한 의미를 가짐)

● 튜플 내의 필드 값

- 나눌 수 없는 원자 값들(atomic values) 임
- 값을 알 수 없거나 해당되는 값이 없을 때에는 null이라는 특수 값을 사용함
- ER 모델에서의 다치(multi-valued) 애트리뷰트나 복합(composite) 애트리뷰트는 관계 모델에서 허용되지 않음

 

 

☞ 위 2개의 릴레이션은 튜플의 순서만 다를 뿐 같은 릴레이션이다.


Q) 첫 번째 tuple에서 열 번째 tuple까지 불러오기 => False => 집합에는 순서가 없기 때문

 

관계형 모델 표기법

차수가 n인 릴레이션 스키마 R은 R(A1, A2, … , An)으로 표기한다
- 릴레이션 r(R)의 n-튜플 t는 t=<v1, v2, … , vn>으로 표기한다. vi는 애트리뷰트 Ai의 값이다.
- 튜플 t의 구성요소 값(component value)을 t [Ai] = <vi> (튜플 t에 대한 애트리뷰트 Ai의 값)로 표기한다.
t [A1, A2, … , An]는 애트리뷰트 A1, A2, … , An의 값을 포함하는 부(sub)-튜플을 가리킨다.

 

☞ t=<Benjamin Bayer, 305-61-2435 …>

☞ t [Age, Gpa] = <19, 3.21>

 

대문자 Q, R, S 등은 릴레이션 이름을 나타낸다.
소문자 q, r, s 등은 릴레이션 상태를 나타낸다.
소문자 t, u, v 등은 튜플을 나타낸다.
- STUDENT처럼 릴레이션 스키마의 이름은 릴레이션의 현재 튜플들의 집합, 즉, 현재의 릴레이션 상태를 가리키고, STUDENT(Name, SSN, …)는 릴레이션 스키마를 가리킨다.
- 서로 다른 릴레이션에서 동일한 이름의 애트리뷰트를 사용할 수 있으며, 애트리뷰트 이름 앞에 릴레이션 이름을 붙여서 서로를 구분한다.

'데이터베이스(DB)' 카테고리의 다른 글

관계형 모델 제약조건  (0) 2022.10.08
DBMS의 분류  (0) 2022.10.08
데이터베이스 시스템과 아키텍처 (2)  (0) 2022.10.05
데이터베이스 시스템과 아키텍처 (1)  (0) 2022.10.05
데이터베이스 소개  (0) 2022.10.03