학생 엔터티에서 모든 학생을 유일하게 구분할 수 있는 학번은 식별자입니다. 이름은 동명이인이 있을 수 있으므로 식별자가 될 수 없습니다.| 특징 | 설명 | 예시 |
|---|---|---|
| 1. 유일성 (Uniqueness) | 주 식별자에 의해 모든 인스턴스들이 유일하게 구분되어야 합니다. | 주민등록번호는 모든 사람을 유일하게 구분한다. |
| 2. 최소성 (Minimality) | 유일성을 만족하는 최소한의 속성으로 구성되어야 합니다. | (학번, 과목코드)만으로 수강신청 내역을 구분할 수 있다면, (학번, 과목코드, 학생이름)은 최소성을 위반한다. |
| 3. 불변성 (Immutability) | 식별자의 값은 자주 변경되지 않아야 합니다. | 이름은 개명할 수 있지만, 학번이나 주민등록번호는 거의 변하지 않는다. |
| 4. 존재성 (Existence) | 식별자의 값은 반드시 존재해야 합니다. 즉, NULL 값을 허용하지 않습니다. | 모든 학생은 반드시 학번을 가져야 한다. |
| 분류 기준 | 종류 | 설명 |
|---|---|---|
| 대표성 여부 | 주 식별자 (Primary Identifier) | • 엔터티를 대표하는 유일한 식별자. (PK) • 유일성, 최소성, 불변성, 존재성을 모두 만족해야 함. |
| 보조 식별자 (Alternate Identifier) | • 주 식별자는 아니지만, 유일성을 만족하여 인스턴스를 구분할 수 있는 속성. • 데이터베이스의 유니크 인덱스(Unique Index)로 생성됨. (e.g., 이메일, 전화번호) | |
| 생성 방식 | 내부 식별자 (Internal Identifier) | • 엔터티 내부에서 스스로 생성된 식별자. (e.g., 사원번호, 부서코드) |
| 외부 식별자 (Foreign Identifier) | • 다른 엔터티와의 관계를 통해 받아온 식별자. (FK) • 자식 엔터티에서 부모 엔터티의 식별자를 포함하는 경우. | |
| 속성 개수 | 단일 식별자 (Single Identifier) | • 하나의 속성으로 구성된 식별자. (e.g., 학번) |
| 복합 식별자 (Composite Identifier) | • 두 개 이상의 속성을 조합하여 구성된 식별자. (e.g., (학번, 과목코드)) | |
| 대체 여부 | 본질 식별자 (Original Identifier) | • 업무적으로 의미가 있는, 원래 존재하는 식별자. (e.g., 주민등록번호) |
| 인조 식별자 (Artificial Identifier) | • 업무적인 의미는 없지만, 유일성을 보장하기 위해 시스템에서 인위적으로 생성한 식별자. (e.g., 회원ID, 주문번호 - 보통 순차 증가하는 숫자) |
게시판 - 게시글: 게시글의 PK는 (게시판ID, 게시글번호)가 됩니다.주문 - 주문상세: 주문상세의 PK는 (주문번호, 상품번호)가 됩니다.개념: 부모 엔터티의 식별자(PK)를 자식 엔터티가 물려받지만, 자신의 주 식별자로 사용하지 않고 일반 속성(FK)으로만 사용하는 관계.
ERD 표기: 점선으로 표현.
특징:
예시:
부서 - 사원: 사원은 사원번호라는 독립적인 PK를 가지며, 부서코드는 일반 속성(FK)으로 가집니다. (사원은 부서에 소속되지 않을 수도 있음)회원 - 게시글: 게시글은 게시글ID라는 독립적인 PK를 가지며, 회원ID는 작성자를 나타내는 일반 속성(FK)입니다.최근 경향: 복잡한 식별 관계는 주 식별자가 계속해서 하위 엔터티로 전파되어 관리가 어려워지는 단점이 있습니다. 따라서 최근에는 모델의 유연성과 단순성을 위해, 가급적 인조 식별자를 사용한 비식별 관계로 설계하는 것을 선호하는 경향이 있습니다.