티스토리 뷰

기본키 전략 - 자연키, 인조키

자연키

  • 회원테이블을 생성한다고 가정
회원
-----
ID
이름
전화번호
주민등록번호
주소
성별
....
  • 대략적인 회원테이블의 구조이다.
  • 각각 고유한 기본키를 지정해주어야한다.
  • 이름, 성별, 주소, 전화번호 등은 중복적인 값이 들어올수있는 속성이므로 부적합하다.
  • 그렇다면 남는것은 ID와 주민등록번호이다.
  • 회원테이블을 생성하고, 회원테이블의 속성들을 추출해낸다.
  • 추출한 소성중 가장 효율적인 속성을 간추려 기본키로 설정한다.
  • 비즈니스 모델에서 자연스레 나오는 속성으로 기본키를 정한다고해서 자연키 (Natural Key) 라고 표현한다.

인조키

  • 이번에는 스터디 멤버 테이블을 생성한다고 가정
스터디 멤버
---------
스터디멤버번호
스터디번호
멤버명
전화번호
주소
성별
....
  • 스터디 멤버를 받을때 고유한값을 받지않는다.
  • 로우당 고유한 기본키가 존재하지않음
  • 고유한 값을 꼭 멤버에게 입력받을 필요는 없다.
  • 인위적으로 부여한 스터디멤버번호로 인해 각 고유 식별자가 생겨났다.
  • Oracle Sequence, MySQL Auto Increment 라고 보면된다.
  • 비즈니스 모델과 달리 키를 위한 데이터 측벽에서 인조키 (Artifical Key) 라고부른다.

자연키, 인조키

  • 비즈니스 모델에서 얻게되는 자연키와, 기본키 만을위한 인조키중 어떤걸 사용하는것이 좋을까 ?
  • 자연키는 어떻게든 변하게 되어있다.
  • 기본키는 절대 변해서는 안된다.
  • 대부분의 상황에서 자연키보다 인조키를 사용하는것이 좋다.

'Database' 카테고리의 다른 글

Database - Key의 개념 및 종류  (0) 2019.07.15
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함