본문 바로가기
SQLD

식별자 관계와 비식별자 관계 오답

by Hyeon_ 2024. 3. 3.

29. 프로젝트를 전개할 때는 식별자관계와 비식별자관계를 선택하여 연결해야 하는 높은 수준의 데이터 모델링 기술이 필요하다. 다음 중 비식별자관계를 선택하는 기준으로 가장 부적절한 것은?

  1. 관계의 강약을 분석하여 상호간에 연관성이 약할 경우 비식별자관계를 고려한다.
  2. 자식테이블에서 독립적인 Primary Key 구조를 가지기 원할 때 비식별자관계를 고려한다.
  3. 모든 관계가 식별자 관계로 연결되면 SQL Where절에서 비교하는 항목이 증가되어 조인에 참여하는 테이블에 따라 SQL문장이 길어져 SQL문의 복잡성이 증가되는 것을 방지하기 위해 비식별자관계를 고려한다.
  4. 부모엔티티의 주식별자를 자식엔티티에서 받아 손자엔티티까지 계속 흘려보내기 위해 비식별자관계를 고려한다.

 

정답: 4번

부모 엔티티의 주식별자를 자식 엔티티에서 받아 손자엔티티까지 계속 흘려보낸다는 것은 부모가 가진 속성을 다음 세대가 계속 가져간다는 것을 의미한다. 그렇기 때문에 부모로부터 받은 식별자를 자식 엔티티의 주식별자로 계속 이용하는 식별자관계를 고려하는 것이 좋다.

 

30. 다음 중 비식별자 관계로 연결하는 것을 고려해야 하는 경우로 가장 부적절한 것은?

  1. 부모엔티티에 참조값이 없어도 자식엔티티의 인스턴스가 생성될 수 있는 경우
  2. 부모엔티티의 인스턴스가 자식 엔티티와 같이 소멸되는 경우
  3. 여러 개의 엔티티를 하나로 통합하면서 각각의 엔티티가 갖고 있던 여러 개의 개별 관계가 통합되는 경우
  4. 자식쪽 엔티티의 주식별자를 부모엔티티와는 별도로 생성하는 것이 더 유리하다고 판단하는 경우

 

정답: 2번

비식별자관계는 부모로부터 받았지만 자식 엔티티가 주식별자로 사용하지 않고 일반 속성으로 사용하는 것을 말한다. 
부모 엔티티의 인스턴스가 자식 엔티티와 같이 소멸되는 경우에는 그 속성을 분리해서 사용할 필요가 없으므로 비식별자 관계가 아닌 식별자 관계로 연결하는 것이 좋다.

 

 

해당 포스트의 예제 문제들은 SQL 자격검정 실전문제를 출처로 하고 있습니다.