MS 액세스-관련 데이터

이 장에서는 관련 데이터의 기본 사항을 이해합니다. 서로 다른 데이터에 대해 이야기하고 관계를 생성하기 전에 데이터가 필요한 이유를 검토하겠습니다. 모두 정규화로 돌아갑니다.

표준화

데이터베이스 정규화 또는 단순히 정규화는 데이터 중복을 최소화하기 위해 관계형 데이터베이스의 열 (속성) 및 테이블 (관계)을 구성하는 프로세스입니다. 전반적인 성능, 무결성 및 수명을 개선하기 위해 여러 테이블에 걸쳐 데이터를 분할하는 프로세스입니다.

  • 정규화는 데이터베이스에서 데이터를 구성하는 프로세스입니다.

  • 여기에는 데이터를 보호하고 중복성과 불일치 종속성을 제거하여 데이터베이스를보다 유연하게 만들기 위해 설계된 규칙에 따라 테이블을 만들고 해당 테이블 간의 관계를 설정하는 것이 포함됩니다.

이제 데이터가 포함 된 다음 표를 살펴 보겠습니다.하지만 문제는이 데이터가 상당히 중복되어 데이터 입력 중에 오타 및 불일치 구문이 발생할 가능성이 높아진다는 것입니다.

CustID 이름 주소 쿠키 수량 가격 합계
1 에델 스미스 12 Main St, 알링턴, VA 22201 S 초콜릿 칩 5 $ 2.00 $ 10.00
2 톰 윌버 1234 Oak Dr., Pekin, IL 61555 Choc 칩 $ 2.00 $ 6.00
에틸 대장간 12 Main St., 알링턴, VA 22201 초콜릿 칩 5 $ 2.00 $ 10.00

이 문제를 해결하려면 데이터를 재구성하고 여러 테이블로 분할하여 다음 세 개의 표에 표시된 것처럼 중복성을 제거해야합니다.

여기에는 고객 용 테이블이 하나 있고, 두 번째 테이블 은 주문 용이고, 세 번째 테이블 은 쿠키 용입니다.

여기서 문제는 여러 테이블의 데이터를 분할하는 것만으로는 한 테이블의 데이터가 다른 테이블의 데이터와 관련되는 방식을 알려주는 데 도움이되지 않는다는 것입니다. 여러 테이블의 데이터를 연결하려면 외부 키를Orders 표.

관계 정의

관계는 일반적으로 두 테이블에서 이름이 같은 키 열의 데이터를 일치시켜 작동합니다. 대부분의 경우 관계는 각 행에 대한 고유 식별자를 제공하는 한 테이블의 기본 키와 다른 테이블의 외래 키 항목과 일치합니다. 테이블 간의 관계에는 세 가지 유형이 있습니다. 생성되는 관계 유형은 관련 열이 정의 된 방식에 따라 다릅니다.

이제 세 가지 유형의 관계를 살펴 보겠습니다.

일대 다 관계

일대 다 관계는 가장 일반적인 관계 유형입니다. 이러한 유형의 관계에서 테이블 A의 행은 테이블 B에서 일치하는 행을 많이 가질 수 있지만 테이블 B의 행은 테이블 A에서 일치하는 행을 하나만 가질 수 있습니다.

예를 들어, Customers 및 Orders 테이블에는 일대 다 관계가 있습니다. 각 고객은 여러 주문을 할 수 있지만 각 주문은 한 고객 에게서만 발생합니다.

다 대다 관계

다 대다 관계에서 테이블 A의 행은 테이블 B에 일치하는 많은 행을 가질 수 있으며 그 반대의 경우도 마찬가지입니다.

세 번째 테이블을 정의하여 이러한 관계를 만듭니다. junction table, 기본 키는 테이블 A와 테이블 B의 외래 키로 구성됩니다.

예를 들어, Customers 테이블과 Cookies 테이블에는 이러한 각 테이블에서 Orders 테이블로의 일대 다 관계로 정의되는 다 대다 관계가 있습니다.

일대일 관계

일대일 관계에서 테이블 A의 행은 테이블 B에서 일치하는 행을 하나만 가질 수 있으며 그 반대의 경우도 마찬가지입니다. 관련 열이 모두 기본 키이거나 고유 한 제약 조건이있는 경우 일대일 관계가 생성됩니다.

이러한 방식으로 관련된 대부분의 정보가 모두 하나의 테이블에 있기 때문에 이러한 유형의 관계는 일반적이지 않습니다. 일대일 관계를 사용할 수 있습니다.

  • 테이블을 여러 열로 나눕니다.
  • 보안상의 이유로 테이블의 일부를 분리하십시오.
  • 수명이 짧고 테이블 삭제만으로 쉽게 삭제할 수있는 데이터를 저장합니다.
  • 기본 테이블의 하위 집합에만 적용되는 정보를 저장합니다.