💡 핵심 인사이트
키 무결성(Key Integrity)은 릴레이션(테이블) 안에 존재하는 모든 행(튜플)이 각자를 남들과 확실하게 구별 짓기 위해 '반드시 하나 이상의 키(Key)'를 무조건 가져야 한다는 기본적인 데이터베이스 설계 원칙입니다.
개체 무결성을 포괄하는 더 넓은 의미의 근본 룰입니다.
Ⅰ. 키 무결성의 본질적 개념
데이터베이스에서 정보란 모름지기 '원할 때 정확히 찾아낼 수 있어야' 가치가 있습니다. 만약 테이블에 똑같은 정보(예: 이름, 나이, 부서가 완벽히 똑같은 행 2개)가 있다면, 그중 하나를 지우고 싶어도 어떤 것을 지워야 할지 컴퓨터는 판단할 수 없습니다(식별 불능).
따라서 테이블을 설계할 때는 그 행을 유일하게 식별할 수 있는 식별자, 즉 '키(Key)' 집합이 적어도 하나는 존재하도록 설계해야 한다는 구조적 철학이 바로 키 무결성입니다.
Ⅱ. 키 무결성이 강제하는 것들
이 원칙이 실무에서 데이터베이스의 뼈대(DDL)에 적용되면 다음과 같은 형태로 나타납니다.
- 테이블당 최소 1개의 식별자 보장
- 릴레이션은 수학적 '집합'이므로 중복된 원소(행)를 허용하지 않습니다. 이를 보장하기 위해 각 릴레이션은 기본 키(Primary Key) 역할을 할 수 있는 속성 조합을 반드시 품고 있어야 합니다.
- 키 값의 유일성(UNIQUE) 유지
- 키로 지정된 속성의 값은 튜플마다 고유해야 합니다. 삽입(INSERT)이나 수정(UPDATE) 시 이미 존재하는 키값과 똑같은 값을 밀어 넣으면, 키 무결성 원칙이 훼손되므로 DBMS가 이를 강력히 거부(에러 발생)합니다.
- 관계의 지렛대 역할
- 키 무결성이 지켜져야만, 이 식별표(PK)를 믿고 다른 테이블에서 외래 키(FK)로 연결(Join)하는 '관계형(Relational)' 데이터베이스가 비로소 성립될 수 있습니다. 식별표가 꼬이면 다른 테이블과의 연결망 전체가 붕괴됩니다.
Ⅲ. 개체 무결성(Entity Integrity)과의 미세한 차이
비슷해 보이지만 정보처리기사 등 학술적 관점에서는 명확히 구분해야 합니다.
- 키 무결성 (Key Integrity): "모든 튜플은 서로 달라야 하며, 이를 위해 유일한 식별자(키)가 테이블에 '존재'해야 한다"는 보다 원론적이고 논리적인 원칙입니다. (중복 불가에 초점).
- 개체 무결성 (Entity Integrity): 키 무결성을 구현하기 위해 뽑아놓은 '기본 키(PK)' 컬럼에, **"절대 비어있는 값(NULL)을 넣어서는 안 된다"**는 좀 더 구체적이고 실천적인 제약 조건입니다. (NULL 불가에 초점).
📢 섹션 요약 비유: 키 무결성은 대한민국 헌법에 명시된 **"모든 국민은 남들과 구별되는 고유한 식별 번호를 가져야 한다"**는 근본적인 국가 설계 이념입니다. 개체 무결성은 그 이념에 따라 동사무소 직원이 실제로 일을 할 때 적용하는 **"주민번호 칸을 공란(NULL)으로 비워둔 채 출생신고를 받으면 안 된다"**는 구체적인 업무 수칙입니다.