외래키2 외래키는 왜 필요할까? 나누어진 테이블을 다시 연결하는 방법 회원정보 화면에는 이름과 연락처가 보이고, 주문내역 화면에는 상품명과 결제금액이 나타난다. 사용자는 두 화면을 오가면서도 주문한 사람과 주문 기록이 당연히 연결되어 있다고 여긴다. 하지만 데이터베이스 안에서는 고객과 주문을 한 표에 모두 적어 두지 않는 경우가 많다.고객 정보는 고객 테이블에, 주문은 주문 테이블에 나누어 저장한다. 한 고객이 주문을 열 번 했다면 고객의 이름과 주소를 열 번 반복해서 기록하는 대신, 주문마다 고객을 가리키는 값만 남긴다. 표는 떨어져 있지만 정보의 관계는 끊어지지 않는다.앞선 글에서 살펴본 기본키가 자기 테이블 안의 한 행을 구별하는 이름표라면, 외래키는 다른 테이블에 있는 그 이름표를 가져와 관계를 표시하는 값이다. 관계형 데이터베이스가 여러 표를 따로 보관하면서도 하.. 2026. 9. 3. 기본키는 왜 필요할까? 수많은 행 가운데 하나를 구별하는 방법 회사에 같은 이름을 가진 사람이 두 명 있다고 해보자. 부서까지 다르면 사람은 문맥을 보고 어느 김민수인지 대개 알아차린다. 그러나 데이터베이스는 눈치로 판단하지 않는다. 이름과 부서, 입사일처럼 저장된 값만 보고 기록을 구분해야 한다.문제는 이름이 같을 수 있고, 부서가 바뀔 수도 있으며, 입사일마저 우연히 겹칠 수 있다는 데 있다. 이름을 잘못 골라 전화번호를 고치면 엉뚱한 사람의 정보가 바뀐다. 한 행을 삭제하려다가 같은 이름을 가진 다른 사람의 기록까지 지워질 수도 있다.앞선 글에서는 데이터가 행과 열로 나뉘어 저장되는 이유를 살펴보았다. 열은 어떤 정보를 담을지 정하고, 행은 한 사람이나 한 상품처럼 하나의 대상을 기록한다. 표의 모양을 갖추었다고 해서 각 행이 저절로 구별되는 것은 아니다. 수.. 2026. 8. 30. 이전 1 다음