데이터베이스 기초
E-R 다이어그램에서 학생과 과목 사이에 '한 학생은 여러 과목을 수강하고, 한 과목은 여러 학생이 수강한다'는 다대다 관계가 있다. 이 관계를 관계형 데이터베이스의 표로 구현하는 방법으로 적절한 것은?
- A학생번호와 과목번호를 외래 키로 갖는 수강 표를 새로 만든다
- B학생 표에 과목번호 열을 하나 추가한다
- C과목 표에 학생번호 열을 하나 추가한다
정답과 해설 보기
정답: A. 학생번호와 과목번호를 외래 키로 갖는 수강 표를 새로 만든다
E-R 다이어그램은 데이터베이스에서 관리하는 대상(엔터티)과 엔터티 사이의 관계(릴레이션십)를 그림으로 나타낸 것으로, 관계에는 1대1, 1대다, 다대다 같은 다중도(카디널리티)가 있습니다. 1대다 관계는 다 쪽 표에 1 쪽의 기본 키를 외래 키로 갖게 하면 나타낼 수 있습니다(예를 들어 사원 표에 부서코드를 갖게 한다). 그러나 다대다 관계는 어느 한쪽 표에 열을 하나 추가하는 것만으로는 학생 한 명당 과목 하나(또는 과목 하나당 학생 한 명)밖에 기록할 수 없습니다. 그래서 학생번호와 과목번호를 외래 키로 갖는 수강 표(연관 엔터티)를 사이에 두고, 학생과 수강, 과목과 수강이라는 2개의 1대다 관계로 분해합니다. 수강 표의 기본 키는 학생번호와 과목번호의 조합으로 하는 것이 일반적입니다.