[SQLD] 식별자

icebox127·2025년 9월 14일

SQLD

목록 보기
3/8

1. 식별자 개념

엔터티는 인스턴스들의 집합임

여러 개의 집합체를 담고 있는 하나의 통에서 각각을 구분할 수 있는 논리적인 이름

2. 식별자의 특징

  • 주식별자에 의해 엔터티 내에 모든 인스턴스들이 유일하게 구분되어야 함
  • 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함
  • 지정된 주식별자의 값은 자주 변하지 않는 것이어야 함
  • 주식별자가 지정이 되면 반드시 값이 들어와야 함
특징내용비고
유일성주식별자에 의해 엔터티 내에 모든 인스턴스들을 유일하게 구분함예) 사원번호가 모든 직원들에대해 개인별로 고유하게 부여됨
최소성주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함예) 사원번호만으로도 고유한 구조인데 사원분류코드 + 사원번호로 식별자가 구성될 경우 부적절한 주식별자 구조임
불변성주식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함예) 사원번호의 값이 변한다는 의미는 이전기록이 말소되고 새로운 기록이 발생되는 개념임
존재성주식별자가 지정되면 반드시 데이터 값이 존재해야함 (Null 안 됨)예) 사원번호 없는 회사직원은 있을 수 없음

3. 식별자 분류 및 표기법

식별자 분류

식별자 표기법

4. 주식별자 도출기준

해당 업무에서 자주 이용되는 속성을 주식별자로 지정

예) 직원관리 시 사원번호보다는 주민등록번호를 더 많이 사용하므로 주식별자로 지정

명칭, 내역 등과 같이 이름으로 기술되는 것은 피함

예) 부서이름은 유일성이 있더라도 주식별자로 사용 X

명칭이나 내역이 있고 인스턴스를 식별할 수 있는 다른 구분자가 존재하지 않을 경우는 새로운 식별자를 생성해야함 (주로 일련번호나 코드)

속성의 수가 많아지지 않도록 함

식별자의 속성의 개수가 많을 때는 새로운 인조식별자를 생성하려 데이터 모델을 구성하는 것이 데이터 모델 및 애플리케이션 개발 시 조건절을 더 단순하게 함

5. 식별자 관계와 비식별자 관계에 따른 식별자

식별자 관계와 비식별자 관계의 결정

자식 엔터티에서 부모 엔터티로부터 받은 외부식별자를 자신의 주식별자로 이용할 것인지 또는 부모와 연결이 되는 속성으로서만 이용할 것인지를 결정해야 함

식별자 관계

  • 자식엔터티의 주식별자로 부모의 주식별자가 상속이 되는 경우
  • 부모로부터 받은 식별자를 자식엔터티으 주식별자로 이용하는 경우 Null값이 오면 안 됨(부모 엔터티가 생성되어야 자신의 엔터티가 생성되는 경우여야 함)

비식별자 관계

  1. 부모로부터 속성을 받았지만 자식엔터티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하는 경우 (받은 속성이 반드시 필수가 아니어도 무방한 경우 =부모없는 자식 생성 가능한 경우)
  2. 엔터티별로 생명주기를 다르게 관리할 경우 (예를 들어, 부모 엔터티에 인스턴스가 자식의 엔터티와 관계를 가지고 있었지만 자식만 남겨두고 먼저 소멸될 수 있는 경우)
  3. 여러 개의 엔터티가 하나의 엔터티로 통합되어 표현되었는데 각각의 엔터티가 별도의 관계를 가질 때이며 이에 해당됨
  4. 자식 엔터티에 주식별자로 사용하여도 되지만 자식 엔터티에서 별도의 주식별자를 생성하는 것이 더 유리하다고 판단될 때 비식별자 관계에 의한 외부식별자로 표현

식별자 관계로만 설정할 경우의 문제점

  • 식별자 관계를 연결한 데이터 모델의 PK 속성 수는 데이터 모델의 흐름이 길어질수록 증가할 수 밖에 없는 구조를 가지게 됨

비식별자 관계로만 설정할 경우의 문제점

  • 자식엔터티에서 데이터를 조회할 때도 부모엔터티의 속성을 사용하게 되는데, 부모 속성이 자식 엔터티로 상속되지 않아 부모 엔터티까지 찾아가야함

식별자관계와 비식별자관계 모델링

  • 비식별자 관계 선택 프로세스
  • 식별자와 비식별자 관계 비교
    항목식별자관계비식별자관계
    목적강한 연결관계 표현약한 연결관계 표현
    자식 주식별자 영향자식 주식별자의 구성에 포함됨자식 일반 속성에 포함됨
    표기법실선 표현점선 표현
    연결 고려사항반드시 부모엔터티 종속, 자식 주식별자 구성에 부모 주식별자 포함 필요, 상속받은 주식별자 속성을 타 엔터티에 이전 필요약한 종속관계, 자식 주식별자 구성을 독립석으로 구성, 자식 주식별자 구성에 부모 주식별자 부분 필요, 사옥받은 주식별자 속성을 타 엔터티에 차단 필요, 부모쪽의 관계참여가 선택사항
  • 식별자와 비식별자를 적용한 데이터 모델
profile
감자의 공부기록🥔

0개의 댓글