💡 개요
오늘은 데이터베이스의 테이블에 사용되는 복합 키에 대해 정리 해보자.
🛠️ 복합 키
복합 키란 둘 이상의 컬럼을 조합해 하나의 기본 키로 사용하는 것이다.
역시 말로만 설명하면 어려우니까 예시를 하나 보자.
‘수강신청’ 이라는 테이블이 있다.
모든 학생들은 한 과목을 한 번만 신청할 수 있다고 가정하자. (재수강은 없다고 가정함)
만약 복합 키를 사용하지 않는 경우 한 행의 데이터에 삽입하고자 하는 student_id와 course_id가 일치하는 컬럼이 있는 지 매번 확인해야 한다.
하지만 복합 키를 사용한다면 이렇게 불필요한 조회 과정을 생략할 수 있다.
왜냐하면 하나의 테이블에는 중복된 기본 키가 존재할 수 없기 때문이다!
student_id | course_id | 등록일 |
1001 | CS101 | 2024-03-01 |
1002 | CS101 | 2024-03-02 |
1001 | CS102 | 2024-03-03 |
이와 같은 테이블이 있을 때, student_id와 course_id를 조합해서 복합 키로 사용하면 된다.
위 처럼 복합 키를 사용한다면 단일 컬럼으로 유일한 값을 만들 수 없을 때 유용하게 사용된다.
하지만 주의할 점은 기존의 단일 컬럼을 사용한 기본 키보다 인덱싱에 드는 비용이 증가하기 때문에 성능이 더 낮아질 수 있다.
'개발 일기' 카테고리의 다른 글
[개발 일기] 2025.04.20 - Docker 포트 번호가 2개? (0) | 2025.04.20 |
---|---|
[개발 일기] 2025.04.19 - 테이블의 기본키로 VARCHAR? (0) | 2025.04.19 |
[개발 일기] 2025.04.17 - Cookie 요소 (0) | 2025.04.17 |
[개발 일기] 2025.04.16 - 클래스가 final로 선언되면 내부 필드도 변경이 안될까? (0) | 2025.04.16 |
[개발 일기] 2025.04.15 - 자바 vector (1) | 2025.04.15 |