[SQL] 기본키 채번, 마스터-디테일 채번, Serl 구조의 채번
# Database

[SQL] 기본키 채번, 마스터-디테일 채번, Serl 구조의 채번

 

 

 

🌸 기본 키의 구성

 

고유한 데이터를 식별하기 위해 테이블에는 기본 키가 존재해야 한다.

이때 기본 키를 어떻게 구성하는가에 따라 테이블의 관계를 표현할 수 있다.

크게 3개의 형태에 대해 키를 구성하는 방법에 대해 알아본다.

 

 

 

  1. 기본 키가 단일 키로 구성될 때(순번)
  2. 마스터 - 디테일 구조(부모의 순번을 갖고 자식의 순번을 채번)
  3. 마스터 - 디테일 구조(부모의 순번으로 일련번호를 채번)

 

 

 

1. 기본 키가 단일 키로 구성될 때

 

 

위와 같은 테이블이 있을 때, Key 값에 대해 채번을 한다.

 

1. 삽입할 데이터를 정렬시킨다.
2. 기존 테이블 키값의 Max값을 가져온다.
3. 삽입할 데이터들의 키값을 Max+1 부터 채번한다.

// 위의 테이블의 경우 다음 데이터는 5부터 채번

 

 

 

 

 

 

2. 마스터 - 디테일 구조(부모의 순번을 갖고 자식의 순번을 채번)

 

 

1. 삽입할 데이터를 정렬시킨다.
2. 삽입할 데이터의 마스터 키값을 갖는 Row의 Desc키의 Max값들을 가져온다.
3. 각각의 데이터의 Desc키를 Max+1 값부터 채번한다.

// 위의 테이블의 경우 Master 키값이 1인 디테일 테이블의 다음 키값은 (4, 1, null, null, null) 이 된다.
// 위의 테이블의 경우 Master 키값이 2인 디테일 테이블의 다음 키값은 (3, 2, null, null, null) 이 된다.

 

 

 

 

 

3. 마스터 - 디테일 구조(부모의 순번을 갖고 자식의 일련번호를 채번)

 

 

1. 삽입할 데이터를 정렬시킨다.
2. 삽입할 데이터의 마스터 키값을 갖는 Row의 Serl Max값들을 가져온다.
3. 각각의 데이터의 Serl을 Max+1 값부터 채번한다.

// 위의 테이블의 경우 Master 키값이 1인 디테일 테이블의 다음 키값은 (1, 4, null, null, null) 이 된다.
// 위의 테이블의 경우 Master 키값이 2인 디테일 테이블의 다음 키값은 (2, 3, null, null, null) 이 된다.

 

 

 

써놓고 보니까 2번과 3번은 큰 차이가 없는거 같기도 하다...

채번 시 함수는 ROW_NUMBER() 를 이용한다.

728x90