CS/데이터베이스(Database)

릴레이션(Relation)

배씌 2025. 3. 31. 15:02

릴레이션(Relation)은 관계형 데이터베이스(RDB)에서 데이터를 구조적으로 표현하는 기본 단위이다. 릴레이션은 (릴레이션 스키마 + 릴레이션 인스턴스) 로 이루어진다.

 

릴레이션 스키마(Relation Schema) 란?

데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 의미한다. 

릴레이션 스키마는 릴레이션 이름, 각 속성(Attribute)의 이름, 각 속성의 도메인(Domain)을 명세한다. 도메인은 속성의 값, 타입 제약조건 등에 대한 값의 범위로, 릴레이션 스키마에서는 도메인 이름 으로 명세한다.

 

한마디로 테이블의 설계도라고 보면 된다.

 

- 릴레이션 스키마 명세 (예시)

학생(학번: 문자열, 이름: 문자열, 학과: 문자열, 학년: 정수)
  • 학생 : 릴레이션(테이블) 이름
  • (학번, 이름, 학과, 학년) : 도메인 -> 필드, 열(Column), 또는 속성(Attribute) 들의 이름
  • (문자열, 정수) : 도메인 이름

릴레이션 인스턴스(Relation Instance)

릴레이션 스키마에 따라 실제로 저장된 데이터의 집합을 말한다.

쉽게 말하면, 테이블에 저장된 레코드(튜플) 의 집합이라고 할 수 있다.

 

- 튜플

  • 릴레이션 스키마에서 정의된 각 속성으로 정의되며, 하나의 데이터 묶음
  • 각 튜플의 하나의 행으로 구성
- 카디널리티(Cardinality) : 릴레이션 인스턴스의 튜플 수 (행의 개수)
- 차수(Degree) : 릴레이션 인스턴스의 속성 수 (열의 개수)

 

- 릴레이션 인스턴스 예시

학번 이름 학과 학년
1912345 김XX 컴퓨터공학과 4
2012345 박XX 전자공학과 3

 

  • 카디널리티(Cardinality) : 2
  • 차수(Degree) : 4

릴레이션 인스턴스의 값들은 추가되거나, 삭제될 수 있다. (릴레이션 스키마 값은 그대로)


도메인(Domain)

하나의 속성이 가질 수 있는 동일한 유형의 원자값들의 집합. 릴레이션 스키마에서는 각 속성이 가질 수 있는 값의 범위를 의미한다. 데이터 타입과 허용되는 값의 규칙을 정의함.

 

- 예시

학생(학번: 문자열, 이름: 문자열, 학과: 문자열, 학년: 정수)

 

위 릴레이션 스키마에서, 

  • 학번 : 숫자로 이루어진 6자리 정수 (예: 201212)
  • 이름 : 길이 10 이하의 문자열 (예: 홍길동)
  • 학과 : 지정된 학과 명 중 하나
  • 학년 : 1 ~ 4 사이 정수 중 하나

위 처럼, 각 속성의 값은 정의된 도메인의 값 만 허용된다. -> 데이터 무결성 보장


관계 데이터베이스(Relational Database)

여러개의 릴레이션으로 구성된 데이터베이스이다. 릴레이션 간의 관계를 통해 데이터가 연결되어, SQL을 사용해 데이터를 관리한다.

 

- 예시

1. 학생 테이블

학번 이름 학과
191234 김XX 컴퓨터공학과
201234 박XX 전자공학과

 

2. 수강 과목 테이블

학번 과목명 교수
191234 데이터베이스 이XX
201234 Java 최XX

 

두 테이블은 학번을 기준으로 연결되어 있고, SQL을 통해 두 테이블을 관리할 수 있다. 이처럼 관계 데이터베이스에서는 외래키(foreign key)를 사용해 데이터를 효과적으로 관리한다.