식별자

박영준·2023년 4월 8일
0

DB

목록 보기
6/41

1. 정의

  • 자바 코드 내에서 사용되는 각각의 단어

  • 하나의 엔티티(Table)에 구성되어 있는 여러 개의 속성 中 엔티티를 대표할 수 있는 속성
    → 하나의 엔티티는 하나 이상의 식별자를 반드시 보유하고 있어야만 한다.
    → 즉, 중복 데이터가 없는 속성(컬럼)

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

2. 식별자 지정 규칙

  1. 첫 문자는 반드시 영문자이어야한다.
    그 다음 문자부터는 숫자와 문자를 합쳐서 사용 가능하다.
    단, _와 $는 첫문자로 사용할수 있는 특별한 문자다.

  2. 식별자에 대한 길이 제한은 없다.

  3. JAVA는 대소문자를 구별한다.

3. 유형

1) 주식별자 / 보조식별자

  • 대표성 여부 에 따라 구분

  • 후보식별자 : 하나의 엔티티 내에서 식별자로 사용할 수 있는 하나 이상의 키들

    • 주식별자 : 후보식별자 中 엔티티의 대표성을 나타내는 유일한 식별자
    • 보조식별자 : 후보식별자 中 주식별자를 제외한 나머지
  • '사원'을 예시로 들어보면
    후보식별자 - 사번, 주민번호
    주식별자 - 사번
    보조식별자 - 주민번호

  • 주식별자

    • 유일성

      • 주식별자에 의해 엔티티 내에 모든 인스턴스들이 유일하게 구분되어야 한다.
      • 예시 : 사원번호가 모든 직원들에 대해 개인별로 고유하게 부여됨
    • 최소성

      • 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.
      • 예시 : 사원번호만으로도 고유한 구조인데, 사원분류코드 + 사원번호로 식별자가 구성될 경우 부적절한 주식별자 구조임
    • 불변성

      • 지정된 주식별자의 값은 자주 변하지 않는 것이어야 한다.
      • 예시 : 사원번호의 값이 변한다는 의미는 이전기록이 말소되고 새로운 기록이 발생되는 개념
    • 존재성

      • 주식별자가 지정이 되면, 반드시 값이 들어와야 한다.
      • 예시 : 사원번호 없는 회사직원은 있을 수 없음

2) 내부식별자 / 외부식별자

  • 스스로 생성 여부 에 따라 구분

  • 내부식별자 : 자신의 엔티티 내에서 스스로 생성되어 존재하는 식별자

  • 외부식별자 : 다른 엔티티로부터 관계에 의해 주식별자 속성을 상속받아 자신의 속성에 포함되는 식별자
    → FK

3) 단일식별자 / 복합식별자

  • 단일 속성 여부 에 따라 구분

  • 단일식별자 : 주식별자의 구성이 한 가지 속성으로 이루어진 경우

  • 복합식별자 : 두 개 이상의 속성으로 구성된 경우
    → 우선순위가 매우 중요

    주문번호와 상품코드를 복합시켜야만 식별자로써의 기능을 하게 되는데, 주문번호와 상품코드를 복합식별자라고 한다.

4) 본질식별자 / 인조식별자

  • 대체 여부에 따라 구분

  • 본질식별자 : 업무에 의해 만들어지는 식별자

  • 인조식별자 : 업무적으로 만들어지지는 않지만 원조식별자가 복잡한 구성을 가지고 있기 때문에 인위적으로 만든 식별자

4. 종류

1) 시스템 정의 식별자

(1) 정의

  • 보통 "예약어", "키워드" 라고 부른다.

  • JAVA 시스템이 필요에 의해서 먼저 정의한 식별자

(2) 종류

2) 사용자 정의 식별자

(1) 정의

  • JAVA 개발자가 필요에 의해서 정의한 식별자

  • 클래스명, 변수명, 메소드명 을 지정할 때 사용

(2) 종류

5. 식별/비식별 관계

참고: JPA 연관관계, ERD, 식별/비식별 관계 - 5. 식별/비식별 관계


참고: [Road to JAVA] 식별자란 무엇인가?
참고: 식별자란, 식별자의 유형(주식별자,보조식별자,복합식별자, 단일식별자 등 )
참고: [SQLD] 5. 식별자(Identifiers)

profile
개발자로 거듭나기!

0개의 댓글