🤝

Relational 모델 - 1


Relational 모델은 'Logical Model'이다. 수학적 관계 개념을 사용하고, 집합이론1차 술어 논리에 이론적 근거를 둔다.

Concepts

이 모델에서 'Relation'은 집합에 바탕을 둔 수학적 개념으로 정의한다. 관계 모델에서 DB는 relation들의 집합이다. Relation은 table과 같은 역할을 한다.

Relation은 보통 여러 행(row)들을 가지고 있다. 각 행에 있는 데이터들은 현실 세계의 entity나 relationship에 상응한다. 각 행을 'tuple'(튜플)이라고 하고, 열(column)을 'attribute'라고 한다.

Relation의 key는 튜플을 식별할 수 있는 고유한 값이다. 시스템에서 독립적으로 할당된 연속적인 숫자나 열의 ID를 키로 사용할 수도 있는데, 이 키를 'surrogate key'(대체 키)라고 한다.

Definitions

Schema

스키마는 Relation을 정의하기 위해 사용된다. 스키마는 다음과 같이 나타낼 수 있다.

R(A1,A2,...,An)R(A_1, A_2, ..., A_n)

RR: Relation의 이름

A1,A2,...,AnA_1, A_2,...,A_n: Attribute의 리스트

Degree of relation RR: R이 가진 attribute의 수

Tuple

튜플은 값들의 정렬된 집합이다. 꺾쇠 내부 '<...>'에 표현한다. 튜플의 각 값은 적절한 도메인으로부터 나와야 한다.

Relation은 튜플들의 집합이고, 튜플은 어트리뷰트의 집합이다.

Relation에서 tuple의 순서는 상관없지만 어트리뷰트의 순서는 무조건 지켜져야 한다.

또한, 튜플의 값은 atomic하다고 간주한다. 그렇기 때문에 'Composite' 값은 여러 개의 어트리뷰트로, 'Multi-valued' 값은 분리된 relation으로 관리해야 한다.

Domain

도메인은 atomic한 값의 집합이다. 논리적 정의(이름)을 가지고 데이터 타입과 포멧을 가진다.

도메인을 쉽게 말하자면 어트리뷰트가 가질 수 있는 모든 값이다.

어트리뷰트의 이름이 관계에서 도메인의 역할을 하게 되면서 도메인은 더 구체화된다.

예) "한국의 휴대폰 번호"는 11 digit을 가지고 (01X)-dddd-dddd의 형식을 가져야 한다.

State

Relation의 state는 relation의 어트리뷰트들이 가지는 도메인의 카테시안 곱(cartesian product)의 부분집합이다. 어트리뷰트들로 만들 수 있는 모든 가능한 조합들 중 부분집합, 즉, 실제로 적재된 튜플들을 뜻한다.

r(R)r(R)은 relation RR의 state를 나타낸다.

State는 아래와 같이 나타낼 수 있다.

r(R)dom(A1)×...×dom(An)r(R)\sube dom(A_1)\times ...\times dom(A_n)
r(R)={t1,t2,...,tm}r(R)=\{t_1, t_2, ..., t_m\}

tit_i는 n-tuple을 의미한다. ti=<v1,v2,...,vn>t_i=<v_1, v_2, ..., v_n>이고, 각 어트리뷰트 vjv_jdom(Aj)dom(A_j)의 원소다.




Informal TermsFormal Terms
TableRelation
Column headerAttribute
All possible values in a columnDomain
RowTuple
Table definitionSchema
Loaded TableState