< 목차 >
0. TL;DR
1. 식별자 (indentifier)
2. 식별자 구분
3. 관계 (Relationship)
4. 관계 카디널리티
0. TL;DR
- 식별자: 하나의 엔티티 타입에서 각각의 엔티티를 구분할 수 있는 결정자
- 식별자 구분
- 주 / 보조
- 내부 / 외부
- 단일 / 복합
- 원조 / 대리
- 식별자 구분
- 관계 (Relationship): 2개의 엔티티 타입 사이의 논리적인 관계로, 서로에게 영향을 주는 것
- 관계 페어링: 각각의 엔티티들이 자신과 관련된 엔티티들과 관계의 *어커런스로 참여하는 형태
- 관계 카디널리티: 엔티티 타입 간 관계에서 ‘참여자 수’를 표현한 것
- 1:1
- 1:N
- M:N
1. 식별자 (indentifier)
: 하나의 엔티티 타입에서 각각의 엔티티를 구분할 수 있는 결정자
모든 엔티티 타입에는 반드시 하나 이상의 식별자가 필요하다.
DB로 구현됐을 때 PK, FK 등의 역할을 수행한다. (e.g. 주민등록번호, 사원번호)
식별자 특징
식별자에 의해 엔티티 타입 내 모든 엔티티가 유일하게 구분된다.
- 식별자가 지정되면 그 식별자는 변경 불가
- 주 식별자 속성에 반드시 데이터 값이 존재해야 함
2. 식별자 구분
(1) 주 / 보조 식별자
- 주 식별자: 엔티티 타입의 대표성을 나타내는 유일한 식별자
- 엔티티 타입에 1개만 존재
- 보조 식별자: 주 식별자를 대신하여 보조적으로 엔티티를 식별
- 엔티티 타입에 2개 이상 존재
주, 보조 식별자 모두 엔티티 타입의 엔티티를 유일하게 식별한다.
물리 테이블에서는 주 식별자는 PK(Primary Key), 보조 식별자는 유니크 인덱스로 지정한다.
엔티티 타입에서 엔티티를 유일하게 식별할 수 있는 속성이 2개 이상일 때, 업무 속성에 따라 주, 보조 식별자로 활용한다.
e.g. 카드사의 고객 테이블의 경우
카드 번호와 주민등록번호 모두 주 식별자로 활용 가능하지만, 카드사 특성상 카드 번호를 주 식별자로 사용하고 주민등록번호를 보조 식별자로 사용한다.
(2) 내부 / 외부 식별자
- 내부 식별자: 다른 엔티티로부터 식별자를 가져오지 않고, 자신의 엔티티 타입 내에서 스스로 생성되어 존재하는 식별자
- 외부 식별자: 다른 엔티티 타입으로부터 관계의 의해 주 식별자의 속성을 상속받아 자신의 속성에 포함시키는 식별자
- 자신의 엔티티 타입으로부터 다른 엔티티 타입을 찾아가는 연결자(FK) 역할 수행
(3) 단일 / 복합 식별자
- 단일 식별자: 주 식별자의 구성이 1개의 속성으로만 이뤄진 경우
- 복합 식별자: 2개 이상의 속성으로 구성된 경우
(4) 원조 / 대리 식별자
- 대리(Surrogate) 식별자: 주 식별자의 속성이 복합 식별자일 경우, 여러 개의 속성을 묶어 하나의 속성으로 만들어 주 식별자로 활용하는 식별자
3. 관계 (Relationship)
: 2개의 엔티티 타입 사이의 논리적인 관계로, 서로에게 영향을 주는 것
- 데이터 모델에서 관계는 업무의 흐름을 나타냄
- 데이터 모델 관계가 제대로 되어있지 않으면 데이터 무결성 문제가 발생할 수 있음
관계 페어링
: 각각의 엔티티들이 자신과 관련된 엔티티들과 관계의 *어커런스로 참여하는 형태
🍯 어커런스 (occurrence)
: 정의된 레코드의 구조에 따라 데이터베이스에 구체적이고 실제적인 정보를 저장하고 있는 데이터 레코드
⇒ 관계 데이터베이스에서는 튜플이 이에 해당한다.
- 엔티티 타입: 엔티티의 집합
- 관계: 관계 페어링의 집합
관계의 명명
관계에는 2개 이상의 멤버십이 필요하다. (멤버십은 엔티티 타입이 관계에 참여한다는 뜻)
- 각 멤버십에 의해 2가지 관점으로 표현 가능
- 관계는 모두 이름을 가져야 하고, 멤버십의 성격에 따라 능동적이거나 수동적으로 명명
- 애매한 동사 사용 안 함
- 현재 진행형으로 표현
4. 관계 카디널리티
: 엔티티 타입 간 관계에서 ‘참여자 수’를 표현한 것
1:1, 1:M, M:N 카디널리티 유형이 있다. 멤버십의 개수에 따라 구분한다.
(1) 1:1 (One to One)
: 각 엔티티가 관계를 맺는 다른 엔티티에 대해 단지 하나의 관계만을 가지고 있음
(2) 1:N (One to Many)
: 각 엔티티가 관계를 맺는 엔티티에 대해 하나 이상의 수와 관계를 갖고 있음
(3) M:N (or M:M, Many to Many)
: 각 엔티티가 관계를 맺는 엔티티에 대해 하나 이상의 수와 관계를 갖고 있으며, 반대 방향도 동일하게 관계에 참여함
'CS (Computer Science)' 카테고리의 다른 글
[개발 공부 108일차] DB 개론 | ERD, 논리적/물리적 데이터 모델링 (6) | 2024.09.29 |
---|---|
[개발 공부 106일차] DB 개론 | 데이터 모델링 단계, 개념적 데이터 모델링 (7) | 2024.09.28 |
[개발 공부 104일차] DB 개론 | 엔티티 타입 및 속성 (20) | 2024.09.26 |
[개발 공부 103일차] DB 개론 | 데이터베이스 모델링 개념 (2) | 2024.09.25 |
[개발 공부 102일차] DB 개론 | 데이터베이스 보안과 권한 관리 (0) | 2024.09.24 |