관계 사용

테이블 관계 시작

브라우저가 비디오를 지원하지 않습니다. 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는 일대다 관계의 '다' 측에 고아 레코드가 발생하도록 만드는 변경 사항을 더 이상 방지할 수 없습니다.

더 많은 정보를 원하는 경우

관계 만들기

관계 삭제

Excel 교육

Outlook 교육

데이터베이스에 테이블을 추가한 다음에는 테이블 간의 관계를 만들어야 합니다. 관계는 데이터를 나눈 뒤에 테이블을 다시 연결해 주고 쿼리를 설계하고 데이터로부터 원하는 답을 얻는 방식에 큰 영향을 주기 때문에 무척 중요합니다.

관계형 데이터베이스에서는 테이블 간 세 가지 유형의 관계를 사용합니다. 일대다, 다대다, 일대일이 그것입니다.

어떤 관계를 사용할 것인지는 데이터에 따라 달라집니다. 하나의 테이블에 있는 하나의 레코드가 다른 테이블에 있는 하나 이상의 레코드와 관계가 있으면 일대다 관계를 갖습니다.

샘플 데이터베이스도 이러한 관계를 갖고 있습니다. 고객은 하나 이상의 전화 번호를 갖고 있으며 각 전화 번호는 오직 하나의 고객하고만 관계가 있습니다.

테이블 A에 있는 하나의 레코드가 테이블 B에 있는 하나 이상의 레코드와 관계가 있고 테이블 B에 있는 하나의 레코드 또한 테이블 A에 있는 하나 이상의 레코드와 관계가 있으면 다대다 관계를 갖습니다.

다대다 관계는 주문 추적 데이터베이스에서 흔히 볼 수 있습니다. 하나의 주문에는 여러 개의 제품이 포함되어 있을 수 있고, 하나의 제품은 여러 개의 주문의 일부일 수 있기 때문입니다.

학생 데이터베이스에서도 다대다 관계를 볼 수 있습니다. 여러 학생들이 여러 강의실을 사용할 수 있기 때문입니다.

하나의 테이블에 있는 하나의 레코드가 다른 테이블에 있는 하나의 레코드와 관계가 있으면 일대일 관계를 갖습니다. 일례로 한 명의 직원이 한 대의 회사 차량을 운전하는 경우를 들 수 있습니다. 그러나 일대일 관계는 별로 일반적이지 않습니다.

데이터베이스 도구관계를 차례로 선택합니다. 관계 창이 열립니다. 이 창은 꽤 자주 사용하게 됩니다.

바로 여기서 대부분의 관계를 작성하고 관리합니다. 전형적인 관계를 볼 수 있습니다. 두 테이블 사이에 선이 하나 있습니다. 선은 테이블 간에 관계가 있음을 나타냅니다.

이것은 일대다 관계인 것도 알 수 있습니다. 관계 선에 ‘1’과 무한대 기호가 있는 것을 보면 쉽게 알 수 있습니다. 이러한 기호는 몇 가지 중요한 개념을 나타냅니다.

첫째, ‘1’ 측에 있는 테이블은 부모 테이블이고 ’다' 측에 있는 테이블은 자식 테이블입니다.

둘째, 대부분의 관계에는 '측'이 있습니다. 이 경우에는 '1' 측에 테이블이 하나 있고, '다' 측에 테이블이 또 하나 있습니다.

측은 쿼리 설계 방식에 영향을 주기 때문에 중요합니다.

이제 관계 선을 선택한 다음 리본에서 관계 편집을 선택합니다.

다음과 같은 세 가지 관계 설정이 데이터에 영향을 주는 동시에 관계를 제대로 사용할 수 있도록 해 줍니다. 참조 무결성, 연속 업데이트, 관련 항목 삭제가 그것입니다. 기능은 다음과 같습니다.

참조 무결성은 양측 테이블의 레코드를 동기화합니다. 데이터를 정확하게 유지하기 위한 무척 중요한 기능이므로 거의 언제나 설정하는 것이 좋습니다.

참조 무결성이 적용된 상태에서는 고객 테이블에 이름이 없으면 전화 번호를 추가할 수 없습니다. 이렇게 하면 고아, 즉 부모 레코드가 없는 레코드가 만들어지지 않게 됩니다.

주문이 첨부되지 않은 판매량 수치가 있다고 생각해 보면 참조 무결성이 중요한 이유를 알 수 있을 것입니다.

연속 업데이트를 설정하면 부모 측 변경 내용이 자식 또는 '다' 측의 관련 레코드에 업데이트됩니다.

예를 들어 고객이 이름을 변경한 경우 고객 테이블에서 해당 내용을 변경하면 관련 레코드가 모두 변경됩니다.

관련 항목 삭제 설정은 데이터 삭제 허용 여부를 제어합니다. 이 옵션을 선택하지 않으면 데이터를 삭제할 수 없습니다. 이 옵션을 선택한 경우에는 하나의 레코드를 삭제하면 이 레코드와 관련된 모든 것이 삭제됩니다.

예를 들어, 고객을 삭제하면 고객의 전화 번호도 삭제됩니다.

이렇게 하면 고객이 없는 전화 번호와 같은 고아 레코드가 생기는 것을 방지할 수 있습니다. 반면 비즈니스 규칙에 의해 데이터를 삭제하지 못할 수 있으므로 유의하시기 바랍니다. 비즈니스 규칙은 데이터베이스 설계에 중대한 영향을 미칠 수 있습니다.

지금까지 테이블 관계에 대해 알아보았습니다. Access 관계 창에서 작업하는 방법과, Access 데이터베이스를 더욱 효과적으로 사용할 수 있게 해 주는 관계 설정도 살펴보았습니다.

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

이 정보가 유용한가요?

의견 주셔서 감사합니다!

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

×