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

2012.01.04 02:12

문효섭 조회 수:16975

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 8326
공지 ER/Studio Team Server(ER/Studio 용 웹포탈) 설치 및 사용자 가이드 손보라 2014.07.15 39527
공지 Repository 설치 및 사용 가이드 손보라 2014.05.27 50257
공지 ER/Studio Data Architect 설치 및 사용자가이드 관리자2 2012.01.27 52671
142 [기술백서] ER/Studio를 활용한 데이터 표준화 시스템 구축방안 관리자 2014.11.12 1141
141 DB Power Studio #4-2. DBArtisan 둘러보기(데이터베이스 보안 관리) 손보라 2014.08.20 1160
140 DB Power Studio #4-5. DBArtisan 둘러보기(데이터 관리) 손보라 2014.08.21 1165
139 DB Power Studio #4-6. DBArtisan 둘러보기(데이터베이스 성능 관리) 손보라 2014.08.22 1172
138 DB Power Studio #4-3. DBArtisan 둘러보기(데이터베이스 공간 관리) 손보라 2014.08.21 1184
137 DB Power Studio #4-7. DBArtisan 둘러보기(메뉴 기능) 손보라 2014.08.22 1199
136 ER/Studio 기본 가이드 #6. ER/Studio Data Architect로 메타데이터 import & export하기 손보라 2014.08.07 1248
135 DB Power Studio #4-4. DBArtisan 둘러보기(SQL 관리) 손보라 2014.08.21 1261
134 ER/Studio 기본 가이드 #5. ER/Studio Data Architect의 데이터 딕셔너리 사용하기 손보라 2014.08.06 1279
133 DB Power Studio #4-1. DBArtisan 둘러보기(오브젝트 및 스키마 관리) 손보라 2014.08.20 1303
132 ER/Studio 기본 가이드 #4. ER/Studio Data Architect로 모델 간 비교 및 차이점 반영하기 손보라 2014.08.05 1308
131 DB Power Studio #1. DB Optimizer 둘러보기 손보라 2014.08.09 1318
130 DB Power Studio #3-2. Rapid SQL 둘러보기(비주얼 쿼리 빌더) 손보라 2014.08.19 1322
129 [기술백서] 데이터아키텍트가 비즈니스 업무 부서와 협업하기 위해 알아야 할 다섯가지 관리자 2014.09.26 1328
128 [기술백서] ERwin이 아닌 ER/Studio를 선택하는 10가지 이유 관리자 2014.11.12 1328
127 ER/Studio 기본 가이드 #2. ER/Studio Data Architect로 논리/물리 모델링 시작하기 손보라 2014.08.01 1329
126 ER/Studio 기본 가이드 #3. ER/Studio Data Architect로 기존 데이터베이스 문서화하기 손보라 2014.08.04 1340
125 ER/Studio 기본 가이드 #1. ER/Studio Data Architect로 데이터모델링 시작하기 손보라 2014.08.01 1345
124 DB Power Studio #3-1. Rapid SQL 둘러보기(SQL 작성) 손보라 2014.08.18 1362
123 [온라인 세미나 발표자료] 스마트한 DBMS관리: DB PowerStudio 따라잡기, LIVE! 관리자 2014.09.25 1382