developer-soyun 2024. 11. 19. 16:05

기본적인 관계

  • 상속받은 컬럼은 참조하는 컬럼과 동일한 데이터타입과 길이를 가져야 한다

상호배타적 관계

자식 테이블에서 상호배타적 (Exclusive-OR) 관계를 설계하는 방법
1. 참조 컬럼을 한 컬럼으로 통합하여 설계하는 방법
2. 개별 컬럼으로 분리하는 방법

  1. 컬럼을 통합하는 방법
    • 상호배타적 관계에 참여한 모든 관계를 동일한 컬럼(고객번호)으로 변환
    • 어떤 테이블을 참조하는지 별도 구분 컬럼(고객유형코드)을 추가하여 구분
    • 통합 컬럼은 NOT NULL을 지정할 수 있다
    • 인덱스 수를 최소화 할 수 있다
  2. 컬럼을 분리하는 방법
    • 상호배타적 관계를 개별 컬럼(개인번호/법인번호/단체번호)으로 변환한다
    • 어떤 테이블을 참조하는지는 컬럼 값의 유무로도 판단할 수 있으나, 별도 구분 컬럼(고객유형코드)을 추가하여 구분한다
    • 장점: 해당 관계에 대해 FK 제약조건을 설정할 수 있다
    • 단점: NOT NULL을 지정할 수 없다, 개별 컬럼마다 인덱스를 생성해야 한다

재귀적 관계

  • 재귀적 관계 테이블에서 참조되는 컬럼은 PK 가 되고, 참조하는 컬럼은 FK가 된다
  • FK 컬럼은 한 테이블 내에서 다른 로우의 PK 컬럼을 참조하며, FK와 PL 컬럼으로 재귀 호출하여 결과를 추출한다

관계 옵셔널리티 확정

  • NULL
  • NOT NULL