💡 핵심 인사이트
일반적인 엑셀 표(스프레드시트)와 데이터베이스의 릴레이션(Relation)을 엄격하게 구분 짓는 기준이 바로 이 4대 수학적 규칙입니다.
튜플의 유일성, 튜플의 무순서성, 속성의 무순서성, 속성값의 원자성은 관계형 모델이 논리적인 결함 없이 완벽하게 작동하도록 만드는 절대 법비입니다.
Ⅰ. 릴레이션을 규정하는 4대 기본 특징 (시험 필수)
데이터의 덩어리가 Codd 박사가 정의한 완벽한 릴레이션(테이블)으로 인정받기 위해서는 다음의 4가지 제약 조건을 모두 만족해야 합니다.
1. 튜플의 유일성 (Uniqueness of Tuples)
- 내용: 한 릴레이션에 포함된 튜플(행)들은 모두 다 달라야 하며, 토씨 하나 안 틀리고 완전히 똑같은 중복 튜플은 단 2개도 존재할 수 없습니다.
- 이유: 수학적 '집합(Set)'에는 동일한 원소가 중복될 수 없다는 집합론적 원리 때문입니다.
- 구현: 이를 시스템적으로 강제하기 위해 테이블마다 고유한 주민번호 같은 **기본키(Primary Key)**를 설정하여 중복 삽입을 막습니다.
2. 튜플의 무순서성 (No Ordering of Tuples)
- 내용: 튜플 사이에는 논리적인 위아래 순서가 없습니다.
- 이유: 데이터가 입력된 순서대로 보이든, 이름을 가나다순으로 정렬해서 보이든 정보의 본질은 똑같기 때문입니다.
1등: 김철수, 2등: 이영희라는 순서 정보가 필요하다면, 그 순서를 저장할 별도의 속성(컬럼)을 만들어야지 행의 물리적 위치에 의존해서는 안 됩니다.
3. 속성의 무순서성 (No Ordering of Attributes)
- 내용: 스키마를 구성하는 속성(열)들 사이에도 좌우 순서가 없습니다.
- 이유: '학번, 이름, 학과' 순으로 열이 나열된 테이블이나, '이름, 학과, 학번' 순으로 나열된 테이블은 수학적으로 완전히 동일한 릴레이션으로 취급됩니다.
4. 속성값의 원자성 (Atomicity of Attribute Values)
- 내용: 모든 속성값(하나의 셀에 들어가는 데이터)은 논리적으로 **더 이상 쪼갤 수 없는 단일 값(Atomic Value)**이어야 합니다.
- 이유: 검색과 정렬을 명확하게 하기 위해서입니다.
- 위반 사례: '취미' 컬럼에
독서, 영화, 등산세 가지를 쉼표로 우겨 넣는 것은 다중값(Multivalued) 속성으로 원자성을 위배한 것입니다. (1정규형 위반) 이런 경우 행을 여러 개로 쪼개거나 별도의 취미 테이블을 분리해야 합니다.
Ⅱ. 요약 및 실무와의 차이점
- 이론적으로 릴레이션은 '집합'이므로 위의 규칙을 엄격히 지킵니다.
- 하지만 실무에서 쓰이는 SQL 엔진(Oracle, MySQL 등)은 성능이나 편의를 위해 의도적으로 **중복 튜플을 임시 허용(Multi-set)**하기도 하며,
SELECT시ORDER BY를 쓰지 않으면 기본적으로 입력된 물리적 순서대로 출력해 주는 느슨한 특징을 가집니다.
📢 섹션 요약 비유: 릴레이션은 완벽히 통제되는 구슬 상자입니다. 구슬들(튜플)이 상자 안에서 어떻게 굴러다니든(무순서성), 완벽히 똑같이 생긴 구슬은 절대 2개가 있을 수 없으며(유일성), 하나의 구슬 안에는 무조건 한 가지 색깔의 염료(원자성)만 칠해져 있어야 하는 엄격한 품질 관리 규칙입니다.