DB

관계형 데이터베이스 모델링 (2)

개발자 포비 2024. 11. 26. 12:17

ERD의 구성 요소

  • Entity: 기획 상에서 찾아낸 개념적 모델들은 Entity라고 불리며, DB에서 각각의 테이블로 구성된다.
  • 속성: Entity들은 Entity를 구성하는 여러 속성을 가지게 되며, 속성은 각 테이블의 Column이 된다.
  • 관계 구분: 개념적 모델 간에 포함관계가 존재하더라도, Entity 내부에서만 사용되는 것이 아닌 다른 Entity와의 관계가 있거나 독립적인 속성을 지닌다면 분리하여 다른 Entity로 구분한다.
  • 조인: 나뉜 Entity들 간에는 관계를 가지며, 이 관계를 연결하기 위해 PK, FK 등을 이용한 조인 기능을 통해 관계를 연관지어 사용하게 된다.

식별자 지정

  • 식별자: 엔티티를 만들고 속성을 지정했다면, 엔티티 자체를 구분할 수 있는 식별자가 필요하다. 이 식별자는 테이블 내에서 고유한 번호를 지녀야 하며, PK(Primary Key)의 역할을 한다.
  • 후보키: 후보가 될 만한 식별자는 후보키(Candidate Key)라고 한다.
  • 기본키: 식별자는 기본키 PK(Primary Key)라고 하며, 기본키가 아닌 나머지는 대체키(Alternate Key)라고 한다.
  • 중복키: 두 개 이상의 속성을 조합하여 식별할 수 있는 것을 중복키(Composite Key)라고 부른다.
  • 인조키: 자연스럽게 PK가 될 수 있는 속성이 없으면, 인조키(Surrogate Key) 또는 대리키를 만들어야 하며, 다른 것과 중복되지 않는 일련번호를 생성해야 한다.
  • 표기법: ERD에서는 PK에 밑줄을 쳐서 표기한다.

엔티티 간 연결

  • 상호 관계: 엔티티 간에는 서로 상호 관계를 가지는 경우가 있다. 이 경우, 어떤 엔티티가 어떤 엔티티와 관계가 있는지를 나타내야 하며, 이를 위해 외래키(FK)를 사용한다.
  • 조인 형성: 외래키를 통해 서로 다른 엔티티 간에 조인되어 관계를 형성하게 된다.

Cardinality

  • 정의: Cardinality는 엔티티 간의 관계를 나타낸다.
  • 관계 유형: 각 엔티티가 상대 엔티티와의 포함 관계에 따라 여러 종류가 있으며, 대표적으로 다음과 같은 관계가 있다:
    • 일대일 (1:1)
    • 일대다 (1:N)
    • 다대일 (N:1)
    • 다대다 (N:M)
  • DB 구현: 관계에 따라 실제 DB에서 풀어낼 때에는 적절한 방법을 사용해야 하며, 예를 들어 다대다 관계는 중간 테이블을 이용해 일대다 관계 등으로 풀어서 사용해야 한다.

10. Optionality

  • 관계 필수/옵션: 엔티티 간의 관계는 서로가 필수일 수도 있고, 옵션일 수도 있다.
    • Optional: 옵션을 의미
    • Mandatory: 필수인 경우