관계 정보

관련 테이블을 생성하려면 두 테이블 간에 관계를 정의해야 합니다. 관계에서 지정한 조건에 따라 한 필드에 있는 일치 필드(키 필드라고도 함)의 값이 다른 쪽의 관계에 있는 일치 필드의 값과 성공적으로 비교할 때 관계가 설정됩니다.

예를 들어, 학생 테이블의 학생 ID 필드 값이 수업 테이블의 학생 ID 필드 값과 같은 경우 두 테이블의 레코드가 관련되도록 관계를 생성할 수 있습니다.

데이터베이스에서 관계를 생성하고 변경하고 확인하려면 관계형 그래프 작업하기를 참조하십시오.

관계에 사용된 필드

일치 필드는 테이블의 레코드를 식별하는 하나의 필드이거나 필드의 조합일 수 있습니다. 예를 들어, 일치 필드는 관계의 조건과 비교할 때 관계가 성공했는지를 확인하는 날짜를 보유할 수 있습니다.

는 일치 필드의 유형입니다. 키는 일반적으로 ID(예: 제품 ID)로 사용되는 값을 보유합니다. 다음과 같은 두 가지 유형의 키가 있습니다.

  • 주요 키 – 식별하는 레코드와 동일한 테이블에 있는 필드. 주요 키 값은 고유해야 하며 비어 있는 값(null)이 아니어야 합니다. 한 테이블에 주요 키는 하나만 있지만 키를 하나 이상의 필드로 구성할 수 있습니다. 기본적으로 파일을 생성하거나 데이터베이스 관리 대화상자에서 테이블을 생성할 때, 새로운 테이블은 주요 키 필드를 포함합니다.
  • 외부 키 – 다른 테이블의 레코드를 식별하는 한 테이블의 필드. 외부 키의 값은 테이블에서 고유한 값이 아니어도 되며 비어 있을 수 있습니다(null). 한 테이블에 여러 개의 외부 키가 존재할 수 있습니다.

판매 데이터베이스에서 고객 테이블과 송장 테이블은 각각 고객 ID 필드를 사용하여 각각의 고객과 구입을 고유하게 식별할 수 있습니다. 고객 테이블의 고객 ID 필드는 각 고객을 고유하게 식별하는 필드이므로 주요 키 필드입니다. 송장 테이블의 고객 ID 필드는 이 예제의 경우 고객 테이블인 다른 테이블에서 온 값이므로 외부 키 필드입니다. 하지만 두 테이블의 고객 ID 필드는 일치 필드입니다.

두 테이블이 고객 ID 필드를 사용하여 관련되어 있는 경우 고객 테이블에서 레코드가 일치하는 고객 ID로 각각의 송장을 표시하는 포털을 나타낼 수 있고, 송장 테이블에서 동일한 고객 ID로 각각의 송장은 일관성 있는 고객 데이터를 나타낼 수 있습니다.

FileMaker Pro는 관련 테이블의 일치 필드에 대한 인덱스된 값을 검색하여 현재 테이블의 레코드에 대한 관계 조건을 충족하는 관련 레코드를 결정합니다. 따라서 관련 테이블의 일치 필드는 인덱스될 수 있어야 합니다.

일치 필드는 텍스트, 숫자, 날짜, 시간, 타임스탬프 또는 계산(텍스트, 숫자, 날짜, 시간 또는 타임스탬프 결과 포함) 중 하나의 필드 유형이어야 합니다.

관계 유형

관계는 일관된 데이터 입력을 진행하고 데이터베이스에서 규칙을 적용합니다. FileMaker Pro는 다음의 관계 유형을 지원합니다.

관계 유형

설명

일대일

한 테이블에 있는 하나의 레코드는 다른 테이블에 있는 단 하나의 레코드와 연관되어 있습니다. 일대일 관계를 참조하십시오.

일대다 또는
다대일

한 테이블에 있는 하나의 레코드는 다른 테이블에 있는 하나 이상의 레코드와 연관될 수 있습니다. 또는 한 테이블에 있는 하나 이상의 레코드가 다른 레코드에 있는 하나의 레코드와 연관될 수 있습니다. 일대다 관계를 참조하십시오.

셀프 조인

두 주요 키는 동일한 테이블의 두 일치 항목으로 정의됩니다. 셀프 조인 관계를 참조하십시오.

다른 관계 유형으로 다대다 관계가 있습니다. 관계형 데이터베이스 시스템에서는 일반적으로 두 테이블 간에 직접적인 다대다 관계를 구현할 수 없습니다. 하지만 세 번째, 중간 테이블을 사용하여 다대다 관계를 지원하는 데이터베이스를 설계할 수 있습니다. 다대다 관계를 참조하십시오.

참고 

  • 하나의 관계에 사용되는 일치 필드는 검색이 다른 관계를 기반으로 하는 한 대상 필드 검색이 될 수 있습니다.
  • 전역 필드를 인덱스할 수 없으므로 관련 테이블에서 일치 필드로 사용할 수 없지만 현재 테이블에서 일치 필드로 사용할 수 있습니다.
  • 또한 관계를 사용하면 복잡한 검색을 해결하기 위해 데이터를 그룹지을 수 있습니다. 예를 들어, 관계는 현재 재고 수준, 판매 계획 및 다중 테이블 간에 데이터를 찾기 위해 필요한 다른 작업을 결정할 수 있습니다.
  • 원본 테이블의 접근 권한을 사용하여 관련 데이터에 권한을 제한하거나 방지할 수 있습니다. 예를 들어, 사용자가 접근 권한이 있어야 해당 관계에서 관련 필드를 보도록 관련 일치 필드를 볼 수 있습니다.