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

김예찬님의 프로필 이미지

작성한 질문수

데이터베이스 중급(Modeling)

도서대출관리 연습문제 1

서가,책 primary key 설정에 대한 질문입니다.

24.07.19 16:41 작성

·

65

0

로직 상 서가가 등록될 때 서고id가 null값이 되면 안되는 경우에서 서가 id와 서고 id를 둘 다 primary key를 주셨는데 서가 id만 primary key 주고 서고 id는 not null 조건으로 해서 테이블 설계 해도 되는지요? 만약 된다면 두 방식의 장단점도 설명해주시면 감사하겠습니다.

답변 1

0

인프런 AI 인턴님의 프로필 이미지

2024. 07. 21. 16:45

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

해당 질문에 대한 정보가 제공되지 않아 정확한 답변을 드릴 수 없습니다. 데이터 모델링 관련 질문은 특정 상황에 따라 다양한 접근 방법이 있을 수 있으며, 주어진 정보 내에 데이터베이스 모델링에 관한 구체적인 설명이나 가이드가 없습니다. 데이터 모델링 결정은 시스템의 요구사항, 데이터의 정규화, 성능 최적화 등을 고려하여 결정됩니다. 따라서 서가 ID만을 기본 키로 하고, 서고 ID에 NOT NULL 제약을 추가하는 방식이나 두 ID 모두를 복합 기본 키로 사용하는 방식 모두 특정 상황에 따라 적합할 수 있습니다.

복합 기본 키를 사용하는 방식은 두 데이터의 유일성을 함께 보장하며, 데이터 간의 관계를 명확하게 표현할 수 있는 장점이 있습니다. 반면, 관리가 복잡해질 수 있고, 다른 테이블과의 관계를 설정할 때 두 컬럼 모두를 사용해야 하는 경우가 생길 수 있습니다.

서가 ID만을 기본 키로 하고, 서고 ID에 NOT NULL 제약을 추가하는 방식은 구현이 상대적으로 단순하며, 서고 ID를 변경하는 것이 조금 더 용이할 수 있습니다. 하지만 이 경우에는 서고 ID의 유일성이나 서가 ID와 서고 ID 간의 유일한 관계를 데이터베이스 수준에서 보장하려면 추가적인 제약이 필요할 수 있습니다.

각 방식의 선택은 시스템의 요구 사항과 데이터 관리 방법, 성능 요구 사항 등을 종합적으로 고려하여 결정하는 것이 중요합니다.