티스토리 뷰

728x90

현실세계의 열쇠와 비슷한 개념입니다.

출처 pixabay

어떤 자물쇠를 열려면 거기에 맞는 열쇠가 필요하듯이

어떤 데이터를 찾으려면 거기에 맞는 키가 있어야 됩니다.

 

우리 주변의 여러가지 상황 / 개념을 떠올리면서 학습하면 금방 이해할 수 있습니다.

 

 

여러 사람이 한 장소에 모여 있습니다.

한 사람을 부르려고 합니다.

뭐라고 불러야 될까요? 이름? 옷차림? 성별?

혹시라도 이름이 같고 옷차림도 같으며 성별도 같다면??

 

이런 경우 그 사람을 지칭하는 고유한 값이 있어야 됩니다.

 

일반적으로 알려진 고유 값인 주민등록번호, 전화번호, 이메일을 사용하거나

모인 장소에서 따로 발급해준 번호표 등을 이용하면 됩니다.

 

또는

집 주소와 이름, 출신학교와 키와 몸무게, 이름과 나이와 성별 등

이렇게 여러가지 정보를 조합해서 찾아내는 방법도 있습니다.

 

어떤 방법을 사용하든 딱 하나의 존재를 찾아낼 수 있으면 됩니다.

 

이 내용이 데이터를 다룰 때 가장 중요한 기본키에 대한 개념입니다.

 

기본키를 포함해서

데이터베이스 세상에서는 5개의 Key로 분류됩니다.

1. 기본키 Primary Key

2. 외래키 Foreign Key

3. 대체키 Alternate Key

4. 후보키 Candidate Key

5. 수퍼키 Super Key

 

데이터를 찾기 위해 당장 사용되는 내용을 기본키

 

당장 기본키로 사용하진 않았지만 언제든 대신해서 사용할 수 있는 대체키

 

기본키와 대체키를 모두 합쳐서 후보키

 

여러개의 정보를 묶어서 기본키로 사용하면 수퍼키 

 

이렇게 기본키로부터 파생된 나머지 키들이 있습니다.

 

 

이제 남은 건 외래키인데

외래키는 현재 보고 있는 데이터만으로는 설명이 되질 않습니다.

현재 데이터의 키를 다른 데이터에서 사용할 때 설명하는 것이 가능합니다.

 

위의 사람들 중 기본키를 이용해서 누군가를 찾았습니다.

찾은 사람 A가 타고온 자동차를 찾고 싶습니다.

주차장의 자동차 목록 중 A의 이름, 전화번호, 이메일 등 일치되는 정보를 찾습니다.

전화번호라고 가정합니다.

 

이때 자동차 목록에서 자동차를 찾을 때 사용된 정보, 즉 전화번호외래키라고 합니다.

모인 사람들 목록에서 전화번호는 기본키라고 하고요.

 

5개의 키 중에서 반드시 기억하고 있어야 하는 키는

기본키와 외래키 2개 입니다.

 

 

실제 데이터베이스에 적용된 키의 모습입니다.

HeidiSQL 이라는 프로그램에서 살펴본 DB의 모습

dept 데이터 집합의 기본키가

emp 데이터 집합에서 외래키로 사용되고 있습니다.

 

프로그램 마다 조금 차이는 나지만

보통 기본키는 노란색과 빨간색

외래키는 녹색과 파란색 계열로 표현합니다.