lhywk 님의 블로그

[DB] 릴레이션, 스키마와 인스턴스, 관계 데이터 모델 본문

Database

[DB] 릴레이션, 스키마와 인스턴스, 관계 데이터 모델

lhywk 2026. 6. 18. 13:15

1. 릴레이션

릴레이션(Relation)은 관계형 데이터 모델에서 데이터를 표현하는 기본 단위로, 흔히 말하는 테이블(Table)과 같은 의미로 쓰인다. 릴레이션은 행과 열로 구성된 2차원 표 형태를 띠고 있으며, 하나의 릴레이션은 하나의 개체 집합에 대한 정보를 담는다. 예를 들어 학생들에 대한 정보를 담은 학생 릴레이션, 과목들에 대한 정보를 담은 과목 릴레이션처럼 각각의 릴레이션은 서로 다른 개체를 표현한다.

릴레이션을 구성하는 요소

릴레이션을 이해하기 위해서는 몇 가지 용어를 정확히 알아야 한다.

속성(Attribute)은 릴레이션의 열(Column)에 해당하며, 개체가 가지는 하나의 특성을 의미한다. 학생 릴레이션이라면 학번, 이름, 학년, 학과 같은 것들이 속성이 된다.

튜플(Tuple)은 릴레이션의 행(Row)에 해당하며, 하나의 개체에 대한 구체적인 정보를 의미한다. 학생 릴레이션에서 한 명의 학생에 대한 정보(학번, 이름, 학년, 학과 값을 모두 가진 한 행)가 하나의 튜플이다.

도메인(Domain)은 하나의 속성이 가질 수 있는 값들의 범위를 의미한다. 예를 들어 학년이라는 속성의 도메인은 1부터 4까지의 정수로 한정될 수 있다.

차수(Degree)는 릴레이션이 가지고 있는 속성의 개수를 의미한다.

카디널리티(Cardinality)는 릴레이션이 가지고 있는 튜플의 개수를 의미한다.

아래 그림은 학생 릴레이션을 예로 들어 이 용어들이 실제로 어디에 해당하는지를 보여준다.

2. 릴레이션 스키마와 인스턴스

릴레이션을 이야기할 때는 그 구조와 실제 데이터를 구분해서 이해해야 한다. 이 구분이 바로 릴레이션 스키마와 릴레이션 인스턴스이다.

릴레이션 스키마

릴레이션 스키마(Relation Schema)는 릴레이션의 논리적인 구조를 정의한 것이다. 릴레이션의 이름과 그것이 가지는 속성들의 이름, 그리고 각 속성의 도메인을 정의한 것을 의미한다. 흔히 다음과 같은 형태로 표현한다.

학생(학번, 이름, 학년, 학과)

이 표현은 학생이라는 이름의 릴레이션이 학번, 이름, 학년, 학과라는 네 개의 속성을 가진다는 구조를 정의하고 있다. 릴레이션 스키마는 데이터베이스가 운영되는 동안 자주 바뀌지 않는, 비교적 고정된 정보이다.

릴레이션 인스턴스

릴레이션 인스턴스(Relation Instance)는 어느 한 시점에 릴레이션에 실제로 저장되어 있는 튜플들의 집합을 의미한다. 같은 학생 릴레이션이라도 새로운 학생이 입학하거나 졸업하면 그 안에 들어있는 튜플들이 계속 바뀐다. 이렇게 특정 시점에 릴레이션 안에 들어있는 구체적인 데이터 값들의 모음이 바로 인스턴스이다.

정리하면, 릴레이션 스키마는 데이터의 구조를 정의하는 틀이고, 릴레이션 인스턴스는 그 틀 안에 채워지는 실제 데이터라고 이해하면 된다. 같은 스키마를 가진 릴레이션이라도 시간이 지나면서 인스턴스는 계속 달라질 수 있다.

3. 릴레이션의 특징

릴레이션은 일반적인 표나 스프레드시트와는 다른, 수학적으로 엄격하게 정의된 몇 가지 특징을 가진다.

튜플의 유일성

하나의 릴레이션 안에는 동일한 튜플이 두 개 이상 존재할 수 없다. 모든 튜플은 서로 달라야 하며, 이 유일성을 보장하기 위해 키(Key)라는 개념이 사용된다.

튜플의 무순서성

릴레이션을 구성하는 튜플들 사이에는 순서가 없다. 어떤 튜플이 위에 있고 어떤 튜플이 아래에 있는지는 중요하지 않으며, 튜플들의 순서를 바꿔도 릴레이션 자체의 의미는 변하지 않는다.

속성의 무순서성

튜플과 마찬가지로 속성들 사이에도 순서가 없다. 학번, 이름, 학년, 학과 순서로 나열하든, 이름, 학번, 학과, 학년 순서로 나열하든 릴레이션이 담고 있는 정보의 의미는 동일하다.

속성의 원자성

릴레이션의 모든 속성 값은 더 이상 분해할 수 없는 원자 값(Atomic Value)이어야 한다. 즉 하나의 속성에는 하나의 값만 들어갈 수 있고, 여러 개의 값을 동시에 가지는 다중 값이나 리스트 형태는 허용되지 않는다. 예를 들어 한 학생이 두 개의 전공을 가지고 있다고 해서 학과 속성에 두 개의 값을 함께 넣는 것은 허용되지 않는다.

속성의 명칭 유일성

하나의 릴레이션 안에서 속성의 이름은 모두 달라야 한다. 같은 이름을 가진 속성이 두 개 이상 존재할 수 없다.

4. 관계 데이터 모델

관계 데이터 모델(Relational Data Model)은 지금까지 설명한 릴레이션이라는 개념을 기반으로, 현실 세계의 데이터를 표현하고 다루는 전체적인 틀을 의미한다. 논리적 데이터 모델의 한 종류로, 오늘날 가장 널리 쓰이는 데이터 모델이다.

관계 데이터 모델의 핵심 아이디어

관계 데이터 모델의 핵심은 모든 데이터를 릴레이션, 즉 테이블 형태로만 표현한다는 점에 있다. 개체에 대한 정보뿐만 아니라 개체들 사이의 관계조차도 별도의 릴레이션으로 표현된다. 예를 들어 학생과 과목이라는 두 개체가 수강이라는 관계를 맺고 있다면, 이 수강 관계 역시 별도의 릴레이션으로 표현할 수 있다. 이처럼 모든 것을 동일한 형태(릴레이션)로 다루기 때문에 모델의 구조가 단순하고 일관적이다.

관계 데이터 모델의 수학적 기반

관계 데이터 모델은 수학의 집합 이론에 기반하고 있다. 릴레이션은 수학적으로 튜플들의 집합으로 정의되며, 이 집합에 대한 다양한 연산(합집합, 교집합, 차집합 등)을 통해 데이터를 조작할 수 있다. 이렇게 집합 연산에 기반해서 릴레이션을 다루는 이론적인 도구가 관계대수(Relational Algebra)이다.

관계 데이터 모델의 장점

관계 데이터 모델은 구조가 단순하기 때문에 사용자가 이해하기 쉽고, 수학적인 기반을 가지고 있어서 데이터 처리의 정확성을 보장하기 좋다. 또한 데이터의 추가, 삭제, 변경이 용이하고, SQL이라는 표준화된 언어를 통해 데이터를 다룰 수 있다는 점도 큰 장점이다. 이런 장점들 때문에 관계형 데이터베이스는 수십 년간 가장 보편적인 데이터베이스 형태로 자리잡아 왔다.