관계 사용

테이블 관계 시작

브라우저가 비디오를 지원하지 않습니다. Microsoft Silverlight, Adobe Flash Player 또는 Internet Explorer 9를 설치하세요.

방법

관계형 데이터베이스는 테이블 사이의 데이터를 결합할 수 있다는 점에서 무척 유용합니다. 이를 위해서는 먼저 테이블 사이의 관계를 설정해야 합니다. 그런 다음 Access가 쿼리, 양식, 보고서의 데이터를 결합하도록 합니다.

데이터베이스에서 기존에 정의된 모든 관계를 보려면 Access 서식 파일을 열고 데이터베이스 도구 탭으로 이동한 다음 관계를 선택합니다.

참고: 새 데이터베이스를 여는 경우 또는 기존에 테이블 관계가 없는 경우에는 Access에 테이블 또는 쿼리를 추가하라는 메시지가 표시됩니다. 관계를 추가하려면 최소 두 개의 테이블이 있어야 합니다. 먼저 테이블을 모두 작성하는 것이 가장 좋습니다. 자세한 내용은 조회 마법사를 사용하여 관계 만들기관계 창을 사용하여 관계 만들기를 참조하세요.

관계 보기의 이해

관계에 표시된 선은 테이블 사이의 연결을 나타냅니다. 다음 이미지에서 왼쪽에 있는 테이블이 부모 테이블입니다. 오른쪽에 있는 테이블은 자식 테이블입니다. 두 테이블 사이의 선은 데이터를 일치시키는 데 사용되는 필드(주문 ID와 제품 ID)를 연결합니다.

관계는 부모 필드와 자식 필드 사이의 선으로 표시됩니다.

선과 기호를 통해 테이블 사이의 관계를 파악할 수 있습니다.

  • 굵은 연결선은 참조 데이터 무결성을 강요하는 것입니다. 좋습니다. 데이터를 동기화합니다.

  • 그림에 표시된 숫자 1은 해당 테이블에 일치하는 레코드가 하나만 존재할 수 있음을 나타냅니다. 주문 테이블에서 각 주문에는 하나의 레코드만 일치됩니다.

  • ∞ 기호는 여러 레코드가 동일한 ID를 포함할 수 있음을 나타냅니다. 주문 정보 테이블에서 하나의 주문에 여러 제품이 포함될 수 있으므로 하나의 주문(주문 ID)이 두 번 이상 나타날 수 있습니다.

테이블 사이의 관계 유형

테이블 사이의 관계에는 세 가지 유형이 있습니다.

  • 일대일. 각 테이블의 각 항목이 한 번만 나타납니다. 예를 들어, 각 직원은 하나의 회사 차량만 사용할 수 있습니다. 자세한 내용은 일대일 관계 만들기를 참조하세요.

  • 일대다. 하나의 테이블에 있는 하나의 항목이 다른 테이블의 있는 여러 항목과 관계를 가질 수 있습니다. 예를 들어, 하나의 구매 주문에 여러 제품이 포함될 수 있습니다.

  • 다대다. 하나의 테이블에 있는 하나 이상의 항목이 다른 테이블에 있는 하나 이사의 항목과 관계를 가질 수 있습니다. 예를 들어, 하나의 주문은 여러 제품을 포함할 수 있고, 하나의 제품은 여러 주문에 나타날 수 있습니다. 자세한 내용은 다대다 관계 만들기를 참조하세요.

일대다 관계

일대다 관계는 제대로 설계된 데이터베이스에서 가장 일반적으로 볼 수 있는 관계입니다.

여러 테이블 사이의 관계는 일반적으로 테이블 하나의 기본 키에 의존합니다. 기본 키는 각 레코드의 고유 식별자(주로 숫자)입니다. 두 개의 서로 다른 테이블의 정보가 관계를 가지고 있음을 보이려면 일반적으로 테이블 하나의 기본 키를 사용하여 관계를 만듭니다.

여기에 표시된 관계에서 예를 들어 연락처 테이블의 각 사용자에는 기본 키인 ID가 있습니다(옆에 있는 키 기호로 표시). 해당 ID는 자산 테이블의 소유자 필드에도 표시됩니다. 자산과 연결된 사람을 전자 메일로 보내기 위해 전자 메일 주소 필드에서 값을 얻습니다. 이렇게 하여 자산 테이블의 소유자 필드에서 값을 찾아 연락처 테이블에서 해당 ID를 검색합니다. 연결선의 한 끝에 있는 숫자 1과 ∞ 기호는 일대다 관계이기 때문에 하나의 연락처가 많은 자산과 연결될 수 있습니다.

일대다 관계

관계 편집

기존 데이터베이스를 수정할 때 또는 서식 파일에서 데이터베이스를 만들 때 필요에 따라 기존 관계를 편집할 수 있습니다.

참고: 작업하려는 테이블이 사용 중이라면 먼저 테이블과 테이블을 사용하고 있는 열려 있는 개체를 닫습니다.

  1. 데이터베이스 도구 > 관계를 선택합니다.

  2. 관계있는 두 개의 테이블을 연결하는 선을 선택합니다.

    팁: 원하는 관계가 표시되지 않는 경우 디자인 탭에 있는 관계 그룹에서 모든 관계를 선택합니다.

  3. 디자인 탭에서 관계 편집을 선택합니다.

    테이블 간 이미 존재하는 관계 편집

    테이블/쿼리는 왼쪽에 있는 부모 테이블입니다(이 예제에서는 고객).

    관계 테이블/쿼리는 자식 테이블입니다(이 예제에서는 주문).

    관계 보기에서 테이블이 이 순서대로 표시되지 않는다 하더라도 대화 상자의 배치를 통해 테이블을 연결하는 선의 방향과 관계를 알 수 있습니다. 이는 예를 들어 일대다 관계인 경우 왼쪽 테이블이 ‘일’(부모 테이블)이고 오른쪽 테이블이 ‘다’(자식 테이블)임을 나타내므로 중요합니다.

  4. 테이블을 연결하는 필드를 변경하려면 표시된 각 테이블 아래에 있는 다른 필드를 선택합니다. 이 예제에서는 고객 테이블의 ID 필드가 주문 테이블의 고객 ID 필드에 연결됩니다.

  5. Access에서 테이블 사이의 데이터를 동기화하는 방식을 변경합니다.

    항상 참조 무결성 유지

    올바르지 않은 데이터를 방지하고 테이블 관계 전체에서 참조를 동기화하려면 이 옵션을 선택합니다.

    예를 들어, 직원 테이블과 직원 복지 테이블 사이에 일대일 관계가 있다고 가정해 보겠습니다. 직원 하나가 회사를 그만두어서 직원 테이블에서 해당 직원을 제거하면 직원 복지 테이블에 있는 해당 직원 레코드도 제거됩니다.

    때에 따라 항상 참조 무결성을 유지하면 안 되는 경우가 있습니다. 예를 들어, 운송업체와 주문 사이에 일대다 관계가 있다고 가정해 보겠습니다. 만약 주문 테이블의 주문에 일치되는 운송업체를 삭제하면 해당 주문은 고아가 됩니다. 즉, 이 주문에는 여전히 운송업체 ID가 포함되어 있지만 이 ID가 참조하는 레코드가 더 이상 존재하지 않기 때문에 유효하지 않게 됩니다.

    관련 필드 모두 업데이트

    모든 관련 테이블에서 관련 필드의 데이터가 항상 업데이트되도록 하려면 이 옵션을 선택합니다.

    예를 들어, 운송업체의 ID를 변경하려고 하는 경우를 생각할 수 있습니다. 이 옵션을 선택한 경우, 운송업체 ID를 변경하면 운송업체 테이블뿐 아니라 주문 테이블과 같이 운송업체 ID가 포함된 다른 연결된 테이블의 운송업체 ID도 모두 업데이트됩니다.

    관련 레코드 모두 삭제

    레코드가 일부 테이블에서 삭제되어도 다른 테이블에서는 그대로 유지되어야 하는지 여부에 따라 이 옵션을 선택할지 여부를 결정하게 됩니다.

    예를 들어, 운송업체를 삭제한다고 가정해보겠습니다. 이 옵션을 선택한 경우, 해당 운송업체가 배송한 (주문 테이블에 있는) 모든 주문을 포함하여 이 운송업체 ID를 참조하는 모든 테이블의 레코드가 삭제됩니다. 주문 기록을 삭제하려는 경우에만 이 옵션을 선택합니다.

  6. 테이블 사이의 관계를 내부 조인에서 외부 조인으로 변경하려면 조인 유형 단추를 선택합니다. 자세한 내용은 외부 조인을 사용하여 쿼리 만들기를 참조하세요.

테이블 관계 삭제

참고: 작업하려는 테이블이 사용 중이라면 먼저 테이블과 테이블을 사용하고 있는 열려 있는 개체를 닫습니다.

테이블 관계를 제거하려면

  1. 데이터베이스 도구 > 관계를 선택합니다.

  2. 관계있는 두 개의 테이블을 연결하는 선을 선택합니다.

    팁: 원하는 관계가 표시되지 않는 경우 디자인 탭에 있는 관계 그룹에서 모든 관계를 선택합니다.

  3. Delete 키를 누릅니다. 관계를 정말로 삭제할 것인지 묻는 메시지가 표시되면 를 선택합니다.

참고: 관계를 제거하면 해당 관계에 참조 무결성 지원이 존재하는 경우 이 또한 모두 제거됩니다. 결과적으로 Access는 일대다 관계의 '다' 측에 고아 레코드가 발생하도록 만드는 변경 사항을 더 이상 방지할 수 없습니다.

더 많은 정보를 원하는 경우

관계 만들기, 편집 또는 삭제

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

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

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