릴레이션이란? (튜플/애트리뷰트/도메인)
릴레이션(Relation) = 행과 열로 이루어진 테이블이라고 생각하면 됩니다. 엑셀 시트를 떠올리면 쉽습니다.
[애트리뷰트] (열, 컬럼)
이름 나이 부서
튜플 → 철수 28 개발팀
(행) 영희 31 기획팀- 튜플(Tuple) = 행 하나. 파일로 치면 레코드 한 줄입니다.
- 애트리뷰트(Attribute) = 열 하나. 데이터베이스를 구성하는 가장 작은 논리적 단위입니다.
- 도메인(Domain) = 하나의 애트리뷰트가 가질 수 있는 값의 타입과 범위입니다. 예를 들어 "나이" 컬럼의 도메인은 "0 이상의 정수"입니다. DB는 이 도메인을 기준으로 잘못된 값(예: 나이 = "가나다")이 들어오는 걸 막습니다.
숫자로 세는 용어도 따로 있습니다.
| 용어 | 의미 | 엑셀로 치면 |
|---|---|---|
| 카디널리티(Cardinality) | 튜플의 수 | 행의 개수 |
| 디그리 / 차수(Degree) | 애트리뷰트의 수 | 열의 개수 |
릴레이션은 데이터가 계속 쌓이고 지워지므로 시간에 따라 내용이 바뀝니다. 그래서 릴레이션은 두 가지로 나눠 이야기합니다.
- 릴레이션 스키마: "이 테이블은 어떤 열들로 이루어져 있는가" (틀, 설계도)
- 릴레이션 인스턴스: 그 틀에 실제로 채워진 데이터 (지금 이 순간의 내용물)
그 외에 릴레이션이 지켜야 할 규칙도 몇 가지 있습니다: 같은 행이 두 번 들어올 수 없고, 행들 사이에 순서가 없으며, 한 칸에는 더 쪼갤 수 없는 값(원자값) 하나만 들어갑니다. 이 "한 칸에 값 하나" 규칙은 나중에 정규화(1정규형)에서 다시 나옵니다.
참고: 개인 Notion 학습 노트