본문 바로가기
computer science/데이터베이스

[데이터베이스] 관계 데이터의 기본용어

by 박연호의 개발 블로그 2020. 2. 27.

일반적으로 관계 데이터 모델에서는 하나의 개체에 관한 데이터를 릴레이션 하나에 담아 데이터베이스에 저장합니다. 이번장에서는 릴레이션과 관련된 용어에 대해 공부해 보겠습니다.

 

 

1. 릴레이션

관계 데이터 모델에서 각각의 속성에 대해 데이터를 원자값으로 가지는 이차원 테이블이 존재하며 이것을 릴레이션이라고 부릅니다. 위의 사진에서 고객아이디, 고객이름, 나이, 등급, 직업, 적립금에 대한 값들이 존재하며 모두 어떤 고객에 대한 정보이며 이것을 고객 릴레이션이라고 부릅니다. 파일 시스템에서 파일과 같은 개념입니다.

 

2. 속성

릴레이션의 열을 속성, attribute라고 부릅니다. 고객 릴레이션에는 고객과 관련한 6가지의 중요한 데이터를 의미하는 고객아이디, 고객이름, 나이, 등급, 직업, 적립금이라는 속성이 존재합니다. 릴레이션은 파일 관리시스템에서 파일, 속성은 해당 파일의 필드에 대응하는 개념입니다.

 

3. 튜플

릴레이션의 행을 튜플( tuple)이라고 부릅니다. 고객 릴레이션에서 각 튜플은 고객 한 명에 대한 실제 속성 값 6개를 모아 놓은 것으로, 고객 개체의 인스턴스입니다. 따라서 고객 4명에 대한 데이터를 저장하고 있는 고객 릴레이션에는 4개의 튜플 또는 4개의 고객 개체 인스턴스가 존재합니다. 튜플은 파일관리 시스템 관점에서 해당 파일의 레코드에 대응하는 개념입니다.

 

4. 도메인

속성 하나가 가질 수 있는 모든 값의 집합을 해당 속성의 도메인이라고 합니다. 관계 데이터 모델에서는 속성의 값으로 더는 분해할 수 없는 원자 값만 사용할 수 있습니다. 그래서 도메인을 특정 속성이 가질 수 있는 모든 원자 값의 모임이라고 정의합니다. 고객 릴레이션에서 등급 속성의 값으로 vip, gold, silver, bronze 중 하나만 허용디며 4가지 값을 모아 놓은 것의 등급 속성의 도메인이 됩니다.

 

5. null 값

릴레이션에 있는 특정 튜플의 속성 값을 모르거나, 적합한 값이 없는 경우에는 null이라는 특별한 값을 사용합니다. 널 값은 특정 속성에 해당되는 값이 없음을 나타내므로 숫자 0이나 공백 문자와는 다릅니다. 

 

6. 차수

하나의 릴레이션에서 속성의 전체 개수를 릴레이션의 차수라고 합니다. 예를 들어 고객 릴레이션은 차수가 6이며 모든 릴레이션은 최소 1이상의 차수를 유지해야 합니다. 릴레이션의 차수는 일반적으로 자주 변하지 않는다는 정적인 특징이 있습니다.

 

7. 카디널리티

하나의 릴레이션에서 튜플의 전체 개수를 카디널리티(cardinality)라고 합니다. 고객 릴레이션의 카디널리티는 4이며 튜플이 없는 릴레이션이 존재할 수도 있습니다. 새로운 튜플이 계속 삽입되거나 기존 튜플이 삭제될 수 있으므로 릴레이션의 카디널리티는 일반적으로 자주 변한다는 동적인 특징이 있습니다.

 

8. 릴레이션 스키마

릴레이션 스키나는 릴레이션의 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의하는 릴레이션의 논리적 구조입니다. 릴레이션 스키나는 데이터베이스 관리 시스템이 내부적으로 데이터 정의어를 이용해 정의하지만, 일반적으로는 다음과 같은 형태로 쉽게 표현합니다.

 

  • 릴레이션이름(속성이름1, 속성이름2, .... , 속성이름 n)

그림에서 릴레이션 스키마는 고객(고객아이디, 고객이름, 나이, 등급, 직업, 적립금)입니다. 릴레이션 스키마를 보면 릴레이션의 이름이 무엇이고, 어떤 속성들로 구성되어 있는지 전제 구조를 쉽게 파알할 수 있습니다.

 

9. 릴레이션 인스턴스

릴레이션 인스턴스는 어느 한 시점에 릴레이션에 존재하는 튜플들의 집합입니다. 릴레이션 인스턴스에 포함된 튜플은 릴레이션 스키마에 정의하는 각 속성에 대응하는 실제값으로 구성되어 있습니다. 릴레이션 인스턴스를 보면 현재 릴레이션의 실제 내용을 쉽게 파악할 수 있습니다. DBMS 관리 시스템이 내부적으로 데이터 조작어를 이용해 릴레이션 인스턴스의 튜플을 검색하거나 새로운 튜플 삽입과 기존 튜플 삭제 및 수정을 수행합니다.