SQL - (4) : Identifier

­이승환·2021년 8월 2일
0

SQLD

목록 보기
4/16

데이터 모델링의 이해 (4) 식별자


1. 식별자의 개념

  • 엔터티 내에서 인스턴스들을 구분 할 수 있는 구분자
    -- 하나의 엔터티는 반드시 하나의 유일한 식별자가 존재해야한다

2. 식별자의 특징

  • 존재성 : 널값 안됨
  • 유일성 : 유일해야함
  • 최소성 : 주 식별자를 구성하는 속성의 수는 최소의 수가되어야함(유일성을 만족하는)
  • 불변성 : 한번 정해지면 변하지 않아야함

(조나 유명한 최불암씨.. 로 암기했다)
실제 스키마 설계에서 가장 중요한 부분 중 하나라고 장담한다.

3. 식별자의 분류 및 표기법

1) 식별자 분류

  • 대표성 : 주 식별자 + 보조 식별자

  • 대체여부 : 본질식별자 + 인조식별자

  • 속성의수 : 단일 식별자 + 복합 식별자

  • 스스로 생성 : 내부 식별자 + 외부 식별자

(대대속스로 암기.. 꼭 외우자! 각 성징별 분류 기준도 다 암기했던거로 기억한다)

2) 식별자의 표기법 : 위 분류를 통해서 구성할 수 있음

4. 주 식별자 도출 기준

  • 해당 업무에서 자주 사용
  • 이름으로 기술된 것은 기피
  • 복합으로 주식별자를 구성할 경우 새로운 인조식별자를 생성해서 데이터 모델을 구성

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

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

  • 외부 식별자 : 다른 엔터티와 관계를 통해 자식 엔터티에 생성되는 속성
  • 자식 엔터티에서 외부 식별자를 자신의 주식별자로 이용할 것인지, 또는 속성으로만 이용할 것인지 결정해야함

2) 식별자 관계

  • 부모에게 받은 식별자를 자식 엔터티의 주식별자로 이용하는 경우 널값이 안되므로, 반드시 부모엔터티가 생성되어야 자식 엔터티도 생성되는 구조
  • 1:1 or 1: M 을 선택하는 것은 주 식별자가 추가로 있냐 없냐임

3) 비식별자 관계

  • 부모에게 받은 식별자를 일반속성으로 사용하는 경우
  • 비 식별자 관계에 의한 외부 속성이 생성되는 경우
    -- 자식 엔터티에서 받은 속성이 필수값이 아닌 경우 부모 엔터티가 없는 자식 엔터티가 생성된다
    -- 부모엔터티가 먼저 소멸될 수도 있음
    -- 여러 엔터티가 하나의 엔터티로 통합되어 표현되어 있지만, 별도의 관계를 가지는 경우도 이에 해당됨

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

  • pk 속성의 수가 증가하게되고, 개발 복잡성과 오류 발생할 수 있음

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

  • 부모 엔터티를 상속받을 때는 주로 pk속성을 상속받는데, 이를 조건으로 사용하는 경우가 많음
  • 그때 자식 엔터티 데이터 처리하는데 부모까지 가야하는 귀찮은 경우가 발생할 수 있음

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

  • 관계 분석 -> 관계의 강/약 분석 -> 자식 테이블 독립 pk 필요 -> 개발 복잡도 및 오류 및 개발 생산성 저하 (순서대로 문제 발생시 비식별자 관계 고려해야 함)

  • 식별자 관계 : 강한 연결관계 // 자식 주식별자의 구성에 부모 식별자 포함 // 실선 표현 // 반드시 부모에 종속 // 상속받은 주식별자 속성을 타 엔터티에 이전 필요

  • 비식별자 관계 : 약한 연결관계 // 자식 일반속성에 부모 식별자가 퐇마 // 점선표현 // 독립적으로 서로 구성 // 부모쪽의 관계 참여가 선택관계 // 타 엔터티 이전 x

profile
Mechanical & Computer Science

0개의 댓글