아래의 [상황]에서 두 테이블에 변경된 내용을 적용하기 위한 방법으로 … | [컴퓨터활용능력 1급 필기] 12년 1회차 기출문제 상세 페이지
1[컴퓨터활용능력 1급 필기] 12년 1회차
아래의 [상황]에서 두 테이블에 변경된 내용을 적용하기 위한 방법으로 가장 적절한 것은?[상황]
- [제품] 테이블의 '분류코드'는 [분류] 테이블의 '분류코드'를 참조한다.
- '분류코드' 체계를 변경하기 위해 [분류] 테이블의 '분류코드' 필드 값을 변경하려 하였더니 "관련 레코드가 제품' 테이블에 있으므로 레코드를 삭제하거나 변경할 수 없습니다.'라는 오류 메시지가 나타났다.
1
두 테이블간의 관계를 해제하고 [분류] 테이블의 '분류코드' 필드 값을 수정한다.
2
[제품] 테이블의 '분류코드'를 먼저 수정한 후, [분류] 테이블의 '분류코드' 필드 값을 수정한다.
3
관계 편집 창에서 '관련 필드 모두 업데이트'를 체크한 후, [분류] 테이블의 '분류코드' 필드 값을 수정한다.
4
관계 편집 창에서 '관련 필드 모두 업데이트'를 체크한 후, [제품] 테이블의 '분류코드' 필드 값을 수정한다.
해설
제시된 상황은 [분류] 테이블의 '분류코드'를 [제품] 테이블이 참조하고 있고, 두 테이블 사이에 참조 무결성이 설정된 관계가 맺어져 있음을 보여 줍니다. 이 상태에서 부모 쪽인 [분류]의 '분류코드' 값을 바꾸려 하면 자식 쪽 [제품]에 짝이 맞지 않는 값이 남게 되므로 "관련 레코드가 있으므로 레코드를 삭제하거나 변경할 수 없습니다"라는 오류가 발생합니다.
이런 경우 관계 편집 창에서 '관련 필드 모두 업데이트'를 체크하면, 기본 키 쪽인 [분류] 테이블의 '분류코드'를 수정할 때 이를 참조하는 [제품] 테이블의 '분류코드' 값이 자동으로 함께 갱신됩니다. 따라서 두 테이블에 변경 내용이 한 번에 반영됩니다.
관계를 아예 해제하고 수정하면 참조 무결성이 사라져 [제품]의 값이 옛 코드 그대로 남아 데이터가 어긋나고, 자식 테이블인 [제품]의 '분류코드'를 먼저 고치는 방법도 [분류]에 없는 값을 넣는 셈이라 참조 무결성 위반으로 막힙니다. 코드 체계 변경은 부모 테이블의 기본 키를 고치고 자식이 따라오게 하는 것이 올바른 순서입니다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.