모두CBT

다음 중 두 테이블간의 관계를 다음과 같이 설정하였을 경우에 대한 설명… | [컴퓨터활용능력 1급 필기] 11년 3회차 기출문제 상세 페이지

1[컴퓨터활용능력 1급 필기] 11년 3회차
다음 중 두 테이블간의 관계를 다음과 같이 설정하였을 경우에 대한 설명으로 옳은 것은?
문제 이미지
1
[상품] 테이블의 '상품번호' 필드 값이 바뀌면 이를 참조하는 [매출내역] 테이블의 '상품번호' 필드 값이 자동으로 변경된다.
2
[매출내역]에서 참조하고 있는 [상품] 테이블의 레코드는 삭제할 수 있다.
3
[매출내역] 테이블의 모든 레코드를 삭제하는 경우, 참조무결성이 위배될 수 있다.
4
[상품] 테이블에 레코드를 추가하는 경우, 참조 무결성은 위배되지 않는다.
해설

[관계 편집] 대화상자를 보면 [상품]의 '상품번호'와 [매출내역]의 '상품번호'가 연결된 일대다 관계이고, [항상 참조 무결성 유지]만 체크되어 있으며 [관련 필드 모두 업데이트]와 [관련 레코드 모두 삭제]는 해제되어 있다. 즉 '일' 쪽인 [상품]이 기본 테이블, '다' 쪽인 [매출내역]이 외래 키로 참조하는 테이블이다.

이 상태에서 기본 테이블인 [상품]에 새 레코드를 추가하는 것은 아직 아무도 참조하지 않는 값을 하나 더 만드는 일일 뿐이므로 참조 무결성을 위배하지 않는다. 참조 무결성이 깨지는 상황은 참조되는 값이 사라지거나 바뀌는 경우, 또는 없는 값을 참조하는 레코드를 넣는 경우다.

[관련 필드 모두 업데이트]가 꺼져 있으므로 [상품]의 '상품번호'를 고치면 [매출내역] 쪽이 따라 바뀌는 것이 아니라 변경 자체가 거부된다. 마찬가지로 [관련 레코드 모두 삭제]가 꺼져 있어 [매출내역]이 참조 중인 [상품] 레코드는 삭제할 수 없다.

반대로 '다' 쪽인 [매출내역]의 레코드는 기본 테이블에 딸린 자식일 뿐이므로 전부 삭제해도 참조 무결성은 깨지지 않는다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.