DB/SQLD

식별자

필리힐리 2021. 3. 15. 00:38

식별자란?

각각의 인스턴스를 구분할 수 있는 논리적 이름

*엔터티는 반드시 하나의 유일한 식별자가 존재해야한다

 

식별자와 키의 차이

식별자는 논리적 데이터 모델에서 사용

키는 데이터 베이스에 접근을 위한 매개체로 사용

 

식별자의 특징

1. 유일성

주식별자에 의해 인스턴스들이 유일하게 구분되어야함

2. 최소성

유일성을 만족하는 최소의 수가 되어야함

3. 불변성

주식별자의 값은 자주 변하면 안됌

4. 존재성

주식별자가 지정 되면 반드시 값이 들어와야 함

 

식별자 분류

1. 주식별자

*각 인스턴스 값을 구분, 다른 엔터티와 참조관계 가능

> 도출 기준

1) 업무에서 자주 이용, 2) 명칭 내역 등 이름은 파하기

3) 속성의 수가 많아지지 않게 하기 (인조식별자를 통해 통합)

3).예시) 관할부서, 접수일자, 일련번호 > 접수번호 

2. 보조식별자

*각 인스턴스 값을 구분, 참조관계 불가능

3. 내부식별자, 외부식별자

*내부 - 내부에서 스스로 만들어짐, 외부 - 다른 엔터티에서 받아옴

4. 단일식별자

*하나의 속성으로 구성

5. 복합식별자

둘 이상의 속성으로 구성

6. 본질식별자, 인조식별자

본질 - 업무에 의해 만들어짐, 인조 - 인위적으로 만듬

 

식별자관계

부모로부터 받은 식별자를 주식별자로 이용하면 NULL값이 올 수 없다

 

식별자 관계로만 설정시 문제점

상속으로 내려올 수록 식별자가 많아져 복잡성이 너무 늘어난다

 

비식별자 관계로면 설정시 문제점

서로 연결되지 않았기 때문에 조회할 때 연결하고 싶은 인스턴스를 일일이 찾아야한다

 

비식별자 관계 설정 고려사항

1. 관계가 약할 때

2. 자식테이블 독립이 필요할 때

3. SQL 복잡도가 증가할 때

 

 

'DB > SQLD' 카테고리의 다른 글

정규화  (0) 2021.03.15
성능 데이터 모델링  (0) 2021.03.15
관계  (0) 2021.03.14
속성  (0) 2021.03.14
엔터티  (0) 2021.03.14