4.4
칼럼의 제약조건: 기본 키
4.4.1 기본 키란
기본 키(primary key)는 한 테이블에서 유일한 값이 들어가야 하는 칼럼에 지정하는 제약조건입니다. 기본 키로 설정된 칼럼에는 같은 테이블에서 동일한 값이 들어갈 수 없으며, 중복 값이 입력되면 오류가 나고 데이터 입력 작업이 모두 취소됩니다.
그런데 기본 키는 왜 필요할까요? 예를 들어 보죠. highschool_students 테이블에 학생 정보를 입력하는데, 해당 학교에 홍길동이라는 학생이 동시에 2명 입학했다고 합시다. 같이 입학했으니 둘은 나이도 같고 이름도 같습니다. 그렇다면 2명의 홍길동 중 A동에 사는 홍길동과 B동에 사는 홍길동이 누구인지 구별할 수 있을까요? 이름만 보고는 알 수 없습니다. 따라서 이름 외에 두 학생을 식별할 수 있는 정보가 필요합니다. highschool_students 테이블에서는 학번이 들어 있는 student_no 칼럼이 이 역할을 합니다. 이름이 같다고 하더라도 학번은 각 학생에게 부여되는 고유하며 유일한 번호입니다.
이렇게 테이블에서 한 로우(1명의 학생)를 식별할 수 있는 칼럼(student_no)을 기본 키로 만들고 칼럼에 유일한 번호를 입력하면 학생을 구별할 수 있습니다. A동 사는 홍길동은 1001번, B동 사는 홍길동은 1002번이라고 학번을 입력하면 됩니다. 학생 정보를 입력할 당시에는 반 편성이 되지 않았더라도 나중에 A동 홍길동은 1반, B동 홍길동은 2반으로 배정된다면 1001번은 1반, 1002번은 2반으로 데이터를 수정하면 됩니다. 그런데 학번이 없다면 2명의 홍길동을 구별해 반을 배정할 수 없겠죠.