CS (Computer Science)

[개발 공부 105일차] DB 개론 | 식별자, 관계

MOLLY_ 2024. 9. 27. 08:00
728x90

< 목차 >

0. TL;DR

1. 식별자 (indentifier)

2. 식별자 구분

3. 관계 (Relationship)
4. 관계 카디널리티

 

 

0. TL;DR

  • 식별자: 하나의 엔티티 타입에서 각각의 엔티티를 구분할 수 있는 결정자
    • 식별자 구분
      1. 주 / 보조
      2. 내부 / 외부
      3. 단일 / 복합
      4. 원조 / 대리
  • 관계 (Relationship): 2개의 엔티티 타입 사이의 논리적인 관계로, 서로에게 영향을 주는 것
    • 관계 페어링: 각각의 엔티티들이 자신과 관련된 엔티티들과 관계의 *어커런스로 참여하는 형태
  • 관계 카디널리티: 엔티티 타입 간 관계에서 ‘참여자 수’를 표현한 것
    1. 1:1
    2. 1:N
    3. 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)

: 각 엔티티가 관계를 맺는 엔티티에 대해 하나 이상의 수와 관계를 갖고 있으며, 반대 방향도 동일하게 관계에 참여

 

728x90