Inflearn brand logo image

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

박다휘님의 프로필 이미지
박다휘

작성한 질문수

[2025] SQLD 문제가 어려운 당신을 위한 노랭이 176 문제 풀이

50번 - NULL 포함 컬럼 집계함수 결과 해석하기

실전 모의고사 1회 7번 질문

작성

·

29

0

릴레이션에서 적절하지 않은 걸 고르는 문젠데

고객ID가 기본키가 될 수 없다 -> 이 말이 왜 적절한건지 이해가 안가요 !ㅠㅠ.. id는 기본키가능하지 않나요??.. 아니면 주문에 대한 테이블이라 한 고객이 여러번 주문을 하면 id가 중복해서 나올 수 있기 때문에 그런걸까요??

답변 2

0

데이터코드랩님의 프로필 이미지
데이터코드랩
지식공유자

안녕하세요. 문의하신 내용에 대해서 아래와 같이 답변드릴게요.

 

문제는 "릴레이션에 대한 설명으로 가장 적절하지 않은 것을" 찾는 것입니다.

해당 릴레이션의 데이터를 보면 "고객 주문정보"로 판단할 수 있어요. 일반적으로 고객은 여러 건의 주문을 발생시킬 수 있기 때문에 고객id 만으로는 기본키로 사용하기는 어렵습니다. 따라서 보기 1번 고객 id 가 기본키가 될 수 없다라는 문장은 적절하다고 볼수 있습니다.

 

물론 문제 자체에 상세한 제약 조건을 제시한 것이 아니기 때문에, 고객id도 기본키가 될 수 있다라고 이의를 제기할 수도 있습니다. 하지만, 문제 자체가 "가장 적절하지 않은 것은"을 찾는 것입니다. 이렇게 문제가 나올 경우, 보기 중에서 가장 적절하지 않은 것을 선택하는 게 더 유리합니다.

 

날씨가 많이 덥네요. 공부하시느라 힘들겠습니다. 🙂 힘내시구요. 꼭 합격하시길 바랄게요. 감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. 박다휘님.

질문해주신 릴레이션에서 “고객ID가 기본키가 될 수 없다”는 문제에 대한 이해를 돕고자 전체적인 개념을 설명드리겠습니다.

기본키(Primary Key)는 데이터베이스 테이블에서 레코드를 고유하게 식별할 수 있는 컬럼 또는 컬럼 세트를 의미합니다. 기본키의 중요한 특성은 고유성(unique)과 비어있을 수 없는 것(not null)입니다.

고객ID가 기본키가 될 수 없다고 하는 이유는, 질문에서 언급하셨듯이 ‘주문(Order)‘이라는 테이블에서 고객ID가 중복으로 존재할 수 있기 때문입니다. 주문 테이블은 하나의 고객이 여러 번의 주문을 할 수 있기 때문에, 고객ID만을 기본키로 설정할 경우 한 고객이 여러 주문을 할 때 중복되어 기본키의 고유성 조건을 만족하지 못하게 됩니다.

이런 경우, 주문번호(OrderID)와 같이 주문을 고유하게 식별할 수 있는 정보가 기본키로 설정되는 것이 이상적입니다.

비슷한 주제에 대해 더 많은 정보를 얻을 수 있는 관련 답변을 참고해보시면 좋을 것 같습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

박다휘님의 프로필 이미지
박다휘

작성한 질문수

질문하기