테이블 관계 형식
관계는 일반적으로 두 테이블 모두에서 같은 이름을 갖는 키 열의 데이터를 일치시켜 작동합니다. 대부분의 경우 관계는 한 테이블의 기본 키를 일치시켜 각 행의 고유 식별자에 다른 테이블에 있는 외래 키의 항목을 제공합니다. 예를 들어, 기본 키인 titles 테이블의 title_id 열과 외래 키인 sales 테이블의 title_id 열 사이에 관계를 만들어 도서 판매와 판매된 특정 책의 제목을 연결할 수 있습니다.
테이블 간에는 세 가지 형식의 관계가 있습니다. 만들어지는 관계 형식은 관련 열을 정의하는 방법에 따라 다릅니다.
일대다 관계
다대다 관계
일대일 관계
일대다 관계
일대다 관계는 가장 일반적인 관계 형식입니다. 이 관계 형식에서 A 테이블의 한 행은 B 테이블의 여러 행과 일치할 수 있지만 B 테이블의 한 행은 A 테이블의 한 행과만 일치할 수 있습니다. 예를 들어 publishers 테이블과 titles 테이블은 일대다 관계이므로 각 출판사는 여러 제목을 제공하지만 각 제목은 한 출판사에서만 나옵니다.
관련 열 중 하나만 기본 키이거나 UNIQUE 제약 조건을 갖고 있는 경우 일대다 관계를 만듭니다.
일대다 관계의 기본 키 쪽은 키 기호로 표시됩니다. 관계의 외래 키 쪽은 무한대 기호로 표시됩니다.
다대다 관계
다대다 관계에서 A 테이블의 한 행은 B 테이블의 여러 행과 일치할 수 있고, 또한 B 테이블의 한 행도 A 테이블의 여러 행과 일치할 수 있습니다. 접합 테이블이라는 제 3의 테이블을 정의하여 이런 관계를 만들 수 있습니다. 접합 테이블의 기본 키는 A 테이블과 B 테이블 모두의 외래 키로 구성됩니다. 예를 들어 authors 테이블과 titles 테이블은 각각의 테이블과 titleauthors 테이블의 일대다 관계에 의해 정의된 다대다 관계를 갖습니다. titleauthors 테이블의 기본 키는 au_id 열(authors 테이블의 기본 키)과 title_id 열(titles 테이블의 기본 키)의 조합입니다.
일대일 관계
일대일 관계에서 A 테이블의 한 행은 B 테이블의 한 행과만 일치할 수 있으며 B 테이블의 한 행도 A 테이블의 한 행과만 일치할 수 있습니다. 관련된 두 열 모두가 기본 키이거나 UNIQUE 제약 조건을 갖고 있는 경우 일대일 관계가 만들어집니다.
이런 방법으로 관련된 대부분의 정보는 테이블 하나에 모두 들어 있기 때문에 일대일 관계는 그리 흔하지 않습니다. 일대일 관계를 사용하여 아래와 같은 작업을 수행할 수 있습니다.
테이블을 여러 열로 분할할 수 있습니다.
보안상의 이유로 테이블의 일부를 분리할 수 있습니다.
일시적으로 존재하며 테이블을 삭제하여 쉽게 삭제할 수 있는 데이터를 저장할 수 있습니다.
주 테이블의 하위 집합에만 적용되는 정보를 저장할 수 있습니다.
일대일 관계의 기본 키 쪽은 키 기호로 표시됩니다. 외래 키 쪽도 키 기호로 표시됩니다.