2019 정보처리기사 필기 1권 68p
데이터베이스 5번 문제에 대해 질문드립니다.
해당 문제에 2번이 어떤 사유로 정답처리 되었는지 상세히 알려주시면 감사하겠습니다.
다시 나올 확률이 적다고 넘어가기 보단 해당 사례에 대해 자세히 알려주시면 더 좋을 거 같습니다. :)
안녕하세요 길벗수험서 운영팀입니다.
단순한 사유입니다.
기본적으로 n:m은 '직접 표현'이 불가능합니다.
관계형 릴레이션 구조를 생각해보세요. 실제 DB를 구축할 때 key가 서로 연결되는 1:1 1:n은 만들 수 있지만, n:m을 만들기 위해서는 우회적으로 테이블을 분리하거나 추가적인 테이블을 거쳐야 합니다.
서로가 서로의 데이터가 중복표현하는 n:m이 실제 데이터의 표현되는 예는 아래와 같습니다.
<학생>
학번(key) |
학과 |
이름 |
<대학>
대학(key) |
학과 |
위와 같은 테이블 2개가 있을 때 학과는 서로 n:m을 이룹니다. 하지만 DB상에서 연결은 불가능하죠. 이를 간접적으로 표현이 가능합니다. 추가 테이블을 이용해서요.
<학과>
학과코드(key) |
학과(key) |
위 테이블을 추가하게 되면 학생.학과와 학과.학과를 n:1로 대학.학과와 학과.학과를 n:1로 연결하는 것이죠. 이때 학생.학과 와 대학.학과가 n:m의 간접적 표현이라고 볼 수 있습니다.
원칙적으로만 본다면 2번 보기는 틀린 것이 맞습니다.
도표가 아닌이상 모든 DB는 실제 구축측면에서 m:n의 직접적인 표현은 불가능하니까요.
행복한 하루되세요 :)
-
관리자2019-04-09 14:37:44
안녕하세요 길벗수험서 운영팀입니다.
단순한 사유입니다.
기본적으로 n:m은 '직접 표현'이 불가능합니다.
관계형 릴레이션 구조를 생각해보세요. 실제 DB를 구축할 때 key가 서로 연결되는 1:1 1:n은 만들 수 있지만, n:m을 만들기 위해서는 우회적으로 테이블을 분리하거나 추가적인 테이블을 거쳐야 합니다.
서로가 서로의 데이터가 중복표현하는 n:m이 실제 데이터의 표현되는 예는 아래와 같습니다.
<학생>
학번(key)
학과
이름
<대학>
대학(key)
학과
위와 같은 테이블 2개가 있을 때 학과는 서로 n:m을 이룹니다. 하지만 DB상에서 연결은 불가능하죠. 이를 간접적으로 표현이 가능합니다. 추가 테이블을 이용해서요.
<학과>
학과코드(key)
학과(key)
위 테이블을 추가하게 되면 학생.학과와 학과.학과를 n:1로 대학.학과와 학과.학과를 n:1로 연결하는 것이죠. 이때 학생.학과 와 대학.학과가 n:m의 간접적 표현이라고 볼 수 있습니다.
원칙적으로만 본다면 2번 보기는 틀린 것이 맞습니다.
도표가 아닌이상 모든 DB는 실제 구축측면에서 m:n의 직접적인 표현은 불가능하니까요.
행복한 하루되세요 :)