테이블 관계 설명

테이블 관계 설명

참고: 사용자 언어로 가능한 한 빨리 가장 최신의 도움말 콘텐츠를 제공하고자 합니다. 이 페이지는 자동화를 통해 번역되었으며 문법 오류나 부정확한 설명을 포함할 수 있습니다. 이 목적은 콘텐츠가 사용자에게 유용하다는 것입니다. 이 페이지 하단의 정보가 도움이 되었다면 알려주세요. 쉽게 참조할 수 있는 영어 문서가 여기 있습니다.

데이터베이스를 제대로 디자인하려면 중복되는 데이터가 있어서는 안 됩니다. 이를 위해 데이터를 여러 개의 주제 기반 테이블로 구분하여 각 데이터가 한 번씩만 나타나도록 할 수 있습니다. 그런 다음 Access에서 분할된 정보를 다시 통합하는 방법을 제공해야 하며, 이를 위해 서로 관련된 테이블에 공통 필드를 배치합니다. 그러나 이 단계를 올바르게 실행하려면 테이블 간의 관계를 이해하고 데이터베이스에서 이러한 관계를 지정해야 합니다.

이 문서의 내용

소개

테이블 관계 유형

테이블 관계를 만드는 이유

참조 무결성 이해

테이블 관계 보기

테이블 관계 만들기

테이블 관계 삭제

테이블 관계 변경

항상 참조 무결성 유지

소개

데이터베이스에 각 주제별로 테이블을 만든 후에는 Access에서 필요할 때 해당 정보를 다시 통합할 수 있도록 해야 합니다. 이를 위해 서로 관련된 테이블에 공통 필드를 배치하고 테이블 사이의 관계를 정의합니다. 이렇게 하면 여러 테이블의 정보를 함께 표시하는 쿼리, 폼 및 보고서를 만들 수 있습니다. 예를 들어 다음 폼에는 여러 테이블에서 가져온 정보가 포함되어 있습니다.

5개 테이블의 관련 정보가 동시에 표시되는 주문 폼

1. 이 폼의 정보를 가져오는 위치는 고객 테이블...

2. ...주문 테이블...

3. ...제품 테이블...

4. ...및 제품 정보 테이블입니다.

청구지 상자의 고객 이름은 고객 테이블에서, 주문 번호 및 수주일 값은 주문 테이블에서, 제품 이름은 제품 테이블에서, 그리고 단가 및 수량 값은 주문 정보 테이블에서 각각 검색됩니다. 이러한 테이블은 다양한 방식으로 서로 연결되어 있으며 각 테이블의 정보를 폼으로 가져옵니다.

위 예제에서는 동일한 주문에 대한 정보가 표시되도록 테이블의 필드를 조정해야 합니다. 이 조정 작업은 테이블 관계를 사용하여 실행합니다. 테이블 관계는 키 필드의 데이터를 연결하여 설정하는데, 이러한 필드는 보통 양쪽 테이블에 모두 있는 이름이 같은 필드가 됩니다. 대부분의 경우 이러한 일치 필드는 한 테이블에서는 각 레코드에 대해 고유 식별자를 제공하는 기본 키가 되고 다른 테이블에서는 외래 키가 됩니다. 예를 들어 직원 테이블 및 주문 테이블의 직원 번호 필드 간에 테이블 관계를 만들어 각 직원과 해당 직원이 담당하는 주문을 연결할 수 있습니다.

직원 테이블의 기본 키 및 주문 테이블의 외래 키로 사용되는 직원 번호

1. 직원 번호는 두 테이블에 각각 기본 키와

2. 외래 키로 나타납니다.

맨 위로 이동

테이블 관계 유형

Access의 테이블 관계에는 다음과 같은 세 가지 유형이 있습니다.

  • 일대다 관계

    고객 테이블과 주문 테이블이 포함된 주문 관리 데이터베이스를 예로 들겠습니다. 고객은 원하는 수만큼 주문을 할 수 있습니다. 즉, 고객 테이블에 표시되는 특정 고객에 대해 주문 테이블에는 여러 개의 주문이 표시될 수 있습니다. 고객 테이블과 주문 테이블 간의 관계는 일대다 관계입니다.

    데이터베이스 디자인에 일대다 관계를 표시하려면 관계에서 "일" 쪽에 해당하는 테이블의 기본 키를 관계의 "다" 쪽에 해당하는 테이블에 추가 필드로 추가합니다. 예를 들어 위 예제의 경우 새 필드, 즉 고객 테이블의 ID 필드를 주문 테이블에 추가하고 이름을 '고객 ID'로 지정합니다.그러면 Access에서 주문 테이블의 고객 ID 번호를 사용하여 각 주문에 해당하는 고객을 찾을 수 있습니다.

  • 다대다 관계

    이제 제품 테이블과 주문 테이블 간의 관계를 살펴보겠습니다. 단일 주문에 여러 개의 제품이 포함될 수 있고, 단일 제품이 여러 주문에 포함될 수도 있습니다. 그러므로 주문 테이블의 각 레코드에 대해 제품 테이블에 여러 레코드가 있을 수 있습니다. 또한 제품 테이블의 각 레코드에 대해서도 주문 테이블에 여러 레코드가 있을 수 있습니다. 이러한 관계를 다대다 관계라고 합니다. 테이블 간의 기존 다대다 관계를 검색하려면 관계를 형성하는 양쪽 테이블을 모두 고려해야 합니다.

    다대다 관계를 표시하려면 보통 접합 테이블이라고 하는 별도의 세 번째 테이블을 만들어 다대다 관계를 두 개의 일대다 관계로 분할해야 합니다. 그런 다음 다대다 관계를 형성하는 두 테이블의 기본 키를 이 세 번째 테이블에 삽입합니다. 그러면 세 번째 테이블에 관계의 각 발생(인스턴스)이 기록됩니다. 예를 들어 주문 테이블과 제품 테이블 간에는 제품 정보 테이블에 대해 두 개의 일대다 관계를 만들어 정의할 수 있는 다대다 관계가 있습니다. 즉, 하나의 주문에 많은 제품이 있을 수 있으며 각 제품이 많은 주문에 포함될 수 있습니다.

  • 일대일 관계

    일대일 관계에서 첫 번째 테이블의 각 레코드는 두 번째 테이블의 한 레코드와만 연결되며 두 번째 테이블의 각 레코드도 첫 번째 테이블의 한 레코드와만 연결됩니다. 대부분의 경우 이러한 방식으로 관련된 정보는 같은 테이블에 저장되므로 이 관계는 드뭅니다. 일대일 관계를 사용하여 필드가 여러 개 있는 테이블을 나누거나 보안을 위해 테이블의 일부를 격리하거나 기본 테이블의 하위 집합에만 적용되는 정보를 저장할 수 있습니다. 이러한 관계를 식별할 때 두 테이블은 공통 필드를 공유하고 있어야 합니다.

맨 위로 이동

테이블 관계를 만드는 이유

관계 창을 사용하거나 필드 목록 창의 필드를 끌어서 테이블 관계를 명시적으로 만들 수 있습니다. Access에서는 테이블 관계를 사용하여 데이터베이스 개체에서 사용할 테이블을 조인하는 방법을 결정합니다. 폼, 쿼리 및 보고서와 같은 기타 데이터베이스 개체를 만들려면 먼저 테이블 관계를 만들어야 하는데 그 이유는 다음과 같습니다.

  • 테이블 관계를 통해 쿼리 디자인 결정

    여러 테이블에서 가져온 레코드를 사용하려면 해당 테이블을 조인하는 쿼리를 만들어야 합니다. 쿼리는 첫 번째 테이블의 기본 키 필드 값을 두 번째 테이블의 외래 키 필드 값과 연결하는 방식으로 작동합니다. 예를 들어 각 고객에 대한 모든 주문이 나열되는 행을 반환하려면 고객 ID 필드를 기반으로 고객 테이블과 주문 테이블을 결합하는 쿼리를 작성합니다. 관계 창에서 조인할 필드를 수동으로 지정할 수 있습니다. 그러나 테이블 간에 이미 관계가 정의되어 있으면 Access에서 기존 테이블 관계를 기준으로 기본 조인을 제공합니다. 또한 쿼리 마법사 중 하나를 사용하는 경우 Access는 이미 정의한 테이블 관계에서 수집한 정보를 사용하여 선택 가능한 항목을 표시하고 속성 설정을 적절한 기본값으로 미리 채웁니다.

  • 테이블 관계를 통해 폼 및 보고서 디자인 결정

    폼이나 보고서를 디자인할 때 Access는 이미 정의되어 있는 테이블 관계에서 수집한 정보를 사용하여 선택 가능한 항목을 표시하고 속성 설정을 해당 기본값으로 미리 채웁니다.

  • 테이블 관계를 기반으로 하여 데이터베이스에 분리된 레코드가 없도록 참조 무결성을 유지할 수 있습니다. 분리된 레코드는 존재하지 않는 다른 레코드에 대한 참조가 포함된 레코드입니다. 즉, 존재하지 않는 고객 레코드를 참조하는 주문 레코드를 예로 들 수 있습니다.

    데이터베이스를 디자인할 때는 정보를 각각 기본 키를 포함하는 여러 테이블로 구분합니다. 그런 다음 해당 기본 키를 참조하는 관련된 테이블에 외래 키를 추가합니다. 이러한 외래 키 및 기본 키 쌍이 테이블 관계 및 다중 테이블 쿼리의 기본이 됩니다. 이 외래 키 및 기본 키 참조의 동기화를 유지하는 것이 중요합니다. 테이블 관계에 종속된 참조 무결성을 유지하면 참조가 지속적으로 동기화됩니다.

맨 위로 이동

참조 무결성 이해

데이터베이스를 디자인할 때는 데이터 중복을 최소화하기 위해 데이터베이스 정보를 주제에 따라 여러 테이블로 분할합니다. 그런 다음 서로 관련된 테이블에 공통 필드를 배치하여 Access에서 데이터를 다시 통합하는 방법을 제공합니다. 예를 들어 일대다 관계를 나타내려면 "일"에 해당하는 테이블의 기본 키를 "다"에 해당하는 테이블에 필드로 추가합니다. Access는 데이터를 다시 통합하기 위해 "다" 테이블의 값을 가져와 "일" 테이블에서 해당 값을 조회합니다. 이러한 방법으로 "다" 테이블의 값이 "일" 테이블의 해당 값을 참조하게 됩니다.

운송업체와 주문이 일대다 관계로 연결된 상태에서 특정 운송업체를 삭제하려는 경우를 가정해 봅시다. 이때 삭제하려는 운송업체의 주문이 주문 테이블에 포함되어 있는 경우 운송업체 레코드를 삭제하면 이 주문이 "분리"됩니다. 즉, 해당 주문에 운송업체 ID는 계속 포함되어 있지만 주문이 참조하는 레코드가 더 이상 존재하지 않으므로 해당 ID는 더 이상 유효하지 않은 상태가 됩니다.

참조 무결성은 정보의 분리를 방지하고 참조를 동기화 상태로 유지하여 위와 같은 상황이 발생하지 않도록 하기 위한 것입니다.

참조 무결성을 유지하려면 테이블 관계에 대해 참조 무결성을 유지하도록 설정해야 합니다. 단계별 지침은 참조 무결성 유지를 참고하십시오. 참조 무결성을 유지하도록 설정하면 해당 테이블 관계의 참조 무결성을 위반하는 모든 작업이 Access에서 거부됩니다. 즉, Access에서는 참조 대상을 변경하는 업데이트 및 참조 대상을 제거하는 삭제 작업을 모두 거부합니다. 주문 테이블에 주문이 포함되어 있는 운송업체의 기본 키를 반드시 변경해야 하는 경우가 있을 수 있습니다. 이러한 경우에는 Access에서 영향을 받는 모든 행을 단일 작업에서 자동으로 업데이트해야 합니다. 이렇게 하면 Access에서 업데이트가 완벽하게 끝나므로 일부 행만 업데이트되는 불일치 상태가 발생하지 않습니다. 이를 위해 Access는 관련 필드 모두 업데이트 옵션을 지원합니다. 참조 무결성을 유지하도록 설정하고 관련 필드 모두 업데이트 옵션을 선택한 후 기본 키를 업데이트하면 Access에서는 기본 키를 참조하는 모든 필드를 자동으로 업데이트합니다.

특정 행 및 해당 행과 관련된 모든 레코드를 삭제해야 하는 경우가 있습니다. 운송업체 레코드와 해당 운송업체의 모든 관련 주문을 함께 삭제해야 하는 경우를 예로 들 수 있습니다. Access에서는 이런 경우에 사용할 수 있도록 관련 레코드 모두 삭제 옵션을 지원합니다. 참조 무결성을 유지하도록 설정하고 관련 레코드 모두 삭제 옵션을 선택한 다음 관계의 기본 키가 포함된 레코드를 삭제하면 해당 기본 키를 참조하는 레코드도 모두 Access에서 자동으로 삭제됩니다.

맨 위로 이동

테이블 관계 보기

테이블 관계를 보려면 데이터베이스 도구 탭에서 관계를 클릭합니다. 그러면 관계 창이 열리고 기존 관계가 표시됩니다. 테이블 관계를 지정하지 않은 상태에서 관계 창을 처음으로 열면 Access에서 창에 테이블이나 쿼리를 추가하라는 메시지가 표시됩니다.

관계 창 열기

  1. 파일을 클릭하고 열기를 클릭합니다.

  2. 데이터베이스를 선택하여 엽니다.

  3. 데이터베이스 도구 탭의 관계 그룹에서 관계를 클릭합니다.

    데이터베이스에 관계가 포함되어 있는 경우 관계 창이 열립니다. 데이터베이스에 관계가 포함되어 있지 않은 상태에서 관계 창을 처음으로 열면 테이블 표시 대화 상자가 나타납니다. 닫기를 클릭하여 대화 상자를 닫습니다.

  4. 디자인 탭의 관계 그룹에서 모든 관계를 클릭합니다.

    사용자의 데이터베이스에 정의되어 있는 모든 관계가 표시됩니다. 탐색 옵션 대화 상자에서 숨겨진 개체 표시 옵션이 선택되어 있지 않으면 숨겨진 테이블, 즉 테이블의 속성 대화 상자에서 숨김 확인란이 선택되어 있는 테이블과 해당 관계는 표시되지 않습니다.

테이블 관계는 관계 창에서 테이블 간에 그려진 관계선으로 나타납니다. 참조 무결성을 유지하지 않는 관계는 해당 관계를 지원하는 공통 필드 간의 가는 선으로 표시됩니다. 관계선을 클릭하여 관계를 선택하면 선이 굵어져 선택되었음을 나타냅니다. 해당 관계에 대해 참조 무결성을 유지하는 경우에는 선의 양 끝이 더 굵게 표시됩니다. 또한 관계선 한쪽 끝의 굵은 부분에는 숫자 1이 표시되고 나머지 끝의 굵은 부분에는 무한대 기호()가 표시됩니다.

관계 창이 활성 상태일 때 리본 메뉴에서 다음 명령 중 원하는 명령을 선택할 수 있습니다.

디자인 탭의 도구 그룹:

  • 관계 편집    이 명령을 선택하면 관계 편집 대화 상자가 열립니다. 관계선을 선택하면 관계 편집을 클릭하여 테이블 관계를 변경할 수 있습니다. 관계선을 두 번 클릭할 수도 있습니다.

  • 레이아웃 지우기    관계 창에 표시된 모든 테이블 및 관계가 사라집니다. 이 명령을 사용하면 테이블 및 관계가 숨겨질 뿐 삭제되지는 않습니다. 

  • 관계 보고서    데이터베이스의 테이블 및 관계를 표시하는 보고서가 만들어집니다. 이 보고서에는 관계 창에서 숨겨지지 않은 테이블 및 관계만 표시됩니다.

디자인 탭의 관계 그룹:

  • 테이블 표시    관계 창에 표시할 테이블 및 쿼리를 선택할 수 있는 테이블 표시 대화 상자가 열립니다.

  • 테이블 숨기기    관계 창에서 선택한 테이블을 숨깁니다.

  • 직접 관계    이미 표시되어 있지 않은 경우 선택한 테이블의 모든 관계 및 관련 테이블을 관계 창에 표시합니다.

  • 모든 관계    데이터베이스의 모든 관계 및 관련 테이블을 관계 창에 표시합니다. 탐색 옵션 대화 상자에서 숨겨진 개체 표시 옵션이 선택되어 있지 않으면 숨겨진 테이블, 즉 테이블의 속성 대화 상자에서 숨김 확인란이 선택되어 있는 테이블과 해당 관계는 표시되지 않습니다.

  • 닫기    관계 창이 닫힙니다. 관계 창 레이아웃을 변경한 경우에는 변경 내용을 저장할 것인지 묻는 메시지가 표시됩니다.

맨 위로 이동

테이블 관계 만들기

테이블 관계는 관계 창을 사용하여 만들거나 필드 목록 창에서 데이터시트로 필드를 끌어서 만들 수 있습니다. 테이블 간에 관계를 만들 때 공통 필드의 이름을 동일하게 설정할 필요는 없지만 대부분의 경우에는 두 필드의 이름이 동일합니다. 테이블 관계를 만들 때 중요한 것은 공통 필드의 데이터 형식을 동일하게 설정하는 것입니다. 그러나 기본 키 필드가 일련 번호 필드인 경우, 상대 필드와 필드 크기 속성이 같으면 숫자 필드를 외래 키 필드로 사용할 수도 있습니다. 예를 들어 일련 번호 필드와 숫자 필드의 필드 크기 속성이 모두 정수(Long)이면 데이터 형식이 다르더라도 이들 필드를 연결할 수 있습니다. 공통 필드가 둘 다 숫자 필드이면 필드 크기 속성 설정이 서로 같아야 합니다.

관계 창을 사용하여 테이블 관계 만들기

  1. 파일을 클릭하고 열기를 클릭합니다.

  2. 데이터베이스를 선택하여 엽니다.

  3. 데이터베이스 도구 탭의 관계 그룹에서 관계를 클릭합니다.

  4. 관계가 정의되어 있지 않으면 테이블 표시 대화 상자가 자동으로 표시됩니다. 이 대화 상자가 표시되지 않으면 디자인 탭의 관계 그룹에서 테이블 표시를 클릭하십시오.

    테이블 표시 대화 상자에는 데이터베이스에 포함된 모든 테이블 및 쿼리가 표시됩니다. 테이블만 보려면 테이블을 클릭하고 쿼리만 보려면 쿼리를 클릭합니다. 테이블과 쿼리 모두 보려면 모두를 클릭합니다.

  5. 테이블 또는 쿼리를 하나 이상 선택한 다음 추가를 클릭합니다. 관계 창에 테이블 및 쿼리를 모두 추가한 후에 닫기를 클릭합니다.

  6. 한 테이블의 필드를 다른 테이블의 공통 필드로 끌어옵니다. 일반적인 경우 두 필드는 각각 기본 키 필드와 외래 키 필드입니다. 여러 필드를 끌어서 놓으려면 Ctrl 키를 누른 상태로 각 필드를 클릭한 다음 끌면 됩니다.

    관계 편집 대화 상자가 나타납니다.

  7. 표시된 필드 이름이 관계에 사용할 공통 필드의 이름이 맞는지 확인합니다. 필드 이름이 잘못되었으면 해당 필드 이름을 클릭하고 목록에서 새 필드를 선택합니다.

    이 관계에 참조 무결성을 적용하려면 항상 참조 무결성 유지 확인란을 선택합니다. 참조 무결성에 대한 자세한 내용은 참조 무결성 이해참조 무결성 유지 섹션을 참고하십시오.

  8. 만들기를 클릭합니다.

    두 테이블 사이에 관계선이 그려집니다. 항상 참조 무결성 유지 확인란을 선택한 경우에는 선의 양쪽 끝이 더 굵게 표시됩니다. 항상 참조 무결성 유지 확인란을 선택한 경우에는 또한 관계선 한쪽 끝의 굵은 부분에 1이 표시되고 나머지 끝의 굵은 부분에는 무한대 기호()가 표시됩니다.

    참고 사항: 

    • 일대일 관계 만들기    두 공통 필드, 즉 기본 키 및 외래 키 필드에 모두 고유한 인덱스가 있어야 합니다. 즉, 이들 필드의 인덱스 속성이 예(중복 불가능)로 설정되어 있어야 합니다. 두 필드의 인덱스가 고유하면 Access에서 일대일 관계를 만듭니다.

    • 일대다 관계 만들기    관계의 "일"에 해당하는 필드에 고유 인덱스가 있어야 합니다. 대부분의 경우 기본 키 필드에 고유 인덱스가 있게 되며, 이 필드의 인덱스 속성은 예(중복 불가능)로 설정되어 있어야 합니다. "다" 쪽에 속한 필드에는 고유 인덱스가 없어야 합니다. 즉, 이 필드에도 인덱스가 있을 수는 있지만 중복이 허용되어야 합니다. 따라서 이 필드의 인덱스 속성은 아니요 또는 예(중복 가능)로 설정되어 있어야 합니다. 필드 하나에는 고유 인덱스가 있고 나머지 필드에는 고유 인덱스가 없으면 Access에서 일대다 관계가 만들어집니다.

필드 목록 창을 사용하여 필드에 추가할 테이블 관계 만들기

필드 목록 창에서 필드를 끌어 데이터 시트 보기에서 열려 있는 기존 테이블에 필드를 추가할 수 있습니다. 필드 목록 창에는 관련 테이블에서 사용할 수 있는 필드와 데이터베이스의 다른 테이블에서 사용할 수 있는 필드가 표시되어 있습니다. 관계를 설정하지 않은 테이블에서 필드를 끌어 놓은 다음 조회 마법사를 마치면 필드 목록 창의 테이블과 필드를 끌어 놓은 테이블 간에 새 관계가 자동으로 만들어집니다. Access에서 자동으로 생성된 이 관계에는 기본적으로 참조 무결성이 유지되지 않으므로 참조 무결성을 항상 유지하려면 관계를 직접 편집해야 합니다. 자세한 내용은 테이블 관계 변경 섹션을 참고하십시오.

데이터시트 보기에서 테이블 열기

  1. 파일 탭에서 열기를 클릭합니다.

  2. 열기 대화 상자에서 데이터베이스를 선택하여 엽니다.

  3. 탐색 창에서 필드를 추가할 테이블을 마우스 오른쪽 단추로 클릭하여 관계를 만든 다음 열기를 클릭합니다.

필드 목록 창 열기

  • Alt+F8을 누릅니다.

    필드 목록 창이 나타납니다.

필드 목록 창에는 범주별로 그룹화된 데이터베이스의 다른 모든 테이블이 표시됩니다. 데이터시트 보기에서 테이블 작업을 하는 경우 Access의 필드 목록 창에는 관련 테이블에서 사용 가능한 필드다른 테이블에서 사용 가능한 필드의 두 범주 중 하나로 필드가 표시됩니다. 첫 번째 범주에는 현재 작업 중인 테이블과 관계가 설정된 모든 테이블 목록이 표시되고, 두 번째 범주에는 현재 작업 중인 관계가 설정되지 않은 모든 테이블 목록이 표시됩니다.

필드 목록 창에서 테이블 이름 옆에 있는 더하기 기호(+)를 클릭하면 해당 테이블에서 사용 가능한 모든 필드 목록이 표시됩니다. 필드를 테이블에 추가하려면 원하는 필드를 필드 목록 창에서 끌어 데이터시트 보기의 테이블에 놓습니다.

필드 목록 창을 사용하여 필드를 추가하고 관계 만들기

  1. 필드 목록 창의 다른 테이블에서 사용 가능한 필드에서 테이블 이름 옆에 있는 더하기 기호(+)를 클릭하여 해당 테이블의 필드 목록을 표시합니다.

  2. 원하는 필드를 필드 목록 창에서 끌어 데이터시트 보기에 열려 있는 테이블에 놓습니다.

  3. 삽입 선이 나타나면 필드를 해당 위치에 놓습니다.

    조회 마법사가 시작됩니다.

  4. 설명에 따라 조회 마법사를 완료합니다.

    데이터시트 보기의 테이블에 필드가 나타납니다.

관계가 설정되지 않은 테이블의 필드를 끌어 놓고 조회 마법사를 완료하면 필드 목록에 있는 테이블과 필드를 끌어 놓은 테이블 간에 새로운 일대다 관계가 자동으로 만들어집니다. Access에서 자동으로 생성된 이 관계에는 기본적으로 참조 무결성이 유지되지 않으므로 참조 무결성을 항상 유지하려면 관계를 직접 편집해야 합니다. 자세한 내용은 테이블 관계 변경 섹션을 참고하십시오.

맨 위로 이동

테이블 관계 삭제

테이블 관계를 제거하려면 관계 창에서 관계선을 삭제해야 합니다. 이를 위해서는 관계선을 가리키도록 커서를 이동한 다음 선을 클릭합니다. 선택한 관계선은 더 굵게 표시됩니다. 관계선을 선택한 상태에서 Delete 키를 누릅니다. 관계에 대해 참조 무결성이 설정되어 있는 경우 관계를 제거하면 참조 무결성 지원도 함께 제거되기 때문에 관계의 "다" 쪽에서 분리된 레코드가 발생하지 않도록 방지하는 기능도 Access에서 제거됩니다.

  1. 데이터베이스 도구 탭의 관계 그룹에서 관계를 클릭합니다.

    관계 창이 나타납니다. 관계를 정의하지 않은 상태에서 관계 창을 처음 열면 테이블 표시 대화 상자가 나타납니다. 이 대화 상자가 나타나면 닫기를 클릭합니다.

  2. 디자인 탭의 관계 그룹에서 모든 관계를 클릭합니다.

    관계가 있는 모든 테이블이 관계선과 함께 표시됩니다.

  3. 삭제할 관계의 관계선을 클릭합니다. 선택한 관계선은 더 굵게 표시됩니다.

  4. Delete 키를 누릅니다.

    또는

마우스 오른쪽 단추를 클릭한 다음 삭제를 클릭합니다.

  • 선택한 관계를 데이터베이스에서 영구히 삭제하시겠습니까?라는 메시지가 Access에 나타날 수 있습니다. 이 확인 메시지가 나타나면 를 클릭합니다.

참고: 테이블 관계에 포함된 테이블을 다른 사용자 또는 프로세스에서 사용 중이거나, 폼 등 열려 있는 데이터베이스 개체에서 사용 중이면 관계를 삭제할 수 없습니다. 이와 같은 경우에는 관련 테이블을 사용하는 모든 개체를 먼저 닫은 후 관계를 제거해야 합니다.

맨 위로 이동

테이블 관계 변경

테이블 관계를 변경하려면 관계 창에서 원하는 테이블 관계를 선택한 후 편집해야 합니다. 이렇게 하려면 관계선을 가리키도록 커서를 놓은 다음 선을 클릭하여 선택합니다. 선택한 관계선은 더 굵게 표시됩니다. 관계선을 선택한 상태에서 두 번 클릭하거나 디자인 탭의 도구 그룹에서 관계 편집을 클릭합니다. 관계 편집 대화 상자가 나타납니다.

관계 편집 대화 상자에서 필요한 사항을 변경합니다.

  1. 데이터베이스 도구 탭의 관계 그룹에서 관계를 클릭합니다.

    관계 창이 나타납니다. 관계를 정의하지 않은 상태에서 관계 창을 처음 열면 테이블 표시 대화 상자가 나타납니다. 이 대화 상자가 나타나면 닫기를 클릭합니다.

  2. 디자인 탭의 관계 그룹에서 모든 관계를 클릭합니다.

    관계가 있는 모든 테이블이 관계선과 함께 표시됩니다.

  3. 변경할 관계의 관계선을 클릭합니다. 선택한 관계선은 더 굵게 표시됩니다.

  4. 관계선을 두 번 클릭합니다.

  5. 관계를 변경한 다음 확인을 클릭합니다.

    관계 편집 대화 상자를 사용하면 테이블 관계를 변경할 수 있습니다. 특히 관계를 구성하는 어느 한쪽의 테이블 또는 쿼리를 변경하거나, 필드를 변경할 수 있습니다. 또한 조인 유형을 설정하거나, 참조 무결성을 적용하고 모두 적용 옵션을 선택할 수도 있습니다. 조인 유형에 대한 설명 및 조인 유형 설정 방법에 대한 자세한 내용은 조인 유형 설정 섹션을 참고하세요. 참조 무결성을 유지하는 방법 및 모두 적용 옵션을 선택하는 방법에 대한 자세한 내용은 참조 무결성 유지 섹션을 참고하세요.

조인 유형 설정

테이블 관계를 정의하면 관계에 대한 정보가 쿼리 디자인에 전달됩니다. 예를 들어 두 개의 테이블 사이에 관계를 정의한 다음 이들 테이블을 사용하는 쿼리를 만들면 Access에서는 관계에 지정된 필드를 기반으로 하여 기본적으로 연결되는 필드를 자동으로 선택합니다. 원하는 경우 쿼리를 작성할 때 이러한 초기 기본값을 재정의할 수 있지만 관계를 기초로 제공되는 값은 대부분 정확합니다. 매우 단순한 데이터베이스를 사용할 때를 제외하면 여러 테이블에서 데이터를 찾고 가져오는 작업을 자주 실행해야 하기 때문에 관계를 만들어 기본값을 설정하는 것은 시간을 절약해 줄 뿐 아니라 매우 유용합니다.

다중 테이블 쿼리는 공통 필드에서 연결되는 값을 찾아 둘 이상의 테이블에서 정보를 조합합니다. 이와 같이 연결되는 항목을 찾고 조합하는 작업을 조인이라고 합니다. 예를 들어 고객 주문을 표시하려는 경우, 고객 테이블과 주문 테이블의 고객 ID 필드를 조인하는 쿼리를 만듭니다. 이 쿼리의 결과에는 연결되는 항목이 발견된 행의 고객 정보와 주문 정보만 포함됩니다.

조인 유형은 각 관계를 정의할 때 지정할 수 있는 값 중 하나로, 조인 유형에 따라 Access의 쿼리 결과에 포함되는 레코드가 결정됩니다. 예를 들어 고객 ID를 나타내는 공통 필드를 사용하여 고객 테이블과 주문 테이블을 조인하는 쿼리가 있다고 가정해 보겠습니다. 기본 조인 유형인 내부 조인을 사용하면 쿼리는 공통 필드(조인된 필드)가 동일한 고객 행과 주문 행만 반환합니다.

그러나 아직 주문하지 않은 고객을 비롯하여 모든 고객을 쿼리 결과에 포함하려면  조인 유형을 내부 조인에서 왼쪽 우선 외부 조인으로 변경해야 합니다. 왼쪽 우선 외부 조인은 관계의 왼쪽 테이블에서는 모든 행을 반환하고 오른쪽 테이블에서는 연결되는 행만 반환합니다. 반대로 오른쪽 우선 외부 조인은 오른쪽 테이블의 모든 행과 왼쪽 테이블의 연결되는 행을 반환합니다.

참고: 이 경우 "왼쪽"과 "오른쪽"은 관계 창이 아니라 관계 편집 대화 상자에서의 테이블 위치를 나타냅니다.

관계에 속한 테이블을 조인하는 쿼리를 통해 주로 얻고자 하는 결과를 고려한 후 적절한 조인 유형을 설정해야 합니다.

조인 유형 설정

  1. 관계 편집 대화 상자에서 조인 유형을 클릭합니다.

    조인 속성 대화 상자가 나타납니다.

  2. 원하는 옵션을 클릭한 다음 확인을 클릭합니다.

다음 표에서는 고객 테이블과 주문 테이블을 사용할 경우 조인 속성 대화 상자에 표시되는 세 가지 옵션과 각각의 옵션에 사용되는 조인 및 각각의 경우 각 테이블에 모든 행이 포함되는지 아니면 연결되는 행만 포함되는지를 정리하여 보여 줍니다.

선택

관계형 조인

왼쪽 테이블

오른쪽 테이블

1. 두 테이블의 조인된 필드가 동일한 행만 포함합니다.

내부 조인

연결되는 행

연결되는 행

2. '고객'에서는 모든 레코드를 포함하고 '주문'에서는 조인된 필드가 동일한 레코드만 포함합니다.

왼쪽 우선 외부 조인

모든 행

연결되는 행

3. '주문'에서는 모든 레코드를 포함하고 '고객'에서는 조인된 필드가 동일한 레코드만 포함합니다.

오른쪽 우선 외부 조인

연결되는 행

모든 행

2번 또는 3번 옵션을 선택하면 관계에서 연결되는 행만 표시되는 쪽을 가리키는 화살표가 관계선에 표시됩니다.

조인 속성 대화 상자에서 필요한 사항 변경

  1. 데이터베이스 도구 탭의 관계 그룹에서 관계를 클릭합니다.

    관계 창이 나타납니다. 관계를 정의하지 않은 상태에서 관계 창을 처음 열면 테이블 표시 대화 상자가 나타납니다. 이 대화 상자가 나타나면 닫기를 클릭합니다.

  2. 디자인 탭의 관계 그룹에서 모든 관계를 클릭합니다.

    관계가 설정된 모든 테이블이 관계선과 함께 표시됩니다.

  3. 변경할 관계의 관계선을 클릭합니다. 선택한 관계선은 더 굵게 표시됩니다.

  4. 관계선을 두 번 클릭합니다.

    관계 편집 대화 상자가 나타납니다.

  5. 조인 유형을 클릭합니다.

  6. 조인 속성 대화 상자에서 옵션을 클릭한 다음 확인을 클릭합니다.

  7. 관계에 대해 필요한 사항을 모두 변경한 다음 확인을 클릭합니다.

맨 위로 이동

항상 참조 무결성 유지

참조 무결성은 레코드가 분리되는 것을 방지하고 더 이상 존재하지 않는 레코드를 참조하는 레코드가 없도록 참조를 동기화하기 위해 사용됩니다. 참조 무결성을 유지하려면 테이블 관계에 대해 참조 무결성을 유지하도록 설정해야 합니다. 참조 무결성을 유지하도록 설정하면 해당 테이블 관계의 참조 무결성을 위반하는 모든 작업이 Access에서 거부됩니다.즉, Access에서 참조 대상을 변경하는 업데이트 및 참조 대상을 제거하는 삭제 작업을 모두 거부합니다. Access에서 관련된 모든 행이 적절하게 변경되도록 참조 업데이트 및 삭제 내용을 전파하는 방법은 모두 적용 옵션 설정 섹션을 참고하십시오.

참조 무결성 설정/해제

  1. 관계 창에서 변경할 관계의 관계선을 클릭합니다. 선택한 관계선은 더 굵게 표시됩니다.

  2. 관계선을 두 번 클릭합니다.

관계 편집 대화 상자가 나타납니다.

  1. 항상 참조 무결성 유지 확인란을 선택합니다.

  2. 관계에 대해 필요한 사항을 모두 변경한 다음 확인을 클릭합니다.

참조 무결성을 유지하도록 설정하면 다음과 같은 규칙이 적용됩니다.

  • 기본 테이블의 기본 키 필드에 없는 값은 관련된 테이블의 외래 키 필드에 입력할 수 없습니다. 이는 분리된 레코드가 만들어지는 것을 막기 위한 조치입니다. 

  • 관련 테이블에 연결되는 레코드가 있으면 기본 테이블에서 해당 레코드를 삭제할 수 없습니다. 예를 들어 주문 테이블에 특정 직원에게 지정된 주문이 있으면 직원 테이블에서 이 직원 레코드를 삭제할 수 없습니다. 관련 레코드 모두 삭제 확인란을 선택하면 기본 레코드 관련된 모든 레코드를 한 번에 삭제할 수 있습니다.

  • 기본 테이블의 기본 키 값을 변경할 경우 분리된 레코드가 만들어질 수 있으므로 해당 값을 변경할 수 없습니다. 예를 들어 주문 테이블에서 주문 번호를 변경하려고 할 때 이 주문에 포함된 항목이 주문 정보 테이블의 주문에도 할당되어 있다면 주문 번호를 변경할 수 없습니다. 관련 필드 모두 업데이트 확인란을 선택하면 기본 레코드 관련된 모든 레코드를 한 번에 업데이트할 수 있습니다.

    참고 사항: 참조 무결성을 설정하는 데 문제가 있는 경우에는 참조 무결성을 유지하는 데 필요한 다음 조건을 확인하십시오.

    • 기본 테이블의 공통 필드가 기본 키이거나 고유 인덱스를 가지고 있어야 합니다.

    • 공통 필드의 데이터 형식이 같아야 합니다. 그러나 숫자 필드의 필드 크기 속성이 정수(Long)로 설정된 경우에는 숫자 필드를 일련 번호 필드와 연결할 수 있습니다.

    • 두 테이블 모두 같은 Access 데이터베이스에 있어야 합니다. 연결된 테이블 간에는 참조 무결성을 유지할 수 없습니다. 그러나 원본 테이블이 Access 형식인 경우에는 해당 테이블이 저장되어 있는 데이터베이스를 연 다음 해당 데이터베이스에서 참조 무결성을 설정할 수 있습니다.

모두 적용 옵션 설정

관계의 "일" 쪽 값을 변경해야 하는 경우에는 영향을 받는 모든 행을 Access에서 한 번에 자동 업데이트하도록 해야 합니다 이렇게 하면 에서 업데이트가 완벽하게 끝나므로 일부 행만 업데이트되는 불일치 상태가 발생하지 않습니다. 이를 위해 Access에서는 관련 필드 모두 업데이트 옵션을 지원합니다. 참조 무결성을 유지하도록 설정하고 관련 필드 모두 업데이트 옵션을 선택한 후 기본 키를 업데이트하면 Access에서는 기본 키를 참조하는 모든 필드를 자동으로 업데이트합니다.

특정 행 및 해당 행과 관련된 모든 레코드를 삭제해야 할 수도 있습니다. 운송업체 레코드와 해당 운송업체의 모든 관련 주문을 함께 삭제해야 하는 경우를 예로 들 수 있습니다. Access에서는 이런 경우에 사용할 수 있도록 관련 레코드 모두 삭제 옵션을 지원합니다. 참조 무결성을 유지하도록 설정하고 관련 레코드 모두 삭제 옵션을 선택한 다음 기본 키가 포함된 레코드를 삭제하면 해당 기본 키를 참조하는 레코드도 모두 Access에서 자동으로 삭제됩니다.

모두 업데이트 옵션과 모두 삭제 옵션 설정 또는 해제

  1. 관계 창에서 변경할 관계의 관계선을 클릭합니다. 선택한 관계선은 더 굵게 표시됩니다.

  2. 관계선을 두 번 클릭합니다.

관계 편집 대화 상자가 나타납니다.

  1. 항상 참조 무결성 유지 확인란을 선택합니다.

  2. 관련 필드 모두 업데이트 또는 관련 레코드 모두 삭제 중 하나를 선택하거나 둘 다 선택합니다.

  3. 관계에 대해 필요한 사항을 모두 변경한 다음 확인을 클릭합니다.

참고: 일련 번호 필드의 값은 변경할 수 없으므로 기본 키가 일련 번호 필드인 경우에는 관련 필드 모두 업데이트 확인란을 선택해도 아무런 영향이 없습니다.

맨 위로 이동

Office 기술 확장
교육 살펴보기
새로운 기능 우선 가져오기
Office Insider 참여

이 정보가 유용한가요?

의견 주셔서 감사합니다!

피드백을 주셔서 감사합니다. Office 지원 에이전트와 연락하는 것이 도움이 될 것 같습니다.

×