관계형 데이터베이스 계획하기

관계형 그래프를 사용하여 관계형 데이터베이스를 생성하기 전에 종이나 화면에 데이터베이스를 설계합니다. 데이터베이스 용어로 개발하는 계획을 엔터티 관계 다이어그램이라고 합니다.

FileMaker Pro 맞춤형 App을 설계하기 위한 일반적인 방법은 맞춤형 App 생성하기를 참조하십시오.

관계형 데이터베이스 계획하기:

  1. 관계형 데이터베이스에 필요한 정보 범주를 결정합니다. 이러한 범주는 FileMaker Pro의 테이블이 됩니다.

    예를 들어, 판매 데이터베이스는 다음 테이블을 포함할 수 있습니다. 고객: 고객 정보 포함, 송장: 주문 정보 포함, 제품: 제품 정보 포함.

  2.  

    고객 송장 및 제품 테이블

  3. 테이블이 서로 어떻게 관련되는지 결정합니다. "고객은 제품을 주문한다"와 "송장은 고객의 주문을 추적한다"와 같이 범주들이 어떻게 상호 작용하는지를 서술하는 간단한 문장을 써서 이 작업을 할 수 있습니다.
  4. 테이블 간에 관계를 나타내려면 한 테이블을 다른 테이블에 연결합니다. 예를 들어, 고객이 송장을 가질 수 있고 송장이 제품을 보유할 수 있습니다.

    테이블이 다른 테이블과 관계가 없으면 불필요한 테이블일 것입니다. 이 예제에서는 직원 테이블이 이 관계형 데이터베이스에 맞지 않습니다.

  5.  

    직원 테이블은 제외하고 서로에 대해 관계를 표시하는 세 개의 테이블

  6. 대표 기호로 연결하여 테이블 간에 관계의 유형을 나타냅니다.
    • 일대일 관계에서 테이블 A의 한 레코드는 테이블 B의 한 레코드와 일치합니다.
    • 일대다 관계에서 테이블 A의 한 레코드는 테이블 B의 여러 레코드와 일치합니다.
    • 다대다 관계에서 테이블 A의 여러 레코드는 테이블 B의 여러 레코드와 일치합니다.

    관계 정보를 참조하십시오.

  7.  

    서로에 대한 관계를 표시하는 세 개의 테이블

    이 예제는 다음을 보여줍니다.

    • 고객이 여러 송장을 가질 수 있습니다
    • 제품이 여러 송장에 나타날 수 있습니다
    • 송장이 여러 제품을 보유할 수 있습니다
  8. 송장과 제품 간에 다대다 관계가 있음에 주의합니다. 두 테이블 간에 다대다 관계를 직접 설정할 수 없습니다.

    관계형 데이터베이스는 일대일 및 일대다 관계를 직접 처리합니다. 다대다 관계를 두 개의 일대다 관계로 분리하는 중간 테이블을 사용하여 다대다 관계를 해결해야 합니다. 이 예제에서 문제를 해결하려면 중간 테이블 품목명을 추가하여 판매된 제품에 대한 정보를 저장합니다.

  9.  

    품목명 테이블을 연결 테이블로 사용한 조정된 관계

    다대다 관계를 해결한 후에 이 예제는 다음을 보여줍니다.

    • 고객이 여러 송장을 가질 수 있습니다
    • 송장이 여러 품목명을 보유할 수 있습니다
    • 제품이 여러 품목명에 나타날 수 있습니다
  10. 각 테이블에 필요한 필드를 결정합니다.

    각 테이블은 하나의 대상만을 가지고 테이블에 있는 모든 필드는 그 대상만을 기술합니다. 예를 들어, 고객 테이블의 한 레코드에 있는 필드들은 한 고객에 대한 모든 정보를 함께 저장합니다.

    같은 이유로 각 고객에게 고유한 식별 번호를 할당해야 합니다. 데이터베이스에서 이것이 주요 키입니다. 새로운 고객이 추가되지 않으면 테이블에 고객 식별 번호가 입력되지 않습니다. 그래서 고객 번호의 존재가 레코드의 존재를 결정합니다. 고객 테이블은 고객의 이름, 주소 및 전화 번호에 대한 필드를 가질 수도 있습니다.

    제품 테이블은 제품 식별 번호, 각 제품에 대한 단위 가격 및 재고량에 대한 필드를 가질 수 있습니다. 품목명 테이블은 제품과 송장 식별 번호, 이름, 단위 가격, 수량 및 판매된 각 제품의 총 가격에 대한 필드를 가질 수 있습니다. 송장 테이블은 송장 식별 번호, 주문 날짜 및 판매원에 대한 필드를 가질 수 있습니다.

  11.  

    각 테이블에 나열된 필드

  12. 각 테이블에 대해 주요 키 필드(또는 다조건 관계에 대한 필드)를 결정하고 계획에 각 필드를 표시합니다. 그런 다음 각 테이블의 외부 키 필드를 표시합니다.

    이 예제에서

    • 주요 키는 고객::고객 ID, 송장::송장 ID, 제품::제품 ID 및 품목명::품목 ID입니다
    • 외부 키는 송장::고객 ID 및 품목명::제품 ID입니다
  13. 송장 테이블에서 고객 데이터를 표시하려면 관계를 생성할 수 있도록 두 테이블 간에 공통 필드가 있어야 합니다. 고객 ID가 공통 필드입니다. 고객 테이블에서는 주요 키이고 송장 테이블에서는 외부 키입니다.

    품목명 테이블에서 제품 ID는 품목명과 제품 테이블 간의 공통 필드입니다. 제품 ID 테이블에서 이 필드는 주요 키이고 품목명 테이블에서는 외부 키입니다.

    이와 같은 키 필드는 일치 필드의 유형입니다. 관계 정보를 참조하십시오.

     

    각 테이블에서 동그라미로 표시된 키 필드

  14. 각 테이블에 대해 어떤 필드가 데이터를 저장할 것인지 그리고 어떤 필드가 다른 (관련) 테이블에서 사용될 것인지를 결정합니다.

    테이블의 대상을 기반으로 어디에 데이터를 저장하는 것이 타당하고 관련 테이블의 데이터를 어디에 사용하는 지를 알 수 있습니다. 키 필드 외에 모든 필드는 데이터베이스에서 한 번만 나타나야 합니다. 테이블의 대상과 관련되지 않은 일치 항목을 제거합니다.

  15.  

    테이블에서 지워진 불필요한 필드

  16. 각 주요 키를 관련 테이블의 해당 외부 키에 연결합니다.

    테이블 간에 관계를 설정하면 해당 키 필드가 관계의 조건과 일치하는 데이터를 포함하게 됩니다.

  17.  

    테이블에서 키 필드 간의 관계

    이 계획은 이제 다음을 나타냅니다.

    • 고객은 여러 다른 송장을 가질 수 있지만 개별 송장은 단 한 고객만 보유할 수 있습니다
    • 송장은 여러 품목명을 보유할 수 있지만 개별 품목명은 하나의 송장에 나타납니다
    • 제품은 여러 다른 품목명에 나타날 수 있지만 개별 품목명은 단 하나의 제품만 보유합니다