데이터베이스 설계와 구축(개정판) (2009년)
식별자 정의 0 0 42,852

by 구루비스터디 식별자 정의 [2019.08.11]


2.3 식별자 정의

(-)데이터 검증엔티티타입 검증, 관계 검증, 속성 검증 도메인 검증
(-)통합화엔티티타입 통합
(-)세부 사항 정의속성 상세 정의, 정규화 도메인 정의, 속성 규칙 정의
(/)식별자 정의주식별자 정의, 보조 식별자 정의, 식별자 업무 규칙 정의
(-)관계 정의엔티티타입 관계 정의
(-)엔티티타입 정의엔티티타입 정의
  • 앞에서 명사를 이용하여 엔티티타입을 도출하고 동사형을 이용하여 관계를 도출하였다.
  • 도출된 엔티티타입의 속성 중에서 유일성과 대표성을 이용하여 결정자를 선택 할 수 있다.
  • 도출된 엔티티타입 속성들의 관계를 이용하여 결정자를 선택 할 수 있다.
  • 엔티티타입은 기본, 중심, 핵심 엔티티타입으로 구분 할 수 있다.
  • 여러 식별자 중 주식별자 결정이 데이터 모델에서 가장 중요하다. 주식별자 결정에 따라 모델의 복잡성을 결정하는 요소가 됨


주식별자 정의
  • 해당 업무에서 자주 이용되는 속성을 주식별자로 지정한다(PK)
  • (y)

사원번호


주민번호
우편번호
주소
전화번호
메신저ID
전자메일ID

  • (n)

주민등록번호


사원번호
우편번호
주소
전화번호
메신저ID
전자메일ID

  1. 속성값의 길이가 가변적인 속성은 주식별자로서 적당하지 않다.

    ← 공통적인 코드를 모아 업무코드를 만들고 부서코드를 포함함
  1. 속성값이 자주변하는 속성은 주식별자로서 적당하지 않다.
  • (n)

전자메일ID


학번
이름
주소
생년월일

  • (y)

학번


?메일ID
이름
주소
생년월일

  1. 주식별자를 선정하기 위한 속성의 수를 적게 한다.
  • 복합 식별자일 때 가능하면 주식별자가 7~8개를 넘지 않도록한다.
  • 주식별자에 적당한 속성이 존재하지 않으면 주식별자를 생성(Artificail Identifier)하여 지정하도록 한다.
  • (n)

접수접수일자관할부서입력자사번접수방법코드신청인구분코드신청자주민번호신청회수


신청자명
장소
계약금
내용
접수상태코드

  • (y)

접수번호


신청자명
장소
계약금
접수일자
관할부서
입력자사번
접수방법코드
신청인구분코드
신청자주민번호
신청회수
내용
접수상태코드

주식별자 속성은 반드시 값이 들어와야 한다.
보조 식별자 정의
  • 주식별자가 존재하지만 일반 속성 중에서도 다른 속성에 결정자 역할을 할 수 있고, 유일성을 가지고 있는 속성을 보조 식별자로 정의한다(Unique Index)
  • 예) 사원번호를 주식별자로 하고 유일성을 가지는 주민번호를 보조 식별자로 활용한다.


외부 식별자 정의
  • 다른 엔티티타입과의 관계를 통해 자식 쪽 엔티티타입에 생성되는 속성을 외부 식별자라 한다(FK)
  • 엔티티타입에 주식별자가 지정되고 엔티티타입간 관계를 연결하면 부모쪽의 주식별자를 자식 엔티티타입의 속성으로 내려보내진다.
  • 이때 자식 엔티티타입에서 부모 엔티티타입으로부터 받은 외부 식별자를 자신의 주식별자로 이용(식별자 관계)할것인지 또는 부모와 연결되는 속성으로서만 이용(비식별자 관계)할 것인지를 결정해야 한다.
  • 위와 같이 자식 엔티티타입의 주식별자로 부모의 주식별자가 상속되는 경우를 식별자 관계라 한다.
  • 주식별자로 사용않고 일반적인 속성으로만 사용하는 경우를 비식별자 관계라 한다.
비식별자관계 생성 이유
  • 부모가 있었지만 자식만 남겨두고 먼저 소멸될 수 있는 경우
  • 부모 없는 자식이 생성될 수 있는 경우
  • 여러 개의 엔티티타입이 하나의 엔티티타입으로 통합되어 표현될 경우
  • 자식 엔티티타입에 별도의 주식별자를 가지고 있는 것이 더 유리하다고 판단되는 경우
  • 자식과 관련이 있는 엔티티타입으로의 주식별자 상속을 차단하기 위해서


"구루비 데이터베이스 스터디모임" 에서 2009년에 "데이터베이스 설계와 구축(개정판)" 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/4224

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입