인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

취업깡패님의 프로필 이미지
취업깡패

작성한 질문수

기출로 대비하는 개발자 전공면접 [CS 완전정복]

Q. Primary key가 무엇인지 설명해 주세요.

기본키를 table당 1개만 지정해야한다고 하셨는데

작성

·

259

1

2개 이상 지정한다면 어떤 문제가 발생할 수 있을까요? (composite key를 의미하는 것은 아닙니다)

답변 1

1

개발남노씨님의 프로필 이미지
개발남노씨
지식공유자

Primary key는 Clustering Index와 연관이 있습니다.

 

clustering index: 특정 column을 기본키(primary key)로 지정하면 자동으로 클러스터형 인덱스가 생성되고, 해당 column 기준으로 정렬이 됩니다. Table 자체가 정렬된 하나의 index인 것입니다. 마치 영어사전처럼 책의 내용 자체가 정렬된 것을 떠올리면 쉽습니다.

 

B+Tree를 설명드릴 때 

이렇게 데이터가 저장된다고 설명드렸습니다. 보조 인덱스를 생성하면 이런 자료구조를 새로 만들어서 빠르게 찾도록 도와줍니다. 클러스터링 인덱스의 경우에는 primary key로 설정하면 DB 데이터 자체가 하나의 B+Tree가 되는 것이라고 생각하시면 됩니다. 위의 설명처럼 데이터 자체가 정렬된 영어사전을 떠올리시면 좋아요

 

영어사전은 알파벳 순서(primary key)로 정렬이 되어있죠. 데이터가 저장될 때부터 primary key를 기준으로 정렬된 상태로 되어 있습니다. 그런데, 여기서 단어의 사용 횟수라는 column을 또 하나의 primary key로 사용한다고 해보겠습니다. 그러면 어떤것을 기준으로 영어사전의 순서를 정할 수 있을까요? 이런식으로 primary key가 두 개 이상으로 지정되면 저장하는 것 자체에서 부터 문제가 생길 수 있습니다.

취업깡패님의 프로필 이미지
취업깡패

작성한 질문수

질문하기