데이터베이스 설계를 위해 반드시 이해해야 할 개념 중의 하나가 기본키(primary key)와 외래키(foreign key)이다. DBMS를 구현해야 하는 입장에서 보면 중복된 튜플이 삽입되는지를 확인하는 것은 쉬운 일이 아님 1번 튜플이 삽입되는 경우는 이미 존재하는 모든 튜플에 대해 모든 컬럼이 같은지를 일일이 검사해보면 중복 여부를 알 수 있지만, 튜플 수가 수십만 개에 달하는 경우는 비교 시간이 매우 오래 걸리기 때문에 현실적인 방법이 아님 2번 튜플의 경우는 의미적 중복이지만 데이터의 의미를 이해할 수 없는 DBMS로서는 2번 튜플이 의미적으로 중복인지를 알아낼 방법이 없음 후보키 (candidate key)란 테이블에서 각 튜플을 구별하는 데 기준이 되는 하나 혹은 그 이상의 컬럼들의 집합 <..