책 내용 질문하기
26년 3차 상시03
도서
2026 시나공 컴퓨터활용능력 1급 실기 기출문제집
페이지
0
조회수
60
작성일
2026-09-30
작성자
서*령
첨부파일

26년 3차 상시03 액세스 문제1 DB구축 3번 관계 문제에서 면적정보 테이블의 데이터가 참조무결성 강화규칙에 어긋난다고 뜹니다. 유투브에 게시되어 있는 풀이도 보았으나 따로 건드린 건 없는 거 같은데 왜 이렇게 뜨는 지 모르겠습니다.






답변
2026-10-02 09:34:06

안녕하세요.

첨부해 주신 작업 파일을 기준으로 보면, 지금 메시지는 관계 설정 방법 자체의 문제가 아니라 현재 데이터에 참조 무결성을 만족하지 못하는 카페코드가 있다는 뜻입니다.

이 문제의 정상적인 관계는 보통 다음 구조입니다.

카페정보.카페코드   1  ─────  ∞   면적정보.카페코드
      기준 테이블                  관련 테이블

즉 면적정보에 들어 있는 모든 카페코드는 반드시 카페정보에도 존재해야 합니다. 하나라도 다음과 같은 상태가 있으면 지금 오류가 발생합니다.

카페정보        면적정보
C001            C001
C002            C002
                C003  ← 카페정보에 없음

가장 빠르게 원인을 확인하는 방법은 불일치 검색 쿼리 마법사입니다.

만들기 → 쿼리 마법사 → 불일치 검색 쿼리 마법사에서

면적정보에 있으면서
카페정보에는 없는 레코드

를 찾고, 두 테이블의 연결 필드는 카페코드로 지정하세요. 결과가 한 건이라도 나오면 그 레코드 때문에 참조 무결성 설정이 안 되는 것입니다.

직접 디자인 보기로 확인하려면 다음 구조로 만들어도 됩니다.

SELECT 면적정보.*
FROM 면적정보
LEFT JOIN 카페정보
ON 면적정보.카페코드 = 카페정보.카페코드
WHERE 카페정보.카페코드 Is Null;

결과가 나온다면 그 카페코드가 고아 레코드입니다.

특히 연습 과정에서 업데이트·삭제·추가 쿼리를 한 번이라도 잘못 실행했다면, 쿼리를 나중에 수정하거나 삭제해도 이미 변경된 테이블 데이터는 원상복구되지 않습니다. 그래서 “테이블을 직접 건드린 기억이 없다” 하더라도 액션 쿼리 실행으로 데이터가 바뀌었을 수 있습니다.

따라서 이 파일에서 불일치 레코드가 확인된다면 가장 안전한 해결책은 임의로 데이터를 고치는 것이 아니라 배포받은 원본 26년상시03.accdb를 새로 복사해서 문제 1-3 관계 설정부터 다시 수행하는 것입니다. 새 원본에서도 동일한 오류가 난다면 그때는 배포 파일 자체의 데이터 이상 여부를 의심해야 합니다.

또 하나 확인할 것은 두 카페코드 필드의 데이터 형식과 필드 크기가 동일한지입니다. 둘 다 짧은 텍스트라면 필드 크기도 같아야 합니다.

즉 현재 오류는 단순히 관계선을 반대로 드래그해서 생기는 메시지라기보다, 면적정보 쪽 카페코드 중 카페정보에서 찾을 수 없는 값이 있거나 두 필드 정의가 맞지 않는 경우에 발생하는 오류입니다.

즐거운 하루 되세요.

  • 관리자
    2026-10-02 09:34:06

    안녕하세요.

    첨부해 주신 작업 파일을 기준으로 보면, 지금 메시지는 관계 설정 방법 자체의 문제가 아니라 현재 데이터에 참조 무결성을 만족하지 못하는 카페코드가 있다는 뜻입니다.

    이 문제의 정상적인 관계는 보통 다음 구조입니다.

    카페정보.카페코드   1  ─────  ∞   면적정보.카페코드
          기준 테이블                  관련 테이블

    즉 면적정보에 들어 있는 모든 카페코드는 반드시 카페정보에도 존재해야 합니다. 하나라도 다음과 같은 상태가 있으면 지금 오류가 발생합니다.

    카페정보        면적정보
    C001            C001
    C002            C002
                    C003  ← 카페정보에 없음

    가장 빠르게 원인을 확인하는 방법은 불일치 검색 쿼리 마법사입니다.

    만들기 → 쿼리 마법사 → 불일치 검색 쿼리 마법사에서

    면적정보에 있으면서
    카페정보에는 없는 레코드

    를 찾고, 두 테이블의 연결 필드는 카페코드로 지정하세요. 결과가 한 건이라도 나오면 그 레코드 때문에 참조 무결성 설정이 안 되는 것입니다.

    직접 디자인 보기로 확인하려면 다음 구조로 만들어도 됩니다.

    SELECT 면적정보.*
    FROM 면적정보
    LEFT JOIN 카페정보
    ON 면적정보.카페코드 = 카페정보.카페코드
    WHERE 카페정보.카페코드 Is Null;

    결과가 나온다면 그 카페코드가 고아 레코드입니다.

    특히 연습 과정에서 업데이트·삭제·추가 쿼리를 한 번이라도 잘못 실행했다면, 쿼리를 나중에 수정하거나 삭제해도 이미 변경된 테이블 데이터는 원상복구되지 않습니다. 그래서 “테이블을 직접 건드린 기억이 없다” 하더라도 액션 쿼리 실행으로 데이터가 바뀌었을 수 있습니다.

    따라서 이 파일에서 불일치 레코드가 확인된다면 가장 안전한 해결책은 임의로 데이터를 고치는 것이 아니라 배포받은 원본 26년상시03.accdb를 새로 복사해서 문제 1-3 관계 설정부터 다시 수행하는 것입니다. 새 원본에서도 동일한 오류가 난다면 그때는 배포 파일 자체의 데이터 이상 여부를 의심해야 합니다.

    또 하나 확인할 것은 두 카페코드 필드의 데이터 형식과 필드 크기가 동일한지입니다. 둘 다 짧은 텍스트라면 필드 크기도 같아야 합니다.

    즉 현재 오류는 단순히 관계선을 반대로 드래그해서 생기는 메시지라기보다, 면적정보 쪽 카페코드 중 카페정보에서 찾을 수 없는 값이 있거나 두 필드 정의가 맞지 않는 경우에 발생하는 오류입니다.

    즐거운 하루 되세요.

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.