강의

멘토링

로드맵

Inflearn brand logo image

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

xfx9g8rzg6님의 프로필 이미지
xfx9g8rzg6

작성한 질문수

[2025] 비전공자도 한 번에 합격하는 SQLD 올인원

단원정리문제 for 데이터모델과 SQL

단원 정리 문제(2) 중 6,7,8,12 질문

해결된 질문

작성

·

34

1

안녕하세요, 좋은 강의 감사드리며 단원 정리 문제 (ch1, part2) 중 일부 선지에 대한 이해를 위해 질문드립니다.

 

  1. 6번 'relation'의 참여도에 관한 설명으로 옳지 않은 것을 고르는 문제에서, 1번 선지 '관계는 최소 한 개 이상의 엔터티와 연결된다.'라는 표현이 불명확하게 느껴졌습니다. 관계는 최소 두 개 이상의 엔터티들간의 관계로 이해하였기 때문입니다. 해당 선지는 한 엔터티에서 그것과 다른 엔터티를 가정했을 때의 경우일까요? 혹은, 제가 선지를 다르게 이해했어야 한 부분이 있을까요?

  2. 7번 1:m의 관계를 고르는 문제에서, 정답에 의하면 학생-강의, 강사-과목, 주문-주문 상세가 모두 1:m의 관계였습니다. 그러나 학생과 강의를 생각하면 현실 세계에서 한 강의에서도 학생이 여러 명일 수 있고 한 과목을 가르치는 강사가 여러 명일 가능성으로 m:n 관계로 볼 순 없을까요? 기출문제 등지에서 유사한 문제가 자주 출제되던데, 이렇게 현실의 예외를 하나하나 생각하면서 접근하는 것이 맞는 방법일까요?

  3. 8번의 Join의 목적과 관련하여, 테이블 간의 관계를 명확히 정의하는 것과 Join이 어떻게 연결되는지 이해가 잘 가지 않습니다. (선지 2번)

  4. 12번 '본질 식별자를 사용하는 경우의 장점'으로 선지 1번은 적절한 경우에 해당했습니다만, '데이터의 의미를 쉽게 유추할 수 있다'라는 것이 보안이 중요한 상황에서는 단점으로 생각되었습니다. 식별자의 보안을 고려하기보다는 그 명료성에 초점을 맞춰야 하겠지요?

  5. 12번의 2번 선지, '데이터의 일관성을 높일 수 있다.'의 이유를 본질식별자를 사용할 경우 본질식별자 자체의 데이터가 변경될 확률이 낮기 때문으로 이해하면 될까요? 다소 결과적으로 느껴졌습니다.

 

감사합니다!

답변 1

1

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

안녕하세요. 엄청 덥네요. 더운데 공부 하느라, 수고가 많으세요. 🙂

아래와 같이 질문에 답변드립니다. 그럼 수고하시구요. 감사합니다.

 

  1. 6번 'relation'의 참여도에 관한 설명으로 옳지 않은 것을 고르는 문제에서, 1번 선지 '관계는 최소 한 개 이상의 엔터티와 연결된다.'라는 표현이 불명확하게 느껴졌습니다. 관계는 최소 두 개 이상의 엔터티들간의 관계로 이해하였기 때문입니다. 해당 선지는 한 엔터티에서 그것과 다른 엔터티를 가정했을 때의 경우일까요? 혹은, 제가 선지를 다르게 이해했어야 한 부분이 있을까요?

  • 문제의 보기가 생각하기에 따라 애매하게 느껴질 수 있겠네요. 하나의 엔터티는 다른 엔터티와 관계를 가져야 한다는 면에서 보면, 하나 이상이라는 표현이 적절 할 것입니다. 하지만 관계 입장에서 보면 참여하는 엔터티가 두 개 이상이어야 관계가 맺어지겠죠.

  • 참고로, 실제 현업에서는 관계를 가지지 않은 엔터티도 있습니다. 예를 들어, 코드 테이블 같은 것은 굉장히 많은 엔터티들이 참조를 해서 사용합니다. 이런 경우 모델링의 편의상 관계를 끊어 놓기도 합니다.

  • 모든 출제 문제들의 문장이 항상 명확하지는 않습니다. 출제자에 따라서 문장이 불명확 한 것들이 꽤나 많습니다. 그래서 '가장 적절한 것' 혹은 '가장 부적절한 것'을 찾아서 정답으로 선택하시는 게 좋습니다.

     

 

  1. 7번 1:m의 관계를 고르는 문제에서, 정답에 의하면 학생-강의, 강사-과목, 주문-주문 상세가 모두 1:m의 관계였습니다. 그러나 학생과 강의를 생각하면 현실 세계에서 한 강의에서도 학생이 여러 명일 수 있고 한 과목을 가르치는 강사가 여러 명일 가능성으로 m:n 관계로 볼 순 없을까요? 기출문제 등지에서 유사한 문제가 자주 출제되던데, 이렇게 현실의 예외를 하나하나 생각하면서 접근하는 것이 맞는 방법일까요?

  • 현실의 예외를 하나하나 생각하는 것 보다는 문제와 보기에 한정해서 가장 적절한 것을 찾는 것이 좋을 거 같네요. 왜냐하면 현실은 매우 복잡하기 때문에, 요구사항에 따라 1:m의 관계가 될 수도 있고 m:n 의 관계가 될 수도 있기 때문입니다.

 

  1. 8번의 Join의 목적과 관련하여, 테이블 간의 관계를 명확히 정의하는 것과 Join이 어떻게 연결되는지 이해가 잘 가지 않습니다. (선지 2번)

     

  • 우선 주요 목적이 아닌 것을 선택하는 문제이기 때문에 정답은 4번이 됩니다.

  • 보기 2번 같은 경우는 'SQL 문장에서' 라는 말을 앞에 붙이면 이해하기가 쉽습니다. 보기 2번은 SQL 문장에서라는 말이 생략된 것이라고 보는 게 좋겠습니다.


  1. 12번 '본질 식별자를 사용하는 경우의 장점'으로 선지 1번은 적절한 경우에 해당했습니다만, '데이터의 의미를 쉽게 유추할 수 있다'라는 것이 보안이 중요한 상황에서는 단점으로 생각되었습니다. 식별자의

    보안을 고려하기보다는 그 명료성에 초점을 맞춰야 하겠지요?

  • 식별자를 보안과 연결하기에는 좀 무리가 있어 보입니다. 보안은 데이터 침해, 유출 등과 연결시켜 생각하는 게 좋겠어요.

  1. 12번의 2번 선지, '데이터의 일관성을 높일 수 있다.'의 이유를 본질식별자를 사용할 경우 본질식별자 자체의 데이터가 변경될 확률이 낮기 때문으로 이해하면 될까요? 다소 결과적으로 느껴졌습니다.

     

     

    • 본질식별자 자체의 데이터가 변경될 확률이 낮기 때문으로 이해하기는 어려울 거 같고요. 인조식별자는 데이터의 의미와 관계없이 생성되기 때문에, 본질 식별자가 상대적으로 데이터의 일관성이 높다라고 이해하는 게 좋겠어요.

    • 다소 결과적으로 느낄 수 있겠네요. 문제에 한정해서 생각하는 게 좋겠습니다. 가장 절절하지 않은 것을 찾으면 문제를 보다 쉽게 풀 수 있습니다.

       

xfx9g8rzg6님의 프로필 이미지
xfx9g8rzg6

작성한 질문수

질문하기