ER/Studio 데이터모델링이란 - 4.식별자

2012.01.04 02:12

문효섭 조회 수:17013

1. 식별자 정의

식별자란 하나의 엔티티 내에서 각각의 인스턴스를 유일(Unique)하게 구분해 낼 수 있는 속성 또는 속성 그룹을 말하며, 하나의 엔티티는 하나 이상의 식별자를 반드시 보유하고 있어야만 한다. 

2. 식별자의 유형

1) 주식별자 / 보조식별자 : 대표성 여부

하나의 엔티티 내에서 식별자로 사용할 수 있는 하나 이상의 키들을 후보식별자라 하고, 그 중 엔티티의 대표성을 나타내는 유일한 식별자를 주식별자, 나머지를 보조식별자로 활용한다.

물리모델에서 주식별자는 PK 역할, 보조식별자는 유니크 인덱스로 지정

    예 )  사원 : 후보식별자 - 사번, 주민번호

                     주식별자 - 사번

                     보조식별자 - 주민번호 

2) 내부식별자 / 외부식별자 : 스스로 생성 여부

자신의 엔티티 내에서 스스로 생성되어 존재하는 식별자를 내부식별자, 다른 엔티티로부터 관계에 의해 주식별자 속성을 상속받아 자신의 속성에 포함되는 식별자를 외부식별자라한다.

외부식별자는 FK를 의미한다. 

3) 단일식별자 / 복합식별자 : 단일 속성 여부

주식별자의 구성이 한 가지 속성으로 이루어진 경우를 단일식별자, 두 개 이상의 속성으로 구성된 경우를 복합식별자라 한다.

복합실별자의 경우는 우선순위가 매우 중요하다. 

■ 자주 사용되는 속성은 우선순위가 높다. 
db11.png
 
 
대체적으로 자식 엔티티의 PK의 우선순위의 앞 순위에 부모로부터 상속받은 속성을 두는 것이 좋다. 부모로부터 상속받은 PK의 속성은 SQL의 조인에서 반드시 사용되어지고 WHERE 절에서 사용 가능성이 높다.
 
  
■ 분포도가 좋은 속성은 우선순위가 높다.
분포도가 좋다는 의미는 사원번호, 주민번호와 같이 자료의 식별성이 뛰어난 속성으로 SQL 사용시 분포도가 좋은 속성으로 접근하면 그만큼 적은 범위의 자료에만 접근할 수 있다. 

구분 표시와 같은 속성은 분포도가 매우 낮은 속성이므로 우선순위가 낮다. 

PK가 사원구분 + 사원번호라면 조회 유형은 사원번호에 의한 경우, 사원번호 + 사원구분, 사원구분에 의한 경우인데, 사원번호에 의한 경우 인덱스를 사용할 수 없고,

사원구분에 의한 경우도 분포도가 매우 낮은 속성이므로 풀 스캔하는 것이 빠르다. 

■ ' = ' 조회를 하는 속성은 우선순위가 높다.

날짜와 같은 속성은 대부분이 기간을 조회하므로, 인덱스의 첫번째 속성이 LIKE 조회나 BETWEEN 조회를 하게 되어 인덱스를 사용하지 못하게 된다. 
db12.png
 
 
4) 원조식별자 / 대리식별자 : 대체여부
 
주식별자의 속성이 복합식별자일 경우 여러 개의 속성을 묶어 하나의 속성으로 만들어 주식별자로 활용하는 경우 대리식별자라 한다.
 


 3. 식별자 정의 예

 
선정된 엔티티에 주식별자를 선정하여 ERD 를 그린다.
 

엔티티명 주식별자 보조식별자 외부식별자
회원 회원번호 주민번호  
주문 주문번호   회원번호, 배송번호
주문목록 주문번호, 도서번호   주문번호, 도서번호
도서 도서번호    
번호 제목 글쓴이 날짜 조회 수
공지 [기술 보고서 다운로드] IDC Technology Spotlight: 모델 기반 데이터 설계를 통한 비즈니스 민첩성 확보 방안 관리자 2015.08.24 8608
공지 ER/Studio Team Server(ER/Studio 용 웹포탈) 설치 및 사용자 가이드 손보라 2014.07.15 39802
공지 Repository 설치 및 사용 가이드 손보라 2014.05.27 50575
공지 ER/Studio Data Architect 설치 및 사용자가이드 관리자2 2012.01.27 52962
141 ER/Studio로 ERWin의 제약으로 부터 자유로워지세요 file 문효섭 2012.01.04 8265
140 데이터모델링이란 - 1.개요 file 관리자 2012.01.04 12122
139 데이터모델링이란 - 2.엔티티(Entiry) file 문효섭 2012.01.04 96111
138 데이터모델링이란 - 3.속성(Attribute) file 문효섭 2012.01.04 26650
» 데이터모델링이란 - 4.식별자 file 문효섭 2012.01.04 17013
136 데이터모델링이란 - 5.관계(Relational) file 문효섭 2012.01.04 36624
135 데이터모델링이란 - 6.정규화 file 문효섭 2012.01.04 19858
134 데이터모델링이란 - 7.실전데이터모델링 이슈 file 문효섭 2012.01.04 14004
133 데이터모델링이란 - 8.관계형 테이블 전환 file 문효섭 2012.01.04 13816
132 데이터모델링이란 - 9.반정규화(역정규화) 문효섭 2012.01.04 15539
131 데이터모델링이란 - 10.뷰설계 문효섭 2012.01.04 8821
130 데이터모델링이란 - 11.인덱스설계 문효섭 2012.01.04 10383
129 DB Artisan XE 사용자 가이드 file 문효섭 2012.01.27 8635
128 DB Optimizer XE 사용자 가이드 file 문효섭 2012.01.27 9466
127 DB ChangeManager XE 퀵가이드, 기능 가이드 file 문효섭 2012.01.27 10052
126 Rapid SQL 사용자 가이드 file 문효섭 2012.01.27 11577
125 ER/Studio 웹포탈에서 데이터모델 조회 시 한글이 깨져보일때 file 문효섭 2012.03.07 6649
124 ERwin에서 ER/Studio로의 마이그레이션 가이드 file 문효섭 2012.03.27 6976
123 ERwin이 아닌 ERStudio를 고객이 선택하는 이유 Top 10 file 문효섭 2012.03.27 7243