작성
·
29
답변 2
0
안녕하세요. 문의하신 내용에 대해서 아래와 같이 답변드릴게요.
문제는 "릴레이션에 대한 설명으로 가장 적절하지 않은 것을" 찾는 것입니다.
해당 릴레이션의 데이터를 보면 "고객 주문정보"로 판단할 수 있어요. 일반적으로 고객은 여러 건의 주문을 발생시킬 수 있기 때문에 고객id 만으로는 기본키로 사용하기는 어렵습니다. 따라서 보기 1번 고객 id 가 기본키가 될 수 없다라는 문장은 적절하다고 볼수 있습니다.
물론 문제 자체에 상세한 제약 조건을 제시한 것이 아니기 때문에, 고객id도 기본키가 될 수 있다라고 이의를 제기할 수도 있습니다. 하지만, 문제 자체가 "가장 적절하지 않은 것은"을 찾는 것입니다. 이렇게 문제가 나올 경우, 보기 중에서 가장 적절하지 않은 것을 선택하는 게 더 유리합니다.
날씨가 많이 덥네요. 공부하시느라 힘들겠습니다. 🙂 힘내시구요. 꼭 합격하시길 바랄게요. 감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 박다휘님.
질문해주신 릴레이션에서 “고객ID가 기본키가 될 수 없다”는 문제에 대한 이해를 돕고자 전체적인 개념을 설명드리겠습니다.
기본키(Primary Key)는 데이터베이스 테이블에서 레코드를 고유하게 식별할 수 있는 컬럼 또는 컬럼 세트를 의미합니다. 기본키의 중요한 특성은 고유성(unique)과 비어있을 수 없는 것(not null)입니다.
고객ID가 기본키가 될 수 없다고 하는 이유는, 질문에서 언급하셨듯이 ‘주문(Order)‘이라는 테이블에서 고객ID가 중복으로 존재할 수 있기 때문입니다. 주문 테이블은 하나의 고객이 여러 번의 주문을 할 수 있기 때문에, 고객ID만을 기본키로 설정할 경우 한 고객이 여러 주문을 할 때 중복되어 기본키의 고유성 조건을 만족하지 못하게 됩니다.
이런 경우, 주문번호(OrderID)와 같이 주문을 고유하게 식별할 수 있는 정보가 기본키로 설정되는 것이 이상적입니다.
비슷한 주제에 대해 더 많은 정보를 얻을 수 있는 관련 답변을 참고해보시면 좋을 것 같습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.