Page 14 -
P. 14
한 테이블 전체로 보면 기본 키 컬럼에는 유일한(unique)한 값이 들어갑니다.
테이블에 데이터가 100건 있다고 한다면, 기본 키의 유일한 값도 100개인 것
이죠. 이런 특성 때문에 키 컬럼에는 보통 일련번호 형태의 숫자를 사용하
는 경우가 많습니다. 참고로 이 책에서 사용할 오라클 RDBMS에서는 시퀀스
(sequence)라는 별도의 데이터베이스 객체를 사용해 키 컬럼에 값을 넣는 것이
일반적입니다.
그럼 키는 언제 사용할까요? 특정 데이터를 수정하거나 삭제할 때 사용합니다.
5명의 홍길동이 각자 유일한 키 값을 가지고 있다면, 그 키 값을 이용해 원하는
홍길동의 데이터만 수정할 수 있죠. 5명 중 2명이 서로 이웃이라고 해도 키 값
을 이용해 이 2명을 구별해낼 수 있습니다. 이런 일이 실제로는 없겠지만, 이
웃이었던 2명의 홍길동이 같은 날 이사를 갔는데 하필이면 같은 동네로 이사를
가서 또 이웃이 됐다고 하더라도 키 값만 있으면 문제 없이 2명의 주소를 구분
해 수정할 수 있습니다. 반면 이름만으로 검색해 처리한다면 홍길동 5명의 데
이터가 모두 수정되거나 삭제되겠죠.
한 테이블에서 유일한 식별자 역할을 하는 키는 테이블 간 관계를 맺을 때도 사
용됩니다. 그림 2-2에서 보듯이 회원정보와 주소 테이블은 주소 테이블에 있는
키 컬럼을 이용해 연결되어 있습니다. 이때 혼동하지 말아야 할 것이 1, 2, 3은
회원정보 테이블의 기본 키고, 연결고리가 되는 1001, 1002, 1003은 주소 테
이블의 기본 키입니다. 그렇다면 회원정보 테이블에 있는 주소 id 컬럼은 뭐라
고 부를까요? 이를 참조 키(foreign key)라고 합니다. 즉, 한 테이블에서 유일하
게 로우를 식별하는 키를 기본 키, 다른 테이블의 기본 키와 연결고리가 되는
키를 참조 키라고 합니다.
정리하면 회원정보 테이블에서 1, 2, 3 값의 컬럼은 기본 키, 1001, 1002, 1003
값의 컬럼은 참조 키입니다. 같은 1001, 1002, 1003을 갖고 있더라도 주소 테
이블에서는 이 컬럼이 기본 키가 되는 것이죠. 따라서 회원정보 테이블에서 참
조 키 컬럼은 중복 값을 가질 수 있습니다. 반면 주소 테이블에서 기본 키는 중
복 값을 가질 수 없죠. 왜냐하면 주소 테이블에서는 이 값들이 기본 키니까요.
26
누구나 쉽게 SQL(본문)최종.indd 26 2019-05-28 오후 5:08:45