Applies ToMicrosoft 365용 Access Access 2024 Access 2021 Access 2019 Access 2016

데이터베이스를 제대로 디자인하려면 중복되는 데이터가 있어서는 안 됩니다. 이를 위해 데이터를 여러 개의 주제 기반 테이블로 구분하여 각 데이터가 한 번씩만 나타나도록 할 수 있습니다. 그런 다음 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. 관계 디자인 탭의 관계 그룹에서 모든 관계를 클릭합니다.이렇게 하면 데이터베이스의 정의된 모든 관계가 표시됩니다. 탐색 옵션 대화 상자에서 숨겨진 개체 표시 옵션이 선택되어 있지 않으면 숨겨진 테이블, 즉 테이블의 속성 대화 상자에서 숨김 확인란이 선택되어 있는 테이블과 해당 관계는 표시되지 않습니다.

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

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

관계 디자인 탭의 도구 그룹에서 다음을 수행합니다.

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

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

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

관계 디자인 탭의 관계 그룹에서 다음을 수행합니다.

  • 테이블 추가    관계 창에 표시할 테이블을 선택할 수 있습니다.

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

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

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

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

맨 위로 이동

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.