💡 핵심 인사이트
튜플(Tuple)은 릴레이션(테이블)에서 실제 데이터 값들이 모여 구성된 **가로 방향의 줄(행, Row)**을 의미합니다.
파일 시스템의 '레코드(Record)'와 같은 의미이며, 한 릴레이션 안에 있는 **튜플의 총개수를 카디널리티(Cardinality)**라고 부릅니다.
Ⅰ. 튜플(Tuple)의 개념
튜플은 릴레이션을 구성하는 각각의 행(가로줄)입니다. 속성(열)들이 모여서 하나의 구체적인 개체(예: '김철수'라는 사람 1명)에 대한 완벽한 정보 덩어리를 만들어낸 결과물입니다.
[ 학생 릴레이션 ]
학번 이름 전공
─────────────────────────────────
2023001 김철수 컴공 ◀── 튜플 1 (Tuple 1)
2023002 이영희 경영 ◀── 튜플 2 (Tuple 2)
Ⅱ. 튜플의 주요 특징
- 유일성 (Uniqueness): 한 릴레이션 안에 완벽하게 똑같은 튜플(모든 속성값이 동일한 행)은 절대 2개가 존재할 수 없습니다. 이를 보장하기 위해 기본키(Primary Key)를 사용합니다.
- 무순서성 (No Ordering): 튜플들이 위아래로 쌓여있는 순서는 의미가 없습니다. 김철수가 1번째 줄에 있든 10번째 줄에 있든 데이터의 본질은 변하지 않습니다. (※ 실제 하드디스크에 저장될 때는 순서가 생기지만, 논리적인 관계형 모델 이론에서는 순서가 없다고 정의합니다.)
- 동적 변화: 새로운 신입생이 들어오면 튜플이 추가되고(INSERT), 졸업하면 삭제(DELETE)되므로 튜플의 상태는 시간에 따라 시시각각 변합니다.
Ⅲ. 카디널리티 (Cardinality)
- 정의: 특정 순간에 하나의 릴레이션 안에 들어있는 튜플(행)의 총개수를 뜻합니다. 실무에서는 흔히 '로우(Row) 수' 또는 '건수'라고 부릅니다.
- 특징:
- 위 [학생 릴레이션]의 현재 카디널리티는 2입니다.
- 데이터가 쉴 새 없이 추가되고 삭제되므로, 차수(Degree)가 정적인 것과 반대로 **카디널리티는 매우 동적(Dynamic)**으로 계속 변합니다.
- 방금 테이블을 만들어서 데이터가 한 건도 없다면? 유효한 릴레이션이라도 튜플은 없을 수 있으므로 카디널리티는 0이 될 수 있습니다. ($Cardinality \ge 0$)
차수와 카디널리티 암기 팁 (시험 단골)
- 차수 (Degree) = 열(Column)의 수 = 속성(Attribute)의 수 = 잘 안 변함.
- 카디널리티 (Cardinality) = 행(Row)의 수 = 튜플(Tuple)의 수 = 맨날 변함.
📢 섹션 요약 비유: 튜플(Tuple)은 출석부(릴레이션)에 적혀있는 **학생 한 명의 '가로줄 개인정보 전체'**를 뜻합니다. 그리고 오늘 이 출석부에 적힌 **학생들의 총인원수(머릿수)를 세는 것이 바로 카디널리티(Cardinality)**입니다. 전학을 가거나 오면 학생 수는 매일매일 달라집니다(동적).